--- gcc/ChangeLog 2018/04/24 18:00:26 1.1.1.4 +++ gcc/ChangeLog 2018/04/24 18:17:31 1.1.1.7 @@ -1,9828 +1,7197 @@ -Sat Dec 26 05:12:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Nov 30 19:13:50 1994 Richard Kenner - * Version 2.3.3 released. + * Version 2.6.3 released. -Fri Dec 25 06:53:49 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) +Wed Nov 30 19:02:49 1994 Jim Wilson - * expmed.c (store_bit_field): If VALUE needs to be narrowed, do - it with gen_lowpart, not an explicit SUBREG. + * combine.c (record_dead_and_set_regs_1): Handle SUBREGs. - * a29k.md (divsf3): Fix typo in mode of DIV. + * expr.c (convert_move): When emit multiword conversion, force FROM + into a new pseudo-reg if it overlaps TO. -Fri Dec 25 00:03:26 1992 James Van Artsdalen (james at bigtex.cactus.org) + * fold-const.c (fold_truthop): Delete BIT_AND_EXPR of constants + with masks. - * Makefile.in (install-dir): Add missing semicolon. +Wed Nov 30 18:40:32 1994 Jason Merrill (jason@cygnus.com) - * i386sco4.h (_KR, _SVID, _NO_PROTOTYPE): Define if -traditional. + * alpha.h (ENCODE_SECTION_INFO): Don't do anything in g++. -Thu Dec 24 15:02:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Nov 30 15:48:29 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * fixinc.svr4: Don't change bitfield types to int. + * expr.c (emit_block_move): Only use movstr if size is + small enough constant or MODE is at least BITS_PER_WORD. - * seq386.h (TARGET_DEFAULT): Override. +Tue Nov 29 16:50:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Wed Dec 23 20:19:17 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expmed.c (expand_shift): Open-code rotate even if by a variable. + * optabs.c (init_optabs): Don't set functions for rotl and rotr. - * i386sco4.h (CPP_SPEC): Avoid repeated def of _M_SYSV. +Mon Nov 28 18:53:06 1994 Dave Love (d.love@dl.ac.uk) -Tue Dec 22 15:40:08 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * Makefile.in (FLAGS_TO_PASS): Fix typo in GCC_FOR_TARGET. - * c-decl.c (store_parm_decls): Use TYPE_MAIN_VARIANT to compare types - when merging info from previous prototype. +Wed Nov 23 17:25:43 1994 Ian Dall (dall@hfrd.dsto.gov.au) - * fixinc.svr4: Add special fixes for netinet/in.h and sys/endian.h. + * config/ns32k/{ns32k.c,ns32k.h}: Add -mhimem to + support linking above 0x20000000 boundary. -Mon Dec 21 02:58:27 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * config/ns32k/{netbsd.h,pc532.h, ns32k.c}: Fix meaning + of BASE_REG_NEEDED. - * m68kv4.h (ASM_OUTPUT_CASE_END): - Use switch_table_difference_label_flag. +Wed Nov 23 17:24:24 1994 Matthias Pfaller (leo@marco.de) - * configure (m68k-motorola-sysv*): Set use_collect2. + * configure (ns32k-pc532-netbsd): No need for fixincludes + and libgcc1. + * ns32k/ns32k.h (CONST_COSTS): Correct range is -0x1fff to 0x2000. + * ns32k/ns32k.md (everywhere): Correct range is -0x1fffffff + to 0x20000000, others have to be loaded with movd. + Shortcircuit with TARGET_32532 as early as possible. + (movsi): Use movd to load unknown symbol values. to allow + * ns32k/ns32k.c (print_operand): Removed dead code. + * ns32k/pc532.h (TARGET_DEFAULT): Forbid usage of bitfield + instructions. -Sat Dec 19 20:19:44 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Wed Nov 23 14:09:42 1994 Jim Wilson (wilson@cygnus.com) - * a29k.c (secondary_reload_class): Return CR_REGS for larger than - word memory, and BP_REGS for part-word mem with no DW. + * mips.c (mips_output_external): Exclude __builtin_next_arg from list + of used external functions. - * a29k.md: Consistently use `&' in constraint of MATCH_SCRATCH. - Always use a reg as 4th arg of dmac/fmac even if ignored by insn. - Uses of `b' as a constraint in multi-word reload patterns should - be `c'. +Wed Nov 23 13:30:52 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sat Dec 19 01:32:13 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expr.c (emit_move_insn): If splitting up into individual words + and X is a push_operand, do the push and reference top of stack. - * Makefile.in (all.cross): Add `specs' as dep. +Tue Nov 22 06:29:21 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * build-make (CC): Delete the -V option. + * fold-const.c (fold_convert): Don't fold conversion if it would + produce constant larger than we can support. + * emit-rtl.c (gen_lowpart_common): Do nothing if size is + greater than twice host wordsize, not just if equal. - * getpwd.c (getpwd): Don't get upset if ERANGE is not defined. + * optabs.c (emit_no_conflict_block): Just emit the insns if + the block contains something not an INSN or has an embedded block. -Fri Dec 18 20:56:59 1992 John Hassey (hassey@dg-rtp.dg.com) +Mon Nov 21 18:41:42 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * objc-actions.c (build_encode_expr): - Terminate the encode string with a null. - (encode_aggregate): Distinguish pointer to record from a - record. Output fields for record. Fix unions. + * varasm.c (output_constant): When eliminating conversions, + treat ARRAY_TYPE like a record. -Fri Dec 18 17:17:39 1992 Michael Meissner (meissner@osf.org) + * m68k.md (movqi): Fix typo in push/pop case. - * mips.h (MIPS_VERSION): Set Meissner version # to 33. - (struct mips_args): Add support for passing QI/HI mode structures - the way the MIPS compiler passes them. - (SIZE_TYPE, PTRDIFF_TYPE): Define as unsigned int, and int if not - defined already. +Mon Nov 21 17:59:07 1994 David Edelsohn - * mips.c (init_cumulative_args): Use a static structure to - initialize the CUMULATIVE_ARGS structure. - (function_arg_advance): Add a newline at the end of debug output. - (function_arg): If a structure is passed as a QImode or HImode - value in a register, record the fact for the call define_expands - and prologue expander to move the structure into the high part of - the register, and back again. If debugging, print if the argument - is a structure. - (mips_expand_prologue): Shift any QI/HI structures passed back, so - they can be used as normal QI/HI values. + * aix41.h (LINK_SPEC): New overriding defintion. - * mips.md (call): If there were any tiny structures passes as - QI/HI modes in registers, shift the register, so that the - structure value is in the high part of the register. - (call_value): Ditto. - (call_internal): Delete creating $31 rtx, since we can get it from - the normal insn patterns. - (call_value_internal): Ditto. +Fri Nov 18 19:10:24 1994 Kresten Krab Thorup (krab@next.com) -Fri Dec 18 05:14:14 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * objc/object.c (class_create_instance): Replace memchr + with memset. - Make abstract virtual functions work. - * cp-call.c (compute_conversion_costs): Undo change of Sept 1 about - setting HARSHNESS to 0 re: the conversion of the first argument. - (build_method_call): Delete the code that redid the RTL for calling - the right fn, since we will now behave correctly. (Even with this, - we ended up calling the wrong fn---the base class, rather than the - derived one.) +Fri Nov 18 18:53:57 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - * cp-decl2.c (grokclassfn): Try using the local value for a nested - type if the IDENTIFIER_TYPE_VALUE isn't there. + * cccp.c (create_definition): Allow carriage-return ('\r') + as white space in simple or empty expansion. - * cp-method.c (build_overload_nested_name): Use DECL_NAME instead of - DECL_ASSEMBLER_NAME, since pushtag now mangles together - DECL_ASSEMBLER_NAME. This will make us emit `Q21D1B', not `Q221D1B'. +Fri Nov 18 18:30:40 1994 Douglas Rupp (drupp@cs.washington.edu) -Thu Dec 17 17:51:16 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + * winnt/ld.c (main): Fix off-by-one error allocating sdbuff. - * Makefile.in (install-dir): Added missing then and semicolon. +Fri Nov 18 14:16:04 1994 Chris Huey (cah@tactix.rain.com) -Thu Dec 17 15:19:36 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * Makefile.in (objc-parse.y, mostlyclean): Rename temp file + for objc-parse.y to be under 14 characters. - * x-i386s4 (CC): New assignment. +Thu Nov 17 17:26:02 1994 Mark P. Gooderum (mark@good.com) -Wed Dec 16 15:49:11 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * stddef.h: Include on NetBSD. + Check for _BSD_XXX_T_ as well as _XXX_T_. + Add _BSD_XXX_T_ to list of defines to check and define for a given + type for SIZE_T, PTRDIFF_T, and WCHAR_T. - * objc-actions.c (finish_objc) [OBJC_SELECTORS_WITHOUT_LABELS]: - Always call build_selector_translation_table. +Thu Nov 17 11:11:50 1994 Mike Collison (collison@sw.stratus.com) - * Makefile.in (install-dir): - If cross-compiler, create $(tooldir) and $(assertdir). + * dsp16xx.c (notice_update_cc): Removed reference to obsolete LSHIFT. + * dsp16xx.h (RTX_COSTS): Likewise. -Wed Dec 16 14:19:08 1992 Richard Kenner (kenner at vlsi1.ultra.nyu) +Thu Nov 17 11:06:43 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * rs6000.h (INITIALIZE_TRAMPOLINE): Get function address and toc - pointer from correct place relative to FNADDR. + * alpha.c (some_operand): New function. + * alpha.h (PREDICATE_CODES): Add `some_operand'. + * alpha.md (addsi3, adddi3): For patterns valid only + during reload, allow operand 1 to be `some_operand'. - * varasm.c (assemble_trampoline_template): If TRAMPOLINE_SECTION - is defined, put the trampoline template into that section. + * flow.c (find_auto_inc): Insert missing "return" statement. - * alpha.h (TRAMPOLINE_SECTION): New macro. + * c-common.c (print_char_table): Allow `L' for `u'. -Wed Dec 16 14:19:41 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) +Wed Nov 16 19:28:46 1994 Jim Wilson (wilson@chestnut.cygnus.com) - * reload.c (get_secondary_mem): Don't save address if it isn't valid. + * loop.c (move_movables): For move_insn case, skip notes when deleting + instructions. -Wed Dec 16 13:59:17 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Tue Nov 15 19:29:04 1994 Per Bothner - * varasm.c (assemble_trampoline_template): - Use readonly_data_section, not text_section. + * tree.c (staticp): A non-nested function is always static. -Wed Dec 16 11:32:11 1992 Michael Meissner (meissner@osf.org) +Tue Nov 15 19:07:00 1994 Warner Losh (imp@village.org) + + * i386/freebsd.h (NO_IMPLICIT_EXTERN_C): Define. - * mips.h (MIPS_VERSION): Set Meissner version # to 32. - (compute_frame_size): Change function return type to long. - (epilogue_reg_mentioned_p): New function decl. - (mips_frame_info): Change unsigned longs to longs. - (ELIGIBLE_FOR_EPILOGUE_DELAY): Call epilogue_reg_mentioned_p. +Tue Nov 15 18:57:46 1994 Jim Wilson (wilson@chestnut.cygnus.com) - * mips.c (epilogue_reg_mentioned_p): New function to return true - if any register used in the epilogue sequence is referenced. If - the stack size is greater than 32k bytes, return true for - registers $8 and $9, since they are used to hold temps. - (compute_frame_size): Change return type & variables to long. - (compute_frame_size): Use 1L in shifts to create GP save mask. - (save_restore): Merge function into save_restore_insns. - (save_restore_insns): Add FILE * argument, to write to the .s - file if non-NULL -- otherwise produce insns. Add arguments to - pass in that the prologue/epilogue has loaded the stack size into - $8 if large stack frame. Completely rewrite large stack frame - support, so that it doesn't abort if large stack frame, saved GP - registers, and no saved FP registers. If large stack frame, use - stack size stored in $8 if we can. - (function_prologue): Make tsize long. - (function_epilogue): Ditto. - (mips_expand_prologue): Ditto. - (mips_expand_epilogue): Ditto. - (mips_expand_prologue): Change call to save_restore_insns. - (mips_expand_epilogue): Ditto. - (function_epilogue): Call save_restore_insns instead of - save_restore. + * reorg.c (relax_delay_slots): When invert a conditional jump over a + single unconditional jump, invert the INSN_FROM_TARGET_P bit of insns + in the delay slots. -Wed Dec 16 07:33:08 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * reorg.c (redundant_insn_p): Change return type to rtx. Return the + redundant insn instead of true. + (update_reg_unused_notes): New function. + (fill_slots_from_thread): Call update_reg_unused_notes after one of + the redundant_insn_p calls. - * stmt.c (expand_goto): Set LABEL_REF_NONLOCAL_P in the LABEL_REF - we make in the non-local case. +Tue Nov 15 18:39:33 1994 Torbjorn Granlund (tege@tiny.cygnus.com) - * varasm.c (assemble_trampoline_template): Always put template in - text section. + * expmed.c (expand_divmod, case ROUND_DIV_EXPR): Implement. + * expr.c (do_jump_by_parts_greater_rtx): No longer static. + (expand_expr): Delete code for plain `abs'. + * optabs.c (expand_abs): New function, code moved from expand_expr. + * expr.h: Declare expand_abs. -Wed Dec 16 05:04:06 1992 Tom Wood (wood@dg-rtp.dg.com) +Mon Nov 14 19:16:00 1994 Dennis Glatting - * combine.c (try_combine): Allow for the case where I3 becomes an - unconditional jump when it is the last nonnote insn. + * fixincludes: Fixes for NextStep 3.2. Remove ``__const__'' from + sin and cos prototypes in ansi/math.h. Remove keyword ``template'' + from bfd/libc.h. Remove ``volatile'' from abort in bsd/libc.h + and abort and exit in ansi/stdlib.h. -Tue Dec 15 20:30:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Nov 14 18:54:28 1994 Douglas Rupp (drupp@cs.washington.edu) - * cccp.c (do_pragma): Use index, not strchr. + * i386/x-winnt (EXTRA_PROGRAM): Match target name. - * seq386.h (FUNCTION_PROFILER): Add missing . to label name. +Mon Nov 14 18:48:21 1994 Torbjorn Granlund (tege@tiny.cygnus.com) - * reload1.c (eliminate_regs_in_insn): Test old_body, not new_body, - since people have tested it that way. + * freebsd.h (INCLUDE_DEFAULTS): Move definition beyond + FREEBSD_NATIVE conditional. + (FUNCTION_PROFILER): Move down to make file more similar to + netbsd-i386.h. + (DEFAULT_TARGET_MACHINE, etc): Comment our this braindamage! - * reload1.c (eliminate_regs_in_insn): Don't recopy new_body - if it is an asm_operands insn. +Mon Nov 14 18:46:18 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Tue Dec 15 19:42:58 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * calls.c (expand_call): If IS_CONST and VALREG == 0, end our + sequence and emit the insns. - * sparc.md (return peepholes): Add QImode and HImode move/return - patterns. - -Tue Dec 15 17:42:07 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.h (ASM_SPEC): New macro. - - * alpha.h (TRAMPOLINE_{TEMPLATE,SIZE}, INITIALIZE_TRAMPOLINE): - Make major changes to fix numerous bugs. - (TRANSFER_FROM_TRAMPOLINE): New macro. - * alpha.md: Add new UNSPEC_VOLATILE 0 to flush instruction cache. - -Mon Dec 14 13:16:14 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * rs6000.c (output_epilog): Support LANGUAGE_STRING values for F77, - Ada, and Pascal. - -Sun Dec 13 16:42:26 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * fixinc.sco: Complete rewrite by ian@cygnus.com. - -Sat Dec 12 17:51:43 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * va-alpha.h: Correctly form multi-word object. - - * alpha.c (alpha_builtin_savregs): Correctly compute ARGSIZE and NREGS. - - * alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Deleted. - -Sat Dec 12 08:42:43 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * pa-hpux.h (TARGET_DEFAULT): Do not enable TARGET_SHARED_LIBS - by default in 2.3.3 since it doesn't really work. - * pa-ghpux.h, pa1-hpux.h, pa1-ghpux.h: Likewise. - - * pa.md (floatsisf, floatsidf): Do not accept general registers. - -Fri Dec 11 00:13:52 1992 Ian Lance Taylor (ian@cygnus.com) - - * configure (i[34]86-*-sco3.2v4*): Use fixinc.sco. - * fixinc.sco: New file. - Like fixinc.svr4 but turn !__STDC__ into !__STRICT_ANSI__. Don't - require space after getcwd argument in stdlib.h. - * x-i386s4: Don't use rcc: - (CC, OLDCC, RCCFLAGS, CCLIBFLAGS): Vars deleted. - * xm-i386sco.h (ONLY_INT_FIELDS): Define if not __GNUC__. - (CODE_FIELD_BUG): Likewise. - * rtl.h (struct rtx_def) [ONLY_INT_FIELDS]: Handle CODE_FIELD_BUG. - -Fri Dec 11 17:56:53 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) - - * cp-search.c (lookup_nested_field): Check for assignment to members - of an enclosing class only when looking at a member, not at other - things (like nested types). - - * cp-cvt.c (convert_to_reference): If a conversion can be found via - a constructor, then use it. Also fix a typo about when to - return the result of a type conversion. - -Fri Dec 11 08:15:53 1992 James Van Artsdalen (james@bigtex.cactus.org) - - * reload1.c (choose_reload_regs): Don't inherit a reload if the - previous reload wasn't at least as wide as the current reload. - -Fri Dec 11 07:19:11 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (output_epilog): Remove garbage from one decl of EXTRA. - Subtract, not add, size from frame pointer. - - * a29kunix.h (LINK_SPEC): Use -T, not -c, for new gld and change file - name to default.gld from default.ld. - - * function.c (assign_outer_stack_local): Align proper frame offset. - - * loop.c (get_condition): Check for overflow when canonicalizing - comparison. - -Thu Dec 10 15:53:41 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * enquire.c (i_define, u_define, f_define): Add #undef before #define. - * fixinc.svr4 (limits.h): Add #ifndef/#endif around macros that - are supposed to be defined in float.h. - - * combine.c (try_combine): Only use I2DEST as a scratch reg for - a split if it does not overlap any inputs of NEWPAT. - -Thu Dec 10 10:23:28 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (get_last_value): Never use value from later insn, even - if reg is only set once. - - * c-tree.h (IDENTIFIER_LIMBO_VALUE): Delete duplicate definition. - -Thu Dec 10 08:54:03 1992 Tom Wood (wood@dg-rtp.dg.com) - - * i386sco4.h (CPP_PREDEFINES): Define i386 and unix here. - (CPP_SPEC): Not here. - -Wed Dec 9 19:03:55 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * pa.h (ASM_DECLARE_FUNCTION_NAME): Correctly get the return type - of DECL. +Sat Nov 12 06:35:42 1994 Richard Kenner - * x-pa (CC): Set to "/usr/local/bin/gcc" instead of - "/usr/local/gcc". + * Version 2.6.2 released. -Tue Dec 8 17:50:26 1992 Michael Meissner (meissner@osf.org) +Sat Nov 12 06:35:21 1994 Torbjorn Granlund (tege@cygnus.com) - * mips.h (MIPS_VERSION): Bump Meissner version number to 31. - (LEGITIMIZE_ADDDRESS): Split large offsets, even when not - optimizing. Otherwise, illegal stack offsets can be generated. + * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Promote signed + division by 0x80000000 to unsigned. -Tue Dec 8 11:55:52 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) +Fri Nov 11 17:07:35 1994 Michael Meissner (meissner@osf.org) - * pa.md (sh[123]add): Use "shadd_operand" as the predicate for - operand one. - * pa.c (shadd_operand): New function. + * c-common.c (decl_attributes): Add double-underscore version of + printf and scanf for format type. -Tue Dec 8 08:30:13 1992 Tom Wood (wood@dg-rtp.dg.com) +Fri Nov 11 16:38:04 1994 Jim Wilson (wilson@chestnut.cygnus.com) - * hp320.h (AS_BUG_FLOATING_CONSTANT, AS_BUG_TRAILING_LABEL): New. - (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Output align 1 to - accomodate the "trailing label" bug. - (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_FLOAT_OPERAND): Define to - output values in hex to accomodate the "floating constant" bug. - (PRINT_OPERAND_FLOAT, PRINT_OPERAND): Ditto. + * mips-tdump.c: Include . Delete ctime prototype. - * gcc.c (temp_names): New variable. - (do_spec_1): Rewrite MKTEMP_EACH_FILE for %g/%u/%U. - (choose_temp_base): Abort if mktemp yields a null string. +Fri Nov 11 14:16:00 1994 Holger Teutsch -Tue Dec 8 08:30:13 1992 Niklas Hallqvist (niklas@della.appli.se) + * clipper.md (movsi+1): Allow r->m move during reloading. - * integrate.c (expand_inline_function): Don't output line notes - for implicit formals. +Fri Nov 11 12:40:51 1994 Richard Kenner -Tue Dec 8 06:21:44 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * c-decl.c (duplicate_decls): Properly merge decls with + differing DECL_CONTEXT. - * cse.c (max_uid): New variable. - (cse_end_of_basic_block): Use it to ignore insns made by CSE. - (cse_main): Set it. + * function.c (preserve_rtl_expr_result): find_temp_slot_from_address + now used. + Don't bring the temp slot to an inner level than it was. + (assign_stack_temp): Always initialize p->rtl_expr. -Mon Dec 7 21:22:29 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * m68k/mot3300g.h (SPACE_AFTER_L_OPTION): Deleted. - * cp-init.c (do_friend): Revert change of Sept 1; it seems to have - broken properly emitting friends. +Thu Nov 10 18:50:52 1994 Kresten Krab Thorup (krab@next.com) -Mon Dec 7 19:09:25 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * objc/list.h: Add ifndef/define for repeated inclusion. - * reload1.c (eliminate_regs_in_insn): Make another copy of all the - RTL if we changed something and we aren't permanently replacing. +Thu Nov 10 18:02:58 1994 Michael Meissner - * romp.md (reload_out{q,h}i): Write as proper PARALLEL. + * c-common.c (decl_attributes): Check for attributes with leading + and trailing double underscores. -Sun Dec 6 16:27:14 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Thu Nov 10 17:55:07 1994 Chris Metcalf (metcalf@catfish.lcs.mit.edu) - * alpha.md (add-mult): Add missing `&' in constraints of kludge - plus/plus/mult pattern. + * fixincludes: Make argument type const for popen and tempnam in + stdio.h and for strdup in string.h, for OSF/1 V3.0. -Sun Dec 6 16:26:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * va-alpha.h (va_arg): Add cast to void * to suppress warning. - * optabs.c (expand_binop): Correct sign of complex quotient imagpart. +Thu Nov 10 17:48:21 1994 Walter Misar (hrz.th-darmstadt.de) -Sun Dec 6 07:59:16 1992 Michael Meissner (meissner@osf.org) + * m68k/hp320.h (FUNCTION_{PRO,EPI}LOGUE): Don't define. + (IMMEDIATE_PREFIX, REGISTER_PREFIX): Define. - * mips.h (MIPS_VERSION): Set Meissner version # to 30. - (LEGITIMIZE_ADDRESS): For + addresses, rewrite so - that + ( & ~0x7fff) is put into a pseudo reg. - This is to allow CSE to generate better code for repeated - references in the same general vicinity, such as when large stack - frames are used. +Thu Nov 10 15:04:57 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * config/dec-osf1.h (LINK_SPEC): Pass -call_shared, -no_archive, - and -exact_version to the linker. If -call_shared, do not pass - -non_shared to the linker. - * mips-5.h (LINK_SPEC): Ditto. - * mips-5bsd.h (LINK_SPEC): Ditto. - * mips-svr4.h (LINK_SPEC): Ditto. - * mips-sysv.h (LINK_SPEC): Ditto. - -Fri Dec 4 19:50:29 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) - - * fixincludes: fix _cplusplus typo in SCO's tinfo.h - -Fri Dec 4 19:22:35 1992 Randy S. Welch (randy@kcin.alphacdc.com) - - * xm-plexus.h: New file. - * configure (m68k-plexus-sysv*): Use it. - -Fri Dec 4 19:21:44 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (start_function): Use TYPE_MAIN_VARIANT when comparing - return type with previous prototype declaration. - - * cccp.c (output_line_command): Use alloca for line_cmd_buf. - -Fri Dec 4 19:20:34 1992 Richard Kenner (kenner@mole.gnu.ai.mit.edu) - - * cse.c (cse_insn): Always pass result of canon_reg through - validate_change before using it in insn. - - * c-decl.c, cp-decl.c (init_decl_processing): Don't use hardwired - sizes for the modes when making int{Q,H,S,D}I_type_mode and the - unsigned versions of them; the actual size depends on BITS_PER_UNIT. - -Fri Dec 4 19:13:35 1992 Jonas Olsson (ljo@po.cwru.edu) - - * i386bsd.h (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): - Copy definitions from i386v4.h to get PIC code correct. + * m68k/crds.h (FUNCTION_{PRO,EPI}LOGUE): Add code to adjust stack + when no frame pointer. + * m68k.c (output_function_epilogue): Use a1 as scratch, not a0. + * m68k/tower-as.h (FUNCTION_{PRO,EPI}LOGUE): No longer defined. + (FUNCTION_EXTRA_EPILOGUE): Define. + * m68k/tower.h (REGISTER_PREFIX, IMMEDIATE_PREFIX): Define. -Thu Dec 3 19:20:14 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * i386/x-sco, i386/x-sco4 (CLIB): Add -lPW. + (ALLOCA): Delete. - * cp-decl.c: Include sys/types.h for systems that need things for - signal.h. + * c-common.c ({print,scan}_char_table): Allow `L' modifier + for integer output formats. + (check_format_info): Treat `ll' like `q'. -Thu Dec 3 01:40:42 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * rs6000.md (movsi): In TOC symbol case, use "la" for PowerPC. + (movdi): Handle TOC symbol just like movsi. - * sparc.c (finalize_pic): Remove "*_" from GLOBAL_OFFSET_TABLE name. - * spc-sol2.h (ASM_SPEC): Pass "-K PIC" to assembler when pic. - (JUMP_TABLES_IN_TEXT_SECTION): Define. - (SELECT_RTX_SECTION): Define. + * objc-act.c (init_objc): Add missing casts to args of bcopy. + (lang_init): Ensure line number is 0, not -1. - * fixincludes (sys/types.h): Check for [ \t]size_t not size_t. +Tue Nov 8 07:51:53 1994 Paul Eggert -Wed Dec 2 15:40:36 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * cccp.c (dump_single_macro, dump_defn_1): If -traditional, + dump macros in traditional style. This also avoids a bogus error + message if the macro uses traditional stringizing. - * configure (rs6000-ibm-aix32): New target. - * rs6000-aix32.h: New file. +Mon Nov 7 21:28:13 1994 Michael I Bushnell -Tue Dec 1 18:05:20 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * protoize.c [!POSIX]: Only define O_RDONLY and O_WRONLY if not + already defined. - * cp-type2.c (build_functional_cast): Revert change of Nov 2, - concerning clearing the TREE_VALUE of a default parameter. +Mon Nov 7 19:33:31 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) -Tue Dec 1 13:33:25 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * combine.c (try_combine): Update split_code after converting MULT + to ASHIFT. - * local-alloc.c (optimize_reg_copy_2): Correct reg_n_refs updates. +Mon Nov 7 12:26:24 1994 Torbjorn Granlund - * Makefile.in (INSTALLED_H): Add syslimits.h. + * rs6000.md (DImode load-with-update matcher): Fix typo in MEM mode. + (compare patterns): Fix several typos, SImode => CCmode. + * sh.md (subdi3): Delete % from constraints. + * 1750a.md (subqi3): Likewise. + * clipper.md (subdi3): Likewise. + * i370.md (subqi3): Likewise. + (anonymous subqi3 matcher): Likewise. + * i860.md (subdi3): Likewise. + * dsp16xx.md (mulqi3): Fix typo in MULT mode. + * elxsi.md (one_cmplsi2): Fix typo in NOT mode. -Tue Dec 1 11:09:50 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Mon Nov 7 12:47:37 1994 Ian Lance Taylor - * cp-call.c (build_method_call): When looking for a default arg - initialized by a ctor, be careful of a null ref w/ operand 1. + * m68kv4.h (ASM_IDENTIFY_GCC): Use proper definition for SGS assembler. -Tue Dec 1 10:43:13 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Mon Nov 7 11:02:25 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * combine.c (num_sign_bit_copies): Return 1 on failure, not 0. - Fix typo in last change; return 1 on failure, not BITWIDTH. + * gcc.c (process_command): Ignore LIBRARY_PATH and LPATH if + cross-compiler. -Tue Dec 1 09:39:47 1992 Michael Meissner (meissner@osf.org) +Sun Nov 6 07:23:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * mips.c (function_prologue): Do not emit a .loc before the - function if debug level is 1. This confuses gdb. + * cross-test.c (foo): Return value for BU in range for shifts. -Tue Dec 1 02:48:29 1992 James Van Artsdalen (james at bigtex.cactus.org) +Sat Nov 5 14:25:36 1994 Jim Wilson (wilson@chestnut.cygnus.com) - * isc.h (TARGET_DEFAULT): New macro - don't make TARGET_IEEE_FP - default for ISC. + * m68k.h (PREFERRED_RELOAD_CLASS): FP constants rejected by 'G' + are OK for class FP_REGS. -Fri Nov 27 01:30:41 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Sat Nov 5 14:08:31 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * Version 2.3.2 released. + * calls.c (store_one_arg): Preserve any temp slots whose address + may have been taken. - * objc/core.c (searchForMethodInHierarchy): - If SEL or NAME is 0, return 0. + * real.c (GET_REAL, PUT_REAL): Cast args to bcopy to char *. + * reload1.c (reload): Likewise. + * i386.c ({save,restore}_386_machine_status): Likewise. + * reg-stack.c (subst_asm_stack_regs): Likewise. + (BLOCK_NUM): Rework to avoid cast of abort to int *. + (find_blocks): Don't use BLOCK_NUM on lhs. + (reg_to_stack, record_arg_reg_life): Cast arg to bzero to char *. - * gcc.c (LINK_LIBGCC_SPECIAL_1): New parameter. - * rs6000.h (LINK_LIBGCC_SPECIAL_1): Defined. +Sat Nov 5 08:29:45 1994 Paul Eggert - * t-hp320g (RANLIB, RANLIB_TEST, AR, AR_FLAGS): - Just copy value of ..._FOR_TARGET. - (LIBCONVERT): Use TARGET_TOOLPREFIX. + * cccp.c (rescan): Do not preserve newlines after macro name + if rescanning a macro expansion. Instead, preserve them if + not outputting marks. - * reload.c (find_reloads) [SMALL_REGISTER_CLASSES]: - Don't use preferred_class for a multiword register. +Fri Nov 4 17:25:29 1994 John David Anglin (dave@hiauly1.hia.nrc.ca) - * cccp.c (do_include): Initialize searchptr to 0. + * vax.c: Include tree.h and VMS-specific functions #ifdef VMS_TARGET. + * vms.h (VMS_TARGET): Define. -Fri Nov 27 07:40:54 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) +Fri Nov 4 17:19:30 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * combine.c (subst, make_field_assignment, num_sign_bit_copies): - Protect calls to significant_bits; unless we only care if the - result is a power of two, don't call if mode size is wider - than HOST_BITS_PER_WIDE_INT. - (extended_count, simplify_shift_const, simplify_comparison): Likewise. + * bi-arity.c (main): Cast enum to char in output. + * bc-emit.c (bc_emit_bytecode): Add missing cast. -Thu Nov 26 10:31:48 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Nov 3 18:55:42 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * gstdarg.h (va_end): #undef before the declaration. + * Makefile.in (c-parse.o, c-lex.o): c-parse.h is in $(srcdir). - * gstdarg.h (va_arg): Alternative definition for big-endian machines. - * gvarargs.h (va_arg): Copy both definitions from gstdarg.h. +Thu Nov 3 18:11:56 1994 John F Carr (jfc@mit.edu) - * limitx.h, limit.y: Test and define _GCC_LIMITS_H_, not _LIMITS_H_. + * rs6000.md (movsi): New alternative for SYMBOL_REF source operand. + * rs6000.c (print_operand): New code '*' to print TOC register number. + (input_operand): Allow address of TOC entry. + * rs6000.h (EXTRA_CONSTRAINT): 'R' matches a SYMBOL_REF for TOC entry. + (PRINT_OPERAND_PUNCT_VALID_P): Recognize '*'. + (PREDICATE_CODES): input_operand can now match SYMBOL_REF. - * mips.c (mips_debugger_offset): Don't crash for unknown cases. +Thu Nov 3 18:03:24 1994 Jason Merrill (jason@phydeaux.cygnus.com) - * c-typeck.c (build_unary_op): Call pedantic_lvalue_warning - for *all* cases of incrementing a cast. + * cccp.c: TOOL_INCLUDE_DIR is not C++-aware. - * libgcc2.c (__udiv_w_sdiv): Cast 1 before shifting by 31. +Thu Nov 3 17:23:30 1994 Jim Wilson (wilson@chestnut.cygnus.com) - * fixincludes (PWDCMD): New variable, set specially for Apollos. - Use it to get the working dir. + * mips.c (mips_output_external): Exclude alloca from list of + used external functions. - * combine.c (num_sign_bit_copies): Fix 1-off error in PLUS case. +Tue Nov 1 19:19:41 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * c++: Put newline into `for arg do'. + * Version 2.6.1 released. -Thu Nov 26 08:32:20 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Tue Nov 1 18:51:00 1994 Torbjorn Granlund (tege@cygnus.com) - * expmed.c (struct algorithm): Make coeff a HOST_WIDE_INT. + * pa.md (add_high_const): Add missing mode for PLUS. - * romp.c (output_epilog): Always call output_fpops. +Tue Nov 1 18:39:53 1994 Stephen L Moshier (moshier@world.std.com) -Wed Nov 25 16:24:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * cse.c (simplify_unary_operation, case TRUNCATE): Set LV and HV. - * Makefile.in (install-fixincludes): Use SYSTEM_HEADER_DIR. +Tue Nov 1 18:36:23 1994 Pat Rankin (rankin@eql.caltech.edu) - * m68ksgs.h (ASM_OUTPUT_DOUBLE_OPERAND): Really use the operand VALUE. + * vax.c (struct extern_list): Put code back outside of #ifdef VMS. + (vms_check_external, vms_flush_pending_externals): Likewise. - * tree.h (CONSTRUCTOR_NAME_FORMAT): Let config.h override this. - * tower-as.h (CONSTRUCTOR_NAME_FORMAT): Defined. +Mon Oct 31 16:18:12 1994 Michael Meissner - * c++: Replace `for arg do' which ash can't handle. + * i386/i386.md (movsf, movdf, movxf): If we are moving floating + point constants to a non-memory location that aren't 0 or 1, + assume we need the pic register if -fpic. - * t-next (OTHER_FIXINCLUDES_DIRS): Delete /NextDeveloper/Headers. +Mon Oct 31 13:26:45 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - * apollo68.h (HAVE_ATEXIT): Commented out. + * sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't allow TFmode LO_SUM. + * sparc.md (movtf+3): Disable pattern. - * regclass.c: Fix typo in use of SECONDARY_INPUT_RELOAD_CLASS. - (copy_cost): Fix typo in use of SECONDARY_OUTPUT_RELOAD_CLASS. +Mon Oct 31 08:11:47 1994 Doug Evans -Wed Nov 25 14:15:50 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + * expr.c (expand_expr, COND_EXPR case): Don't use original target as + a temp if it's a volatile mem ref. Finish previous patch (don't + expand "X ? A & 1 : A" as "A & (X != 0)"). - * fixinc.svr4 (regexp.h): Don't add a getrnge declaration if a - conflicting declaration is already present. +Mon Oct 31 08:07:09 1994 Pat Rankin (rankin@eql.caltech.edu) -Wed Nov 25 06:47:18 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * vax.c: Include tree.h #ifdef VMS. + (struct extern_list): Move inside #ifdef VMS; add SIZE and IN_CONST + fields; make `extern_head' static; add second list head. + (vms_check_external): Move inside #ifdef VMS; give new args; maintain + list of both pending external symbols and previously defined ones. + (vms_flush_pending_externals): New function. + * vax/vms.h (ASM_GLOBALIZE_LABEL): Pass new args to vms_check_external. + (ASM_OUTPUT_EXTERNAL): Just call vms_check_external. + (ASM_{,FINISH_}DECLARE_OBJECT_NAME, ASM_FILE_END): Define. - * rs6000.h (LINK_LIBGCC_SPECIAL): No longer define. +Mon Oct 31 08:00:59 1994 Michael Gschwind (mike@vlsivie.tuwien.ac.at) - * stmt.c (expand_value_return): Don't emit move between differing - modes when PROMOTE_FUNCTION_RETURN is defined; convert instead. + * pdp11.h (TARGET_SWITCHES): Add -split and -no-split. + (TARGET_SPLIT, TARGET_NOSPLIT): New macros. + (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Abort if -split. - * integrate.c (expand_inline_function): Ensure a REG used as - COPY has REG_USERVAR_P set if LOC does. +Mon Oct 31 07:53:34 1994 Warner Losh - * optabs.c (expand_binop, expand_twoval_binop): If we are going - to fail, remove any load from MEM we did due to -fforce-mem; - if the MEM was volatile, this will cause an extra load. - (expand_complex_abs): Likewise. - Correct use of variable LAST so it doesn't include the load - from MEM (to fix unrelated bug). + * i386/x-freebsd (CLIB): Add definition. -Tue Nov 24 00:23:39 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Oct 31 07:49:17 1994 Jeffrey A Law - * i386bsd.h (FUNCTION_PROFILER): Use mcount, not _mcount. + * reorg.c (mark_set_resources): Properly handle SUBREGs. - * t-next (OTHER_FIXINCLUDES_DIRS): Leave just /LocalDeveloper/Headers - and /NextDeveloper/Headers. +Mon Oct 31 07:24:32 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Mon Nov 23 22:06:31 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expr.c (expand_expr, case COMPONENT_REF): Don't extract + field from a CONSTRUCTOR if it already has a TREE_CST_RTL. + (expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken + on the temporary made when operand needs to be stored into memory. + * function.c (preserve_temp_slots): Preserve anything whose + address was taken when X is zero. - * ns32k.md (movsi): Split alt 1 to deprecate xy classes in operand 1. +Sun Oct 30 15:11:51 1994 Richard Kenner - * combine.c (make_extraction): When making a low part subreg of a reg, - use inner_mode, not is_mode. + * msdos/top.sed, i386/config-nt.sed: Update version to 2.6.1. + * pa/t-pa-hpux: Add missing newline at end. -Mon Nov 23 21:11:13 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Sat Oct 29 21:16:29 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * romp.h (ASM_FILE_START): Stop at first blank in VERSION_STRING. + * emit-rtl.c (operand_subword): Fix typo: HOST_BITS_PER_INT + should be HOST_BITS_PER_WIDE_INT. -Mon Nov 23 21:09:20 1992 Tom Wood (wood@dg-rtp.dg.com) +Fri Oct 28 19:13:13 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - * fold-const.c (range_test): Convert the constants to the unsigned - type before expanding the range test. + * objc/misc.c (__objc_xcalloc): Use calloc instead malloc/bzero. -Mon Nov 23 20:54:45 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Fri Oct 28 19:07:53 1994 Michael Gschwind (mike@vlsivie.tuwien.ac.at) - Mon Nov 23 13:21:43 1992 Brendan Kehoe (brendan@cygnus.com) + * pdp11.h (TRAMPOLINE_SIZE): Install real implementation. + (INITIALIZE_TRAMPOLINE, TRAMPOLINE_TEMPLATE): Likewise. - * c++ (first): Only shift if $first is no, on the chance we got no - arguments at all. If we didn't get anything, say so (since -lg++ - will fake out the gcc driver into thinking we want to do something). +Fri Oct 28 19:01:27 1994 Craig Burley (burley@gnu.ai.mit.edu) - * cp-decl.c (start_decl): If grokdeclarator returns a - void_type_node, return a NULL_TREE. + * Makefile.in (stage?-start): Add semicolon between fi and done. + +Fri Oct 28 17:12:26 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-typeck.c (build_modify_expr_1): When calling build_opfncall for - `operator=', use make_node to create a plain NOP_EXPR for it to use, - rather than trying to pass NOP_EXPR down hoping it gets there intact. - (build_modify_expr): Ditto. - * cp-parse.y (expr_no_commas): Ditto. - * cp-method.c (build_opfncall): Use TREE_CODE on ARG3 for a - MODIFY_EXPR, since it'll be coming in properly as a tree now. + * cse.c (cse_insn): Don't record a DEST if paradoxical SUBREG + and SRC is a SIGN_EXTEND or ZERO_EXTEND. - Sat Nov 21 02:33:28 1992 Brendan Kehoe (brendan@cygnus.com) + * alpha.md (reload_outqi): Correctly handle scratch assignments + for unaligned case when ADDR is a REG. - * cp-init.c (expand_default_init): Clear DECL_REGISTER if we're - going to call a ctor, otherwise we may end up generating bogus and - confusing error messages about taking the addr of something declared - to be `register'. +Fri Oct 28 07:55:40 1994 Michael Meissner (meissner@osf.org) - * cp-typeck.c (build_x_function_call): Recognize a ptr-to-method - that is being passed in as a function argument or as part of - a COMPONENT_REF. - (build_indirect_ref): If ERRORSTRING is NULL (it's passed in that - way in many places), then don't try to use it. + * i386/i386.md (adddi3): Fixup code in case operands[0] is equal + to operands[2]. - Thu Nov 19 01:41:58 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Thu Oct 27 18:58:39 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-dem.c (do_builtin_type): Recognize `w', a wide character, since - it's now a type according to the ANSI X3J16 working paper; output - "wchar_t" for it. - (cplus_demangle): Accept `w' as an integral type. + * reload1.c (count_possible_groups): Fix typo in setting + counted_for_groups. - Wed Nov 18 21:29:14 1992 Brendan Kehoe (brendan@cygnus.com) +Thu Oct 27 15:30:41 1994 Per Bothner - * cp-class.c (finish_struct): Re-enable code to cut down on the size - of symbol output, the positives outweigh the negatives. + * c-typeck.c (process_init_element): In the case of + [LO .. HI] = VALUE, use save_expr to only evaluate VALUE once. - Wed Nov 18 19:51:59 1992 Mike Stump (mrs@cygnus.com) +Thu Oct 27 15:15:25 1994 Torbjorn Granlund (tege@rtl.cygnus.com) - * cp-search.c (dfs_walk): Move setting of - vbase_decl_ptr_intermediate out of #ifdef code. + * gcc.c (process_command): Don't forget to split -Wl arguments at + commas. - Wed Nov 18 18:49:13 1992 Mike Stump (mrs@cygnus.com) + * gcc.c (process_command): Handle -Wl, and -Xlinker similar to -l, + i.e., preserve their order with respect to linker input files. - * cp-decl.c (grokdeclarator): Make wording on error message - stronger. +Thu Oct 27 13:11:16 1994 Douglas Rupp (drupp@cs.washington.edu) - Tue Nov 17 17:46:11 1992 Brendan Kehoe (brendan@cygnus.com) + * configure (i[345]86-*-winnt3*): Allow any version 3.x. + Don't use a t-winnt file and move x-winnt to config/i386. + * i386/x-winnt: Build ld-winnt.exe only on host. + * winnt/t-winnt: Deleted. - * cp-search.c (CHECK_convert_pointer_to_single_level): Don't define. +Thu Oct 27 13:05:16 1994 Mike Collison (collison@chianti.sw.stratus.com) -Mon Nov 23 19:44:38 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * reload.c (debug_reload): New function to print reload info + set up by find_reloads. - * mot3300.h (switch_table_difference_label_flag): Define it. +Wed Oct 26 18:27:03 1994 David Mosberger-Tang - * ns32k.md (addsi3): Add & for alternative 1 in operand 0. + * alpha.h (FUNCTION_PROFILER): Use $28 instead of $27. + (LINK_SPEC): Pass -pg to linker. + (LIB_SPEC): Link in -lprof1 with -pg, not -lprof2. + (STARTFILE_SPEC): USe gcrt0.o if -pg, not mcrt0.o. -Mon Nov 23 18:29:27 1992 Jim Wilson (wilson@sphagnum.cygnus.com) +Wed Oct 26 18:22:34 1994 Doug Evans (dje@cygnus.com) - * genattrtab.c (obstack.h): Include after sys/time.h. + * expr.c (expand_expr, COND_EXPR case): Don't expand + "X ? A & 1 : A" as "A & (X != 0)". - * c-decl.c (duplicate_decls): For builtins, create new function - type instead of trying to modify old one. +Wed Oct 26 18:06:52 1994 Douglas Rupp (drupp@cs.washington.edu) -Mon Nov 23 16:28:36 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * winnt/ld.c (expand_lib, main): Fix off-by-one bugs in several + calls to malloc. - * i386bsd.h (COMMENT_BEGIN): Redefine as #. - (ASM_APP_ON, ASM_APP_OFF): Redefine to use #. +Wed Oct 26 22:00:09 1994 Richard Kenner - * combine.c (num_sign_bit_copies): Inhibit x-1 special case - when x is a paradoxical subreg. + * winnt/t-winnt: Remove some spurious blank lines. - * xm-linux.h (malloc, calloc): Definitions deleted. +Wed Oct 26 14:14:39 1994 Michael Meissner (meissner@osf.org) -Mon Nov 23 11:52:41 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) + * i386/osfrose.h (REAL_NM_FILE_NAME): Use /usr/ccs/gcc/bfd-nm + instead of /usr/ccs/bin/nm, since the GNU nm does not output stab + symbols by default. - * pa.md (sh[123]add): Use "nonmemory_operand" instead of - "register_operand" as the predicate for the first operand. +Wed Oct 26 13:47:06 1994 Michael Gschwind (mike@vlsivie.tuwien.ac.at) -Mon Nov 23 00:29:27 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * config.sub (pdp11): New machine name. + * configure (pdp11-*-*): New configuration. + * pdp11.c, pdp11.h, pdp11.md, xm-pdp11.h: New files. - * gcc.c (default_compilers): Pass -i* after -U*. +Wed Oct 26 07:33:40 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sun Nov 22 17:03:48 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * flow.c (find_basic_blocks): Ensure each live basic block is + actually reachable. + (life_analysis): Clean up handling of basic_block_drops_in. - * hp320.h (FUNCTION_PROFILER): Complete replacement. +Tue Oct 25 18:40:12 1994 Paul Eggert - * xm-hp320.h (index, rindex): Defined. + * cccp.c (rescan): ".." no longer terminates a preprocessing + number, since that's incompatible with the C standard. - * gstddef.h: Fix prev change; test of _STDDEF_H was backwards. +Tue Oct 25 16:16:40 1994 Michael Dobson (dobson@info.usuhs.mil) -Sun Nov 22 16:12:38 1992 Tom Wood (wood@dg-rtp.dg.com) + * we32k.h (CPP_PREDEFINES): Define u3b2, not u3b. - * toplev.c (W_options): Delete -Wreturn-type, as it is in lang_options. - * c-decl.c (c_decode_option): Decode -Wreturn-type. +Tue Oct 25 16:15:27 1994 Jim Wilson (wilson@cygnus.com) - * c-decl.c, cp-decl.c (pushdecl): Don't inherit DECL_INITIAL when - redeclaring the current function. + * reorg.c (fill_slots_from_thread): Update THREAD if it is split. - * integrate.c (expand_inline_function): Use the original - declaration of the inlined function rather than a redeclaration as - the BLOCK_ABSTRACT_ORIGIN of the body. +Mon Oct 24 00:12:46 1994 Jason Merrill (jason@phydeaux.cygnus.com) -Sat Nov 21 19:54:57 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * toplev.c (lang_options): Add -f{no-,}access-control. - * cccp.c (main): Do -D's and -A's and -U's in order specified. +Mon Oct 24 06:14:03 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * gcc.c (default_compilers): When running cpp, - move %{D*} and %{U*} (in that order) just before %i. + * arm/arm.md (peepholes for call followed by branch): Disable. -Sat Nov 21 18:24:55 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) +Sun Oct 23 08:54:27 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * xm-pa.h: Remove #ifdef hpux stuff. - (S_ISDIR): Remove. - * xm-pahpux.h: New file, developed from old xm-pa.h. Define - rindex/index. - * pa-hpux7.h, pa-gux7.h: New files. + * arm/x-riscix (INSTALL): Invoke install.sh with -c flag. - * configure (hppa1.0-*-hpux*, hppa1.0-*-hpux*): Use xm-pahpux.h. - (hppa1.0-*-hpux7*): New alternative. +Fri Oct 21 00:42:08 1994 Jason Merrill (jason@phydeaux.cygnus.com) -Sat Nov 21 14:10:57 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * Makefile.in (LIB2FUNCS): Add _pure. - * spc-sol2.h (SWITCH_TAKES_ARG, LINK_SPEC): New override definitions. + * libgcc2.c (__pure_virtual): New function to go into vtable + entries for pure virtual methods instead of abort. - * xm-mot3300.h (index, rindex): Defined. +Thu Oct 20 18:40:36 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sat Nov 21 07:54:53 1992 Michael Meissner (meissner@osf.org) + * alpha.md (define_split comparison op with power of two minus 1): + Fix typo. - * mips.h (MIPS_VERSION): Set Meissner version number to 29. +Thu Oct 20 13:14:24 1994 Jason Merrill (jason@phydeaux.cygnus.com) - * mips.c (mips_expand_prologue): If profiling, emit an insn to - block other insns from being scheduled before the end of the - prologue. + * collect2.c (add_to_list): Check for duplicates. - * mips.md (blockage): New unspec_volatile insn to prevent other - insns from being scheduled before it. + * alpha/alpha.h (LINK_SPEC): Pass -shared through; don't + pass -init __main if -shared. + (STARTFILE_SPEC): Wrap startfiles in %{!shared:}. + (INIT_NAME_FORMAT): Define. + (FINI_NAME_FORMAT): Define. + * alpha/osf12.h (LINK_SPEC): Ditto. + * alpha/gdb-osf12.h: #include osf12.h instead of alpha.h -Sat Nov 21 06:03:38 1992 Brendan Kehoe (brendan@cygnus.com) + * gcc.c (STARTFILE_SPEC): Wrap startfiles in %{!shared:}. - * sdbout.c (template_name_p): New function. - (sdbout_record_type_name): Use it to possibly use the - DECL_ASSEMBLER_NAME instead of DECL_NAME if looking at a template. - (sdbout_symbol): Ditto. +Thu Oct 20 16:07:46 1994 Jim Wilson (wilson@cygnus.com) -Fri Nov 20 15:31:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * unroll.c (loop_iterations): Move all failure exits after the + computation of final_value. - * dbxout.c (dbxout_type): Handle need for name of a RECORD_TYPE - when it has none. + * mips.md (movdf_internal2+1): Disable when TARGET_64BIT. - * configure (sparc-*-solaris2): Set broken_install. + * i960.c (VARARGS_STDARG_FUNCTION): New macro. + (i960_function_name_declare, output_function_profiler, + i960_function_epilogue, i960_output_call_insn, i960_output_ret_insn, + i960_reg_parm_stack_space): Use it. + (compute_frame_size): Don't use current_function_pretend_args_size. + (i960_function_arg_advance, i960_function_arg): Don't use parameter + named. + (i960_setup_incoming_varargs): No need to adjust first_reg_offset + after setting it. Don't save last named argument to stack. + Don't set pretend_size. + * i960.h (SIGNED_CHAR_SPEC): Use #if instead of ?:. + * va-i960.h (va_start): Use builtin_arts_info instead of + builtin_next_arg. - * integrate.c (subst_constants): Inhibit special treatment of subreg - when the stuff inside is not a reg. + * cse.c (merge_equiv_classes, cse_insn): Call rehash_using_reg + after insert_regs. + (canon_hash): Don't use qty_const to compute hash code for a + register. - * config/plexus.h (SIZE_TYPE): Fix syntax. +Thu Oct 20 09:41:51 1994 Richard Kenner (kenner@vlsi1.ultra.nyu) - * gcc.c (do_spec_1): Handle MKTEMP_EACH_FILE. + * stor-layout.c (variable_size): Return SIZE if it contains + a PLACEHOLDER_EXPR. -Fri Nov 20 15:10:20 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) +Tue Oct 18 19:51:24 1994 Jason Merrill (jason@phydeaux.cygnus.com) - * fixincludes (math.h): Get rid of inconsistent inline definitions - for abs that are present in HP-UX 8.0. + * collect2.c (main): Check REAL_*_FILE_NAME first. -Fri Nov 20 10:07:48 1992 Michael Meissner (meissner@osf.org) +Wed Oct 19 15:55:15 1994 David J. MacKenzie - * collect2.c (FREAD, FWRITE): Undef these macros if they were - defined before including ldfcn.h. + * config.sub: Add licensing exception for Autoconf. -Fri Nov 20 15:38:47 1992 Tom Wood (wood@dg-rtp.dg.com) +Wed Oct 19 06:43:46 1994 Michael Meissner (meissner@osf.org) - * integrate.c (expand_inline_function): Mark all notes as integrated. + * i386/i386.h (FUNCTION_BLOCK_PROFILER): Don't bother preserving + eax if -fpic, since it is a call clobbered register anyway. Fix -fpic + code so that it is correct. - * final.c (final): When producing SDB debugging info, delete line - number notes from inlined functions in other files as well as - duplicate line number notes. +Tue Oct 18 18:00:23 1994 Michael Meissner (meissner@osf.org) -Fri Nov 20 05:24:16 1992 Jim Blandy (jimb@totoro.cs.oberlin.edu) + * i386/i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Move + macros here from osfrose, netbsd, and freebsd ports. Remove + assumptions that the assembler is gas. Rewrite and fix the + instructions produced with -fpic. - * config.sub: Added machines and operating systems for Emacs - ports, since Emacs now uses config.sub for its configuration. - New manufacturers recognized not to be operating systems: High - Level Hardware (highlevel, defaults to using BSD), Gould - (gould, defaults to System V), Commodore (cbm, defaults to - amigados), National Semiconductor (ns, defaults to Genix), and - Masscomp (masscomp, defaults to RTU). - Recognize the NS1600 (ns16k) and the Clipper (clipper) as - processors. - Recognize these processors with default manufacturers: the - Cydra (cydra) from Cydrome (cydrome), the XPS100 (xps100) from - Honeywell (honeywell), and the Orion (orion) and Orion 1/05 - (orion105) from High Level Hardware (highlevel). - If the ISC operating system is given with a version number, - don't kill it and set it to 2.2; just have it default to 2.2 - if omitted. - Make Irix SGI's default operating system, not SYSV. - Make BSD Encore's default, so it applies for all Encore - machines, not just the umax and mmax abbreviations. - All of Encore's machines use BSD, not just the ns32k-based - ones. Make it the manufacturer's default. - Make it possible to specify an operating system for a Gould - machine. Make sysv the manufacturer's default, so it applies - when we specify the manufacturer as well as when we omit it. - Add Uniplus (uniplus), Iris (iris), Xenix (xenix), and RTU - (rtu) as recognized operating system names. + * i386/osfrose.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. + * i386/freebsd.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. + * i386/netbsd-i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): + Delete. -Wed Nov 18 17:58:18 1992 Karl Berry (karl@cs.umb.edu) +Tue Oct 18 20:27:29 1994 Doug Evans (dje@cygnus.com) - * i386iscgas.h (SDB_DEBUGGING_INFO): #undef. - (DBX_DEBUGGING_INFO): #define. - (DBX_OUTPUT_MAIN_SOURCE_{DIRECTORY,FILENAME}): Override dbxout.c. + * sparc.h (FRAME_POINTER_REQUIRED): Require frame pointer if + non-leaf flat function. + * sparc.c (sparc_frame_info): Combine members gp_sp_offset and + fp_sp_offset into reg_offset. All uses changed. + (RETURN_ADDR_REGNUM): New macro. + (RETURN_ADDR_MASK, FRAME_POINTER_MASK): New macros. + (sparc_flat_compute_frame_info): Rename local mask to gmask. + Only ensure reg save area is 8 byte aligned if necessary. + (sparc_flat_save_restore): New arguments base_reg, offset, gmask, + and fmask. All callers changed. No longer use %g2 to save regs + in big stack frames. + (sparc_flat_output_function_prologue): Delete local tsize. + Reorder storing of previous frame pointer and return address reg to + make it easier for gdb to identify flat functions. Decrement %sp + twice when saving call-saved regs in big frames. + Count fp regs as 4 bytes in assembler comment. + (sparc_flat_output_function_epilogue): Likewise when restoring + call-saved regs. - * bsd386.h (LPREFIX) [NO_UNDERSCORES]: Define as `.L'. +Tue Oct 18 19:33:55 1994 Mike Collison (collison@sw.stratus.com) -Wed Nov 18 13:50:43 1992 Michael Meissner (meissner@osf.org) + * reload1.c (reload): Correctly compute group additional needs when + the return register cannot be used as a spill register. - * mips.c (compute_frame_size): Make sure the {gp,fp}+offset fields - are always initialized, even if there were no gp/fp registers - saved. +Tue Oct 18 16:17:26 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) -Wed Nov 18 09:58:50 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * mips.h (ASM_SPEC): Pass -mcpu= option to GNU as. - * a29k.md (insv): Remove constraints from operand matching - const_0_operand. +Tue Oct 18 08:39:49 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * regclass.c (regclass): Add missing cast from enum to int. + * flow.c (propagate_block): Call mark_used_regs to show global regs + used by call. + * combine.c (can_combine_p): Don't combine into CALL_INSN where + DEST is a global reg. -Wed Nov 18 09:40:01 1992 John Hassey (hassey@dg-rtp.dg.com) + * c-decl.c (start_function): Save immediate_size_expand + and initialize it to zero in case nested function. - * core.c (initialize_class): The class may not have an initialize - method. + * pa.c (non_hard_reg_operand): New function. + * pa.md (reload_{in,out}*): Replace general_operand with + non_hard_reg_operand. -Wed Nov 18 09:40:01 1992 Wilson Tien (wtien@urbana.mcd.mot.com) +Fri Oct 14 18:35:30 1994 Jason Merrill (jason@phydeaux.cygnus.com) - * xm-m68kv.h (rindex, index): use strrchr and strchr instead. + * gcc.c (default_compilers): Treat files with an extension of .c++ + as C++ code. -Wed Nov 18 01:27:37 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) +Mon Oct 17 19:21:57 1994 David Edelsohn (edelsohn@npac.syr.edu) - * config.sub: Added Xenix operating system. + * configure (rs6000-ibm-aix4.1*): New configuration. + * rs6000/aix41.h: New file. -Tue Nov 17 18:32:01 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Mon Oct 17 19:15:14 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - * reload.c (combine_reloads): Don't combine with a reload needed - for multiple things. + * va-mips.h (va_arg): Add little endian mips3 support. -Mon Nov 16 08:52:52 1992 Jeffrey A. Law (law@mole.gnu.ai.mit.edu) + * sparc.h (RETURN_IN_MEMORY): Return true for TCmode values. - * pa.c (output_move_double): Handle indirect stores to memory - via an auto-incremented/auto-decremented register in the same - manner in which loads are handled. + * README.IRIX5: Delete. + * install.texi: Update Irix 5 debugging info. -Thu Nov 12 21:02:59 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * mips.c (function_prologue): Only emit line number when SDB_DEBUG. - Cygnus<-->FSF merge. + * configure: Delete new argument, --noguess. Default build from + host if host specified, otherwise guess build. Fix typo in + setting build from host. - Thu Nov 12 15:02:53 1992 Brendan Kehoe (brendan@cygnus.com) +Mon Oct 17 15:54:56 1994 Per Bothner - * cp-decl.c (finish_decl): Don't try to use TYPE if it's an - error_mark_node. + * calls.c (expand_call, emit_library_call, emit_library_call_value): + Allways adjust current_function_outgoing_args_size, even #ifndef + ACCUMULATE_OUTGOING_ARGS. (Useful for stack overflow checking.) + * function.c (current_function_outgoing_args_size): Update comment. - * cp-decl.c (sigsegv): Set to the default handler before calling - anything, so we can avoid possible infinite loops. Call - my_friendly_abort instead of just error(). - * cp-type2.c (my_friendly_abort): If I is 0, it's coming from sigsegv. - - * cp-type2.c (my_friendly_assert): New function. - * cp-call.c, cp-class.c, cp-class.h, cp-cvt.c, cp-decl.c, cp-decl.h, - cp-decl2.c, cp-dem.c, cp-edsel.c, cp-except.c, cp-expr.c, cp-gc.c, - cp-hash.h, cp-init.c, cp-input.c, cp-lex.c, cp-lex.h, cp-method.c, - cp-pt.c, cp-search.c, cp-spew.c, cp-tree.c, cp-tree.h, cp-type2.c, - cp-typeck.c, cp-xref.c, cp-parse.y: Don't include assert.h, and use - the new function `my_friendly_assert' instead of the `assert' macro. - - Wed Nov 11 22:14:51 1992 Brendan Kehoe (brendan@lisa.cygnus.com) - - * tree.h (perm_calloc): Add decl. - * cp-parse.y (except_stmts): Declare return type of get_insns, - since we don't (can't) include rtl.h. - * cp-tree.c (TYPE_HASH): Use HOST_WIDE_INT instead of int when - casting pointers to integers. - (ld_cmp): Likewise. - * cp-call.c (build_method_call): Likewise. - * cp-class.c (finish_struct_methods): Likewise. - * cp-method.c (build_overload_value): Add decl of index. - (build_opfncall): Cast to HOST_WIDE_INT, not int. - * cp-search.c (get_binfo): Likewise. - (get_base_distance): Likewise. - (breadth_first_search): Likewise. Also declare to return - HOST_WIDE_INT, not int. - - Wed Nov 11 14:34:25 1992 Mike Stump (mrs@rtl.cygnus.com) - - Thu Nov 5 15:58:38 1992 Tim Moore (moore at defmacro.cs.utah.edu) - - * cp-decl.c (duplicate_decls): Round to obstack alignment when - testing if newdecl is at the top of the permanent obstack. - - Wed Nov 11 13:56:18 1992 Mike Stump (mrs@rtl.cygnus.com) - - * cp-search.c (build_vbase_vtables_init): Make sure external virtual - tables are declared on machines that need the declaration by calling - assemble_external. - - Wed Nov 11 12:51:44 1992 Brendan Kehoe (brendan@lisa.cygnus.com) - - * cp-decl2.c (grokfield): If the init field is really a list with - just an error_mark_node, then it wasn't a real initialization, so - don't treat it like one. +Mon Oct 17 18:49:01 1994 Paul Eggert - Tue Nov 10 16:21:20 1992 Brendan Kehoe (brendan@lisa.cygnus.com) - - * cp-init.c (build_new): If arg 1 of an array reference is an - error_mark, then just pretend that there were 0 elements. + * cccp.c (rescan): Preserve newlines after macro names at the top level + since this is more likely to do the right thing with line numbers. - Tue Nov 10 13:23:30 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Mon Oct 17 11:31:42 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-typeck.c (build_x_function_call): If the type of FUNCTION is an - error_mark, don't bother checking its lang-specific info. + * reload1.c (gen_reload): Renamed from gen_input_reload. + (emit_reload_insns): Delete SECONDARY_MEM_NEEDED case for input + reloads that can't happen and doesn't work. + Fix errors in use of reload_outxx insns. + Simplify output reload code by using gen_reload. + * reload.h (gen_reload): Renamed from gen_input_reload. - Tue Nov 10 12:38:36 1992 Mike Stump (mrs@rtl.cygnus.com) +Mon Oct 17 09:26:57 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * cp-decl.c (decls_match): Avoid core dumping when TREE_TYPE is - NULL_TREE, as is the case when olddecl is a TEMPLATE_DECL. + * unroll.c (copy_loop_body, case JUMP_INSN): Don't abort if invert_exp + fails. Instead, redirect the jump around an unconditional branch. - Tue Nov 10 11:03:36 1992 Brendan Kehoe (brendan@lisa.cygnus.com) - - * cp-decl.c (pushdecl_top_level): Disable assert for now; it's - always acted correctly. - - Mon Nov 9 12:04:27 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Sun Oct 16 05:02:23 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * cp-parse.y (try_for_typename): Deleted rule. - (scoped_id): Don't use it. + * emit-rtl.c (add_insn_{before,after}): Don't abort because AFTER was + deleted when not optimizing. - Fri Nov 6 18:07:37 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Fri Oct 14 19:26:28 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * cp-init.c (expand_aggr_init): If INIT is 0, don't bother trying to - play with its type. + * pa.c (emit_move_sequence): Handle secondary reload when loading + a constant into SAR. - Thu Nov 5 16:52:37 1992 Chip Salzenberg (chip@tct.com) +Fri Oct 14 10:29:31 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * cp-decl.c (finish_decl): Set TREE_STATIC, TREE_PUBLIC and - DECL_EXTERNAL correctly for use with #pragma interface. + * fixincludes: Fix X11/Intrinsic.h for RISCiX to remove ___type from + XtOffset. + Add all files that receive special attention to REQUIRED, so that + dependent copies are done if necessary. - Fri Nov 6 10:07:01 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * getpwd.c: Always use getwd if HAVE_GETWD is defined. + * arm/xm-arm.h: Define HAVE_GETWD. - * cp-class.c (finish_struct): Don't try to work with a field that - got a bogus type. + * arm/x-riscix, arm/t-riscix: New files + * configure (arm-*-riscix*): Use them. + +Thu Oct 13 17:12:27 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - * cp-method.c (build_overload_value): Don't call debug_tree! + * i960.md (call, call_internal, call_value, call_value_internal): + Use memory_operand not general_operand. - * cp-call.c (build_method_call): If processing a default argument - that calls a ctor for its default value, use INSTANCE_PTR for the - parm list, discarding what we knew before. + * optabs.c (expand_fix): Correct typo with FIX/UNSIGNED_FIX + REG_NOTES. - * cp-decl.c (grokdeclarator): If initializing a const member and - acting pedantic, then do make it an error. +Thu Oct 13 10:44:32 1994 Ian Lance Taylor (ian@cygnus.com) - * cp-decl2.c (warn_traditional): New variable. - (lang_decode_option): Use it for -Wtraditional and -Wno-traditional. - * cp-tree.h (warn_traditional): Add decl. - * cp-lex.c (readescape): For x, avoid overflow when shifting in if. - Warn for \a and \x if warn_traditional; pass through - the escaped x and a if -traditional. Support \e like \E; for both, - pedwarn about ANSI C. + * genattrtab.c (optimize_attrs): Don't do anything if + num_insn_ents is zero. - * cp-call.c (find_scoped_type): Delete arg TAGS; instead, compute it - inside from TYPE. If TAGS is null, don't return immediately, since - we need to look for TYPE_DECLs. - (resolve_scope_to_name): Call find_scoped_type without replicating - the tags. +Wed Oct 12 19:06:48 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - Thu Nov 5 17:53:32 1992 Brendan Kehoe (brendan@cygnus.com) + * mips/mips.c (mips_expand_prologue): Handle types that need + constructing. Rename TYPE to PASSED_TYPE and use consistently. - * cp-decl.c (grokdeclarator): Constant class members can be - initialized. +Wed Oct 12 11:32:05 1994 Ian Lance Taylor (ian@cygnus.com) - Thu Nov 5 17:11:30 1992 Mike Stump (mrs@cygnus.com) + * genattrtab.c (num_insn_ents): New static variable. + (remove_insn_ent): Decrement num_insn_ents. + (insert_insn_ent): Increment num_insn_ents. + (optimize_attrs): Use xmalloc to allocate all the attr_value_list + structures at once, rather than using alloca for each one. - Thu Nov 5 19:48:17 1992 Niklas Hallqvist (niklas@appli.se) +Wed Oct 12 09:17:34 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-pt.c (instantiate_class_template): Types are used in later - processing, so they must go into the permanent obstack. + * optabs.c (??hf2_libfunc): Define like ??sf2_libfunc. + (emit_float_lib_cmp): Call HFmode library functions. + (init_optabs): Set names for HFmode comparison functions. + * expr.h (??hf2_libfunc): Add declarations, like ??sf2_libfunc. - Thu Nov 5 13:02:56 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Tue Oct 11 19:20:48 1994 Douglas Rupp (drupp@cs.washington.edu) - * cp-decl.c (grokdeclarator): Don't allow members to be initialized - in the class declaration. + * winnt/ld.c (main): Pass -debug:full -debugtype:coff. + * winnt/t-winnt: Rework rules for ld. + * i386/config-nt.bat: Renamed from config/i386/config-winnt.bat. + Make specific for x86, not all winnt; change filenames. + * i386/config-nt.sed: Remove -g from CFLAGS. + Reflect changes to t-winnt and other minor changes. + * i386/x-winnt: Renamed from winnt/x-winnt. + * i386/config-nt.sed: Renamed from config/winnt/top.sed. + +Tue Oct 11 18:40:41 1994 Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de) - * cp-decl2.c (finish_file): Set the DECL_CLASS_CONTEXT on a function - that's a file-scope set of ctors/dtors for global variables, so - is_friend will see things the way they should be seen. + * rs6000.h (ASM_DECLARE_FUNCTION_NAME): Always put out .lglobl + for static functions. - * cp-call.c (find_scoped_type): New function. - (resolve_scope_to_name): Use it to check for names that might be in - base classes. +Mon Oct 10 19:19:51 1994 Alex T. Ramos (ramos@engr.latech.edu) - Wed Nov 4 00:43:15 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * expr.c (convert_move): Add TImode conversions. - * cp-parse.y (db_yyerror): Deleted fn. - (yyprint, yyerror, init_parse, yyhook, reduce_cmp, token_cmp, - print_parse_statistics,set_yydebug, debug_yytranslate): Moved to - cp-lex.c. - (reduce_count, token_count): Ditto. - (current_declspecs): Made static. +Mon Oct 10 18:46:44 1994 Alex Dreyzen (alex@alex.jf.intel.com) - * cp-typeck.c (build_c_cast): Warn if casting between a pointer and - an integer whose sizes differ. + * optabs.c (expand_float): Copy TEMP to TARGET when + making recursive call and adjusting. - * cp-parse.y (unary_expr): Finish making new with placement work; - use the rule `new' instead of the token `NEW' when parsing it. +Mon Oct 10 07:10:25 1994 Michael Meissner (meissner@osf.org) - Tue Nov 3 02:16:47 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * i386/linux.h (DEFAULT_PCC_STRUCT_RETURN): Do not define as 0 if + LINUX_ELF is defined. + (perform.h): Include perform.h to define asm statements to use for + libgcc1.a builds. - * cp-typeck.c (c_expand_return): Avoid referencing DECL_NAME if it's - null when checking for a ref to or the addr of a local variable. + * i386/linuxelf.h (DEFAULT_PCC_STRUCT_RETURN): Define as 1. + (RETURN_IN_MEMORY): Don't define. - * cp-search.c (dfs_pushdecls): Don't try to use the context of a - field which has none at the time. +Sun Oct 9 11:49:20 1994 Michael Meissner (meissner@osf.org) - * cp-decl.c (redeclaration_error_message): Don't complain about - redefinition of a function if it's a definition of an abstract - virtual function. - (duplicate_decls): For an abstract virtual, don't use the old RTL - from abort when creating the RTL for the newdecl. + * i386/i386.md (movsf_mem): Add & constraint, so that the scratch + register does not clobber the destination address. - Tue Nov 3 00:15:44 1992 Brendan Kehoe (brendan@cygnus.com) +Sun Oct 9 12:40:43 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * cp-decl.c (grokdeclarator): For `inline', `unsigned', and `signed', - see them as types, not as storage class specs, when looking for more - than one storage class. + * arm.md (reload_outdf): Don't call gen_addsi3 if the address is just + a register. - * cp-lex.c (readescape): New arg ignore_ptr. - (real_yylex): Pass new arg, handle result that comes back. +Sat Oct 8 11:16:50 1994 Doug Evans (dje@cygnus.com) - * cp-decl.c (WCHAR_TYPE_SIZE): Deleted; never used. + * objc/archive.c (__objc_free): New function. + (__objc_finish_read_root_object): Use it. - Mon Nov 2 10:23:52 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Fri Oct 7 19:23:03 1994 J.T. Conklin (jtc@cygnus.com) - * cp-lex.c (real_yylex): Let skip_white_space handle \r. + * ginclude/stddef.h: Netware uses _SIZE_T_DEFINED_, _WCHAR_T_DEFINED_. - * cp-parse.y (parmlist): Warn on a decl `foo (...)', without a first - argument. +Fri Oct 7 12:45:43 1994 Michael Meissner (meissner@osf.org) - * cp-type2.c (build_functional_cast): If expr_as_ctor's argument is - a SAVE_EXPR, don't wipe out the argument. + * i386/i386.c (legitimate_address_p): Disable SUBREGs as either + the index or base register. - * cp-call.c (build_method_call): Only complain about not having an - object for a called method if the method is non-static. +Fri Oct 7 08:24:44 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Sun Nov 1 16:50:14 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * i386/gnu.h (CPP_PREDEFINES): Define __HURD__. - * cp-decl2.c (warn_char_subscripts): Declare. - (lang_decode_option): Handle -Wchar-subscripts. - * cp-typeck.c (build_array_ref): If the type of either the array or - its index is an error_mark_node, then return one. Add code to see - if the index is a character (add warning), then do the default - promotions. Don't warn if it's a register array. Make a ref - volatile if the array is volatile. - * cp-tree.h (warn_char_subscripts): Add decl. + * collect2.c (my_strerror): If HAVE_STRERROR defined, call strerror. + * xm-gnu.h (HAVE_STRERROR): Define. - * cp-typeck.c (common_type): If either type is nonsense (an - error_mark), use the other type. + * function.c (preserve_temp_slots): If X cannot be a temp + slot, preserve all things whose address was taken at the + present level. - Thu Oct 29 18:39:50 1992 Mike Stump (mrs@cygnus.com) + * function.c (assign_stack_temp): Abort if SIZE == -1. - * cp-decl.c (grokdeclarator): Fix problem introduce by me on Oct 22 - 17:41:13. Put back call to build_offset_type that I took out, as it - is not wrong, as the comment for build_offset_type had led me to - believe. + * expr.c (safe_from_p): If EXP has a variable size, assume safe. + (preexpand_calls): Don't preexpand a call that returns a variable- + sized object. - Thu Oct 29 17:30:12 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * emit-rtl.c (add_insn_{after,before}): Fix error in last change. - * cp-cvt.c: Delete block-level extern decls; include flags.h instead. - * cp-tree.h (flag_int_enum_equivalence): Declare here. - * cp-call.c: Not here. +Thu Oct 6 09:18:28 1994 Kresten Krab Thorup (krab@next.com) - * Makefile.in (stamp-cp-parse): There are now only 29 shift/reduce - conflicts, because of the removed wrapper stuff. + Adam Fedor (fedor@hopper.colorado.edu) + * objc/archive.c (__objc_finish_read_root_object): Delay freeing + of back-patch list. - * cp-lex.c (lastiddecl, ridpointers): Define here. - (NORID): Don't define here. - * cp-lex.h (NORID): Define here instead. - (ridpointers, lastiddecl, token_buffer, looking_for_typename): Ditto. - (make_pointer_declarator, make_reference_declarator, - reinit_parse_for_function, reinit_parse_for_method, yylex): Likewise. - * cp-parse.y: Don't define any of them in here. + Andrew McCallum (mccallum@cs.rochester.edu) + * objc/objc.h (BOOL): Changed from char to unsigned char. - * cp-typeck.c (commonparms): Call tree_cons with NULL_TREEs, not 0s. - (convert_arguments): Likewise. - Throughout the file, say `ANSI C++ forbids', not `ANSI C forbids'. - * cp-lex.c, cp-type2.c: Likewise. +Thu Oct 6 08:17:04 1994 Stan Cox (coxs@dg-rtp.dg.com) - Remove wrapper functionality from the compiler. - * cp-call.c (build_method_call): Delete wrap and wrap_type. - Delete code that used them. Don't set err_name to "wrapper", since - wrapper_name doesn't exist anymore. - * cp-class.c (finish_base_struct): Don't worry about TYPE_WRAP_TYPE. - * cp-decl.c (grokfndecl): Delete code for WRAPPER_EXPR and - ANTI_WRAPPER_EXPR. - (grokdeclarator): Likewise. Don't set TREE_HAS_WRAPPER_PRED. - * cp-decl2.c (grokclassfn): Likewise. - (check_classfn): Likewise. - * cp-init.c (get_member_function): Don't check TYPE_NEEDS_WRAPPER. - * cp-lex.c (real_yylex): Don't check WRAPPER_OR_ANTI_WRAPPER_NAME_P. - * cp-method.c (wrapper_name, wrapper_pred_name, anti_wrapper_name): - Deleted variables. - (init_method): Don't do any setup for *WRAPPER_*. - (hack_wrapper): Deleted function. - * cp-parse.y (wrapper): Deleted rule. - (identifier_or_opname): Deleted all wrapper predicates. - (notype_declarator): Deleted predicates LEFT_RIGHT for wrappers. - * cp-ptree.c (print_lang_type): Deleted message for printing "wrapper". - * cp-search.c (get_wrapper): Deleted fn. - * cp-tree.h (struct lang_type): Deleted has_wrapper_pred and - wrap_type members. - (build_wrapper, hack_wrapper, get_wrapper): Deleted decls. - (wrapper_name, wrapper_pred_name, anti_wrapper_name): Deleted decls. - (TYPE_WRAP_TYPE, TYPE_HAS_WRAPPER, TYPE_NEEDS_WRAPPER, - TYPE_HAS_WRAPPER_PRED, WRAPPER_DECL_FORMAT, WRAPPER_PRED_DECL_FORMAT, - ANTI_WRAPPER_DECL_FORMAT, WRAPPER_NAME_FORMAT, - WRAPPER_PRED_NAME_FORMAT, ANTI_WRAPPER_NAME_FORMAT, - WRAPPER_NAME_P, WRAPPER_PRED_NAME_P, ANTI_WRAPPER_NAME_P, - WRAPPER_OR_ANTI_WRAPPER_NAME_P): Deleted. - (enum overload_flags): Deleted WRAPPER_FLAG, WRAPPER_PRED_FLAG, - and ANTI_WRAPPER_FLAG tags. - * cp-typeck.c (build_function_call_real): Delete wrapper code. - (unary_complex_lvalue): Don't check TYPE_NEEDS_WRAPPER. - * stmt.c (warn_if_unused_value): Don't check *WRAPPER_EXPR. - * tree.def (WRAPPER_EXPR, ANTI_WRAPPER_EXPR): Deleted. + * m88k/m88k.c (emit_move_sequence): If operand1 is an invalid PIC + address, then legitimize it before doing anything else. - Wed Oct 28 15:38:44 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Thu Oct 6 06:54:03 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-cvt.c (convert_to_reference): New arguments FNDECL, PARMNUM, - and ERRTYPE. Use them to give warnings about const and volatile - references being used incorrectly. Call itself with dummy arguments - where appropriate. - (convert): Call convert_to_reference with dummy args. - (convert_force): Likewise. - * cp-typeck.c (warn_for_assignment): Remove static declaration, - cp-cvt.c needs to see it now. - (convert_for_initialization): Call convert_to_reference with fndecl, - parmnum, and errtype. + * cse.c (cse_insn): Don't call force_const_mem on (const (truncate)). - Tue Oct 27 17:38:18 1992 Mike Stump (mrs@cygnus.com) + * expr.c (store_expr): Don't clobber TEMP with address. - * cp-decl.c (grokdeclarator): Fix problem introduce by me on Oct 22 - 17:41:13. Only output error or warning message about extra - qualifiers when we are inside a class declaration. + * reorg.c (try_merge_delay_insns): Update THREAD if it is split. - Tue Oct 27 16:21:41 1992 Mike Stump (mrs@cygnus.com) + * function.c (struct temp_slot): New field addr_taken. + (assign_stack_temp): Initialize it. + (mark_temp_addr_taken): New function. + (preserve_temp_slots): Decrement level of things at same level + but whose address has been taken. + * expr.c (expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken. - * cp-tree.h (THIS_NAME_P): Fix to reflect September 1 change in - THIS_NAME. +Wed Oct 5 14:17:39 1994 Jason Merrill (jason@phydeaux.cygnus.com) - Tue Oct 27 12:35:59 1992 Brendan Kehoe (brendan@lisa.cygnus.com) + * fold-const.c (fold, COMPONENT_REF): Don't die if the CONSTRUCTOR + doesn't initialize the field we want. - * cp-parse.y (operator_name): Remove check for top-level operator - decl. - * cp-decl.c (grokdeclarator): Complain here about type conversion - operators that aren't declared as members of classes. +Wed Oct 5 11:38:48 1994 Michael Meissner (meissner@osf.org) - * cp-decl.c (grokdeclarator): Only call do_friend on a friend if - decl's non-zero. + * i386/i386.c (legitimize_pic_address): Changes to support + LABEL_REF references when using -fpic. + (output_pic_addr_const): Ditto. + (print_operand_address): Ditto. - Tue Oct 27 09:31:08 1992 Mike Stump (mrs@cygnus.com) + * i386/i386.md (movsi insn): Changes to support LABEL_REF + references when using -fpic. + (movsi_lea): Name insn supporting lea instruction so it shows up + more clearly when doing -dp. - * cp-lex.c (do_identifier): Add missing fourth argument to - lookup_field. +Wed Oct 5 06:56:36 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Mon Oct 26 15:15:39 1992 Mike Stump (mrs@cygnus.com) + * reorg.c (try_merge_delay_insns): Update THREAD if deleting first + insn in it. - * cp-cvt.c (convert_to_reference): Check for ambiguities - between constructor and conversion operators a bit harder. +Wed Oct 5 01:19:14 1994 Roland McGrath - Sat Oct 24 19:34:39 1992 Brendan Kehoe (brendan@cygnus.com) + * configure (i[345]86-*-gnu*): Set xm_file=i386/xm-gnu.h. + * config/i386/xm-gnu.h: New file. + * config/xm-gnu.h: New file. + * config/i386/gnu.h: Move #include out of here, into + config/xm-gnu.h. - Mon Sep 14 14:36:53 1992 Chip Salzenberg (chip@tct.com) +Tue Oct 4 23:19:28 1994 Michael Meissner - cp-decl.c (poplevel): If apparently nested inline function has - DECL_ABSTRACT_ORIGIN, don't output it; propagate TREE_ADDRESSABLE. - (pushdecl): When copying inline details into an extern decl, - copy DECL_RESULT, TREE_ASM_WRITTEN. Set DECL_ABSTRACT_ORIGIN. + * protoize.c (POSIX includes): If POSIX is defined, include + sys/wait.h to get WIFSIGNALED, WTERMSIG, WIFEXITED, and + WEXITSTATUS. - Fri Oct 23 18:52:19 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Tue Oct 4 21:48:02 1994 Michael I Bushnell - * cp-decl.c (poplevel): Use error_with_decl on an unused label, so - its line number comes out correct. + * config/i386/gnu.h: Include to get O_RDONLY definition. + * gcc.c (O_RDONLY): Define macro iff not already defined. + (read_specs): Second arg to open should be O_RDONLY, not constant 0. - Thu Oct 22 18:31:50 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Tue Oct 4 19:06:38 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-parse.y (operator_name): If a type conversion operator is - defined at the top level, don't crash, complain. + * expr.c (do_jump_for_compare): Properly scan insns when + branch is at start of sequence. - Thu Oct 22 17:41:13 1992 Mike Stump (mrs@cygnus.com) +Tue Oct 4 16:53:54 1994 Ian Lance Taylor (ian@cygnus.com) - * cp-decl.c (grokdeclarator): Return void_type_node instead of - NULL_TREE on errors, to forestall another error message. Check for - redundant or illegal qualification on class members. + * gcc.c, collect2.c, protoize.c (WIFSIGNALED): Define if not + already defined. + (WTERMSIG, WIFEXITED, WEXITSTATUS): Likewise. + * gcc.c (execute): Use them. + * collect2.c (do_wait): Likewise. + * protoize.c (gen_aux_info_file): Likewise. - Thu Oct 22 13:15:57 1992 Mike Stump (mrs@cygnus.com) +Tue Oct 4 16:38:06 1994 Michael Meissner - * cp-tree.h (ANON_AGGRNAME_P): Check the second charater as well, as - it could be $vtbl_ptr_type, and not an ANON_AGGRNAME. + * i386/i386.h (RETURN_IN_MEMORY): Define so that large types such + as complex double values get returned like structures do, and + don't overwrite %ebx. - Wed Oct 21 19:31:36 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Tue Oct 4 15:58:21 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - * cp-call.c (build_method_call): Initialize b_or_d to 0. + * lynx-ng.h, lynx.h (PREFERRED_DEBUGGING_INFO): Add undef before + define. - * cp-typeck.c (compparms): Delete dead code for returning if either - TREE_PURPOSE is true when t1 and t2 are both 0. +Tue Oct 4 05:12:02 1994 Richard Stallman - * cp-parse.y (object): Only pass one argument into build_x_arrow. + * config.sub: Translate -gnu/linux* to -linux*. - * cp-parse.y (unary_expr): Add code to parse `&&label'. - (stmt): Expand computed gotos. +Mon Oct 3 11:43:45 1994 Ian Lance Taylor (ian@cygnus.com) - * cp-method.c (fndecl_as_string): Say it's static before giving its - type, it looks better (and matches how you'd declare it). + * config.sub: Add support for MIPS variants: mips64, mipsel, + mips64el, mips64orion, mips64orionel, mips3*. - Wed Oct 21 16:22:43 1992 Mike Stump (mrs@cygnus.com) +Sun Oct 2 18:26:34 1994 Jason Merrill (jason@phydeaux.cygnus.com) - * cp-decl.c (start_decl): return NULL_TREE, not error_mark_node to - signify error. - * cp-decl2.c (cplus_decl_attributes): New function. Don't call - decl_attributes if the first argument is NULL_TREE. - * cp-tree.h (cplus_decl_attributes): Declare new function. - * cp-parse.y: Changed all calls to decl_attributes into calls to - cplus_decl_attributes, as all calls may pass NULL_TREE in the first - argument. + * function.c (push_function_context_to): Renamed from + push_function_context, adds argument to indicate that the new + function is not a nested function. + (push_function_context): Call it. + (pop_function_context{,_from}): Similarly. - Wed Oct 21 11:40:35 1992 Mike Stump (mrs@cygnus.com) + * tree.c (save_tree_status): Add argument to indicate that the new + function is not a nested function. + (restore_tree_status): Ditto. - * cp-call.c (build_method_call): Avoid an abort on parse errors by - changing an assert into a conditional my_friendly_abort. +Sun Oct 2 18:05:37 1994 Doug Evans (dje@cygnus.com) - Tue Oct 20 16:52:32 1992 Mike Stump (mrs@cygnus.com) + * configure (i[34]86-*): Change to i[345]86-*. + (target_cpu_default): Treat i586 as an i486 (for now). - * cp-tree.h (TYPE_ASSEMBLER_NAME_STRING, - TYPE_ASSEMBLER_NAME_LENGTH): New macros. - * cp-search.c (build_type_pathname): Use new macros. - * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for TYPE_DECLs with - build_overload_name so that assembler names for template type things - are like __vt$t1X1Zi$1T.4 and not __vt$X$T.4. - * cp-decl.c (pushdecl): Since the rest of the compiler wants to use - DECL_NAME for TYPE_DECLs, use that instead of DECL_ASSEMBLER_NAME. +Sun Oct 2 10:25:51 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - Tue Oct 20 11:29:50 1992 Mike Stump (mrs@cygnus.com) + * arm.md (movsf): If reloading, create a scratch from the target for + loading a constant into integer regs. + (movdf): Likewise. - Wed Oct 7 16:01:55 1992 Chip Salzenberg (chip@tct.com) + Support for variants that fault on unaligned addrs: + * arm.h (TARGET_SHORT_BY_BYTES): New macro. + (TARGET_SWITCHES): Recognize switches -m[no-]short-load-bytes. + (TARGET_DEFAULT): Only define if not already done so. + (PROMOTE_MODE): Promote HImode unsigned if TARGET_SHORT_BY_BYTES. + (SECONDARY_INPUT_RELOAD_CLASS): Need a scratch for reloading HImode if + TARGET_SHORT_BY_BYTES. + * arm.c (arm_reload_in_hi): New function. + * arm.md (zero_extendhisi2, extendhisi2): Expand to suitable byte + sequence when TARGET_SHORT_BYTES and loading a mem. + (movhi_bytes, extendhisi2_mem): New expands. + (movhi): Call movhi_bytes to load a short from memory if + TARGET_SHORT_BY_BYTES. + (all matchers loading a short from memory): Don't match if + TARGET_SHORT_BY_BYTES. + (matcher for movhi when TARGET_SHORT_BY_BYTES): New pattern to cover + remaining valid cases. - [ changes propagated from 921005 snapshot ] - * cp-lex.c (readescape): No warning if digits in \x are all 0's. +Sun Oct 2 08:54:30 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Fri Oct 9 15:18:19 1992 Brendan Kehoe (brendan@cygnus.com) + * reg-stack.c (subst_stack_regs): Check for NOTE to see if insn was + deleted. - * cp-decl.c (duplicate_decls): Only find out if olddecl is a - friend after we know it's not a TREE_LIST. + * reorg.c (fill_slots_from_thread): Update THREAD if deleting + its first insn. - Wed Oct 7 16:04:34 1992 Mike Stump (mrs@cygnus.com) + * reg-stack.c (delete_insn_for_stacker): Don't set INSN_DELETED_P + on NOTE_INSN_DELETED. - Wed Oct 7 12:26:07 PDT 1992 Ron Guilmette (rfg at netcom.com) +Sat Oct 1 20:42:33 1994 Chip Salzenberg - * cp-lex.c (readescape): Permit \? as an escape sequence. + * sco4.h (CPP_PREDEFINES): Remove i386, unix. + (CPP_SPEC): Add them here, so that they're undefined if -ansi. + Also add _i386 and _unix, which are always defined. + * x-sco (CLIB): Add "-lmalloc". + (ALLOCA): Define as "-lPW". + * x-sco4 (CC, OLDCC, RCCFLAGS, CCLIBFLAGS, CLIB, ALLOCA): From x-sco. + (X_CFLAGS): Remove. - Tue Oct 6 17:54:09 1992 Mike Stump (mrs@cygnus.com) +Sat Oct 1 14:27:45 1994 Michael Meissner (meissner@osf.org) - Major MI revamp. + * i386/i386.md (movsf_push386): Rename to movsf_push_nomove. + (movdf_normal): Prefer to use float registers rather than general + purpose registers. - * cp-search.c (get_binfo, find_base_distance): Fix comments. - Disable incorrect code that would incorrectly find ambiguities where - none existed. Add some code to find all ambiguities. - * cp-search.c (get_binfo2_recursive, get_binfo2): Added to find - ambiguities. +Sat Oct 1 07:01:10 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * cp-search.c (convert_pointer_to_single_level): Added so that one - can convert pointer unambiguously to an immediate base class - pointer. + * c-decl.c (shadow_label): Emit an error if the label is already + declared at this label scope. - * cp-search.c (dfs_walk): Added comments. Fixed to keep track of - how it walks the inheritance hierarchy so that when we get down to - the bottom, we have a pointer to what we want. - * cp-search.c (dfs_find_vbases): Changed to use new intermediate - pointer instead of incorrectly trying to convert at the bottom. - * cp-search.c (init_vbase_pointers): Changed to set up new - intermediate pointer. +Sat Oct 1 06:44:58 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-*.c: Rename child -> base_binfo, child_child -> - base_base_binfo, child_binfos -> base_binfos, .*_child -> - .*_base_binfo. Rename DERIVED_FROM_P to UNIQUELY_DERIVED_FROM_P. + * emit-rtl.c (add_insn_{before,after}): Abort if insertion point is + a deleted insn. + * jump.c (jump_optimize): When deleting a jump, properly set NEXT. + (duplicate_loop_exit_test): Don't insert NOTE_INSN_LOOP_VTOP + before deleted insn; insert first, then delete. - Tue Oct 6 14:51:13 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * gcc.c: Install omitted hunk from last diff. - * cp-spew.c (yylex_ctr): Make unsigned. - * cp-decl2.c (spew_debug): Add extern reference. - (lang_decode_option): New option `-spew-debug', so masochists can - use it when they need to. +Fri Sep 30 18:26:11 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Mon Oct 5 15:47:35 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * emit-rtl.c (add_insn_after): Abort if can't find AFTER and it + has no NEXT_INSN. + (add_insn_before): New function. + (emit_{insn,insns,jump_insn,call_insn,barrier,note}_before): Call it. - Implement protected baseclasses. - * cp-class.c (finish_base_struct): Set TREE_VIA_PROTECTED. - (finish_struct_methods): Check for either public or protected - members to kick out of the "all members are private" test. - * cp-decl.c (xref_tag): Set TREE_VIA_PROTECTED appropriately. - * cp-parse.y (base_class_visibility_list): Remove code about - `protected' visibility not being implemented. - * cp-pt.c (tsubst): Set via_protected and call hash_tree_cons - with it as necessary. - * cp-search.c (compute_visibility): Set visibility if protected. - Return the appropriate visibility when resolving a field. - (lookup_field): Set TREE_VIA_PROTECTED for btypes from its child. - When complaining about a member being protected, differentiate when - it's from a protected base class (could be a public member in the - base). - (lookup_fnfields): Set TREE_VIA_PROTECTED. - (get_baselinks): Pass TREE_VIA_PROTECTED into hash_tree_cons. - Also pass a 0 when necessary. - * cp-tree.c (propagate_binfo_offsets): Set TREE_VIA_PROTECTED. - (layout_vbasetypes): Ditto. - (layout_basetypes): Ditto. - (list_hash_lookup): Check TREE_VIA_PROTECTED when looking at an - incomplete basetype. - (hash_tree_cons): New argument `via_protected'. Set TREE_VIA_PROTECTED - when necessary. - (list_hash_lookup_or_cons): Check TREE_VIA_PROTECTED when making - sure a hash list is sane. - (make_binfo): Set TREE_VIA_PROTECTED for the new child. +Fri Sep 30 17:33:41 1994 Douglas Rupp (drupp@cs.washington.edu) - Mon Oct 5 13:27:44 1992 Mike Stump (mrs@cygnus.com) + * config.sub (windowsnt): Alias for winnt. + (winnt): New OS name. + * configure (extra_programs): New, like extra_parts. + (i[34]86-*-winnt3.1): New configuration. + * genattr.c (atoi): Remove declaration. + * getpwd.c: #ifdef WINNT, include direct.h. + * sdbout.c: Don't include syms.h for winnt. + * toplev.c: Don't include times.h for winnt. + (get_run_time): Just return zero for winnt. + (main): Don't print memory usage for OS/2 or winnt. + * cccp.c (main): Use DIR_SEPARATOR if defined. + Use "Include" environment variable instead of CPATH for winnt. + * gcc.c: Don't include sys/file.h for winnt; use process.h instead. + (concat): Now just concats two things; all callers changed. + (concat[346]): New functions. + (dir_separator_str): New variable. + (exec_prefixes, startfile_prefixes, include_prefixes): Renamed + from same names without plural; all users changed. + (find_a_file, process_command, do_spec_1): Use DIR_SEPARATOR. + (find_file, is_directory, main): Likewise. + (lookup_compiler): If OS/2, do case-independent search. + (fix_argv): New function on winnt. + (FIX_ARGV): New macro for some systems; use instead of argv. + * i386/unix.h: Treat ALMOST_STDC like __STDC__. + (AS2C): New macro. + * i386.c (output_387_binary_op): Use AS2C instead of AS2 with + null first arg. + * config/winnt/config-nt.bat, config/winnt/ld.c: New files. + * config/winnt/{[tx]-winnt, config/winnt/top.sed: New files. + * config/winnt/winnt.h, config/winnt/xm-winnt: New files. + * i386/winnt.h, i386/xm-winnt.h: New files. - * cp-init.c (maybe_adjust_addr_for_delete): Make sure we don't - evaluate the addr twice if it has side effects. +Thu Sep 29 19:53:14 1994 Jim Wilson (wilson@cygnus.com) - Mon Oct 5 13:05:37 1992 Mike Stump (mrs@cygnus.com) + * sparc.md (movdf+3): Handle overlapping registers in define_split. - * cp-init.c (build_vec_delete): Make sure we don't evaluate the base - expression twice if it has side effects. + * gcc.c (default_compilers): Add %Z to all cpp specs. + (n_preprocessor_options, preprocessor_options): New variables. + (process_command): Handle -Wp option. + (do_spec_1): Handle %Z spec. - Mon Oct 5 12:38:35 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * i960/i960-coff.h: New file. + * t-960bare: New file. + * config.sub (os): Accept coff as an OS. + * configure (i960-*-coff): New configuration. - * cp-decl.c (grokdeclarator): Issue a warning or error if we're - being ANSI-careful when they do `extern inline'. - (flag_ansi): Add extern decl. + * expr.c (result_vector): Use INCOMING_REGNO when !savep instead + of when savep. + * sparc.md (call): Use struct value pattern is struct size is not + equal to zero instead of greater than zero. + (call+7, call+8): New patterns for untyped calls. + (untyped_call): Revise to emit explicit rtl for all operation. + Delete four old patterns that matched the unexpanded untyped_call + pattern. + (blockage): New pattern. + (flush_register_windows): Modify from 0 to 1. + (goto_handler_and_restore): Modify from 1 to 2. + (flush): Modify from 2 to 3. + * sparc.c (sparc_initialize_trampoline): FLUSH is now 3 not 2. - Mon Oct 5 12:34:32 1992 Mike Stump (mrs@cygnus.com) + * calls.c (emit_library_call): For FUNCTION_ARG_PASS_BY_REFERENCE, + pass address through force_operand before using it. - * cp-class.c (finish_struct): Don't give an error if an enumeration - type is stuck in a bit-field, as it is legal c++. + * i960.c (i960_setup_incoming_varargs): Store parameter registers + at proper offset in argument block. - Mon Oct 5 11:43:09 1992 Mike Stump (mrs@cygnus.com) +Thu Sep 29 16:39:32 1994 Mike Stump - Mon Sep 14 16:39:10 1992 Chip Salzenberg (chip@tct.com) + * stmt.c (expand_return): We have to be careful of cleanups that can + be generated when expanding the return value, as they might otherwise + wipe out the return value. - * cp-cvt.c (convert_to_integer): Don't pass truncation thru lshift - if shift count >= width of narrower type. Instead, just use 0. +Thu Sep 29 13:35:24 1994 Mike Stump - Fri Oct 2 13:21:40 1992 Ken Raeburn (raeburn@kyriath.cygnus.com) + * expr.c (do_jump): Handle cleanups in TRUTH_ANDIF_EXPR and + TRUTH_ORIF_EXPR. - * cp-decl.c (start_function): Reinstate error check for missing - semicolon erroneously removed. +Thu Sep 29 13:23:56 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Thu Nov 12 17:37:23 1992 Michael Meissner (meissner@osf.org) + * gcc.c (struct option_map): Sort in alphabetical order. + (translate_options): Ignore option once an error occurs. + Fix error with reversed 'a' and 'o'. + Give error if specified abbreviation is unambiguous. - * mips.md (movdf_internal): Split movdf insn into two -- one for - normal use, and one for -msoft-float, and don't prefer FPU - registers in the -msoft-float case. - (movsf_internal): Ditto for movsf. + * c-typeck.c (convert_for_assignment): When converting object + to union, allow converting the constant zero into a pointer + member of the union. -Thu Nov 12 07:30:17 1992 James Van Artsdalen (james at bigtex.cactus.org) +Wed Sep 28 19:33:01 1994 Alex T Ramos (ramos@engr.latech.edu) - * i386.h (HARD_REGNO_MODE_OK): Restrict MODE_INT from FP regs only. + * machmode.def (PSImode): Widens to PDImode. + * expr.c (convert_move): Added handling of PDImode conversions. - * i386.md (floatMN2 recognizers): Don't omit mode on a - match_operand that might be reloaded. Split into separate - patterns for each mode. - (zero_extract test): Disable for now. +Wed Sep 28 19:24:17 1994 H.J. Lu (hjl@nynexst.com) - * i386.c (float_op): Delete - no longer used. + * configure: Don't make objc-runtime if cross-compiling gcc. + * build-make (FIXINCLUDES): Set to Makefile.in. -Wed Nov 11 11:55:22 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * combine.c (simplify_comparison, case ASHIFTRT): mode_for_size - returns BLKmode on error, not VOIDmode. +Wed Sep 28 19:18:19 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * romp.md (reload_outdi): Write as proper PARALLEL. + * function.c (trampoline_address): Add missing call to + round_trampoline. -Wed Nov 11 01:06:33 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Sep 28 18:34:13 1994 Michael Meissner (meissner@osf.org) - * toplev.c (lang_options): Change +e... to -+e... + * config/svr4.h (ESCAPES): Print \v in octal rather than as '\v', + since some older versions of gas didn't accept it. - * xm-tower.h: Include xm-svr3.h. - (bcopy, bzero, bcmp, USG): Macros deleted. +Wed Sep 28 14:29:20 1994 Ian Lance Taylor (ian@cygnus.com) -Tue Nov 10 12:26:23 1992 Steve Chamberlain (sac@cygnus.com) + * fixincludes: Comment out loop which handles symbolic links to + files. It appears to not work, and to be unnecessary. - * sdbout.c (plain_type_1): Handle LONG_TYPE_SIZE like INT_TYPE_SIZE. +Tue Sep 27 19:27:56 1994 Matthias Pfaller (leo@marco.de) -Tue Nov 10 14:20:27 1992 Michael Meissner (meissner@osf.org) + * ns32k.h (ENCODE_SECTION_INFO): Only calls may go through the + PLT. All address loads, even function address loads, have to + go through the GOT or function addresses will not be unique. - * mips.md (ffssi2): Add =& constraints to the two match_scratch - clobbered registers. Fix from John F Carr. +Tue Sep 27 19:20:12 1994 Paul Eggert (eggert@twinsun.com) - * mips-tdump.c (toplevel): Move #undef index and rindex before - including sym.h. + * cccp.c (newline_fix, name_newline_fix): Don't treat \r + specially here; it only causes bugs. This undoes the + May 14 16:01:13 1990 change to newline_fix and name_newline_fix. -Tue Nov 10 10:37:50 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Tue Sep 27 19:02:55 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * Makefile.in (install-common): Delete deps $(srcdir)/g++ $(srcdir)/c++ + * m88k.h (ASM_OUTPUT_SOURCE_LINE): Add missing #undef. - * expr.c (init_expr_once): Try indexing mem by fp as well as sp. +Tue Sep 27 18:32:17 1994 William J. Eaton (wje@hoffman.rstnu.bcm.tmc.edu) -Tue Nov 10 10:28:59 1992 Chris Smith (csmith@convex.com) + * function.c (optimize_bit_field): Put any insns made by + change_address in front of INSN. + (expand_function_end): Don't pass DECL_INITIAL to setjmp_protect + if it is error_mark_node. - * genattrtab.c (main): Unlimit stack size. + * genoutput.c, reload.c (n_occurrences): Make arg int, not char. + * objc-act.c (warn_with_method): Likewise. -Tue Nov 10 10:17:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * optabs.c (expand_fix): Call emit_library_call_value. - * print-rtl.c (print_rtx): Use sizeof spaces - 1 to get the length - of the spaces string. +Tue Sep 27 12:39:10 1994 Mike Stump (mrs@cygnus.com) -Tue Nov 10 09:56:32 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) + * Makefile.in, libgcc2.c (L_eh): some support routines for C++. - * pa-hpux.h (LINK_SPEC): Disable linking against shared libraries. - * pa-ghpux.h (LINK_SPEC): Likewise. +Mon Sep 26 06:45:20 1994 Michael Meissner (meissner@osf.org) -Tue Nov 10 08:39:01 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + * 386/i386.md (adddi3, subdi3): Rewrite to add a clobber of a + scratch variable, so that memory/memoroy adds and subtracts can be + done using just one scratch register. Also, don't require op1 to + be the same as op0. - * elxsi.h (GO_IF_LEGITIMATE_ADDRESS): Verify that register is valid - for use as base register (un-allocated pseudos aren't when strict). +Fri Sep 23 19:03:09 1994 Roland McGrath -Mon Nov 9 22:17:23 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * config/i386/gnu.h (LIB_SPEC): Remove macro. - * xm-3b1.h (index, rindex): Define as macros. +Fri Sep 23 16:11:26 1994 Michael Meissner (meissner@osf.org) - * i386bsd.h: Complete rewrite. + * i386/lynx-ng.h (CALL_USED_REGISTERS): Copy definition from + i386/lynx.h that makes ebx be a call clobbered register, since + some system calls evidently trash it. -Mon Nov 9 14:22:38 1992 Michael Meissner (meissner@osf.org) +Fri Sep 23 15:54:53 1994 Jim Wilson (wilson@cygnus.com) - * mips.h, decrose.h: Move LINK_LIBGCC_SPECIAL to decrose.h. + * configure (mips-*riscos*): Changed to mips-*-riscos*. + (mips-*-riscos*-*): Deleted. -Mon Nov 9 12:39:03 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * cse.c (invalidate): New parameter FULL_MODE. All callers + changed. + (set_nonvarying_address_components): Modify initial comment. + (cse_insn): When call invalidate for dest, use the actual dest not + inner_dest. - * unroll.c (final_biv_value): Make a note after loop_end - if we need to use NEXT_INSN (loop_end). +Thu Sep 22 18:56:19 1994 Torbjorn Granlund (tege@cygnus.com) - * objc-actions.c (build_message_expr): Don't crash if super_type is 0. + * expmed.c (expand_divmod): Special case for signed CEIL_DIV_EXPR + when divisor is power of 2. -Mon Nov 9 07:42:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) +Thu Sep 22 12:28:53 1994 Jason Merrill (jason@deneb.cygnus.com) - * caller-save.c (save_call_clobbered_regs): Ensure any insns we add - are in the same basic block as the insn we added them for. + * fixinc.svr4: Fix size_t, ptrdiff_t and wchar_t like fixincludes + does. Use extern inline rather than static inline in byteorder.h. -Mon Nov 9 12:35:57 1992 Torbjorn Granlund (tege@jupiter.sics.se) +Thu Sep 22 12:22:03 1994 Steve Dum (steve_dum@mentorg.com) - * pa.h (TARGET_*): Move it to the beginning of the file. - (CPP_SPEC): Handle -mnosnake. - * pa-ghpux.h pa-hpux.h pa1-ghpux.h pa1-hpux.h pa1.h pa.h: Move - definition of TARGET_DEFAULT to before inclusion of other pa*h files. - Only define TARGET_DEFAULT if not already defined. - Get rid of hpux8 conditionals. + * collect2.c (main): Discard the first executable once we've + exploited it. -Sun Nov 8 20:38:19 1992 James Van Artsdalen (james at bigtex.cactus.org) +Thu Sep 22 11:38:34 1994 Ian Lance Taylor (ian@cygnus.com) - * i386.md (movstrsi): mask move count after signed shift. + * fixincludes: Tweaks for LynxOS 2.2.2: accept spaces after # when + removing #define void int in curses.h; change prototype of fnctl + in fcntl.h to match POSIX.1. -Sun Nov 8 00:24:30 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Sep 22 07:18:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * fixinc.svr4: Avoid use of | in sed regexp; use multiple s commands. + * configure: Consistently put specified manufacturer names ahead + of entries with wildcard manufacturers. - * i386mach.h: Include i386gstabs.h, not i386gas.h. + * calls.c (emit_call_1): Fix typo in last change. - * gsyslimits.h: Renamed from syslimits.h. - * Makefile.in (USER_H): syslimits.h deleted. - (install-common-headers): Install gsyslimits.h as syslimits.h. - Depend on gsyslimits.h and assert.h. +Wed Sep 21 21:32:56 1994 Chris Smith (csmith@convex.com) - * cccp.c (rescan): Accept # as command inside macro args, etc. - If an actual newline at the same level precedes. + * config.guess: Add convex c3* and c4* guesses. + * configure: Don't run fixincludes on convex. - * fixincludes (EXINIT): Set it to `set', not null. +Wed Sep 21 15:59:12 1994 Ashley Saulsbury (ans@sics.se) - * toplev.c (main): Use strncmp when testing for gstabs+ vs gstabs. + * alpha.h (ASM_FILE_START): Write .set volatile. -Sat Nov 7 17:46:35 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Sep 21 14:45:45 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * optabs.c (expand_unop): - For complex negation, do get_insns, not gen_sequence. + * calls.c (emit_call_1): Properly add a CLOBBER for sp + to CALL_INSN_FUNCTION_USAGE. - * c-decl.c (finish_decl): Don't clear DECL_INITIAL in inline fn decls. + * c-typeck.c (mark_addressable): Give different error if trying + to put object with volatile fields into register; don't use DECL_NAME. - * c-typeck.c (process_init_constructor): Strip NOP_EXPR from indices. - Clear end_index if there's an error in a range. +Wed Sep 21 14:02:10 1994 Jim Wilson (wilson@cygnus.com) - * mips-5sysv.h, mips-5svr4.h, mips-5bsd.h (CPP_PREDEFINES): - Add single-underscore variants of all the predefined symbols. + * reload1.c (eliminate_regs): Make test in LOAD_EXTEND_OP case + more precise. - * gstddef.h [_ANSI_H_]: When undefing at the end, test _STDDEF_H, - not __need_ptrdiff_t. +Wed Sep 21 11:34:12 1994 Ian Lance Taylor (ian@cygnus.com) - * mips.c (gen_int_relational): Handle overflow when incrementing cmp1. + * fixincludes: Don't try to remove empty directories until after + removing DONE files. -Fri Nov 6 23:03:14 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Wed Sep 21 05:52:49 1994 Uwe Seimet (seimet@chemie.uni-kl.de) - * elxsi.c: Include config.h. + * m68k/atari.h (NO_{DOLLAR,DOT}_IN_LABEL): Define. -Fri Nov 6 18:53:21 1992 Chip Salzenberg (chip@tct.com) +Tue Sep 20 20:06:08 1994 Doug Evans (dje@cygnus.com) - * i386sco.h (STARTFILE_SPEC): Fix line wrap. - (SIGNED_CHAR_SPEC): Defined to set _CHAR_UNSIGNED. + * final.c (asm_insn_count): Handle ASM_INPUTs too. -Fri Nov 6 19:06:56 1992 Jim Wilson (wilson@sphagnum.cygnus.com) +Tue Sep 20 19:32:10 1994 Oliver Kellogg (okellogg@salyko.cube.net) - * dbxout.c (dbxout_symbol): Give name ` ' to unnamed enums. + * 1750a.h, 1750a.c, 1750a.md: New files, to use as1750. + * 1750a/m1750.inc: File deleted. + * 1750a/ms1750.inc: New file. -Fri Nov 6 15:26:30 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) +Tue Sep 20 17:55:50 1994 Hallvard B Furuseth (hbf@durin.uio.no) - * optabs.c (init_libfuncs): Add casts when comparing/incrementing enum. - -Fri Nov 6 15:41:00 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * toplev.c (main): Really accept -gstabs+. - -Fri Nov 6 06:46:22 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.md (tcnd_divide_by_zero, divsi3, udivsi3): Allow the - explicit trap for divide by zero to resume execution along the - expected path. - - * t-m88kv4 (FIXINCLUDES): Delete. - -Fri Nov 6 03:08:13 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * i386.md (andsi3): Mask immed op to 0xff in QI-reg ff00-byte case. - - * gstddef.h: Find ansi.h in machine subdir. - [__need_ptrdiff_t]: Don't undef _SIZE_T_ or _WCHAR_T_. - * gvarargs.h, gstdarg.h: Don't test, define or undef _VA_LIST_ - on NET 2 systems. Don't include ansi.h. - - * c-lex.c (readescape): Support \e like \E. Warn only if -pedantic. - -Fri Nov 6 08:34:17 1992 Tim Moore (moore at defmacro.cs.utah.edu) - - * integrate.c (copy_rtx_and_substitute)[ARGS_GROW_DOWNWARD]: Map - virtual args pointer to the top of the argument block. - * calls.c (expand_call)[ARGS_GROW_DOWNWARD] Fix fencepost error in - calculating high_to_save and low_to_save. Use - high_to_save to - address stack_area. - -Fri Nov 6 00:41:53 1992 Paul Eggert (eggert@twinsun.com) - - * sparc.h (TARGET_EDOM, GEN_ERRNO_RTX): Deleted. + * cccp.c (make_definition): Enable `-D' with macro arguments. -Thu Nov 5 18:55:44 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Tue Sep 20 17:49:47 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * alpha.c (output_prologue): Fix typo: `add' should be `addq'. + * cexp.y (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): New macros. + (expression_value): Now HOST_WIDE_INT. + (parse_c_expression): Now returns HOST_WIDE_INT. + * cccp.c (eval_if_expression): Likewise. + (do_if, do_elif): Reflect new return value of functions. -Thu Nov 5 18:35:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * alpha.c (mode_mask_operand): Always return a value. - * Makefile.in (install-fixincludes): Add semicolon in new for-loop. + * function.c (pop_function_context): Clear reg_renumber. -Thu Nov 5 15:24:14 1992 Michael Meissner (meissner@osf.org) + * gcc.c (process_command): Add new switch, -dumpmachine. - * i386rose.h, decrose.h (REAL_LD_FILE_NAME): Define to be the - correct location on OSF/1 -- /usr/bin/ld points to - /usr/ccs/gcc/ld, which is collect. - (REAL_NM_FILE_NAME): Ditto for nm. - (REAL_STRIP_FILE_NAME): Ditto for strip. +Tue Sep 20 15:57:40 1994 Jim Wilson (wilson@cygnus.com) -Wed Nov 4 13:36:10 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + * sched.c (sched_analyze_insn): Parameter loop_note type changed + to rtx, and name changed to loop_notes. Code adding it to + REG_NOTES modified to account for type change. + (sched_analyze): Variable loop_note type changed to rtx, and name + changed to loop_notes. Store LOOP_* REG_DEAD notes in it instead + of LOOP_* NOTE_LINE_NUMBER. + (schedule_block): Pass last not insn to emit_note_before call. - * optabs.c (expand_binop): When trying to expand a multiple word - add into multiple single word adds, don't overwrite OP0 and OP1 in - case we must backtrack. We use instead new variables XOP0 and XOP1. + * iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Define. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Define. + (ASM_DECLARE_FUNCTION_SIZE): Define. + * mips.c (mips_output_external): Use ASM_OUTPUT_UNDEF_FUNCTION. + (mips_output_external_libcall): New function. + (mips_asm_file_end): Handle ASM_OUTPUT_UNDEF_FUNCTION. + * README.IRIX5: Update. -Wed Nov 4 16:45:53 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Tue Sep 20 14:39:37 1994 Michael Meissner (meissner@osf.org) - * config.sub: Don't discard SCO version number if it's 3.2v4. + * i386/i386.h (output_move_memory): Add declaration. + (output_move_pushmem): Ditto. - * xm-vax-vms.h (HOST_FLOAT_FORMAT): Defined. + * i386/i386.c (output_move_pushmem): New function to handle + pushing bytes from memory onto the stack, possibily using + temporary registers. + (output_move_memory): New function to handle moving bytes from + memory to memory via temporary registers. - * varasm.c: Fix typos in last change. + * i386/i386.md (movsi insn): If -fpic and the value we are moving + is a constant pool address, emit a leal instruction instead of + movl. + (movsf_push): Allow pushes from memory. + (SF, DF, XF, DI pushes): Move most of the code to the common + function output_move_pushmem. + (SF, DF, XF, DI memory->memory moves): Move most of the code to + the common function output_move_memory. + (DI move patterns): Combine DI patterns into two, one for pushes, + and one for everything else, so that the combiner will combine a + load with a store into a memory->memory move. + (untyped_call): Replace non-working code with m68k version that + emits a regular call, then breaks the parallel moves into separate + moves, and then issue a blockage instruction. + (blockage): New unspec_volatile insn to block insns from being + moved across this point. + (untyped_return): Delete. + (update_return): Delete. -Wed Nov 4 10:11:28 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * objc/sendmsg.c (get_imp): Allow __inline__ on x86 platforms. - * va-pa.h (va_end): Do it like in other va-*.h files. +Tue Sep 20 12:21:12 1994 Ian Lance Taylor (ian@cygnus.com) -Wed Nov 4 07:23:46 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * fixincludes: Handle the case of a symlink to root/* from a + subdirectory of another symlink to root/*. - * local-alloc.c (optimize_reg_copy_1): If P is a CALL_INSN, count - it as being crossed by SRC since SRC used to die there. +Mon Sep 19 20:30:21 1994 Jason Merrill (jason@deneb.cygnus.com) -Wed Nov 4 00:13:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * fold-const.c (fold): Handle COMPONENT_REFs involving CONSTRUCTORs. - * x-next (libgcc2.a, stdarg.h): New rules. +Mon Sep 19 20:25:38 1994 Will Athanasiou (will@westford.ccur.com) - * varasm.c (immed_real_const_1, immed_double_const): - Don't push on const_double_chain in nested function. + * rs6000.md (load sf with update): Fix RTL typo. - * expr.c (emit_move_insn): Do return a value, in complex case. +Mon Sep 19 08:46:46 1994 Charles M. Hannum (mycroft@duality.gnu.ai.mit.edu) -Tue Nov 3 10:45:09 1992 H.J. Lu (hlu@yardbird.eecs.wsu.edu) + * c-common.c (check_format_info): Enable checking of format + specifiers using the `q' (quad) length modifier. + (format_char_info): Add `qlen'. + (print_char_table, scan_char_table): Add appropriate entries for + qlen. - * i386linux.h (STARTFILE_SPEC): -static is added to ld if - -pg, -g or -p is passed down by gcc. +Sat Sep 17 12:48:57 1994 Per Bothner (bothner@kalessin.cygnus.com) -Tue Nov 3 15:14:48 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * stmt.c (mark_seen_cases): Don't call fatal (or do anything + else) if case index out of range. Warning is given later. - * pa.c (output_ior): Handle "ior" against zero. +Fri Sep 16 19:22:46 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * i386mach.h (YES_UNDERSCORES): Define it. + * global.c (global_alloc): Mark regs assigned to SCRATCH as used by + more than just local alloc. - * sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Use REAL_VALUE_MINUS_ZERO. - (ASM_OUTPUT_DOUBLE_OPERAND): Likewise. +Thu Sep 15 14:36:59 1994 Michael Meissner -Tue Nov 3 08:25:35 1992 Chris Smith (csmith@convex.com) + * i386/i386.c (order_regs_for_local_alloc): Instead of using + flag_cse_follow_jumps and not leaf_function_p to determine whether + to allocate EDX, and ECX before EAX, use whether or not a DImode + variable was used in the compilation. DImode variables seem to + cause spill failures if EAX is allocated first, while smaller code + is generated if EAX is allocated first, assuming no spill failure. - * convex.h (REG_CLASS_FROM_LETTER): Add 'A', index regs. - (movsi alternative): Use it to make psh.w sp (push the - stack pointer) a noninstruction. + * i386/i386.md (SF, DF, XF, and DI moves and pushes): Eliminate + special patterns for TARGET_386 that allow direct pushes from + memory, and instead allow direct pushes from memory as the last + alternative in case no scratch registers could be allocated. + (movxf_mem): Remove inadvertent !TARGET_386 condition. + (addsi3): Allow generation of lea on 486, since the single + instruction lea is at least as fast as the mov and add it + replaces. + (zero extend patterns): Replace !TARGET_486 with TARGET_386. + (bit extracts): Ditto. -Tue Nov 3 08:05:10 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Don't redefine to be 64 + unless NO_LONG_DOUBLE is defined. - * jump.c (jump_optimize): Ensure operand of REG_NOTES is an INSN; - otherwise, we might try to read outside allocated memory. +Thu Sep 15 13:46:05 1994 Jim Wilson (wilson@cygnus.com) - * va-alpha.h (va_end): Don't define enum if va_end already defined. + * expmed.c (store_split_bit_field): Use number of bits in arg not + BITS_PER_WORD to adjust arg in BYTES_BIG_ENDIAN case. -Tue Nov 3 02:56:22 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Sep 15 09:19:12 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * objc/Makefile: Use $(srcdir), not `..'. + * optabs.c (expand_binop, multi-word shifts): Generate rtl + free of conflicts for shifts less than one word. - * objc-actions.c (build_message_expr): Use save_expr for receiver. +Thu Sep 15 05:29:58 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * va-i860.h (va_end, anonymous enum): Don't declare if - va_end already defined as macro. - * va-mips.h, va-i960.h (va_end): If already a macro, don't declare. + * gcc.c: Rework last change so it's done like collect2.c. -Mon Nov 2 21:17:40 1992 Paul Eggert (eggert@twinsun.com) + * cse.c (cse_around_loop): Don't invalidate SUBREG unless + it's a SUBREG of a REG. - * va-sparc.h (va_end): If already def as macro, don't declare. + * sched.c (sched_analyze_insn): Don't set SCHED_GROUP_P for previous + INSN a USE unless it's a USE of a REG. -Mon Nov 2 16:04:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Sep 14 10:08:58 1994 Michael I Bushnell - * i386linux.h: Include i386gstabs.h, not i386gas.h. + * gcc.c: Include in case `errno' is really a macro + as permitted by ANSI C. -Mon Nov 2 14:46:31 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + * getpwd.c (GUESSPATHLEN): If there is no definition of + MAXPATHLEN, then set GUESSPATHLEN to be 100. (It's used + as a starting point, not a limit, so this is harmless.) - * Makefile.in (install-cross-tools): Delete old symlink before - making new one; else symlink will fail and we will use - backed strategy. +Tue Sep 13 15:02:19 1994 Michael Meissner -Sun Nov 1 17:55:56 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + * i386/i386.md (movxf_mem): Fix typo with memory/memory moves + of XFmode variables, where the store actually did a load, ie, the + source and destination operands were fixed. + (fixuns_trunc patterns): Revert to the old code. + (movdf_push486, movxf_push486, movdi_push486): If an address is + based on the stack pointer, account for the stack pointer changing + due to the intermediate pushes generated. - * varasm.c (decode_rtx_const): Handle PC same as LABEL_REF. +Tue Sep 13 14:11:16 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sun Nov 1 03:19:39 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * collect2.c (fatal_perror, fatal, error): Declare all args as char *. - * Version 2.3.1 released. +Tue Sep 13 12:40:39 1994 Jeffrey A. Law (snake.cs.utah.edu) - * x-i386s4: Renamed from x-i386sco4. - * configure (i[34]86-*-sco*): Use new name. + * pa.c (emit_move_sequence): Handle secondary FP load/store + reloads of the form (subreg (mem (plus (reg) (disp)))). + (secondary_reload_class): A secondary register is needed to handle + out-of-range FP loads and stores. + * pa.md (reload_indf, reload_outdf): New expanders. + (reload_insf, reload_outsf): Likewise. - * sol2-c1.asm, sol2-ci.asm, sol2-cn.asm: Renamed from sol2-crt... - * t-sol2: User new names. +Mon Sep 12 18:15:48 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sat Oct 31 15:19:54 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * t-pa (ADA_CFLAGS): New override. + * pa/t-pa-hpux: New file. + * configure (hppa*-*-hpux*): Use t-pa-hpux instead of t-libc-ok. - * Version 2.3 released. +Mon Sep 12 14:52:17 1994 Jim Wilson (wilson@cygnus.com) - * Makefile.in (install-libobjc): New target. - ($(srcdir)/gcc.dvi, $(srcdir)/cpp.dvi): New targets. - (extraclean): rm *diff, *lose, config/*lose. - (mostlyclean): rm config/core. + * function.c (assign_parms): Set RTX_UNCHANGING_P on stack_parm + for const parameter before calling move_block_from_reg. - * objc-actions.c (OBJC_SELECTORS_WITHOUT_LABELS): Define by default. +Mon Sep 12 14:27:58 1994 Doug Evans (dje@cygnus.com) -Fri Oct 30 20:11:52 1992 James Van Artsdalen (james at bigtex.cactus.org) + * config/fp-bit.c (FLO_union_type): Add packed attribute to `bits'. - * i386.c (output_move_double): Undo 10/25 change. Handle case - where part of a dest reg is used in a src mem rtx, without using - stack. +Sat Sep 10 09:50:41 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Fri Oct 30 18:52:57 1992 Michael Meissner (meissner@osf.org) + * cse.c (invalidate_for_call): Properly set IN_TABLE. - * mips.h (MIPS_VERSION): Bump meissner version number to 28. +Sat Sep 10 06:46:24 1994 Bill Burton (billb@progress.com) - * mips.md (addsi3, subsi3): Don't allow -32768 as the second - operand, the assembler complains if the instruction fills a delay - slot. + * Added improved support for Sequent DYNIX/ptx 1.x and 2.x: + * fixinc.ptx: New file. + * i386/seq-sysv3.h (HAVE_ATEXIT): No longer defined. + * i386/seq2-sysv3.h: New file. + * configure (i[34]86-sequent-ptx[12]*): New configurations. + (i[34]86-sequent-sysv*, i[34]84-sequent-ptx): Deleted configurations. + * config.sub (ptx): New OS; use for Sequent. -Fri Oct 30 16:11:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri Sep 9 21:48:48 1994 Paul Eggert (eggert@twinsun.com) - * combine.c (simplify_shift_const): - For a subreg, require subreg_lowpart_p and not paradoxical. + * cccp.c (rescan, handle_directive): Backslash no longer suppresses the + specialness of the following char unless -traditional. + (rescan): Remove backslash-newline only if at top level, since + backslash-newline-space can be encountered during macro processing. + (collect_expansion): Remove special hack for \# inside a #define; + it's not compatible with the C Standard. - * Makefile.in (install-fixincludes): Ignore dirs that don't exist. - -Thu Oct 29 20:15:44 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gvarargs.h, gstdarg.h [4.3 net 2]: If _VA_LIST_, is undefined - then va_list is already declared. - - * i386gas.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): - Override, if NO_UNDERSCORES. - -Thu Oct 29 17:30:52 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * flow.c (life_analysis): Mark FP live at end of function. - * reload1.c (reload): If FP was eliminated, remove it from - being live in any basic block. - - * varasm.c (output_constant_pool): Labels can be deleted by being - turned into NOTEs, not just have INSN_DELETED_P. - -Thu Oct 29 16:15:47 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gstdarg.h: Use _ANSI_STDARG_H_, not _ANSI_STDARG_H. - - * gstddef.h [4.3 net 2]: If _SIZE_T_, etc. are undefined - then type is already declared. - - * m68k.c (print_operand_address) [MOTOROLA !SGS]: - Don't subtract 2 in the address displacement. - -Thu Oct 29 14:36:23 1992 Michael Meissner (meissner@osf.org) - - * libgcc2.c (__builtin_vec_new): #undef NULL before including - stdio.h to prevent redeclaration message. - (pyramid __enable_execute_stack): Ditto. - - * i386rose.h (YES_UNDERSCORES): Define. - (ASM_OUTPUT_LABELREF): Don't redefine. - - * mips.h (ASM_FINAL_SPEC): If cross compiling, don't invoke - mips-tfile by default. - - * decrose.h (ASM_FINAL_SPEC): If cross compiling, don't invoke - mips-tfile by default. - - * mips-tdump.c, mips-tfile.c: Handle the case where CROSS_COMPILE - is defined more gracefully. - -Thu Oct 29 12:10:16 1992 Tim Moore (moore at defmacro.cs.utah.edu) - - * combine.c (make_extraction): Fix paren error in if for INNER is reg. - -Thu Oct 29 13:49:03 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * xm-mipsbsd.h: Really delete file. - -Thu Oct 29 02:48:28 1992 Tom Wood (wood@dg-rtp.dg.com) - - * dwarfout.c, arm.c, m88k.c: Include "assert.h" instead of . - -Thu Oct 29 00:43:00 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gstddef.h [4.3 net 2]: Force inclusion of ansi.h. - Undef _SIZE_T_, _PTRDIFF_T_, _WCHAR_T_ at end. - - * Makefile.in (libgcc2.a, libgcc1.a): Use || to exit if cp fails. - (install-float-h-cross): Use fi, not done. - Write float.h in $(tmpdir), not in `.'. - (tmpdir): New variable. - - * i386gas.h (NO_UNDERSCORES): Test was backwards. - (SDB_DEBUGGING_OUTPUT): Defined. - -Wed Oct 28 16:33:34 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gstdarg.h, gvarargs.h: - On Net 2 system, don't test, define or undef _VA_LIST_. - Use _ANSI_H_, __BSD_NET2__ and ____386BSD____ to test for this. - - * i386bsd.h (CPP_PREDEFINES): Add ____386BSD____. - - * c-decl.c (pushdecl): Allow redeclaring builtin as any sort of static. - - * Makefile.in (install-cross-tools): Fix typo. - (all.build): Dep on xgcc instead of $(GCC_PASSES). - -Wed Oct 28 15:25:42 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.c (print_operand): When AS_BUG_FLDCR is defined, use alternate - fldcr form. - * m88kdgux.h (AS_BUG_FLDCR): Define to accomodate 4.30 assembler bug. - - * m88kv3.h (CPP_PREDEFINES): Add -Dunix. - - * m88kdolph.h (SDB_ALLOW_FORWARD_REFERENCES): Don't override. - -Wed Oct 28 05:34:11 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * reload1.c (gen_input_reload): In PLUS, if OP0 and OP1 are the - same, use RELOADREG when generating the addition. - - * reload.c (find_reloads_address): When copying memref after we've - made recursive calls on it, copy any replacements we made. - - * combine.c (can_combine_p): Don't substitute an expression - containing a register that will be clobbered in I3. - - * objc/core.c, objc/hash.c: Include tconfig.h, not config.h. - Include gstdarg.h. - * objc/object.m: Include tconfig.h, not config.h. - Include gstdarg.h before stdio.h. - * objc/objc.h: Don't include gstdarg.h here. - * objc/objc-proto.h (CLASS_LOCATION_SHIFT): Use HOST_BITS_PER_LONG, - not BITS_PER_WORD. - (setClassNumber, getClassNumber): `info' field is long, not int. - -Wed Oct 28 10:54:50 1992 Michael Meissner (meissner@osf.org) - - * libgcc2.c (L_caps_new): Properly close comment. - -Wed Oct 28 05:50:10 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) - - * pa.md (mulsi): Input predicates back to srcsi_operands. - Don't handle constants specifically for TARGET_SNAKE, but call - force_reg to put them in registers. - (indexed addressing mode patterns): Remove the patterns with - unscaled index. Switch off patterns that never match. - - * longlong.h (file header): Add comment describing sdiv_qrnnd. - (__hppa sub_ddmmss): Swap input operands. - - * gcc.c (process_command): Check that we have enough arguments. - -Wed Oct 28 00:40:18 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * configure (i[34]86-*-sysv*): Take note of $stabs. - * i386gas.h (SDB_DEBUGGING_INFO): #undef deleted. - (DBX_DEBUGGING_INFO): Definition deleted. - * i386gstabs.h: New file. - - * Makefile.in (mostlyclean): Don't delete tmp-limits.h. - - * i386vgas.h: File deleted. - -Tue Oct 27 15:35:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Sep 9 17:36:03 1994 Jason Merrill (jason@deneb.cygnus.com) + + * Utilize OSF/1's limited .init support. + * alpha/alpha.h (HAS_INIT_SECTION): Define. + (LINK_SPEC): Add '-init __main'. + * alpha/osf12.h (LINK_SPEC): Ditto. + + * function.c (expand_main_function): Don't call __main if + HAS_INIT_SECTION is defined. - * libgcc2.c: Include stdio.h. - [__GNU_LIBRARY__] (write): Defined. +Fri Sep 9 16:36:46 1994 Mike Stump (mrs@cygnus.com) - * Makefile.in (install-cross-tools): When handling $(tooldir)/include, - do all cd's starting from build directory. + * tree.c (decl_function_context): Don't treat C++ member + functions of classes declared in a function, as nested functions. - * i386gas.h (NO_UNDERSCORES): Don't define, if YES_UNDERSCORES. - * i386linux.h (YES_UNDERSCORES): Defined. +Fri Sep 9 16:10:25 1994 Steve Chamberlain (sac@jonny.cygnus.com) -Tue Oct 27 14:17:43 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + * sh/sh.c (prepare_move_operands): Generate better DI constant + code. + (fake_shift): New function. + * sh/sh.md (ashlsi3_n, lshrsi3_n): Only recognise if fake_shift + enabled. + * sh/{lib1funcs.asm, ashlsi3.c, lshrsi3.c, ashrsi3.c} : New files. + * sh/t-sh : Build new files. - * configure (i[34]86-*-linux): Set broken_install. - * x-linux (INSTALL): Delete. - * x-iris (INSTALL): Delete. +Fri Sep 9 15:52:54 1994 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) -Tue Oct 27 13:39:22 1992 Tim Moore (moore@hal.gnu.ai.mit.edu) + * cccp.c: Correct unprototyped pointer args from `0' to `NULL_PTR' - * pa.h (ASM_GLOBALIZE_LABEL): Give function symbols CODE type, - others DATA type. +Fri Sep 9 15:17:52 1994 Matthew Green (mrg@splode.mame.mu.oz.au) -Mon Oct 26 16:40:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * configure (sparc-*-netbsd): New configuration. + * sparc/netbsd.h: New file. - * c-typeck.c (build_c_cast): Don't warn about size change between - pointer and integer if the value is constant. +Fri Sep 9 15:15:48 1994 Jim Wilson (wilson@cygnus.com) - * Makefile.in (libobjc.a): If ln fails, copy libobjc.a. + * mips.md (truncdisi2): Change from define_expand to define_insn. + (truncdihi2, truncdiqi2): Likewise. -Mon Oct 26 16:21:11 1992 Tim Moore (moore@defmacro.cs.utah.edu) + * sparc.h (SQRTTF2_LIBCALL): Delete. + (INIT_TARGET_OPTABS): Define. + (INIT_SUBTARGET_OPTABS): Define. - * pa.h (EXPORT_PARMS, ASM_DECLARE_FUNCTION): Blow away usage of - EXPORT_PARMS. BUGGY_GAS isn't a problem any more. - (TEXT_SPACE_P, FUNCTION_NAME_P): New macros. - (ENCODE_SECTION_INFO): Use TEXT_SPACE_P. - (STRIP_NAME_ENCODING): Strip a '*' which might preceed a '@'. - (ASM_OUTPUT_EXTERNAL): Give only function labels a CODE type. - (ASM_OUTPUT_LABELREF): Use FUNCTION_NAME_P. - * pa.c (hppa_encode_label): Change function name encoding to - preserve leading '*' if there is one. - (function_label_operand): Use FUNCTION_NAME_P macro. + * stmt.c (check_for_full_enumeration_handling): Cast malloc result + to `unsigned char *' not `char *'. -Mon Oct 26 14:39:46 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) + * dbxout.c (dbxout_symbol_location): Handle error_mark_node in + DECL_INITIAL for C++. - From Tim Moore: - * function.c (locate_and_pad_parm): In ARGS_GROW_DOWNWARD case, - don't pad to argument alignment if where_pad is downward. + * mips.md (memory): Add missing !r4600 to first define_function_unit. -Mon Oct 26 11:21:36 1992 Chris Smith (csmith@convex.com) + * sparc.md (negsi2): Use register_operand not general_operand for + output. - * convex.h (SHIFT_COUNT_TRUNCATED): Undefine. +Fri Sep 9 14:52:58 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Mon Oct 26 07:48:35 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * config/netbsd.h: Add #undef for everything we define; a few were + missing. - * alpha.c (print_operand, new 'L'): New case. - * alpha.md (movhi/movqi patterns): For long constants, use 'i' - constraint instead of 'K'; use "%L1" in template. + * reload.c (find_reloads, case 'p'): Operand is BASE_REG_CLASS. - * configure (alpha): Set use_collect2. +Fri Sep 9 14:00:28 1994 Mike Collison (collison@world.std.com) -Mon Oct 26 04:19:24 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * configure (dsp16xx-*): New configuration. + * config.sub (dsp16xx): New basic machine. + * dsp16xx.c, dsp16xx.md, dsp16xx.h, xm-dsp16xx.h: New files. - * xm-alpha.h: Declare calloc. +Fri Sep 9 12:47:00 1994 Michael Meissner (meissner@osf.org) -Sun Oct 25 17:19:52 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * i386/i386.md (All SF, DF, XF, DI 486 push patterns): Merge the + memory and nonmemory push patterns together. - * function.c (fixup_var_refs_insns): Don't call delete_insn if not -O. - Make a NOTE_INSN_DELETED instead. +Fri Sep 9 00:53:36 1994 Richard Stallman -Sun Oct 25 11:57:04 1992 Chris Smith (csmith@convex.com) + * config.sub: Accept i586 like i386. + Do not use SCO as a default for i386-*. - * convex.h (target_flags): prevent -mnoc2 from clearing - TARGET_INDIRECTS. - (TARGET_INDIRECTS): Always on. +Thu Sep 8 18:49:35 1994 Steve Chamberlain (sac@cygnus.com) -Sun Oct 25 16:56:18 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + * config/fp-bit.c (_fpmul_parts): Perform optimized + 64bit*64bit multiply correctly. + * sh/sh.c (synth_constant): Ensure DI mode constants get their + high part zeroed. + (add_constant): Entabled constants are only identical if their + sizes are the same. - * calls.c (expand_call): Don't call convert_to_mode if we obtained - VALUE in the proper mode; VALUE might be a CONST_INT. +Thu Sep 8 14:40:31 1994 Jim Wilson (wilson@cygnus.com) -Sun Oct 25 03:18:03 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * flow.c (mark_used_regs, case REG): Correct typo, use GET_MODE + not GET_CODE. + * sched.c (attach_deaths): Likewise. - * expr.c (gen_push_operand): No longer static. +Tue Sep 6 23:33:41 1994 Per Bothner (bothner@kalessin.cygnus.com) - * i386.c (output_move_double): Divert first word via the stack - if it's a register used in the input operand. - * i386.md (movdi): Delete the `&' from constraint. + * tree.c (get_set_constructor_bits, get_set_constructor_words): + New functions. Extract bits or words from SET_TYPE CONSTRUCTOR. + * tree.h: Declare above new functions. -Sat Oct 24 21:41:00 1992 Chris Smith (csmith@convex.com) +Thu Sep 8 14:02:05 1994 Michael Meissner (meissner@osf.org) - * convex.md (movstrictsi): Correct output constraint is + not =. + * 386/i386.h (TARGET_OPTIONS): New macro to define -mreg-alloc= + switch to allow users to override the register allocation order. + (OVERRIDE_OPTIONS): Call the function override_options. + (REG_ALLOC_ORDER): Define to allocate in the natural order, this + is needed for ORDER_REGS_FOR_LOCAL_ALLOC to work. + (ORDER_REGS_FOR_LOCAL_ALLOC): Define to call the function + order_regs_for_local_alloc. + (regclass_map): Move declaration to end of file. + (i386_compare_op0, i386_compare_op1): Ditto. + (CLASS_LIKELY_SPILLED_P): Define, return 1 for AD_REGS in addition + to all of the single register classes, since AD_REGS is only used + to allocate EAX:EDX. + (override_options, order_regs_for_local_alloc): Add declarations. + (hi_reg_name): Add declaration. + (qi_reg_name): Ditto. + (qi_high_reg_name): Ditto. + (i386_reg_alloc_order): Add declaration for TARGET_OPTIONS to use. -Sat Oct 24 14:10:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * i386/i386.c (i386_compare_op0, i386_compare_op1): Initialize + with NULL_RTX. + (i386_reg_alloc_order): Provide global variable definition. + (regs_allocated): Static array to note whether a register is noted + via -mreg-alloc=. + (override_options): Provide checking for registers declared with + -mreg-alloc=. + (order_regs_for_local_alloc): If -mreg-alloc= was used, + allocate registers mentioned in order, and then allocate all other + registers in the normal register order. If -mreg-alloc= was + not used, allocate registers in natural order except for non-leaf + functions with CSE following jumps, allocate EAX after EDX and + ECX, to allow the function return to be CSE'd, and perl 4.036's + perly.y to be compiled without aborting due to not being able to + find a spill register. + (movsf, movdf, movdi): Rewrite all patterns to provide effecient + memory to memory moves, including pushes for i386 and i486. Fixes + problems in compiling motif+ without optimization. + (swapsf): Add, like swapdf and swapxf. + (fixuns_truncsfsi2, fixuns_truncdfsi2): Use general_operand + instead of register_operand for define_expand, since the operand + is copied to a new pseudo register as part of the expansion. + (fix_truncxfdi2, fix_truncdfdi2, fix_truncsfdi2): Rewrite to call + the more primitive generator functions instead of knowing how many + clobbers of match_scratchs they do. - * news.h (FUNCTION_EPILOGUE): Fix typos. + * Makefile.in (aux_output.o): Define TARGET_CPU_DEFAULT if + specified when compiling aux_output.o to allow the machine C file + access to this if it wants it. - * cccp.c (get_lintcmd): Length of `LINTLIBRARY' is 11. +Thu Sep 8 07:15:29 1994 David Edelsohn (edelsohn@npac.syr.edu) -Sat Oct 24 13:22:09 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) + * rs6000.md (movsi matcher): Merge TARGET_POWER and !TARGET_POWER + cases. Rationalize mnemonics. + (movhi and movqi matchers): Likewise. + (movsf matcher): Correct length attribute for stfs which no longer + includes frsp. - * arm.md (DImode patterns): Add `&' to target operand constraints. +Thu Sep 8 07:06:31 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * Makefile.in (setting version variable): Prepend $(srcdir) to - version.c. + * rs6000.h (REGISTER_MOVE_COST): Fix typo in last change. - From Wilson: - * longlong.h (sparclite): Use machine independent USItype instead - of explicit types. +Wed Sep 7 19:31:52 1994 Paul Eggert (eggert@twinsun.com) -Sat Oct 24 10:35:18 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * cccp.c (handle_directive): In `#include ' directives, + remove backslash-newline properly. Don't allow any other newlines. - * rs6000.md (movdi): Tests were in wrong order. +Wed Sep 7 18:11:29 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * rs6000.h (LEGITIMIZE_ADDRESS): Indexed addresses are not valid - for DImode and TImode; GO_IF_LEGITIMATE_ADDRESS knows this. + * rs6000.h (REGISTER_MOVE_COST): Moving between special registers + is expensive. - * Makefile.in (mostlyclean): Add missing semicolon. + * combine.c (simplify_comparison): Convert comparison to unsigned + when stripping off a ZERO_EXTEND. - * a29k.c (a29k_set_memflags, a29k_set_memflags_1): New functions. - * a29k.md (movqi, movhi, reload_{in,out}{qi,hi}): Use them. + * combine.c (simplify_set): Only convert IF_THEN_ELSE to logical + expression if mode of object being compared is result mode. - * alpha.c (get_aligned_mem): Copy memory flags to new MEM. - (alpha_set_memflags, alpha_set_memflags_1): New functions. - * alpha.md (movqi, movhi, reload_{in,out}{qi,hi}): Use new - functions. +Wed Sep 7 18:09:17 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) - * alpha.h (ASM_FILE_START): Stop at blank in version string. + * configure: Ignore --help, --version, --program-prefix, + --program-suffix, --cache-file, --quiet, --silent. -Sat Oct 24 04:35:16 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Sep 7 13:29:50 1994 Doug Evans (dje@cygnus.com) - * reload1.c (emit_reload_insns): If not -O, Don't try find_equiv_reg. - (choose_reload_regs): If not -O, don't inherit reloads. + * stmt.c (expand_asm_operands): Move test for misspelled registers + higher so all cases caught. -Fri Oct 23 18:07:10 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Sep 7 09:54:14 1994 Per Bothner (bothner@kalessin.cygnus.com) - * news.h (FUNCTION_EPILOGUE): - If no frame ptr, increment stack ptr to free up the local space. + * configure: Touch Makefile.ll before appending subdir stuff. + (Needed if there are no subdirs.) - * gcc.c (process_command): Discard after first space in spec_version. +Wed Sep 7 11:19:18 1994 Kresten Krab Thorup (krab@akvavit.next.com) - * print-tree.c (print_node): Always output `>' to match `<'. + * objc/init.c (__objc_init_protocols): Remove assertion. + * objc/Object.m (conformsTo:): Make lookup allways happen in + the class object. - * Makefile.in (version): Use sed to extract. - Ignore excess after space. - (install-fixincludes): Fix typo in last change. +Tue Sep 6 17:47:39 1994 Per Bothner (bothner@kalessin.cygnus.com) - * configure (i386-ibm-aix*): Use aix386ng.h if not --with-gas. - * aix386ng.h: New file. + * configure: Rename *-next-ns[23] to *-next-nextstep[23]. + * config.sub: Cleanup NeXT support to emit nextstep*. -Fri Oct 23 15:14:49 1992 Brendan Kehoe (brendan@lisa.cygnus.com) +Tue Sep 6 18:38:02 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * sdbout.c (sdbout_symbol): Return if a symbol's DECL_NAME is - empty, since we won't be able to make a symtab of it. + * reload.c (find_reloads_address): Don't reorder the operands of a + PLUS when fixing up index. - * convex.h (P_tmpdir): Remove definition. - * xm-convex.h: Put it here. +Tue Sep 6 18:24:50 1994 Matthias Pfaller (leo@marco.de) -Fri Oct 23 10:27:34 1992 Michael Meissner (meissner@osf.org) + * ns32k.md (stackadjust/push peepholes): For the adjust/push/push + pattern one offset was wrong. + Don't use addr for register and and MEM refs. - * i386rose.h (ASM_OUTPUT_LABELREF): Define so that external - identifiers have leading underscores in front of them. +Tue Sep 6 11:24:06 1994 Steve Chamberlain (sac@jonny.cygnus.com) - * mips-tfile.c (parse_stabs_common): Allow stabs with line numbers - of 0. These come from g++ for compiler generated functions that - take arguments. + * sh/sh.c (push, pop): Generate REG_NOTES. + (synth_constant): Correct one of the patterns. + (output_file_start): Bump version number. + * sh/sh.h (EXIT_IGNORE_STACK): Now 1. + * sh/sh.md (adddi3, subdi3): Simplify. + (casesi_worker): Use TARGET_BIGTABLE. -Fri Oct 23 07:49:12 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Mon Sep 5 12:29:15 1994 Ian Lance Taylor (ian@cygnus.com) - * romp.c (output_fpops): Add SYMBOL_REF and LABEL_REF cases to - constants handled. + * ginclude/math-68881.h: Change inline functions from static to + extern. -Fri Oct 23 01:58:12 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * configure (i[34]86-*-sysv4*): If --with-stabs, set tm_file to + i386/sysv4gdb.h. + * config/i386/sysv4gdb.h: New file; sets PREFERRED_DEBUGGING_TYPE. + +Sun Sep 4 08:40:02 1994 Chris Smith (csmith@convex.com) + + * convex.h (VTABLE_USES_MASK, VINDEX_MAX, SET_DECL_VINDEX): + delete, no longer used. + (target_flags): delete cexp.c hack, no longer needed. + * convex.md (decr-and-set-cc0): fix HImode to use halfword + insns. + (cmpqi patterns): fix constraints not to use A regs + +Sat Sep 3 14:12:11 1994 Michael Meissner (meissner@osf.org) + + * i386/i386.md (DImode move and push insns): Eliminate movdi + wrapper that made a DI temp register to do a memory to memory + move because it creates too much register pressure, especially + when not optimizing. On the 486, allocate and use 1-2 scratch + registers to push a DImode value. - * flow.c (find_basic_blocks): Check for LABEL_REF_NONLOCAL_P - in label_value_list. - * jump.c (mark_jump_label): Copy LABEL_REF_NONLOCAL_P from - LABEL_REF into REG_LABEL note. +Fri Sep 2 15:11:59 1994 Jason Merrill (jason@deneb.cygnus.com) + + * c-decl.c (min_precision): Move from here. + * c-common.c: To here. - * toplev.c (push_float_handler): Declare arg old_handler. +Fri Sep 2 13:16:38 1994 Per Bothner (bothner@kalessin.cygnus.com) - * t-next (OTHER_FIXINCLUDES_DIRS): Defined. + * tree.h (maximum_field_alignment, set_alignment): New declarations. - * Makefile.in (OTHER_FIXINCLUDES_DIRS): New variable, normally empty. - (install-fixincludes): Run fixincludes on those dirs. - * fixincludes: Convert //-style comments to /*...*/ style. +Fri Sep 2 14:25:36 1994 Ian Lance Taylor (ian@cygnus.com) - * loop.c (record_biv): Clear total_benefit field of new iv_class. - (get_condition): - Verify op 2 of source is label_ref before looking within. + * config/svr4.h (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, + DBX_BLOCKS_FUNCTION_RELATIVE, ASM_IDENTIFY_GCC, + ASM_IDENTIFY_GCC_AFTER_SOURCE, ASM_OUTPUT_SOURCE_LINE, + DBX_FUNCTION_FIRST): Define. This adds support for -gstabs for + SVR4 configurations. -gstabs requires gas and gdb. + * config/sparc/sol2.h (DBX_DEBUGGING_INFO, + DBX_BLOCKS_FUNCTION_RELATIVE, ASM_IDENTIFY_GCC, + ASM_IDENTIFY_GCC_AFTER_SOURCE, ASM_OUTPUT_SOURCE_LINE, + DBX_FUNCTION_FIRST): Don't define. Now defined by config/svr4.h. + (PREFERRED_DEBUGGING_TYPE): Undefine before defining. + * config/sparc/sysv4.h (DBX_DEBUGGING_INFO): Don't bother to + undefine before including svr4.h. + (ASM_OUTPUT_SOURCE_LINE): Undefine before including svr4.h. + +Thu Sep 1 22:02:02 1994 Michael Meissner (meissner@osf.org) + + * toplev.c (fatal_insn): Move most of the code from + fatal_insns_not_found here, and add an argument to give the error + message. + (fatal_insn_not_found): Call fatal_insn. + * rtl.h (fatal_insn, fatal_insn_not_found): Add prototypes. + * genextra.c (main): Don't declare fatal_insn_not_found in + insn-extract.c. + * reload1.c (reload): Call fatal_insn where appropriate to print + an error message instead of calling abort. + (spill_failure): Ditto. + (reload_as_needed): Ditto. + (allocate_reload_reg): Ditto. + (emit_reload_insns): Ditto. -Thu Oct 22 21:17:53 1992 Tim Moore (moore at defmacro.cs.utah.edu) +Thu Sep 1 19:34:26 1994 Jason Merrill (jason@deneb.cygnus.com) + + * tree.c (type_list_equal): If the types of the default arguments + differ, the lists do not match. + +Thu Sep 1 19:29:58 1994 Matthias Pfaller (leo@marco.de) - * varasm.c (STRIP_NAME_ENCODING): New macro to decode a symbol name - munged by ENCODE_SECTION_INFO. - (assemble_start_function, assemble_variable): Use STRIP_NAME_ENCODING. - * pa.h (STRIP_NAME_ENCODING): New definition. + * ns32k.md (stack-adjust/push peepholes): Addresses are + moved with "addr", not with "movd". -Thu Oct 22 17:53:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Sep 1 19:17:55 1994 Paul Eggert (eggert@twinsun.com) - * Makefile.in (mostlyclean): Clean objc subdir only if it exists. + * cccp.c (make_definition): Don't dump core when given an + unterminated string in a -D option. - * news.h (FUNCTION_PROLOGUE): Do allocate local stack space - when no frame pointer. +Thu Sep 1 19:13:35 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Thu Oct 22 15:21:27 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * c-typeck.c (convert_arguments): Give proper warnings when + converting COMPLEX_TYPE; widen check to include all integral types. - * i960.h (FUNCTION_VALUE): Simplify, just return reg 0. - * i960.c (i960_function_value): Delete. +Wed Aug 31 20:38:53 1994 Per Bothner (bothner@spiff.gnu.ai.mit.edu) -Thu Oct 22 09:42:50 1992 Michael Meissner (meissner@osf.org) + * fixproto: Define FIX_HEADER (needed by Aug 19 change). + Use FIX_HEADER instead of $original_dir/fix-header (twice). - * mips-tfile.c (parse_stabs_common): Ignore stab line numbers - of 0, since the G++ front end generates them. Check whether - line numbers can fit within the index field, and if not report - an error. +Wed Aug 31 16:56:15 1994 Jason Merrill (jason@deneb.cygnus.com) + + * stmt.c (warn_if_unused_value): Extend special case for casted + MODIFY_EXPRs to apply to INIT_EXPRs as well. + +Wed Aug 31 16:30:09 1994 Per Bothner (bothner@kalessin.cygnus.com) - * mips.c (function_arg): Align passed structures to double word - boundary if structure has double word alignment. + * stor-layout.c (set_alignment): New global. + (layout-type): Add support for SET_TYPE. - * mips.h (STACK_DYNAMIC_OFFSET): Do not define this macro in order - to work around a bug. + * expmed.c (store_bit_field): Semi-revert Aug 25 change: + Make it apply only for BLKmode, not integral modes. -Thu Oct 22 08:00:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * stmt.c (all_cases_count, mark_seen_cases): New functions. + (BITARRAY_TEST, BITARRAY_SET): New macros. Used (mainly by + Chill) to check all cases are covered (for enums and ranges). + (check_for_full_enumeration_handling): Re-write to use the + new functions, now that we have them. - * gstdarg.h, gvarargs.h: Treat _AIX and _M_UNIX like __svr4__. +Wed Aug 31 19:19:29 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) - * i386gas.h (NO_UNDERSCORES): Defined. + * combine.c (nonzero_bits, cases DIV, MOD, UDIV, UMOD): Declare + op0_maybe_minusp and op1_maybe_minusp as HOST_WIDE_INT. - * next.h (INCLUDE_DEFAULTS): Put in GPLUSPLUS_INCLUDE_DIR, - GCC_INCLUDE_DIR, LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR. - Don't define at all if cross-compiling. +Wed Aug 31 18:54:54 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * tree.c (copy_node): Copy the excess bytes--don't clear them. + * expmed.c (store_split_bit_field): Always adjust arg to + extract_fixed_bit_field in BYTES_BIG_ENDIAN case. -Thu Oct 22 06:40:55 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Wed Aug 31 02:49:34 1994 Roland McGrath - * a29k.h (TARGET_SWITCHES): Add missing complementary switches: - -mno-stack-check and -mstorem-bug. + * config/i386/gnu.h (LIB_SPEC): New macro. - * a29k.md (long constant split): Use gen_lowpart instead of making - a SUBREG directly. +Tue Aug 30 16:35:23 1994 Jason Merrill (jason@deneb.cygnus.com) + + * toplev.c (lang_options): Add -W{no-,}reorder. + +Tue Aug 30 13:55:58 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * arm.h (STORE_FLAG_VALUE): Remove bogus definition. + * combine.c (simplify_comparison, case GEU): Add missing break. -Thu Oct 22 03:04:28 1992 Tom Wood (wood@dg-rtp.dg.com) +Mon Aug 29 17:50:55 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * m88k.c (prologue_marked): New variable. - (m88k_end_prologue): Output the epilogue mark here if the start of - the epilogue passed the end of the prologue. - (m88k_begin_epilogue): Don't output the epilogue mark if the end - of the prologue hasn't been processed yet. + * vax.md (extv, extzv): Don't use ROTL when field is outside + boundaries of a word. -Thu Oct 22 03:20:40 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Aug 29 11:43:18 1994 Kresten Krab Thorup (krab@akvavit.next.com) - * function.c (put_var_into_stack): When we operate on a pseudo - that holds the address, use proper modes. + * objc/sendmsg.c (get_imp): Don't inline on 386. - * combine.c (make_extraction): Use is_mode, not inner_mode, - for BYTES_BIG_ENDIAN adjustment to offset for non-bitfield case. - Update is_mode when stripping subreg from around a mem. +Sun Aug 28 18:56:03 1994 Andrew McCallum (mccallum@cs.rochester.edu) - * m68k.h (GO_IF_INDEXABLE_BASE): Allow LABEL_REF only if jump table. + * objc/class.c (objc_get_meta_class): New function. -Wed Oct 21 18:55:24 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Sat Aug 27 23:13:53 1994 Michael Meissner (meissner@osf.org) - * gstdarg.h: Check and define _ANSI_STDARG_H along with _STDARG_H. + * i386/i386.c (legitimate_address_p): If index register is either + the arg pointer or the stack pointer, and there is no scale + factor, swap with the base register. -Wed Oct 21 11:41:39 1992 Tom Wood (wood at gen-rtx) + * i386/i386.h (REG_CLASS_CONTENTS): Don't allow the arg pointer + register as an index register, since the frame could be omitted, + and the stack pointer is not valid as an index. - * toplev.c (push_float_handler, pop_float_handler): New functions. - * fold-const.c (real_value_truncate): - Use them, in case another handler is already in effect. + * i386/i386.md (mov*, movstrict*): Don't create pushes of memory + values when creating insns, let the combiner create a push of a + memory value if -m386. In particular, pushes of byte values was + broken because there is no pattern to recognize such a push. -Wed Oct 21 22:08:31 1992 H.J. Lu (hlu@yardbird.eecs.wsu.edu) +Fri Aug 26 16:03:09 1994 Michael Meissner (meissner@osf.org) - * Makefile (all.build): Add target $(GCC_PASSES) for xgcc. - * build-make (CC): Defined. - (CROSS_GCC_FLAGS): Deleted. - (HOST_CC): Delete -V option; CC supplies that. + * i386/i386.h (MASK_*): Add masks for all of the switches. + (TARGET_*): Use appropriate MASK_* instead of a number. Add + -mdebug-addr switch to debug GO_IF_LEGITIMATE_ADDRESS, + -mno-wide-multiply to turn off widening multiplies, and -mno-move + to allow integer move insns to generate direct memory to memory + copies, which reload will fix up. Add TARGET_386 which is not of + TARGET_486. + (REG_ALLOC_ORDER): Go to the order used in 2.5.8, eax, edx, ecx, ... + Add a comment describing the tradeoffs. + (REG_OK*): Add strict and non-strict versions of the macros that + are always present, and REG_OK_STRICT chooses between the two + inner macros. + (GO_IF_LEGIMATE_ADDRESS): Move processing to legitimate_address_p + function. + (LEGITIMIZE_ADDRESS): Move processing to legitimize_address + function. + (function declarations): Add function declarations for all extern + functions in i386.c. -Wed Oct 21 12:34:39 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) + * i386/i386.c (asm_add): Add support in case adding by 1 or -1 to + use inc/dec. + (various): Change TARGET_486 -> !TARGET_386. + (legitimate_address_p): Move GO_IF_LEGITIMATE_ADDRESS processing + here from i386.h. Combine OSF/rose support from osfrose.h through + the use of conditional macros. Only recognize addresses in + canonical formats, code adapted from the i960 port. Add tracing + if -mdebug-addr. + (legitimize_address): Move LEGITIMIZE_ADDRESS here from i386.h, + and add adaptations from the i960 port. + (convert_387_op): Remove unused function. - From Wilson: - * longlong.h (sparclite udiv_qrnnd): Remove comma before - __AND_CLOBBER_CC. + * i386/i386.md (various): Remove cast to char * of output + functions, since i386.h now declares them all properly. Change + TARGET_486 tests to !TARGET_386 and !TARGET_486 to TARGET_386. + (movsi, movstricthi, movhi, movstrictqi, movqi, movdi): Add + define_expand wrappers to prevent memory<->memory moves from being + generated unless -mno-move is used. On 486's do not allow push of + memory insns to be generated unless -mno-move. + (movdi): For movdi patterns, add 2 (clobber (match_scratch...)) + declarations to allow memory<->memory moves with non-contigous + registers, so that reload don't abort if it can't make a DI + register. + (umulsidi3, mulsidi3): Don't allow pattern if -mno-wide-multiply. + (smultsi3_highpart, umultsi3_highpart): Add patterns to make + division by constants generate better code. -Wed Oct 21 12:24:24 1992 Michael Meissner (meissner@osf.org) + * i386/osfrose.h (MASK_*): Use octal to define bitmasks, not hex, + for compatibility with i386.h. + (NO_IMPLICIT_EXTERN_C): Define. + (LONG_DOUBLE_TYPE_SIZE): Explicitly define to be 64 instead of + just #undef'ing it. + (GO_IF_LEGITIMATE_ADDRESS): Delete, merged with common i386 code. + (ASM_FILE_END): Print -fschedule-insns and -fschedule-insns2 in + ident string if those options are used. + (REAL_LD_FILE_NAME): Delete. + (ASM_OUTPUT_DOUBLE): Delete, use the common macros. + (ASM_OUTPUT_FLOAT): Ditto. + (ASM_OUTPUT_LONG_DOUBLE): Ditto. - * decrose.h (WORD_SWITCH_TAKES_ARG): Add -pic-names. - (CC1_SPEC): If -pic-names, pass -mhalf-pic to cc1. +Thu Aug 25 17:15:18 1994 Per Bothner (bothner@kalessin.cygnus.com) - * i386rose.h (WORD_SWITCH_TAKES_ARG): Add -pic-names. - (CC1_SPEC): If -pic-names, pass -mhalf-pic to cc1. + * expmed.c (store_bit_field): Always store into multi-word + bitfields starting with low addresses. (Old code was + incompatible with operand_subword_force on big-endian targets.) -Wed Oct 21 07:34:16 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Thu Aug 25 18:31:20 1994 Antti Miettinen (amiettin@ntc.nokia.com) - * configure (alpha): Only accept OSF/1. + * m68k/lynx.h (CALL_USED_REGS): Add d2 and d3 as call-used. - * alpha.h (ASM_FILE_START): Change .verstamp ident for BL9. - * alpha.md (div/mod): Change calling sequence to agree with BL9. +Thu Aug 25 11:30:44 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * expr.c (do_store_flag): Ensure we don't get confused when - emit_store_flag fails and an operand has a QUEUED. + * cse.c (record_jump_cond): Don't do anything if OP0 and OP1 + are already equivalent. -Wed Oct 21 02:53:58 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * rtlanal.c (may_trap_p, case EXPR_LIST): New case. - * cexp.y (integer_overflow): Do nothing unless pedantic. + * c-common.c (shorten_compare): Don't issue warning if both + operands constants and the signedness doesn't affect the + comparison results. -Tue Oct 20 17:02:15 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * configure: Refine handling and error-checking of positional args. - * README, sparc.h, flow.c, regs.h: Change global-alloc.c to global.c. + * print-tree.c (print_node): Print more flags for types and decls. - * i960.md (call, call_value): Use 'd' not 'r' constraint for scratch. + * c-typeck.c (type_lists_compatible_p): Treat transparent unions + just like unnamed ones. - * gcc.c (WORD_SWITCH_TAKES_ARG): Handle -Ttext and -Tbss in - addition to -Tdata. - * i960.h (WORD_SWITCH_TAKES_ARG): Delete, now unnecessary. - * next.h (WORD_SWITCH_TAKES_ARG): Add -Tbss. - * sparc.h, sun2.h, sun3.h (WORD_SWITCH_TAKES_ARG): Add -Ttext and - -Tbss. +Wed Aug 24 19:34:52 1994 Charles Hannum (mycroft@duality.gnu.ai.mit.edu) -Tue Oct 20 16:49:57 1992 Ron Guilmette (rfg at netcom.com) + * configure: Rearrange handling of NetBSD ports to use the standard + `cpu-vendor-os' format. + * config.sub: Recognize names of NetBSD ports that do not correspond + to a CPU name. - * dwarfout.c (dwarfout_file_scope_decl): Generate DIEs for - built-in non-fundamental types. +Wed Aug 24 18:43:30 1994 Philippe De Muyter (phdm@info.ucl.ac.be) -Tue Oct 20 14:58:18 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * print-tree.c (print_node_brief, print_node): Use assignment instead + of initialization for aggregate local variable REAL_VALUE_TYPE d. - * objc-actions.c (handle_impent, handle_class_ref): Use __ - to start the generated names, not period. +Wed Aug 24 18:28:52 1994 Ian Lance Taylor (ian@cygnus.com) -Tue Oct 20 14:38:30 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define. + * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Output #alloc to + set SHF_ALLOC in section flags. - * cp-method.c (fndecl_as_string): Undo change of Sep 14th for - emitting a space after the return type of a fn. +Wed Aug 24 17:45:19 1994 Jim Wilson (wilson@sphagnum.cygnus.com) - Wed Oct 7 16:01:55 1992 Chip Salzenberg (chip@tct.com) + * c-parse.in (parmlist_2): Give error for function with only + ELLIPSIS as an argument. - * cp-lex.c (readescape): No warning if digits in \x are all 0's. +Wed Aug 24 17:36:22 1994 H.J. Lu (hjl@nynexst.com) -Tue Oct 20 06:50:28 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * i386/linux.h (STARTFILE_SPEC): Add %{static:-static}. - * expr.c (force_operand): Clarify comment to say what it can return. - * integrate.c (copy_rtx_and_substitute): Don't assume force_operand - on an address returns a REG; it might be a SUBREG. Use force_reg. +Wed Aug 24 14:34:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Tue Oct 20 04:54:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * calls.c (expand_call): Check for variable-sized return value + in proper place. - * tree.c (make_node, copy_node): - Don't assume node length is multiple of int. + * c-typeck.c (default_conversion): Don't substitute constant + value if array since will return address. -Mon Oct 19 18:14:56 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + * configure (LANG_MAKEFILE): Include lang/Makefile.in in list. - * genrecog.c (write_tree): For type SPLIT, check subroutine return - values for non-zero value not positive value. + * alpha.h (EXTRA_CONSTRAINT): Add new letter, `R'. + (ENCODE_SECTION_INFO): Don't check TREE_ASM_WRITTEN. + (PREDICATE_COSTS): Add call_operand. + * alpha.c (call_operand): New function. + (output_epilog): Don't set SYMBOL_REF_FLAG of current function. + * alpha.md (call): Rework to use macro version of jsr. + * osf2.h (LINK_SPEC): Don't define; should never have been. -Mon Oct 19 16:11:04 1992 Michael Meissner (meissner@osf.org) + * c-typeck.c (push_init_level): Don't blow up if construct_type + is null (can happen with missing brace). - * c-typeck.c (print_table, scan_table): Add support for XPG4's %S - and %C formats for printing/reading wide characters. %lc and %ls too. +Wed Aug 24 10:49:35 1994 Michael Meissner (meissner@osf.org) -Mon Oct 19 17:58:18 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) + * i386/i386.h (REG_ALLOC_ORDER): Restore previous version which + allocates edx first, then ecx, eax, ... This is because perl + doesn't build when the order is eax, ecx, edx... - * arm.c (output_epilogue): Restore sp's value if no frame pointer. +Tue Aug 23 09:20:16 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - From Wilson: - * pa.h (WORD_SWITCH_TAKES_ARG): Delete sparc related cruft. + * configure: Restore old behavior of positional arguments. + Add new argument, --noguess. + config.guess now guesses BUILD, not HOST; HOST defaults from BUILD. + Always compare canonical names, not user-specified names. + Numerous minor changes in the messages output to make the + configuration chosen clearer. -Mon Oct 19 14:49:03 1992 Brendan Kehoe (brendan@rtl.cygnus.com) +Tue Aug 23 02:01:42 1994 Richard Stallman - * cp-parse.y (primary): Don't try building a CALL_EXPR or - converting types if $$ is an error_mark. + * config.sub: Move m68k-ccur handling to proper part of file. + Canonicalize cpu type pentium into i486. (Change it to i586 later.) -Mon Oct 19 14:01:02 1992 Tom Wood (wood@dg-rtp.dg.com) +Mon Aug 22 18:41:59 1994 Steve Chamberlain (sac@jonny.cygnus.com) - * m88k.h (SECONDARY_INPUT_RELOAD_CLASS): Require a temporary for a - pic address with a large constant term. - * m88k.md (reload_insi): New pattern. - (addsi3 pattern for large constants): Delete. Causes reload trouble. - * m88k.c (emit_move_sequence): Add scratch register. All callers - changed. - (legitimize_address): Add scratch register. All callers changed - to pass zero instead of gen_reg_rtx result. Allocate another temp - register for -fPIC case. Use scratch register for pic cases with - a large constant term. + * sh/sh.c (find_barrier): Calculate the size of larger than + SI moves correctly. + (general_movsrc_operand): Allow label_refs plus const. + (sh_function_arg_partial_nregs, sh_function_arg): Pass BLKmode + objects in partial regs. + * sh.h (TARGET_DEFAULT): Turn off BIGTABLE_BIT. + (EXTRA_CONSTRAINT_Q): Allow label_refs plus const. + (READONLY_DATA_SECTION_ASM_OP, EXTRA_SECTIONS, rdata_section): + Delete rdata section and refs. + * sh.md (dimode split): Don't allow a Q constraint source. - * m88k.h (FUNCTION_PROFILER_LENGTH, FUNCTION_BLOCK_PROFILER_LENGTH, - BLOCK_PROFILER_LENGTH, REG_PUSH_LENGTH, REG_POP_LENGTH): Added. - (ADJUST_INSN_LENGTH): Account for profiling code. +Sun Aug 21 23:15:35 1994 Jeffrey A. Law (law@snake.cs.utah.edu) -Mon Oct 19 16:46:52 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * pa.h (FUNCTION_ARG): Use indirect calling conventions when + TARGET_LONG_CALLS is in effect. - * Makefile.in (libobjc.a): Don't mkdir objc if dir exists. +Sat Aug 20 13:31:34 1994 Jim Wilson (wilson@cygnus.com) - * expr.c (store_field): If trying to sign-extend a constant, - use value_mode as the mode. + * sched.c (sched_analyze_insn): Add new parameter loop_note. + If loop_note set, then serialize on this insn. + (sched_analyze): New variable loop_note. Pass to + sched_analyze_insn. Set it if we pass a NOTE_INSN_LOOP_BEG or + NOTE_INSN_LOOP_END. + (unlink_notes): Don't save away NOTE_INSN_LOOP_BEG or + NOTE_INSN_LOOP_END notes. + (schedule_block): Generalize code that looks for magic REG_DEAD + notes and converts them to notes. -Mon Oct 19 10:59:20 1992 Michael Meissner (meissner@osf.org) +Sat Aug 20 12:47:21 1994 Michael Meissner (meissner@osf.org) - * xm-umips.h (index): Define to be strchr. - (rindex): Define to be strrchr. + * i386.h (REG_ALLOC_ORDER): Allocate eax first, then ecx, edx, and + then do the nromal allocation order for the remaining registers. - * mips-tdump.c (index, rindex): Undefine these, since the MIPS - include files have a field spelled index. +Fri Aug 19 20:14:35 1994 Jim Wilson (wilson@cygnus.com) -Mon Oct 19 03:34:04 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * tree.c (build_type_variant): Only return existing type if it + also has the same TYPE_NAME. - * Makefile.in (mostlyclean): Delete libobjc.a. - (libobjc.a): Create the objc subdir. + * irix5.h (NO_IMPLICIT_EXTERN_C): Comment out. -Sun Oct 18 17:52:05 1992 Arne H. Juul (arnej@lise.unit.no) +Fri Aug 19 16:41:43 1994 Per Bothner (bothner@kalessin.cygnus.com) - * objc/Makefile: Add .SUFFIXES .m and .m.o rule to keep non-GNU - make happy. + * fixproto: Use $FIX_HEADER macro instead of calling + fix-header directly in 2nd location. - * Makefile.in (libobjc.a): Remove libobjc.a in current directory - before attempting to hardlink it or make will fail in later stages. - (sublibobcj.a): Don't use $(MAKEFLAGS) for objc subdir stuff. +Fri Aug 19 17:34:19 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sun Oct 18 06:00:27 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) + * expr.c (emit_move_insn_1): Never make a no-conflict block. - * cse.c (canon_reg): Don't call validate_change if INSN is zero. + * tree.h (struct tree_type): New field transparent_union_flag. + (struct tree_decl): New field transparent_union. + ({DECL,TYPE}_TRANSPARENT_UNION): New macros. + * c-common.c (decl_attribute): Handle "transparent_union" attribute. + * function.c (assign_parms): If parm is transparent union, use + type of first field. + * calls.c (expand_call): Likewise. + * integrate.c (function_cannot_inline): Don't inline if any + parm is a transparent union. -Sun Oct 18 01:09:02 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri Aug 19 12:01:11 1994 Ian Lance Taylor (ian@cygnus.com) - * i860.h (PRINT_OPERAND): For `h', always use OPERAND_HIGH_ADJ_PART - even for integer constant addresses. + * fixincludes: Canonicalize ${INPUT} to avoid automounter + problems. - * final.c (output_addr_const): Always use FILE, not asm_out_file. +Fri Aug 19 11:31:24 1994 Kresten Krab Thorup (krab@akvavit.next.com) - * cccp.c (collect_expansion): Don't add whitespace at end - if inside a string and not traditional. - (rescan): At end of string, if inside macro, always keep scanning. + * objc-act.c (build_selector_translation_table): Reset + current_function_decl after hack_function_prototype build it. + (build_module_descriptor): Return constructor name from functions + decl_rtl. - * expr.c (store_field): If signed bitfield and want value, sign extend. +Thu Aug 18 17:23:18 1994 Per Bothner (bothner@spiff.gnu.ai.mit.edu) -Sat Oct 17 21:11:09 1992 H.J. Lu (hlu@yardbird.eecs.wsu.edu) + * README.FRESCO: New file. Notes about compiling the Fresco + toolkit with g++. - * Makefile.in (all.build): New rule for making gcc with a - cross-compiler. - (install.build): New target. - (line 271): Add `####build overrides'. - (gen*.o): Depend on hconfig.h, not config.h. - ($(HOST_PREFIX_1)rtl.o, $(HOST_PREFIX_1)print-rtl.o, - $(HOST_PREFIX_1)rtlanal.o, $(HOST_PREFIX_1)obstack.o, - $(HOST_PREFIX_1)malloc.o): Add final `h' to the regexp to replace. +Thu Aug 18 14:10:22 1994 Jim Wilson (wilson@cygnus.com) - * configure: If $host == $taget, but $host != $build, merge - `build-make' and emit `build = $build'. - * build-make: New file for making gcc with a cross-compiler. + * combine.c (distribute_notes, case REG_UNUSED): Ignore notes when + from_insn != i3 only if the notes would remain as REG_UNUSED notes. -Sat Oct 17 19:24:31 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Aug 17 18:31:43 1994 Holger Teutsch (holger@hotbso.rhein-main.de) - * c-typeck.c (process_init_constructor): When initializing a union, - handle the case of an empty init list. + * clipper.h (CLIPPER_ARG_SIZE): Return size in bytes. + (FUNCTION_ARG_ADVANCE): Fix argument alignment processing. - * reload.c (find_reloads_address): Redo last change: copy the mem - in the same way it's usually done. +Wed Aug 17 18:03:54 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * Makefile.in (gcc.xtar): Fix typo in last change. - (mostlyclean): Don't use $(MAKEFLAGS) for objc subdir stuff. + * fx80.md (casesi_2): Operand 0 is HImode; add SIGN_EXTEND + when adding to pc. + (casesi): Operand 0 is HImode. + (unnamed PC addition pattern): Add SIGN_EXTEND to add HImode + offset to SImode PC. + * m68k.md (tablejump): Add SIGN_EXTEND to HImode offset + so can add to SImode PC. + Likewise for matching pattern. + * cse.c (fold_rtx): When folding tablejump, allow LABEL_REF + to be in arg0; also allow other arg to be MINUS, not just be + equivalent to it. -Sat Oct 17 19:15:16 1992 John Wroclawski (jtw@pmws.lcs.mit.edu) +Mon Aug 15 19:19:11 1994 Paul Eggert (eggert@twinsun.com) - * decstatn.h (SIZE_TYPE): Fix typo. + * cccp.c (index0): New function. + (trigraph_pcp): Use index0 instead of index, so that a null + byte doesn't suppress further trigraph preprocessing. -Sat Oct 17 17:46:08 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * cccp.c (rescan, do_ident): Pass more accurate size request + to check_expand. - * cp-method.c: Don't try to include string.h or strings.h. - * cp-decl.c: Ditto. + * cccp.c (main): Don't dump core if given -pcp, -MD, or -MMD + without following arg. -Sat Oct 17 13:50:49 1992 Fred Fish (fnf@fishpond.cygnus.com) +Mon Aug 15 17:56:38 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * fixinc.svr4 (string.h): - Remove #defines for other compiler's builtin functions. + * stmt.c (expand_elseif): New function. -Sat Oct 17 00:39:30 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Aug 15 14:16:18 1994 Ian Lance Taylor (ian@cygnus.com) - * protoize.c: Add #undef getopt after getopt.h. + * configure: If the host is guessed, and the target name is a + prefix of the host name, then use the target name as the host + name. - * gstdarg.h, gvarargs.h (va_list) [__SVR4_2__]: - Don't set or test _VA_LIST. +Mon Aug 15 13:35:24 1994 Stan Shebs (shebs@andros.cygnus.com) - * gstddef.h: Do nothing if _ANSI_STDDEF_H already defined. + * m68k/m68k-coff.h: New file. -Fri Oct 16 11:39:06 1992 H.J. Lu (hlu@yardbird.eecs.wsu.edu) +Sun Aug 14 00:28:15 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - * emit-rtl.c (gen_lowpart_common): Fix typo in last change. + * objc/encoding.c (objc_sizeof_type): Assign from ROUND, + don't increment. Remove ; after while to fix infinite loop. + Add float and double cases. + (objc_alignof_type): Add float and double cases. + * objc/selector.c (): Use __objc_selector_names, not + __objc_selector_array. + (sel_types_match): New function. + (sel_get_typed_uid): Use sel_types_match. Change strcmp to !strcmp. -Fri Oct 16 22:35:15 1992 Eric Youngdale (youngdale@v6550d.nrl.navy.mil) +Sun Aug 14 21:54:29 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * make-cc1.com: Correct previous patch. + * pa.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): + Define. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. -Fri Oct 16 20:07:12 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * pa.c (hppa_expand_prologue): Avoid writing outside the current + stack boundary in code to handle large stack frames. - * objc-actions.c (start_class): - For an INTERFACE_TYPE, push to permanent obstack. - (build_message_expr): Use TYPE_MAIN_VARIANT when comparing types. +Sun Aug 14 18:55:51 1994 Jim Wilson (wilson@cygnus.com) - * Makefile.in (libobjc.a): Don't use $(MAKEFLAGS). - Add braces around shell variable references. - (collect2): Delete file before linking it. - * objc/Makefile (all): Don't use $(MAKEFLAGS). - (VPATH): Get rid of ../ since srcdir now absolute. + * unroll.c (loop_iterations): Use PREV_INSN not prev_nonnote_insn. -Fri Oct 16 14:23:25 1992 Michael Meissner (meissner@osf.org) + * bsd-5.h (ASM_OUTPUT_NEWLINE): Delete. + (ASM_OUTPUT_ASCII): Define. + * mips-5.h, svr3-5.h, svr4-5.h: Likewise. + * mips.h (ASM_OUTPUT_NEWLINE): Delete. + (ASM_OUTPUT_ASCII): Don't use ASM_OUTPUT_NEWLINE. - * decstatn.h (all defines): Protect all defines with an #ifndef, - to allow dec-osf1.h to selectively override macros. + * va-mips.h (va_start): Add cast to __gnuc_va_list type. -Fri Oct 16 10:44:47 1992 Tom Wood (wood@dg-rtp.dg.com) + * flow.c (mark_used_regs): When adding REG_DEAD notes, check for + the case where a multiple register hard reg overlaps a register + set by the insn. + * sched.c (attach_deaths): Likewise. + * combine.c (distribute_notes, case REG_DEAD): Add another + find_reg_fusage call. - * Makefile.in (libobjc.a): Compute srcdir1 without changing - directories. Use srcdir1 to locate objc/Makefile. Put quotes - around all potential multi-word values. Recompute GCC_FOR_TARGET. - (sublibobjc.a): Use same text as libobjc.a. - (mostlyclean): Use $(MAKE) and srcdir1 for objc action. - * objc/Makefile (SUBDIR_INCLUDES): Don't use ../$(srcdir). - (all): Use $(MAKE). + * unroll.c (calculate_giv_inc): Handle constants loaded with IOR. -Fri Oct 16 04:16:36 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Sun Aug 14 16:40:04 1994 Richard Stallman - * function.c (find_fixup_replacement): Renamed from find_replacement. + * cccp.c (skip_if_group): New arg op. All callers changed. + If output_conditionals is true, output text of failed conditionals. + (conditional_skip): New arg op. All callers changed. + (main): Handle -ifoutput option. - * varasm.c (output_addressed_constants): Handle NON_LVALUE_EXPR. +Sun Aug 14 05:49:29 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Fri Oct 16 02:25:17 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) + * print-tree.c (print_node{,_brief}): Use REAL_VALUE_TO_DECIMAL + to print REAL_CST ifdef REAL_ARITHMETIC. - * pa.md (call define_expands): If TARGET_LONG_CALLS, then force - the address of the function into a register. - * pa.h (TARGET_SWITCHES): New switch "-mlong-calls". - * pa.c (call_operand_address): Only allow registers if - TARGET_LONG_CALLS. + * reload1.c (count_possible_groups) Pass CLASS as arg and only + try to find groups of that class. -Fri Oct 16 00:21:57 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * configure: If config.guess fails and target specified, use as host. + Print a message when making a cross-compiler. - * Makefile.in (libobjc.a): Get directories right, using shell vars - thisdir1, srcdir1. Put quotes around $(GCC_CFLAGS). Use $(MAKE). +Sat Aug 13 17:12:30 1994 Jim Wilson (wilson@cygnus.com) -Thu Oct 15 17:07:18 1992 Mike Stump (mrs@hal.gnu.ai.mit.edu) + * configure (sparc-*-sunos4.0*): New configuration. + * t-sunos4: Rename file to t-sunos41. + * t-sunos40: New file. - * configure, config.sub, config/elxsi.{c,h,md}, config/xm-elxsi.h, - config/x-elxsi: Add support for new 64 bit CPU, called Elxsi. - -Thu Oct 15 16:55:22 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_builtin_saveregs): Fix bug in last change. - - * fold-const.c (distribute_bit_expr): Test for BIT_{AND,IOR}_EXPR. - - * cse.c (cse_insn): Add missing call to apply_change_group. - -Thu Oct 15 15:09:45 1992 Michael Meissner (meissner@osf.org) - - * t-mips (CCLIBFLAGS, LIBGCC2_CFLAGS): Delete, so that libgcc.a is - built with the -G 8 option, instead of -G 0, so that the linker - doesn't complain when linking in libg++.a. - * t-decstatn (CCLIBFLAGS, LIBGCC2_CFLAGS): Ditto. - -Thu Oct 15 14:30:25 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * mips-tfile.c (parse_def): Allow spaces in arguments for C++. - Correct test for null when searching for end of name. - -Thu Oct 15 11:55:51 1992 Tim Moore (moore@defmacro.cs.utah.edu) - - * pa.c (compute_frame_size): Take an fregs_live parameter instead - of setting the static variable save_fregs. - (output_function_prologue): Initialize save_fregs to 0 and pass to - compute_frame_size. - * pa.h (INITIAL_FRAME_POINTER_OFFSET): Pass extra null parameter - to compute_frame_size. - -Thu Oct 15 08:40:07 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.h (TARGET_FPREGS): New flag. - (TARGET_SWITCHES): Remove temporary -mfp and add -msoft-float and - -mfp-regs. - (TARGET_DEFAULT): Set to -mfp-regs -mno-soft-float. - (CONDITIONAL_REGISTER_USAGE): Use TARGET_FPREGS. - (FUNCTION_VALUE, FUNCTION_ARG, LIBCALL_VALUE): Use integer registers - for FP items if -mno-fp-regs. - * alpha.c (alpha_builtin_saveregs): Store integer regs twice instead - of storing the FP regs if -mno-fp-regs. - - * fold-const.c (fold): Add missing test in case when we - distribute a NOP_EXPR into a COND_EXPR and try to pull it back - out again. - -Thu Oct 15 08:11:00 1992 Tom Wood (wood@dg-rtp.dg.com) - - * fold-const.c (simple_operand_p): Don't regard global or static - variables as simple. - (fold_truthop): Only require the RHS to be simple. - - * m88k.h (CPP_SPEC): Add -D__m88110__ when -m88110 is in effect, - similarly for -m88100. - * m88kdgux.h (CPP_SPEC): Ditto. - * m88kluna.h (CPP_PREDEFINES): Drop -Dmc88100. - (CPP_SPEC): Reproduce the predefine -Dmc88100 when -m88100 is in - effect. Otherwise, supply -D__mc881x0__ when -m881x0 is in effect. - -Thu Oct 15 02:09:49 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * expr.c (get_inner_reference): - If flag_volatile, treat every INDIRECT_REF as volatile. - - * collect2.c (main): If COLLECT_GCC is a relative name, use it anyway. - - * x-next: New file. - * configure (m68k-next-*): Use that. - - * Changes from NeXT: - - * libgcc2.c [L_ctors] (__CTOR_LIST__, __DTOR_LIST__): - Initialize these default definitions if __NeXT__. - - * gvarargs.h [__NeXT__]: Define _VA_LIST_ if _ANSI_STDARG_H_ was - defined; then define _ANSI_STDARG_H_. - - * gstddef.h (_ANSI_STDDEF_H): Define, along with _STDDEF_H. - - * next.h (INCLUDE_DEFAULTS): New macro. - - * cp-method.c (index, rindex): Delete declarations. - (build_overload_value): Cast result of index. - - * cccp.c (cplusplus_comments): New var. - (main): Set it according to options. - (rescan, handle_directive, skip_if_group, validate_else): - (skip_to_end_of_comment, macarg1, discard_comments): - Use cplusplus_comments to enable C++ comment syntax. - -Wed Oct 14 11:34:58 1992 Chip Salzenberg (chip@tct.com) - - * libgcc2.c (__gcc_bcmp): Don't depend on signedness of `char'. - -Wed Oct 14 18:52:28 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * sched.c (sched_note_set): Set subreg_p for anything except a - paradoxical subreg. - - * configure (sparc-*-solaris2): Use xm-spc-sol2.h not xm-spcv4.h. - - * reload.c (find_reloads): Don't let an operand have a numbered - constraint that makes it match itself. - -Wed Oct 14 10:38:31 1992 Tim Moore (moore@defmacro.cs.utah.edu) - - * pa.md (sCC patterns): Comparison operator should have SImode, - not CCmode. - (indexed addressing mode patterns): New patterns to use indexed - addressing if possible. - * pa.c (output_and): Do handle (const_int 0) as an operand; it - seems to occur in unoptimized compilation. - * pa.h (REGNO_OK_FOR_FP_P): Logic bug. - * va-pa.h : When __GNUC__ == 1, don't include the gcc 1 varargs - file (va-hp9k8.h). Instead, the definitions are explicitly defined - here. This avoids multiple typedefs of va_list. - * xm-pa.h (HAVE_VPRINTF) Define in HPUX 8.0. - - * pa.md (mulsi): Use the hardware multiply instruction, xmpyu, if - TARGET_SNAKE. - (umulsidi3): New pattern. - (reload_insi, reload_outsi, reload_indi, reload_outdi): New - patterns. These are needed because SImode and DImode pseudoregs - may be allocated (or reloaded) in floating point registers for - multiplication. That means that their addresses, which were - legitimate for SImode and DImode, aren't valid any more. - (movsi, movhi, movqi, movdf, movdi, movsf): Pass null scratch - operand to emit_move_sequence. - (fp SImode load and store patterns): Move before main movsi - pattern. - (fp DImode load and store patterns) New patterns. - (movhi, movqi patterns): Support moves to/from fp registers. - (movdf pattern): Ensure at least one operand is a register. - * pa.c (emit_move_sequence): Take reload scratch register - argument, deal with reloads of SImode and DImode mems into - floating point registers, handle function_label_operand moves. - (secondary_reload_class): A scratch register is needed if - reloading a function_label_operand address (probably doesn't - happen) or an SImode or DImode value into/out of a floating - point register. - * pa.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, - REG_CLASS_FROM_LETTER): Define a new register class - FP_OR_SNAKE_FP_REGS, used only be reload_{in,out}{si,di}. - (HARD_REGNO_MODE_OK): Allow all integer modes in Snake floating - point registers. QImode and HImode pseudoregs may end up there - when using xmpyu. - - * pa.md (pic symbolic address pattern): New pattern. - (movsi, movdi patterns): Remove some * constraints from fp registers. - (pic label address pattern): Fix typo. - (function_label_operand patterns): New patterns for loading a - label address in HPUX 8.0. - * pa.c (finalize_pic): No real initialization is necessary for pic. - (output_function_prologue): Save r19, the pic offset table - register. If profiling, save and restore the structure value - return register (r28) around the call to mcount. - (hppa_encode_label, function_label_operand): New functions. - Record if a label is a code label so it can be treated specially - in HPUX 8.0. - * pa.h (TARGET_SHARED_LIBS): New flag. Generate code that can be - linked with HPUX 8.0 shared libraries. - (TARGET_SWITCHES): New flags: -mshared-libs and -mno-shared-libs. - (PIC_OFFSET_TABLE_REGNUM): This is really r19. The preliminary - docs from HP were wrong. - (ASM_DECLARE_FUNCTION_NAME): Specify "ENTRY" param in .EXPORT - directive. - (ENCODE_SECTION_INFO): Encode function labels. - (ASM_OUTPUT_LABELREF): Deal with function labels. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Don't do anything for - now; their only use (saving stuff during profiling) interacts in a - wierd way with required assembler directives at the start of a - function. Instead, do the save and restore in the function - prologue. - (hppa_encode_label): Declare. - * pa-hpux.h, pa-ghpux.h (TARGET_DEFAULT): Link against shared - libraries. - (LINK_SPEC): Don't link against shared libraries if debugging or - profiling. - * pa1-hpux.h, pa1-ghpux,h (TARGET_DEFAULT): Link against shared - libraries. - -Wed Oct 14 10:17:49 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (gcc.xtar): Copy the objc subdir. - (mostlyclean): Run the mostlyclean target in the objc subdir. - (objc-runtime, libobjc.a, sublibobjc.a): New targets. - (objc, objective-c): Dep on objc-runtime. - - * objc/*: New files. - -Wed Oct 14 07:17:19 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.md (smax, smin): Fix typo in output strings. - - * a29k.c (const_16_operand, const_24_operand): Fix typo in declaration - of MODE. - (gpc_reg_or_immediate_operand, and_operand, add_operand): Likwise. - -Wed Oct 14 00:12:16 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * pa.h (RTX_COST): Fix spacing typo. - -Tue Oct 13 21:51:05 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * a29k.md (call, call_value): Don't use call_operand, since - checking for recursive calls at this point is not safe. - -Tue Oct 13 18:52:17 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-type2.c (my_friendly_abort): Tell them to write to bug-g++. - -Tue Oct 13 18:16:12 1992 Chris Smith (csmith@convex.com) - - * convex.h (P_tmpdir): define to use /tmp. - (RETURN_POPS_ARGS): correct definition to return size. - (ASM_IDENTIFY_GCC): output something between gcc2_compiled and - first function to keep gcc2_compiled out of assembler stabs. - - * convex.md (adddi3, ordi3, xordi3): check sign of CONST_INT - operands before using as immediates; these insns are word only. - (ashrdi3): don't use negative shift counts. - - * convex*.h (CPP_SPEC): define __NO_INLINE_STDLIB - - * xm-convex.h: remove temporary workaround from OS 8.0. - -Tue Oct 13 14:10:15 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * cp-lex.c (check_newline): Verify that main_input_filename is - valid before using it. - -Tue Oct 13 19:08:54 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * a29k.c: Now includes reload.h. - (spec_reg_operand): Validate mode and know that some regs support - MODE_PARTIAL_INT and some MODE_INT. - (call_operand, reload_memory_operand, a29k_get_reloaded_address) - New functions. - (in_operand): Allow constants with MODE_PARTIAL_INT. - (out_operand): Allow special registers with any mode. - Any MEM a word or wider is valid. - (extend_operator): Deleted. - (secondary_reload_class): A pseudo is the same as memory; we need - BP_REGS for multi-word memory or for bytes and halfword if -mndw. - (print_operand): Delete %X; add %m. - (print_operand, case 'F'): Check for SYMBOL_REF. - * a29k.h (PROMOTE_MODE, ADJUST_COST): New macros. - (CALL_USED_REGISTERS): LR0 is call-used. - (HARD_REGNO_MODE_OK): Handle MODE_PARTIAL_INT and the special - registers that can only hold those modes. - (MODES_TIEABLE_P): Clean up and handle MODE_PARTIAL_INT modes. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add new - classes LR0_REGS, FC_REGS, and CR_REGS. - (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. - (PREDICATE_CODES): Update for new and deleted predicates. - * a29k.md: Use GEN_INT when appropriate. - (define_attr type): New types for SQRT. - (call patterns): Use SCRATCH for LR0. - Use new predicate call_operand so that some integers can be - used as addresses; fix CALLI so it doesn't accept constant. - (EXBYTE, EXTHW, INBYTE, INHW): Use ZERO_EXTEND instead of AND - when combine will make it. - Use PSImode for BP value and don't reference BP explicitly. - Clean up define_expands for these operations. - (rotlsi3): Use PSImode pseudo for FC. - (sign_extend): Sign extension insns clobber BP. - ({load,store}_multiple): Use PSImode pseudo for CR. - (MTSR): Add pattern for TRUNCATE from SImode to PSImode. - (sqrtsf2, sqrtdf2, movpsi): New patterns. - (load/store bytes/halfword): Clean up to accept temporaries as - input and use PSImode when required. - (movhi, movqi): Allocate temporaries here. - (reload_inqi, reload_outqi, reload_inhi, reload_outhi): New - patterns. - (movdf, movdi, movti): Use SCRATCH for BP register. - (reload_{in,out}{df,di,ti}): New patterns. +Sat Aug 13 13:50:22 1994 Jeffrey A. Law (law@snake.cs.utah.edu) -Tue Oct 13 16:52:33 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * reload1.c (emit_reload_insns): Handle a secondary input reload + which needs to use secondary memory too. - * fixinc.svr4 (sys/stream.h, sys/strsubr.h): Delete spurious `extern' - in various structure definitions. +Fri Aug 12 18:53:24 1994 Ian Lance Taylor (ian@cygnus.com) - * rtlanal.c (single_set): Fix typo in REG_UNUSED check. + * mips/mips.c (override_options): If neither -mcpu= nor -mipsN was + used, and MIPS_CPU_DEFAULT is defined, set mips_cpu to + MIPS_CPU_DEFAULT and set mips_cpu_string to + MIPS_CPU_STRING_DEFAULT. - * cse.c (simplify_binary_operation): Insure that folded >> extends - the sign even if the host bootstrap compiler doesn't. +Fri Aug 12 10:54:35 1994 Stan Cox (coxs@dg-rtp.dg.com) - * final.c (output_asm_insn): Advance over the = when processing %=. + * m88k/dgux.h, m88k/dguxbcs.h (ASM_SPEC,CPP_SPEC): + Made -pipe work for -msvr4. Added -D*_TARGET definitions. - * fixincludes (stdio.h): Fix va_list when preceeded by a *. + * m88k.c (emit_bcnd): Improved code generated by changing cmp/bbx + instruction pair to single bcnd instruction -Tue Oct 13 14:52:57 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) +Fri Aug 12 07:52:20 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * spc-sol2.h (STARTFILE_SPEC): Add crtbegin.o. - (LIB_SPEC): Add crtend.o for running ctors/dtors. - * t-sol2 (EXTRA_PARTS): Add crtbegin.o and crtend.o for C++. - (FIXINCLUDES): Deleted. - * configure (sparc-*-solaris2*): Set fixincludes here. + * cse.c (set_nonvarying_address_components): If BASE is CONST_INT, + add value to start and set BASE to const0_rtx. + (refers_to_mem_p): Don't do it here. -Tue Oct 13 20:15:45 1992 Eric Youngdale (youngdale@v6550d.nrl.navy.mil) + * function.c (expand_function_start): Add redundant copy to + static_chain_incoming_rtx if SMALL_REGISTER_CLASS so inlining + works properly. + * integrate.c (expand_inline_function): Use single_set when + appropriate. + Delete insn that sets static_chain_incoming_rtx before its use. + (subst_constants): Treat virtual reg as constant. - * make-cc1.com: Simplify extraction of YYEMPTY from cp-parse.c. - Generate c-parse.y, objc-parse.y from c-parse.in if required. - Pat Rankin did some of this. + * flow.c (mark_used_regs): Only show changes size if one mode is + integral. + * stupid.c (stupid_mark_refs): Likewise. + * combine.c (simplify_rtx, case FLOAT_TRUNCATE): Remove + redundant float_truncate. + * rs6000.md (movsf): Don't truncate if not register; clean up. -Tue Oct 13 14:06:45 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * c-decl.c (duplicate_decls): Suppress -Wredundant-decls warning + if we have already given an error. - * sparc.md (in_branch_delay): Allow fpload and fpstore. +Thu Aug 11 18:44:25 1994 Jason Merrill (jason@deneb.cygnus.com) - * collect2.c (main): Only install a signal handler for signals - that already have handlers. - (fork_execute): Don't ignore signals before calling do_wait. + * stmt.c (expand_anon_union_decl): Fix up the alignment and mode + of the member VAR_DECLs. - * i960.md: Change 'f' constraint for dest to '*f' if it is not the - only alternative. Add '*f' dest constraints to all patterns where - it is valid but was previously missing. +Thu Aug 11 13:36:14 1994 Per Bothner (bothner@kalessin.cygnus.com) - * i960.h (OVERRIDE_OPTIONS): Enable function inlining. - * i960.c (g14_save_reg): Delete variable. - (i960_output_call_insn): Add two new parameters arg_pointer and - scratch_reg. Save/set/restore g14 if necessary. - (i960_expand_call): Delete function. - * i960.md (call, call_value): No longer call i960_expand_call, - instead call call_internal/call_value_internal pattern. - (call_internal, call_value_internal): Rewrite patterns to pass new - args to i960_output_call_insn. + * tree.c (stabilize_reference): Handle COMPOUND_EXPR. - * sparc.md (movstrsi+1): Add `+' to constraints for clobbered inputs. + * fix-header.c (write_rbrac): If NO_IMPLICIT_EXTERN_C is defined, + add extern "C" { ... } to added prototypes. (Needed for hpux.) - * i960.c (i960_output_call_insn): Emit bx instead of b, callx - instead of callj. +Thu Aug 11 14:23:59 1994 Paul Eggert (eggert@twinsun.com) - * sparc.c (sparc_frw_output_function_prologue): Frame pointer base - must be same as for regular sparc code. + * cccp.c (rescan): Fix botches with `-lint': the output buffer + pointer was not recached properly, leading to lost output. + Also, buffer overrun was possible. -Tue Oct 13 06:02:03 1992 Tom Wood (wood@dg-rtp.dg.com) + * cccp.c (dump_defn_1): Skip newlines and strings correctly. - * loop.c (loop_optimize): Verify that max_uid_for_loop is still - larger than the uid of any insn. Increase the number of exit - blocks from 4 to 32 per loop. - (find_and_verify_loops): Stop trying to relocate exit blocks when - allocating a new label would exceed max_uid_for_loop. +Thu Aug 11 14:13:17 1994 Niklas Hallqvist (niklas@appli.se) - * combine.c (subst): Don't change a conditional branch into a - conditional move. + * configure (m68k-*-netbsd*): New target, like others. - * m88k.md (ext shift patterns): No longer needed. +Thu Aug 11 14:09:23 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) - * m88k.c (mostly_false_jump): Recognize a sequence properly. + * alpha.h (FUNCTION_PROFILER): Load global pointer from $27, not $26. e -Mon Oct 12 22:31:37 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * pa.h (LEGITIMIZE_ADDRESS): Fix typo. +Thu Aug 11 13:52:15 1994 Walter Misar (misar@rbg.informatik.th-darmstadt.de) -Tue Oct 13 00:14:09 1992 H Lu (hlu@eecs.wsu.edu) + * m68k/hp320.h (NO_DOT_IN_LABEL): Define if HPUX_ASM. - * Makefile.in (install-common): Put - on cmd that handles protoize. - (gcc.o, cccp.o): Define TOOLDIR for the compilation. - (all HOST_PREFIX_1 targets): Fix typos. +Thu Aug 11 13:12:12 1994 David Mosberger-Tang (davidm@cs.arizona.edu) - * x-linux (cpp.a, linux.a, cc1.a, cc1plus.a, gcc.a): Targets deleted. - (LD, ALIBS, STANDARD_STARTFILE_PREFIX, GPLUSPLUS_INCLUDE_DIR): - Vars deleted. + * alpha.h (BLOCK_PROFILER): Use $26 and $27 instead of $0 and $1. - * i386linux.h: Delete NO_JUMPTABLE conditional and contents. - (GPLUSPLUS_INCLUDE_DIR): Defined. - (STARTFILE_SPEC): Changed. +Thu Aug 11 13:09:36 1994 Antti Miettinen (amiettin@trshp.trs.ntc.nokia.com) - * gen*.c: Include hconfig.h, not config.h. + * config/lynx.h (ASM_OUTPUT_SOURCE_LINE): Call assemble_name. -Mon Oct 12 16:25:22 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Aug 11 12:57:22 1994 Stephen L Moshier (moshier@world.std.com) - * configure.bat, vmsconfig.com: Make hconfig.h. + * expr.c (expand_builtin): Relegate sin and cos to ffast-math. - * vax.h (PRINT_OPERAND): Detect `double' constants by DFmode, - since VOIDmode means an integer. +Thu Aug 11 12:45:20 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * mips.h (DEBUG_REGISTER_NAMES): New macro definition. - * print-rtl.c (reg_names): - Make it static. Use DEBUG_REGISTER_NAMES if that's defined. - * regclass.c (reg_names): Reinstate the definition here. + * flow.c (find_auto_inc): Ensure that all proposed changes to + insns are valid before commiting to the auto-inc. - * fixinc.svr4: Delete excess fi in fixing stat.h. + * calls.c (expand_call): Ensure we call force_operand on + structure_value_addr. -Mon Oct 12 08:10:37 1992 James Van Artsdalen (jrv@goldman.gnu.ai.mit.edu) + * configure: Use config.guess to get default value for host, + not target. - * Makefile.in (install-fixincludes): Only delete an existing - syslimits.h if we install limits.h over it. +Thu Aug 11 12:43:24 1994 Robert Wilhelm (Robert.Wilhelm@physik.tu-muenchen.de) - * i386.h (PRINT_REG): Undo Oct 11 change. - (DEBUG_PRINT_REG): New macro, used from print-rtl.c. + * Makefile.in (mostlyclean): Add missing -f. - * conditions.h (CC_NOT_SIGNED): New macro. - * final.c (alter_cond): If CC_NOT_SIGNED, convert signed - conditions to unsigned. +Tue Aug 9 02:02:07 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * i386.md (cmpstrM patterns): Compare strings of unsigned chars, - not strings of signed chars. + * pa.md (default set high): Do not accept function label arithmetic + as a valid operand. + (default lo_sum): Likewise. + * pa.c (hppa_legitimize_address): Do nothing with function label + arithmetic. + (emit_move_sequence): Split up function label arithmetic so that + function's address is loaded first, then constant part is added to + the function's address. + (is_function_label_plus_const): New function. -Mon Oct 12 06:31:13 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Mon Aug 8 19:57:05 1994 Matthias Pfaller (leo@marco.de) - * combine.c (try_combine): Save DEST of NI2PAT before calling - recog_for_combine, which might make it a PARALLEL. + * ns32k.md (all patterns that use ins/inss and ext/exts): + Disallow use of these instructions when -mnobitfield is + specified. + * ns32k.h (TARGET_BITFIELD): New macro. + (TARGET_SWITCHES): Support for TARGET_BITFIELD. + * ns32k/netbsd.h (TARGET_DEFAULT): Added -mnobitfield. + (CPP_PREDEFINES): Added -Dpc532. + (WCHAR_{TYPE, UNSIGNED, TYPE_SIZE}): Changed to match new definition + in NetBSD 1.0. + * ns32k.c (print_operand_address): A patch for 2.5.8 ended up at the + wrong place. Moved. - * emit-rtl.c (gen_lowpart_common): Allow MODE_PARTIAL_INT where - MODE_INT is allowed. +Mon Aug 8 19:42:09 1994 Paul Eggert (eggert@twinsun.com) - * combine.c (try_combine): Properly call single_set when validating - the result of a define_split. + * cccp.c (create_definition): Warn about `#define a@', since a + diagnostic is now required (see ISO TC1's addition to + subclause 6.8). Also warn about `#define is-empty(x) (!x)'. -Mon Oct 12 00:24:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Aug 8 16:32:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * calls.c (calls_alloca): Don't look within DECL_INITIAL if it's 0. + * fix-header.c (write_rbrac): Set up to use fixed headers + if __USE_FIXED_HEADERS__ is defined. - * varasm.c (simplify_subtraction): New function. - * rtl.h (simplify_subtraction): Declared. - * final.c (output_addr_const): Call it. + * reload1.c (emit_reload_insns): Always clear new_spill_reg_store. - * print-rtl.c (DEBUG_PRINT_REG): Renamed from PRINT_REG. - (print_rtx): Use DEBUG_PRINT_REG. + * reload.c (find_reloads): Force reload for paradoxical SUBREG + of MEM if BYTES_BIG_ENDIAN. -Sun Oct 11 16:27:53 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu.edu) + * m68k/hp320.h (READONLY_DATA_SECTION): Remove definition. - * genrecog.c (merge_trees): When splitting, remember to clear DUPNO - in addition to the other things we can test. + * function.c (expand_function_start): Only use + static_chain_incoming_rtx once if it is a REG and we + have SMALL_REGISTER_CLASSES. - * recog.c (general_operand, immediate_operand, const_double_operand): - Allow CONST_INT with MODE_PARTIAL_INT. - (nonmemory_operand): Likewise. + * local-alloc.c (find_free_reg): Fix typo in last change. + * rs6000.h (CLASS_CANNOT_CHANGE_SIZE): New macro. -Sun Oct 11 07:53:39 1992 James Van Artsdalen (james at bigtex.cactus.org) +Sun Aug 7 08:54:42 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * xm-i38v4.h,xm-aix386.h (USE_C_ALLOCA): New macro. Define if not - using GNU C's builtin alloca. + * regs.h (reg_changes_size): Add declaration. + * flow.c (reg_changes_size): New variable. + (allocate_for_life_analysis): Allocate and initialize it. + (mark_used_regs, case SUBREG): Set it. + * local-alloc.c (qty_changes_size): New variable. + (alloc_qty{,_for_scratch}, update_qty_class): Set it. + (local_alloc): Allocate it. + (find_free_reg): If CLASS_CANNOT_CHANGE_SIZE, avoid its registers + if qty_changes_size. + * global.c (find_reg) If CLASS_CANNOT_CHANGE_SIZE, avoid its + registers if reg_changes_size. + * stupid.c (regs_change_size): New variable. + (stupid_life_analysis): Alloc, init and pass it to stupid_free_reg. + (stupid_mark_regs): Set it. + (stupid_find_reg): New arg, CHANGES_SIZE; avoid regs + in CLASS_CANNOT_CHANGE_SIZE if defined and CHANGES_SIZE nonzero. + * reload.c (push_reload): Make test in LOAD_EXTEND_OP case more + precise; handle CLASS_CANNOT_CHANGE_SIZE. + (find_relods): When setting force_reloads, make LOAD_EXTEND_OP + case more precise. + * alpha.h (CLASS_CANNOT_CHANGE_SIZE): New macro. - * i386.c (notice_update_cc): Only set CC_IN_80387 for float compares. + * reload1.c (eliminate_regs, case SUBREG): Add USE of pseudo + so we don't improperly delete an output reload. - * i386.h (PRINT_REG): Make register name arrays static within this - macro. +Fri Aug 5 15:08:39 1994 Jason Merrill (jason@deneb.cygnus.com) -Sun Oct 11 01:41:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expr.c (expand_expr, COND_EXPR case): Use truthvalue_conversion + to make the condition for running cleanups acceptable to + invert_truthvalue. - * jump.c (jump_optimize): Don't optimize jumps to store-flag insns - when BLKmode values are being compared. +Fri Aug 5 12:29:42 1994 Jim Wilson (wilson@cygnus.com) -Sat Oct 10 16:51:08 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expmed.c (expand_mult): Accept DImode for synth_mult only if + CONST_DOUBLE_HIGH is zero. Reject negative values for synth_mult + if the mode is larger than HOST_BITS_PER_INT. Don't do the + negate_variant if the mode is larger than HOST_BITS_PER_INT. - * print-rtl.c (print_rtx): Print hard reg name as well as number. - (PRINT_REG): New macro with default definition. - (reg_name): Moved here. - * regclass.c (reg_name): Deleted. +Fri Aug 5 12:23:17 1994 Stephen L Moshier (moshier@world.std.com) -Sat Oct 10 02:27:14 1992 James Van Artsdalen (james at bigtex.cactus.org) + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use long instead of + HOST_WIDE_INT. - * i386sco.h (TARGET_DEFAULT): New macro - don't make TARGET_IEEE_FP - default for SCO. +Fri Aug 5 12:18:18 1994 Kaveh R. Ghazi (ghazi@caip.rutgers.edu) -Sat Oct 10 04:52:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * configure: In subdirectories, make link to include directory. + * Makefile.in (distclean): Delete it. - * function.h (struct function): New fields const_rtx_hash_table, - const_rtx_sym_hash_table, first_pool, last_pool, pool_offset. - * function.c (pop_function_context, push_function_context): - Call {save,restore}_varasm_status. - * varasm.c: Include function.h. - (restore_varasm_status, save_varasm_status): New fns. - (init_const_rtx_hash_table): Allocate the hash tables in obstack. - (force_const_mem): Don't use CONST_DOUBLE_MEM for nested fns. - (clear_const_double_mem): Do nothing for nested fns. - * Makefile.in (varasm.o): Dep on function.h. +Thu Aug 4 17:21:02 1994 Jason Merrill (jason@deneb.cygnus.com) -Fri Oct 9 18:16:18 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * expr.c (defer_cleanups_to): Put back line which was mistakenly + removed. - * cp-decl.c (duplicate_decls): Only find out if olddecl is a - friend after we know it's not a TREE_LIST. +Wed Aug 3 21:37:31 1994 Doug Evans (dje@cygnus.com) -Fri Oct 9 18:10:19 1992 Jim Wilson (wilson@geech.gnu.ai.mit.edu) + * sparc.c (v9 sparc_builtin_saveregs): Save quadword fp regs on + 16 byte boundaries. Handle non-zero number of named fp args. + * va-sparc.h (v9 va_start): Pass an arg to __builtin_next_arg. + (v9 va_arg): Advance over float's. - * sparc.c (sparc_type_code): Return reasonable result for COMPLEX_TYPE. +Wed Aug 3 11:10:32 1994 Ian Lance Taylor (ian@mole.gnu.ai.mit.edu) -Fri Oct 9 14:33:26 1992 Tom Wood (wood@dg-rtp.dg.com) + * fixincludes: Changes for glibc. In the main loop, don't fix + files which contain the string ``This file is part of the GNU C + Library''. Don't include in if + contains the string ``__need___va_list''. In , don't + change GNUC_VA_LIST to GNUC_DUMMY_VA_LIST. Don't add extern "C" + to if it contains the string ``__BEGIN_DECLS''. Don't + add multiple inclusion protection to or if + they contain the string ``#ifndef''. - * reorg.c (start_of_epilogue_needs): New variable. - (mark_target_live_regs): Add in start_of_epilogue_needs when - NOTE_INSN_EPILOGUE_BEG is scanned. - (dbr_schedule): Compute start_of_epilogue_needs and update - end_of_function_needs to include sets by all instructions - following NOTE_INSN_EPILOGUE_BEG. +Tue Aug 2 18:38:46 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * m88k.md (return): Always available once reload has completed. - (epilogue): Use a return insn rather than an indirect jump. + * cse.c (simplify_unary_operation): Clean up some mode and + size checks with CONST_DOUBLEs; TRUNCATE should do nothing. -Fri Oct 9 12:36:54 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * combine.c (subst_prev_insn): Remove variable and all uses. - * spc-sol2.h (DBX_DEBUGGING_INFO): Defined. +Tue Aug 2 14:42:29 1994 Doug Evans (dje@canuck.cygnus.com) - * function.c (aggregate_value_p): Return 1 if regs we would use - are not all call-clobbered. + * sparc.h (V9_SWITCHES): Add -mmedlow, -mmedany. + (TARGET_OPTIONS): Delete. + (CONDITIONAL_REGISTER_USAGE): Don't unfix %g4 if -mmedany. + * sparc.c (sparc_code_model): Delete. + (sparc_override_options): Code model flags only useable with v9. - * stmt.c (POPSTACK): Pop discarded elts off all the stacks as we go. - -Fri Oct 9 07:30:14 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reorg.c (mark_target_live_regs): Fix bug in last change. - - * combine.c (subst, case SUBREG): Don't make a new REG for - stack, frame, or arg pointer. - * emit-rtl.c (gen_lowpart_common, gen_highpart, operand_subword): + * sparc.h (enum reg_class): New values EXTRA_FP_REGS, + GENERAL_OR_EXTRA_FP_REGS for the v9 case. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (REGNO_REG_CLASS): Handle EXTRA_FP_REGS. + (REG_CLASS_FROM_LETTER): Likewise, as `e'. + Treat `e' like `f' in v8 case. + (FP_REG_CLASS_P): New macro. + (PREFERRED_RELOAD_CLASS): Use it. + (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS, + SECONDARY_MEMORY_NEEDED, CLASS_MAX_NREGS, REGISTER_MOVE_COST): Likewise. + * sparc.md (all DF/TFmode patterns): Use `e' in contraint field + instead of `f'. - * local-alloc.c (optimize_reg_copy_1): Tighten up code to properly - handle the case when SRC or DEST is a multi-word hard register - and only some parts of the register are set or used. Also, avoid - updating register status for DEST if we can't do the optimization. +Mon Aug 1 20:05:51 1994 Roland McGrath - * jump.c (jump_optimize): Only use a REG as a target. + * config/i386/gnu.h: New file. + * configure (i[34]86-*-gnu*): Deal with this on its own, not like + i[34]86-*-mach*. Use i386/gnu.h and t-libc-ok; set gnu_ld and + gas, and disable fixincludes. - * alpha.c (alpha_builtin_saveregs): Don't use value of NREGS greater - than 6 when computing ARGSIZE. +Mon Aug 1 19:27:44 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * va-alpha.h (va_arg): Put parens around all uses of __VA arg. + * tree.c (permanent_allocation): When freeing to + momentary_function_firstobj, set momentary_firstobj to be + the next available location (i.e., momentary_function_firstobj). -Thu Oct 8 18:45:00 1992 Arne H. Juul (arnej@lise.unit.no) +Mon Aug 1 18:52:40 1994 Chris Arthur (csa@gnu.ai.mit.edu) - * Makefile.in (install-common-headers): added missing 'then' + * stddef.h: Handle _BSD_WCHAR_T_ like _WCHAR_T_, since + at least BSD/386 1.1 uses the former instead of the latter. + If _BSD_RUNE_T_ is defined, then define rune_t when we define + wchar_t. Test definedness of _GCC_SIZE_T as well as + _GCC_SIZE_T_; likewise for _GCC_PTRDIFF_T and _GCC_WCHAR_T. -Thu Oct 8 15:52:22 1992 Michael Meissner (meissner@osf.org) +Mon Aug 1 05:20:44 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * mips.h (SELECT_RTX_SECTION): Rename macro from obsolete name - SELECT_SECTION_MODE. + * pa-ghpux.h, pa-hpux.h (LINK_SPEC): Any -g argument implies + static linking. - * i386rose.h (whole file): Remove #ifdef before #undef of macros. - (LEGITIMATE_CONSTANT_P): Define, so that when half-pic is on, - half-pic addresses are not considered legitimate. - (SELECT_RTX_SECTION): If putting a half-pic pointer that is - loaded, put the pointer into the data section, rather than the - readonly_data_section. - (SELECT_SECTION): Define. - (ASM_OUTPUT_DOUBLE): If not cross compiling, emit double as two - longs, otherwise emit .double directive. - (ASM_OUTPUT_FLOAT): If not cross compiling, emit float as long, - otherwise emit .float directive. - (perform_fixdfsi): Copy arg to memory variable. - (SIZE_TYPE): Define to be long unsigned int. - (PTRDIFF_TYPE): Define to be int. - (WCHAR_TYPE)L: Define to be unsigned int. +Sun Jul 31 17:19:37 1994 Jason Merrill (jason@deneb.cygnus.com) - * i386.md (movsi): Remove obsolete half-pic code. - (call insns): For half-pic insns, force address into register. + * integrate.c (expand_inline_function): Don't fall down trying to + pass things by invisible reference. -Thu Oct 8 14:22:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Sun Jul 31 06:56:46 1994 Pat Rankin (rankin@eql.caltech.edu) - * Makefile.in (install-common-headers): Fix dir in chmods for assert.h. + * cccp.c (my_strerror): New function. + (error_from_errno, perror_with_name): Use it. - * va-i860.h (__savereg, va_arg): Put uses of __va in parens. +Sat Jul 30 12:59:01 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * vax.h (PRINT_OPERAND): Define new code, D. - * vax.md (movdi): Use D code for operand 1. + * fold-const.c (fold_truthop): Apply masks to constants. -Thu Oct 8 13:23:25 1992 Jeffrey A. Law (law@mole.gnu.ai.mit.edu) + * print-tree.c (print_node{,_brief}): Use correct printf code to + print INTEGER_CST if HOST_WIDE_INT is wider than int. - * pa.md (fp_alu function unit, case fpcc): Fpcc instructions use - the fpalu unit. In the most common case their result will be used - in a ftest instruction. Minimum distance between the fcmp and - ftest instruction is 4. + * expmed.c ({store,extract}_bit_field): Don't use bitfield insn + if OP0 is register and bitfield spans it. -Thu Oct 8 06:41:15 1992 Tom Wood (wood@dg-rtp.dg.com) + * m88k.c (arith64_operand): Integer CONST_DOUBLE is not DImode. + * sparc.c (reg_or_0_operand): Likewise. + * ns32k.c, pa.c (print_operand): Likewise. + * fx80.h, gmicro.h, ns32/{genix,merlin}.h (PRINT_OPERAND): Likewise. + * m68k/crds.h, m68k/news.h, pyr.h (PRINT_OPERAND): Likewise. - * function.c (assign_parms): Provide a safe value for - DECL_INCOMING_RTL in case of syntax errors. + * alpha.h (CASE_VECTOR_PC_RELATIVE): Define. + (ASM_OUTPUT_ADDR_VEC_ELT): Abort. + (ASM_OUTPUT_ADDR_DIFF_ELT): Now what used to be previous definition. + * alpha.md (tablejump): Rework to look like normal add but verify + that label is for next insn and is tablejump; look for ADDR_DIFF_ELT. + * cse.c (fold_rtx, case MEM): Surround TRUNCATE for jump table + entry with a CONST. + (fold_rtx, case '1'): Handle operand 0 of a CONST. + (fold_rtx, case PLUS): Handle (const (minus (label_ref) (label_ref))). - * dwarfout.c (dwarfout_init, dwarfout_finish): Don't output labels - or .debug_aranges entries for .data1 and .rodata1 as these - sections aren't currently used. +Fri Jul 29 19:27:17 1994 Lee Iverson (leei@ai.sri.com) -Thu Oct 8 04:44:17 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * c-decl.c (finish_decl): Preserve initialializer if iterator. - * reorg.c (mark_target_live_regs): Look at USE insns made by - update_block when scanning forward past target. - (mark_target_live_regs, dbr_schedule): Use GET_RTX_CLASS. +Fri Jul 29 19:07:23 1994 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) - * cse.c (PATHLENGH): Change from 20 to 10 to speed up compilations. + * libgcc2.c: Add declaration of ctime. + * bc-emit.c (bc_sym_write): Change %d to %lu in printf calls. + * fix-header.c (write_{l,r}brac): Specify return type of int. + * tree.c (change_main_variant): Return type now void. + * varasm.c (bc_output_constructor): Return type now rtx. -Thu Oct 8 03:07:33 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri Jul 29 18:33:48 1994 Ken Duda (kjd@cache.crc.ricoh.com) - * fold-const.c (invert_truthvalue): Never alter ARG. + * c-typeck.c (build_unary_op, case *INCREMENT_EXPR): + Add size in bytes, not value of sizeof. - * Makefile.in (TAGS): Exclude =*.[chy] from tags table. +Fri Jul 29 17:36:38 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * c-lex.c (yylex): For floats, use REAL_VALUES_LESS to distinguish - underflow from overflow. Delete special case for 0.0. + * function.c (expand_function_start): Initialize VALUE_ADDRESS. -Wed Oct 7 16:25:19 1992 Tom Wood (wood@dg-rtp.dg.com) + * romp.md (tst?f): Use CONST0_RTX instead of incorrect call + to immed_real_const_1. - * dwarfout.c (dwarfout_{begin,end}_function): New functions. - (body_{begin,end}_attribute): New functions. - (dwarf_attr_name): Print AT_body_begin and AT_body_end. - (output_{local,global}_subroutine_die): Output the new attributes. - * dwarf.h (enum dwarf_attribute): Add At_body_begin and AT_body_end. - * final.c (final_scan_insn): Call dwarfout_begin_function. - (final_end_function): Call dwarfout_end_function. + * expr.c (move_block_to_reg): Do nothing if NREGS == 0. - * m88k.h (FASTEST_ALIGNMENT): Define as 8 for -m88110 otherwise 4. - (CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Base on FASTEST_ALIGNMENT. - * m88k.md (movstrsi): No predicate is needed for the source or - destination. - * m88k.c (best_from_align): Add a target processor dimension for - -m88000, -m88110, and -m88100. - (expand_block_move): Choose method and limits based on -m88xxx option. - (block_move_no_loop): Extend to allow DImode. - * m88k-move.sh: Add the modules moveDI96x and moveDI41x through - moveDI47x. - * t-m88k, t-m88kluna, t-m88ksvr4: New modules added to MOVE_ASM. +Fri Jul 29 17:17:18 1994 Tom Tromey (tromey@busco.lanl.gov) - * m88k.c (output_call): Use different syntax for GAS. + * cccp.c (special_symbol, do_xifdef): Don't access value.defn + of a T_CONST. - * m88k.h (READONLY_DATA_SECTION): Don't override svr4.h - (ASM_OUTPUT_CASE_LABEL): For svr4, use .rodata. +Thu Jul 28 17:19:32 1994 Jason Merrill (jason@deneb.cygnus.com) -Wed Oct 7 15:47:19 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Reverse order of execution + of constuctor lists. + * config/svr3.h (DO_GLOBAL_CTORS_BODY): Ditto. - * configure (i486-ncr-sysv4): Use i386v4.h. - (i386-*-sysv4, i386-*-linux, i386-*-sysv): Handle 486 too. - (i486-*-sysv4, i486-*-linux): Deleted. - * i486v4.h, i486linux.h: Files deleted. + * libgcc2.c (__do_global_dtors): Reverse order of execution of + destructor lists. -Wed Oct 7 12:40:00 PDT 1992 Ron Guilmette (rfg at netcom.com) +Thu Jul 28 19:56:30 1994 Jim Pendergraft (jimp@dg-rtp.dg.com) - * populate (progname): Just the basename of $0 please. - (target_dir): Use abs_target_dir and rel_target_dir for clarity. - (source_dir): Use abs_source_dir and rel_source_dir for clarity. - (*): List input and output dirs on startup. - (*): Don't be so verbose; Don't echo names of output dirs/files as - they are created. + * dwarfout.c (output_decl, case FUNCTION_DECL): Corrected + and simplified code that determined when to generate + varargs or ANSI stdargs variable length parameter list + DWARF information. - * fixinc.svr4 (): Fix types of SIG_DFL, SIG_ERR, - SIG_IGN, and SIG_HOLD. - (): Turn definitions of stat, lstat, fstat, and mknod - into ANSI syntax and add __ to variables used. +Thu Jul 28 19:38:57 1994 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) - * c-parse.in (component_decl_list): Do pedwarn for missing semicolon - after last field decl. + * m68k.md (extv, extzv): In patterns that will use movb and + movw, ensure size is 8 or 16. -Wed Oct 7 09:49:34 1992 Michael Meissner (meissner@osf.org) +Thu Jul 28 19:28:31 1994 David Robinson (drtr@mail.ast.cam.ac.uk) - * decstatn.h (LINK_SPEC): Don't define if it is already defined, - ie dec-osf1.h has included decstatn.h. + * expr.c (expand_expr, case CONJ_EXPR): Use correct mode for + parts of a complex expression. - * dec-osf1.h (MACHINE_TYPE): Redefine to say DEC OSF/1 instead of - ultrix. + * optabs.c (expand_binop, case MULT [complex]) Fix typo. -Wed Oct 7 03:50:11 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Jul 28 19:21:38 1994 Uwe Seimet (seimet@chemie.uni-kl.de) - * configure (target_cpu_default): Var renamed from target_default. - Set it to 2, for a 486. Define TARGET_CPU_DEFAULT macro. + * am68k/atari.h (FUNCTION_VALUE): New override. - * i386.h (TARGET_CPU_DEFAULT): Add default definition. - (TARGET_SWITCHES): Include that in the default. +Thu Jul 28 17:27:38 1994 Paul Eggert (eggert@twinsun.com) - * toplev.c (main): Recover correctly from invalid -Wid-clash option. + * Makefile.in (c-lex.o, distdir-start): + Depend on $(srcdir)/c-gperf.h, not c-gperf.h. - * cccp.c (finclude): Set fp->buf earlier, so it's freed on error. +Thu Jul 28 15:14:33 1994 Oliver Kellogg (okellogg@salyko.cube.net) - * Makefile.in (install-common-headers): Avoid ! operator, for assert.h. + * m1750.inc (DNR.M): Add missing macro. -Tue Oct 6 20:21:21 1992 Jim Wilson (wilson@geech.gnu.ai.mit.edu) +Thu Jul 28 13:02:56 1994 Kresten Krab Thorup (krab@akvavit) - * unroll.c (copy_loop_body, JUMP_INSN case): Delete abort in the - code for setting the JUMP_LABEL field. + * objc/misc.c (__objc_xcalloc): Remove declaration of bzero. -Tue Oct 6 19:29:19 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) +Thu Jul 28 07:29:52 1994 Markus Wild (mw@eunet.ch) - * cp-call.c (build_overload_call_real): If `functions' is an - ADDR_EXPR (as with operator new and delete), give the name of its - argument as the error fn. + * c-common.c (decl_attributes): Correct string check for "format" + to include unsigned and signed char. -Tue Oct 6 14:15:15 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Jul 28 07:11:36 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * configure: Correct conditional in setting build_xm_file. + * reload1.c (compare_spill_regs): Simplify and return zero if + registers are the same. - * function.c (get_first_block_beg): New function. + * c-decl.c (finish_struct): Don't look at alignment of error_mark_node. - * cross-make (assertdir): Override usual definition. - * Makefile.in (install-common-headers): chmod assert.h in proper dir. - Use $(assertdir). - (assertdir): New variable. - (install-dir): Create dir $(includedir). - (includedir): Make this /usr/local/include. + * combine.c (try_combine): Don't make a MULT if none of the insns + in our input had one. -Tue Oct 6 12:05:35 1992 Jeffrey A. Law (law@mole.gnu.ai.mit.edu) +Wed Jul 27 19:06:53 1994 R Bowler (rbowler@cix.compulink.co.uk) - * pa.md (memory function unit, load case): Loads take two cycles, - not one. + * i370/mvs.h (ASM_OUTPUT_ASCII): Fix bug when first character + of string constant is single quote. -Tue Oct 6 07:56:05 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) +Wed Jul 27 22:44:32 1994 Jason Merrill (jason@deneb.cygnus.com) + + * m68k/next.h: #undef PCC_STATIC_STRUCT_RETURN. - * pa.md (adddi3): Fix typo. + * alpha/alpha.h: #define NO_IMPLICIT_EXTERN_C. -Tue Oct 6 04:03:40 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Jul 27 14:06:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * m68k.c (floating_exact_log2, standard_68881_constant_p): - (standard_sun_fpa_constant_p): Use REAL_VALUE_FROM_CONST_DOUBLE. - (print_operand): Likewise. + * expmed.c (expand_mult): Properly set ADD_TARGET for add_variant. -Mon Oct 5 18:39:29 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * alpha.h (INITIAL_ELIMINATION_OFFSET): Properly compute offset + between AP and SP when get_frame_size and + current_function_pretend_args_size are not a multiple of 16 bytes. - * tree.h (TREE_VIA_PROTECTED): Set protected_flag, not static_flag. + * expmed.c (expand_divmod): Don't make REG_NOTE if last insn's + destination isn't QUOTIENT. -Mon Oct 5 18:27:08 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Tue Jul 26 19:45:54 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * Makefile.in ($(srcdir)/INSTALL): Add -D INSTALLONLY. + * expr.c (expand_expr, case ARRAY_REF): Don't fold L"foo"[2]. -Mon Oct 5 14:46:08 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) +Tue Jul 26 14:10:52 1994 Per Bothner (bothner@kalessin.cygnus.com) - * cp-parse.y (unary_expr): Use the `new' rule when looking for - something like `new(foo) char[10]'. + * config.sub: Refer to NeXT's operating system as nextstep. - * cp-decl.c (grokparms): Don't call digest_init on default args. +Tue Jul 26 13:50:37 1994 Jim Wilson (wilson@cygnus.com) -Mon Oct 5 02:21:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * c-typeck.c (process_init_element): Do not call push_init_level + if the value is error_mark_node. - * reload1.c (allocate_reload_reg): Always check for asm - on failure instead of simply aborting. + * iris5.h (NO_IMPLICIT_EXTERN_C): Define. - * optabs.c (init_optabs): Use cabs as the only libcall for abs. +Mon Jul 25 00:20:36 1994 Chris Arthur (csa@gnu.ai.mit.edu) -Mon Oct 5 03:10:14 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) + * configure (canon_target): add cases to recognize BSD/386 + specifically, so we can use a tm_file that will cause __bsdi__ + to get defined (since emacs, among other things, needs it). - * c++ (numargs): $# was used after set was called; instead, save - $# in $numargs and use that value instead. + * config/i386/bsd386.h: New. Use 386bsd.h, and just override + CPP_PREDEFINES (add -Dbsdi) and WCHAR stuff. -Sun Oct 4 12:34:00 PDT 1992 Ron Guilmette (rfg at netcom.com) +Sat Jul 23 16:30:12 1994 Kaveh R. Ghazi (ghazi@caip.rutgers.edu) - * dwarfout.c (hard-reg-set.h): Included to get decl of `reg_names'. - (PRINT_REG): Default definition added. - (dwarf_last_decl): Variable declaration added. - (output_reg_number): New function; handle -fverbose-asm reg printing. - (output_mem_loc_descriptor, output_loc_descriptor): Call it. - (output_decl): Set `dwarf_last_decl' each time this fn is called. - * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Declared. - (PRINT_REG): Definition moved from i386.c. - * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Not static. - (PRINT_REG): Definition moved to i386.h. + * fixinc.svr4: Change i860 in #if to __i860__, as with other CPUs. -Sun Oct 4 00:53:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri Jul 22 14:33:59 1994 Doug Evans (dje@cygnus.com) - * c-decl.c (shadow_tag_warned): Use pedwarn for useless keyword. + * h8300.md (andhi3, iorhi3, xorhi3): Change constraint on + operand 2 from `i' to `n'. - * c-lex.c (readescape): No warning if digits in \x are all 0's. +Fri Jul 22 09:30:39 1994 DJ Delorie (dj@ctron.com) -Sat Oct 3 14:37:39 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * configure.bat: move code to config/msdos/* (simplification) - * optabs.c (expand_complex_abs): New function. - * expr.h (expand_complex_abs): Add declaration. + * config/msdos/configure.bat [new file]: moved most processing + here so that as things get more complicated with the language + breakouts, the top directory won't get too messy. Sed script + broken out to simplify processing and avoid quoting errors. + * config/msdos/top.sed [new file]: sed script to change Makefile.in + to Makefile in top directory (currently used for cp directory also) + sed commands changed to handle language breakout -Sat Oct 3 07:29:09 1992 Michael Meissner (meissner@osf.org) + * gcc.c (pexecute): use spawn*() for djgpp to ensure that quotes + are properly preserved. Response file code left for 16-bit + compilers, which can't handle the long command lines that gcc + may generate. - * configure (mips-dec-osf1): Use x-dec-osf1 instead of x-decstatn. + * config/i386/go32.h: define NO_IMPLICIT_EXTERN_C. - * x-dec-osf1 (new file): Like x-decstatn, except that INSTALL is - installbsd -c. +Thu Jul 21 23:19:03 1994 Steve Chamberlain (sac@wombat.gnu.ai.mit.edu) -Sat Oct 3 05:04:43 1992 Tom Wood (wood@dg-rtp.dg.com) + * sh/sh.h (TARGET_SWITCHES, PACKSTRUCT_BIT, STRUCTURE_SIZE_BOUNDARY): + parse and handle new option. + (LEGITIMATE_CONSTANT_P): LABEL_REFs are no longer illegal. + (WCHAR_TYPE, WCHAR_TYPE_SIZE): New definitions. + (HANDLE_PRAGMA): Has return. - * toplev.c (rest_of_decl_compilation): Don't call - dwarfout_file_scope_decl as this causes duplicates. + * sh/sh.c (add_function, seen_function): Experimental code to + generate bsrs. + (handle_pragma): Return final char. + (expand_acall): Handle TARGET_BSR. + (general_movdst_operand, general_movsrc_operand): Allow ok + autoinc/dec. + (bsr_operand): New function. + (fixit): Need to fix LABEL_REFs. -Sat Oct 3 01:35:23 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * sh/sh.md (addc): Simplify. + (adddi3, subdi3, negdi3): Use operand_subword. + (subc, negc): New pattern. + (shifts): Fix constraints. - * explow.c (allocate_dynamic_stack_space) [MUST_ALIGN]: - Always add to size, always round up to STACK_BOUNDARY, - always round the address. +Thu Jul 21 17:59:43 1994 Jim Wilson (wilson@cygnus.com) - * rtl.h (gen_realpart, gen_imagpart): Declared. + * objc-act.c (build_module_descriptor): Don't set DECL_EXTERNAL on + current_function_decl. -Fri Oct 2 20:03:53 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * combine.c (simplify_rtx): For (not (xor X C)) generate new rtx + instead of modifying old rtx. - * emit-rtl.c (gen_realpart, gen_imagpart): New functions. - * optabs.c (expand_unop, expand_binop): Use them. - * expr.c (expand_expr): Use them. + * c-decl.c (start_function): If old_decl is NULL, then set it to + the implicit decl if any. Delete superfluous test from warn missing + prototypes code. For warn missing declarations code, only warn if + previous decl is implicit. - * cccp.c (main): Handle -U before -D (and -A). +Thu Jul 21 17:47:05 1994 Paul Eggert (eggert@twinsun.com) - * assert.h: Add magic comment at beginning. - * Makefile.in (includedir): New variable. - (USER_H): assert.h removed from value. - (install-common-headers): Install assert.h separately, in includedir, - but not if file exists and lacks the magic comment. + * fold-const.c (fold): Don't fold X-X to 0 if X is floating point + and !flag_fast_math. - * reload1.c (reload): Move test for failure to find any group - to after the loop over i. Also check that all the regnos fit - below FIRST_PSEUDO_REGISTER. +Thu Jul 21 02:07:45 1994 Charles Levert (charles@comm.polymtl.ca) - * expr.c (expand_expr): - For ABS_EXPR, give expand_unop the operand's mode. + * Makefile.in (stmp-multilib): Rework to handle make -n. + (stmp-multilib-sub): New target. -Fri Oct 2 14:58:06 PDT 1992 Ron Guilmette (rfg at netcom.com) +Tue Jul 19 23:14:42 1994 Larry Jones (larry.jones@sdrc.com) - * i386v4.h (DBX_REGISTER_NUMBER): Don't abort here on pseudo-regs. - * dwarfout.c (output_mem_loc_descriptor, output_loc_descriptor): - Catch cases of bogus DECL_RTL values involving pseudo-regs (for all - target systems) and print an annoying message if we ever see such a - case. + * configure (i[34]86-*-isc*): Treat isc4 like isc3. + Remove references to nonexistant files and add extra_parts + when needed. + (i[34]86-*-solaris2*): Remove reference to nonexistant + t-sco and use extra_parts instead. + (i[34]86-*-sysv*, i860-*-sysv3*, m68k-*-sysv3*, m68k-ncr-sysv*): + Replace t-svr3 with extra_parts. -Thu Oct 1 17:23:08 1992 Michael Meissner (meissner@osf.org) +Tue Jul 19 20:31:34 1994 Doug Evans (dje@cygnus.com) - * mips-tfile.c (various): Rename some of the index variables and - fields to indx, so that it doesn't conflict with the BSD - index function, which may be #define'd to strchr. However, the - MIPS symbol table has a field called index, so #undef index and - rindex, and write our own functions local_index and local_rindex. + * configure (find lang subdirs loop): Try to work around an + apparent bug in bash 1.12 on linux. - * mips-bsd.h (CPP_PREDEFINES): Add single underscore in front of - each of the defines, for RISC-OS 5.0 compatibility. + * Makefile.in (clean): Remove multilib build dirs. - * mips-sysv.h (CPP_PREDEFINES): Add single underscore in front of - each of the defines, for RISC-OS 5.0 compatibility. + * h8300.c (print_operand, default case): Handle SFmode regs. - * mips-svr4.h (CPP_PREDEFINES): Add single underscore in front of - each of the defines, for RISC-OS 5.0 compatibility. +Mon Jul 18 22:02:53 1994 Jim Wilson (wilson@cygnus.com) - * mips.h (CPP_PREDEFINES): Add single underscore in front of each - of the defines, for RISC-OS 5.0 compatibility. + * sparc.c (call_operand): Use symbolic_operand not CONSTANT_P. + (call_operand_address): Likewise. + * sparc.md (call*): Use symbolic_operand not immediate_operand. + Use 's' constraint not 'i' constraint. - * mips.c (override_options): Only call setvbuf to make stderr line - buffered for -mstats on Ultrix, and OSF/1. + * toplev.c (rest_of_compilation): Clear DECL_ABSTRACT_ORIGIN if + clear DECL_INLINE. -Thu Oct 1 15:18:55 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * global.c (find_reg): Store divide results in temporary variables. - * reload1.c (emit_reload_insns): Add a case to handle - SECONDARY_MEMORY_NEEDED in the SECONDARY_OUTPUT_RELOAD_CLASS code. - * sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Also need a temp reg - when loading HImode and QImode values from memory to FP_REGS. - (SECONDARY_OUTPUT_RELOAD_CLASS): New macro. Define this to handle - HImode and QImode stores from FP_REGS to memory similar to above. + * gcc.c (process_command): When have -BstageN option, pass include + not stageN/../include to preprocessor. -Thu Oct 1 13:36:52 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Jul 18 21:58:27 1994 Torbjorn Granlund (tege@tiny.cygnus.com) - * cccp.c (rescan): If traditional, recognize # only at bol. + * loop.c (move_movables): Aviod lossage when CALL_INSN_FUNCTION_USAGE + is NULL. - * expr.c (expand_expr): Just return the lowpart or highpart. +Mon Jul 18 20:53:54 1994 Ian Lance Taylor (ian@cygnus.com) - * configure (i386-*-linux, i486-*-linux): New alternatives. - * i386linux.h, i486linux.h, xm-linux.h: New files. + * fixincludes: Rework required loop to avoid crash on decstation. - * optabs.c (expand_unop): Handle complex negate and abs val. - (init_optabs): Set up libcalls for complex abs. - (init_complex_libcalls): New function. +Thu Jul 14 09:42:23 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Thu Oct 1 22:58:45 1992 Eric Youngdale (youngdale@v6550d.nrl.navy.mil) + * Version 2.6.0 released. - * make-cc1.com: Extract line containing "#define YYEMPTY" from - cp-parse.c, and append to cp-parse.h (a la Makefile.in). + * explow.c (force_reg): Don't make a REG_EQUAL note for an insn + that doesn't set TEMP. - * cccp.c (main) [VMS]: Use .obj, not .o, in dependencies output. +Wed Jul 13 17:00:35 1994 Torbjorn Granlund (tege@rtl.cygnus.com) -Thu Oct 1 17:15:49 1992 Chip Salzenberg (chip@tct.com) + * expmed.c (expand_divmod, case CEIL_DIV_EXPR): + Handle emit_store_flag returning 0. - * c-common.c (declare_function_name): __FUNC__ variables - are compiler-created, so set DECL_SOURCE_LINE to zero. - * c-decl.c (pushdecl): Internally generated vars can be - detected with DECL_SOURCE_LINE of zero, not DECL_IGNORED_P. +Wed Jul 13 16:35:57 1994 Jim Wilson (wilson@cygnus.com) -Thu Oct 1 13:07:21 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) + * expr.c (store_field): Set MEM_IN_STRUCT_P on object and + blk_object. - * pa.c (emit_move_sequence): When making a reference to the data - space before reload, emit an insn sequence which is much more - likely to create "addil" instructions rather than "ldil; add" - sequences. Doing so greatly reduces the chance of running into a - HPUX linker bug when compiling kernels. +Wed Jul 13 08:40:11 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * pa.h (TARGET_KERNEL): New switch "-mkernel" which forces gcc to - avoid "ldil; add" sequences when %r29 and instead generate "addil" - sequences. This avoids a HPUX linker bug when compiling kernels. - * pa.md (add high part and dp register): Split into two patterns, - one for normal code, one for kernels. Kernel version only allows - "r1" as the destination register. + * Makefile.in (distdir-start): Make tmp/ginclude and copy its files. + (distdir-finish): Don't use -f Makefile.in. + (gcc.xtar.gz): Add --best. - * pa.h (LEGITIMIZE_ADDRESS, SYMBOL_REF case): Emit a sequence - which will cause "addil" instructions to be emitted instead of - "ldil; add" sequences. + * fold-const.c (decode_field_reference): Merge operand of + a BIT_AND_EXPR with the mask made from the description of the field. -Thu Oct 1 01:09:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * fold-const.c (fold, case MULT_EXPR): Remove last change. - * c-parse.in, cond.awk: New files. - * Makefile.in (c-parse.y, objc-parse.y): Construct from c-parse.in. - (gcc.xtar): Depend on c-parse.y, objc-parse.y. - (realclean): Delete c-parse.y, objc-parse.y. +Wed Jul 13 07:12:32 1994 Torbjorn Granlund (tege@adder.cygnus.com) - * explow.c (allocate_dynamic_stack_space): If STACK_DYNAMIC_OFFSET - or STACK_POINTER_OFFSET, always round address up to BIGGEST_ALIGNMENT. + * xm-pa.h, xm-pahpux.h, xm-pahiux.h (USE_C_ALLOCA): Define. - * gstddef.h: If _ANSI_H_, undef _PTRDIFF_T_, _SIZE_T_, _WCHAR_T. +Wed Jul 13 03:30:36 1994 Jason Merrill (jason@deneb.cygnus.com) - * gvarargs.h: In the first part (instead of va-*.h), define - __gnuc_va_list, as in gstdarg.h. Always use __gunc_va_list - as basis for defining va_list. - Move interaction with BSD-NET2 down to where va_list itself is defined. + * tree.h (TYPE_NEEDS_CONSTRUCTING): New macro. + (tree_type): Add needs_constructing_flag. + * function.c (assign_parms): If TYPE_NEEDS_CONSTRUCTING, pass by + invisible reference. + * calls.c (expand_call): Ditto. - * cccp.c (do_include): Delete unreachable goto after '"' case. +Wed Jul 13 06:49:05 1994 Simon Cooper (scooper@hardees.rutgers.edu) -Thu Oct 1 16:57:22 1992 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + * objc/Object.m: Include stdarg.h before stdio.h. - * dpx2g.h (NO_DOLLAR_IN_LABEL): Undef because gas understands dollars - in labels and gdb expects them if configured for gas. - (STARTFILE_SPEC): Include huge.o to be compatible with native cc. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): - (CTOR_LISTS_DEFINED_EXTERNALLY, DO_GLOBAL_DTORS_BODY): - (STARTFILE_SPEC): Conditionally redefine for a collectless version - of gcc if USE_COLLECT2 is not defined. +Tue Jul 12 21:31:59 1994 Jim Wilson (wilson@cygnus.com) - * dpx2.ifile: New ld command file to support not using collect2. + * c-decl.c (pushdecl): Don't call lookup_name_current_level_global + when traditional. When doing checks against + IDENTIFIER_LIMBO_VALUE, also do check against + INDENTIFIER_GLOBAL_VALUE when traditional. -Wed Sep 30 17:08:32 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * final.c (getpwd): Declare. - * libgcc2.c (__eprintf): Do nothing if inhibit_eprintf is defined. +Tue Jul 12 16:24:10 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * pbd.h, spc-sol2.h, tower.h (NO_UNDERSCORES): Deleted. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Only allow immediate addressing + using 5 bits to avoid losing with FP loads and stores on page zero. - * Makefile.in (install-fixincludes): rm syslimits.h before installing. - Install it with cp. Add an else-part to the if that installs it. +Tue Jul 12 16:20:09 1994 David Edelsohn (edelsohn@npac.syr.edu) - * c-decl.c (start_enum): Push obstacks, switch to permanent if global. - (finish_enum): Pop obstacks. - (store_parm_decls): When clearing ->names, clear out the values - from the identifiers, restore shadowed values, and clear ->shadowed. + * rs6000.md (ashlsi3, lshrsi3, ashrsi3): Only output low-order five + bits for !TARGET_POWER case. - * c-decl.c (grokdeclarator): Don't warn of const or volatile function - in a system header file. +Tue Jul 12 13:06:14 1994 Jim Wilson (wilson@cygnus.com) - * sdbout.c: Don't use system syms.h on hpux. + * combine.c (record_dead_and_set_regs_1): Can only handle SUBREG + if the register is smaller or equal to BITS_PER_WORD. - * cccp.c (do_xifdef): Skip all kinds of whitespace, in bof test. + * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Define. -Wed Sep 30 15:09:10 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * final.c (end_final): Store full path name in .d file not just + the filename. - * sparc.md (orcc peephole): Don't accept FP reg for operand 0. + * README.IRIX5: New file. -Wed Sep 30 00:47:48 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Tue Jul 12 10:55:14 1994 Michael Meissner (meissner@osf.org) - * gstdarg.h, gvarargs.h: Use <...> to include va-*.h. + * i386/osfrose.h (CC1_SPEC): If both -pic-extern/-pic-lib and + -pic-none, use -pic-extern win, instead of -pic-none. - * c-decl.c (start_struct): Push the obstacks. - Switch to permanent if at top level. - (finish_struct): Pop them. + * i386/osfelf.h (CC1_SPEC): Ditto. - * c-decl.c (store_parm_decls): If we have (erroneously) a prototype - and old-style parm decls, throw away the old-style parm decls. +Tue Jul 12 09:08:06 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * configure: Default $build after $host. Canonicalize all three - config names before the main dispatch and save in $canon_host, etc. - Write these into config.status and on terminal at the end. + * reload.c (find_reloads): Don't try to call force_const_mem on + a HIGH. -Tue Sep 29 18:41:54 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * fold-const.c (fold, case MULT_EXPR): If arg is an unsigned + CEIL_DIV_EXPR, convert to TRUNC_DIV_EXPR of a PLUS_EXPR in some cases. - * unroll.c (find_splittable_givs): recog_memoized failure return - is -1 not 0. + * alpha.md (ashldi3): Update pattern for (sign_extend (ashift ..)) + to match the current canonicalization. -Tue Sep 29 22:19:48 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) + * explow.c (round_push, allocate_dynamic_stack_space): Avoid + using CEIL_DIV_EXPR; add adjustment and use TRUNC_DIV_EXPR instead. - * config.sub (os handling): Recognize `linux' as a valid os. +Tue Jul 12 08:12:04 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) -Tue Sep 29 16:05:47 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * dbxout.c (dbxout_source_file): Increment source_label_number outside + of macro expansion. - * limitx.h: Use <...> in #include. + * arm.c (reversible_cc_register): New function. + (final_prescan_insn): Don't try to conditionalize jumps with JUMP_CLOB + attribute. + * arm.h (PREDICATE_CODES): Add reversible_cc_register. + * arm.md (matcher for SFmode inequality comparison): Use cmfe, not cfm. + (matchers for {store-flag, not-store-flag, neg-store-flag}): Output + if-false instruction first before if-true instruction. + (matcher for (AND store-flag x)): Only match if reversible_cc_register. + (matcher for (IF-THEN-ELSE reg (NOT reg))): Likewise. - * Makefile.in (ENQUIRE_CFLAGS): Remove -DNO_SC. + * arm.h (FRAME_POINTER_REQUIRED): Always true if the function has + nonlocal labels. + * arm.md ({save,restore}_stack_nonlocal): Delete. -Tue Sep 29 10:14:27 1992 Richard Kenner (kenner@.vlsi1.ultra.nyu.edu) +Mon Jul 11 19:29:15 1994 Oliver Kellogg (okellogg@salyko.cube.net) - * optabs.c (expand_binop): Convert X - C to X + (-C). + * machmode.def (TQFmode): New mode. + * expr.c (convert_move): Add some conversions for TQFmode. + * varasm.c (assemble_real): Handle TQFmode output. + * config.sub (basic_machine): Add 1750a. + * configure (1750a-*-*): New configuration. + * 1750a.c, 1750a.h, 1750a.md, m1750a.inc: New files. -Mon Sep 28 22:44:17 1992 Jim Wilson (wilson@cygnus.com) +Mon Jul 11 18:38:42 1994 Doug Evans (dje@cygnus.com) - * reload.c (find_reloads_address): If tem != ad, then create a new - mem to hold it and store it back into memrefloc. + Add support for the h8/300h cpu. + * config/h8300/lib1funcs.asm: New file. + * h8300/t-h8300 (CROSS_LIBGCC1): Use libgcc1-asm.a. + (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA, MULTILIB_OPTIONS, + MULTILIB_DIRNAMES, LIBGCC, INSTALL_LIBGCC): Define. + (fp-bit.c): Build it. + * h8300/h8300.h (CPP_PREDEFINES, CPP_SPEC, LIB_SPEC, TARGET_SWITCHES, + BITS_PER_WORD, MAX_BITS_PER_WORD, UNITS_PER_WORD, MAX_UNITS_PER_WORD, + POINTER_SIZE, PARM_BOUNDARY, BIGGEST_ALIGNMENT, + BIGGEST_FIELD_ALIGNMENT, STACK_BOUNDARY, HARD_REGNO_NREGS, + HARD_REGNO_MODE_OK, REG_CLASS_NAMES, REG_CLASS_CONTENTS, + REGNO_REG_CLASS, PUSH_ROUNDING, FUNCTION_ARG_ADVANCE, + TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, + CONSTANT_ADDRESS, MOVE_MAX, Pmode, SIZE_TYPE, PTRDIFF_TYPE): + Add h8/300h support. + (LINK_SPEC, TARGET_RTL_DUMP, TARGET_H8300, TARGET_H8300H, + REAL_ARITHMETIC, SETUP_INCOMING_VARARGS, HAVE_POST_INCREMENT, + HAVE_PRE_DECREMENT, MAX_MOVE_MAX, NO_BUILTIN_SIZE_TYPE, + NO_BUILTIN_PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, + MAX_WCHAR_TYPE_SIZE, ASM_WORD_OP, INIT_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, EXTRA_SECTIONS, + EXTRA_SECTION_FUNCTIONS, ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR, + DO_GLOBAL_CTORS_BODY, DO_GLOBAL_DTORS_BODY, INIT_TARGET_OPTABS): + Define. + (CAN_DEBUG_WITHOUT_FP, PCC_STATIC_STRUCT_RETURN, STRUCT_VALUE_REGNUM, + STRUCT_VALUE_INCOMING, STRUCTURE_SIZE_BOUNDARY): Undefine. + (enum reg_class): Add h8/300h support. + (emit_a_shift): Declare. + (TARGET_DEFAULT): Set default to -mquickcall. + (DOUBLE_TYPE_SIZE): Fix at 32. DFmode support doesn't exist. + (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Swap registers 2,3 with 4,5. + Registers 0,1 contain function result, allocate after 2,3. + (STATIC_CHAIN_REGNUM): Use reg 4. + (CONST_OK_FOR_LETTER_P): 'O' is ok_for_bclr, 'P' is small_power_of_two. + (FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): First + attempt at an implementation. + (CONST_COSTS): Move code into function const_costs. + (BRANCH_COST): Set to 0. + (NOTICE_UPDATE_CC): Move code into function notice_update_cc. + (ASM_FILE_START): Move code into function asm_file_start. + (ASM_FILE_END): Move code into function asm_file_end. + (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Use REAL_VALUE_TO_DECIMAL. + * h8300/h8300.c (cpu_type, names_extended, names_upper_extended, + h8_reg_names, h8_push_ops, h8_pop_ops, h8_mov_ops, h8_push_op, + h8_pop_op, h8_mov_op, current_function_anonymous_args, extra_pop, + hand_list): New variables. + (h8300_init_once, asm_file_start, asm_file_end, ok_for_bclr, o_operand, + p_operand, call_insn_operand, jump_address_operand, bit_operand, + eq_operator, const_costs, notice_update_cc, bit_operator, + nshift_operator, expand_a_shift, get_shift_alg, emit_a_shift, + fix_bit_operand): New functions. + (shift_alg, shift_type, shift_mode): New enums. + (shift_insn): New struct. + (shift_n_bits, can_shift): Deleted. + (shift_one, rotate_one): New variables. + (WORD_REG_USED): New macro (was function word_reg_used). + (dosize, function_prologue, function_epilogue, print_operand_address): + Add h8/300h support. + (small_power_of_two): Renamed from potl8. + (potg8): Deleted. + (general_operand_src): Fix POST_INC case. + (general_operand_dst): Fix PRE_DEC case. + (function_arg): 3 regs of args are passed if -mquickcall. + 4 regs of args are passed to handwritten assembler routines. + (print_operand): New cases 'A', 'P', 'S', 'U', 'W', 'b', 'c', 'd', 'g'. + Delete case 'O'. Sort cases. Add h8/300h support. + (do_movsi): Renamed from domovsi. + Handle reload_in_progress and reload_completed. + (initial_offset): Renamed from io. Add h8/300h support. + * h8300/h8300.md (cpu): New attribute. + (attribute length): Add h8/300h support. + (attribute cc): New value `cbit'. + (all anonymous insns): Give them names. + (move insns): Add h8/300h support. + (tstqi, tsthi): Use btst insn if able. + (arithmetic insns): Add h8/300h support. + (boolean insns): Likewise. + (negate insns): Likewise. + (branch insns): Likewise. + (call_value): Use call_insn_operand for operand 1. + (shift insns): Completely rewritten. Add h8/300h support. + (zero/sign extension insns): Add h8/300h support. + (extv): Deleted. + (insv, extzv): Only use for h8/300. + (bitfield insns): Completely rewritten. + (fancyb*): New insns for speeding up bit accesses. -Mon Sep 28 10:44:55 1992 Chip Salzenberg (chip@tct.com) + * optabs.c (init_optabs): Allow target specific libcalls + with INIT_TARGET_OPTABS. - * regclass.c: Fix comment syntax after #endif. +Mon Jul 11 18:32:42 1994 Steve Chamberlain (sac@cygnus.com) -Mon Sep 28 17:15:22 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * config/fp-bit.c: New file. Provides simple fp emulation library. - * gstdarg.h (va_arg, va_start): Explicitly cast to __gnuc_va_alist. +Mon Jul 11 18:27:42 1994 Ian Lance Taylor (ian@cygnus.com) -Mon Sep 28 17:12:04 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * Makefile.in (libgcc1-asm.a): New target for building libgcc1.a + in cross compilers. - * unroll.c (copy_loop_body, JUMP_INSN case): When invert jump - insn, must first construct new insn before trying to invert it, - so that validate_change will work properly. +Mon Jul 11 17:00:45 1994 David Edelsohn (edelsohn@npac.syr.edu) - * unroll.c (find_splittable_givs): Pass mem_mode not mode to - memory_address_p. + * rs6000.md (movsi matcher): Add nop for moving special register + to itself for !TARGET_POWER. + (movhi and movqi matcher): Likewise and add mtjmpr attribute. + Separate MQ from CTR and LR target registers for TARGET_POWER. - * unroll.c (copy_loop_body, JUMP_INSN case): When setting - JUMP_LABEL field, verify that what we think is a label actually - is. If it isn't then map the old JUMP_LABEL to find the new one. + * powerpc.h (CPP_SPEC): Fix typo. - * sparc.md (orcc peephole): Don't allow FP regs to match pattern. +Mon Jul 11 16:50:29 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * i960.md (indirect_jump): Use bx instead of b*, and accept any - address_operand instead of just a register operand. + * c-parse.in (stmt): Don't give more than one error message if a + nested `if' has an empty body. - * i960.c (i960_round_tree): Correct conversion of bits to bytes to - round up to nearest byte. - (i960_round_align): Likewise. + * a29k.md (movqi): Call loadhi, not loadqi. -Mon Sep 28 15:54:18 1992 Michael Meissner (meissner@osf.org) +Mon Jul 11 16:46:09 1994 Jeffrey A. Law (law@mole.gnu.ai.mit.edu) - * dec-osf1.h (LINK_SPEC): Fix typo. + * pa.h (DEBUGGER_ARG_OFFSET): Define. If no frame pointer + is available, then adjust the offset by the size of the + current frame. -Mon Sep 28 08:15:02 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) +Mon Jul 11 16:34:14 1994 Stan Shebs (shebs@andros.cygnus.com) - * rs6000.md (subsi3): Remove last change. - (allocate_stack): Go back to calling subsi3. + * configure (*-*-lynxos*): Always run fixincludes, and if not using + gas, set tm_file to lynx-ng.h. + * config/x-lynx: Always run fixproto. + * config/lynx.h, i386/lynx.h, m68k/lynx.h, sparc/lynx.h: Rewrite + to work with gas producing coff files. + * config/lynx-ng.h, i386/lynx-ng.h, m68k/lynx-ng.h, + sparc/lynx-ng.h: New files. -Mon Sep 28 02:41:32 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Jul 11 15:16:28 1994 Pat Rankin (rankin@eql.caltech.edu) - * optabs.c (expand_binop): Use get_insns, not gen_sequence. + * make-cc1.com: Compile most of cc1plus in the `cp' subdirectory. + * vmsconfig.com: When setting up tm.h, convert "vax/vax.h" into + "config-vax.h" rather than "[.config.vax]vax.h" for #include so + it will work from [.cp] subdirectory; copy vax.h to config-vax.h + as part of configuration setup. Also, manually include cc1plus + in the list of buildable compilers (a temporary measure; it + should process cp/Makefile.in like it does for primary makefile). - * c-typeck.c (build_unary_op): Address of nested fcn isn't constant. + * make-cc1.com: Use `=' rather than `:=' when setting up CC, + so that `gcc' can be defined as a foreign command if necessary; + eliminate `set symbol/scope=noGlobal' for same reason; use `=' + with all other symbols, for consistency; add explicit .obj + extension to some lists of object files passed to the linker; + general cleanup of the command text echoed during execution. + * make-cccp.com: Revise to be more consistent with make-cc1.com + for symbol setup & usage and for echoing command execution. - * libgcc2.c (__builtin_new): Avoid passing 0 to malloc. +Mon Jul 11 15:03:23 1994 Charles Hannum (mycroft@duality.gnu.ai.mit.edu) - * m68k.md (indirect_jump): Use address_operand as predicate. + * configure: Recognize m68k-*-netbsd* and i[345]86-*-netbsd*. + * cccp.c, collect2.c, gcc.c, protoize.c, cp/g++.c (sys_errlist) + [bsd4_4]: Do this for __NetBSD__ also. - * c-decl.c (finish_decl): Do the pop_obstacks sooner, when it's - time to start allocating in the ambient context's obstack. - Don't call permanent_allocation unless got back to permanent obstack. +Mon Jul 11 14:16:28 1994 Kresten Krab Thorup (krab@spiff.gnu.ai.mit.edu) -Sun Sep 27 13:06:19 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * mips/mips.h (STRUCT_VALUE): Change definition from `(rtx)0' to + just `0' so it is a valid expression for the pre-processor. - * function.c (assign_parms): If PROMOTE_FUNCTION_ARGS is defined, - see if the incoming register should be used in a wider mode. - (expand_function_start): Likewise for return value if - PROMOTE_FUNCTION_RETURN is defined. - * calls.c (struct arg_data): New field unsignedp. - (expand_call): Handle PROMOTE_FUNCTION_ARGS and - PROMOTE_FUNCTION_RETURN. +Mon Jul 11 10:54:35 1994 Stan Cox (coxs@dg-rtp.dg.com) - * alpha.h (FUNCTION_VALUE): Promote mode for return value. + * configure (m88k-dg-dguxbcs): New configuration. m88k-dg-dgux + Now builds an elf compiler. Both targets will create bcs or elf. - * alpha.h (BYTE_LOADS_SIGN_EXTEND): Define. + * m88k/dgux.h (ASM_SPEC,STARTFILE_SPEC,LIB_SPEC): svr4 default. - * rs6000.md (subsi3): Don't bother calling negate_rtx for constant; - we shouldn't be called with a constant. - (maskir patterns): Don't mention an operand before it is used; - use operand number 1 for operand with '0' constraint. - (allocate_stack): Use reg_or_short_operand for predicate of - allocation amount; use negate_rtx and always make a PLUS. + * m88k/dguxbcs.h (ASM_SPEC,STARTFILE_SPEC,LIB_SPEC): + New target for svr3. - * romp.h (EXTRA_CONSTRAINT, case 'Q'): Check for MEM instead of - calling memory_operand. - (SHIFT_COUNT_TRUNCATED): No longer define this. + * m88k/x-dgux, m88k/t-dgux, m88k/x-dguxbcs: + Changed for svr4/svr4/svr3 respectively. -Sat Sep 26 18:14:15 1992 Michael Meissner (meissner@osf.org) + * m88k/m88k.h (TARGET_SVR3): New target switch. - * config.sub (os handling): Recognize riscos as an operating - system. +Wed Jun 29 19:23:27 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) + + * alpha.h (LIB_SPEC): If -pg, add -lprof2. - * configure (dec-osf1): Use x-decstatn for xmake_file. - (mips computers): Handle RISC-OS 5 vs. RISC-OS 4 configuration - changes -- RISC-OS 5. passes -non_shared by default. +Mon Jul 11 13:17:38 1994 Ian Lance Taylor (ian@cygnus.com) - * mips-5.h (new file): RISC-OS rev 5 config file. - * mips-5bsd.h (new file): RISC-OS rev 5, bsd 4.3 config file. - * mips-5g4.h (new file): RISC-OS rev 5, svr4 + stabs config file. - * mips-5gbsd.h (new file): RISC-OS rev 5, bsd 4.3 + stabs config file. - * mips-5gdb.h (new file): RISC-OS rev 5 + stabs config file. - * mips-5gsysv.h (new file): RISC-OS rev 5 svr3 + stabs config file. - * mips-5svr4.h (new file): RISC-OS rev 5 svr4 + stabs config file. - * mips-5sysv.h (new file): RISC-OS rev 5 svr3 config file. + * combine.c (simplify_set): Only turn IF_THEN_ELSE into AND if + MODE_INT. - * dec-osf1.h (LINK_SPEC): Pass -non_shared to linker unless - -shared was passed. - (SIZE_TYPE): Define as long unsigned int. - (PTRDIFF_TYPE): Define as int. - (WCHAR_TYPE_SIZE): Define as SHORT_TYPE_SIZE. +Sun Jul 10 06:03:12 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * decrose.h (MACHINE_TYPE): Shorten verbage. + * reload1.c (eliminate_regs_in_insn): Handle special case of + assignment from hard frame pointer to frame pointer (for + nonlocal goto). + * function.c (instantiate_virtual_regs_1): Remove last change. + * stmt.c (expand_end_bindings): When adjusting FP, set it + from hard_frame_pointer_rtx. - * i386rose.h (TARGET_VERSION): Print appropriate information. + * expr.c (expand_builtin, case BUILT_IN_FSQRT): Don't use + asterisk in name of `errno'. - * xm-mips.h (HAVE_VFPRINTF, HAVE_PUTENV): Define on DEC OSF/1. +Fri Jul 8 22:07:32 1994 Jim Wilson (wilson@cygnus.com) - * mips.c (siginfo): Print just current filename, and function - being compiled. + * stdarg.h: Delete include of when not gcc. + * varargs.h: Delete include of when not gcc. - * mips-tfile.c (Size_t): Use long unsigned on OSF/1. - (toplevel): Don't define rindex and index on OSF/1. +Fri Jul 8 18:45:56 1994 Philippe De Muyter (phdm@info.ucl.ac.be) -Sat Sep 26 17:46:57 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Copy a0 to d0, not + the other way. - * arm.md (comment before extendhisi2): Remove the lie. - (zero_extendhisi2): Rewrite to work if op0 == op1. Use - gen_lowpart in preparation code. - (extendqisi2, extendhisi2): Likewise. - (extendqihi2): Expand. +Fri Jul 8 17:41:39 1994 Jim Wilson (wilson@cygnus.com) - * arm.md (restorehi): Rewrite for correctness, efficiency, and - clarity. Avoid generating insns involving truncate. Generate - needed pseudos in preparation statements. - (storehi): Likewise. - (storeinthi): Likewise. - (movhi): Call gen_storehi, gen_restorehi, gen_storeinthi according - their new definitions. Use force_reg to put address in register. + * expr.c (get_inner_unaligned_p): New function. + (expand_assignment, expand_expr): Use it. - * m68k.md (indirect_jump): Use %a0 for output, and p for constraint. +Fri Jul 8 17:16:25 1994 Doug Evans (dje@cygnus.com) -Sat Sep 26 02:42:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expmed.c (extract_split_bit_field): Set UNIT to BITS_PER_WORD for + register values. + (store_split_bit_field): Likewise. Call operand_subword_force. - * reload1.c (eliminate_regs_in_insn): Rerecognize if move insn - becomes a non-move. +Fri Jul 8 13:48:23 1994 Mike Stump (mrs@cygnus.com) - * Makefile.in (install-fixincludes): - Use - when making syslimits.h; fix if-statement syntax. + * expr.c (target_temp_slot_level): New variable to keep track of + the current stack level for temporaries created by TARGET_EXPRs. + * expr.h (target_temp_slot_level): Declare it. + * expr.c (expand_expr): Add code to maintain the new temporary + stack for TARGET_EXPRs to the CLEANUP_POINT_EXPR code and change + the allocation of temporaries for TARGET_EXPRs to be from the new + stack, so that they may live longer, and only be reused after they + are no longer in use. + * function.c (assign_stack_temp): KEEP can now also be 2, to + indicate allocation from the longer term frontend controlled + temporary stack. + * function.c (init_function_start): Initialize + target_temp_slot_level to zero. - * jump.c (jump_optimize): When handling dispatch table that always - goes to the same place, verify previous insn exists. +Fri Jul 8 16:52:38 1994 Jim Wilson (wilson@cygnus.com) - * c-typeck.c (common_type): Renable code to merge qualifiers - given two pointers to compatible types. + * combine.c (distribute_notes, REG_DEAD case): When check to see + if insn uses register, also call find_regno_fusage. -Sat Sep 26 12:02:38 PDT 1992 Ron Guilmette (rfg at netocm.com) + * sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Call assign_stack_local + if the frame has zero size. - * dwarfout.c (location_attribute): If DECL_RTL looks like (MEM pseudo), - treat that variable as optimized away. +Fri Jul 8 11:46:50 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Fri Sep 25 19:48:46 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * varasm.c (record_constant_rtx, force_const_mem): Ensure everything + is in saveable_obstack, not current_obstack. - * c-decl.c (explicit_flag_signed_bitfields): New variable. - (c_decode_option): Set that for -f[un]signed-bitfields. - (grokdeclarator): If that's set, and -fsigned-bitfields, - disregard -traditional when handling bitfield signedness. + * combine.c (force_to_mode): OP_MODE must be MODE if MODE and + mode of X are of different classes. + (nonzero_bits, num_sign_bit_copies): Say nothing known for + floating-point modes. - * configure: Handle --build option. Make link hconfig.h. - * Makefile.in: In the targets such as $(HOST_PREFIX_1)rtl.o, - use sed to make them include hconfig.h instead of config.h. - (distclean): Add command to delete hconfig.h. + * function.c (instantiate_virtual_regs_1, case SET): + If DEST is virtual_stack_vars_rtx, replace with hardware + frame pointer. -Fri Sep 25 19:56:35 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * expr.c (expand_expr, case CONVERT_EXPR): If changing signedness + and we have a promoted SUBREG, clear the promotion flag. - * cp-search.c (compute_visibility): Don't mess with the context. + * c-decl.c (finish_decl): Put RTL and other stuff in + permanent_obstack if DECL is. - * cp-decl.c (grokdeclarator): Return value from do_friend - properly; this shouldn't have gone in yet. - -Fri Sep 25 02:23:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-typeck.c (initializer_constant_valid_p): Really use endtype. - - * cccp.c (do_include): "Concatenate" multiple "strings" in #include. - - * vmsconfig.com: Renamed from configure.com. - - * next.h (CPP_PREDEFINES): Define __ARCHITECTURE__. - - * dbxout.c (dbxout_symbol): For anonymous enum, output type anyway. - -Fri Sep 25 01:33:36 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * function.h (struct function): Add epilogue_delay_list field. - * function.c (push_function_context): Save epilogue_delay_list. - (pop_function_context): Restore epilogue_delay_list. - - * sparc.md (nonlocal_goto): Force operands[0] to be a register. - - * va-sparc.h (va_arg): Add 3 more (void *) casts to avoid warnings - with -Wcast-align. - - * sparc.c (SF_MODES): Accept all single word or smaller integer - modes not just SImode. These are needed for fix/float conversions. - - * sched.c (sched_analyze_2, PRE_DEC case): Call sched_analyze_2 in - addition to sched_analyze_1. - - * va-i960.h (va_start): Must access anonymous arg as offset from - start of argument block. - - * i960.md (movdi, movti, movdf, movtf): Make store zero to memory - a separate case, only accept offsettable memory addresses, and call - adj_offsettable_operand to calculate subword addresses. - - * i960.c (i960_output_ldconst): Pass missing xoperands argument to - output_asm_insn call. - - * a29k.md (movti): Split CONST_INTs into 4 moves, and force all - other constants to memory. - -Thu Sep 24 21:51:46 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) - - Complete Cygnus<-->FSF merge. - - Thu Sep 24 17:05:27 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-decl.c (pushdecl): Use a friendly abort rather than an assert. - (grokparms): Pass whether init is set or not for the initialized - parameter to grokdeclarator. - - Wed Sep 23 22:09:44 1992 Mike Stump (mrs@cygnus.com) - - * cp-class.c (finish_struct), cp-decl2.c (warn_nonvdtor), - cp-tree.c (layout_basetypes), cp-tree.h (warn_nonvdtor): Re-enable - warnings for non-virtual destructors in some situations. - - Wed Sep 23 15:42:33 1992 Mike Stump (mrs@cygnus.com) - - Wed Sep 23 16:31:27 1992 Michael Meissner (meissner@osf.org) - - * cp-decl.c (duplicate_decls): Cast bcopy arguments to char * to - avoid warning on OSF/1. - - Wed Sep 23 11:36:44 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-decl.c (start_method): Give the name of the class if a method's - being defined again, rather than say "aggregate scope". - * cp-decl2.c (grokfield, grokbitfield, groktypefield): Ditto. - - Tue Sep 1 22:55:59 1992 Paul Eggert (eggert@twinsun.com) - - * cp-cvt.c (convert_to_integer): Prefer unsigned - arithmetic if the output type is unsigned and is no more precise than - the computation type. This avoids unnecessary sign extension. - - Tue Sep 15 20:26:18 1992 John F Carr (jfc at Athena.MIT.EDU) - - * cp-pt.c (tsubst): Don't call layout_type near start of function - with T. const and volatile attributes don't affect the memory - structure of the type, and T may not yet be a valid argument for - layout_type (for example, if it is an uninstantiated template). - Individual switch cases will call layout_type if necessary. - - Mon Sep 21 15:59:22 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-decl.c (pushdecl): Check if DECL_SOURCE_LINE is non-zero, not - if DECL_IGNORED_P is set, when checking for shadowing. We no longer - need DECL_IGNORED_P on builtin types. - (record_builtin_type): Don't set DECL_IGNORED_P for a builtin type. - - * cp-decl.c (start_decl): When working with virtual functions, - always use the node's DECL_CLASS_CONTEXT. - * cp-method.c (hack_identifier): Ditto. - * cp-search.c (compute_visibility): Ditto. - - * cp-decl.c (grokdeclarator): Don't allow a member to be declared - extern. - - * cp-decl.c (grokdeclarator): Return a void_type_node if we're - looking at a friend (even after calling do_friend). - (pushdecl): Disable some code that's untested and - doesn't necessarily help DWARF right now. - (finish_function): Always emit debugging info for the - return type of a function. - (pushdecl): Don't change the DECL_CONTEXT of virtual - methods. - (finish_enum): Always output debugging info for enums. - (grokdeclarator): It's an error if we're doing an init of an extern - at the top level. If we are at the top level, just warn. - - * cp-typeck.c (comp_target_parms): Check if strict is non-zero, not - just > 0. - (build_function_call_real): Don't return an error-mark node when - they call "main" from within the fn, it's only a pedantic warning. - (pointer_int_sum): Reword warning when using a ptr-to-mem in arith. - - * cp-tree.c (layout_basetypes): Make record_align and const_size - unsigned. - - Mon Sep 21 14:53:43 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-tree.h (flag_no_ident): Add extern decl for cp-lex.c. - - * cp-decl.c (duplicate_decls): Save the DECL_UID and DECL_FRIEND_P - info from olddecl. Otherwise, they'd get clobbered when newdecl's - contents get copied into olddecl. - - * cp-lex.c (check_newline): Delete pedantic error about using #ident, - since cccp.c already gives a warning. In the case that - ASM_OUTPUT_IDENT is defined, only actually spit it out if flag_no_ident - is not set. - - Sat Sep 19 14:53:31 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - Sat Sep 19 11:37:11 1992 John F Carr (jfc at Athena.MIT.EDU) - - * cp-decl.c (finish_decl): Don't call - CLASSTYPE_DECLARED_EXCEPTION if TYPE is error_mark_node, to avoid - referencing a nonexistent field. - - Fri Sep 18 14:06:06 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-parse.y (component_decl): Remove sorry about not implementing - methods in anonymous unions---they're illegal, and we generate an - error elsewhere to that effect. - - * cp-decl.c (start_method): Make the error message about a - duplicated member a little more informative. - - Fri Sep 18 12:28:13 1992 Brendan Kehoe (brendan at rtl.cygnus.com) - - * cp-parse.y: Define YYDEBUG if SPEW_DEBUG is defined. - (debug_yytranslate): YYDEBUG will always be defined, no need to test. - - Fri Sep 18 10:46:19 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - * cp-parse.y (unary_expr): When parsing delete, first complain if - it's a non-pointer, then check if it's a pointer with the value zero. - Also be sure not to call build_delete if that's the case. - -Thu Sep 24 18:03:07 1992 Michael Meissner (meissner@osf.org) - - * mips.h (MIPS_VERSION): Set Meissner version # to 27. - (STRUCT_VALUE_REGNUM): Delete macro. - (STRUCT_VALUE): Define as 0, so that structure return addresses - are passed as the first argument. This fixes various codegen - problems with functions returning structures. - - * mips.c (init_cumulative_args): Don't advance arg pointer if - function returns a structure. - -Thu Sep 24 12:38:31 1992 Torbjorn Granlund (tege@wombat.gnu.ai.mit.edu) - - * pa.h (REGISTER_MOVE_COST): Fix typo. Use `||' instead of `|'. - (REG_CLASS_FROM_LETTER): Don't handle 'r' constraints here. - * pa.c (clobbered_register): Delete. - (srcsi_operand): Return 1 also for things matching - depi_cint_operand. - (secondary_reload_class): Replace. - * pa.md (ldo/ldil SImode and HImode recognizers): Use - "const_int_operand" for operand 1 and simplify final condition. - Remove `n' constraint. - (depi SImode and HImode recognizers): Remove `n' constraint. - (plus:SI ... high ... splitter): Don't overwrite input, go via - clobber operand instead. - (many patterns): Replace `in' constraint with just `i'. - (movstrsi): Don't do (clobber (match_scratch)), use explicit - pseudos instead, generated in preparation C code. Don't call - force_not_mem for operand 2. - (movstrsi recognizer): Add `&' to operand 3. - (andsi3): Fix typo. - (iorsi3): Fix typo. - (load-shift-16): New optimizer. - (load-shift optimizers): Set "type" attr. - -Thu Sep 24 15:17:38 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * toplev.c (lang_options): Add Objc options. - - * configure.bat: Use xgcc, not gcc. - -Thu Sep 24 06:30:47 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-lex.c (yylex, case '"'): Initialize arg pased to readescape. - - * genattrtab.c (length_used): New variable. - (walk_attr_value): Set it when we have (eq_attr "length" ...). - (write_const_num_delay_slots): Value is 1 unless LENGTH_USED is set. - - * reorg.c (mark_set_resources, case CC0): Set RES->CC if IN_SEST. - - * regclass.c (forbidden_inc_dec_class, in_inc_dec): New variables. - (regclass): Don't alloca the costs twice. - Initialize forbidden_inc_dec_class. - For regs that have inc-dec, ignore forbidden classes. - (record_address_regs): Update in_inc_dec. - -Thu Sep 24 02:36:00 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * syslimits.h: New file, includes system's limits.h. - * limitx.h: Include syslimits.h instead of system's limits.h. - * Makefile.in (USER_H): Add syslimits.h. - (install-fixincludes): If we fix system's limits.h, install that - as syslimits.h - - * c-lex.c (readescape): New arg ignore_ptr. - (yylex): Pass new arg, handle result that comes back. - -Wed Sep 23 19:26:42 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (find_reloads_address): Properly check for constant address. - - * cse.c (simplify_unary_operation, case SIGN_EXTEND): Use - HOST_BITS_PER_WIDE_INT, not HOST_BITS_PER_INT. - - * fold-const.c (fold_convert): Add missing cast to HOST_WIDE_INT. - - * jump.c (jump_optimize): Tighten up test for when we can't - delete a set of CC0. - Don't insert insns between set and use of CC0. - - * final.c (shorten_branches): Correctly access insn needing delay slot. - - * combine.c (significant_bits, num_sign_bit_copies): Handle SUBREGs - made for promoted variables. - - * reorg.c (fill_simple_delay_slots): Don't make copy of insn that - references CC0. - - * romp.md (define_attr "type"): New type "ibranch". - (define_attr "length"): Set length for "ibranch" type. - (define_attr "in_delay_slot"): Add new type "ibranch"; - for "branch", only has delay slot if length is 4. - (define_attr "cc_type"): Add new type "ibranch". - (indirect branches): Now type "ibranch". - - * alpha.c (alpha_gp_dead_after): Return 0 if not optimizing. - -Wed Sep 23 00:11:35 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gvarargs.h: Finish changing _ANSI_H to _ANSI_H_. - -Tue Sep 22 23:39:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * i386mach.h (perform_fixdfsi): Copy arg to memory variable. - -Tue Sep 22 14:54:38 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * loop.c (basic_induction_var): Inside PLUS, when looking for promoted - var, make sure it's a REG. - -Tue Sep 22 12:21:11 1992 Michael Meissner (meissner@osf.org) - - * mips.h (MIPS_VERSION): Bump Meissner version # to 26. - (REG_PARM_STACK_SPACE): Use UNITS_PER_WORD instead of 4, and - substract FIRST_PARM_OFFSET. - (FIRST_PARM_CALLER_OFFSET): Delete unused macro. + * combine.c (gen_unary): Add new arg, OP0_MODE. + All callers changed. - * mips.c (init_cumulative_args): Print types of fntype and the - return type if -mdebuge. +Thu Jul 7 19:58:35 1994 Jason Merrill (jason@deneb.cygnus.com) - * decrose.h (CPP_SPEC): Eliminate defining various builtin - functions with -D=__builtin_, if neither -fbuiltin nor - -fno-builtin were passed. - (CC1_SPEC): Eliminate passing -fno-builtin to the compiler if - neither -fbuiltin nor -fno-builtin were passed. Eliminate - %{save-temps: } since gcc no longer gives an unknown switch - message if it is used. + * varasm.c (assemble_variable): Do set TREE_ASM_WRITTEN on + erroneous incomplete decls. - * i386rose.h (CPP_SPEC): Eliminate defining various builtin - functions with -D=__builtin_, if neither -fbuiltin nor - -fno-builtin were passed. - (CC1_SPEC): Eliminate passing -fno-builtin to the compiler if - neither -fbuiltin nor -fno-builtin were passed. Eliminate - %{save-temps: } since gcc no longer gives an unknown switch - message if it is used. - (MASK_HALF_PIC): Move bit mask to 0x40000000, to allow for i386.h - to define more switches without overlapping our private switch. - (TARGET switches): Add -mdebugb to debug half-pic code. - (OPTIMIZATION_OPTIONS): Only set flag_gnu_linker FALSE always, and - flag_inline_functions if -O3. In particular never set - -fomit-frame-pointer which currently messes up debugging. - (GO_IF_LEGITIMATE_ADDRESS): Define i386-osfrose version that deals - with half-pic. - (OVERRIDE_OPTIONS): Define to initialize half-pic. - (ASM_FILE_END): Define to dump out half-pic variables if needed. +Thu Jul 7 17:59:46 1994 Joseph Arceneaux (jla@gnu.ai.mit.edu) - * t-i386rose (EXTRA_OBJS): Define as halfpic.o. - (CONFIG2_H): Add $(srcdir)/halfpic.h. - (halfpic.o): Add dependencies. + * configure (m68k-motorola-sysv*): Use mot3300g.h for gas. + * m68k/mot3300g.h: New file. -Tue Sep 22 03:12:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Jul 7 17:42:21 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - * reload1.c (choose_reload_regs): When setting reg_has_output_reload, - loop over multiple regs only for hard reg. Set reg_is_output_reload - in separate loop. + * m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Fix typo in last change. -Mon Sep 21 12:22:24 1992 Jeffrey A. Law (law@mole.gnu.ai.mit.edu) +Thu Jul 7 17:36:26 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * reorg.c (mark_set_resources, case REG): A register is set iff - "in_dest" is nonzero. + * expmed.c (expand_mult_highpart): Build constant forms of CNST1 + in MODE or WIDE_MODE, as appropriate. -Mon Sep 21 14:16:10 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * optabs.c (expand_binop, case DIV [complex]): Fix typo in last change. - * combine.c (make_extraction): Make test whether to use AND or - {SIGN,ZERO}_EXTRACT depend on UNSIGNEDP. + * alpha.md (reload_inqi): Make operand[2] be TImode and + pass register number that differs to unaligned_loadqi. + (reload_outqi): Change overlap in temps to unaligned_storeqi. + * alpha.c ({un,}aligned_memory_operand): Check against + hard_frame_pointer_rtx, not frame_pointer_rtx. -Mon Sep 21 08:26:55 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Thu Jul 7 01:39:33 1994 Doug Evans (dje@cygnus.com) - * reload1.c (reload): If we can't get a register that we know won't - interfere with groups, get one that might instead of giving up. + * combine.c (make_compound_operation, AND case): Do extraction in + desired result mode. - * reload1.c (reload): Print the needs to the dump file. + * flow.c (mark_set_1): Record explicit hard registers in their + raw mode. + (mark_used_regs): Likewise. + * combine.c (distribute_notes): Likewise. -Mon Sep 21 02:45:19 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Jul 6 14:45:08 1994 Pat Rankin (rankin@eql.caltech.edu) - * function.c (put_var_into_stack): Check REG != 0 before dereference. + * longlong.h (vax sdiv_qrnnd): Fix typo. -Sun Sep 20 16:58:05 1992 Fred Fish (fnf at fishpond.cygnus.com) +Wed Jul 6 19:59:12 1994 Mike Stump (mrs@cygnus.com) - * x-svr4: New generic SVR4 host makefile fragment. - * x-i386v4: File deleted. - * x-ncr3000: Get alloca using ALLOCA, not libucb.a. - * configure (i386-*-sysv4*): Use x-svr4, not x-i386v4. - * configure (i486-*-sysv4*): Use x-svr4. + * expr.c (expand_expr, defer_cleanups_to, expand_cleanups_to): All + cleanups have to be protected by interim exception handling code. + * stmt.c (expand_decl_cleanup, expand_cleanups): Ditto. + * toplev.c (interim_eh_hook): Hook for interim exception handling. + * toplev.c (interim_eh): Default implementation for exception + handling that does nothing. + * toplev.c (main): Set default for interim_eh_hook. -Sun Sep 20 21:18:15 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Jul 6 17:56:37 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * combine.c (subst): Set and compare extend_op with 0, not NULL. + * alpha.c (output_prolog): Start memory probing with $2. - * cse.c (find_comparison_args): New args PMODE1, PMODE2. - (fold_rtx, record_jump_equiv): Use them to get modes of comparison. - (fold_rtx): Associate MINUS with nested PLUS. +Wed Jul 6 14:21:14 1994 Jim Wilson (wilson@cygnus.com) - * seq386.h (LPREFIX): Overridden as `.L'. - (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * stmt.c (struct nesting): Add new field alt_end_label. + (expand_start_loop): Initialize it to zero. + (expand_end_loop): Reorder loop if find either a jump to end_label + or a jump to alt_end_label. + (expand_exit_loop_if_false): Set alt_end_label. -Sun Sep 20 05:53:20 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Wed Jul 6 05:07:31 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * combine.c (try_combine): Always call set_significant on new - patterns, so don't call just in split case. + * c-common.c (decl_attributes): If TREE_TYPE for the DECL is updated, + then update TYPE as well. - * combine.c (subst): Move sign extension inside arithmetic - when we have a constant computation inside another computation. + * longlong.h (arm umul_ppmm): Fix use of uninitialized register. + Eliminate clobbers of hard registers. - * emit-rtl.c (emit_insn_after_with_line_notes): New function. - * jump.c (jump_optimize): Delete insns that set registers that - are not used elsewhere. - Fix some bugs in "if (...) x = a; else x = b;" code. - Remove uses of reorder_insns. - Add code to make scc insns for "if (...) x = exp;" if EXP is simple - enough. - Optimize "if (...) x = b;" if jumps very expensive; don't use a REG - as the older value of X since it doesn't help and can hurt. - Correctly place generated insns in above case. +Wed Jul 6 03:22:04 1994 Torbjorn Granlund (tege@rtl.cygnus.com) - * reload.c (find_reloads, find_reloads_toplev): Treat - BYTE_LOADS_SIGN_EXTEND just like BYTE_LOADS_ZERO_EXTEND. - * combine.c (subst, simplify_and_const_int, significant_bits): - Likewise. - (num_sign_bit_copies, case MEM): New case for BYTE_LOADS_SIGN_EXTEND. - (num_sign_bit_copies, case SUBREG): Handle just like significant_bits. + * expmed.c (expand_divmod): Clear out TARGET also if OP1 is a + constant, when TARGET == OP0. -Sat Sep 19 15:55:31 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Tue Jul 5 18:58:28 1994 Torbjorn Granlund (tege@rtl.cygnus.com) - * combine.c (combine_instructions): Clear significant_valid - at end of combine pass for a function. - (find_split_point, case MEM): See if first operand of the PLUS - that makes up an address is complex. - (subst): Add missing arg to recursive calls when IF_THEN_ELSE - is an arg of an operator. - (subst, case IF_THEN_ELSE): Generalize code to propagate comparison - result into arms by using known_cond. - If an arm is the first operand of the comparison, make it the - true arm. - Remove unneeded comparison when arms are identical. - Try to convert IF_THEN_ELSE to ABS, (neg (abs X)), [US]MIN, [US]MAX. - Convert (if_then_else (ne A 0) (OP X C) X) to (OP X (mult A C)). - (subst, case SET): If we don't have conditional moves, - convert IF_THEN_ELSE into logical operations. - (subst, case AND): Always make conditional moves, even if we - don't support them on the machine. - (known_cond, extended_count): New functions. - (gen_binary): For commutative operations, put constant last. - - * combine.c (try_combine): The insns made by a DEFINE_SPLIT might - contain a PARALLEL and the call to recog_for_combine might add it. - - * combine.c (simplify_comparison, case ASHIFT): Fix typo. - - * combine.c (try_combine): When removing REG_UNUSED note, - update reg_n_deaths. - Likewise, when making new REG_DEAD notes for distribute_notes. - (remove_death, move_deaths): Update reg_n_deaths. - (distribute_notes): When placing second REG_DEAD or REG_UNUSED note or - ignoring such a note, update reg_n_deaths. - - * rtl.h (SUBREG_PROMOTED_{VAR,UNSIGNED}_P): New macros. - * tree.h (DECL_MODE, DECL_RTL): Update comments. - * expr.h (PROMOTE_MODE): Provide default definition. - * expr.c (convert_move, convert_to_mode): Strip off a SUBREG made - for variables with promoted modes. - (store_expr): Store into variables with promoted modes by - doing the appropriate extension operation. - (expand_expr, case VAR_DECL): Generate SUBREGs for promoted objects. - (expand_expr, case SAVE_EXPR): Likewise for SAVE_EXPRs. - (expand_increment): Handle increment of promoted objects. - * function.c (fixup_var_refs{,_insns}): Add new parms for promoted - mode and signedness; all callers changed. - Insert mode conversions when required. - (fixup_var_refs_1): Add new parms for mode and signedness; - handle SUBREGs for promoted values. - (assign_parms): Promote the mode of parameters when useful for - the target machine. - * function.h (struct var_refs_queue): Remove unused field ORIGINAL. - Add new fields PROMOTED_MODE and UNSIGNEDP. - * integrate.c (expand_inline_function): Convert actual to formal's - mode (in case formal was promoted). - * loop.c (basic_induction_var): Add new parameter P. - Check for bivs that are set over multiple insns and also - allow a SIGN_EXTEND to be used; remove check for MINUS since - we don't make MINUS with a constant 2nd operand any more. - * optabs.c (expand_binop, expand_unop): Don't make SUBREG for promoted - variables as operands. - * stmt.c (tail_recursion_args): Use mode of DECL_RTL, not - DECL_MODE. - (expand_decl): Promote modes of scalar variables when useful on - target. - * unroll.c (find_splittable_regs): If any BIV update isn't - simple, don't split it. - (final_giv_value): Look for biv updates by matching insns; don't - try to reparse the insn. - * rs6000.h (PROMOTE_MODE): New macro. - - * rtlanal.c (reg_set_last): Allow old value to be a SUBREG. - - * rs6000.c (print_operand, case 'h', 'H', 'w'): Minor cleanups. - * rs6000.h (BRANCH_COST): Increase from 2 to 3. - * rs6000.md (smax, smin, umax, umin): Add define_splits. - - * alpha.h (PROMOTE_MODE): New macro. - (REG_ALLOC_ORDER): Put $0 in front of $21-$16. - (CONST_OK_FOR_LETTER): Change meanings of N, O, and P. - (BRANCH_COST): Increase from 3 to 4. - (PREDICATE_CODES): Add new predicates reg_or_cint_operand and - sext_add_operand. - * alpha.md (addsi3): subl can be used to sign-extend addition of - small negative constants. - (negsi2): Add pattern for (sign_extend (neg ..)). - (and pattern): Fix typo in constraint. - (ashldi3): Use new definition of constant letters. - (smax, smin, umax, umin): Add define_splits. - (compares): Can compare constant with zero by adding negative of - constant. - (store insns): Can store 0 into memory in both integer and FP. - * alpha.c (sext_add_operand, reg_or_cint_operand): New function.s - (print_operand, case 'r', case 'R'): Clean up code; use CONST0_RTX. - - * rtl.c (note_insn_name): Fix typo: had NOT_INSN_DELETED_LABEL. - - * jump.c (delete_insn): Don't change labels to NOTEs if we would - not really have deleted them. - - * genconfig.c (walk_insn_part, case IF_THEN_ELSE): Refine when - HAVE_CMOVE_FLAG gets set. - -Sat Sep 19 14:52:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * reload.c (find_reloads): Always use >= with FIRST_PSEUDO_REGISTER. - - * i386mach.h (SIZE_TYPE): Defined. - -Sat Sep 19 04:57:06 1992 James Van Artsdalen (james at bigtex.cactus.org) - - * i386.md (sCOND patterns): Don't allow a MEM in the SET_DEST, - because these insns can't have input reloads, and a MEM might need - an input address reload. - - * fold-const.c (fold_convert): Avoid using conversion of unsigned - to floating; offset value by hand to fit in signed type. - -Sat Sep 19 00:50:32 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * integrate.c (subst_constants): Do substitute in address of MEM dest. - - * reload1.c (init_reload): Fix typo. - -Fri Sep 18 21:09:15 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * libgcc2.c: Declare _exit as volatile. - - * function.c (assign_parms): Set MEM_IN_STRUCT_P right in stack slots. - -Fri Sep 18 15:58:15 1992 James Van Artsdalen (james at bigtex.cactus.org) - - * fixincludes: Don't look for *.h symlinks if the host doesn't - have symlinks. - -Fri Sep 18 17:34:27 1992 Michael Meissner (meissner@osf.org) - - * mips.md (call_internal): If the memory address to call is really - a constant integer, load it up into $at and do the call from - there. - (call_value_internal): Ditto. - -Fri Sep 18 03:48:17 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.c (m88k_volatile_code): New variable. - (print_operand): Track volatile memory references and output a - serializing instruction before a load when necessary. - * m88k.h (TARGET_SWITCHES): Add -m{no,}serialize-volatile. - (OVERRIDE_OPTIONS): -m88110 and -m88000 imply -mserilize-volatile. - (ADJUST_INSN_LENGTH): Volatile memory operantions may be longer. - (CC_STATUS_INIT): Reset m88k_volatile_code to the unknown state. - * m88k.md (load store patterns): Prepend loads and stores with %V - and %v to track the type and address of the access. - - * m88k.c (m88k_version, m88k_version_0300): New variables. - * m88k.h (TARGET_OPTIONS): Generalize to -mversion-STRING. - (OVERRIDE_OPTIONS): Compute m88k_version_0300. - * m88k.md (call_movstrsi_loop): Renamed from call_block_move_loop. - Use call-value for the block move patterns. - - * m88kdgux.h (PERFERRED_DEBUGGING_TYPE): Compute based on - m88k_version. - (CPU_DEFAULT): Make it -m88000. - - * m88k.h: Don't use #elif - -Fri Sep 18 01:08:55 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (install-common-headers): Don't copy byteorder.h. - -Thu Sep 17 20:06:22 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) - - Complete 13th Cygnus<-->FSF merge. - - Thu Sep 17 13:15:15 1992 Brendan Kehoe (brendan@rtl.cygnus.com) - - Do some much-needed housecleaning of the C++ front-end. - * cp-call.c (ideal_candidate): Move `p2' down inside #if 0'd (only) - section that actually uses it. Delete unused variable `buf'. - (build_method_call): Delete unused variable `dtor_specd'. - * cp-class.c (finish_struct): Delete unused variable `basetype'. - * cp-cvt.c (convert_to_aggr): Add missing argument decl for `protect'. - (convert_pointer_to): Delete unused variable `form'. - * cp-decl.c: Include string.h/strings.h for strncpy() decl. - Add decls for init_* fns. Delete unused decl `push_overload_decl_1'. - Don't use `c_function_varargs', C++ doesn't need it. - (push_binding_level): Add missing argument decls for - `tag_transparent' and `keep'. - (lookup_tag): Add missing argument decl for `tags_transparent'. - (lookup_name): Add missing argument decl for `prefer_type'. - (start_decl): Delete unused variables `classname' and `tmpl'. - (grokvardecl): Add missing argument decl for `initialized'. - (grokdeclarator): Delete unused variable `t'. - * cp-decl2.c (get_temp_name): Delete unused variable `temp'. - (finish_table): Delete unused variable `publicp'. - (finish_builtin_type): Add missing argument decl for `len'. - (finish_file): Delete unused variables `asm_out_file' and - `init_function_name'. - * cp-except.c (ansi_exception_object_lookup): Add missing - argument decl for `type'. - (cplus_expand_throw): Delete unused variables `cname', `name', - and `raise_id'. - * cp-init.c: Delete unneeded forward decl of `init_init_processing'. - (build_new): Delete unused variable `alignment'. - (expand_vec_init): Add missing argument decl for `from_array'. - (build_vec_delete): Delete unused variable `rval'. - * cp-input.c (feed_input): Add missing argument decl for `len'. - * cp-lex.c: Delete unused variable `nextlastiddecl'. - (check_newline): Delete unused variable `tmp'. Place `asm_out_file' - inside a conditional for ASM_OUTPUT_IDENT. - (real_yylex): Delete unused variable `typename_scope_in_progress' - and unused labels `relex' and `reswitch'. - * cp-method.c: Include string.h/strings.h for strncpy() decl. - (new_text_len): Deleted. - (dump_type_prefix): Delete unused variables `print_struct' and `name'. - (dump_tyupe): Delete unused variable `print_struct'. - (type_as_string): Delete unused variable `spaces'. - (do_inline_function_hair): Delete unused variable `cname'. - (flush_repeats): Delete unused variable `rval'. - (build_t_desc_overload): Delete unused variable `i'. - (build_opfncall): Add missing argument decl for `flags'. - (hack_identifier): Add missing argument decl for `yychar'. - * cp-parse.y (template_instantiate_once): Delete unused - variables `id' and `members'. - * cp-search.c (lookup_field): Add missing argument decl for `want_type'. - (tree_needs_constructor_p): Add missing argument decl for `i'. - (dfs_debug_mark): Delete unused variable `pending_vtables'. - (dfs_get_vbase_types): Delete unused variable `basetype'. - * cp-spew.c (init_spew): Delete unused variables `pc' and - `chars_following_typename'. - (yylex): Delete unused variables `dk' and `tmp'. Move decl of `t2' down - to the block that actually uses it. - * cp-tree.c (build_cplus_staticfn_type): Delete unused variable `ptype'. - (propagate_binfo_offsets): Delete unused variables `t' and `basetype'. - (layout_basetypes): Delete unused variable `binfo'. - (array_type_nelts_total): Delete unused variable `index_type'. - * cp-tree.h: Add many decls. - * cp-typeck.c (comp_array_types): Add missing argument decl - for `strict'. - (build_compound_expr): Delete unused variable `tmp'. - (convert_for_initialization): Delete unused label `converted'. - - Wed Sep 16 12:51:10 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * Makefile.in (c-parse.y): Redirect through tmp file. + (objc-parse.y): Likewise. + (c-gperf.h): Likewise. + (mostlyclean): Delete the new tmp files. - * cp-decl.c (init_decl_processing): Enable code to add sin and cos - as built-in functions. + * expmed.c (expand_divmod): Fix typo setting op1_is_pow2. + (expand_divmod): Handle powers-of-two specifically for unsigned + CEIL_*_EXPR. - * cp-decl.c (duplicate_decls): Enable code to preserve the DECL_UID - of olddecl. + * longlong.h: Really fix the test for _IBMR2. Change test of + __powerpc__ to _ARCH_PPC. - * cp-search.c (lookup_nested_fields): Make sure we're climbing along - a chain of nested types, and nothing else. +Tue Jul 5 17:00:19 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Tue Sep 15 17:38:34 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * combine.c (try_combine): Don't check for replacing + arg of function here. + (can_combine_p): Do it here. - * cp-search.c (lookup_nested_fields): New function. - * cp-tree.h: Declare it. - * cp-decl.c (lookup_name): Call it if there's no class-local - definition. (It could be nested.) - * cp-lex.c (do_identifier): Call lookup_nested_field() if necessary. + * expr.c (expand_increment): If pre-incrementing a promoted + variable, don't adjust OP0 since the result won't be used. - Tue Sep 15 12:37:16 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * jump.c (duplicate_loop_exit_test): Handle SUBREG in SET_DEST + of loop exit test statements. - Mon Aug 24 14:58:02 1992 Chip Salzenberg (chip at animal) + * combine.c (try_combine): If I2DEST was used in I2SRC, it isn't + unused just because there is no SET for I2 anymore. - * cp-typeck.c (build_conditional_expr): Determine constness - and volatility with TREE_... tests instead of TYPE_... tests. +Mon Jul 4 11:15:13 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Mon Sep 14 18:00:35 1992 Chip Salzenberg (chip@tct.com) + * rs6000.h (RS6000_OUTPUT_BASENAME): Always call assembler_name + and pass the actual symbol name. - * cp-decl.c (grokdeclarator): Remove redundant (and broken) - test for multiple destructors in a class. + * varasm.c (assemble_name): Call STRIP_NAME_ENCODING. - Fri Jul 31 19:09:10 1992 Chip Salzenberg (chip@tct.com) + * cse.c (canon_hash, exp_equiv_p): Refer to string in SYMBOL_REF + with XSTR, not XEXP. - * cp-cvt.c (convert_to_integer): Push truncation inside COND_EXPR. +Sat Jul 2 18:53:19 1994 Jim Wilson (wilson@cygnus.com) - Mon Sep 14 17:52:45 1992 Chip Salzenberg (chip@tct.com) + * mips.md (smuldi3_highpart, smuldi3_highpart_internal, + umuldi3_highpart, umuldi3_highpart_internal): New patterns. - * cp-class.c (finish_struct): Always write all structure types, - even if they're defined in a "#pragma interface" header file. - Otherwise, XCOFF debugging info is messed up. + * unroll.c (loop_iterations): Only use REG_EQUAL note value if it + is constant. - Mon Sep 14 17:39:32 1992 Chip Salzenberg (chip@tct.com) + * dbxout.c (dbxout_type_methods): Enable debugging info for + template classes. - * cp-class.c (finish_struct): ``Actually, I don't understand - this code. What is it supposed to do?'' --Niklas Hallqvist + * c-lex.c (yylex): Reject imaginary numbers when pedantic. - Mon Sep 14 17:27:23 1992 Chip Salzenberg (chip@tct.com) + * c-decl.c (duplicate_decls): When make void* match char*, set + DECL_IN_SYSTEM_HEADER. - * cp-decl.c (finish_decl): Don't dump core if a decl is anonymous. - A decl is at the global binding level if DECL_CONTEXT is null. - (grokdeclarator): Don't globalize a type if its first mention - is in a parameter. It's okay to initialize a function in a - non-global scope. + * Makefile.in (clean): Delete LIB2FUNCS_EXTRA. - Tue Sep 15 12:15:26 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * alpha.h (FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, + BLOCK_PROFILER): Use multiple fputs/fprintf calls instead of ANSI + C concatenated strings. + (PREDICATE_CODES): Add cint8_operand. - * cp-typeck.c (c_expand_return): Emit a warning when they try to - return the address of a local variable. + * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -isystem. - * cp-decl.c (finish_method): Make sure it's indeed nested before - checking for the qualified name. +Sat Jul 2 09:34:20 1994 Torbjorn Granlund (tege@rtl.cygnus.com) - Mon Sep 14 18:59:25 1992 Mike Stump (mrs@cygnus.com) + * expmed.c (expand_divmod): Always return gen_lowpart (mode, ...). - Wed Sep 2 11:04:24 1992 Chip Salzenberg (chip@tct.com) +Fri Jul 1 19:28:39 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * cp-decl.c (init_decl_processing): Add sin and cos as built-in - functions. Fix type of __builtin_constant_p. + * reorg.c (make_return_insns): Make sure redirecting a jump to + a RETURN insn does not invalidate the delay slots of the jump. - * cp-lex.c (readescape): For \x, don't include leading 0's in count. +Fri Jul 1 16:32:58 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * cp-typeck.c (build_unary_op): For ADDR_EXPR, just set - TREE_CONSTANT if staticp, but don't clear TREE_CONSTANT. + * longlong.h: (arm umul_ppmm): Fix typos in last change. Mark + hard-coded registers with "%|". - Mon Sep 14 18:54:41 1992 Mike Stump (mrs@cygnus.com) +Fri Jul 1 10:08:47 1994 Jason Merrill (jason@deneb.cygnus.com) - * cp-parse.y (permanent_obstack): Move to top of file. + * toplev.c (compile_file): Pass through static consts and inlines + multiple times in case they reference each other. - Mon Sep 14 18:50:19 1992 Mike Stump (mrs@cygnus.com) +Fri Jul 1 07:41:19 1994 Torbjorn Granlund (tege@tiny.cygnus.com) - Mon Sep 14 16:39:10 1992 Chip Salzenberg (chip@tct.com) + * longlong.h: Test for _AM29K and _IBMR2, not ___AM29K__ + and ___IBMR2__. + (arm umul_ppmm): New definition. + (clipper umul_ppmm, smul_ppmm, __umulsidi3): New definitions. + (hppa count_leading_zeros): New definition. + (i960 umul_ppmm, __umulsidi3): New definitions. + (mc68000 umul_ppmm): Use %. before size suffixes. + (mc88110 umul_ppmm, udiv_qrnnd): Rewrite, + (mc88000): Get UMUL_TIME and UDIV_TIME right. + (mips): Get UMUL_TIME right. + (ns32000 umul_ppmm): New definition. + (ns32000 udiv_qrnnd): Rename from bogus div_qrnnd, rewrite. + (powerpc umul_ppmm, smul_ppmm): New definitions. + (_IBMR2/powerpc add_ssaaaa, sub_ddmmss): Improve. + (pyr umul_ppmm): Fix typo. + (sparc add_ssaaaa, sub_ddmmss): Match constant 0 for all inputs. + (vax sdiv_qrnnd): New definition. - [ Changes propagated from diffs to c-* in 920911 snapshot. ] + * expmed.c (expand_divmod): Put OP0 in a register when computing + remainder, or when OP1 is constant. - * cp-decl.c (duplicate_decls): Set DECL_INLINE in newdecl so it - is copied into olddecl. Don't set DECL_EXTERNAL in olddecl. - Preserve DECL_UID and DECL_FRIEND_P of olddecl. +Fri Jul 1 06:46:09 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-typeck.c (build_binary_op_nodefault): Don't assume that a - target integer fits in a HOST_WIDE_INT when checking shift widths. + * jump.c (jump_optimize): Don't convert if (foo) x++ into an + add of an scc unless X has no side effects and can't trap. - Mon Sep 14 18:15:42 1992 Mike Stump (mrs@cygnus.com) + * c-parse.in (initelt): The equal sign is optional when + positioning to a single element of an array. - Mon Aug 24 14:32:03 1992 Chip Salzenberg (chip@tct.com) + * c-typeck.c (push_init_level): If not at "unfilled" position, + set constructor_incremental to 0; likewise for range. - * cp-parse.y (reserved_declspecs): Warn if storage class occurs here. - (declmods): Warn if storage class is not first. + * xm-alpha.h: If GNUC, include alloca.h, else declare alloca. - Mon Sep 14 16:59:53 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): New macro. - * cp-method.c (fndecl_as_string): Don't output an extra space when - printing the return type of a function. + * expmed.c (expand_divmod): Don't set REG_NOTES unless we generated + a quotient. - Mon Sep 14 16:01:53 1992 Mike Stump (mrs@cygnus.com) +Thu Jun 30 18:25:52 1994 David Edelsohn (edelsohn@npac.syr.edu) - Fri Jun 12 18:07:00 1992 Niklas Hallqvist (niklas@appli.se) + * gcc.c (do_spec_1, case 'P'): Don't add underscores to macros + starting with '_[A-Z]'. - * cp-parse.y (structsp, named_class_head_sans_basetype): Call - overload_template_name in the case of template specializations so - that something like: +Thu Jun 30 18:16:36 1994 Will Athanasiou (will@guardian.westford.ccur.com) - template struct C { C(); }; - struct C { C(); }; + * m68k.md (umulsi3_highpart, smulsi3_highpart): Fix constraint + for operand 0 in define_insn. - works. +Thu Jun 30 16:07:33 1994 Kaveh R. Ghazi (ghazi@noc.rutgers.edu) - Mon Sep 14 15:51:22 1992 Mike Stump (mrs@cygnus.com) + * fixincludes: Put wrappers around and to + avoid multiple inclusion errors on m88k-tektronix-sysv3. - Fri Apr 10 13:20:56 1992 Niklas Hallqvist (niklas@appli.se) +Thu Jun 30 12:08:48 1994 Kresten Krab Thorup (krab@spiff.gnu.ai.mit.edu) - * cp-spew.c (spew_debug): exported this flag for use in cp-decl.c - (template_type_seen_before_scope): new global containing contextual - information for the parser, making the compiler grok nested types in - template classes. - (shift_tokens): Guard bcopy calls against moves of zero size. - (yylex): Handle nested types in template classes. + * objc-act.c, objc/init.c (OBJC_VERSION): Incremented to 6. - * cp-parse.y (scoped_typename): Handle nested types in template - classes. - (template_type): Likewise. - (base_class.1): Likewise. - (member_init): Likewise. - (scoped_baseclass): New rule for handling of nested types in - template classes. + * objc/sendmsg.c (INVISIBLE_STRUCT_RETURN): New macro. + (__objc_block_forward): Declare depending on the above. - * cp-decl.c (xref_defn_tag): Conditionalized debug printout on - spew_debug (defined in cp-spew.c). - (binding_levels_sane): void function returned value. + * objc/class.c (objc_next_class): New function. + * objc/objc-api.h (objc_next_class): New function. - Mon Sep 14 15:41:28 1992 Mike Stump (mrs@cygnus.com) + * objc-act.c (get_proto_encoding, build_typed_selector_reference): + New fucnctions. (UTAG_PROTOCOL): New define. + (objc_selector_template, flag_typed_selectors): New variables. + (objc_init): set flag_typed_selectors if -fgnu-runtime. + (synth_module_prologue): Change declaration of + _OBJC_SELECTOR_TABLE when flag_typed_selectors is non-null. + (build_module_descriptor): Make sure the generated constructor + function is declared public. + (build_selector): Only cast to SEL when not doing typed selectors. + (build_selector_translation_table): Rewrite initialization. + (build_tmp_function_decl): Make up new name when called, since it + may now be called multiple times. + (hack_method_prototype): Use init_function_start to reinit args + machinery. Also set current_function_decl before calling + assign_parms. + (generate_protocols): Don't generate encoding twice. + (build_selector_template): New function. + (build_method_list_template): Generate (void*)0 as first element, + not (int)0. + (build_message_expr): move the call to build_selector_reference + towards the end, where we have determined the function prototype. - Mon Sep 14 17:26:18 1992 Chip Salzenberg (chip@tct.com) + * objc/Object.h, objc/Object.m (read:, write:, streamVersion:): + Un-disable for alpha. (forward::, performv::): Declare and fix to + return retval_t. + * objc/archive.c: Completely rewritten to handle 64 bit longs and + pointers. + * objc/class.c (class_pose_as): Rewritten. + * objc/encoding.c: use new ROUND macro for alignment rounding. + * objc/init.c, objc/selector.c, objc/sendmsg.c: Rewritten to + handle new selectors. - * cp-parse.y (unary_expr), cp-call.c (build_scoped_method_call): - NEVER use `maybe_adjust' feature in destructors. It's unsafe. +Thu Jun 30 07:49:50 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - Mon Sep 14 15:12:34 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * arm.h (INITIAL_ELIMINATION_OFFSET): Check frame_pointer_needed when + eliminating the arg pointer into the stack pointer. - * cp-decl.c (finish_method): Complain when a qualifier is used as - part of a member declaration. +Thu Jun 30 06:25:50 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Mon Sep 14 11:47:30 1992 Mike Stump (mrs@cygnus.com) + * c-common.c (c_build_type_variant): Remove last change; instead, + copy TYPE if not in old obstack. - * cp-decl2.c (groktypefield): Revert Wed Aug 19 14:47:08 1992 - change as it breaks template constructor declarations. Gez, this - code is horribly complex, and the comments are wrong. Note, - template constructor definitions are broken in the same way, as - declarations were with this patch in. +Wed Jun 29 21:51:52 1994 Jason Merrill (jason@deneb.cygnus.com) - Fri Sep 11 14:09:01 1992 Mike Stump (mrs@cygnus.com) + * toplev.c (lang_options): Add -W{no-,}non-virtual-dtor. - Fri Sep 11 10:34:45 PDT 1992 Ron Guilmette (rfg at netcom.com) +Wed Jun 29 19:23:27 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) - * cp-decl.c (duplicate_decls): For file-scope redefinitions, note - that the variable was previously *defined* at some specific (earlier) - point. + * final.c (end_final,profile_function): Profiling variables are + size of pointer, not int. + * alpha.h (LIB_SPEC): If -pg, add -lprof2. + (STARTFILE_SPEC, {FUNCTION,BLOCK,FUNCTION_BLOCK}_PROFILER): New macros. - Fri Sep 11 13:49:55 1992 Mike Stump (mrs@cygnus.com) +Wed Jun 29 15:52:45 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Tue Sep 8 21:39:35 PDT 1992 Ron Guilmette (rfg at netcom.com) + * loop.c (basic_induction_var, case REG): Allow previous + insn to set a SUBREG of X. - * cp-decl2.c (finish_file): Don't pass `1's as the `functionbody' - flag to `poplevel' when getting ready to finishing up the per- - compilation-unit constructors and destructors. + * alpha.c (alpha_sa_size): Round size to 16-byte boundary. + (add_long_const): Add new arg, TEMP_REG. + (output_{pro,epi}log): Rework to put save area between outgoing + args and local variables. + * alpha.h (FRAME_POINTER_REGNUM): Now register 63. + (HARD_FRAME_POINTER_REGNUM): New macro. + (CONDITIONAL_REGISTER_USAGE, REG_CLASS_CONTENTS, REGNO_REG_CLASS): + Show register 63 is not an FP register. + (REGHNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise. + (ALPHA_ROUND): New macro. + (STARTING_FRAME_OFFSET, ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): + Modify to reflect save area between outgoing args and local vars. + * alpha.md: Add new pattern for double-add when have + reg + frame pointer. + Slight changes to all such patterns and add define_splits for them. - Fri Sep 11 13:28:02 1992 Mike Stump (mrs@cygnus.com) + * global.c (global_alloc): Make a more accurate attempt to see + if the frame pointer will be used. + If it is, show HARD_FRAME_POINTER_REGNUM used if its not + the same as FRAME_POINTER_REGNUM. + * reload1.c (reload): Can't eliminate if frame pointer needed + and TO is stack pointer. + Spill HARD_FRAME_POINTER_REGNUM if not FRAME_POINTER_REGNUM + and frame pointer is needed. + (spill_hard_reg): If CANT_ELIMINATE, set regs_ever_live; + no longer done by callers. - * cp-decl.c (grokdeclarator): Upgrade local externs with - initializations to be errors, instead of warnings. + * a29k.md (movqi): Add missing `DONE'. - Fri Sep 11 13:03:52 1992 Mike Stump (mrs@cygnus.com) +Wed Jun 29 15:44:18 1994 Doug Evans (dje@canuck.cygnus.com) - Thu Sep 10 09:40:56 PDT 1992 Ron Guilmette (rfg at netcom.com) + * sparc/sparc.h (CPP_SPEC): Split up v9/non-v9 stuff. + Move -Acpu and -Amachine from here. + (CPP_PREDEFINES): To here. + (NO_BUILTIN_PTRDIFF_TYPE): Undefine. + (NO_BUILTIN_SIZE_TYPE): Likewise. + (PTRDIFF_TYPE): Split up v9/non-v9 definitions. + (SIZE_TYPE): Likewise. + * sparc/sp64-elf: (PTRDIFF_TYPE): Remove dependence on POINTER_SIZE. + (SIZE_TYPE): Likewise. - * cp-decl.c (grokdeclarator): Given an error if *either* a `static' - or an `extern' specifier is attached to a defining declaration of a - static data member. +Wed Jun 29 15:28:17 1994 Michael Meissner (meissner@osf.org) - Wed Sep 9 19:46:43 1992 Mike Stump (mrs@cygnus.com) + * cccp.c (collect_expansion): Always put 1 space after the macro + expansion in ANSI mode to fix regression from June 24th. - * c++: Makes sure echo -nostdinc does not eat the -nostdinc. +Tue Jun 28 22:41:52 1994 Doug Evans (dje@cygnus.com) - Tue Sep 8 13:42:35 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * combine.c (simplify_set): Evaluate HAVE_conditional_move at runtime. - * cp-typeck.c (common_type, case FUNCTION_TYPE): An empty argument - list is represented as a void_type_node; make sure we check for - that, and not just an empty TYPE_ARG_TYPES list on either side. +Tue Jun 28 20:27:08 1994 Torbjorn Granlund (tege@adder.cygnus.com) - Tue Sep 8 02:31:05 1992 Mike Stump (mrs@cygnus.com) + * optab.c (expand_binop): Convert OP0 to mode for library calls. - * cp-tree.c (layout_basetypes, make_binfo): Added support for - debugging information about virtual base class pointers. + Changes to optimize division-by-constants, and make ceil and floor + rounding work correctly: + * expmed.c (expand_mult): Generalize to call synth_mult also + for OP1 - 1. + (ceil_log2): New function. + (choose_multiplier): New function. + (invert_mod2n): New function. + (expand_mult_highpart_adjust): New function. + (expand_mult_highpart): New function. + (EXACT_POWER_OF_2_OR_ZERO_P): New macro. + (expand_divmod): Almost completely rewritten. + (expand_shift): Don't truncate immediate shift count, it doesn't work + for types smaller than int. + * expr.h (smul_highpart_optab, umul_highpart_optab): New variables. + * genopinit.c (optabs): Add [us]mul_highpart_optab. + * optabs.c (smul_highpart_optab, umul_highpart_optab): New variables. + (expand_binop): Handle [us]mul_highpart_optab as commutative. + (init_optabs): Initialize [us]mul_highpart_optab. + * fold-const.c (div_and_round_double): Make it globally accessible. + * a29k.md (smulsi3_highpart, umulsi3_highpart): New patterns. + * alpha.md (umuldi3_highpart): New expander and matcher. + * alpha.c (cint8_operand): New predicate. + * m68k.md (umulsi3_highpart, const_umulsi3_highpart): + New expander and matcher. + (smulsi3_highpart, const_smulsi3_highpart): Likewise. - Mon Sep 7 15:34:58 1992 Brendan Kehoe (brendan@rtl.cygnus.com) +Tue Jun 28 13:42:10 1994 Jim Wilson (wilson@cygnus.com) - * cp-decl2.c (temp_name_p): Deleted function, never used anywhere. + * sol2.h (CPP_SPEC): Handle -msupersparc. + * sparc.c (cpu_type, sparc_cpu_type): Rename to arch_type and + sparc_arch_type. Fix all users. + (supersparc_adjust_cost): New function. + * sparc.h (cpu_type, sparc_cpu_type): Rename to arch_type and + sparc_arch_type. + (CPP_SPEC): Handle -msupersparc. + (MASK_SUPERSPARC, TARGET_SUPERSPARC): New macros. + (TARGET_SWITCHES): Add -msupersparc and -mcypress. + (ADJUST_COST): New macro. + * sparc.md (cpu attribute): Rename to arch attribute. Add a new + cpu attribute. Fix all users. + (type attribute): Add ialu, shift, imul, fpdivs, and fpdivd. + Delete fpdiv. + (function units): Add Cypress and Supersparc versions of each. + (addsi3, subsi3, andsi3, iorsi3, xorsi3): Add ialu type attribute. + (mulsi3): Add imul type attribute. + (divtf3, divdf3): Use fpdivd not fpdiv type attribute. + (divsf3); Use fpdivs not fpdiv type attribute. + (ashlsi3, ashrsi3, lshrsi3): Add shift type attribute. - Sun Sep 6 23:09:29 1992 John F Carr (jfc at Athena.MIT.EDU) + * i960.md (andsi3+6): Replace bad clrbit pattern with two working + ones. - * cp-typeck.c (convert_arguments): Ignore arguments which are - ERROR_MARK_NODE to avoid crashes trying to reference fields which - are not present. +Tue Jun 28 13:31:31 1994 Uwe Seimet (seimet@iris1.chemie.uni-kl.de) - Mon Sep 7 12:34:09 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * configure (m68k-atari-sysv4*): New configuration. + * m68k/atari.h, m68k/xm-atari.h: New files. - * cp-decl.c (clear_anon_tags): Do assignment of B after we've seen - if we're to work on an anonymous aggregate. No need to make the - assignment for nearly every aggr we ever declare. +Tue Jun 28 12:41:32 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - Sun Sep 6 17:51:47 1992 Mike Stump (mrs@cygnus.com) + * pa.md (define_split for (plus (reg) (large_constant))): Treat + large_constant as signed. - Sun Sep 6 13:12:16 1992 John Carr (jfc@Athena.MIT.EDU) +Tue Jun 28 05:46:55 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl.c (pushdecl, finish_decl, store_return_init, - finish_function), cp-decl2.c (constructor_name, finish_file), - cp-except.c (cplus_expand_reraise), cp-init.c (emit_base_init, - expand_aggr_init_1), cp-typeck.c (build_modify_expr, - c_expand_asm_operands, c_expand_return): Include rtl.h and eliminate - unneeded casts. + * reload1.c (eliminate_regs_in_insn): When checking for moves + and adds, use single_set. - * cp-decl2.c (grokbitfield): Use NULL_TREE instead of NULL. + * reload1.c (reloads_conflict): Handle R1_TYPE of RELOAD_OTHER. - * cp-decl2.c (finish_file): Don't try and not use stdio.h. + * expr.c (do_jump, case BIT_AND_EXPR): Only narrow to a type + that corresponds to a mode. - * cp-except.c (cplus_expand_reraise): emit_move_insn takes 2 - arguments, not three. +Tue Jun 28 05:41:29 1994 Will R. Athanasiou (will@westford.ccur.com) - Sat Sep 5 12:04:06 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * rs6000.h (MEMORY_MOVE_COST): Make processor-dependent. + * rs6000.md (movsf): Emit frsp if storing to memory and not PowerPC. + (movsf matcher): Remove explicit frsp. + (store sf with update): Likewise. + * rs6000.c: Include ctype.h. - * cp-decl.c (finish_function): Undo change of Mon Aug 17 16:28:48 - 1992; it resulted in lots of unnecessary and incorrect warnings. +Tue Jun 28 05:40:44 1994 Mike Collison (collison@chianti.sw.stratus.com) - * cp-lex.c (do_identifier): For nested classes, check if a variable - being sought is actually in the scope of an enclosing class. If it - is, and the variable's non-static, bail. + * real.c: Treat HFmode like SFmode, for now. - * cp-decl.c (grok_enum_decls): Tighten up some code that was pretty - twisty. +Mon Jun 27 19:16:49 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-class.c (start_struct): Delete; it was #if 0'd out anyway (C++ - doesn't need it), and is an old hold-over from c-decl.c. + * optabs.c (expand_binop, multi-words shifts and rotates): + Fix errors in last change. - * cp-class.c (minus_one_node): Delete, it's not used. - (init_class_processing): Delete init of minus_one_node. +Mon Jun 27 11:29:18 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * cp-spew.c (yylex): Check return of resolve_scope_to_name to - be NULL_TREE. - (frob_identifier): Likewise. - (hack_more_ids): Likewise. + * arm.c: Include "expr.h". + (arm_fpu): New variable. + (arm_gen_movstrqi): Fix typo. + * arm.h: (enum floating_point_type): New enumeration type. + (arm_fpu): New declaration. + * arm.md: (function_unit fpa): Add more accurate scheduling + information. + (all floating point patterns): Add more detailed instruction type + information to attributes. + * riscix.h: (STARTFILE_SPEC,SIZE_TYPE,PTRDIFF_TYPE): Fix typos. + (ASM_FINAL_SPEC): Only reject -mbsd and -mxopen when -pedantic. - * cp-cvt.c (convert_to_real): Use REAL_VALUE_ATOF to make 0. +Sun Jun 26 05:37:26 1994 Pat Rankin (rankin@eql.caltech.edu) - Fri Sep 4 19:23:17 1992 Mike Stump (mrs@cygnus.com) + * toplev.c (v_message_with_decl): Avoid fwrite for stderr; mixing + it with fprintf and fputs can cause strange results under VMS. - * cp-decl.c (grok_ctor_properties): When looking for copy - constructors, ignore the first argument since it is the in$chrg - parameter for the object to copy from. +Sat Jun 25 06:07:56 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - Fri Sep 4 14:35:31 1992 Mike Stump (mrs@cygnus.com) + * combine.c (distribute_notes, case REG_DEAD): If a call uses a + hard reg, then this is where it dies. - * cp-cvt.c (build_up_reference): Prevent the compiler from dumping - core on semantic errors. +Fri Jun 24 19:09:33 1994 Chip Salzenberg (chip@fin.uucp) -Thu Sep 17 17:28:13 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * cccp.c (create_definition): Eliminate whitespace before and + after macro definitions. - * c-typeck.c (initializer_constant_valid_p): Warn about address - arithmetic destined for a type that's too narrow. - New argument ENDTYPE. +Fri Jun 24 16:19:27 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - * limitx.h: Don't include-next if _LIBC_LIMITS_H_ defined. + * c-decl.c (lang_decode_option): Set warn_bad_function_cast + for -Wbad-function-cast. + * c-typeck.c (build_c_cast): Issue a warning for non-matching cast + from a function call (like malloc without proto). + * c-tree.h: Declare warn_bad_function_cast. + * toplev.c (lang_options): Add -W[no]-bad-function-cast. -Thu Sep 17 20:45:16 1992 Paul Eggert (eggert@twinsun.com) +Fri Jun 24 16:09:12 1994 Pat Rankin (rankin@eql.caltech.edu) - * cexp.y (parse_escape): Diagnose '\x' with no digits. - Diagnose integer overflow when parsing \x escapes. + * vax.h (ASM_IDENTIFY_LANGUAGE): New macro. -Thu Sep 17 11:52:53 1992 Michael Meissner (meissner@osf.org) +Fri Jun 24 15:36:37 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * gcc.c (SIGNED_CHAR_SPEC): Use #if rather than ?: in default defn. + * jump.c (jump_optimize): If we reverse "if (foo) bar else break;" + and there follows a NOTE_INSN_LOOP_END, move the note before "bar". -Thu Sep 17 14:53:51 1992 Tim Moore (moore@defmacro.cs.utah.edu) + * arm.md (movstrsi): Delete. + (movstrqi): New expand. + * arm.h (arm_gen_movstrqi): New function. - * pa.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Fix double integer - argument alignment. - (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_SIZE): Define. - * pa-hpux.h, pa-ghpux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, - WCHAR_SIZE): Define for hpux. - * x-pa, t-pa : New files. - * configure (hppa cases): add definitions for xmake_file and - tmake_file. +Fri Jun 24 14:43:46 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Wed Sep 16 22:22:15 1992 James Van Artsdalen (james at bigtex.cactus.org) + * alpha.c (alpha_builtin_saveregs): Fix typo in computing value + for __base. - * i386.c (print_operand): Don't abort if error: might have been a - user asm. + * vax.md (zero_extract patterns): Don't allow constants in + the first operand of ZERO_EXTRACT since the recognizer + function forces them to match the mode of the match_operand. - * i386.md (addsi3,ashlsi3): Handle the case where the stack - pointer appears as an index reg. + * c-typeck.c (decl_constant_value): Test for const and + not iterator. + (default_conversion, digest_init): Remove redundant checks + before calling decl_constant_value. + (convert_for_assignment): See if RHS has a constant value. -Wed Sep 16 21:22:23 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * m68k.md (ashrsi3, lshrsh3): Remove patterns using bfext[su]. - * cse.c (fold_rtx): For SUBREG, actually test subreg_lowpart_p in the - code to handle narrowing subregs. And exclude binary ops like DIV - where truncating the args is not valid. + * reg-stack.c (goto_block_pat): Ignore undefined label. - * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Moved to separate member. - * Makefile.in (LIB2FUNCS): Added _ctors. +Thu Jun 23 22:07:42 1994 Doug Evans (dje@cygnus.com) -Wed Sep 16 23:28:41 1992 Paul Eggert (eggert@twinsun.com) + * sparc/sp64-elf.h (LINK_SPEC): Fix typo. + (PTRDIFF_TYPE): Likewise. - * cexp.y (parse_number): Warn about '9' in octal constants. - Commonize overflow detection for various radices. +Thu Jun 23 19:15:36 1994 Jason Merrill (jason@deneb.cygnus.com) -Wed Sep 16 19:33:37 1992 Torbjorn Granlund (tege@mole.gnu.ai.mit.edu) + * tree.h (TREE_SYMBOL_REFERENCED): New macro. + * varasm.c (assemble_name): Set TREE_SYMBOL_REFERENCED on the + identifier for `name'. + * toplev.c (compile_file): Use TREE_SYMBOL_REFERENCED instead of + TREE_USED and TREE_ADDRESSABLE where appropriate. - * pa.md (casesi): Use emit_jump_insn to emit casesi0 pattern. - (xorsi3): Remove `r' from output template. - (movstrsi recognizer): Add `+' to operand 0 & 1 constraints. +Thu Jun 23 19:06:05 1994 Randy Wright (rwright@dhostwo.convex.com) -Wed Sep 16 14:53:51 1992 Michael Meissner (meissner@osf.org) + * cse.c (simplify_unary_operation, case UNSIGNED_FLOAT): Add + missing cast to unsigned. - * mips.h (MIPS_VERSION): Set Meissner version # to 25. +Thu Jun 23 19:00:18 1994 David Edelsohn (edelsohn@npac.syr.edu) - * mips.c (gen_int_relational): Eliminate all vestiages of - figuring out whether the comparison will always be true or false. - Let the optimizer figure it out. - (gen_conditional_branch): Ditto. - (function_epilogue): Print correct number of half-pic pointers - and references. - (prev_half_pic_refs): New static variable. - (prev_half_pic_ptrs): New static variable. + * rs6000.md (fix_truncdfsi2, movsf, movdi): Use assign_stack_temp. + (mulsidi3): Add earlyclobber constraint modifier to PowerPC + version and !TARGET_POWERPC64 to final condition. -Tue Sep 15 16:10:47 PDT 1992 Ron Guilmette (rfg at netcom.com) + * rs6000.h (CPP_PREDEFINES): Define _POWER (alias for _IBMR2). + (CPP_SPEC): New macro. + * powerpc.h (ASM_SPEC): Use PowerPC mode, not 601 mode. + (CPP_SPEC): New macro. + (TARGET_DEFAULT): Generate pure PowerPC code, not 601-specific. - * toplev.c (rest_of_decl_compilation): Call `dwarfout_file_scope_decl' - immediately for actual *definitions* of file-scope variables (and - file-scope typedefs too). +Thu Jun 23 18:09:23 1994 Pat Rankin (rankin@eql.caltech.edu) -Tue Sep 15 20:56:31 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * vax.h (CPP_PREDEFINES): Add `__vax__'. + * vax/vms.h (CPP_PREDEFINES): Add `__vax__', `__vms__', and `__VMS__'; + update __GNUC_MINOR__ to 6. - * fixincludes (EXINIT): Clear it to avoid problems with bad values. - * fixinc.svr4 (EXINIT): Likewise. +Thu Jun 23 17:59:41 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * print-tree.c (print_node): Don't print blank line for null - fields in a TREE_VEC. + * toplev.c (compile_file): Don't try to write function if we + didn't save insns for it. - * cccp.c (macroexpand): Don't output another error message if have - already output error message returned from macarg. + * reload.c (find_reloads): Don't rejecting non-const due to value + of PREFERRED_RELOAD_CLASS if no regs were valid for alternative. - * c-decl.c (grokparms): Copy parm list if it isn't permanent, - instead of copying it if temporary allocation has been turned off. +Thu Jun 23 17:45:55 1994 Matthias Pfaller (leo@marco.de) - * final.c (only_leaf_regs_used): Check for global_regs. + * ns32k.c (output_move_double): If the dest is register pair and both + regs are used in src address, use ADDR to compute src address, not + ADDD, which throws away scaled index. - * c-parse.y (typespec): Don't warn if pedantic when typeof used. +Thu Jun 23 17:40:06 1994 Craig Burley (burley@gnu.ai.mit.edu) - * c-tree.h (lang_identifier): Add limbo_value field for out of - scope block level extern declarations. - (IDENTIFIER_LIMBO_VALUE): New define, to access that field. - * c-decl.c (print_lang_identifier): Print value of limbo field. - (pushdecl): Check an extern decl against both previous global and - previous limbo declarations. For global declarations, clear limbo - value field. For block level extern declarations, set limbo field - if zero. - (grokdeclarator): If this is a block level extern, then allocate - it on the permanent obstack, not the temporary obstack. + * c-decl.c (clear_binding_level): Add missing fields in initializer. + (c_decode_option): Correct misspelling of -fno-dollars-in-identifiers. -Tue Sep 15 15:42:24 1992 Paul Eggert (eggert@twinsun.com) +Thu Jun 23 13:47:23 1994 Ian Lance Taylor (ian@cygnus.com) - * tree.c (int_fits_type_p): Negative ints never fit unsigned - types, and unsigned ints with top-bit-set never fit signed types. - * c-lex.c (yylex): Integer constant is unsigned for purposes of - int_fits_type_p so that it compares huge constants properly. + * fixincludes: Fix return type of sbrk in on Alpha + OSF/1 V2.0. Also, redirect grep errors to /dev/null in + fix. -Tue Sep 15 14:44:51 1992 Michael Meissner (meissner@osf.org) +Thu Jun 23 12:08:23 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * i386.md (string move, string compare): Always issue cld - instruction before doing a rep string move, so that we are - guaranteed that the bytes are moved/compared correctly. + * arm.c: Include tree.h. + (const_ok_for_arm): Add fast return for 0 or just one non-zero bit. + (const_ok_for_op, arm_split_constant): New functions. + (arm_rtx_costs, reg_or_int_operand): New functions. + (shift_operator): Accept ROTATERT. + (multi_register_push): New function. + (shift_op): Don't abort if a constant is outside the acceptable range, + but convert the whole shift expression into something legal. If the + shift is zero, then return NULL. + (output_return_instruction): Output a call to abort if the function is + volatile. + (arm_volatile_func): New function. + (get_prologue_size): Remove all adjustments for insns that are now + output as rtx. + (output_func_prologue): Remove all code that outputs instructions, + just print a few comments. + (output_func_epilogue): Output a call to abort if a volatile function + tries to return. + (emit_multi_reg_push): New function. + (arm_expand_prologue): New function. Don't bother to push call-saved + regs if we will never return. + (arm_print_operand, case 'S'): If shift_op returns NULL, then no shift + is required. + * arm.h (TARGET_WHEN_DEBUGGING): Delete. + (MODES_TIEABLE_P): All modes of the same class are tieable. + (CONST_OK_FOR_LETTER_P): Add 'M' for constants valid in a shift. + (FUNCTION_PROFILER): Don't call arm_increase_location. + (INITIAL_ELIMINATION_OFFSET): Call saved regs are no-longer pushed for + functions that don't return. + (LEGITIMIZE_ADDRESS): Push constants that will never be legitimate -- + symbols and labels -- into registers. Handle DImode better. + (DEFAULT_SIGNED_CHAR): Use unsigned unless already defined. + (RTX_COSTS): Call arm_rtx_costs. + (ADDRESS_COST): Since most operations have the same rtx cost, make the + more complex addresses cheaper. + (PREDICATE_CODES): Add ROTATERT to shift_operator; and new predicates + for reg_or_int_operand and multi_register_push. + (DBX_CONTIN_LENGTH): Only define if not already done. + (PRINT_OPERAND_ADDRESS): Let arm_print operand output the ", " for + shifts. + * arm.md (addsi3, subsi3, andsi3, iorsi3, ashlsi3, ashrsi3, lshrsi3, + rotrsi3): Rewrite as expand patterns. + (rotlsi3): New expand. + (matchers, and split patterns for above): New. + (all patterns with shifts): Let arm_print_operand output the ", " + before a shift if it is needed. + (zero_extendqihi2): Delete. + (zero_extendqisi2): Expand to (and ...) if not memory. + (movsi): Call arm_split_constant to generate a constant. + (movqi): Only force a MEM into a register if not reloading. + (movsf, movdf): If loading a non-immediate floating point value, or + loading and floating point immediate into integer regs, push the + constant straight into the pool. + (movdf): Get rid of the scratch register. + (reload_outdf): Rewrite to expand to the two required insns. + (matcher for movdf): Remove alternative that used scratch register for + storing. + (movxf): rewrite as expand. + (matcher for movxf): Recognize even when XFmode code is disabled, so + that prologue insns can be generated. + (Matcher for reversed conditional jump): Don't match if the mode of the + CC register is not reversible. + (prologue): New expand. + (matcher for multi_register_push insn): New. + * riscix.h: Delete some dead code. + (STARTFILE_SPEC): Look in the correct places for start files. + (LIB_SPEC): Define. + (LINK_SPEC): Define. + (TARGET_WHEN_DEBUGGING): Delete. + (DEFAULT_SIGNED_CHAR): Set to unsigned. + (SIZE_TYPE, PTRDIFF_TYPE, TARGET_EDOM): Define. + * rix-gas.h (DBX_CONTIN_LENGTH): Set to 80. + (DEFAULT_GDB_EXTENSIONS, DBX_NO_XREFS): Don't try to pander to dbx, it + is just to broken to use. + +Wed Jun 22 20:13:03 1994 Will Athanasiou (will@westford.ccur.com) + + * configure (m68k-ccur-rtu): New configuration. + * config.sub (m68k-ccur): New system. + * protoize.c: Include , not on Concurrent. + * ccur-GAS.h, x-ccur: New files. + +Wed Jun 22 18:49:17 1994 Walter Misar (misar@rbg.informatik.th-darmstadt.de) + + * m68k/hp320.h (LINK_SPEC): New macro. + +Wed Jun 22 18:43:51 1994 Ian Lance Taylor (ian@cygnus.com) + + * configure: For target alpha-*-*, if using gas, set + target_cpu_default to 4. + * config/alpha/alpha.h (TARGET_SWITCHES): Include + TARGET_CPU_DEFAULT in default value. + (TARGET_CPU_DEFAULT): Define as 0 if not already defined. + (ASM_FINAL_SPEC): Include TARGET_CPU_DEFAULT in test for which + version to define. + +Wed Jun 22 18:15:41 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * loop.c (strength_reduce): When replacing DEST_ADDR givs, make + sure resulting insn is valid. + + * optabs.c (expand_binop): New variable next_methods; pass to + most recursive calls when trying to avoid libcalls. + Always check for a return value of zero in recursive calls. + (expand_float): Ensure TARGET has proper mode. + Pass OPTAB_LIB_WIDEN to expand_binop calls. + +Tue Jun 21 14:35:38 1994 Doug Evans (dje@cygnus.com) + + * cccp.c (skip_to_end_of_comment): Catch unterminated comments. + +Sat Jun 18 17:49:41 1994 Jason Merrill (jason@deneb.cygnus.com) + + * fixproto: Move hacking of assert.h from here. + * fixincludes: To here. + +Sat Jun 18 16:42:31 1994 Jim Wilson (wilson@cygnus.com) + + * c-typeck.c (process_init_element): For fieldtype, don't access + TYPE_MAIN_VARIANT field if the type is error_mark_node. + + * jump.c (duplicate_loop_exit_test): Initialize copy to zero. + Emit jump to end lable if copy is still zero. + + * mips.md (truncdisi2): Change from define_insn to define_expand. + (truncdihi2, truncdiqi2, extendsidi2): Likewise. + (extendsidi2_internal): New pattern. + + * loop.c (move_movables): Copy CALL_INSN_FUNCTION_USAGE field. + + * sdbout.c (sdbout_one_type): Use DECL_ASSEMBLER_NAME if + DECL_LANG_SPECIFIC is set. Use DECL_ASSEMBLER_NAME not + DECL_NAME for child_type that is a template type. + (sdbout_symbol): Use DECL_ASSEMBLER_NAME if DECL_LANG_SPECIFIC + is set. + +Sat Jun 18 16:39:03 1994 Kung Hsu (kung@mexican.cygnus.com) + + * dbxout.c (dbxout_symbol): Replace DECL_IGNORED_P with + TYPE_DECL_SUPPRESS_DEBUG. + +Sat Jun 18 10:21:44 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expmed.c (expand_shift): Don't try extzv for lshr. + + * vax.md (lshrsi3): New define_expand. + + * optabs.c: Pass NULL_RTX for TARGET in calls to expand_{un,bin}op. + (expand_float): Use expand_shift instead of expand_binop. + +Fri Jun 17 15:05:58 1994 Ian Lance Taylor (ian@cygnus.com) + + * fixincludes: Correct math.h on Lynx handling again. + +Fri Jun 17 10:52:41 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * cse.c (simplify_binary_operation, case MINUS): Check mode of op0, + instead of op1, before calling plus_constant. + +Fri Jun 17 01:42:37 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * pa.h (DEBUGGER_AUTO_OFFSET): Define. If no frame pointer + is available, then adjust the offset by the size of the current + frame. + +Thu Jun 16 16:35:12 1994 Jason Merrill (jason@deneb.cygnus.com) + + * tree.h (DECL_DEFER_OUTPUT): New macro. + * toplev.c (compile_file): Unset DECL_DEFER_OUTPUT on decls + considered at end of file. + * integrate.c (output_inline_function): Unset DECL_DEFER_OUTPUT on + fndecl. + * toplev.c (rest_of_compilation): Also postpone compilation of + inlines with DECL_DEFER_OUTPUT set. + (compile_file): Always emit postponed inlines if + -fkeep-inline-functions. + +Thu Jun 16 11:00:14 1994 Ian Lance Taylor (ian@cygnus.com) + + * fixincludes: Fix argument type for ffs in on Alpha + OSF/1 V2.0. + +Thu Jun 16 06:49:03 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload1.c (reload_reg_free_p, case RELOAD_OTHER): Allowed + to conflict with RELOAD_FOR_OTHER_ADDRESS. + + * cse.c (set_nonvarying_address_components): Rework and also + handle an AND used for non-aligned accesses. + +Thu Jun 16 06:36:49 1994 Chip Salzenberg (chip@fin.uucp) + + * i386.h (REG_ALLOC_ORDER): Prefer registers listed in + CALL_USED_REGISTERS. + +Wed Jun 15 20:45:14 1994 Jason Merrill (jason@deneb.cygnus.com) + + * tree.h (TREE_NO_UNUSED_WARNING): Note that this can be applied + to COMPOUND_EXPRs, too. + + * stmt.c (warn_if_unused_value): Handle TREE_NO_UNUSED_WARNING for + COMPOUND_EXPRs, too. + +Wed Jun 15 20:35:21 1994 David Edelsohn (edelsohn@npac.syr.edu) + + * rs6000.md (divsi3): Fix divide by 2^N with compare RTL. + + * rs6000.md (maxsf3, minsf3, maxdf3, mindf3): Fix predicate of + define_split. + (muldi3): Fix predicate. + (movdf matcher): Allow update and indexed for lfd instruction. + +Wed Jun 15 19:24:23 1994 Doug Evans (dje@cygnus.com) + + * dbxout.c (dbxout_type): Fix call to bzero. + +Wed Jun 15 19:20:34 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (simplify_unary_operation): Fix typo in last change. + +Wed Jun 15 15:20:54 1994 Per Bothner (bothner@cygnus.com) + + * dbxout.c (dbxout_range_type): Handle the case that an array + range is neither an integer nor a sub-range. (In Pascal or + Chill it could be a Boolean, character, or enumeral type.) + +Wed Jun 15 04:00:42 1994 Ian Lance Taylor (ian@cygnus.com) + + * genmultilib: New shell script to generate multiple library + information. + * Makefile.in (multilib.h, stmp-multilib, install-multilib): New + targets. + (gcc.o): Depend on multilib.h. + (clean): Remove multilib.h and tmpmultilib*. + * gcc.c: Include multilib.h. + (print_multi_lib, print_multi_directory, multilib_select, + multilib_dir): New static variables. + (option_map): Added --print-multi-lib and --print-multi-directory. + (set_spec): Get multilib_select from specs file. + (process_command): Dump multilib_select into specs file. Handle + -print-multi-lib and -print-multi-directory. + (do_spec_1): Try multilib_dir for %D case. + (find_file): Try multilib_dir. + (main): Call set_multilib_dir. Handle print_multi_lib and + print_multi_directory. + (used_arg, set_multilib_dir, print_multilib_info): New functions. + * configure (sparc-*-sunos4*): Use target fragment sparc/t-sunos4. + * sparc/t-sunos4: New file. + +Wed Jun 15 03:54:32 1994 Doug Evans (dje@cygnus.com) + + Add support for the SPARC V9 cpu. + * configure (sparc64-*-aout): New target. + (sparc64-*-elf): New target. + * config.sub (sparc64): New cpu. + (aout, elf): New os's. + * genconfig.c (main): Allow targets to override HAVE_conditional_move. + * jump.c (jump_optimize): Use it at run-time. + * sparc/t-sp64: New file. + * sparc/sp64-aout.h: New file. + * sparc/sp64-elf.h: New file. + * sparc/sysv4.h (ASM_OUTPUT_CASE_LABEL): Handle 64 bit pointers. + * sparc/sparc.h (cpu_type): New enum. + (CPP_PREDEFINES,CPP_SPEC): Add v9 support. + (NO_BUILTIN_PTRDIFF_TYPE, NO_BUILTIN_SIZE_TYPE, MAX_WCHAR_TYPE_SIZE, + SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, + FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, MAX_INT_TYPE_SIZE, + MAX_LONG_TYPE_SIZE): Define. + (PTRDIFF_TYPE, SIZE_TYPE, BITS_PER_WORD, MAX_BITS_PER_WORD, + UNITS_PER_WORD, MAX_UNITS_PER_WORD, LONG_DOUBLE_TYPE_SIZE, + POINTER_SIZE, PARM_BOUNDARY, STACK_BOUNDARY, SPARC_STACK_ALIGN, + EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT, FIRST_PSEUDO_REGISTER, + FIXED_REGISTERS, CALL_USED_REGISTERS, CONDITIONAL_REGISTER_USAGE): + Add v9 support. + (sparc_override_options, sparc_code_model): Declare. + (OVERRIDE_OPTIONS): Call it. + (MASK_*): Define bits set by target flags. + (TARGET_*): Use them. + ({MASK,TARGET}_{V9,INT64,LONG64,PTR64,ENV32,STACK_BIAS, + MEDLOW,MEDANY,FULLANY}): Define. + (MEDANY_BASE_REG): Define. + (V9_SWITCHES, TARGET_OPTIONS): Define. + (TARGET_SWITCHES, TARGET_DEFAULT): Use MASK_*. + (SPARC_STACK_BIAS, SECONDARY_MEMORY_NEEDED_MODE): Define. + (SECONDARY_MEMORY_NEEDED): Simplify. + (hard_regno_mode_class, sparc_mode_class, sparc_cpu_type): Declare. + (REG_PARM_STACK_SPACE): Do not define if v9. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, MODES_TIEABLE_P, + RETURN_IN_MEMORY, STRUCT_VALUE, STRUCT_VALUE_INCOMING, reg_class, + REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_ALLOC_ORDER, + REG_LEAF_ALLOC_ORDER, LEAF_REGISTERS, REG_CLASS_FROM_LETTER, + CLASS_MAX_NREGS, STARTING_FRAME_OFFSET, FIRST_PARM_OFFSET, + BASE_RETURN_VALUE_REG, BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG, + BASE_INCOMING_ARG_REG, FUNCTION_ARG_REGNO_P): Add v9 support. + (sparc_arg_class): New enum (v9 only). + (sparc_args): New struct to record v9 arguments. + (CUMULATIVE_ARGS): Use it (v9 only). + (GET_SPARC_ARG_CLASS): Define. + (sparc_arg_count, sparc_n_named_args): Declare. + (PASS_IN_REG_P): Define. + (ROUND_REG, ROUND_ADVANCE, INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, + FUNCTION_ARG, FUNCTION_INCOMING_ARG, FUNCTION_ARG_PARTIAL_NREGS, + FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): + Add v9 support. + (sparc64_init_expanders, sparc64_fpconv_stack_temp): Declare. + (INIT_EXPANDERS): Define (v9 only). + (gen_v9_scc, output_v9branch): Declare. + (HAVE_conditional_move): Define. + (FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX, REGNO_OK_FOR_FP_P, + REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, EXTRA_CONSTRAINT, + CASE_VECTOR_MODE, Pmode, EXTRA_CC_MODES, EXTRA_CC_NAMES, + SELECT_CC_MODE, REGISTER_NAMES): Add v9 support. + (REGNO_OK_FOR_CCFP_P): Define. + (sparc_initialize_trampoline, sparc64_initialize_trampoline): Declare. + (INITIALIZE_TRAMPOLINE): Call them. + (ENCODE_SECTION_INFO): Mark functions in v9. + (RTX_COSTS): Assume MULT costs the same for v9 as v8. + (ASM_LONGLONG, ASM_FLOAT): Define. + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Add v9 support. + * sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Define. + (sparc_cpu_type, sparc_arg_count, sparc_n_named_args, + frame_base_offset, fpconv_stack_temp): New globals. + (leaf_reg_remap): Add additional registers for v9. + (sparc_override_options, sparc64_init_expanders, + sparc64_fpconv_stack_temp, intreg_operand, ccfp_reg_operand, + data_segment_operand, text_segment_operand, v9_regcmp_op, + arith11_operand, arith10_operand, arith11_double_operand, + arith10_double_operand, gen_v9_scc, emit_v9_brxx_insn, + sparc_init_modes, build_big_number, output_v9branch, + sparc_initialize_trampoline, sparc64_initialize_trampoline): + New functions. + (arith_double_operand, gen_compare_reg, finalize_pic, + emit_move_sequence, mem_aligned_8, output_move_double, + output_move_quad, output_fp_move_double, output_fp_move_quad, + output_block_move, save_regs, restore_regs): Add v9 support. + (sparc_mode_class): New enum. + (*_MODES): Redefine to use it. + (hard_32bit_mode_classes): Renamed from hard_regno_mode_ok. + (hard_regno_mode_classes, hard_64bit_mode_classes, + sparc_mode_class): New globals. + (num_gfregs): Renamed from num_fregs. + (compute_frame_size): Add v9 support. Simplify calculations. + (output_function_prologue): Call build_big_number to compute stack + size in %g1, then adjust %sp. + Fix saving of call saved registers. Handle new v9 registers. + (output_function_epilogue): Fix restoration of call saved registers. + Handle new v9 registers. + Use SKIP_CALLERS_UNIMP_P to see if unimp insn is at return address. + (sparc_builtin_saveregs): Define v9 version. + (output_cbranch): New argument fp_cond_reg. All callers changed. + Add v9 support. + (output_return): Use SKIP_CALLERS_UNIMP_P. + (print_operand): New codes '_', '@', 'C', 'D'. + (output_double_int): Handle LABEL_REF and MINUS for v9. + Use ASM_LONGLONG if assembler can handle it. + * sparc/sparc.md (cpu): New attribute. + (type attribute): New value cmove (conditional moves). + (cmpdi): New pattern for v9. + (seq*, sne*): Add v9 support. + (sgt,slt,sge,sle): Explicitly restrict operand 0 to the integer + registers. Try emitting a conditional move for v9. + (sgtu,sltu,sgeu,sleu): Likewise. + (comparison insns): Add v9 versions. + (scc insns): Add DImode versions for v9. + (beq, bne, bgt, blt, bge, ble): If comparing DImode with 0 on v9, + use brxx insns. Use emit_jump_insn, not emit_insn, as the latter + mishandles brxx insns. + (branch insns): Update calls to output_cbranch. + Add v9 versions to support multiple floating point condition code regs. + Add v9 versions to support brxx insns. + (lo_sum, high, pic): Add v9 support. + (symbolic move patterns): Disable for v9. + (DImode, DFmode, TFmode moves): Add v9 support. + (conditional move insns): Define for v9. + (zero_extendqidi2, extendqidi2, zero_extendhidi2, extendhidi2, + zero_extendsidi2, extendsidi2, floatdisf2, floatdidf2, floatditf2, + fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, muldi3, divdi3, + udivdi3, ashldi3, ashrdi3, lshrdi3, ffsdi2): New patterns for v9. + (bitfield compare insn): Add DImode version for v9. + (adddi3, subdi3, negdi2, anddi3, iordi3, xordi3, one_cmpldi2, + mixed mode fp mult insns, negdf2, negtf2, absdf2, abstf2, tablejump, + call, call_value, untyped_call, untyped_return, indirect_jump, + flush_register_windows, flush): Add v9 support. + (ldd peep holes): Disable for v9. + (set/compare peep hole): Define DImode version for v9. + (sign extend/compare peep hole): Likewise. + (return peep holes): Add v9 support. + (call/jump peep holes): Add v9 support. + * ginclude/va-sparc.h: Add v9 support. + +Tue Jun 14 22:44:52 1994 Michael Meissner (meissner@osf.org) + + * config/i386/i386.h (reg_class): Add AD_REGS that match %eax and + %edx to allow %eax:%edx to be specified as one DI register. + (REG_CLASS_NAMES): Ditto. + (REG_CLASS_CONTENTS): Ditto. + (REG_CLASS_FROM_LETTER): 'A' specifies AD_REGS. + + * config/i386/i386.md (umulqihi3): Name the insn with the standard + name. + (mulqihi3, umulsidi3, mulsidi3): Add new widening multiply + patterns. -Tue Sep 15 00:09:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Tue Jun 14 22:25:16 1994 Torbjorn Granlund (tege@adder.cygnus.com) - * gstdarg.h: (va_arg): Cast ptr to void *, then to TYPE *. - * va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-pyr.h, va-sparc.h: + * fold-const.c (encode, decode): Use 4 HOST_WIDE_INTs for encoded + value with HOST_BITS_PER_WIDE_INT/2 bits in each. + (LOWPART, HIGHPART): New macros. + (BASE): Move definition outside of div_and_round_double. + (add_double, mul_double, lshift_double, rshift_double): Rewrite. + (lrotate_double): Use LOWPART, HIGHPART, and BASE. + (rrotate_double): Likewise. + (div_and_round_double): Major changes to code for general case. + Now it actually produces non-garbage results for large operands. + (div_and_round_double): Simplify condition for special code used when + divisor < BASE. + (const_binop): Delete special cases for multiplying by 0, 1, 2, 4, 8. + (fold, case *_DIV_EXPR): Don't try to optimize for overflow. + * machmode.h (MAX_SHORTS): Deleted. + + * m68k.md: Trivial simplification of many patterns. + (subsi3): Don't handle CONST_INT for operand 2. + (ashiftrt, op2 > 8): New pattern. + (lshiftrt, op2 > 8): New pattern. + + * a29k.md (logical patterns): Tune to give better code for immediate + values. + * a29k.c (cmplsrcb_operand): New predicate. + * a29k.h (PREDICATE_CODES): Add cmplsrcb_operand. + +Tue Jun 14 17:52:10 1994 Tor Egge (tegge@flipper.pvv.unit.no) + + * m88k/sysv3.h (DO_GLOBAL_CTORS_BODY): Call __builtin_alloca + with a non-zero argument, forcing a frame pointer to be needed. + +Tue Jun 14 17:37:41 1994 Mike Collison (collison@sw.stratus.com) + + * reload.h (RELOAD_FOR_OPADDR_ADDR): New reload class. + * reload.c (find_reloads): Change secondary reloads of class + RELOAD_FOR_OPERAND_ADDRESS to RELOAD_FOR_OPADDR_ADDR. + * reload1.c (reload): Process and accumulate needs for + RELOAD_FOR_OPADDR_ADDR reloads. + When determining if needs are nongroup needs, ignore + inactive or optional reloads. + (reload_reg_used_in_op_addr_reload): New variable to indicate + when reloads of class RELOAD_FOR_OPADDR_ADDR are in use. + (mark_reload_reg_in_use, clear_reload_reg_in_use): + Process reloads of class RELOAD_FOR_OPADDR_ADDR. + (reload_reg_free_p, reload_reg_free_before_p, reloads_conflict): Likewise. + (choose_reload_regs): Support RELOAD_FOR_OPADDR_ADDR reloads. + (emit_reload_insns): Output RELOAD_FOR_OPADDR_ADDR reloads. - * rtl.c (ftell): Declaration deleted. - -Mon Sep 14 15:17:09 1992 Michael Meissner (meissner@osf.org) - - * configure (arg processing): Add --with-stabs switch. - (all mips configurations, except decrose): If --with-stabs, use - the configuration file that emits stabs as the debug debug - configuration, rather than the native MIPS ECOFF format. - -Mon Sep 14 13:28:29 1992 Torbjorn Granlund (tege@jupiter.sics.se) - - * configure (option case statement): Index with `$next_arg' instead - of `next_arg'. Clean up order and indentation for switches. - (several places): Remove space around assignment `='. - (usage printing): Don't use `-n' for echo (SysV lossage). - Print config.status with `tail +2'. - -Mon Sep 14 23:46:19 1992 Paul Eggert (eggert@twinsun.com) - - * c-lex.c (yylex): Warn about integers so large that they are unsigned. - - * cexp.y (parse_number): Diagnose integer constants that are too large. - Diagnose duplicate `l' and `u' suffixes. Diagnose ` 0x ' and ` 0a '. - Warn about integer constants that are so large that they are unsigned. - -Mon Sep 14 10:26:34 1992 Charles Hannum (mycroft@hal.gnu.ai.mit.edu) - - * reload1.c (init_reload): Fix typo in last change. - -Mon Sep 14 01:17:58 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * reload1.c (init_reload): For reg+reg+const, try various regs. - -Sun Sep 13 01:08:06 1992 Paul Eggert (eggert@twinsun.com) - - * cexp.y (exp): Detect signed integer overflow. - Replace `(unsigned)' with `(unsigned long)'. When - evaluating << and >>, compute the correct answer without shifting - by more than HOST_BITS_PER_LONG, or by a negative quantity. - (integer_overflow, left_shift, right_shift): New functions. +Tue Jun 14 17:29:53 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Sun Sep 13 02:00:52 1992 Torbjorn Granlund (tege@jupiter.sics.se) - - * arm.md: Clean up indentation. - - * pa.c (output_load_address): Removed. Nothing uses it. - * pa.md (high:DI recognizer): Add return \"\". - * pa.md (sCC, bCC expanders): Remove constraints. - * pa.md (and-with-immediate optimizer): New pattern. - * pa.md (ior-with-immediate optimizer): New pattern. - * pa.c (consec_zeros_p, and_operand, ior_mask_p, ior_operand, - output_and, output_ior): New functions. - * pa.h (output_and, output_ior): Declare. - * pa.h (CONST_OK_FOR_LETTER_P): Add 'O' and 'P'. - * pa.c (compute_xdepi_operands_from_integer): New function. - Some code come from output_zdepi. - (output_zdepi): Removed. - (depi_cint_operand): New name for zdepi_operand. - * pa.md (adddi3): Extend to handle CONST_INT. - * pa.md (movstrsi): Change `!= 4' => `< 4' in test for alignment. - * pa.md (negsi2): Don't use @ for just one output template. - * pa.md (and-not patterns): Make them canonical. Put operands in - the right order. - * pa.md (casesi): Rewrite. Used to be buggy and slow. - * pa.md (several patterns): Make sure # of attribute alternatives - match # of constraint alternatives. - Return assembler output template instead of calling output_asm_insn. - Don't write to operands[n] for n >= max operand number in the - pattern, use xoperands instead. - -Sat Sep 12 15:06:57 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * regclass.c (record_reg_classes): - Ignore leading % when examining constraint. - Don't bypass usual cost computation when a pseudo "matches" - a non-pseudo in matching operands. - - * c-lex.c (yylex): If integer value overflows so highword is negative, - it needs unsigned long long. - -Fri Sep 11 21:09:53 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * sys-types.h (va_alist): Supply `int' as the type to define it as. - -Fri Sep 11 12:39:39 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * pa.md (non-[cf]branch define_delay): Use a single delay description - for the delay slots in "branch", "call", and "milli" insns. - (fbranch define_delay): fbranches have a single delay slot which - may be nullified when the branch is taken (regardless of direction - or distance to the target.) - (in_branch_delay attribute): Disallow fbranch insns explicitly. - (floating point branches): Use "fbranch" attribute for these insns. - Update output template to properly handle nullification. + * cccp.c, toplev.c, tree.c, print-tree.c, fold-const.c: + Cast pointer operands to bzero, bcopy, and bcmp to (char *). + * function.c, stmt.c, expmed.c, varasm.c, emit-rtl.c: Likewise. + * dbxout.c, integrate.c, jump.c, real.h, calls.c, cse.c: Likewise. + * loop.c, unroll.c, flow.c, stupid.c, combine.c, regclass.c: Likewise. + * local-alloc.c, global.c, reload.c, reload1.c, sched.c: Likewise. + * genattrtab.c, bc-emit.c, gcc.c, collect2.c: Likewise. + + * c-decl.c (min_precision): New function. + (finish_enum): Rewrite code to determine precision required + for enumeral type. + + * cse.c (simplify_unary_operation): Correctly and consistently + handle CONST_INT cases for FLOAT and UNSIGNED_FLOAT. + + * xm-alpha.h (sbrk): Don't declare here. + + * alpha.h (CONST_COSTS, case CONST_INT): Fix typo. + + * tree.c (staticp, case FUNCTION_DECL): A nested function isn't static. + + * i386/linux.h (STARTFILE_SPEC): Don't force -static for -g. + + * gcc.c (find_a_file): Try EXECUTABLE_SUFFIX first, then file + without the suffix. + + * jump.c (jump_optimize): Don't delete dead insn if it has a + REG_RETVAL note. + + * fix-header.c (xstrdup): Renamed from strdup. + (check_protection): Call xstrdup, not strdup. + +Tue Jun 14 17:26:08 1994 David Edelsohn (edelsohn@npac.syr.edu) + + * rs6000.h (TARGET_SWITCHES): Remove -mpowerpc64 and -mno-powerpc64. + * rs6000.c (rs6000_override_options): Remove MPC620 cpu variants. + + * rs6000.c (output_prolog): Fix error in loading size of large + stack frames. + +Tue Jun 14 17:24:09 1994 Chip Salzenberg (chip@fin.uucp) + + * reload1.c (reload_as_needed): Clear spill_reg_store at start. + (emit_reload_insns): Omit erroneous predicate of reload + deletion -- reload_spill_index is not indexed by regno. + +Tue Jun 14 15:59:55 1994 Ian Lance Taylor (ian@cygnus.com) + + * fixincludes: Wrap assert.h in extern "C" { } to avoid problem on + HP/UX, which uses NO_IMPLICIT_EXTERN_C. Also fix 12 May 94 + change. + +Tue Jun 14 15:12:50 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * jump.c (condjump_in_parallel_p): New function to detect + conditional jumps within PARALLEL insns. + (jump_optimize): Allow for some simple optimizations involving + conditional jumps within PARALLEL insns. + * reorg.c (get_jump_flags): Handle conditional jumps in PARALLEL + insns. + (get_branch_condition, fill_simple_delay_slots): Likewise. + (fill_eager_delay_slots, relax_delay_slots, dbr_schedule): Likewise. + + * pa-osf.h (SIZE_TYPE): Define as "long unsigned int" to be + compatable with system include files. + * pa1-osf.h (SIZE_TYPE): Likewise. + + * pa1-osf.h (WCHAR_TYPE): Define as "short unsigned int". + (WCHAR_TYPE_SIZE): Define as 16 bits. + + * pa.c (output_arg_descriptor): Restore old behavior for SImode + USE insns of FP registers (used by untyped call support). + +Mon Jun 6 09:15:43 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * arm.c (arm_reload_out_hi): Rewrite. Add support for processors + running in big-endian mode. + (fp_immediate_constant): Fix typo in argument declaration. + * arm.h (PROMOTE_MODE): Promote HImode integers as signed. + (BYTES_BIG_ENDIAN): Allow OS description to override default. + (LOAD_EXTEND_OP): When big-endian, HImode loads are sign extended. + * arm.md (storehi_bigend): New expansion pattern. + (storeinthi): Rework to generate better code, add big-endian support. + (movhi): Add support for processors running in big-endian mode. + (movhi_bigend): New expansion pattern. + (matcher for movhi): Remove incorrect alternative for storing HImode to + memory. Only match when little endian. + (matcher for big-endian movhi): New pattern. + (matchers/peepholes for extended pre/post increment HImode loads): Only + match when little-endian. + (matcher for operating on adjacent memory locations): Load operation + into arith operands. + (peepholes for extended pre-increment byte loads): New patterns. + +Sat Jun 4 21:06:29 1994 Kaveh R. Ghazi (ghazi@noc.rutgers.edu) + + * sys-types.h (__gnuc_va_list): Use instead of va_list. + * sys-protos.h (*): Use __gnuc_va_list, not va_list. + +Sat Jun 4 07:19:39 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * arm.c (print_multi_reg, output_call, output_call_mem, + output_mov_long_double_fpu_from_arm, + output_mov_long_double_arm_from_fpu, + output_mov_double_fpu_from_arm, output_mov_double_arm_from_fpu, + output_return_instruction, output_func_{prologue,epilogue}, + arm_print_operand, output_load_symbol): Print the register prefix + before each register name. + (output_func_prologue, output_lcomm_directive): Output the target + dependent comment char for asm comments. + * arm.h (FUNCTION_PROFILER): Delete duplicate definition. + (FUNCTION_PROFILER, TRAMPOLINE_TEMPLATE, ASM_FILE_START, + ASM_OUTPUT_REG_{PUSH,POP}, PRINT_OPERAND_ADDRESS): Output register + prefix before any explicit register name. + (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, + ASM_OUTPUT_COMMON): Output the target dependent comment char. + (ASM_FILE_START): Output register alias for r10. + (REGISTER_NAMES): Output "r9" now for r9, not "rfp". + (ADDITIONAL_REGISTER_NAMES): New macro. + * arm.md (all patterns explicitly mentioning register names): Output + the target dependent prefix before the register name. + (all patterns with asm comments): Output the target dependent comment + character. + +Fri Jun 3 18:14:07 1994 Doug Evans (dje@cygnus.com) + + * c-common.c (decl_attributes): Fix section attributes. + * varasm.c (make_decl_rtl): If section attribute is being ignored, + really ignore it. + +Fri Jun 3 15:53:57 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * pa.h (FP_REGNO_P): New macro for intra file usage. + (REGNO_OK_FOR_FP_P): Use FP_REGNO_P. + (FUNCTION_VALUE_REGNO_P): Revert last change. + * pa.md (mulsi3): Use MATCH_DUP for op3, not MATCH_OPERAND. + + * pa.h (CONDITIONAL_REGISTER_USAGE): Partially revert last changes; + Make non-existing 1.0 fp regs fixed, including odd-numbered regs. + (enum reg_class): Get rid of SNAKE_FP_REGS, GENERAL_OR_SNAKE_FP_REGS, + and NON_SHIFT_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (REGNO_REG_CLASS): Likewise. + (HARD_REGNO_MODE_OK): Corresponding changes. Don't force 1.0 fpregs + to even regno here; fixed_regs does the job better. + (FP_REG_CLASS_P): Get rid of SNAKE_FP_REGS. + (REG_CLASS_FROM_LETTER, case 'z'): Deleted. + (HARD_REGNO_NREGS): Partially revert last change. + (CLASS_MAX_NREGS): Partially revert last change. + * pa.md (globally): Delete 'x' constraint or change it to 'f', + as apropriate. + +Fri Jun 3 09:18:55 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * arm.h (CONST_OK_FOR_LETTER_P): Only allow constants that are valid + when inverted for 'K'. Only allow constants that are valid when + negated for 'L'. + * arm.md (all patterns): Update instruction generation to reflect new + meanings of constraints 'K' and 'L'. Use output type 'B' to + generate an inverted constant. Use output type 'N' to generate a + negated floating point constant. + +Thu Jun 2 22:43:58 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * pa.h (TARGET_SWITCHES): Enable TARGET_LONG_CALLS when + TARGET_PORTABLE_RUNTIME is enabled. + * pa.c (output_call): If TARGET_LONG_CALLS is enabled, then emit + an inline long-call sequence. + * pa.md (millicode define_delay): Disable delay slots if + TARGET_LONG_CALLS. + (call_internal_reg, call_value_internal_reg): If TARGET_LONG_CALLS + is enabled, then emit an inline long-call sequence. Fix length + computation for TARGET_LONG_CALLS. + (millicode calls): Fix length computation for TARGET_LONG_CALLS. + + * pa.h (ASM_DECLARE_FUNCTION_NAME): Fix typo. + +Thu Jun 2 18:28:07 1994 Jason Merrill (jason@deneb.cygnus.com) + + * stmt.c (expand_end_bindings): Don't bother emitting cleanups + after a barrier. + +Thu Jun 2 18:10:36 1994 Stephen L Moshier (moshier@world.std.com) + + * libgcc2.c (__floatdisf): Protect against double-rounding error. + +Thu Jun 2 17:47:54 1994 David Edelsohn (edelsohn@npac.syr.edu) + + * rs6000.h (MASK_PPCFPX): Delete. + (MASK_PPC_GPOPT, MASK_PPC_GFXOPT, TARGET_PPC_GPOPT, TARGET_PPC_GFXOPT): + New Macros. + (TARGET_SWITCHES): Remove -mpowerpc-fpx; add -mpowerpc-gpopt + and -mpowerpc-gfxopt. + * rs6000.c (processor_target_table): Use new macros. + * rs6000.md (define_function_unit): Remove ppc604 from sqrt list. + (divsi3, udivsi3): Remove spaces from PowerPC output templates. + (sqrtsf2, maxsf3, minsf3, sqrtdf2, maxdf3, mindf3): Use new macros. + (floatdidf2, fix_truncdfdi2, ffsdi2, muldi3): New patterns. + ({s,u}muldi3_highpart, divdi3, udivdi3, rotldi3): Likewise. + (movdi): Handle moves between FPRs and GPRs. + (scc insn): Correct swapped compare and delayed_compare attributes. + +Thu Jun 2 14:45:04 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * arm.c (arm_condition_code): Move to start of file. + (const_pool_offset): Correct typo. + (fp_const_from_val): New function. + (all instruction generators): mark position where conditionalization + should be with '%?'. + (output_move_double): Use new '%m' output type to simplify load/store + multiple generation. + (shift_instr): Delete. + (shift_op): New function. + (output_arithmetic): Delete. + (output_arithmetic_with_shift): Delete. + (output_arithmetic_with_immediate_multiply): Delete. + (output_shifted_move): Delete. + (output_shift_compare): Delete. + (arm_print_operand): New function. + * arm.h (output_func_{prologue,epilogue}): Change declarations from + output_{prologue,epilogue}. + (arm_output_llc, arithmetic_instr, + output_arithmetic_with_immediate_mulitply, + output_arithmetic_with_shift, shift_instr): Delete function + definitions. + (ASM_OUTPUT_OPCODE): Delete. + (PRINT_OPERAND): Call arm_print_operand, instead of doing it directly. + (ARM_COMMENT_CHAR): New macro. + (ARM_REG_PREFIX): New macro. + (ARM_SIGN_EXTEND): New macro. + (PRINT_OPERAND_ADDRESS): Delete variable 'shift'. Change type of + variable 'offset' to HOST_WIDE_INT. Use arm_print_operand to handle + shifts in addresses. + * arm.md (all output patterns): Use new capabilities of + arm_print_operand to simplify output sequences. Mark position of + condition code with '%?'. + + * riscix.h (ASM_FINAL_SPEC [CROSS_COMPILE]): Correct typo. + +Thu Jun 2 08:14:00 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-common.c (c_build_type_variant): Don't change TYPE_MAIN_VARIANT + of new type. + + * expr.c (expand_expr, case ADDR_EXPR): If result is ignored, + just return const0_rtx. + +Wed Jun 1 13:52:01 1994 Jason Merrill (jason@deneb.cygnus.com) + + * i386/sco4.h: #define NO_IMPLICIT_EXTERN_C. + +Wed Jun 1 04:55:06 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * arm.c: General tidy up. + #include . + Declare some prototypes. + (output_memory_reference_mode): Change type to enum machine_mode. + (arm_const_nmoves): Delete. + (adjacent_mem_locations, {load,store}_multiple_operation): Explicitly + declare to return int. + ({load,store}_multiple_operation): Change type of 'count', 'base' and + 'i' to HOST_WIDE_INT. + (output_add_immediate): Change type of 'n' to HOST_WIDE_INT. + (output_multi_immediate): Change type of Argument 'n' to + HOST_WIDE_INT, if wider than 32 bits, mask out the high bits. + (output_arithmetic_with_immediate_multiply): Change type of 'shift' + to HOST_WIDE_INT. + (output_func_{prologue,epilogue}): Renamed from + output_{prologue,epilogue}. Check all registers to see if they are + live, but only push/pop them if they are not in call_used_regs. + * arm.h: Delete some dead code. + (FUNCTION_{PROLOGUE,EPILOGUE}): Call output_func_{prologue,epilogue}. + (INITIAL_ELIMINATION_OFFSET): Inspect all registers, but only add + those that are not in call_used_regs. + (GO_IF_LEGITIMATE_INDEX): Change type of variable 'range' to + HOST_WIDE_INT; change type of variable 'code' to enum rtx_code. + (REVERSIBLE_CC_MODE): New macro. + + * arm.c (const_pool_offset): New function. + (get_prologue_size): New function. + (output_func_prologue): Eliminate variable code_size. + (output_func_epilogue): Only call arm_increase_location when + optimizing; also add the size of the function just compiled, and the + size of the prologue. + (arm_output_asm_insn): Delete. All callers changed to use + output_asm_insn. + (arm_output_llc): Delete. + (output_load_symbol): New first parameter 'insn'. Rewrite so that + assembler can detect whether we made a mistake. + * arm.h (arm_output_asm_insn): Delete declaration. + (EXTRA_CONSTAINT): New constraint 'R' to match a constant pool label. + Make constraint 'S' never match when not optimizing. + (CONSTANT_ADDRESS_P): Only accept symbols marked with SYMBOL_REF_FLAG + when optimizing. + (ENCODE_SECTION_INFO): Don't mark any symbols when not optimizing. + (ASM_OUTPUT_REG_{PUSH,POP}: Don't call arm_increase_location. + (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + * arm.md (all insn and peephole patterns): Rewrite without using + arm_output_asm_insn. + (matcher for movsi): New alternative to load symbol directly into a + register. Add new parameter in call to output_load_symbol. + + * arm.md (all patterns): Length attribute now describes length in + bytes. + * arm.c (short_branch): Convert length calculations to bytes. + +Tue May 31 20:35:39 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * pa.c (emit_move_sequence): Add missing argument to symbolic_operand. + (output_block_move): Prefer addl to add. + (print_operand): Print fp regs with L suffix when appropriate. + (output_arg_descriptor): Rewrite to accomodate new convention for + USE information. + + * pa.h (SECONDARY_MEMORY_NEEDED): Simplify. + (ADDITIONAL_REGISTER_NAMES): Define. + (CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM fixed + again. + + Changes to combine fp registers for 1.0 and 1.1 architectures. + (Make explicit clobbers of fp registers work.) + * pa.h (FIRST_PSEUDO_REGISTER): Now 89. + (FIXED_REGISTERS): Delete 1.0 fp registers, + (CALL_USED_REGISTERS): Likewise. + (CONDITIONAL_REGISTER_USAGE): Almost deleted. + (REG_ALLOC_ORDER): Update register numbers. + (HARD_REGNO_NREGS): Delete special case for 1.0 fp registers. + (HARD_REGNO_MODE_OK): Rewrite. Don't allow use of odd fp registers + (enum reg_class): Delete HI_SNAKE_FP_REGS and FP_OR_SNAKE_FP_REGS. + (REG_CLASS_NAMES): Corresponding change. + (REG_CLASS_CONTENTS): Delete HI_SNAKE_FP_REGS and + FP_OR_SNAKE_FP_REGS. Make SNAKE_FP_REGS class contain all fp + registers. Update all values for changed register numbering. + (REGNO_REG_CLASS): Corresponding changes. + (REG_CLASS_FROM_LETTER): Delete 'y'. + (FP_REG_CLASS_P): No longer test HI_SNAKE_FP_REGS. + (CLASS_MAX_NREGS): Delete special case for 1.1 fp registers. + (FUNCTION_VALUE): Remove TARGET_SNAKE conditionals. + (LIBCALL_VALUE): Likewise. + (FUNCTION_ARG_REGNO_P): Likewise. + (FUNCTION_VALUE_REGNO_P): Likewise. Add registers 29 and 33. + (FUNCTION_ARG): Remove TARGET_SNAKE conditionals. Update register + numbers. + (REGNO_OK_FOR_FP_P): Update register number. + (REGISTER_NAMES): Delete special entries for 1.0 fp registers. + (DBX_REGISTER_NUMBER): Likewise. + * pa.c (compute_frame_size): Update for changed register numbers. + Simplify loops over general registers to stop at register 4. + (hppa_expand_prologue): Likewise. + (hppa_expand_epilogue): Likewise. + +Tue May 31 19:32:18 1994 Jim Wilson (wilson@cygnus.com) + + * mips.md (movesi_unaligned, movsi_ulw, movsi_usw): Delete. + (extv, extzv, insv, movsi_ulw, movsi_usw): New patterns. + + * dbxout.c (dbxout_type): Always emit cross-references if + use_gnu_debug_info_extensions set. + + * final.c (output_source_line): Call xcoffout_source_line. + * xcoffout.c (xcoff_lastfile): New variable. + (ABS_OR_RELATIVE_LINENO, ASM_OUTPUT_SOURCE_LINE): Define here. + (xcoffout_source_file, xcoffout_source_line): New functions. + (xcoffout_declare_function): Use xcoffout_source_file. + * xcoffout.h (xcoff_lastfile): Declare. + (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Clean up. Set xcoff_lastfile. + (ABS_OR_RELATIVE_LINENO, ASM_OUTPUT_SOURCE_LINE): Delete here. + (DBX_OUTPUT_SOURCE_FILENAME): Delete. + + * unroll.c (copy_loop_body): Copy CALL_INSN_FUNCTION_USAGE field. + + * sparc.h (ASM_SPEC): Don't pass -k when -pg or -p given. + (OVERRIDE_OPTIONS): Warn when disabling -fpic. + + * mips-tdump.c (print_global_hdr): Remove "l" from printf format + for flags. + (print_sym_hdr): Add missing "l" to printf formats. + (print_symbol, print_file_desc): Likewise. + + * i960.h (PUT_SDB_TYPE): Adjust value for compatibility with GNU960 + toolchain. + + * sparc.h (LIB_SPEC): Don't link in /usr/lib/bb_link.o with -a. + (CONDITIONAL_REGISTER_USAGE): When -a, make %g1 and %g2 fixed. + + * mips/iris5gas.h, mips/iris5gdb.h: New files. + * configure (mips-sgi-irix5): Use iris5gas.h and iris5gdb.h. + +Tue May 31 19:21:44 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * pa.md (movsi matcher): Use ldi for moving of 0 to a reg. + (movhi matcher): Likewise. + (movqi matcher): Likewise. + (many patterns): Prefer addl to add, and shNaddl to shNadd. + (define_split for (plus (reg) (large_constant))): Cleanup. + (divsi3): Use match_dup for operand 3, not match_operand. + (udivsi3): Likewise. + (modsi3): Likewise. + (umodsi3): Likewise. + +Tue May 31 19:15:31 1994 Doug Evans (dje@cygnus.com) + + * toplev.c (v_pedwarn_with_decl): Don't even issue warnings from + pedantic errors in system header files. + +Tue May 31 17:16:41 1994 David Edelsohn (edelsohn@npac.syr.edu) + + * rs6000.md (extendqidi2, extendqisi2, extendqihi2): Remove + non-existent lba instruction. + (ashrdi3): Undo previous change. + +Tue May 31 12:30:00 1994 Jason Merrill (jason@deneb.cygnus.com) + + * toplev.c (lang_options): Add -f{no-,}implicit-templates. + (compile_file): Don't output SDB debugging info for + externals. + +Tue May 31 07:20:18 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stmt.c (expand_asm_operands): Make MEM with BLKmode for clobber + of "memory". + * loop.c (note_addr_stored): A SET or CLOBBER of a BLKmode MEM means + that all memory is clobbered. + +Mon May 30 14:01:48 1994 Doug Evans (dje@cygnus.com) + + * gcc.c (default_compilers): Pass -MG to cpp if present. + (option_map): New option --print-missing-file-dependencies/-MG. + * cccp.c (print_deps_missing_files): New global. + (main): New argument -MG. Treat missing include files as + generated files and output dependencies for them. + +Mon May 30 10:42:14 1994 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) + + * m68k/dpx2cdbx.h (PREFERRED_DEBUGGING_TYPE): Define as SDB_DEBUG. + * m68k/dpx2g.h: Disable code that manages gcc.ifile. + +Mon May 30 10:35:49 1994 Stephen L Moshier (moshier@world.std.com) + + * optabs.c (expand_float): Avoid double-rounding when float is + is narrower than int. + * real.c (significand_size): New function. + * real.h (significand_size): Declare. + +Sun May 29 15:58:21 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * jump.c (jump_optimize): When deleting unneeded stack adjusts + or mem-mem copies, use delete_computation. + + * combine.c (force_to_mode): NEXT_SELECT is true for NEG. + Only exit quickly if X is narrower than MODE and MASK has all + bits in X's mode set. + (force_to_mode, case SUBREG): Don't check for WORD_REGISTER_OPERATIONS. + (force_to_mode, case NEG): Special-case test for low-order bit. + + * rtlanal.c (volatile_insn_p): Call ourselves in recursive scan. + +Sat May 28 19:03:23 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (init, compstmt, stmt, all_iter_stmt_with_decl): + If the lookahead token is a constant and we need to pop the + momentary obstack, don't free it. + + * stmt.c (expand_end_case): Have INDEX_TYPE track conversions done + to INDEX_EXPR. + +Sat May 28 06:25:40 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * pa.md (call): Force address into register in non-symbol case. + (call_value): Likewise. + +Fri May 27 19:29:30 1994 Doug Evans (dje@cygnus.com) + + * toplev.c (compile_file): Call init_regs after `word_mode' is valid. + * regclass.c (init_reg_modes): If choose_hard_reg_mode can't find a + valid mode, fall back to word_mode. + + * expr.c (use_reg): Fix recording of USE information. + (use_regs): Likewise. + Delete argument `reg'. All callers changed. + * expr.h (use_regs): Update prototype. + * calls.c (expand_call): Update call to use_regs. Call use_reg + if parm is wholly in registers. + + * configure: If compiling in separate dir, add subdirs to .gdbinit. + +Fri May 27 18:18:23 1994 David Edelsohn (edelsohn@npac.syr.edu) + + * rs6000.md (zero_extendqidi2, zero_extendhidi2): Use rldicl + instruction. + * rs6000.h (RTX_COSTS): Update PPC603 and PPC604 values. + +Fri May 27 17:56:07 1994 Douglas Rupp (drupp@cs.washington.edu) + + * i386/xm-dos.h (DIR_SEPARATOR): New macro. + +Fri May 27 17:45:08 1994 Holger Teutsch (teutsch@ffm-iw.Degussa.DE) -Fri Sep 11 10:34:45 PDT 1992 Ron Guilmette (rfg at netcom.com) + * clipper.h (PCC_STATIC_STRUCT_RETURN): No longer defined. - * c-decl.c (duplicate_decls): For file-scope redefinitions, - error message distinguishes previous definitions from mere decls. +Fri May 27 17:36:53 1994 Pat Rankin (rankin@eql.caltech.edu) -Fri Sep 11 01:07:11 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * make-l2.com: Update to handle `ginclude' subdirectory + when compiling libgcc2. - * c-convert.c (convert_to_integer): Don't pass truncation thru lshift - if shift count >= width of narrower type. Instead, just use 0. +Fri May 27 17:30:37 1994 Matthias Pfaller (leo@marco.de) + + * ns32k.c (print_operand_address): print_operand_address + creates PLUS-rtls for internal use, so it has to handle them. - * we32k.h (SIZE_TYPE): Defined. +Fri May 27 16:13:53 1994 Chris Torek (torek@elf.bsdi.com) -Fri Sep 11 00:03:45 1992 Paul Eggert (eggert@twinsun.com) + * function.c (assign_parms): Set REG_USERVAR_P when parm + is passed by invisible reference but can live in register. - * c-decl.c (finish_struct): Don't assume that a target integer - fits in a HOST_WIDE_INT when checking bit-field widths. - * c-typeck.c (build_binary_op): Likewise, when checking shift widths. +Fri May 27 06:03:11 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Thu Sep 10 22:23:10 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * reload.c (find_reloads): Revert to old code and change secondary + reloads to RELOAD_FOR_OPERAND_ADDRESS too. - * optabs.c (expand_binop): - Convert op1 of shift libcall to word_mode. + * combine.c (try_combine): Don't make complemented XOR for + constant out of range. -Thu Sep 10 18:14:36 1992 Tim Moore (moore@defmacro.cs.utah.edu) + * alpha.c (or_operand): Renamed from ior_operand. + * alpha.h (PREDICATE_CODES): Likewise. + * alpha.md (iordi3): Likewise. + (xordi3): Use or_operand and add second alternative. + (eqv): Only accept registers. - * final.c (shorten_branches): Do shorten branches with delay slots - if the number of delay slots is constant. - * genattrtab.c (write_const_num_delay_slots): New function; - creates const_num_delay_slots (). - (main): Call it. - * genattr.c (main): Write declaration for const_num_delay_slots (). + * expr.c (expand_expr, case CONSTRUCTOR): If constant and large + enough for memcpy to be used, build constructor into static memory. -Thu Sep 10 17:33:42 1992 Michael Meissner (meissner@osf.org) + * alpha.md: Add define_split for sign-extended PLUS of a MULT + of an SImode comparison. - * mips.md (all move patterns): Do not allow memory to memory or - non-zero constant to memory moves to be generated, which causes - reload to generate the load/store using spilled registers, and - does not allow for efficient CSE or scheduling to be done. + * combine.c (simplify_comparison): Narrow comparison for AND's + that are ZERO_EXTENDs. + Can widen for all comparisons if inputs are both sign extended. - * dec-gosf1.h, iris4g.h: New files. + * reload1.c (reload_as_needed): Update spill_reg_order once we sort + spill_regs. -Thu Sep 10 12:46:17 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * alpha.md: Add define_split for sign-extended PLUS of an SImode + comparison; change comparison to DImode. - * pa.md (casesi): Add `&' to constraint for clobber operand. + * stmt.c (expand_end_case): Use old type of INDEX_EXPR when making + a constant. - * optabs.c (expand_binop): Fix typo, `mode' => `methods'. + * local-alloc.c (requires_inout): Renamed from requires_inout_p and + returns number of alternatives that require a match. + (block_alloc): Use new function and handle case where all + alternatives have some operand that must match operand 0. -Thu Sep 10 00:21:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * local-alloc.c (qty_phys_num{,_copy}_sugg): New variables. + (qty_phys_has{,_copy}_sugg): Deleted. + (qty_sugg_compare{,_1}): New functions. + (local_alloc): Allocate and init new vars instead of deleted ones. + (block_alloc): Update and use new vars. + Order quantities using new functions when allocating quantities + with suggested registers. + (combine_regs, find_free_reg): Use new vars to count number + of suggestions. - * optabs.c (expand_binop): Delete #ifdef GPC; complex code now uncond. +Thu May 26 11:55:44 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * optabs.c (init_fixtab): Fix typo for fix_truncdfqi2. + * jump.c (jump_optimize): When looking for an `if' statement + that takes two insns to compute a result using a temporary, + allow the temporary to be a SUBREG. -Wed Sep 9 13:25:53 PDT 1992 Ron Guilmette (rfg at netcom.com) + * combine.c (simplify_comparison): Call CANONICALIZE_COMPARISON, + if defined. + * alpha.h (CANONICALIZE_COMPARISON): New macro. - * c-common.c (declare_function_name): Allow for anonymous function. + * combine.c (simplify_if_then_else): Don't make (mult (cond)) + in simple case; leave as IF_THEN_ELSE instead. -Wed Sep 9 15:56:09 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expmed.c (expand_divmod): Correctly set CAN_CLOBBER_OP0 when we've + converted OP0 to COMPUTE_MODE. - * Makefile.in (mostlyclean): Delete xlimits.h. +Thu May 26 11:41:58 1994 Ian Lance Taylor (ian@cygnus.com) - * final.c (output_addr_const): - If 2nd arg of MINUS is negative integer, put it in parens. + * fixincludes: Protect bool in curses.h with #ifndef __cplusplus, + since g++ now defines bool as a basic type. -Wed Sep 9 10:10:30 1992 Michael Meissner (meissner@osf.org) + * fixinc.svr4: Protect definition of __P used in Solaris math.h + and floatingpoint.h to avoid future fixproto conflicts. - * va-mips.h (va_arg): Handle structures larger than 8 bytes. - (all macros): Put __ in front of all macro arguments. + * Makefile.in (stmp-fixinc): Don't pass ${srcdir} argument to + $(FIXINCLUDES); no longer needed, and always problematical for + binary only installations. + * fixincludes: Remove initialization of ${SRCDIR}. Don't + explicitly copy over multimedia/audio_errno.h; should be handled + by Oct 11, 1993 change. + * fixinc.svr4: Remove initialization of ${SRCDIR}. + * fixinc.sco, fixinc.dgux: Likewise. -Wed Sep 9 00:45:02 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri May 20 12:48:24 1994 Jim Wilson (wilson@cygnus.com) - * sol2-crt1.asm (.nope): Really store into environ. + * stmt.c (expand_exit_loop_if_false): Emit conditional jump around + unconditional loop exit instead of conditional loop exit. - * libgcc2.c (__gcc_bcmp): New function, in cond on L__gcc_bcmp. - * Makefile.in (LIB2FUNCS): Add L__gcc_bcmp. + * rs6000.c (output_prolog): Use multiple fputs calls instead of + one call with multiple strings. - * expr.c (expand_expr): Support IN_EXPR. + * iris4.h (STARTFILE_SPEC, LIB_SPEC): Define. -Tue Sep 8 20:04:43 1992 Paul Eggert (eggert@twinsun.com) + * xcoffout.c (MAKE_LINE_SAFE): Delete. + (ASM_OUTPUT_LBB, ASM_OUTPUT_LBE): Don't use MAKE_LINE_SAFE. - * c-convert.c (convert_to_integer): When optimizing LSHIFT_EXPR and - RSHIFT_EXPR, do compares at tree level. +Fri May 20 01:18:30 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * tree.c (build_index_type, build_index_2_type): Don't pass - HOST_WIDE_INT to routine expecting an int. Don't pass negative - value even if hash code is INT_MIN. + * config.sub (basic_machine): Accept cxux*. -Tue Sep 8 17:35:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu May 19 19:12:41 1994 Mike Stump (mrs@cygnus.com) - * dbxout.c (dbxout_type_fields): Handle nameless subrecords for Pascal. - (dbxout_type): Handle CHAR_TYPE, BOOLEAN_TYPE. FILE_TYPE, SET_TYPE. + * calls.c (expand_call): Only destroy temps here, if -fshort-temps + is given. - * news.h (ASM_OUTPUT_OPCODE): Deleted. +Thu May 19 19:07:59 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * c-parse.y (stmt): In for stmt, put proper lineno before increment. - Don't call position_after_white_space. + * config.sub: Fix unrecognized os error message. -Tue Sep 8 06:31:17 1992 Michael Meissner (meissner@osf.org) +Thu May 19 17:46:55 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-typeck.c (constant_print_warning): Deleted. + * reload1.c (emit_reload_insns): When seeing if an equivalent + register can have it's output reload deleted, check for REG_DEAD + notes for reload_in instead of calling dead_or_set_p. -Tue Sep 8 05:26:19 1992 Mike Stump (mrs@hal) +Thu May 19 16:38:32 1994 Stephen L Moshier (moshier@world.std.com) - Tue Aug 18 23:56:16 1992 Ron Guilmette (rfg at netcom.com) + * emit-rtl.c (operand_subword): Fix arg of REAL_VALUE_TO_TARGET_SINGLE + and .._DOUBLE. Permit float subword extraction when host's word + width is wider than target's. - * tree.h (BINFO_VPTR_FIELD): Added to support debugging - information about virtual base class pointers. +Thu May 19 15:09:21 1994 Ian Lance Taylor (ian@cygnus.com) -Mon Sep 7 19:39:45 1992 Brendan Kehoe (brendan@cygnus.com) + * fixincludes: Make OSF/1 getopt.h fix work on AIX also. - * c-typeck.c (constant_print_warning): Deleted. - * c-common.c: Moved here. +Wed May 18 15:34:10 1994 Jason Merrill (jason@deneb.cygnus.com) -Mon Sep 7 17:03:07 1992 Paul Eggert (eggert@twinsun.com) + * fixincludes: Add forward declaration of struct exception to + SunOS 4 math.h. - * fold-const.c (fold): Check abs for constant integer overflow. +Wed May 18 12:46:46 1994 Per Bothner (bothner@kalessin.cygnus.com) -Mon Sep 7 01:31:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * stor-layout.c (layout_decl): Allow any integral types + for bit fields. (Specifically, C++ now has a 'bool' type.) - * c-common.c (check_case_value): Call constant_expression_warning. +Wed May 18 16:32:40 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cse.c (simplify_binary_operation): For DIV by 0, do nothing. + * reload1.c (compare_spill_regs): Fix typo in declaration. - * c-decl.c (duplicate_decls): Set DECL_INLINE in newdecl - so it is copied into olddecl. +Wed May 18 10:39:00 1994 Brendan Kehoe (brendan@lisa.cygnus.com) -Sun Sep 6 08:53:46 1992 Fred Fish (fnf at fishpond) + * fixinc.svr4: Avoid the SVR4 typedef of bool in curses.h when + compiling for C++, since g++ now supports it as an official typename. - * m68k.md (fsglmul pattern): If FSGLMUL_USE_S, opcode has .s, not .x. - * amix.h (FSGLMUL_USE_S): Defined. +Tue May 17 18:06:32 1994 Matthias Pfaller (leo@marco.de) -Sun Sep 6 17:42:33 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) + * ns32k.md: Don't use the extsd/extd instructions on the ns32532. - * pa.md (indirect_jump): Annul the next instruction if the delay - slot could not be filled instead of emitting a nop. +Tue May 17 17:44:38 1994 Pat Rankin (rankin@eql.caltech.edu) - * pa.c (output_function_prologue): Undo Aug. 13 change. - If profiling, then this function makes calls. Reflect this in - CALLINFO. - (output_function_epilogue): If profiling, then be restore "rp" here. + * make-cc1.com (CFLAGS): Separate include file handling; for + stage 1, CFLAGS1 is appended to CFLAGS, otherwise CFLAGS2. - * pa.md (use_milli_regs attribute): Deleted, not necessary anymore. - All references deleted. - * pa.c (use_milli_regs): Deleted. +Tue May 17 16:35:22 1994 Jason Merrill (jason@deneb.cygnus.com) -Sun Sep 6 17:11:00 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * convert.c (convert_to_real): Accept boolean values. - * arm.h (MOVE_MAX): Define as 4. + * config/m68k/hp320.h: #define NO_IMPLICIT_EXTERN_C - * ns32k.c (hard_regno_mode_ok): Don't abort if unknown mode, - return 0 instead. Declare argument MODE as `enum machine_mode'. +Tue May 17 15:52:05 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * i860.h (HARD_REGNO_MODE_OK): Allow BLKmode. + * libgcc2.c (__umoddi3): Correct type of variable `w'. -Sun Sep 6 16:57:12 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * combine.c (simplify_set): Move call to make_field_assignment + to end; if SRC or DEST is a (clobber (const_int 0)), return it. + (force_to_mode): If X is a CALL, just return it. - * expr.c (init_expr_once): Don't try HARD_REGNO_MODE_OK on VOIDmode - or BLKmode. + * reload.c (find_reloads): Properly account for cost when + constant is forced to memory to ensure same alternative chosen later. -Sun Sep 6 14:27:57 1992 Michael Meissner (meissner@osf.org) +Tue May 17 11:30:19 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * cp-typeck.c (constant_expression_warning): New fn from c-typeck.c. + * combine.c (simplify_set): Use rtx_equal_p to compare cc_use and its + setter. + (make_extraction): Don't put a subreg around a register if it is + already in the correct mode. -Sun Sep 6 09:11:46 PDT 1992 Ron Guilmette (rfg at netcom.com) + * reload1.c (compare_spill_regs): New function. + (reload_as_needed): Sort the spilled regs. + (allocate_reload_reg): If we have group needs and failure would be + fatal, do not try to do round-robin allocation of the spill regs. - * c-decl.c (duplicate_decls): Don't set DECL_EXTERNAL in olddecl. - Preserve DECL_UID of olddecl. +Mon May 16 18:58:10 1994 David Edelsohn (edelsohn@npac.syr.edu) -Sun Sep 6 03:37:21 1992 James Van Artsdalen (james at bigtex.cactus.org) + * rs6000.md (zero_extendqidi2): Fix omission of TARGET_POWERPC64 + test in previous change. - * i386.md (cmpstrsi): Rewrite expander to handle operands correctly. +Mon May 16 14:59:25 1994 Per Bothner (bothner@cygnus.com) -Sat Sep 5 22:55:53 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * dbxout.c (dbxout_type): When emitting an ENUMERAL_TYPE, if + the precision is different from the default precision (perhaps + because of -fshort-enums), write out the precision. - * combine.c (try_combine): Make change missing from last modification - to splitting code. +Mon May 16 17:44:49 1994 Stephen L Moshier (moshier@world.std.com) -Sat Sep 5 19:21:03 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * real.c (ereal_from_int, ereal_to_int, etarsingle): Correct + signed/unsigned discrepancies. + (ereal_from_double): Avoid "right shift count too big" warning + in previous change. + * final.c (split_double): Fix arg of REAL_VALUE_TO_TARGET_DOUBLE. - * stor-layout.c (layout_type): Caller must give size of FILE_TYPE. + * real.h (REAL_VALUE_FROM_TARGET_SINGLE, .._DOUBLE): Change + arg from long to HOST_WIDE_INT. + * real.c (ereal_from_float, .._double): Likewise, and unpack + the HOST_WIDE_INTs. -Sat Sep 5 16:34:50 1992 Torbjorn Granlund (tege@jupiter.sics.se) +Mon May 16 16:16:32 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * arm.c (before functions): Remove xmalloc decl. - (arm_asm_output_label): Cast value from xmalloc. + * flow.c (try_pre_increment_1): Don't try to create a pre-increment + expression if the register dies in the succeeding insn. - * arm.md (storehi): Use match_operand for operand 0. - Use gen_lowpart to change mode of operand 0. - (storeinthi): Use match_operand for operand 0. - Change output code to reassign operand 0. - (truncsihi2, truncsiqi2, trunchiqi2): Remove these patterns. + * expr.c: Use #ifdef TARGET_EDOM, not #if. -Sat Sep 5 02:39:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expr.c (convert_move): When {zero,sign}_extending, allow a wider + intermediate than to_mode if truncation is a no-op. - * news.h (ASM_OUTPUT_OPCODE): Defined. +Mon May 16 11:49:28 1994 Doug Evans (dje@cygnus.com) -Sat Sep 5 18:52:21 1992 Jukka Virtanen (jtv@kampi.hut.fi) + * m68k/apollo68.h (REGISTER_PREFIX_MD): Delete. - * stor-layout.c (layout_type): Handle BOOLEAN_TYPE, CHAR_TYPE, - and FILE_TYPE for Pascal. - (fixup_signed_type): New function. +Mon May 16 08:11:57 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * optabs.c (init_optabs): Use __gcc_bcmp, not real bcmp. - (expand_unop): Handle NEG for complex modes. - (expand_binop): Likewise. - (expand_complex_binop): New function. + * rs6000.c (rs6000_convert_preincs): Delete. + * rs6000.h (FINAL_PRESCAN_INSN): Delete. - * expr.c (emit_move_insn): When moving word by word, - mark the whole thing as a libcall block. - (group_insns): New function. - (expand_expr): - Implement COMPLEX_EXPR, REALPART_EXPR, IMAGPART_EXPR, CONJ_EXPR. + * c-typeck.c (initializer_constant_valid_p): Rework to use + precision, not size. + Allow conversions from integer to pointer if int is wide enough. - * print-tree.c (print_node): Handle BOOLEAN_TYPE and CHAR_TYPE. - * emit-rtl.c (gen_highpart): New function. + * c-decl.c (finish_enum): Handle VALUES being an ERROR_MARK. -Fri Sep 4 23:20:59 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * rs6000.md: Replace bogus "andil" opcode with rlinm. - * i860.md (mulsi3_big): Use low half of result. - Use offset 1 in subregs in actual fmlow insn. - (fmlow pattern): Split this into alternatives for big and little end. +Sat May 14 21:26:05 1994 Doug Evans (dje@cygnus.com) - * regclass.c (record_reg_class): For matching operands, handle - case where the earlier one is not a pseudo like the case - where the later one is not a pseudo. + * hard-reg-set.h (GO_IF_HARD_REG_EQUAL): Fix typo. -Fri Sep 4 17:24:11 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * jump.c (find_cross_jump): Two CALL_INSNs only compare equal if + their CALL_INSN_FUNCTION_USAGEs are the same as well. - * pa.c (output_move_double): Use %R to store at auto-incr/decr - addr. Split incr and decr cases for store. + * stupid.c (stupid_life_analysis): Make sure a function result reg + is still live if it contains an argument. -Fri Sep 4 03:49:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri May 13 22:17:48 1994 Doug Evans (dje@cygnus.com) - * gcc.c (main): No program should return the error_count! - Return 2 if failure due to signal, 1 if just errors. - (execute): Increment signal_count. + * reorg.c (mark_referenced_resources): Fix typo. - * move-if-change: Undo previous change. +Fri May 13 18:54:38 1994 Jason Merrill (jason@deneb.cygnus.com) - * c-decl.c (grokparms): Copy arg type list to savable obstack if nec. + * integrate.c (integrate_decl_tree): Use copy_node to make a copy + of the decl. Also call copy_lang_decl to copy the + language-specific bits. + * tree.h: Declare copy_lang_decl. + * c-decl.c (copy_lang_decl): No-op function that will never + actually be called. -Fri Sep 4 19:40:32 1992 Paul Eggert (eggert@twinsun.com) +Fri May 13 15:12:20 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * c-typeck.c (constant_expression_warning): Now works; - it reports signed integer overflow in constant expressions, + * cse.c (cse_insn): Correctly check for two modes being the + same number of words. - * fold-const.c (left_shift_overflows, same_sign, overflow_sum_sign): - New macros. - (add_double, div_and_round_double, lshift_double, mul_double, - neg_double, const_binop, fold): Check for signed integer overflow. - Propagate overflow flags from operands to result. - (const_binop, fold_convert): Use pedwarn for overflow warnings. - Say `constant expression', not `constant folding', for user's sake. +Fri May 13 05:03:51 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) -Thu Sep 3 22:28:41 1992 Brendan Kehoe (brendan@mole.gnu.ai.mit.edu) + * c-parse.in (enumlist): Add error alternative. - Complete 12th Cygnus<-->FSF merge. +Thu May 12 23:25:38 1994 Jason Merrill (jason@deneb.cygnus.com) - Thu Sep 3 12:29:24 1992 Brendan Kehoe (brendan@cygnus.com) + * c-common.c (truthvalue_conversion): If expr is a BIT_AND_EXPR + where one of the operands is integer_onep, just return expr. - These changes are propagated from changes to c-*.c. +Thu May 12 20:08:49 1994 Mike Stump (mrs@cygnus.com) - Mon Aug 17 16:28:48 1992 Chip Salzenberg (chip@tct.com) + Fixup lifetime of temporaries. - * cp-decl.c (finish_function): Test only can_reach_end for the - warning about reaching the end of a non-void function. - (grokdeclarator): When promoting an argument, retain unsignedness - if traditional or if promoted type is not really getting wider. + * calls.c (expand_call): Only destroy temporaries at the end + of function calls, if flag_short_temps is set. + * expr.c (safe_from_p, expand_expr): Handle CLEANUP_POINT_EXPRs. + * expr.c (expand_expr): Improve handling of temporaries inside + COND_EXPRs, cures call to sorry. + * expr.c (defer_cleanups_to): New routine to handle the deferral + of cleanups. + * flags.h (flag_short_temps): New flag, to allow better control + over the lifetime of temporaries. + * toplev.c (flag_short_temps, lang_options): Ditto. + * tree.def (CLEANUP_POINT_EXPR): Add, to allow better control over + the lifetime of temporaries. - * cp-parse.y (datadef): For empty declaration, use pedwarn. +Thu May 12 19:33:54 1994 David Edelsohn (edelsohn@npac.syr.edu) - Mon Aug 17 17:08:11 1992 Chip Salzenberg (chip@tct.com) + * rs6000.md (function units): Numerous cycle count change. + (zero_extendqidi2, extendqidi2, zero_extendhidi2): New patterns. + (extendhidi2, zero_extendsidi2, extendsidi2): Likewise. + (zero_extendqisi2, zero_extendqihi2, zero_extendhisi2): Use + andil/andi instead of rlinm/rlwinm. + (zero_extendqihi2): Add condition register variants. + (extendqisi2, extendqihi2): Use extsb for PowerPC. + (adddi3, subdi3, negdi2, ashrdi3): Emulate only if !TARGET_POWERPC64. + (movdf, movdi, movti): New PowerPC64 versions. + (load/store with update): New PowerPC64 patterns. - * cp-cvt.c (convert): When converting to variant of same type, fold. +Thu May 12 18:50:55 1994 Stephen L Moshier (moshier@world.std.com) - Wed Aug 19 16:58:41 1992 Chip Salzenberg (chip@tct.com) + * real.c (m16m): Change first arg to int; all callers changed. - * cp-typeck.c (default_conversion): Convert enumeral types to - appropriate _signed_ type unless -traditional. +Thu May 12 18:46:26 1994 Bill Cox (bill@cygnus.com) - Tue Aug 4 13:11:36 1992 Chip Salzenberg (chip@tct.com) + * fixincludes: Add definition of DBL_MAX to math.h for Lynx math.h. + Correct return type of strlen in Lynx string.h. + Delete definition of 'void' as 'int' from Lynx curses.h. - * cp-cvt.c (convert): If main variants match, - but the type is not identical, make a NOP_EXPR. +Thu May 12 18:11:33 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl.c (warn_redundant_decls): Declared. - (duplicate_decls): Optionally warn about redundant declations. - (pushdecl): Never reuse global fcn decl in place of local extern; - just copy some info from it. - (init_decl_processing): __builtin_saveregs returns void *. - (store_parm_decls, finish_function, start_method, finish_method): - Compare TYPE_MAIN_VARIANT against void_type_node. + * reload.c (find_reloads): Don't change a secondary reload + to RELOAD_FOR_OPERAND_ADDRESS. - * cp-decl2.c (warn_redundant_decls): Defined. - (lang_decode_option): Decode -Wredundant-decls. + * function.c (assign_parms): Fix typo in previous change. - * cp-typeck.c (build_conditional_expr): Don't use type1 as - temporary variable; set result_type directly. +Thu May 12 15:48:54 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - Tue Aug 4 12:04:17 1992 Chip Salzenberg (chip@tct.com) + * c-common.c (decl_attributes): Revert to identifiers for + mode attributes. + * libgcc2.c: Likewise. - * cp-tree.h (C_PROMOTING_INTEGER_TYPE_P): Defined. - * cp-class.c (finish_struct): Use it. - * cp-decl.c (duplicate_decls, grokdeclarator): Ditto. - (grokparms, start_function): Ditto. - * cp-typeck.c (self_promoting_args_p, default_conversion): Ditto. - * cp-parse.y (primary): Set TREE_CONSTANT in the NOP_EXPR for an enum. +Thu May 12 15:41:38 1994 Pat Rankin (rankin@eql.caltech.edu) - Tue Aug 4 09:17:32 1992 Chip Salzenberg (chip@tct.com) + * vax/xm-vms.h (lookup_name_current_level_global): New macro. - * cp-decl.c (duplicate_decls, grokdeclarator, grokparms): - Use TYPE_MAIN_VARIANT when comparing against specific types. - (build_enumerator): Use STRIP_TYPE_NOPS. - (start_function): Force main() to return "int", not just any - integral type. +Wed May 11 17:44:47 1994 Jim Wilson (wilson@cygnus.com) - * cp-typeck.c (self_promoting_args_p, default_conversion): - Use TYPE_MAIN_VARIANT when comparing against specific types. - (unsigned_type, signed_type): If type is not known, return it - unchanged instead of returning its TYPE_MAIN_VARIANT. - (build_binary_op_nodefault): Use TYPE_MAIN_VARIANT when - comparing against specific types. Also use STRIP_TYPE_NOPS. - Also copy error messages from equivalent code in c-typeck.c. + * cse.c (cse_insn): Set src_eqv if the dest is a STRICT_LOW_PART. - * cp-parse.y (primary): Wrap a NOP_EXPR around an enum value. + * expmed.c (store_fixed_bit_field): Delete code to handle + MODE_FLOAT values here. + (store_bit_field): Put it here instead. - Wed Sep 2 18:06:47 1992 Mike Stump (mrs@cygnus.com) +Wed May 11 16:18:21 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Wed Sep 2 17:33:59 1992 Chip Salzenberg (chip@tct.com) + * a29k.c (a29k_clobbers_to): New function. + * a29k.md (clobbers_to): Deleted. + (call_internal, call_value_internal): New patterns. + (call, call_value): Just call new patterns and a29k_clobbers_to. - * cp-decl.c (grokdeclarator): Default friends to being PUBLIC. + * stor-layout.c (layout_type): Use POINTER_SIZE, instead of width + of Pmode, when appropriate. - Tue Sep 1 12:33:01 PDT 1992 Ron Guilmette (rfg at netcom.com) + * calls.c (emit_call_1): Put new function usage data at end of + any data already there. + * expr.c (expand_builtin_apply): Likewise. - * cp-init.c (do_friends): Always return `void_type_node'. + * sched.c (sched_analyze_insn): Fix typo in last change. - * cp-decl.c (grokparms): Call digest_init on default arguments for - formal parameters. +Wed May 11 14:45:12 1994 Doug Evans (dje@cygnus.com) - * cp-decl.c (xref_tag): The BINFO records describing individual - inheritances aren't shared in the lattice. + * configure: Fix handing case of no language subdirs. - Tue Sep 1 12:27:17 1992 Mike Stump (mrs@cygnus.com) +Wed May 11 12:11:40 1994 Ian Lance Taylor (ian@cygnus.com) - * cp-call.c (convert_harshness, compute_conversion_costs): The - READONLY flag for a const object could be down in the type of the - reference. + * fixincludes: Don't recursively search symlinks to `.'. - * cp-call.c (compute_conversion_costs): Don't ignore the cost of - converting the first argument, if it is not a method. Fixes Mon Aug - 31 22:32:34 change. +Tue May 10 17:49:57 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - Tue Sep 1 11:58:52 1992 Mike Stump (mrs@cygnus.com) + * configure: Include stage4 in the list. - * cp-tree.h (THIS_NAME): Use the name ``this'' instead of the more - cryptic name ``$t''. + * gcc.c (process_command): Kludge in stageN/../include instead of + include. - Mon Aug 31 22:32:34 1992 Mike Stump (mrs@rtl.cygnus.com) +Mon May 9 21:04:19 1994 Jim Wilson (wilson@cygnus.com) - * cp-init.c (build_member_call): When forming method calls that use - a qualified name, convert the instance pointer to the type implied - by the qualification. Base::member_func(); converts this to be a - (Base *). + * sparc.h (*TF*_LIBCALL): Delete `*' from libcall name. - * cp-call.c (compute_conversion_costs): Don't penalize conversion - of the instance pointer on method calls, as they could be pointers - to base classes. +Mon May 9 18:42:10 1994 Matthias Pfaller (leo@marco.de) - Mon Aug 31 18:34:33 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * ns32k.c (output_move_dconst): Fix errors on ranges. - * cp-decl.c (start_function): When a friend function is being - defined, put it in (lexical) scope of the class in which it appears. +Mon May 9 18:33:16 1994 Chris Torek (torek@bsdi.com) - Mon Aug 31 09:57:27 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * gcc.c (delete_if_ordinary): New function. + (delete_temp_files, delete_failure_queue): Call it. - * cp-typeck.c (build_modify_expr): For assignments to member - variables like "X::i", call resolve_offset_ref to get the lhs; all - the code and checking was in there, it just wasn't being used. +Sat May 7 12:12:58 1994 Andreas Neubacher (aneubach@risc.uni-linz.ac.at) - * cp-class.c (finish_struct_methods): Give the name of the class - in question when reporting that all its member functions are - private. + * i386/seq-sysv3.h (LIB_SPEC): Support -fshared-data. + (CPP_SPEC): Set _SEQUENT_ to 1. + (SHARED_SECTION_ASM_OP, ASM_OUTPUT_SHARED_COMMON): Supply new macros. + (SHARED_BSS_SECTION_ASM_OP, BSS_SECTION_FUNCTION): Likewise. - Sun Aug 30 08:34:03 1992 Mike Stump (mrs@rtl.cygnus.com) +Sat May 7 10:09:49 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl2.c (setup_vtbl_ptr): Disable the code, until problems can - be worked around. + * reorg.c (mark_{referenced,set}_resources): Fix typos in last change. - Sat Aug 29 10:34:10 1992 Mike Stump (mrs@rtl.cygnus.com) + * reload1.c (emit_reload_insns): Don't try to delete output reload + if there isn't one. - * cp-init.c (emit_base_init): Undo Sat Jan 18 12:06:58 change by - tiemann that incorrectly makes -pedantic initialization of virtual - base classes 1 or more levels deep impossible. + * i386.h (REG_ALLOC_ORDER): New macro. - Sat Aug 29 10:03:07 1992 Mike Stump (mrs@rtl.cygnus.com) + * sched.c (sched_analyze_insn, attach_deaths_insn): Look at + CALL_INSN_FUNCTION_USAGE. - * cp-class.c (finish_struct): Allow extern "C" functions to be - friends. + * reload1.c (choose_reload_regs): Remove previous change. - Sat Aug 29 04:43:22 1992 Mike Stump (mrs@rtl.cygnus.com) +Fri May 6 20:32:22 1994 Doug Evans (dje@canuck.cygnus.com) - * cp-parse.y (used_extern_spec), cp-decl.c (start_decl, - start_function): Make sure extern in extern "C" (fndef | datadef) - applies to only one decl. Fixes problem introduced on Thu Aug 20 - 16:11:58. + * sparc.c (leaf_reg_backmap): Delete. + (sparc_flat_compute_frame_size): Renamed from + sparc_frw_compute_frame_size. All callers changed. + (sparc_flat_save_restore): Likewise. + (sparc_flat_output_function_prologue): Likewise. + Delete decl of call_used_regs. + Delete reference to frame_base_name, use frame pointer explicitly. + Print prologue end marker. + (sparc_flat_output_function_epilogue): Likewise (renaming). + Delete decls of asm_out_data_file, asm_out_file, call_used_regs. + Print epilogue start marker. + (sparc_flat_epilogue_delay_slots): Likewise (renaming). + (sparc_flat_eligible_for_epilogue_delay): Likewise. + * sparc.h (TARGET_FRW): Add note saying this option is deprecated. + (TARGET_FLAT): Renamed from TARGET_FRW_COMPAT. + (TARGET_SWITCHES): Delete references to -mfrw, -mfrw-compat. + Add -mflat. + (CONDITIONAL_REGISTER_USAGE): If -mflat, fix %i7, rename "%fp" + to "%i7", and make %g7 a global_reg. + (FRAME_POINTER_REQUIRED): Handle -mflat. + (INITIAL_FRAME_POINTER_OFFSET): Likewise. + (ARG_POINTER_REGNUM): Explicitly say it's the frame pointer. + (LEAF_REGISTERS): Make %g7 not a leaf register. + (leaf_reg_backmap): Delete. + (LEAF_REG_BACKMAP): Likewise. + (FUNCTION_PROLOGUE): Handle -mflat. + (FUNCTION_EPILOGUE): Likewise. + (DELAY_SLOTS_FOR_EPILOGUE): Likewise. + (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. - Thu Aug 27 09:33:13 1992 Brendan Kehoe (brendan@cygnus.com) +Fri May 6 14:05:00 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - * cp-decl.c (grokdeclarator): Name operators properly when - complaining about trying to declare it as a method when not in a - class. + * tree.h (TYPE_ATTRIBUTES): New macro. + (struct tree_type): attributes, new field. + (precision): Move this field up for better alignment. + (attribute_list_{equal,contained}): Prototype for new functions. + (build_type_attribute_variant): Prototype for new function. + * c-parse.in: Rewrite attribute parsing; update the expected + conflicts and state numbers. + * tree.c (TYPE_HASH): Move definition to top of file. + (make_node): Add support for SET_DEFAULT_TYPE_ATTRIBUTES. + (build_type_attribute_variant): New function. + (type_hash_lookup): Check if the attributes match. + (attribute_list_{equal,contained}): New functions. + * c-typeck.c (common_type): Add attribute merging. + (comp_types): Use COMP_TYPE_ATTRIBUTES macro. + * print-tree.c (print_node): Print attributes. + * c-common.c (decl_attributes): Move the attribute + recognition and rejection here from c-parse.in. + (decl_attributes): Use VALID_MACHINE_ATTRIBUTE macro. - * cp-decl.c (grok_reference_init): Forbid volatile->const refs, - and vice-versa. Also make the tests apply to all types, not just - aggregates. (Now fully compliant with ANSI C++ June 5 1996 WP - section 8.4.3.5.) + * regclass.c (init_reg_sets_1): Eliminate several permanent + call_fixed_regs. - * cp-decl.c (shadow_tag): Don't allow a function to be a member of - an anonymous union. + * rtl.def (CALL_INSN): Define new CALL_INSN_FUNCTION_USAGE field. + * rtl.h (CALL_INSN_FUNCTION_USAGE): New macro. + (find_reg{,no}_fusage): Prototype for new function. + * rtlanal.c (reg_used_between_p): Check usage exprs on CALL_INSNs. + (reg_referenced_between_p, reg_set_p, dead_or_set_regno_p): Likewise. + (find_reg{,no}_fusage): New functions. + * combine.c (try_combine): Restrict combining on CALL_INSNs. + (distribute_{notes,links}): Look at CALL_INSN_FUNCTION_USAGE. + * cse.c (cse_insn): Invalidate CLOBBERed registers. + (count_reg_usage): Count registers in USE rtls on CALL_INSNs. + * emit-rtl.c (make_call_insn_raw): New function. + (emit_call_insn{,_before}): Use make_call_insn_raw. + * calls.c (prepare_call_address, emit_call_1, expand_call): Change + from USE and CLOBBER insns to using CALL_INSN_FUNCTION_USAGE. + (emit_library_call{,_value}): Likewise. + * expr.c (use_regs, expand_builtin_apply): Likewise. + * expr.h (use_regs): Likewise. + * flow.c (flow_analysis, find_basic_blocks): Likewise. + * caller-save.c (insert_save_restore): Likewise. + * function.c (fixup_var_refs_insns): Likewise. + * jump.c (find_cross_jump, get_label_{before,after}): Likewise. + * reload1.c (emit_reload_insns): Likewise. + * reorg.c (mark_referenced_resources, mark_set_resources): Likewise. + * integrate.c (save_for_inline_copying, expand_inline_function): + Copy CALL_INSN_FUNCTION_USAGE field. + * reload1.c (choose_reload_regs): Ban filled argument registers. + * caller-save.c (save_call_clobbered_regs): CALL_INSN_FUNCTION_USAGE + requires a sharper liveliness check. + * flow.c (propagate_block): Mark all registers mentioned in USE + usage expressions on a CALL_INSN as used. + * jump.c (find_cross_jump): If STACK_REGS is defined two + CALL_INSNs only compare equal if their USE usage rtls are + the same as well. + * stupid.c (stupid_life_analysis): Check the usage information + on CALL_INSNs. - * cp-class.c (finish_struct): For a type that's nested within a - class, use the class value itself when checking a typedef that uses - that new nested type. + * function.c (assign_parms): Spread out the REG_EQUIV notes + on CONCATs. - Wed Aug 26 20:24:07 1992 Brendan Kehoe (brendan@cygnus.com) +Fri May 6 12:43:10 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl.c (decls_match): When converting from a - pseudo-METHOD_TYPE for a static member fn, handle the static - function being both in the new and old declarations. - (revert_static_member_fn): New function. + * reload.c (find_reloads): Ignore alternatives that will + not be reloadable due to PREFERRED_RELOAD_CLASS. - * cp-call.c (build_method_call): Put out proper line number for - error with the use of a private constructor. + * explow.c (allocate_dynamic_stack_space): Just return + virtual_stack_dynamic_rtx if asking for zero bytes. + Set current_function_calls_alloca here and also record new + stack level for nonlocal gotos. + * expr.c (expand_builtin, case BUILT_IN_ALLOCA): Don't + set current_function_calls_alloca here nor record new + stack level for nonlocal gotos. + * stmt.c (expand_decl): Likewise. - * cp-decl.c (grokdeclarator): If a storage class is erroneously - specified for an operator, print the operator's name out properly in - the error message (e.g., print `+' instead of `__pl'). + * function.c (assign_parms): Use expr_size when appropriate. - * cp-decl.c (grokdeclarator): Allow neither constructors nor - destructors to be declared const or volatile. + * c-typeck.c (comptypes): An enum type is compatible with type of + same signedness as well as precision. - * cp-decl.c (grok_op_properties): New argument VIRTUALP. - Use it to disallow declaring new or delete as virtual. Also - use coerce_new_type() and coerce_delete_type() to - sanity-check overloading of new and delete. - (grokfndecl): Give grok_op_properties if the decl is virtual. - (start_method): Likewise. + * alpha.h (CONST_COSTS): Revise all costs. + * alpha.md (addsi3, subsi3): Add define_expand to make + adddi3/subdi3; old pattern is now anonymous. - * cp-tree.c (lvalue_p, ADDR_EXPR case): Casts to references are - lvalues. + * combine.c (simplify_rtx, case MULT): Don't convert MULT to + shift here. + (simplify_logical, case IOR): Convert back to PLUS if valid and + it will combine with another PLUS. + (extract_left_shift): New function. + (make_compound_operation, case ASHIFTRT): Simplify by calling it. + (force_to_mode): Don't ignore if X is a SUBREG. + (force_to_mode, case AND): Try to turn unchecked bits on + instead of just off and see which is cheaper. -Thu Sep 3 02:46:44 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri May 6 11:22:23 1994 Ian Lance Taylor (ian@cygnus.com) - * caller-save.c (setup_save_areas): Don't look at WORDS_BIG_ENDIAN. + * Makefile.in (libgcc1.a, libgcc2.a): Don't ignore errors in for + loops over $(LIB[12]FUNCS_EXTRA). - * fixincludes: If we find a link pointing to ., make a similar - link to ., not a link to an absolute name. - (stdio.h): Change stdio.h to use stdarg.h to get va_list. +Fri May 6 06:14:56 1994 Mike Stump (mrs@cygnus.com) - * cexp.y: Comment syntax fix. + * expr.c (expand_cleanups_to): Tell expand_expr that we are going + to ignore the result of the cleanup. -Thu Sep 3 01:48:16 1992 Torbjorn Granlund (tege@jupiter.sics.se) +Thu May 5 17:45:02 1994 Stan Shebs (shebs@andros.cygnus.com) - * we32k.md (casesi): Use match_dup for second mention of operand 4. + * gcc.c (do_spec_1): If -save-temps, always clear the deletion flag. -Wed Sep 2 06:58:32 1992 Michael Meissner (meissner@osf.org) +Thu May 5 13:39:35 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * gcc.c (default_compilers): Add missing comma between strings, so - that traditional compilers can compile gcc.c. - (main): Don't pass strcpy or strlen a NULL pointer if some of the - spec strings in default_compilers are NULL. - (validate_all_switches): Don't dereference a NULL pointer if some of - the spec strings in defalut_compilers are NULL. + * combine.c (simplify_rtx, case SUBREG): Don't call force_to_mode. + (simplify_set): Call force_to_mode here. - * gcc.c (main): Use new loop var J to avoid conflict with I. + * m68k.md (movhi): Simplify code involving jump-table + reference. + (load_address): Handle case of jump-table reference; output + required label. -Wed Sep 2 19:09:02 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) +Thu May 5 12:28:16 1994 Ian Lance Taylor (ian@cygnus.com) - * caller-save.c (init_caller_save): If we were unable to - find a simple insn which meets all its constraints to save - and restore with a single insn in a mode, then set - regno_save_mode to VOIDmode to insure that this mode is never - used to caller-save the current register. + * cccp.c (main): Include source file name in dependency output. -Wed Sep 2 12:34:39 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) +Wed May 4 18:45:07 1994 Doug Evans (dje@cygnus.com) - * caller-save.c (insert_save_restore): Correct test for - determining whether multiple registers can be saved. + * config.sub: Remove duplicate -freebsd* entry. - * sparc.md (SImode ldd peepholes): Add `f' to constraints. +Wed May 4 18:03:34 1994 Jason Merrill (jason@deneb.cygnus.com) - * sparcv4.h (HANDLE_PRAGMA): Delete. - * sparc.c (handle_pragma_token): Delete. + * cccp.c (special_symbol): Don't copy simple strings, use wchar_type. + (main): Setup wchar_type for C++ if needed. + (initialize_builtins): Use wchar_type. - * config/spc-sol2.h: Change the location of the Sun bundled C - compiler in MD_STARTFILE_PREFIX (for backup defaults). +Wed May 4 17:19:34 1994 Mike Collison (collison@sw.stratus.com) -Wed Sep 2 09:11:16 1992 Tom Wood (wood@dg-rtp.dg.com) + * reload.c (push_secondary_reload): Use TYPE for secondary type + if it is RELOAD_FOR_{INPUT,OUTPUT}_ADDRESS. - * m88k.h (MOVE_MAX): Express in bytes not bits. +Wed May 4 16:35:49 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * m88k.c (output_ascii): Output known escape characters and don't - terminate the constant if an octal escape is used. + * configure (i386-gnu): New, same as i386-mach. -Wed Sep 2 06:38:37 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * global.c (find_reg): When looking for locally-allocated hard + regs to reclaim, use REG_ALLOC_ORDER to find least used. - * combine.c (make_compound_operation, case ASHIFTRT): Add new - code to handle (ashiftrt (neg (ashift FOO C1) C2)) just like we - currently handle (ashiftrt (OP (ashiftrt FOO C1) C2) C2). + * reload1.c (emit_reload_insns): Add another way to delete an + output reload. -Wed Sep 2 00:15:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * reload1.c (reload, reload_as_needed): Check for use of return + register with reg_referenced_p, not reg_mentioned_p. - * Makefile.in (install): Add semicolon to make an empty command. +Wed May 4 14:23:51 1994 Jim Wilson (wilson@cygnus.com) - * reload.c (find_reloads): If have any earlyclobbers, don't let any - reloads overlap with them. Make everything RELOAD_OTHER. + * mips.c (override_options): Delete TARGET_LLONG128 references. + * mips.h (MASK_LLONG128, TARGET_LLONG128): Delete. + (TARGET_SWITCHES): Delete -mlonglong128 option. + (LONG_LONG_TYPE_SIZE): Delete TARGET_LLONG128 reference. - * move-if-change: Give status 1 if file is unchanged. + * mips/bsd-4.h, mips/bsd-5.h, mips/news4.h, mips/news5.h, + mips/nws3250v4.h, mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, + mips/svr4-5.h (CPP_SPEC): Delete. + * mips/dec-bsd.h (CPP_SPEC): Define __SIZE_TYPE__, + __PTRDIFF_TYPE__, and __mips. + (SIZE_TYPE): Delete. + * mips/dec-osf1.h (PTRDIFF_TYPE): Delete. + (CPP_SPEC): Define, overriding ultrix.h version. + * mips/iris5.h (CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, + and __mips. + * mips/osfrose.h (CPP_SPEC): Define __PTRDIFF_TYPE__ and __mips. + (PTRDIFF_TYPE): Delete. + (SIZE_TYPE): Define. + (SET_ASM_OP): Define. + * config/mips/ultrix.h (CPP_SPEC): Delete. + (SIZE_TYPE): Delete. - * Makefile.in (SYSTEM_HEADER_DIR): New variable. - (xlimits.h): New target, broken out from install-limits-h. - Look in SYSTEM_HEADER_DIR for system's limits.h. - (start.encap): Dep on xlimits.h. - (install-limits-h): Install xlimits.h already made. - * cross-make (SYSTEM_HEADER_DIR): Overridden. +Tue May 3 19:04:43 1994 Jason Merrill (jason@deneb.cygnus.com) - * x-i386sco (X_CFLAGS): Deleted. - * x-i386sco4: New file, like old x-i386sco. - * configure (i386-*-sco3.2v4*): Use x-i386sco4. + * Makefile.in (stamp-objlist): Depend on OBJS and BC_OBJS so that + subdir makes will know to re-link. - * t-sol2 (gmon.o): Find gmon-sol2.c in config. +Mon May 2 16:05:05 1994 Per Bothner (bothner@kalessin.cygnus.com) - * c-typeck.c (process_init_constructor): Fix bugs in previous change. + * toplev.c (compile_file): If static consts haven't been written + out yet, don't do it just because TREE_USED is set (if we're + optimizing). (This wins for C++, which uses static consts a lot.) -Tue Sep 1 23:51:19 1992 Brendan Kehoe (brendan@rtl.cygnus.com) +Mon May 2 16:42:59 1994 Jim Wilson (wilson@cygnus.com) - * gcc.c (default_compilers, ".C" and ".ii"): Pass `+e*' into cc1plus. - (process_command): Allow +e[012] to be passed down into cc1plus. - * cp-decl.c (lang_decode_option): The options `+e0' thru `+e2' will - be coming in prefixed as `-+e'. + * stmt.c (expand_end_case): Make sure gen_casesi operands are + valid by passing them through copy_to_mode_reg if necessary. + * mips.md (casesi): Delete force_reg calls. -Tue Sep 1 20:09:29 1992 Paul Eggert (eggert@twinsun.com) + * ns32k.c (output_move_double): Always use split_double for the + CNSTOP case. - * print-tree.c (print_node): Avoid 1 << (HOST_BITS_PER_INT - 1), - which overflows. Use unsigned % to compute HASH. + * gcc.c (translate_options): For options that take an argument, + don't skip the argument if it doesn't exist. -Tue Sep 1 17:23:28 1992 Tim Moore (moore@hal) + * c-decl.c (pushdecl): Use lookup_name_current_level_global instead + of lookup_name for extern references. Don't return duplicate decl + if it came from the global binding level, and there exists a + conflicting decl in an intervening block. + (lookup_name_current_level_global); New function. + * c-tree.h (lookup_name_current_level_global): Declare. - * pa.h (CPP_SPEC, TARGET_SWITCHES): new flags: -mnosnake, - -mpa-risc-1-0, -mpa-risc-1-1. - (ASM_DECLARE_FUNCTION_NAME): Emit argument descriptors for all - general registers if current_function_varargs. + * sys-protos.h (read, write): Last parm is size_t not unsigned int. -Tue Sep 1 11:27:08 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + * unroll.c (remap_split_bivs): New function. + (unroll_loop): When remapping split bivs in the last instruction, + handle JUMP_INSNs in addition to INSNs. - * sparc.c (handle_pragma_token): Only use if HANDLE_SYSV_PRAGMA - isn't defined. (We'll be getting the fn from c-pragma.c, then.) +Mon May 2 12:53:57 1994 Jason Merrill (jason@deneb.cygnus.com) -Sat Aug 29 13:44:21 PDT 1992 Ron Guilmette (rfg at netcom.com) + * config/nextstep.h (INCLUDE_DEFAULTS): Add cxx_aware field. + * config/vax/xm-vms.h (INCLUDE_DEFAULTS): Ditto. - * tree.h (current_block): Decl deleted. - (set_block): Declared. - * stmt.c (expand_fixup): Create a BLOCK node (via pushlevel/poplevel) - to represent an artificial scope containing all of the fixup code. - Also emit NOTE_INSN_BLOCK_BEG/NOTE_INSN_BLOCK_END for that block. - (fixup_gotos): Declaration of NEWBLOCK deleted. - Call `set_block' to use the BLOCK made in expand_fixup. - Deleted code to insert NEWBLOCK into block hierarchy. - * c-decl.c, cp-decl.c (current_block): Function deleted. - (set_block): New function. - (poplevel): If using a previously created block, - don't insert it into the parent level. - * emit-rtl.c (emit_insns_after): Update last_insn if nec. +Fri Apr 29 18:30:38 1994 Kung Hsu (kung@cygnus.com) -Tue Sep 1 10:53:58 1992 Torbjorn Granlund (tege@jupiter.sics.se) + * tree.h (TYPE_DECL_SUPPRESS_DEBUG): new macro to support + suppressing of detail type infos into stabs. + * dbxout.c (dbxout_type): check the above flag to generate cross + reference in stabs. - * pa.c (output_move_double): Use `ldo' for immediate adds (instead - of `addi' with bad syntax). - (output_load_address): Likewise. +Fri Apr 29 01:01:45 1994 Doug Evans (dje@cygnus.com) -Tue Sep 1 02:41:13 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * Makefile.in (stamp-objlist): New target. - * tree.h (struct tree_type): Make `align' field an int. +Thu Apr 28 22:17:15 1994 Doug Evans (dje@cygnus.com) - * c-tree.h (IDENTIFIER_LIMBO_VALUE): New macro. - (struct lang_identifier): New field limbo_value. + * Makefile.in (USE_ALLOCA): Rearrange "'s. + (FLAGS_TO_PASS): Delete CLIB, MALLOC, OBSTACK. -Mon Aug 31 12:59:22 PDT 1992 Ron Guilmette (rfg at netcom.com) +Thu Apr 28 19:04:17 1994 Jim Wilson (wilson@cygnus.com) - * tree.c (make_node): Fix typo in July 6 change: - assignment of DECL_IN_SYSTEM_HEADER was inserted in bad place. + * stmt.c (expand_end_case): Correct test for sign extending + unsigned constant index when creating index_expr. -Mon Aug 31 21:28:08 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * cccp.c (macroexpand): Use start_line for line number of the new + instack level pushed at the end. - * sched.c (sched_analyze_2): Remove an explicit dependence between - an insn that uses CC0 and the immediately previous insn - (SCHED_GROUP_P represents the dependence). - (schedule_block): Only check sets_cc0_p on an insn. +Thu Apr 28 18:59:17 1994 Mike Stump (mrs@cygnus.com) -Mon Aug 31 15:32:13 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * stmt.c: Remove old exception handling support from the backend. - * gcc.c (struct compiler): spec field is now array of 4 elements. - (read_specs): Clear the entire new element of compilers. - (lookup_compiler): Copy all of spec array. Check element 0 for @. - (main): Concatenate all elements of compiler spec. - (validate_all_switches): Validate from all elements of compiler spec. - (default_compilers): Split CPP commands into separate strings. +Thu Apr 28 18:59:53 1994 Torbjorn Granlund (tege@adder.cygnus.com) -Mon Aug 31 10:06:16 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) + * sparc.c (arith_double_operand): Modify to accept all possible constants. + * sparc.md (adddi3, subdi3, anddi3, iordi3, xordi3): Corresponding changes. + (one_cmpldi3): Don't allow constants for operand 1. - * caller-save.c (restore_referenced_regs): When restoring a - referenced hard register, use CEIL instead of a truncating divide - to determine the maximum number of registers to restore. - (insert_save_restore): Document maxrestore parameter. - (CEIL): Define. +Thu Apr 28 18:10:18 1994 David Edelsohn (edelsohn@npac.syr.edu) -Mon Aug 31 04:02:21 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * rs6000.md (addsi3): Prefer add without carry instructions and + flag input operands as commutative for condition register variant. + (subsi3): Define PowerPC patterns using subtract without carry. + (numerous): Flag input operands as commutative for condition + register variant. + (mov* matchers): Use mr instruction in ! TARGET_POWERPC case as + well and mr. in condition register variant. + * rs6000.c (output_prolog): Use mr, lis, and li instructions. + Use subf instruction if TARGET_POWERPC. + (output_epilog): Use cal/addi instruction. - * fold-const.c (const_binop): Delete special case for mult by 3. +Thu Apr 28 12:48:59 1994 Andreas Neubacher (aneubach@risc.uni-linz.ac.at) - * toplev.c (lang_options): Add terminating zero. + * i386/seq-sysv3.h (SHARED_SECTION_ASM_OP): Defined. - * configure.bat: Remove version number from initial message. +Thu Apr 28 12:40:28 1994 Doug Evans (dje@cygnus.com) -Sun Aug 30 17:22:11 1992 James Van Artsdalen (james at bigtex.cactus.org) + * expr.c (expand_builtin): Fix typo in previous patch + (allow __builtin_next_arg in varargs functions). - * cccp.c (do_pragma): In prev. change, really use U_CHAR *, not char *. +Tue Apr 26 16:31:44 1994 Per Bothner (bothner@cygnus.com) - * aix386.h, i386gas.h, i386sun.h, i386v.h, i386v4.h, i386vgas.h, - seq386.h (TARGET_DEFAULT,VALUE_REGNO,FUNCTION_VALUE_REGNO): - Move from here, - * unx386.h (TARGET_DEFAULT,VALUE_REGNO,FUNCTION_VALUE_REGNO): - To here. - (TARGET_DEFAULT): Make TARGET_IEEE_FP default on. - (VALUE_REGNO): Test for MODE_FLOAT instead of specific modes. - (VALUE_REGNO,FUNCTION_VALUE_REGNO): MODE_FLOAT return reg depends on - TARGET_FLOAT_RETURNS_IN_80387. + * tree.h (AGGREGATE_TYPE_P): New macro. + * calls.c, expr.c, function.c, stmt.c, varasm.c: Use + new macro AGGREGATE_TYPE_P. - * i386.h (TARGET_FLOAT_RETURNS_IN_80387): New macro. - (TARGET_SWITCHES): Add "no-80387", "no-soft-float", - "fp-ret-in-387", and "no-fp-ret-in-387". - Change no* switches to no-*. - (CONDITIONAL_REGISTER_USAGE): Make 387 regs fixed if the 387 is not - used at all. - (REG_CLASS_FROM_LETTER): Constraint letters 'f', 't' and 'u' are - NO_REGS if the 387 is not used. - (TRAMPOLINE_TEMPLATE): Use GEN_INT to generate const_int rtx. +Mon Apr 25 18:45:28 1994 John Hassey (hassey@dg-rtp.dg.com) - * x-i386v4: New file. - (CLIB): Get alloca from libucb.a. - * configure (i386-*-sysv4*): Use x-i386v4. + * varasm.c (copy_constant, case CONSTRUCTOR): Fix typo; copied list + was placed on old CONSTRUCTOR, not new one. -Sun Aug 30 15:32:54 1992 Dennis Glatting (dglattin at trirex.com) +Mon Apr 25 15:04:53 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * objc-actions.c (create_builtin_decl): Set TREE_STATIC. - Don't set DECL_EXTERNAL or TREE_PUBLIC. + * c-decl.c (grokdeclarator): Never warn about `long long' in + system header. -Sun Aug 30 03:08:48 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * c-decl.c (finish_decl): Redo last change. - * c-parse.y (initlist): Handle ranges of array elements. - * c-typeck.c (process_init_constructor): Handle ranges. + * Makefile.in (*compare*): Add missing semicolons. - * fixincludes: When link points to a dir $dirname outside $INPUT, - copy that dir into $LIB/root$dirname. Translate the link itself - into a link to that new dir. Make a file DONE in each treetop dir - so no treetop is scanned twice. Improve progress messages. +Mon Apr 25 15:02:31 1994 Doug Evans (dje@cygnus.com) -Sat Aug 29 22:41:49 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * configure (m68k-hp-hpux): t-hp320g no longer needed as of gas 2.1. + * m68k/t-hp320g: Deleted. - * alpha.h (ASM_FILE_START): Object file version number now 8.0. +Mon Apr 25 14:23:18 1994 Poul-Henning Kamp (phk@login.dkuug.dk) - * alpha.h (ADJUST_COST): New macro. - * alpha.c (alpha_adjust_cost): New function. - * alpha.md: Adjust function unit delays and more precisely - describe function units. + * config.sub, configure: Recognize FreeBSD. + * i386/freebsd.h, x-freebsd: New files. + * i386/x-freebsd: New file. + * i386.h (TARGET_NO_FANCY_MATH_387): New option. + * i386.md (TARGET_NO_FANCY_MATH_387): Implement new option. + * ginclude/stdarg.h, ginclude/stddef.h, ginclude/varargs.h: + Recognize __FreeBSD__. + * gcc.c (link_command_spec): Add -Z argument for ZMAGIC's on FreeBSD. - * alpha.h (CONST_OK_FOR_LETTER_P): Add new letters `O' and `P'. - * alpha.c (print_operand, case 'P'): New case. - * alpha.md (ashldi3): Special-case shifts by 1, 2, and 3 bits to - use arithmetic instructions. - Add pattern for sign-extending shifts by 1, 2, and 3 bits. - - * alpha.h (INITIALIZE_TRAMPOLINE): Use Pmode when appropriate. - (FUNCTION_MODE): Use Pmode. - - * alpha.md (div/mod): Indicate that reg 27 is clobbered too. - - * alpha.md (cmov): Add define_split for if_then_else/plus case. - - * expr.c (emit_library_call): Pass correct number of args to - convert_to_mode. - - * expr.c (emit_block_move): Eliminate unnecessary test against - HOST_BITS_PER_WIDE_INT. - - * optabs.c (expand_{binop,unop}): Don't make invalid - paradoxical SUBREGs. - - * genattrtab.c (RTL_HASH, attr_rtx): Avoid warnings by casting - pointers to HOST_WIDE_INT instead of int. - - -Sat Aug 29 15:35:58 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * toplev.c (lang_options): New table. - (main): Recognize all language-dependent options of any language - and always treat them as language-specific and valid. - - * c-decl.c (c_decode_option): -fnotraditional really undoes - -ftraditional. Handle -fno-traditional also. - -Sat Aug 29 00:34:01 1992 James Van Artsdalen (james at bigtex.cactus.org) - - * reg-stack.c (record_reg_life): Mark an unused reg as such, even - if it appears in SET_SRC. - -Fri Aug 28 17:40:49 1992 John F Carr (jfc at Athena.MIT.EDU) - - * tree.c (chainon): Check for op2 being the last elt of the chain. - -Fri Aug 28 13:26:56 PDT 1992 Ron Guilmette (rfg at ncd.com) - - * cccp.c (do_pragma): Use rindex, not strrchr. - - * tree.h (BLOCK_END_NOTE): Macro definition added. - (struct tree_block): `end_note' field added. - * stmt.c (last_block_end_note): New variable. - (remember_end_note): New function. - (expand_end_bindings): Save NOTE_INSN_BLOCK_END in last_block_end_note. - * c-decl.c, cp-decl.c (poplevel): Call `remember_end_note' for each - newly created BLOCK node. - * integrate.c (adjust_copied_decl_tree): New function. - (save_for_inline_copying): When making copies of NOTE_INSN_BLOCK_END - notes, stash a "forwarding" pointer in the original to point to the - copy. Also, when all BLOCKs & insns for a function have been copied, - call `adjust_copied_decl_tree' to fixup the end_note pointers in the - copied BLOCKs. - -Fri Aug 28 13:25:59 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * cccp.c (do_pragma): In prev. change, use U_CHAR *, not char *. - -Fri Aug 28 09:11:56 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.h (ADJUST_COST): Add definition. +Mon Apr 25 14:08:26 1994 Doug Evans (dje@cygnus.com) -Thu Aug 27 18:27:02 1992 James Van Artsdalen (james at bigtex.cactus.org) + * configure (language search loop): Correct test for no languages. + (CC): Use single quotes to avoid shell expansion of $(CC). - * c-decl.c (init_decl_processing): Add sin and cos as built-in - functions. - * expr.c (expand_builtin): Likewise. +Mon Apr 25 13:10:07 1994 Andreas Stolcke (stolcke@icsi.berkeley.edu) - * expr.h (sin_optab,cos_optab): Declare optabs for sin and cos. - * optabs.c (sin_optab,cos_optab): Define them. - (init_optabs): Initialize them. - - * tree.h (BUILT_IN_SIN,BUILT_IN_COS): New builtin codes. - - * reg-stack.c (record_note_if_dead): Delete function. - (record_reg_life_pat): Rewrite to handle any sort of pattern. - (record_reg_life): Change interface to record_reg_life_pat. - - (stack_reg_life_analysis): Don't assume that MODE_FLOAT values are - always returned in a float reg. - - (subst_stack_regs_pat): Add support for sin and cos insns. - - * i386.c (all gen_rtx (CONST_INT) references): Use GEN_INT to - generate const_int rtx. - (legitimize_pic_address): Pass NULL_RTX instead of "0" as pointer. - - * i386.md (all patterns): Use GEN_INT instead of gen_rtx to get - const_ints. - Avoid double-negative "! NON_*" constructs for clarity. - Pass NULL_PTR as null parameter instead of 0. - - (sqrtM2): Patterns are only valid if IEEE FP or -ffast-math. - (sinM2,cosM2): New patterns. - (zero_extract test): New pattern. - (movstrsi): Rewrite expander to handle operands correctly. - -Thu Aug 27 16:58:09 1992 Michael Meissner (meissner@osf.org) - - * genattrtab.c (MAX_DIGITS): New macro to gauge how much space we - need to reserve when printing integers. - (expand_delays): Use sizeof and MAX_DIGITS to properly size the - strings when calling attr_printf. - (expand_units): Ditto. - (encode_units_mask): Ditto. - (make_numeric_value): Ditto. - (oballoc): New macro, to allocate from the hash_obstack. - (convert_const_symbol_ref): Call oballoc instead of xmalloc. - (get_attr_value): Ditto. - (fill_attr): Ditto. - (make_length_attrs): Ditto. - (gen_attr): Ditto. - (gen_insn): Ditto. - (gen_delay): Ditto. - (gen_unit): Ditto. - (find_attr): Ditto. - (main): Ditto. - -Thu Aug 27 14:47:16 1992 Mike Stump (mrs@mole.gnu.ai.mit.edu) - - * cp-decl.c (curent_block, struct binding_level, poplevel): Copy - Tue Aug 25 16:29:47 and Wed Aug 26 01:56:30 changes in c-decl.c by - rms. - -Thu Aug 27 01:32:11 1992 Paul Eggert (eggert@twinsun.com) - - * c-lex.c, cp-lex.c (readescape): DEL isn't printable. - * c-typeck.c (check_format): Likewise. - -Wed Aug 26 20:42:36 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-lex.c (readescape): For \x, don't include leading 0's in count. - - * c-decl.c (init_decl_processing): Fix type of __builtin_constant_p. - - * expr.c (emit_block_move): When trying movstrMM, cvt size to mode MM. - - * c-parse.y (stmt): For computed goto, convert arg to void *. - - * fold-const.c (fold): Do A op C1 ? A : C2 opt only for INTEGER_TYPEs. - -Wed Aug 26 20:19:56 1992 Mike Stump (mrs@wombat.gnu.ai.mit.edu) - - * cp-decl.c (insert_block, delete_block): New functions. - * cp-parse.y (primary, using compstmt): Call delete_block instead - of clearing TREE_USED. - - 11th Cygnus<-->FSF merge. - - Wed Aug 26 12:02:41 1992 Mike Stump (mrs@rtl.cygnus.com) - - * cp-decl.c (finish_function): Don't core dump when a conversion is - ambiguous. - - Tue Aug 25 16:32:42 1992 Mike Stump (mrs@rtl.cygnus.com) - - * cp-init.c (build_new), cp-typeck.c (build_c_cast): Handle ``new - type ( ... )'' better. Default constructors and better error - checking. - - Tue Aug 25 01:21:48 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl2.c (finish_file): Mark " @%$#@!" as being internal. - - Mon Aug 24 16:40:15 1992 Brendan Kehoe (brendan@cygnus.com) - - * cp-lex.c (check_newline): For `#pragma implementation', use - strcmp to check if it was done at the top level, rather than relying - on the pointers being the same. - - Mon Aug 24 20:48:16 1992 Mike Stump (mrs@cygnus.com) - - Fri Aug 21 14:19:27 1992 Ron Guilmette (rfg at ncd.com) - - * cp-decl2.c (grokclassfn): Mark the artificial `this' parameter as - "artificial". - - Thu Aug 20 22:59:16 1992 Mike Stump (mrs@cygnus.com) - - * cp-spew.c (arbitrate_lookup): Make sure the type name in an - argument list followed by &, or &) is seen as a type name, even when - there is an enumeration constant with the exact same name. - - Thu Aug 20 21:58:30 1992 Mike Stump (mrs@cygnus.com) - - * cp-search.c (get_first_matching_virtual): Don't core dump when a - declaration of a static member is seen with the same name as a base - class virtual function. - - Thu Aug 20 21:20:31 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl.c (finish_function): Don't core dump on parse errors. - - Thu Aug 20 20:52:43 1992 Mike Stump (mrs@cygnus.com) - - * cp-method.c (build_component_type_expr): Don't core dump on parse - errors. - - Thu Aug 20 18:31:58 1992 Mike Stump (mrs@cygnus.com) - - Mon Aug 17 17:08:11 1992 Chip Salzenberg (chip@tct.com) - - Copy some changes from the C front-end: - - * cp-type2.c (process_init_constructor): Warn about partly bracketed - initializers. - * cp-typeck.c (build_component_ref): Don't warn for compound and - conditional expressions when pedantic. These are valid in ANSI C. - - Thu Aug 20 16:11:58 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl.c (start_decl), cp-parse.y (have_extern_spec): extern "C" - int i; is only a declaration, but a definition, make it so. - - Thu Aug 20 14:46:39 1992 Mike Stump (mrs@cygnus.com) - - Thu Aug 20 02:36:39 1992 Ron Guilmette (rfg at ncd.com) - - * cp-lex.c (cons_up_default_function): Use DECL_SOURCE_LINE = 0 for - compiler generated things, not DECL_IGNORED_P. - - Thu Aug 20 13:13:45 1992 Mike Stump (mrs@cygnus.com) - - Wed Aug 19 13:09:45 1992 Ron Guilmette (rfg at ncd.com) - - * cp-decl.c (grokdeclarator): Propagate some changes from the C - front-end to deal with variable sized arrays. - - Wed Aug 19 16:55:43 1992 Mike Stump (mrs@cygnus.com) - - * cp-cvt.c (convert_to_reference): Improve wording on error message. - * cp-method.c (type_as_string), cp-pt.c - (mangle_class_name_for_template), cp-xref.c (GNU_xref_decl): Delete - first argument to type_as_string as it is not needed anymore. - - Wed Aug 19 15:29:02 1992 Mike Stump (mrs@cygnus.com) - - Wed Aug 19 13:09:45 1992 Ron Guilmette (rfg at ncd.com) - - * cp-decl.c (kept_level_p): Update from C frontend. - - Wed Aug 19 14:47:08 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl2.c (groktypefield): Old style conversion operators - are being desupported. Conversion operators much have an - `operator' in front of them. - - Wed Aug 19 01:57:04 1992 Mike Stump (mrs@cygnus.com) - - * cp-call.c (ideal_candidate): Fix bug introduced on Jan 21 - 7:24:21. Warn about ambiguous function calls with multiple - same cost conversions. - - Wed Aug 19 00:08:18 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl.c (grok_enum_decls): Remove invalid error message. - - Mon Aug 17 18:59:18 1992 Mike Stump (mrs@cygnus.com) - - * cp-cvt.c (convert_to_reference, convert, - build_type_conversion_1, build_type_conversion), cp-init.c - (build_dynamic_new), cp-typeck.c (build_modify_expr_1, - convert_for_initialization): Always use constructor_name, and - never TYPE_IDENTIFIER (type) and similar things. - * cp-init.c (expand_aggr_init_1): Try TYPE_HAS_CONSTRUCTOR - before wasting time trying build_method_call. - * cp-xref.c: Don't include memory.h. - - Mon Aug 17 15:10:21 1992 Mike Stump (mrs@cygnus.com) - - * cp-init.c (expand_aggr_init_1): Check for ambiguous - conversion. One through constructor and the other through a - user defined conversion operator. - - Mon Aug 17 11:51:27 1992 Mike Stump (mrs@cygnus.com) - - * cp-call.c (convert_harshness): When an argument is T, a T& - should be choosen over a const T& when selecting overloaded - functions. - - Mon Aug 17 01:37:06 1992 Mike Stump (mrs@cygnus.com) - - * cp-call.c (build_method_call): The second argument to - operator delete is sometimes magically deleted. - * cp-decl.c (init_decl_processing, grokfndecl): Global - operator delete never has two arguments. - - Wed Aug 5 18:54:19 1992 Mike Stump (mrs@cygnus.com) - - * cp-class.c (finish_struct), cp-tree.c (layout_basetypes): - Make sure VFIELD_BASEs are aligned. This fixes a really - annoying problem that causes code that uses complex - inheritance hierarchies that have virtual bases to get a - segmentation fault. - - Wed Aug 5 12:35:07 1992 Mike Stump (mrs@cygnus.com) - - Wed Aug 5 08:10:34 1992 Tom Wood (wood@dg-rtp.dg.com) - - * cp-tree.c (__eprintf): `line' is unsigned. - * cp-lex.c: Include stdlib.h and locale.h if needed. - * cp-typeck.c (mark_addressable): Use DECL_EXTERNAL not - TREE_EXTERNAL. - - Wed Aug 5 03:20:07 1992 Mike Stump (mrs@cygnus.com) - - * cp-class.c (finish_struct_methods): Check to make sure - operator delete is not overloaded. - * cp-decl.c (grokfndecl): Check to make sure operator delete - is declared properly. - - Tue Aug 4 16:52:28 1992 Mike Stump (mrs@cygnus.com) - - Mon Aug 3 22:55:04 1992 Michael Meissner (meissner@osf.org) - - * cp-decl.c (grokdeclarator): Make sure const and volatile get - put on the type built when building reference types. - * cp-parse.y (attrib): tree_cons takes three arguments, not - two. - * cp-tree.h: Add hash_chainon, build_virtual_init, - build_vbase_delete, build_vbase_vtables_init. - * cp-typeck.c (build_modify_expr_1. build_modify_expr): - build_unary_op takes three arguments, not two. + * Makefile.in (install-common): Install EXTRA_PARTS with + INSTALL_DATA, not INSTALL_PROGRAM. + +Mon Apr 25 06:34:00 1994 Stephen L Moshier (moshier@world.std.com) + + * fold-const.c (fold-convert): Use assignment, instead of + initializing, aggregate local variable REAL_VALUE_TYPE. + +Sun Apr 24 11:17:20 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reorg.c (redirect_with_delay_list_safe_p): Fix off-by-one error. + + * real.c (etoe53, etoe24): Make all occurrences static. + + * emit-rtl.c (try_split): Don't try to recursively split deleted insn. + + * rs6000.md (movti): Adjust constraints to avoid impossible reload. + + * expr.c (expand_expr, case SAVE_EXPR): Fix error in last change. + +Sat Apr 23 06:45:50 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload1.c (reloads_conflict, case RELOAD_FOR_OUTPUT): Fix typo. + +Fri Apr 22 18:43:08 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure (alpha-dec-osf): Fix typo. + +Fri Apr 22 15:02:22 1994 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) + + * gcc.c (handle_braces, check_live_switch): Refine previous change. + +Fri Apr 22 03:27:26 1994 Doug Evans (dje@cygnus.com) + + * configure: Sort machines. + + * Language directory reorganization. + * configure: Auto-configure each language subdirectory by looking + for */config-lang.in. + Add language makefile fragments (Make-lang.in) to top level makefile, + and hook them in via lang.* targets. + Configure each language subdirectory. On hosts that support them, + create stage[123] symlinks in each subdirectory. + If there is a configure script in the subdirectory, run it. + * Makefile.in (LANGUAGES): Remove c++. + (SUBDIRS): New variable. + (LEX, LEXFLAGS): Ditto. + (MAKEOVERRIDES): Ditto. + (COMPILERS): Remove cc1plus. + (LANG_MAKEFILES, LANG_STAGESTUFF, LANG_DIFF_EXCLUDES, FLAGS_TO_PASS): + New variables. + (CPLUS_OBJS, CPLUS_TREE_H, C++, c++, g++, g++-cross, cc1plus, + cp-*.o, g++.o, gplus.info): Deleted. + (STAGESTUFF): Remove g++, g++-cross, cc1plus. Add $(LANG_STAGESTUFF). + (Makefile): Depend on $(LANG_MAKEFILES). + (####language hooks, ####language fragments): New spots for sed + to insert things. + (all.cross, all.build, start.encap, rest.encap, info, dvi, + install-normal, install-common, install-info, install-man, + uninstall, distdir, mostlyclean, clean, distclean, extraclean, + realclean, stage1, stage2, stage3, stage4): Depend on lang.foo. + (mostlyclean, clean, distclean, extraclean, realclean): Clean as + much of the language subdirectories as we can. + (install-common): Remove g++ installation. + (install-man): Remove g++.1 installation. + (uninstall): Remove g++ reference. + (TAGS): Remove cp-parse.? reference. + (distdir): Ditto. + (distdir-start, distdir-finish): New targets. + (diff): Remove cp-parse.? reference. Add $(LANG_DIFF_EXCLUDES). + (compare, compare3, gnucompare, gnucompare3): Compare language + subdirectories too. + (stage1-start, stage2-start, stage3-start, stage4-start): New targets. + Ensure stage subdirectory exists before processing language + dependent part. + * cp/Makefile.in: New file, makefile for c++ subdirectory. + * cp/Make-lang.in: New file, c++ language makefile fragment. + This file provides c++ specific support to the top level makefile via + several well defined targets: c++.all.build, c++.all.cross, + c++.start.encap, c++.rest.encap, c++.info, c++.dvi, + c++.install-normal, c++.install-common, c++.install-info, + c++.install-man, c++.uninstall, c++.distdir, c++.mostlyclean, + c++.clean, c++.distclean, c++.extraclean, c++.realclean, + c++.stage1, c++.stage2, c++.stage3, c++.stage4. + * cp/config-lang.in: New file, defines language name and other + configuration parameters for the c++ language: compilers, stagestuff, + and diff_excludes. + * g++.c: Move into cp subdirectory. + * g++.1: Ditto. + * g++int.texi: Ditto. + * cp-*: Ditto, remove "cp-" prefix except for cp-tree.h. + +Thu Apr 21 15:47:01 1994 Jim Wilson (wilson@cygnus.com) + + * sparc.c (mem_aligned_8): Don't assume addresses with + MEM_IN_STRUCT_P set are 8 byte aligned. + + * iris5.h (CPP_SPEC): Define _LANGUAGE_C for Objective C also. + + * unroll.c (find_splittable_givs): Share dest_reg for multiple + address givs within a single instruction. + (copy_loop_body): Only update psuedo-reg for shared giv once. + + * sparc.c (sparc_type_code): Don't put more than 30 bits of info + into the variable qualifiers. + + * expr.c (store_expr): Don't check the TYPE_MODE of an ERROR_MARK. + +Thu Apr 21 15:34:11 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (calls_function_1): A language-specific code must + be assumed to call a function and also call alloca. + Check for inlined functions that call alloca. + + * reload1.c (reload): Clear forbidden_regs earlier. + (new_spill_reg): Mention in error message that asm clauses can also + cause the compiler to run out of spill regs. + (scan_paradoxical_regs): If SMALL_REGISTER_CLASSES, forbid + hard regs used in explicit user variables. + + * combine.c (can_combine_p, combinable_i3pat, try_combine): Allow + combination involving hard regs if the hard reg is a user variable. + + * gcc.c (default_compilers): If -E and the file is (e.g.) x.s, + don't run the assembler; similarly for .i, .ii, .adb, etc. + + * Cleanups related to adding prototypes to many declarations. + * rtl.h: If TREE_CODE undefined, make an incomplete union for tree. + (STDIO_PROTO): Define here if not already defined. + (read_rtx): Use STDIO_PROTO. + (output_constant_def, immed_real_const): Use "union tree_node *". + (immed_real_const_1): Move declaration to real.h. + (rtx_to_tree_code): Supply prototype. + * tree.h: If RTX_CODE undefined, make an incomplete struct for rtx. + Add some missing declarations of functions in stmt.c. + (STDIO_PROTO): Define here if not already defined. + * real.h: Add prototypes to declarations of functions in real.c. + (immed_real_const_1): Move declaration from rtl.h. + * output.h: Add missing declarations of functions in final.c. + (STDIO_PROTO): Don't define here. + * c-tree.h (STDIO_PROTO): Likewise. + * reload.h (PROTO, STDIO_PROTO): Likewise. + * bi-opcode.c (main): Don't write overly-long line. + * cse.c, emit-rtl.c: Use CONST_DOUBLE_FROM_REAL_VALUE macro for immed + real_const_1. + * expmed.c: Add prototypes for static functions. + * expr.c (bc_expand_expr): Call expand_decl and expand_decl_init, + not the bc_ versions. + * final.c: Include stdio.h and ctype.h early. + Add prototypes for static functions. + * function.c: Add prototypes for static functions. + (bc_expand_function_end, expand_function_end): Call new + expand_fixups instead of old fixup_gotos. + * global.c, local-alloc.c: Add prototypes for static functions. + * integrate.c: Likewise. + Use CONST_DOUBLE_FROM_REAL_VALUE macro for immed_real_const_1. + * optabs.c: Likewise. + * real.c: Make most functions static and add prototypes for + all static functions. + (GET_REAL, PUT_REAL): Cast parameter to proper pointer type in + some cases; use unsigned array. + * stmt.c: Add prototypes for static functions. + (expand_fixups): New function. + (fixup_gotos): Now static. + Don't call bc_fixup_gotos with wrong type (but now probably wrong + value). + (bc_*): Now static. + (expand_exit_loop_if_false): Call bc_expand_goto_internal with + proper null pointer. + (expand_decl_init): Call bc_expand_decl_init if writing bytecode. - Tue Aug 4 16:07:57 1992 Mike Stump (mrs@cygnus.com) +Thu Apr 21 14:21:56 1994 Ian Lance Taylor (ian@cygnus.com) - Sat Aug 1 16:52:20 1992 John Carr (jfc@Athena.MIT.EDU) - - * cp-decl.c (): Make sure the base type of an ARRAY_TYPE is - layedout before using it. - -Wed Aug 26 17:04:45 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * tree.h (current_block): Declared. - -Wed Aug 26 15:42:11 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - Major rework to have caller-saves emit load/store double insns when - possible and to avoid useless resaving of registers restored for - source accesses only. - * caller-save.c (toplevel): All arrays are multi-dimensional to - hold information for multiple save/restore insns. New variable - hard_regs_need_restore. - (choose_hard_reg_mode): New argument `nregs' indicating how many - hard registers are desired. All callers changed. - (init_caller_save): Change initialization to handle multiple - register saves. A call-used register can not be live across - if we can not find a single register mode to save it in. - (multiple register saves are optional) - (init_save_areas): Change initialization of regno_save_mem to - handle multiple register saves. - (setup_save_areas): Allocate space for consecutive hard registers - in aligned consecutive memory locations. When allocating space - for consecutive hard registers, also initialize regno_save_mem - for each hard register stored as a single word. - (save_call_clobbered_regs): Initialize hard_regs_need_restore. - Set hard_regs_need_restore to hard_regs_saved after crossing - a call. Also recompute n_regs_saved. At the end of a basic block - we need only restore registers in hard_regs_need_restore. - (set_reg_live, clear_reg_live): Do the right thing for - hard_regs_need_restore and hard_regs_saved. - (restore_referenced_regs): Just return if X is a clobber. - Test hard_regs_need_restore to determine when to restore a hard - register from the save area. - (insert_save_restore): Now returns the number of extra registers - saved/restored. New argument `maxrestore' which constrains how - many hard registers should be restored. All callers changed. - Do stores of consecutive registers with double store insns if - possible. Else do them with single word insns. Likewise for - loads, except constrained by maxrestore. Set hard_regs_saved - and hard_regs_need_restore appropriately to minimize useless - saves into the save area. Test against hard_regs_need_restore - when trying to restore multiple regs and similarly test against - hard_regs_saved when storing multiple regs. - - -Wed Aug 26 14:24:28 1992 Michael Meissner (meissner@osf.org) - - * mips.h (LINK_SPEC): Pass -shared, -non_shared on to linker. - * mips-bsd.h (LINK_SPEC): Ditto. - * mips-n5.h (LINK_SPEC): Ditto. - * mips-svr4.h (LINK_SPEC): Ditto. - * mips-sysv.h (LINK_SPEC): Ditto. - * iris.h (LINK_SPEC): Ditto. - * dec-osf1.h (LINK_SPEC): Ditto. - - * dec-osf1.h (DECSTATION): Don't define, since decstatn.h which is - included defines it. - (OBJECT_FILE_COFF): Undefine, since the DEC OSF/1 ldfcn doesn't - look like the coff version. - - * decstatn.h (LINK_SPEC): Don't define if already defined. - -Wed Aug 26 13:56:08 1992 Tom Wood (wood@dg-rtp.dg.com) - - * reorg.c: Enhance to fill the last delay slot of a call with an - unconditional jump. - (fill_simple_delay_slots): Look for the case of a call/branch - first. If this applies, record the jump as `last_delay_insn'. - Later, don't look for additional delay insns if the last one has - alreay been filled. - (mark_target_live_regs): A sequence may end in an unconditional - branch. - - * m88k.md (define_function_unit): Correct and simplify memory unit - specification. - -Wed Aug 26 01:56:30 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (poplevel): Store into BLOCK iff it is non-null. - -Tue Aug 25 23:24:45 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * sched.c: Add #ifdef INSN_SCHEDULING around variables only used - by schedule_insns. - (INSN_QUEUE_SIZE): Delete default definition. - - * optabs.c, expr.c: Partially undo Mar 7 change. Only call - emit_library_call with no_queue == 1 for const functions. - - * sparc.c (SF_MODES): Allow SImode in fp registers. - (output_floatsisf2, output_floatsidf2, output_floatsitf2): Delete. - * sparc.h: Delete declarations of the above 3 functions. - * sparc.md (float*, fix*): Rewrite to match hardware; take/put - integer input/output from/to fp register instead of memory or - general register. Delete 6 now obsolete combiner patterns. - -Tue Aug 25 16:40:15 1992 Brendan Kehoe (brendan@cygnus.com) - - * cccp.c (do_pragma): Warn if `#pragma implementation "foo.h"' is - invoked after "foo.h" has been included. - -Tue Aug 25 16:29:47 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * stmt.c (struct goto_fixup): New field context. - (fixup_cleanups): Function deleted. - (fixup_gotos): Put the fixup in a block, and put that block - into its proper place. Use sequences, not reorder_insns. - - * c-decl.c (current_block): New function. - (struct binding_level): New field this_block. - (poplevel): Use this_block if nonzero, rather than making new BLOCK. - - * sched.c (INSN_QUEUE_SIZE): Add default definition. - -Tue Aug 25 15:19:26 1992 Tom Wood (wood@dg-rtp.dg.com) - - * sched.c (schedule_block): Add a virtual cycle counter CLOCK. - Pass CLOCK to schedule_insn. - Compute the tail in the scheduling loop, not before it. - Enable the stall code that advances the insn queue. - Select the insn to schedule and block others with schedule_select. - (adjust_priority): Renamed from launch_link. - (schedule_insn): Renamed from launch_links. - - * genattrtab.c (struct attr_desc): Add unsigned_p field. - (struct function_unit_op): Add issue_delay, conflict_exp, and - issue_exp fields. Drop busyexp field. - (struct function_unit): Add needs_blockage_function, - needs_range_function, issue_delay, and max_blockage fields. Drop - costexp, and busy delay fields. - (enum operator): Add POS_MINUS_OP, EQ_OP, MIN_OP, RANGE_OP. - (operate_exp): Implement new ops. - (make_internal_attr): Set unsigned_p based on the value of SPECIAL. - (write_attr_get): Function is unsigned when unsigned_p is true. - (write_attr_valueq): Write hex value of large constants in a comment. - (simplify_by_exploding): Check for EXP having no EQ_ATTR expressions - and for all values as the default. - (find_and_mark_used_attributes): Add TERMS and NTERMS parameters. - (max_attr_value): Allow IF_THEN_ELSE. - (simplify_knowing, write_complex_function, extend_range): New - functions. - (gen_unit): Use local variables to name the fields. Change the - meaning of busy-delay to issue-delay. - (expand_units): Compute issue_exp. Write attributes for computing - `_unit_blockage' and `_unit_blockage_range' functions. - Compute max_blockage, and the needs_*_function values. - (write_function_unit_info): Write blockage function and conflict cost - functions using write_complex_function. Write new function_unit_desc - fields. - * genattr.c (extend_range, init_range): New functions. - (write_units): Add blockage_function, blockage_range_function, - max_blockage and max_issue_delay fields to struct function_unit_desc. - Drop max_busy_cost field. Write #defines for min/max blockage, - issue delay, multiplicity, and simultaneity and for BLOCKAGE_BITS - and INSN_QUEUE_SIZE. - (main): Compute the new values. - * sched.c (insn_queue): Use INSN_QUEUE_SIZE. - * rtl.def (define_function_unit): Update documentation. - - * sched.c (insn_units, insn_blockage, insn_tick, unit_last_insn, - unit_tick, unit_n_insns): New variables. - (schedule_insns): Allocate and initialize insn_tick, insn_units, and - insn_blockage. - (insn_unit, blockage_range, clear_units, prepare_unit, schedule_unit, - actual_hazard_this_instance, actual_hazard, potential_hazard, - schedule_select): New functions. - (schedule_block): Add dependencies to force insns to remain in order - at the end of a block rather than relying on having the scheduler - issue them in priority order. - - * sched.c (insn_cost): Add LINK and USED parameters. All callers - changed. Supply an ADJUST_COST interface. - (insn_cost): Make a dependence from a USE insn free. - (priority): Clear the link cost adjustment bits. - * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): New macros. - - * genattrtab.c (expand_units): Use the normalized values of the - unit's CONDEXP and BUSYEXP. - - * a29k.md (define_function_unit): Change meaning to ISSUE-DELAY. - * i960.md (define_function_unit): Change meaning to ISSUE-DELAY. - * m88k.md (type attribute, movdi movdf insns): Add loadd. - (unit attribute): Delete. - (function units): Correct simultaneity values. Break out - independent units. Add conflict matrix for the 88100 load double. - * mips.md (define_function_unit): Change meaning to ISSUE-DELAY. - * pa.md (define_function_unit): Change meaning to ISSUE-DELAY. - * sparc.md (define_function_unit): Change meaning to ISSUE-DELAY. - Merge FP_MUL, FP_DIV, and FP_SQRT into one function unit. - - * jump.c (delete_computation): Derived from delete_jump. - (delete_jump): Use delete_computation. - -Tue Aug 25 13:42:19 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * final.c (final_scan_insn): If 2 consec line notes have same line num, - can omit one. - -Tue Aug 25 13:38:19 1992 Michael Meissner (meissner@osf.org) - - * mips.h (MIPS_VERSION): Set Meissner version # to 24. - (ASM_FINAL_SPEC): Use %U to get the last file name created with - %u, rather than %u. - (ARG_POINTER_REGNUM): Use the hardwired register $0 as the - argument pointer, instead of the frame pointer, to allow the frame - pointer to be the same as the stack pointer after the initial - stack allocations. This is to allow GCC generated code to be - linked against MIPS shared libraries. The linker rearranges the - code, and needs to have a frame pointer, if used, to be the same - as the stack. The argument pointer is always eliminated in favor - of the stack pointer or frame pointer. - (FRAME_GROWS_DOWNWARD): Don't define this any more. - (STARTING_FRAME_OFFSET): Locals start after the stack area to pass - arguments to called functions. - (STACK_DYNAMIC_OFFSET): If function is a leaf function, but calls - __builtin_alloca, assume a default argument area, so the MIPS - linker doesn't think a second frame pointer is created. - (INITIAL_FRAME_POINTER_OFFSET): Don't define, since we use - elimination instead. - (ELIMINABLE_REGS): Define to eliminate both the stack pointer and - frame pointer, since they are now separate. - (CAN_ELIMINATE): Ditto. - (INITIAL_ELIMINATION_OFFSET): Ditto. - (ELIGIBLE_FOR_EPILOGUE_DELAY): Don't allow variables based off of - the argument pointer, in addition to frame and stack pointers. - (MUST_SAVE_REGISTER): Add in GP_REG_FIRST to 31, in case we ever - change the base of the gp registers. - (MIPS_STACK_ALIGN): Use ~7, instead of 0xfffffff8. - - * mips.c (number_functions_processed): Delete variable, nobody - uses it anymore. - (mips_debugger_offset): Add support for the frame pointer being - the same as the stack pointer, instead of being the same as the - argument pointer. Abort if the address is not based on any of the - stack, frame, or argument pointers. - (print_operand_address): Add checks for the arg pointer not being - eliminated. - (function_prologue): Ditto. - (mips_expand_prologue): Ditto. - (function_epilogue): Ditto. - (mips_expand_epilogue): Ditto. - (function_epilogue): Strip leading '*' if it exists from - current_function_name when printing statistics. Delete increment - of number_functions_processed. - (compute_frame_size): Don't base extra_size on the macro - STARTING_FRAME_OFFSET. If function is a leaf function, but calls - __builtin_alloca, allocate an arg area, so that the MIPS linker - will not complain about creating a second frame pointer. Move the - argument save area beneath local variables. - - * decrose.h (ASM_FINAL_SPEC): Use %U to get the last file name - created with %u, rather than %u. - - * gcc.c (do_spec_1): Add %U to return the last name generated with - %u. This is for use with mips-tfile, to find the generated object - file. - - -Mon Aug 24 18:09:34 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-typeck.c (build_unary_op): For ADDR_EXPR, just set TREE_CONSTANT - if staticp, but don't clear TREE_CONSTANT. - -Mon Aug 24 13:52:13 1992 Brendan Kehoe (brendan@cygnus.com) - - * gcc.c (process_command): Don't set verbose_flag if they make a - typo (e.g., `-v-E'); only when it's exactly "-v". - -Mon Aug 24 06:49:16 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (subst): When moving operation inside IF_THEN_ELSE, - make a new rtx instead of using SUBST due to sharing. - - * combine.c (simplify_comparison): Correct test for sign extension - when trying to widen comparison. - -Sun Aug 23 18:58:33 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * fold-const.c (fold): Avoid the normal STRIP_NOPS on arg of NOP_EXPR. - -Sun Aug 23 15:32:03 PDT 1992 Ron Guilmette (rfg at netcom.com) - - * stmt.c (expand_end_bindings): Generation of NOTE_INSN_BLOCK_END - moved down so that it occurs after call to `expand_cleanups'. - -Sun Aug 23 16:24:32 1992 Michael Meissner (meissner@osf.org) - - * decrose.h (CPP_SPEC): Don't define strcmp as __builtin_strcmp in - the case neither -fbuiltin nor -fno-builtin were defined. - * i386rose.h (CPP_SPEC): Ditto. - -Sun Aug 23 02:03:41 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * libgcc2.c (__builtin_new): Cast the result of malloc. - - * toplev.c: Fix typo in prev change. - - * c-decl.c (insert_block, delete_block): New functions. - * c-parse.y (primary, using compstmt): Call delete_block - instead of clearing TREE_USED. - * expr.c (expand_expr): For BIND_EXPR, call insert_block on the block. + Support taking the address of a text segment symbol when using + MIPS -membedded-pic. + * mips.h (embedded_pic_fnaddr_rtx): Declare. + (embedded_pic_offset): Declare. + (mips_finalize_pic): Declare. + (FINALIZE_PIC): Define. + (GO_IF_LEGITIMATE_ADDRESS): When using -membedded-pic, reject + combining an embedded PIC text reference with a register. + (ENCODE_SECTION_INFO): Under -membedded-pic set SYMBOL_REF_FLAG to + 0 for text segment symbols, 1 for data segment symbols. + * mips.c (embedded_pic_fnaddr_rtx): New variable. + (embedded_pic_offset): New function. + (mips_finalize_pic): New function. + (mips_select_section): When using -membedded-pic and not using + -fwritable-strings, put strings in the text section, not the read + only data section. + * mips.md (movsi): When using -membedded-pic, add special code + when loading a symbol directly to use an offset from the start of + the current function. + (get_fnaddr): New insn to get address of current function. + +Wed Apr 20 19:38:38 1994 Doug Evans (dje@cygnus.com) + + * regclass.c (init_reg_sets_1): Make static. + (init_reg_modes): New function. + (init_regs): Likewise. + * toplev.c (compile_file): Call init_regs after init_rtl. + (main): Delete call to init_reg_sets_1. + +Wed Apr 20 15:06:35 1994 Steve Chamberlain (sac@cygnus.com) + + * sh.c (REG_ODD): Allow DIs and DFs into odd registers. + (print_operand): New command char '@', change nop insn. + (synth_constant): Don't allocate temp reg during reload. + (expand_block_move): Don't expand if TARGET_SMALLCODE. + (prepare_split_double_ops): Deleted. + (howshift, multcosts): Work out costs exactly. + (dump_table): Emit a label before the align. + (hi_const): TARGET_SHORTADDR makes more things HI consts. + (machine_dependent_reorg): Look through SUBREGS. + (from_compare): Get better code when relational args are loaded + into regs now. + (expand_acall): Cope with TARGET_BSR. + (general_movdst_operand): Don't allow illegal autoincs. + (mac_operand): New function. + (sh_function_arg, sh_function_partial_nregs): From sh.h + * sh.h (PARANOID_BIT, RETR2_BIT, CONSTLEN0_BIT, BSR_BIT, + SHORTADDR_BIT, TARGET_PARANOID, TARGET_RETR2, TARGET_CONSTLEN0, + TARGET_BSR, TARGET_SHORTADDR, TARGET_SWITCHES): New options. + (OVERRIDE_OPTIONS): No function_cse when TARGET_BSR. + (FIRST_RET_REG): Depends on TARGET_RETR2. + (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Moved to sh.c + (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Define. + (MODE_DISP_OK_8): Define. + (REG_OK_FOR_PRE_POST_P): Allow a pseudoreg. + (GO_IF_LEGITIMATE_ADDRESS): Allow DI addressing modes. + (MOVE_RATIO): Depends on TARGET_SMALLCODE. + * sh.md (interrupt_function): New attr. + (define_delay): Account for interrupt functions. + (addc): Describe pattern better. + (adddi3): Expanded better. + (peepholes): Deleted many obsolete patterns. -Sat Aug 22 14:12:02 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * configure: Use absolute pathname in value of INSTALL. - -Sat Aug 22 06:42:39 1992 Tom Wood (wood@dg-rtp.dg.com) - - * emit-rtl.c (insn_emit_once): Provide a zero constant for CC modes. - -Fri Aug 21 18:33:30 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * reorg.c (fill_simple_delay_slots): Always try to fill empty - delay slots with insns from beyond the delay insn, even if - optimize_skip was attempted. - (fill_simple_delay_slots): When filling with insns from after the - delay insn, make sure to always account for the sets and - references in the delay insn. - -Fri Aug 21 16:47:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * sparc.c (print_operand): Use output_operand_error for unknown code. - - * c-typeck.c (build_conditional_expr): Use TREE_READONLY and - TREE_THIS_VOLATILE, not TYPE_... - -Fri Aug 21 14:02:20 1992 James Van Artsdalen (james at bigtex.cactus.org) - - * reload.c (find_dummy_reload): Restore original RTX instead of - passed IN rtx. - -Fri Aug 21 07:53:12 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * optabs.c (expand_binop): If, e.g., mulqi3 doesn't exist, try - mulqihi3. - - * rs6000.h (FUNCTION_ARG): Don't make an EXPR_LIST if making a libcall. - - * combine.c (subst): Move up test for too many restarts. - If we restart, clear OP0_MODE since we don't know it. - -Fri Aug 21 02:11:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * emit-rtl.c (emit_insns_after): New function. - -Fri Aug 21 01:53:04 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * pa.md (call_value+1): For non-dynamic calls, use the "call" - attribute, set length to 1, and fix output template to work - properly with delay slots. - - * pa.md (address and use_call_clobbered attributes): Deleted, - these attributes are useless. All references deleted. - (call define delay): Use "in_branch_delay" as the condition since - "call" delay slots and unconditional "branch" delay slots allow the - same type of insns. - (in_call_delay conditional): Deleted. - (branch define delay): Do not define an annul-if-true delay slot. - It is useless for an unconditional branch. - (all delay branch conditionals): Make sure "call", "dyncall", "multi", - and "milli" insns are explicitly disallowed in delay slots. - - * pa.c (output_mul_insn): Delete nop after branch in template, - conditionally emit a nop if the delay slot was not filled. (via %#) - - * pa.c (output_function_prologue): Handle profiling in a function - without a frame pointer. - -Thu Aug 20 16:16:40 1992 Tom Wood (wood@dg-rtp.dg.com) - - * va-m88k.h (__INT_VARARGS_H): Define this to avoid trouble on DG/UX. - -Thu Aug 20 11:07:26 1992 Michael Meissner (meissner@osf.org) - - * final.c: Move include of stdio.h before output.h. - -Thu Aug 20 01:08:55 1992 Pat Rankin (rankin at eql.caltech.edu) - - Support for bootstrapping cpp & cc1 with VAX C under VMS. - - * xm-vax-vms.h (USE_C_ALLOCA,NO_STAB_H): Define for VAXC. - (bcopy,bzero,bcmp,index,rindex): Define as ANSI/SYSV counterparts. - (QSORT_WORKAROUND, qsort): New macros, for avoiding buggy - qsort in VAXCRTL library. - (check_for_full_enumeration_handling,...): Use macros to shorten - several external names which are longer than 31 characters to - avoid warnings about truncation. - (unlink): Remove redundant definition. - * vax.c (not_qsort): New function. - * cccp.c (toplevel: create_definition): Move forward declaration - past the definition of struct macrodef. - (strncat): New function. - (bcopy, bzero, bcmp): Remove #if VMS code--always use inline C loops. - * genrecog.c, reload1.c: Compare enums (preds. codes, mem_mode) - explicitly to 0 in conditionals to work-around a VAXC bug that - disallows enum as arguments to && and || operators. - * getpwd.c (getpwd): Add alternative defn for VMS. - * toplev.c (environ): Make declaration conditional. - (main: -g debugging setup): Get rid of \ in #if condition. - * make-cccp.com,make-cc1.com (CC,CFLAGS,LIBS): Add commented command - variants for bootstrapping gcc-cpp and gcc-cc1 with VAXC. - * make-cccp.com (alloca): Build alloca.obj from alloca.c if LIBS needs it. - - Not yet installed: - - * machmode.h (FILE_TYPE): For VMS, make sure FILE_TYPE is not - defined as a macro, so that VAXC's won't break tree.h. - * genemit.c (gen_exp): #if VAXC, output a newline in front of - gen_rtx calls, to prevent excessively long lines in insn-emit.c. - -Thu Aug 20 11:32:18 1992 Michael Tiemann (tiemann@mole.gnu.ai.mit.edu) - - * cp-tree.h: Fix incorrect comment about "$this" needing to - be lexicographically less than any other identifier. - -Thu Aug 20 05:37:00 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * a29k.md (load_multiple): Operand 2 should be a MATCH_OPERAND. - (store_multiple_{,no_}bug): Likewise. - - * reorg.c (mark_set_resources): Fix two bugs in last change. - - * expr.c (init_expr_once): Set direct_load and direct_store if SOME - hard register can be loaded or stored; not just if the first one - we pick can be. - -Thu Aug 20 01:40:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * combine.c, emit-rtl.c, final.c, gcc.c, genattrtab.c, mips-tfile.c: - Put include of stdio.h after GCC header files - (for i860-stardent-sysv4). - * tree.c: Likewise. - - * fixincludes (stdio.h): Rename va_list to __va_list__ to coexist - with gvarargs.h. - -Wed Aug 19 21:06:49 1992 Jim Wilson (wilson@cygnus.com) - - * cccp.c (finclude): Increment indepth before calling - trigraph_pcp, so that warning uses the correct file name. - -Wed Aug 19 07:07:41 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (force_to_mode): Add missing test of and_optab. - - * genconfig.c (have_cmove_flag): New variable. - (walk_insn_part): Add new parm NON_PC_SET_SRC; all callers change. - Look for IF_THEN_ELSE in a SET_SRC that isn't setting PC and - set have_cmove_flag if so. - (main): Define HAVE_conditional_move if have_cmove_flag is non-zero. - * combine.c (subst, case AND): Only make IF_THEN_ELSE if conditional - moves exist. - - * cse.c (find_comparison_args): Look for comparison operations - if the second arg is 0 in any mode. - (record_jump_cond): Don't make classes equivalent for floating-point - equality comparison. - - * local-alloc.c (alloc_qty_for_scratch, block_alloc): Provide - alternate code in some cases when REGISTER_CONSTRAINTS is not - defined. - (requires_inout_p): Only used when REGISTER_CONSTRAINTS is defined. - - * reorg.c (mark_set_resources): Add new parm IN_DEST; add callers - changed. - Rework to scan an entire insn to look for auto-inc operations. - - * unroll.c (copy_loop_body): Add missing declaration of EXIT_LABEL - parameter. - - * function.c (instantiate_decl): New function. - (instantiate_decls{,_1}): Call it. - - * combine.c (simplify_comparison): Add a few more cases where we can - do the comparison in a wider mode. - - * combine.c (distribute_notes, REG_EQUAL): Don't put back a note - with a non-constant expression since it may no longer be valid. - -Tue Aug 18 23:07:33 1992 Mike Stump (mrs@cygnus.com) - - * expr.c (expand_expr): The first expansion of a TARGET_EXPR - is marked by DECL_RTL (slot) being filled in AND TREE_OPERAND - (exp, 1) being wiped-out with a NULL_TREE, not just the - DECL_RTL (slot) being filled in. - -Tue Aug 18 00:07:23 1992 Dennis P. Glatting (dglattin@trirex.com) - - * objc-actions.c - (build_selector_translation_table): NULL-terminate the - selector list. Mark _OBJC_SELECTOR_REFERENCES_decl as static, - not extern. - -Tue Aug 18 21:38:46 1992 Mike Stump (mrs@hal) - - * xcoffout.c (assign_type_number): Skip decls with no name. - - * expr.c (expand_expr): When expanding TARGET_EXPRs, make sure - that they are only expanded once, after the first expansion, - the rtl can be used without further expansions. - -Tue Aug 18 12:58:33 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * x-i386sco (X_CFLAGS): Defined. - - * stmt.c (expand_return): Call emit_queue in ignore-the-value case. - (expand_end_bindings): Check DECL_IN_SYSTEM_HEADER for unused warnings. - - * combine.c (simplify_comparison): - Rearrange conditional in SUBREG case. - -Tue Aug 18 06:49:43 1992 Tom Wood (wood@dg-rtp.dg.com) - - * cccp.c (HOST_WIDE_INT): Copy definition from machmode.h. - - * c-typeck.c (parser_build_binary_op): Replace the assignment of CLASS. - - * configure (Makefile edits): Make the edits independent. - * Makefile.in (sed marker): Use the order {target, host, cross-make}. - -Tue Aug 18 00:15:12 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-typeck.c (parser_build_binary_op): - For Z Cygnus merge. - - Tue Aug 4 12:58:59 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl.c (pushtag): Don't set DECL_IGNORED_P for binding - layer markers, use only DECL_SOURCE_LINE == 0, as otherwise, - it messes up dbxout.c. - - Tue Aug 4 11:59:36 1992 Mike Stump (mrs@cygnus.com) - - Tue Aug 4 13:43:55 1992 Chip Salzenberg (chip@tct.com) - - * cp-method.c (hack_identifier): Remove redundant call of - assemble_external. - - Tue Aug 4 10:23:02 1992 Chip Salzenberg (chip@tct.com) - - * cp-decl.c (pushdecl): Any kind of DECL should be good enough - at global scope, not just a TEMPLATE_DECL. - - Sun Aug 2 21:12:55 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) - - * cp-tree.c: change definition of __eprintf to match libgcc2.c and - assert.h - - Fri Jul 31 16:53:26 1992 Mike Stump (mrs@cygnus.com) - - * cp-tree (break_out_calls): Only make ony copy of a node on - 's' and 'e' nodes. Handle 'r' just like 's' and 'e' because - nodes of type 'r' can be of different sizes (the old code - would do the wrong thing for a COMPONENT_REF). - - Thu Jul 30 11:46:14 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-init.c (emit_base_init): Set transparent basetypes (those w/o - ctors) as marked if we need to walk up the tree to find a ctor. - - Wed Jul 29 03:25:51 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-decl.c (grokdeclarator): In SCOPE_REF case, sort out visibility - declarations from other declarations, since the compiler will - ultimately handle them differently. This is a part of the solution - to p525. - (finish_method): Tentative (and probably wrong) fix for carrying - along inline methods delcared within a class that really belong to - nested classes of the class. This may be more of the solution to - p525. - - * cp-init.c (build_offset_ref): Use IDENTIFIER_TYPE_VALUE of CNAME - when CURRENT_CLASS_DECL is 0. - - * cp-class.c (finish_struct): Don't give errors for TYPE_DECLs in a - struct that are really only meant for FIELD_DECLs. - - Tue Jul 28 23:36:58 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl.c (grok_op_properties): Do not core dump on parse errors. - - Tue Jul 28 22:43:12 1992 Mark Eichin (eichin@cygnus.com) - - * cp-pt.c (end_template_instantiation) YYDEBUG is now defined in - cp-parse.h -- so don't assume that it's -2 (since under byacc it is - -1 anyway.) iomanip.C compiles again. - - Tue Jul 28 22:33:46 1992 Mike Stump (mrs@cygnus.com) - - * cp-typeck.c (build_c_cast): Allow cast to array type in - some situations to be more compatible with Cfront. - - Tue Jul 28 22:05:14 1992 Mark Eichin (eichin@cygnus.com) - - * cp-parse.y (print_parse_statistics): don't reference TOKEN_LENGTH - or REDUCE_LENGTH unless GATHER_STATISTICS is set. (YYDEBUG alone is - not a sufficient condition.) - - Tue Jul 28 19:18:30 1992 Mike Stump (mrs@cygnus.com) - - * cp-tree.c (break_out_calls): Don't do anything special to - SAVE_EXPRs, as they cannot contain calls that would need - breaking out. This fixes a problem introduced on Jul 15, by - Ron Guilmette. - - Mon Jul 27 16:55:52 1992 Mike Stump (mrs@cygnus.com) - - * c++: Fix errors introduced by rms. Bullet-proof handling - of arguments with funny things in them such as newlines, - spaces, tabs, single quotes, double quotes, etc... - - Mon Jul 27 15:03:23 1992 Ken Raeburn (raeburn@cygnus.com) - - * cp-init.c (build_vec_delete): Extract size of type even for - destructorless types, so value can be computed to pass to delete - operator. - - * Bludgeon interface/implementation code into leaving templates - alone, until we've figured out how to handle their interaction - properly: - * cp-parse.y (template_instantiate_once): Temporarily set interface - flags to `unknown' while processing member templates. - * cp-decl.c (grokfndecl): Even if class vtable is getting written - out, regardless of interface setting of class and write_virtuals - flag, don't force virtual destructor of template class to be public. - * cp-tree.h (struct pending_inline): New field `interface'. - * cp-lex.c (do_pending_inlines): Restore interface flags from stored - values, rather than calling extract_interface_info. - (process_next_inline): Likewise, if more pending inlines exist; else - do call extract_interface_info. - (reinit_parse_for_method): Save away interface flags. - (cons_up_default_function): Ditto. - * cp-pt.c (instantiate_template): Set saved interface flag to - `unknown'. - (end_template_instantiation): Set CLASSTYPE_INTERFACE_UNKNOWN. - - * cp-pt.c (instantiate_member_templates): Deleted some unused code. - - * cp-decl.c (grokfndecl): Make class methods public if - `implementation' pragma is set. - - * cp-pt.c (pending_templates): No longer exported. - (add_pending_template): Ditto. - * cp-parse.y (primary): Don't check it; always call - do_pending_templates. - - Fri Jul 24 14:22:39 1992 Mike Stump (mrs@cygnus.com) - - * cp-decl.c (init_decl_processing, finish_function), - cp-method.c (build_decl_overload, build_opfncall), cp-init.c - (build_x_delete, build_delete, build_vec_delete): Add support - for two argument delete to support ARM 12.5. In some cases, - the argument is smaller than it should be. - - Thu Jul 23 08:12:16 1992 Mike Stump (mrs@cygnus.com) - - * cp-lex.c: Update wide character handling from c-lex.c and make - the type of multicharacter constants be int per ANSI C++ WP. - - * cp-decl.c (init_decl_processing, grokdeclarator), cp-lex.h, - gplus.gperf, cp-lex.c (init_lex), cp-decl2.c (groktypefield), - cp-method.c (build_overload_name): Add support for wchar_t as a - distinct type to conform to x3j16 working paper. - * cp-hash.h: Regenerated. - - Wed Jul 22 17:41:08 1992 Mark Eichin (eichin@cygnus.com) - - * cp-parse.y (structsp): note_got_semicolon was called before - finish_struct (which always clears the got_semicolon bit.) However, - note_got_semicolon was only called if yychar==';', without checking - for YYEMPTY. - - Tue Jul 21 22:59:32 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-typeck.c (mark_addressable): If we have a recursive call to an - otherwise inline function, clear TREE_EXTERNAL so the whole function - is written to the asm file. - - Tue Jul 21 05:31:10 1992 Ken Raeburn (raeburn@cygnus.com) - - * cp-tree.h (start_type_method): Deleted unused declaration. - - * cp-pt.c (tsubst): Fix propagation of qualifiers in several cases. - - * cp-pt.c (tsubst, case FUNCTION_DECL): Look for matches that differ - only in return type. - - * cp-pt.c (tsubst, case FUNCTION_DECL): Rewrite name of - type-conversion operators, in case the target type involves a - template parameter. - - Mon Jul 20 03:35:44 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-class.c (add_virtual_function): Don't crash if - CURRENT_CLASS_TYPE is NULL_TREE. - * cp-decl2.c (grokfield): Ditto. - -Tue Aug 4 15:36:07 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (finish_decl): Don't do expand_decl_init for FUNCTION_DECL. - - * c-typeck.c (build_conditional_expr): Merged const and volatile flags - of incoming types. - -Tue Aug 4 11:15:47 1992 Chip Salzenberg (chip@tct.com) - - * c-decl.c (finish_struct): If bit field is of an unsigned - type that promotes to int, promote it unsigned if traditional - or if it is the same size as int. - (start_function): Ditto for function return value. - * c-typeck.c (default_conversion): Ditto -- fix bug that - promotes short to unsigned if sizeof(short) == sizeof(int). - -Tue Aug 4 15:12:51 1992 Tom Wood (wood@dg-rtp.dg.com) - - * svr3.h (USING_SVR3_H): Define. - * svr4.h (USING_SVR4_H): Define. - * aoutos.h (USING_AOUTOS_H): Define. - * m88k.h (EXTRA_SECTIONS): Base on the above defines. - -Tue Aug 4 14:22:44 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * dbxout.c: Include output.h. - -Tue Aug 4 00:21:06 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (install-common): Install protoize and related files - if they were compiled. - (install-proto): Target deleted. - (dbxout.o): Depend on output.h. - -Mon Aug 3 02:04:03 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (finish_function): Test only can_reach_end for the warning - about reaching the end of a non-void function. - (poplevel): If apparently nested inline function has - DECL_ABSTRACT_ORIGIN, don't output it; propagate TREE_ADDRESSABLE. - (pushdecl): When copying inline details into an extern decl, - copy DECL_RESULT, TREE_ASM_WRITTEN. Set DECL_ABSTRACT_ORIGIN. - - * c-parse.y (datadef): For empty declaration, use pedwarn. - * objc-parse.y (datadef, mydecl): Likewise. - - * Makefile.in (install-cross-tools): Install nm from tooldir. - - * varasm.c: Include real.h. - * sparcv4.h: Don't include real.h. - - * flow.c (mark_used_regs): Do recurse in setting of global hard reg. - Do set reg_next_use for global hard reg. - - * objc-parse.y (reserved_declspecs, declmods): Change as in c-parse.y. - -Mon Aug 3 03:24:17 1992 Paul Eggert (eggert@twinsun.com) - - * c-parse.y (reserved_declspecs): Warn if storage class occurs here. - (declmods): Warn if storage class is not first. - -Sun Aug 2 21:44:34 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * emit-rtl.c (gen_rtx, case REG): Don't use frame_pointer_rtx or - arg_pointer_rtx if reload is in progress. - - * jump.c (jump_optimize): When replacing jumps with logical - expressions, use preserve_subexpressions_p. - - * calls.c (expand_call): Use HOST_WIDE_INT instead of int when - comparing a pointer to an integer constant. - * flow.c (find_use_as_address): Likewise; also when returning int. - * integrate.c (expand_inline_function): Cast -1 to (HOST_WIDE_INT) - first. - - * cse.c (canon_hash): Use HOST_WIDE_INT instead of int when casting - pointers to integers. - * print-tree.c (print_node): Likewise. - * tree.c (TYPE_HASH): Likewise. - * varasm.c (const_hash, SYMHASH): Likewise. - - * toplev.c: (main): Don't cast pointers to int unnecessarily. - - * tree.c: Include function.h after tree.h. - - * rtl.h (NOTE_BLOCK_NUMBER): Change definition to simpler form. - (SET_NOTE_BLOCK_NUMBER): Deleted. - (xrealloc, oballoc, permalloc): Declare here as well as in tree.h. - * function.c (identify_blocks, reorder_blocks): Don't use - SET_NOTE_BLOCK_NUMBER. - - * varasm.c (struct addr_const): Use HOST_WIDE_INT for OFFSET. - - * combine.c (reg_sign_bit_copies): New variable. - (combine_instructions): Initialize it. - (set_significant): Set it. - (try_combine): Set subst_low_cuid immediately before calling `subst' - to the INSN_CUID of the lowest insn involved in the call. - Change XOR with out-of-range constant to (not (xor ...)). - Call both split_insns and find_split_point; pass extra parm to - find_split_point. - Record I2DEST's value if I2 now sets it; similarly for I1DEST. - (find_split_point): Add new arg INSN. - If AND'ing with a large single-bit constant and we only care about - equality with zero, replace with bit extraction. - Make two shifts for ZERO_EXTRACTs unless very narrow. - (subst): Move RESTART label earlier. - If we have a simple operation applied to IF_THEN_ELSE, move - the operation inside the two arms. - (subst, case SUBREG): Use force_to_mode. - (subst, case NOT): Change (not (xor X C)) to (xor X ~C). - (subst, case NEG): Remove optimization of (neg (abs X)); redundant. - Convert (neg (xor A 1)) to (plus A -1) if A is known to be 0 or 1. - (subst, case IF_THEN_ELSE): Simplify if an arm contains a register - being tested by substiting the known value. - Put constant integer in last arm is can reverse comparison. - (subst, case SET): Use gen_lowpart_for_combine. - (subst, case AND): Make IF_THEN_ELSE when appropriate. - (subst, case IOR): (ior A C) can sometimes be just C. - (subst, case XOR): Go back and restart when canonicalizing. - (subst, case ABS): Use num_sign_bit_copies. - (make_extraction): Call force_to_mode. - (make_compound_operation): Look at optabs rather that explicitly - checking for operations and assuming we have SImode. - Handle (ashiftrt (OP (ashift foo C1) C3) C2). - (force_to_mode): Only change mode of arithmetic if optab says we - have operation in that mode. - Remove unneeded ASHIFTRT; add handling for IF_THEN_ELSE. - (significant_bits, case NEG): Call num_sign_bit_copies. - (significant_bits, case ABS, case [US]{MIN,MAX}, IF_THEN_ELSE): New. - (num_sign_bit_copies): New function. - (simplify_shift_const): Remove ASHIFTRT if value is known -1 or 0. - Use num_sign_bit_copies to simplify (ashiftrt (ashift ...) ...) - and (ashiftrt (neg ...) ...). - Remove now redundant case when VAROP is a PLUS. - (simplify_comparison): If A is known to be -1 or 0, A != -1 is A == 0. - Simplify unsigned tests that really check the sign bit. - (simplify_comparison, case ASHIFTRT): Convert to LSHIFTRT if - equality comparison with zero. - (get_last_value): Check if the desired register is set in the - insn before the one whose INSN_CUID is subst_low_cuid. - - * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Add missing - call to TREE_CODE. - - * reload1.c (reload): Set reload_in_progress earlier. - - * fold-const.c (optimize_bit_field_compare): Correct bogus use of - types in expressions; always do computation in a type wide enough - for the result. - -Sun Aug 2 01:30:22 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * objc-parse.y (attrib): Copied from c-parse.y. - -Sat Aug 1 13:34:49 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-pragma.c (HANDLE_PRAGMA_WEAK): Define only if SET_ASM_OP defined. - - * vax-vms.h: Renamed from vms.h. - * xm-vax-vms.h: Renamed from xm-vms.h. - * configure (vax-*-vms): Change file names. - -Sat Aug 1 16:13:09 1992 Mark Eichin (eichin@cygnus.com) - - * config/spc-sol2.h (ASM_OUTPUT_DWARF_STRING): redefinition was - incorrect, and uneeded; while Solaris as doesn't support .string, it - does support .asciz, and sparcv4.h takes care of including that - definition. - -Fri Jul 31 08:19:41 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu - - * combine.c (try_combine): Correctly handle implicit deaths of - I2DEST and I1DEST. - - * cexp.y: Add declaration for xmalloc. - - * cccp.c: Add declarations for malloc and realloc. - Include stddef.h when __STDC__ is defined. - (PTR_INT_TYPE): New macro. - (pcfinclude): Use it. - - * c-decl.c (init_decl_processing): __builtin_return_address, - __builtin_frame_address, and __builtin_saveregs all return void *. - - * reload.c (find_reloads_address_1): Convert another push_reload - call into a call to find_reloads_address_part. - - * reload1.c (gen_input_reload): Correct order of insns emitted - when using secondary memory. - - * reload1.c (reload_as_needed): Add missing semicolon after macro. - - * combine.c (distribute_notes, case REG_DEAD): If a register used - exactly twice is referenced in both I2 and I3, show it is used 3 times. - - * final.c (output_operand): Abort if X is a pseudo. - - * cse.c (exp_equiv_p, case CONST_INT): Use INTVAL instead of XINT. - - * expr.c (convert_move): Put FROM into a register if it is a SUBREG. - (For extension case.) - -Fri Jul 31 08:19:05 1992 Tom Wood (wood@dg-rtp.dg.com) - - * function.c (reposition_prologue_and_epilogue_notes): Search for - the notes without using basic_block_end[0] or basic_block_head[N-1]. - -Fri Jul 31 08:18:18 1992 Michael Meissner (meissner@osf.org) - - * reorg.c (get_branch_condition): Return 0 if all tests fall through. - -Fri Jul 31 02:28:02 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * glimits.h: Renamed from limits.h. - * Makefile.in (LIMITS_H): Deleted. - (install-limits-h): Use glimits.h, not limits.h. - * libgcc2.c: Include glimits.h. - -Thu Jul 30 09:54:07 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.h (FUNCTION_BOUNDARY, ASM_OUTPUT_ALIGN_CODE): Pack code - more tightly for the m88110. - - * m88k.md (cpu attribute): List m88100 first for more efficient - code in insn-attrtab.c. - - * m88k.md (rotate/and split pattern): Fix typo. - -Thu Jul 30 00:02:45 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * i860mach.h: New file. - * configure (i860-*-mach*): New alternative. - - * svr3.h (BSS_SECTION_FUNCTION): New macro. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Enable these. - * tower-as.h (BSS_SECTION_FUNCTION): Deleted. - * dpx2.h (EXTRA_SECTION_FUNCTIONS): Deleted. - * att386.h (BSS_SECTION_FUNCTION): #undef before defining. - - * i860v3.h (USE_CONST_SECTION): #undef before defining. - -Wed Jul 29 20:04:55 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * sparc.md (cmpsi): Delete 'J' constraint. - -Wed Jul 29 00:38:45 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-lex.c (yylex): When traditional, convert 0x80000000 to -0x80000000. - - * gcc.c (link_command_spec): Accept -static but do nothing with it. - - * loop.c (move_movables): When testing whether a reg contains - the function address of a call_insn in a libcall block, - use reg_referenced_p, to ignore destinations. - - * stor-layout.c (layout_record): Take account of - maximum_field_alignment when using the field's alignment. - - * c-parse.y (attrib): Fix previous change--the missing arg - was the last arg. - - * fixincludes: Don't repeat the directory-link-chasing loop - more than twice. Combine $prevdirs with $dirs--they had same value. - Properly discard $d itself from the output of find. - Find the links to directories by finding each link - and testing it with test. Add $newdirs into $files. - -Tue Jul 28 12:46:31 1992 Michael Meissner (meissner@osf.org) - - * c-common.c (decl_attributes): Call layout_decl with two arguments. - - * c-parse.y (attribute processing): Correctly call tree_cons with - three arguments, passing NULL_TREE for the purpose argument. - - * emit-rtl.c (make_insn_raw): Eliminate unused argument pat_formals, - and modify all callers. - (make_jump_insn_raw): Ditto. - - * reorg.c (fill_slots_from_thread): Function follow_jumps only takes - one argument. - (relax_delay_slots): Ditto. - -Tue Jul 28 16:04:43 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * dpx2g.h (ASM_OUTPUT_IDENT): #undef it. - - * c-decl.c (duplicate_decls): Handle warn_redundant_decls here. - But don't warn if function definition follows a declaration. - (pushdecl): Don't handle it here. - (grokparms): Don't warn about non-prototype decl in system header. - - * c-convert.c (convert): If main variants match, - but the type is not identical, make a NOP_EXPR. - -Tue Jul 28 10:06:18 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * mips.md: Correct use of `*' in constraints. Put it before each - letter to ignore, not each group to ignore. - -Tue Jul 28 01:23:35 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * dbxout.c (dbxout_parms): Do something for structures - passed by invisible reference, and living in memory. - - * gstddef.h (wchar_t): Alternate typedef for C++. - - * Makefile.in (extraclean): Delete config/ChangeLog. - - * m68k.md (probe): Use %a0 to output the address. - -Mon Jul 27 20:08:21 1992 Mike Stump (mrs@hal) - - * c++: Fix errors introduced by rms. Bullet-proof handling of - arguments with funny things in them such as newlines, spaces, tabs, - single quotes, double quotes, etc... - -Mon Jul 27 17:38:52 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * sparc.md: Add DEFINE_SPLITs to optimize logic operation with - certain immediate values. - - * sparc.md: Correct inconsistent operand constraints in peepholes. - - * sparc.h (ASM_LONG, ASM_SHORT, ASM_BYTE_OP): Definitions added. - (ASM_OUTPUT_DOUBLE): Use REAL_VALUE_TO_TARGET_DOUBLE to convert. - (ASM_OUTPUT_FLOAT): Use REAL_VALUE_TO_TARGET_SINGLE to convert. - (ASM_OUTPUT_INT): Use ASM_LONG pseudo-op. - (ASM_OUTPUT_SHORT): Use ASM_SHORT pseudo-op. - (ASM_OUTPUT_CHAR): Use ASM_BYTE_OP pseudo-op. - (ASM_OUTPUT_BYTE): Use ASM_BYTE_OP pseudo-op. - -Mon Jul 27 17:10:19 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gstdarg.h (va_arg): Don't use +=; no need to set AP twice. - -Sun Jul 26 14:21:13 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * final.c (final_scan_insn): Align jump table only if - READONLY_DATA_SECTION. Otherwise, the table is in the text section. - - * collect2.c (dup2): Defined, if NO_DUP2. - - * plexus.h: New file. - * m68k.c (output_function_prologue): Make a probe instruction - if NEED_PROBE if nonzero. - * configure (m68k-plexus-sysv*): New alternative. - - * c-convert.c (convert): Succeed if TYPE is the main variant - of the given type. - * c-typeck.c (build_conditional_expr): Compare using TYPE_MAIN_VARIANT. - - * c-decl.c (duplicate_decls): Copy old RTL *before* make_var_volatile. - -Sat Jul 25 21:45:44 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (pushdecl): Never reuse global fcn decl in place of - local extern; just copy some info from it. - -Sat Jul 25 06:14:58 1992 Tom Wood (wood@dg-rtp.dg.com) - - * expmed.c (expand_divmod): Eliminate the generation of branches - when possible. - -Sat Jul 25 04:34:09 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * fixincludes (X11/Xmu/Xmu.h): Fix this or X11/Xmu.h, - whichever exists. - -Sat Jul 25 00:41:12 1992 Paul Eggert (eggert@twinsun.com) - - * c-parse.y (datadecl): Diagnose empty declarations in old-style - function headers. - * c-decl.c (shadow_tag_warned): New function. - - * c-lex.c (yylex): Diagnose `1.0fl'. Issue just one - diagnostic for `1e1000000f'. - -Fri Jul 24 19:25:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * dbxout.c (dbxout_symbol): Distinguish implicit C++ typedefs - from explicit C typedefs for structs, using DECL_SOURCE_LINE. - - * c-decl.c (duplicate_decls): Use TYPE_MAIN_VARIANT even for compares - with void_type_node. - (grokdeclarator, get_parm_info, store_parm_decls): Likewise. - -Fri Jul 24 10:07:13 PDT 1992 Ron Guilmette (rfg at ncd.com) - - * dwarfout.c (is_tagged_type): New function added. - (member_attribute): Use it. - (type_ok_for_scope): Rewritten to eliminate serious bugs. - (output_type): Call `output_pending_types_for_scope' at the end of - struct/union types (which are themselves scopes in C++). - -Fri Jul 24 13:36:46 1992 Michael Meissner (meissner@osf.org) - - * dbxout.c (toplevel): Include defaults.h to get the definition of - ASM_STABD_OP. - - * Makefile.in (dbxout.o): Add defaults.h dependent. - - * i386rose.h (CC1_SPEC): Remove MIPS switches accidently left in. - -Thu Jul 23 09:49:43 PDT 1992 Ron Guilmette (rfg at ncd.com) - - * dwarfout.c (is_body_block): Rewritten for greater saftey. - (output_block): Fixed to deal correctly with non-inlined blocks. - -Thu Jul 23 15:37:23 1992 Jeffrey A Law (law at schirf.cs.utah.edu) - - * flow.c (propagate_block): Change "struct foo" to "struct sometimes". - -Thu Jul 23 15:10:51 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.h (ASM_OUTPUT_CASE_LABEL): Change to readonly section if the - table contains addresses. - (JUMP_TABLES_IN_TEXT_SECTION): True by default. - -Thu Jul 23 13:54:27 1992 Michael Meissner (meissner@osf.org) - - * mips.c (large_int): Use HOST_WIDE_INT type to hold INTVAL. - (gen_int_relational): Ditto. - (gen_conditonal_branch): Don't emit any insns if the result is - always false, and emit a normal jump if the result is always true. - - * mips.c (mips_move_1word): Count LABEL_REF's as a memory - reference. Rework half-pic load of symbols, to not expect movsi - to have converted the load address into a load, and for CONST's, - do the addition after the pointer is loaded. - - * mips.md (type attribute, movsi3): Eliminate 'pic' attribute, - just use 'load' instead. - (fix_truncdfsi2): Make this a define_insn, instead of a - define_exapnd and an insn, and use match_scratch to allocate the - two scratch registers. Adjust length costs, so that they match - the current code the assembler produces. - (fix_truncsfsi2): Ditto. - (movsi): Don't convert load of half-pic addresses and CONST's into - the real load. It causes more problems than it solves. Adjust - cost of half-pic addresses to be 2, not 4. - - * mips-tfile.c (parse_def): Allow spaces in names, since C++ - templates produce things like: #.def SMANIP; ... - (parse_stabs_common): Code from Lisa Repka, to handle symbol +/- - offset, and to look up things in the external string table, if the - name is not found in the local string table. - -Wed Jul 22 13:08:33 1992 Jeffrey A. Law (law@schirf.cs.utah.edu) - - * sparc.md (movdf+1): Use new 'T' and 'U' constraints to - determine when an ldd or std will have a length of 1, and - therefore is eligible for use in some delay slots. - (uncond_branch): New attribute used for unconditional branches. - All unconditional branch patterns changed. - (define_delays and delay slot attributes): Do not allow - uncond_branch instructions in delay slots. Do not allow fpload or - fpstore operations in a conditional branch delay slot. Allow - fpload and fpstore in call, unconditional branch, and annuled - conditional branch delay slots. - - * sparc.c (registers_ok_for_ldd_peep, addrs_ok_for_ldd_peep): - Functions renamed from registers_ok_for_ldd and - memory_ok_for_ldd respectively. All callers changed. - (register_ok_for_ldd): New function to determine if a register is - a pseudo or the first register in a hard register pair. - (mem_aligned_8): No longer static. Return 0 instead of aborting - when presented an rtx which is not a MEM. - (eligible_for_epilogue_delay): Use in_uncond_branch_delay since - this in an unconditional branch. - - * sparc.h (EXTRA_CONSTRAINT) Add new 'T' and 'U' constraints - which check for aligned accesses to memory and register pairs. - -Wed Jul 22 11:22:37 1992 Michael Meissner (meissner@osf.org) - - * mips.h (MIPS_VERSION): Bump meissner version number to 22. - (extern declarations): Add declarations for asm_file_name, - call_used_regs, langguage_string, save_argv, version_string, - mips_{begin,end,expand}_{pro,epi}logue, simple_epilogue_p, - {address,const_{double,int},general,{,non}immediate}_operand, - memory_address_p, {{,non}memory,register,scratch}_operand, - abort_with_insn, debug_rtx, fatal_io_error, get_frame_size, - offsettable_address_p, output_address, permalloc, - reg_mentioned_p, abort, atoi, getenv, mktemp, and - mips_expand_{epi,pro}logue. - (*_REGNUM): Add in GP_REG_FIRST in case registers are ever - renumbered. - (struct mips_frame_info): Add num_gp, num_fp fields. - (SECONDARY_MEMORY_NEEDED): Define, return 1 unless -mdebugh if - moving between FP <-> GP registers. - - * mips.c (extern declarations): Move most of the declarations to - mips.h, except for those of type 'rtx' or 'tree', since not all - files include rtl.h and tree.h. Add more declarations for gen_xxx - functions that are now used. - (reg_or_0_operand): Add default case for switch on enumeration, to - allow compiling with -Wall. - (simple_memory_operand): Ditto. - (mips_count_memory_refs): Ditto. - (mips_move_1word): Ditto. - (mips_move_2words): Ditto. - (mips_address_cost): Ditto. - (map_test_to_internal_test): Ditto. - (mips_move_1word): Align asm comments in loading negative ints. - (mips_move_1word): Use GEN_INT macro to generate CONST_INT's. - (mips_move_2words): Ditto. - (gen_int_relational): Ditto. - (block_move_load_store): Ditto. - (block_move_loop): Ditto. - (expand_block_move): Ditto. - (block_move_load_store): #if 0, not currently used. - (block_move_sequence): Ditto. - (compute_frame_size): Fill in num_gp and num_fp fields. - (simple_prologue_p): Rename from null_prologue. - (save_restore_insns): New function to emit appropriate save and - restore operations for prologue/epilogue -- only prologue used at - present. - (function_prologue): Move generation of instructions to - mips_expand_prologue. - (mips_expand_prologue): Generate appropriate insns for the - prologue of the function. - (mips_expand_epilogue): Generate appropriate insns for the - epilogue of the function -- not called at present. - - * mips.md (ashldi3_internal): Add `&' constraint to operand 0. - (ashrdi3_internal): Add `&' constraint to operand 0. - (return): Turn this into a define expand that wraps a return and a - USE reg:31 inside of a parallel. - (return_internal): Insn form of return instruction. - (prologue): New define expand to generate the necessary - instructions for the function prologue. - (mov{si,hi,qi}): Split the integer move INSNs into two groups, - those that support -mdebugh and allow ints to be in floating - point registers, and those that don't allow it. - -Tue Jul 21 21:27:43 1992 Mike Stump (mrs@albert.gnu.ai.mit.edu) - - * Complete 9th Cygnus <---> FSF merge. - - Tue Jul 21 03:17:05 1992 Mark Eichin (eichin@cygnus.com) - - * cp-lex.c (process_next_inline): when bailing out on a parse error, - throw away nextchar as well in case it got set. - - Tue Jul 21 05:31:10 1992 Ken Raeburn (raeburn@cygnus.com) - - * cp-pt.c (tsubst, case FUNCTION_DECL): If the context class has a - null method vector, don't look inside it for its size. - - Thu Jul 16 16:02:55 1992 Per Bothner (bothner@rtl.cygnus.com) - - * cp-typeck.c (convert_for_assignment): If assigning (void*) - to a normal pointer, emit a warning, not an error. There is - a lot of existing code (including libg++ and converted C - code) that expects to be able to assign from (void*). - - Tue Jul 14 06:59:38 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-decl.c (finish_function): Call destructors correctly when - baseclasses are replicated in the inheritance hierarchy. - - Mon Jul 13 05:16:10 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-typeck.c (build_modify_expr): If we split a COND_EXPR in order - to perform the assignment in each arm, convert the rhs of each - branch according to RESULT_TYPE. + * calls.c (prepare_call_address): New arg REG_PARM_SEEN. + All callers changed. + (expand_call): Pre-load args if small reg classes and reg parms. + * expr.h (prepare_call_address): Extend prototype. + * expr.c (expand_builtin_apply): Pass new arg to prepare_call_address. + +Mon Apr 18 14:53:14 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (const_binop): If arg is NaN, just return it + (fold_convert): Handle NaN in real->int and real->real cases. + + * c-lex.c (yylex): If FP value is NaN, use value of zero. + + * expr.h (PROMOTE_MODE): Don't supply default here. + (promote_mode): Add declaration. + * explow.c (promote_mode): New function. + * calls.c (expand_call): Use it. + * function.c (assign_parms, promoted_input_arg, expand_function_start): + Likewise. + * expr.c (expand_expr, case VAR_DECL, SAVE_EXPR): Likewise. + * stmt.c (expand_value_return, expand_decl): Likewise. - * cp-typeck.c (convert_for_assignment): Treat null_pointer_node - specially when converting to non-void pointers. +Mon Apr 18 11:36:04 1994 Jason Merrill (jason@deneb.cygnus.com) - * cp-class.c (modify_vtable_entries): In the loop that modifies - vtable entries for each non-virtual baseclass, correctly handle - cases where BASE is an ambiguous baseclass for BASE_CONTEXT. + * Makefile.in (LIB2FUNCS): Change _op_vec_delete to _op_vec_del. + * libgcc2.c: Ditto. - Sun Jul 12 01:32:31 1992 Mike Stump (mrs@cygnus.com) +Mon Apr 18 11:19:07 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - Wed May 27 01:33:24 1992 Ron Guilmette (rfg at ncd.com) + * reorg.c (redirect_with_delay_list_safe_p): New function, + similar to redirect_with_delay_slots_safe_p. + (fill_slots_from_thread): Do not redirect a jump if doing + so would invalidate the delay list for the jump. - * cp-type2.c (store_init_value), cp-typeck.c - (build_modify_expr, convert_arguments, - build_binary_op_nodefault, convert_for_assignment), cp-parse.y - (member_init, template_def, datadef, stmt): changed some - pedantics into !traditionals and reworded error messages. +Mon Apr 18 03:09:30 1994 Doug Evans (dje@cygnus.com) - Sun Jul 12 01:11:53 1992 Mike Stump (mrs@cygnus.com) + * scan-types.sh: Fix program's name in error message. + Rename dummy.c to avoid collisions in parallel makes. - Jul 1992 Ron Guilmette (rfg at ncd.com) +Sun Apr 17 18:29:00 1994 David Edelsohn (edelsohn@npac.syr.edu) - * cp-decl.c (finish_function): Set BLOCK_SUPERCONTEXT for the - outermost scopes of functions to point to the associated - FUNCTION_DECL nodes. + * rs6000.h (PROCESSOR_COMMON, PROCESSOR_POWER, PROCESSOR_POWERPC): + New macros. + * rs6000.c (processor_target_table): Change "all" to "common". + Add "power" and "powerpc" generic processors. Explicitly turn off + new mnemonics for all members of the POWER architecture family. - Fri Jul 10 17:52:36 1992 Ken Raeburn (raeburn@cygnus.com) +Sun Apr 17 10:04:18 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl.c (struct binding_level): New field pseudo_global - indicates that this binding level should be treated like the global - binding level in some respects. - (declare_pseudo_global_level, pseudo_global_level_p): Set and test - routines. - (push_overloaded_decl): Don't forget overloads in pseudo-global - binding levels. - * cp-pt.c (tsubst, case FUNCTION_DECL): Search for an existing decl - before creating a new one. - (overload_template_name): Make new level pseudo-global. - (type_unification): Indicate failure for unknown_type_node. - (unify): Likewise. + * tree.h (DECL_PRINT_NAME): Deleted. + (struct tree_decl): Field print_name deleted. - Wed Jul 8 01:59:03 1992 Mike Stump (mrs@cygnus.com) +Sun Apr 17 06:59:58 1994 Pat Rankin (rankin@eql.caltech.edu) - * cp-decl.c (lookup_name, grokvardecl, grokdeclarator), - cp-call.c (build_field_call), cp-seach.c (lookup_field), - cp-typeck.c (build_component_ref), cp-lex.c (do_identifier), - cp-init.c (expand_member_init, build_member_call, - build_offset_ref): lookup_field now has 4 arguments. + * vax.h (RTX_COSTS), vax.c (vax_rtx_cost): Remove LSHIFT case. - Wed Jul 8 01:14:43 1992 Mike Stump (mrs@cygnus.com) +Sun Apr 17 01:15:27 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * cp-parse.y (primary): Call to lookup_name needs 2 arguments. + * function.c (locate_and_pad_parm): For ARGS_GROW_DOWNWARD, + Round sizetree for both upward and downward padding, nuke + the (now unnecessary) call to pad_below for arg_size_ptr. - Tue Jul 7 21:14:05 1992 Mike Stump (mrs@cygnus.com) +Sat Apr 16 21:05:40 1994 David Edelsohn (edelsohn@npac.syr.edu) - * cp-method.c (build_overload_name): Handle INTEGER_TYPEs - cleanly and uniformly. + * rs6000.md (one_cmplsi2): Always use nor instruction; + remove extraneous minus sign from condition register set constraint. - Tue Jul 7 09:19:52 1992 Michael Tiemann (tiemann@rtl.cygnus.com) +Sat Apr 16 17:12:40 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - * cp-call.c (build_method_call): If `convert_to_pointer' returns - error_mark_node, return that without doing any more work. + * m68k.c (print_operand): 'x' and 'y' mode letters only + if SUPPORT_SUN_FPA. + (print_operand_address): If (new) ASM_OUTPUT_CASE_FETCH defined, + use it to emit the address for the insn before a tablejump. + * m68k/mot3300.h (FUNCTION_ARG_PADDING, FUNCTION_PROLOGUE): Deleted. + (FUNCTION_EPILOGUE, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Deleted. + (SGS_SWITCH_TABLES, ASM_OUTPUT_CASE_END): Deleted. + (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Deleted. + (SGS_NO_LI, ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): Defined. - Thu Jul 2 15:42:28 1992 Mike Stump (mrs@cygnus.com) + * configure (header_files): Use ${srcdir} instead of $(srcdir). - Thu Jul 2 18:08:42 1992 Chip Salzenberg (chip at tct.com) +Sat Apr 16 16:51:15 1994 DJ Delorie (dj@ctron.com) - * cp-typeck.c (convert_arguments): Don't assume that error - message will be short enough for fixed-length buffer. + * objc/makefile.dos (OBJC_O): Add encoding.o. - Wed Jul 1 19:52:59 1992 Mike Stump (mrs at cygnus.com) +Sat Apr 16 16:38:32 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Wed Jun 3 12:57:57 1992 Brendan Kehoe (brendan@cs.widener.edu) + * c-lex.c (yylex): Turn off overflow flag when fixing up large + traditional hex constants. - * cp-decl2.c (grokbitfield): Only do width checking on properly - parsed bitfields. + * c-decl.c (finish_decl): If asmspec_tree, clear DECL_BUILT_IN + for function and DECL_RTL always. - Wed Jul 1 18:58:17 1992 Mike Stump (mrs at cygnus.com) +Wed Apr 13 13:08:10 1994 Per Bothner (bothner@cygnus.com) - Wed May 27 01:33:24 1992 Ron Guilmette (rfg at ncd.com) + * toplev.c (compile_file): Never warn about unused static consts, + since it is reasonable to have those in header files. - * cp-lex.c (readescape), cp-parse.y (unary_expr, maybecomma_warn, - component_decl_list, stmt), cp-type2.c (digest_init), cp-typeck.c - (c_sizeof, build_function_call_real, convert_arguments, - build_binary_op_nodefault, pointer_int_sum, pointer_diff, - build_unary_op, c_expand_return): change some warnings to - pedwarns. Put in new pedwarns, change wording of messages so that - they are more readable. Don't issue some warnings when - traditional is given. +Wed Apr 13 12:25:21 1994 Jason Merrill (jason@deneb.cygnus.com) - Wed Jul 1 13:56:30 1992 Mike Stump (mrs at cygnus.com) + * varasm.c (contains_pointers_p): When examining a RECORD_TYPE, + only look at the FIELD_DECLs. - Wed Apr 29 23:37:00 1992 Niklas Hallqvist (niklas at appli.se) +Tue Apr 12 18:14:42 1994 Jason Merrill (jason@deneb.cygnus.com) - * cp-decl.c (finish_decl): make sure destructors are called for - objects in a file. + * Makefile.in (LIB2FUNCS): Add _op_vec_{delete,new}. - Wed Jul 1 11:12:05 1992 Mike Stump (mrs at cygnus.com) + * libgcc2.c (__builtin_vec_{delete,new}): New functions per the + latest C++ working paper. + (__default_new_handler): No longer static. + (__set_new_handler): Lose. + + * cccp.c: Don't implicitly wrap LOCAL_INCLUDE_DIR. + (struct default_include): Add cxx_aware field. + (include_defaults_array): Ditto. + (main): Use cxx_aware field. - * cp-lex.c: extract YYEMPTY out of the parser generated .c - file and put in the parser .h so that cp-lex.c does not have - to define it. +Tue Apr 12 16:13:10 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - Mon Jun 29 12:58:59 1992 Mike Stump (mrs at cygnus.com) + * config.sub (next): Fix typo in m68k-next-ns3 alternative. - Mon Jun 29 15:20:48 1992 Chip Salzenberg (chip at tct.com) +Tue Apr 12 07:41:17 1994 Michael Meissner (meissner@osf.org) - * cp-cvt.c (convert_to_integer): Don't add a NOP_EXPR in cases - where we can simply change the type of the entire tree. + * i386/i386.c (notice_update_cc): Remove LSHIFT case, since there + is no LSHIFT rtl code any more. - Mon Jun 29 10:56:56 1992 Mike Stump (mrs at cygnus.com) + * halfpic.h (NO_STDIO_H): Do not include stdio.h if this is defined. - * c++: Makes sure -lg++ comes before -lm since libg++ uses - things from libm. +Mon Apr 11 17:24:46 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - Mon Jun 22 13:47:42 1992 Mike Stump (mrs at cygnus.com) + * scan.c (get_token): Correctly increment lineno after + encountering #ident (or other #-directive). - Sun Jun 21 14:06:41 1992 Brendan Kehoe (brendan at cs.widener.edu) +Mon Apr 11 13:22:51 1994 Jim Wilson (wilson@cygnus.com) - * cp-typeck.c (convert_for_initialization): Only try to convert a - rhs that was parsed properly. + * reorg.c (try_merge_delay_insns): Account for resources set/used + by a filled insn before trying to simplify insns in delay slots. - Mon Jun 22 13:31:40 1992 Jim Wilson (wilson at sphagnum.cygnus.com) + * x-iris, x-iris3, x-mips, x-sony, x-sysv (OLDCC): Change -XNh1500 + to -XNh2000. - * cp-parse.y (primary): Clear the TREE_USED flag of a block tree - put in a BIND_EXPR. + * c-decl.c (finish_decl): Don't preserve initializer if it is + error_mark_node. - Sun Jun 21 09:59:58 1992 Michael Tiemann (tiemann at rtl.cygnus.com) + * reorg.c (try_merge_delay_insns): Move next_trial update + immediately after the try_split call. - * cp-type2.c (build_scoped_ref): Use SCRATCH for head of typelist, - rather than calling alloca. + * mips.c (mips_select_rtx_section, mips_select_section): New + functions. Prefer rdata when TARGET_EMBEDDED_DATA, and prefer + sdata otherwise. + * mips.h (MASK_EMBEDDED_DATA, TARGET_EMBEDDED_DATA): New macros. + (TARGET_SWITCHED): Add new option -membedded-data. + (SELECT_RTX_SECTION, SELECT_SECTION): Call function in mips.c. - Fri Jun 19 16:23:02 1992 Mike Stump (mrs at cygnus.com) + * Makefile.in (all.cross, rest.encap): Delete objc-runtime and + SYSCALLS.c.X. + (OBJC, OBJECTIVE-C): Add objc-runtime. + (proto): Add SYSCALLS.c.X. + (libgcc2.ready, libobjc.a, sublibobjc.a, SYSCALLS.c.X): Add + dependence on stmp-int-hdrs. - * cp-pt.c (unify): Type unification of things that do not have a - valid IDENTIFIER_TEMPLATE fail instead of core dumping. + * cccp.c (rescan): Don't look for C++ // comment before directive. + Handle \-newline inside a C++ // comment. + (skip_if_group): Likewise. + (handle_directive): Also handle C++ // comment after #. Point + ip->bufp after the comment start before calling + skip_to_end_of_comment. + (validate_else): Handle \-newline inside a C++ // comment. + (skip_to_end_of_comment, macarg1, discard_comments): Likewise. - Wed Jun 17 13:36:04 1992 Michael Tiemann (tiemann at rtl.cygnus.com) + * varasm.c (immed_double_const): Sign-extend constants when they + have the most significant bit set for the target. - * cp-pt.c (tsubst): Don't try to substitute into error_mark_node. +Mon Apr 11 06:20:56 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl.c (grokparms): Convert initializers that have - TREE_READONLY_DECL_P set into their constant equivalents. + * reload1.c (reload): When accumulating needs, use nested + structures to simplify and speed up the code. - Tue Jun 16 19:09:23 1992 Mike Stump (mrs at cygnus.com) + * alpha.md (compare define_split): Fix bugs in last addition. - Wed Jun 3 12:57:57 1992 Brendan Kehoe (brendan at cs.widener.edu) + * calls.c (expand_call, emit_library_call{,_value}, store_one_arg): + Use convert_modes instead of convert_to_mode. - * cp-decl.c (grokdeclarator): Disallow virtual functions in unions. + * tree.h (frame_size): Now a union. + (DECL_ALIGN, DECL_FRAME_SIZE, DECL_FUNCTION_CODE): Access proper + field of frame_size union. + (DECL_SET_FUNCTION_CODE): Simplified; retained for compatibility. + * c-decl.c (duplicate_decls, pushdecl, builtin_function): + Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE. - Tue Jun 16 18:11:45 1992 Mike Stump (mrs at cygnus.com) +Mon Apr 11 05:50:26 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - Wed Jun 3 12:57:57 1992 Brendan Kehoe (brendan at cs.widener.edu) + * mips-tfile.c (update_headers): Do not copy stStatic symbols that + result from internal labels. - * cp-class.c (finish_struct): Forbid local classes to have static - members. +Sun Apr 10 07:13:24 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Mon Jun 15 21:44:08 1992 Mike Stump (mrs at cygnus.com) + * rtl.def (LSHIFT): Deleted. + * combine.c, cse.c, function.c: No longer handle LSHIFT. + * genattrtab.c, loop.c, reload1.c: Likewise. + * expr.h (lshl_optab): Deleted. + * optabs.c (lshl_optab): Deleted. + (expand_binop, init_optabs): No longer reference it. + * genopinit.c, expmed.c (expand_shift): Likewise. - Tue Jun 2 09:26:34 1992 Brendan Kehoe (brendan at cs.widener.edu) + * arm.c, arm.h, arm.md: Remove references to LSHIFT and lshlsi3. + * clipper.h, clipper.md, convex.h, convex.md, elxsi.md: Likewise. + * fx80.h, fx80.md, gmicro.md, i370.md: Likewise. + * m68k.c, m68k.h, m68k.md, m88k.c, m88k.md, ns32k.md: Likewise. + * rs6000.md, tahoe.md: Likewise. - * cp-init.c (build_new): Don't allow the use of new on a reference. + * combine.c (simplify_shift_count, case EQ): LSHIFT should be + LSHIFTRT. - Mon Jun 15 20:52:08 1992 Mike Stump (mrs at cygnus.com) +Sun Apr 10 04:48:37 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - Tue Jun 2 09:26:34 1992 Brendan Kehoe (brendan at cs.widener.edu) + * pa-ghiux.h (LIB_SPEC): Remove last change until we've got the + go ahead from HP to distribute /usr/lib/end.o. + * pa-ghpux.h, pa-hiux.h, pa-ghiux.h: Likewise. - * cp-decl.c (grokparms): Don't allow a local variable to be used - in a default argument expression. +Sat Apr 9 15:06:22 1994 Christian Kranz (kranz@sent5.uni-duisburg.de) - Mon Jun 15 18:54:28 1992 Mike Stump (mrs at cygnus.com) + * config.sub: Add ns* as operating systems; default to ns2 for NeXT. + * configure (m68k-next-ns2*): New configuration. + * libgcc2.c: Include , not for NeXTStep 2.1. + * config/nextstep21.h, m68k/next21.h: New files. - * cp-decl.c (finish_decl): Add an error message for uninitialized - const objects like const int a;. +Sat Apr 9 10:56:06 1994 Randy Wright (rwright@convex.com) - Mon Jun 15 16:05:22 1992 Mike Stump (mrs at cygnus.com) + * combine.c (force_to_mode, case ROTATE): Don't assume + simplify_binary_operation always returns CONST_INT. + (simplify_shift_const, case IOR, PLUS): Likewise. - Not sure if it is strictly necessary for the C++ front end, but... +Sat Apr 9 09:13:10 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - Sun May 31 15:31:46 1992 Brendan Kehoe (brendan at cs.widener.edu) + * i386/sequent.h (STRUCT_VALUE{,_INCOMING,_REGNUM}): + Redefine for calling conventions of native cc. - * cp-typeck.c (self_promoting_args_p): Allow the arg type to be - null (copied from Oct 16, 1991 change by Wood). +Sat Apr 9 08:25:43 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Fri Jun 12 16:42:05 1992 Mike Stump (mrs at cygnus.com) + * rs6000.h (FINAL_PRESCAN_INSN): Define. + * rs6000.c (rs6000_convert_preincs): New function. - * cp-typeck.c (build_binary_op_nodefault): Conditionalize code that - deals with the comparison of non-distinct object types, thus avoiding - a core dump. + * i386.md (mulhi3): Use SImode for MULT RTL. - Fri Jun 12 10:23:17 1992 Mike Stump (mrs at cygnus.com) + * fold-const.c (fold): Avoid exponential work when simplifying + conditional expressions; don't recurse twice if ARG1 is constant. - Wed Jun 10 19:20:29 1992 Brendan Kehoe (brendan at cs.widener.edu) + * function.c (unitialized_vars_warning, setjmp_args_warning): + Reword warning to be less ambiguous. - * cp-tree.c (break_out_calls): Begin at 1 less than the length of - the length of the tree code, not the length itself, for generic - expressions and those with side-effects. + * c-typeck.c (convert_arguments): Truncate and reextend + for PROMOTE_PROTOTYPES so we can give error on overflow. - Thu Jun 11 17:43:55 1992 Mike Stump (mrs at cygnus.com) + * reload1.c (reload_conflicts): Rewrite to clean up and fix + numerous bugs; move to later in file. - * cp-init.c (expand_default_init): New function to handle the - details of default copy constructors and other magic in one place. + * c-decl.c (duplicate_decls): Put new type in same obstack as + old ones, or permanent if old ones in different obstacks. - * cp-init.c (expand_aggr_init_1): Implement default constructors - more fully. +Fri Apr 8 18:18:18 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Thu Jun 11 17:16:54 1992 Mike Stump (mrs at cygnus.com) + * fold-const.c (fold, case GT_EXPR): Simplify X < (1 << Y) + into X >> Y == 0. - * cp-call.c (build_method_call): Don't produce an error message if - we are looking up things speculatively. +Fri Apr 8 11:23:51 1994 Ian Lance Taylor (ian@cygnus.com) - Thu Jun 11 10:58:47 1992 Mike Stump (mrs at cygnus.com) + Add support for -membedded-pic to MIPS backend, to create + genuinely position independent code without using a global offset + table. Requires GNU as and ld. + * mips.h (MASK_EMBEDDED_PIC): Define. + (TARGET_EMBEDDED_PIC): Define. + (TARGET_SWITCHES): Add embedded-pic and no-embedded-pic. + (ASM_SPEC): Pass -membedded-pic to assembler. + (ASM_OUTPUT_ADDR_DIFF_ELT): If TARGET_EMBEDDED_PIC output a + difference, rather than using .gpword. + (ASM_OUTPUT_CASE_LABEL): Define. + * mips.md (casesi, casesi_internal): New instructions, used only + for TARGET_EMBEDDED_PIC. + * mips.c (override_options): For TARGET_EMBEDDED_PIC warn + if -mabicalls or -G were used, and set flag_pic and + mips_section_threshold. + (print_operand): Handle 'S' by printing a label with a leading LS. - * cp-call.c (convert_harshness): Penalize const arguments passed - into non-const parameters. +Thu Apr 7 22:20:09 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - Thu Jun 11 10:02:52 1992 Mike Stump (mrs at cygnus.com) + * calls.c (emit_library_call_value): Move is_const set after ifdef. - * cp-typeck.c (build_c_cast): Implement more reference casts so - that one can cast a base reference to a derived reference. +Wed Apr 6 21:34:17 1994 Pat Rankin (rankin@eql.caltech.edu) -Tue Jul 21 15:28:36 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) + * expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Test whether + an argunment has been passed to __builtin_next_arg; warn if not. - * sparc.h (SECONDARY_MEMORY_NEEDED): Define to force reload to - handle any copy between GENERAL_REGS and FP_REGS. +Wed Apr 6 17:28:44 1994 Per Bothner (bothner@kalessin.cygnus.com) - * sched.c (schedule_block): Give some insns high priorities, - instead of excluding them from scheduling, to ensure that they end - up at the end of the block after scheduling. + * toplev.c (lang_options): Add -f[no-]vtable-thunks (for C++). - * i960.c (i960_output_ldconst): Use REAL_VALUE_FROM_CONST_DOUBLE - instead of pointer indirection to extract double from CONST_DOUBLE. +Wed Apr 6 15:35:42 1994 Jim Wilson (wilson@cygnus.com) -Tue Jul 21 14:05:34 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * cccp.c (discard_comments): Replace comments with a single space. - * svr4.h (HANDLE_SYSV_PRAGMA): Defined. + * Makefile.in (USER_H): Add $(srcdir)/ before every ginclude use. - * sol-crt*.asm: Renamed from sol-crt*.s, and put in config. - * t-sol2 (crt*.o): Changed accordingly. Also use $(AS). + * calls.c (emit_library_call_value): New variable is_const. Clear + it for functions that return an aggregate in memory. - * gbl-ctors.h (ON_EXIT): Test HAVE_ATEXIT before sun. + * configure (header_files): Prepend $(srcdir)/ginclude/ to each + element before substituting into the Makefile. Delete ginclude/ + at each point where we set header_files. -Mon Jul 20 18:56:02 1992 Fred Fish (fnf at fishpond) + * c-decl.c (finish_decl): Correct typo in use of tree_int_cst_sgn. - * svr4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro--default definition. - (ASM_OUTPUT_CASE_LABEL): Use that. - * m68ksgs.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Do the swbeg here. - (ASM_OUTPUT_CASE_LABEL): Use that. +Wed Apr 6 07:39:47 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * configure (m68k-*-amix*): Use fixinc.svr4 and install.sh. + * alpha.md: Add define_split to simplify "(unsigned) x > 0xffffff". - * x-amix (ENQUIRE_CFLAGS): Remove; obsolete. + * toplev.c (lang_options): Group and alphabetize some options. - * amix.h (TRANSFER_FROM_TRAMPOLINE): Remove #undef. +Wed Apr 6 07:03:13 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) -Mon Jul 20 17:45:46 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * function.c (push_function_context): Use current_function_varargs. + (pop_function_context): Likewise. + (assign_parms): Respect current_function_varargs. + Save args_so_far in any case. + * expr.c (expand_builtin): Allow builtin_next_arg for varargs + functions as well. + * function.h (struct function): New field for current_function_varargs. + * integrate.c (function_cannot_inline_p): Use current_function_varargs. + * va-alpha.h, va-m88k.h, va-sparc.h (va_dcl): Add ... to + set current_function_varargs. - * dbxout.c (dbxout_source_line): New function. - * final.c (output_source_line): Use that. + * c-decl.c (warn_missing_declarations): New variable. + (c_decode_option): -Wmissing-declarations. + (start_function): Actually do the checking. + * toplev.c (lang_options): Add -Wmissing-declarations. - * configure (sparc-*-sunos5*): New alias. - (sparc-*-solaris2*): Use t-sol2. + * function.c (expand_function_start): Delay copying static chain. - * i860.md (mulsi3_little, mulsi3_big): New define_expand patterns. - (mulsi3): Just use one of them. + * calls.c (emit_library_call): Move the invocation of + prepare_call_address before the assignments of the function arguments. + (emit_library_call_value): Likewise. - * Makefile.in (install-fixincludes): Pass second and third args. + * i386.h (DEBUG_PRINT_REG): Fix printing of coprocessor regs in QImode. -Mon Jul 20 16:07:12 1992 Pat Rankin (rankin@eql.caltech.edu) +Wed Apr 6 06:42:50 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - * vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): change _c$main_args to - uppercase instead of relying on gas to make the case translation + * mips-tfile.c (update_headers): Copy stStatic symbols from the old + local symbol table to the new local symbol table if they did not get + added via debugging psuedo ops. -Sun Jul 19 00:04:16 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Apr 6 06:36:05 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): New macro. - * c-decl.c (duplicate_decls, grokdeclarator, finish_struct): - Use C_PROMOTING_INTEGER_TYPE_P to decide whether a type promotes. - (start_function): Likewise. - * c-typeck.c (default_conversion): Use C_PROMOTING_INTEGER_TYPE_P - to decide whether a type should promote. - (self_promoting_args_p, self_promoting_type_p): Likewise. + * stdarg.h, varargs.h (__va_rounded_size): Round to multiple + of sizeof (short) on sysV68. - * c-aux-info.c (gen_type): For array type, state the size. + * m68k.c (output_function_prologue): pea/move: Fix typos. + asm_fprintf("add%.[wl] ...): Undo previous change. - * final.c (output_addr_const): Handle ZERO_EXTEND and SIGN_EXTEND. - * expr.c (expand_expr, NOP_EXPR case): If EXPAND_INITIALIZER, - generate ZERO_EXTEND or SIGN_EXTEND; don't emit insns. +Tue Apr 5 20:05:10 1994 Doug Evans (dje@cygnus.com) - * function.c (assign_parms): Use const0_rtx as DECL_RTL and as - DECL_INCOMING_RTL if tmode of parm is void. + * gcc.c (process_command): Add "include" prefix for [foo/]stageN. - * jump.c (mark_jump_label): Don't make REG_LABEL for nonlocal label. - * loop.c (add_label_notes): Don't make REG_LABEL for nonlocal label. - (rtx_renumbered_equal_p): Use == to compare nonlocal labels. +Tue Apr 5 01:22:08 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * rtl.h (LABEL_REF_NONLOCAL_P): New macro. - * expr.c (expand_expr): Set LABEL_REF_NONLOCAL_P for nonlocal labels. - * reload1.c (set_label_offsets): Ignore nonlocal labels. + * pa-ghiux.h (LIB_SPEC): Link in /usr/lib/end.o + * pa-ghpux.h, pa-hiux.h, pa-hpux.h (LIB_SPEC): Likewise. - * c-parse.y (primary): Set TREE_CONSTANT in the NOP_EXPR for an enum. +Mon Apr 4 17:36:55 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - * Solaris changes from Cygnus: + * final.c (final_scan_insn): Pass new arg, block num, to + sdbout_end_block. + * sdbout.c (sdbout_begin_block): Don't output block for function + level scope unless MIPS_DEBUGGING_INFO is defined. + (sdbout_end_block): Likewise. Add new parameter n for the block + number. - * fixinc.svr4: take a third argument indicating where files to be - copied in should come from (useful when not building in source - directory). - Set TERM to dumb so ex won't hang (by zoo). - * fixincludes: Take the same new argument. + * calls.c (expand_call): If PCC_STATIC_STRUCT_RETURN defined, mark + function as addressable same time as we clear is_integrable. - * gmon-sol2.c: New file. - * t-sol2: New file. - * sol2-crt1.s, sol2-crti.s, sol2-crtn.s: New files. +Mon Apr 4 17:11:17 1994 Jason Merrill (jason@deneb.cygnus.com) - * xm-spcv4.h (ONLY_INT_FIELDS): Define, if __GNUC__. + * Makefile.in (xsys-protos.h): Undefine __*_TYPE when + preprocessing fixtmp.c. + * fixincludes: Fix ptrdiff_t and wchar_t in system headers like we + do size_t. + * scan-types.sh: Use __WCHAR_TYPE__, __PTRDIFF_TYPE__, and + __SIZE_TYPE__. Still deduce size_t so that it can be used for + ssize_t if necessary. + * stddef.h (wchar_t): Always define as __WCHAR_TYPE__. + * cccp.c (special_symbol, case T_WCHAR_TYPE): Output "__wchar_t" + for C++. - * sparc.h (FUNCTION_PROFILER): Use ASM_OUTPUT_INTERNAL_LABELREF. - (FUNCTION_BLOCK_PROFILER): Mark with FIXME that it needs work. - (ASM_OUTPUT_INTERNAL_LABELREF): Define. - * spc-sol2.h: Entire file is new except for - defining MD_STARTFILE_PREFIX. - * dbxout.c (dbxout_block): obey DBX_BLOCKS_FUNCTION_RELATIVE - (dbxout_init): Use ASM_IDENTIFY_GCC_AFTER_SOURCE if defined. +Sat Apr 2 08:14:02 1994 Michael Meissner (meissner@osf.org) - * sparc.h (CONSTANT_ALIGNMENT): Add parens for Sun compiler. + * i386/osfrose.h (FUNCTION_PROLOGUE, FUNCTION_PROFILER): Correct + code for -fpic ELF case. -Sun Jul 19 11:03:56 1992 Fred Fish (fnf at fishpond) +Fri Apr 1 17:33:35 1994 Jason Merrill (jason@deneb.cygnus.com) - * i386v4.h (real.h): Remove apparently unnecessary inclusion. - * i386v4.h (HANDLE_SYSV_PRAGMA): Replaces HANDLE_PRAGMA. + * fixproto: Add strncpy, strpbrk, strrchr, strspn, strstr, strtok + and strxfrm to the required list for string.h. -Sat Jul 18 20:37:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Fri Apr 1 01:05:53 1994 Jim Wilson (wilson@cygnus.com) - * c-typeck.c (build_binary_op): Don't set shorten for signed division. + * configure: Change math-68881.h to ginclude/math-68881.h. + (EXTRA_HEADERS): Use | not / in sed command. + * math-68881.h, math-3300.h: Move to ginclude directory. - * final.c (end_final): Align the table of addresses. + * libgcc2.c: Modify all uses of __attribute__ mode to use new + syntax. -Fri Jul 17 23:49:28 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * Makefile.in (USER_H): Files in ginclude now. Add stdarg.h, + stddef.h, varargs.h. + (all.cross, rest.encap): Move LIBGCC after stmp-headers. Add + objc-runtime, and SYSCALLS.c.X. + (for-bootstrap): Delete. + (OBJC, OBJECTIVE-C): Delete objc-runtime. + (proto): Delete SYSCALLS.c.X. + (*.o): Delete gvarargs.h dependencies. + (stmp-int-hdrs): Delete gvarargs.h, gstdarg.h, gstddef.h deps, and + code to copy them. + + * bc-emit.c: Change to . + * enquire.c, libgcc2.c, sys-types.h: Change "gstddef.h" to . + * gcc.c: Change "gstdarg.h" to and "gvarargs.h" to + . + * objc/Object.m: Change "gstdarg.h" to . + * objc/runtime.h, scan-types.sh: Change "gstddef.h" to . + Change "gstdarg.h" to . + * objc/hash.h, objc/objc.h, objc/sarry.h: Delete use of IN_GCC to + control stddef.h/gstddef.h include. + * cccp.c (pcfinclude): Modify comment referring to gstddef.h. + * sparc/sparc.h (CPP_PREDEFINES): Update GCC_NEW_VARARGS comment. + * i386/x-next, m68k/x-next (libgcc2.a, stdarg.h): Delete rules. + * fixincludes: Modify comment referring to gvarargs.h. + * cp/Makefile.in: Modify comments that refer to gvarargs.h and + gstddef.h. + + * gstdarg.h, gstddef.h, gvarargs.h: Move to ginclude directory + and strip off initial `g'. + * va-*.h, proto.h: Move to ginclude directory. + +Thu Mar 31 19:49:17 1994 Jim Wilson (wilson@cygnus.com) + + * sparc.h (SPARC_STACK_ALIGN): Use ~7 not 0xfffffff8 for portability. + + * xcoffout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Disable. + + * sol2.h: Delete ifdefed out section defining *_SECTION_ASM_OP + macros. + ({CTORS,DTORS}_SECTION_ASM_OP) Delete definitions. + * sysv4.h (INIT_SECTION_ASM_OP): Don't set the alloc flag. + ({CTORS,DTORS}_SECTION_ASM_OP): Set execinstr flag. + + * dbxout.c (dbxout_type): Re-enable debugging output for anonymous + structures. Change all three places that refer to xrefs to use + exactly the same condition. + + * c-typeck.c (pop_init_level): Correct typo in use of + tree_int_cst_sgn. + + * mips.c (mips_rtx_classify, md_register_operand, + fpsw_register_operand, cmp2_op, uns_cmp_op, fcmp_op): Delete. + (mips_const_double_ok, mips_fill_delay_slot, output_block_move, + print_operand, function_epilogue): Don't treat gas differently + than native assembler. + (equality_op, cmp_op): Delete use of classify_op. + (override_options): Delete uses of mips_rtx_classify. + (final_prescan_insn): Simplify based on other changes. + * mips.h (mips_rtx_classify, cmp2_op, fcmp_op, + fpsw_register_operand, md_register_operand, uns_cmp_op, + classify_op, additive_op, divmod_op, unsigned_op, CLASS_*_OP, + NOTICE_UPDATE_CC): Delete. + (RTX_COSTS): Use different numbers for R3000/R6000/R4000. + (REGISTER_MOVE_COST): Use cost of 2 within same register class, 4 + for FP to GR copy, 6 otherwise. + (ADJUST_COST): Give anti and output dependencies zero cost. + (PREDICATE_CODES): Delete obsolete functions from list. + * mips.md (addsi3_internal): Don't output subtract. + (subsi3_internal): Don't output add. + (smulsi3_highpart, umulsi3_highpart): Add missing third operand to + mips_move_1word call. + +Thu Mar 31 12:09:42 1994 Ian Lance Taylor (ian@cygnus.com) - * cexp.y: Include stdio.h. + * longlong.h: Change RS/6000 macros to use PowerPC mnemonics when + using -mnew-mnemonics. -Fri Jul 17 06:17:34 1992 Tom Wood (wood@dg-rtp.dg.com) +Wed Mar 30 17:37:16 1994 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) - * cp-tree.h (DECL_THIS_EXTERN): Renamed from DECL_EXTERNAL. - * cp-pt.c, cp-decl.c: Rename DECL_EXTERNAL -> DECL_THIS_EXTERN and - then rename TREE_EXTERNAL -> DECL_EXTERNAL. + * m68k/dpx2.h (NO_ASM_FMOVECR): Defined. + * m68k.c (standard_68881_constant_p): Return 0 if NO_ASM_FMOVECR + defined. -Fri Jul 17 05:59:26 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * configure: Add case for rs6000-bull-bosx. - * function.c (instantiate_decls{,_1}): Don't do instantiation - here if the address is mode-dependent. +Wed Mar 30 17:31:24 1994 Matthias Pfaller (leo@marco.de) - * libgcc2.c: Include tconfig.h instead of tm.h. - Include machmode.h. - (__do_global_dtors): Cast to widest integer type, then narrow, to - avoid warning if int is narrower than pointer. - * Makefile.in (libgcc2.a): Includes machmode.h. + * ns32k.c (global_symbolic_reference_mentioned_p): New parameter F. + (print_operand_address): When generating pic baseregisters are + only allowed if offset is CONST_INT. For {SYMBOL,LABEL}_REF + a indexregister has to be used instead. (sb) is no longer + emitted for constant absolute addresses. + (output_move_double): Use CONSTANT_P instead of CONSTANT_ADDRESS_P. + * ns32k.h (FUNCTION_PROLOGUE): use __GLOBAL_OFFSET_TABLE_, + not _GLOBAL_OFFSET_TABLE_. + (LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P): Use + LEGITIMATE_PIC_OPERAND_P, not LEGITIMATE_CONSTANT_P, + to set current_function_uses_pic_offset_table. + (INDIRECTABLE_1_ADDRESS_P): Baseregisters are not legal + for {LABEL,SYMBOL}_REFS when emitting pic. + (GO_IF_INDEXABLE_ADDRESS): INDIRECTABLE_1_ADDRESSes are indexable too. + * ns32k/netbsd.h, ns32k/xm-netbsd.h: New files. + * configure (ns32k-pc532-netbsd*): New case, to use new files. + +Wed Mar 30 16:39:24 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload1.c (reload): Fix typo in previous change. + + * gcc.c (process_command, case 'B'): If name is "stageN/", + add "include" to system include prefix. + + * bc-emit.c, calls.c, combine.c, emit-rtl.c, final.c, g++.c: + Include instead of "gstdarg.h"; similarly for varargs. + * genattrtab.c, mips-tfile.c, protoize.c, toplev.c, tree.c: Likewise. + + * fold-const.c (strip_compound_expr): New function. + (fold): Call it; avoid exponential work when simplifying + binary op over a COND_EXPR. + + * cse.c (cse_insn): Add missing definition of var TEM; clean up + shadowed uses. + + * sparc.c (sparc_type_code): Revise so it supports non-C types. + +Wed Mar 30 14:52:26 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) + + * xm-alpha.h (string.h): Don't include when inhibit_libc is defined. + +Wed Mar 30 10:37:51 1994 Stan Coxs (coxs@dg-rtp.dg.com) + + * m88k.md (movdf): Do not consider extended registers when doing + define_split. + +Wed Mar 30 01:49:06 1994 Torbjorn Granlund (tege@cygnus.com) + + * config/m68k/m68k.c (output_move_double): Use `%.' where appropriate. + +Tue Mar 29 10:46:18 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * pa.h (ASM_OUTPUT_LABEL): TARGET_GAS no longer needs trailing colons. + (ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_COMMON): Likewise. + + * pa.h (TARGET_PORTABLE_RUNTIME): Define. + (TARGET_SWITCHES): Add -mportable-runtime and -mno-portable-runtime. + (CUMULATIVE_ARGS): Now a "struct hppa_args" rathern than an int. + All references changed. + (INIT_CUMULATIVE_ARGS): Also initialize nargs_prototype. + (INIT_CUMULATIVE_INCOMING_ARGS): Define. + (FUNCTION_ARG_ADVANCE): Decrement nargs_prototype for each arg seen. + (FUNCTION_ARG): Handle TARGET_PORTABLE_RUNTIME. + (ASM_DECLARE_FUNCTION_NAME): Explicitly disallow argument relocations + for TARGET_PORTABLE_RUNTIME. + (ASM_OUTPUT_INT): Do not use a P% prefix for function references + if TARGET_PORTABLE_RUNTIME. + + * pa.md (high and lo_sum for function addresses): Provide alternate + definitions for TARGET_PORTABLE_RUNTIME. + + * pa.c (output_arg_descriptor): Explicitly disallow argument + relocations for TARGET_PORTABLE_RUNTIME. + +Tue Mar 29 07:45:44 1994 Chris Smith (csmith@convex.com) + + * convex.h (check_float_value): fix return type in extern. + +Mon Mar 28 18:36:56 1994 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k/mot3300.h (ASM_IDENTIFY_GCC): Define to be non-null. + +Sun Mar 27 20:26:36 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * c-parse.in (attrib): Handle string args as expressions, + merging the two rules. `mode' attribute now takes a string arg. + Delete the rule for an identifier as arg. + * c-common.c (decl_attributes): `mode' attribute now takes string arg. + +Sun Mar 27 14:42:39 1994 Doug Evans (dje@cygnus.com) + + * c-parse.in (attrib): Back out last patch. + +Fri Mar 25 17:52:44 1994 Walter Misar (misar@rbg.informatik.th-darmstadt.de) + + * m68k.md (movsi): New strategy for moving small constants into dregs, + if it can't be done with moveq. + * m68k.h (CONST_COSTS): Reflect the change in m68k.md. + +Fri Mar 25 14:30:47 1994 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (call): If (new) MOTOROLA_BSR defined, try to emit 'bsr'. + * m68k/mot3300.h (MOTOROLA_BSR): Defined. + + * m68k.c (output_function_prologue): Use link.w on 68040; + emit pea fp + movl sp,fp instead of linkw 0 for 68040. + +Fri Mar 25 14:21:06 1994 Jim Meyering (meyering@idefix.comco.com) + + * bc-emit.c (bc_emit_bytecode): Remove decl of unused variable NPUSHES. + (bc_emit_instruction): Remove decl of unused variable LITERAL. + * c-aux-info.c (gen_decl): Remove decl of unused variable. + * c-common.c (truthvalue_conversion): Remove decl of unused CODE. + * c-decl.c (push_parm_decl): Move decl of unused variable OLDDECL + into #if 0 block. + (finish_enum): Remove decls of unused variables I and TEMPORARY. + * c-parse.in (primary): Remove decl of unused variable CONTEXT. + * c-typeck.c (convert_arguments): Remove decls of unused variables. + * collect2.c (putenv): Remove decl of unused variable STR_LEN. + (main): Remove decls of unused variables LEN and CLEN. + * combine.c (try_combine): Remove decls of unused variables. + (subst): Remove decls of unused variables ORIG_CODE. + (simplify_if_then_else): Remove decl of unused variable C2. + (make_compound_operation): Remove decl of unused variable COUNT. + (known_cond): Remove decl of unused variable NEW. + (make_field_assignment): Remove decl of unused variable OURDEST. + (simplify_and_const_int): Remove decls of unused variables. + (simplify_shift_const): Remove decl of unused variable INNER. + * cse.c (cse_insn): Remove decl of unused variable TEM. + * dbxout.c (dbxout_symbol): Remove decls of unused variables. + * emit-rtl.c (reset_used_flags): Remove decl of unused variable. + (gen_sequence): Remove decl of unused variable NEWVEC. + * enquire.c (f_rep): Remove decl of unused variable F1. + * final.c (output_source_line): Remove decl of unused variable. + * fix-header.c (read_scan_file): Remove decl of unused variable RPTR. + (write_rbrac): Remove decl of unused variable PARTIAL. + (main): Likewise. + * g++.c (main): Remove decl of unused variable FN. + * genattr.c (main): Remove decl of unused variable MAX_ISSUE_TIME. + * genattrtab.c (expand_units): Remove decl of unused variable. + * genrecog.c (break_out_subroutines): Remove decl of unused variable. + * global.c (global_conflicts): Move decl of unused variable I into + #if 0 block. + * integrate.c (save_for_inline_nocopy): Remove decls of unused vars. + (expand_inline_function): Remove two block-scope decls of unused + variable COPY. + * jump.c (invert_jump): Remove decl of unused variable OLABEL. + * loop.c (init_loop): Remove decls of unused variables. + (loop_optimize): Remove decl of unused variable END. + (combine_movables): Remove decls of unused variables. + (check_final_value): Remove decl of unused variable TEM. + (check_dbra_loop): Remove decls of unused variables. + (maybe_eliminate_biv): Remove decls of unused variables SET and V. + * reload.c (find_reloads_address): Remove two block-scope decls of + unused variable OLDREF. + * rtl.c (read_rtx): Remove decl of unused variable STRINGBUFSIZE. + * scan.c (get_token): Remove decl of unused variable QUOTE. + (get_token): Remove unused label AGAIN. + * sched.c (clear_units): Remove decl of unused variable UNIT. + (actual_hazard_this_instance): Remove decl of unused variable I. + (actual_hazard): Remove two block-scope decls of unused variable BEST. + (sched_analyze_1): Remove decls of unused variables OFFSET and BIT. + (sched_analyze): Remove decl of unused variable DEST. + (sched_note_set): Remove decl of unused variable J. + (create_reg_dead_note): Remove decl of unused variable BACKLINK. + (new_sometimes_live): Remove decl of unused variable I. + (schedule_block): Remove decls of unused variables LAST_NOTE and REGNO. + (schedule_insns): Remove decls of unused variables I and INSNS. + * sdbout.c (sdbout_symbol): Remove decl of unused variable LETTER. + (sdbout_type): Remove decl of unused variable TEM. + * toplev.c (compile_file): Remove unused label. + * tree.c (stabilize_reference_1): Remove decl of unused variable. + * unroll.c (unroll_loop): Remove decl of unused variable V. + (precondition_loop_p): Remove decls of unused variables. + (final_giv_value): Remove decl of unused variable CODE. + +Fri Mar 25 13:40:05 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * pa.h (DBX_REGISTER_NUMBER): Fix numerous bugs in handling + of FP registers and the SAR register. + +Fri Mar 25 12:46:56 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * i386.md (movhi, movqi): Properly recognize unsigned forms of -1 + for dec[bw] insns. + + * expr.c (expand_expr, case ADDR_EXPR): Return const0_rtx if + taking address of an ERROR_MARK; also do some minor cleanup. + + * calls.c (expand_call): Don't require both -W and -Winline to say + that call can't be inlined. + Warn if inlining is tried but fails. + + * cccp.c (for_lint): Variable renamed from `lint'. + + * expr.c (expand_expr, case ABS_EXPR): Compare with 0 of proper mode. + + * fold-const.c (fold, case *_DIV_EXPR): Correct result when + product of constants overflows. + + * alpha.c (output_prolog): Correctly compute floating-reg save + area offset. + + * stmt.c (init_stmt_for_function): Clear stack_block_stack. + + * reload1.c (reload): Fix error in last change; only check + against group reloads and check all reloads. + +Thu Mar 24 13:19:43 1994 Doug Evans (dje@cygnus.com) + + * toplev.c (v_pedwarn_with_decl): Don't cause compilation to fail + from pedantic errors in system header files. + +Thu Mar 24 03:01:05 1994 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) + + * config.sub: Add case for Bull dpx20. + + * config/m68k/dpx2.h (CPP_PREDEFINES): Fix typo. + +Wed Mar 23 17:29:56 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload1.c (reload): Fix error in last change; compute MODE before + it's used. + + * loop.c (get_condition): Exit if we don't recognize SET_SRC of + a SET that modifies OP0. + + * combine.c (simplify_rtx, case FLOAT_TRUNCATE): Simplify + case of (float_truncate (abs (float_extend X))). + +Wed Mar 23 17:20:54 1994 Jim Wilson (wilson@cygnus.com) + + * dbxout.c (dbxout_parms): For parameter living in psuedo-reg that + was optimized away, use declared type instead of passed type. + + * mips.c (mips_asm_file_start): Add comment on TARGET_GP_OPT code. + + * c-decl.c (init_decl_processing): Change builtin_next_arg type so + that it accepts any parameter instead of none. + * cp/decl.c (init_decl_processing): Likewise. + * expr.c (expand_builtin, BUILT_IN_NEXT_ARG case): Verify that + parameter is last named argument. + * gstdarg.h (va_start): Pass LASTARG as a parameter to + builtin_next_arg. + * va-h8300.h, va-i860.h, va-i960.h, va-mips.h, va-sparc.h + (va_start): Likewise. + * va-alpha.h (va_start): Add call to builtin_next_arg. + * va-clipper.h, va-m88k.h, va-pa.h, va-sparc.h (va_start): + Likewise. - * cse.c (cse_insn): Allow paradoxical SUBREGs in the table. +Tue Mar 22 18:57:54 1994 Jim Wilson (wilson@cygnus.com) - * reload.c (secondary_memlocs{,_elim}): New variables. - (get_secondary_mem, clear_secondary_mem): New function. - (push_reload): Convert SUBREG of hard reg to new hard reg. - Call get_secondary_mem when needed. - (find_reloads): Clear secondary_memloc_elim for each insn. - * reload1.c (reload): If SECONDARY_MEMORY_NEEDED, check for frame - size changed. - Call clear_secondary_mem. - (emit_reload_insns, gen_input_reload): Use memory when required to - do reload. - * reload.h (get_secondary_mem): Declare. + * iris5.h (MIPS_DEFAULT_GVALUE): Define to zero. + * mips.c (pic_address_needs_scratch): New function. + (override_options): Set flag_pic when TARGET_ABICALLS. + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Also pretend that we have REG + plus CONST_INT addresses by deleting an else. + (CONSTANT_ADDRESS_P): When pic, don't accept addresses which are + symbol_ref plus a large integer. + (LEGITIMATE_PIC_OPERAND_P): Likewise. + (LEGITIMIZE_ADDRESS): When pic, convert addresses which are + symbol_reg plus a large integer, to reg plus a large integer. + (ASM_OUTPUT_ADDR_DIFF_ELT): Use .gpword instead of subtracting + labels. + * mips.md (movsi): Add special handling for constants which are + illegal addresses when pic. + (tablejump_internal1, tablejump_internal2): Emit .cpadd when + TARGET_ABICALLS. Adjust length to include .cpadd. + + * mips.h (TRAMPOLINE_TEMPLATE): Add `move $25,$3' for when + TARGET_ABICALLS. Delete padding for 64 bit case. Adjust offsets. + (TRAMPOLINE_SIZE): Increase from 9 to 10 words for 32 bit case. + (INITIALIZE_TRAMPOLINE): Increase offsets by 4 bytes for 32 bit case. + +Tue Mar 22 15:46:42 1994 Michael Meissner (meissner@osf.org) + + * i386/osfrose.h (HANDLE_PRAGMA_WEAK): Define in terms of + TARGET_ELF. + (ASM_OUTPUT_DEF): Provide a definition. - * cccp.c (NULL_PTR): Define as void * if STDC. +Mon Mar 21 15:56:58 1994 Per Bothner (bothner@cygnus.com) - * rs6000.md (negdi2): Corrected name; used to be negdi3. + * fix-header.c: Make sstring buf extern (rather than "common"). + +Mon Mar 21 17:45:56 1994 Doug Evans (dje@cygnus.com) - * combine.c (subst, case SET): Put code to move SUBREG after - code that calls make_compound_operation. - (make_extraction): Don't check for INNER a REG except for in dest. - Fix typo checking for REG. - (make_compound_operation): Get the result in the same mode it - used to be. + * configure: Accept and ignore --without-*. - * reload.c (push_reload): If a SUBREG requires a secondary reload - but the inner expression doesn't, reload the inner expression - instead. +Mon Mar 21 17:05:25 1994 Jim Wilson (wilson@cygnus.com) -Fri Jul 17 02:20:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * dbxout.c (source_label_number): New variable. + (dbxout_source_file): Use it. Output an Ltext label. - * gcc.c (process_command): Handle `-Wl,' and `-Wa,'. - (do_spec_1): Handle %Y. - (default_compilers): Use %Y in assembler commands. + * c-decl.c (duplicate_decls): When pedantic, warn when any static + declaraction follows a non-static. - * function.c (assign_parms): In last change, test mode in parm type. + * sparc.md (seq, sne, sgt, slt, sge, sle): Add support + for !TARGET_HARD_QUAD. -Thu Jul 16 15:03:25 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Mar 21 16:59:02 1994 Mike Collison (collison@chianti.sw.stratus.com) - * loop.c (find_and_verify_loops): Ignore jumps to missing labels, - when using P. + * reload1.c (reload): More accurately compute nongroup needs. + (reloads_conflict): New function. - * c-typeck.c (build_binary_op): Improve shift warning messages. +Mon Mar 21 16:21:07 1994 Doug Evans (dje@cygnus.com) - * x-dpx2 (AS): Use $(GAS). - (GAS): New variable. + * libgcc2.c (__builtin_saveregs): Fix return type. - * mot3300.h (ASM_OUTPUT_CASE_END): Deleted. +Mon Mar 21 07:37:13 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * function.c (assign_parms): If arg was passed by invisible - reference, copy it to a pseudo if appropriate. + * function.c (preserve_temp_slots): If argument is REG, see if it + is address of a temp slot we know about. + * expr.c (expand_expr, case ADDR_EXPR): Update temp slot address + if we put it in a register; mark result as pointer. - * dwarfout.c (pure_or_virtual_attribute): - Add #if 0 around use of DECL_ABSTRACT_VIRTUAL_P. + * cse.c (FIXED_REGNO_P): Treate global regs as fixed. + (CHEAP_REGNO): Renamed from CHEAP_REG. + (CHEAP_REG): New macro; user var in hard reg is cheap. + (COST): Pass RTL to CHEAP_REG, not regno. + (rtx_cost, case REG): Likewise. -Wed Jul 15 16:29:05 PDT 1992 Ron Guilmette (rfg at ncd.com) +Sun Mar 20 19:38:44 1994 Stephen L Moshier (moshier@world.std.com) - * dwarfout.c (BLOCK_INLINE_FUNCTION): Obsolete definition deleted. - (block_ultimate_origin): New function. - (output_block): - Local var `have_significant_locals' renamed to `must_output_die'. - (output_block): Rewritten to handle abstract & concrete instances of - blocks of inline functions. - (output_decls_for_scope): - Don't bump `next_block_number' for abstract blocks. + * m68k/news.h (PRINT_OPERAND): Print float infinity + and NaN's as +/-99e999. - * toplev.c (rest_of_compilation): Call `dwarfout_file_scope_decl' for - both types of "abstract" instances of inline functions. +Sun Mar 20 17:42:09 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - * tree.def (BLOCK): Use new tree code category letter 'b' for BLOCKs. - * tree.h (struct tree_block): New struct type definition added. - (BLOCK_VARS, BLOCK_TYPE_TAGS, BLOCK_SUBBLOCKS, BLOCK_HANDLER_BLOCK): - Changed to reference fields of the new `struct tree_block' type. - (BLOCK_ABSTRACT_ORIGIN, BLOCK_ABSTRACT): Definitions added. - (union tree_node): Added `struct tree_block' as a new variant. - * tree.c (typedef tree_node_kind): Added new kind, i.e. `b_kind'. - (tree_node_kind_names): Added string name for new kind `b_kind'. - (make_node, copy_node, stabilize_reference_1): - Handle case 'b' (for BLOCK nodes). - (make_node): Don't try to deal with BLOCKs when doing a type 'e' node. - * print-tree.c (print_node): - Handle type 'b'; delete code for BLOCK from 'e' case. - Handle fields BLOCK_ABSTRACT_ORIGIN and BLOCK_ABSTRACT. - * calls.c (calls_alloca): Don't return 0 automatically if the expr - given is headed by a type 'b' node. - * cp-tree.c (break_out_calls): Add case for decl nodes. - Added case to catch BLOCK nodes (and to abort). - * integrate.c (copy_decl_tree): Set BLOCK_ABSTRACT_ORIGIN in new - instance block if not already set. - (expand_inline_function): Set BLOCK_ABSTRACT_ORIGIN for outermost - scope to point to progenitor (abstract inline) FUNCTION_DECL node. - (integrate_decl_tree): Set BLOCK_ABSTRACT_ORIGIN for inlined instance - BLOCKs. - (set_block_origin_self, set_decl_origin_self, set_block_abstract_flags, - set_decl_abstract_flags): New functions. - (output_inline_function): Call `set_decl_origin_self' for each fndecl - which is about to have an out-of-line instance generated for it. + * mips-tfile.c (update_headers): Align symbol table sections, + using ALIGN_SYMTABLE_OFFSET. Provide a default definition which + does no alignment. + * alpha.h (ALIGN_SYMTABLE_OFFSET): New macro. -Wed Jul 15 15:08:00 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Sun Mar 20 06:38:41 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - * c-convert.c (convert_to_integer): Push truncation inside COND_EXPR. + * emit_rtl.c (try_split): Rename third parameter as LAST. + Recursively call try_split for each new insn created. - * optabs.c (emit_cmp_insn): Always do protect_from_queue on x, y, size. - (expand_float, expand_fix): Likewise. - * expmed.c (expand_shift, expand_set_flag): - Call protect_from_queue before convert_to_mode. - * expr.c (convert_move): Don't call protect_from_queue. - (emit_block_move): Protect SIZE. + * combine.c (mark_used_regs_combine): Correct typo. - * explow.c (allocate_dynamic_stack_space) [SETJMP_VIA_SAVE_AREA]: - Always call round_push; we can't rely on alignment of size. +Sun Mar 20 06:28:23 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Wed Jul 15 06:47:11 1992 Richard Kenner (kenner@vlsi1.ultra.nyu) + * vax.h (CHECK_FLOAT_VALUE): Add missing continuation character. + * tree.c (build_real): Add `overflow' var; pass to CHECK_FLOAT_VALUE. - * combine.c (try_combine): Verify that I2DEST is a register before - trying to change its mode. +Sat Mar 19 17:44:14 1994 Jim Wilson (wilson@cygnus.com) -Tue Jul 14 15:13:28 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + * expr.c (expand_expr, case ABS_EXPR): Fix typo in last change. - * c-decl.c (finish_struct): Handle nested struct redefinitions. - * stor-layout.c (layout_record): Handle NULL dsize. +Sat Mar 19 17:13:47 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) -Tue Jul 14 21:31:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * combine.c (newpat_used_regs): New variable. + (mark_used_regs_combine): New function. + (try_combine): Use them. + (reg_dead_at_p): Registers marked in newpat_used_regs must always be + considered to be live. - * c-decl.c (duplicate_decls, pushdecl, grokdeclarator): - (store_parm_decls, combine_parm_decls, finish_function): - Use TYPE_MAIN_VARIANT when comparing against specific non-void types. - * c-typeck.c (self_promoting_args_p, self_promoting_type_p): - (signed_type, unsigned_type, default_conversion, check_format): - (build_binary_op, c_expand_start_case): Likewise. +Sat Mar 19 06:29:38 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Mon Jul 13 14:57:34 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * c-parse.in (attrib): Use `identifier' instead of `IDENTIFIER' + since names that are (e.g.) typedef names are still OK. - * c-decl.c (finish_function): Fix braino validating ret type of main. + * m68k/next.h (GO_IF_INDEXABLE_BASE): Make compatible with m68k.h. - * expr.c (expand_builtin): Refer to errno at rtl level only. - * sparc.h (TARGET_EDOM, GEN_ERRNO_RTX): New macros. + * genoutput.c (output_epilogue, insn_names): Write correct names + for patterns before first named pattern. -Mon Jul 13 06:35:53 1992 Paul Eggert (eggert@twinsun.com) + * nextstep.h (SELECT_SECTION): Fix typo (arg names) in last change. - * expr.c (expand_builtin): - For fsqrt, always use the special insn, then test for nan. + * c-decl.c (grokdeclarator): Use signed version of `sizetype' for + type of array index. -Mon Jul 13 08:45:34 1992 Tom Wood (wood@dg-rtp.dg.com) +Sat Mar 19 06:25:39 1994 Stephen L Moshier (moshier@world.std.com) - * m88k.md: Constraint fixes from Torbjorn. + * fold-const.c (const_binop): Avoid initialized aggregate + local variables, for antique compilers. - * jump.c (jump_optimize): In `x = a; if (...) x = b;' allow both a - and b to be non-zero if jumps are very expensive. Also allow a - and b to be constants where all the set bits in a are also set in - b when jumps are merely expensive. +Fri Mar 18 18:43:28 1994 Jim Wilson (wilson@cygnus.com) -Sun Jul 12 17:43:03 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + * i386/osfrose.h (SELECT_SECTION): Variables go in readonly data + only if the initializer is constant. + * i386/svr3gas.h, m88k/m88k.h, mips/mips.h, nexstep.h, + rs6000/rs6000.h, sparc/sparc.h, svr3.h, svr4.h, vax/vms.h + (SELECT_SECTION): Likewise. + * varasm.c (assemble_variable): Likewise. - * genpeep.c (match_rtx): Sometimes use %ld when printing an XWINT. +Fri Mar 18 17:54:12 1994 David Edelsohn (edelsohn@npac.syr.edu) - * regclass.c (record_reg_classes): If OP is a REG, use it's mode - in case the mode in MATCH_OPERAND is VOIDmode. + * rs6000.md (divmodsi4, udivsi3, divsi3, udivmodsi4): Add AIX + common-mode cases. + (mulh_call, mull_call, divss_call, divus_call, quoss_call, quous_call): + AIX common-mode call patterns. + (ashlsi3): More TARGET_POWERPC to ! TARGET_POWER changes. + (addsf3, subsf3, mulsf3, divsf3, etc.): Change TARGET_POWER + to ! TARGET_POWERPC. + (fix_truncdfsi2): Use POWER/2 and PowerPC FP convert instruction. + (fpcvtsi): New pattern. + (mulsidi3): Add AIX common-mode case, add imul attribute to POWER + pattern, add PowerPC pattern, flag input operands as commutative. + (smulsi3_highpart): Add AIX common-mode case. + (movsi matcher): Add mtjmpr attribute to ! TARGET_POWER case. + (movsf): Clean up load from memory or integer register test. + (movdi matcher): Add FP register support. -Sun Jul 12 13:03:54 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * rs6000.c (common_mode_defined): New variable. + (output_prolog): Define external common-mode calls. - * fixincludes: Replace the code that finds all directories - so that it looks for subdirs of dir reached via symlinks. + * rs6000.h (HARD_REGNO_MODE_OK): Allow DImode in FP registers. + (CONDITIONAL_REGISTER_USAGE): Delete ppcas mention from comment. + (RTX_COSTS): Costs based upon processor_type enum. - * cp-tree.h (IDENTIFIER_VIRTUAL_P): Macro moved here. - * tree.h (IDENTIFIER_VIRTUAL_P): Deleted from here. +Fri Mar 18 17:53:35 1994 Torbjorn Granlund (tege@cygnus.com) - * rtl.h (NOTE_BLOCK_NUMBER, SET_NOTE_BLOCK_NUMBER): New macros. - (NOTE_DECL_NAME, NOTE_DECL_CODE, ...): #if 0'd. - * function.c (identify_blocks, reorder_blocks): New functions. - (all_blocks, blocks_nreverse): New functions. + * rs6000.md (smulsi3_highpart): New patterns. + (umulsi3_highpart_power): New pattern. - * isi.h: Deleted the #error; file should work now. - (LIB_SPEC): Use -lg only once. - (STRUCTURE_SIZE_BOUNDARY): Defined. +Fri Mar 18 15:26:56 1994 Jim Wilson (wilson@cygnus.com) - * protoize.c (process_aux_info_file): Set must_create before jumping to - start_over. Don't clear must_create at start_over. Don't test - source file mod time for SYSCALLS. + * sol2.h (SELECT_RTX_SECTION): Delete. + * sysv4.h (SELECT_RTX_SECTION): Add. + (ASM_SPEC): Pass -K to assembler when PIC. - * machmode.h (GET_MODE_NUNITS): Avoid division by zero. + * cccp.c (before_system, last_before_system): New variables. + (main): Handle -isystem option. Insert -isystem directories in + search chain at first_system_include. + * gcc.c (include_prefix): New variable. + (process_command): Add path/include to include_prefix when see a + -Bpath option. + (do_spec_1, case 'I'): Pass include_prefix directories to cpp with + the -isystem option. -Sat Jul 11 22:21:47 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * loop.c (scan_loop): New variable loop_depth. Increment and + decrement on LOOP_BEG and LOOP_END notes. Only use LOOP_VTOP note + if loop_depth is zero. + (strength_reduce): Likewise. - * objc-parse.y (primary): Don't test TREE_EXTERNAL; - call assemble_external regardless. + * sparc/sparc.h (FIXUNS_TRUNCTFSI2_LIBCALL): Define. + * optabs.c (init_optabs): Use FIXUNS_TRUNCTFSI2_LIBCALL macro. - * tree.h (DECL_INLINE, DECL_NONLOCAL, DECL_REGISTER, DECL_EXTERNAL): - Renamed from TREE_INLINE, TREE_NONLOCAL, TREE_REGDECL, TREE_EXTERNAL. - All uses changed. +Thu Mar 17 13:13:46 1994 Per Bothner (bothner@kalessin.cygnus.com) - * xm-hp320.h (USG): Define it. + * stor-layout.c (layout_type, case BOOLEAN_TYPE): + Set TREE_UNSIGNED unless TYPE_MIN_VALUE is negative. -Sat Jul 11 21:43:56 1992 Michael Meissner (meissner@osf.org) +Thu Mar 17 18:36:34 1994 Jim Wilson (wilson@cygnus.com) - * mips.h (MIPS_VERSION): Bump meissner version number to 21. + * c-common.c (shorten_compare): When simplify compare against + zero, check for restype_ptr unsigned instead of primop0 unsigned. - * mips.md (andsi3, iorsi3, xorsi3): Make predicates match the - actual machine, since combine can now recreate the bitfields, and - doesn't do multiple logical operations when setting more than one - bitfield in a word. + * calls.c (expand_call): Undo Feb 27 change. Set nregs to -1 for + normal case. - * objc-actions.c (xmalloc, free): Don't provide extern decls for - these, since tree.h and rtl.h both now provide them. +Thu Mar 17 17:43:28 1994 Ian Lance Taylor (ian@cygnus.com) - * cp-lex.c (real_yylex): Declare a variable i, since a for loop - uses it as an index. Remove an extra '(' from a build_int_2 call. + * fixinc.svr4: Define BYTE_ORDER in as on + UnixWare 1.1. -Sat Jul 11 13:13:03 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Thu Mar 17 06:02:24 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * varasm.c: Get rid of default definitions of ASM_OUTPUT_CONSTRUCTOR - and ASM_OUTPUT_DESTRUCTOR. + * stor-layout.c (layout_type, case INTEGER_TYPE): Properly test for + nonnegative lower bound. - * c-aux-info (affix_data_type): Don't be fooled by names starting - with `const' or `volatile'. +Wed Mar 16 12:41:19 1994 Ian Lance Taylor (ian@cygnus.com) - * c-typeck.c (digest_init): Deal with nested {...} for scalar. + * tree.c (build_nt, build_parse_node): Don't declare last + parameter to be register, since it is used in VA_START, which + may take its address. + * genattrtab.c (attr_printf): Likewise. - * loop.c, reload1.c: Include stdio.h before config.h. +Wed Mar 16 12:00:40 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - * toplev.c (rest_of_compilation): Save and restore DECL_ARGUMENTS. + * pa.h (INITIALIZE_TRAMPOLINE): Do not mask off high + bits of address passed to icacheflush. -Fri Jul 10 22:42:34 1992 Paul Eggert (eggert@twinsun.com) + * pa.h (WCHAR_TYPE): Use "unsigned int" by default. + (WCHAR_TYPE_SIZE): Change appropriately. + * pa-ghiux.h, pa-ghpux.h, pa-gux7.h, pa-hiux.h, pa-hpux.h, + pa-hpux7.h (WCHAR_TYPE): Delete definition. + (WCHAR_TYPE_SIZE): Likewise. + * pa-osf.h (WCHAR_TYPE): Override appropriately for OSF1. + (WCHAR_TYPE_SIZE): Likewise. - * tree.c (build_real_from_int_cst): Truncate when folding to float. - (real_value_from_int_cst): Do not treat the topmost bit - of an unsigned long long value as a sign bit. + * pa.md (DImode lo_sum): Add earlyclobber for alternative one. - * cse.c (simplify_binary_operation): Don't optimize 0.0/x to 0.0 - if IEEE floating point is used, because x might be negative or NaN. + * pa.h (ASM_OUTPUT_ADDR_DIFF_ELT): Rewrite to match + ASM_OUTPUT_ADDR_VEC_ELT which is PIC-safe. -Fri Jul 10 15:37:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Wed Mar 16 09:07:34 1994 Matthias Pfaller (leo@marco.de) - * genpeep.c (match_rtx): Handle `w' elts of rtx. + * ns32k.c (global_symbolic_reference_mentioned_p): Recurse only + if GET_CODE (op) == CONST. - * Makefile.in (INTERNAL_CFLAGS): Add -DIN_GCC. + * ns32k.h (FUNCTION_PROLOGUE): Load sb through r0 if TARGET_REGPARM + is false. -Fri Jul 10 18:56:22 1992 Eric Youngdale (youngdale@v6550d.nrl.navy.mil) +Wed Mar 16 06:57:45 1994 Richard Kenner (kenner@vlsi1.ultra.nyu) - * cccp.c (finclude): Clean error msf if file_size_and_mode fails. + * emit-rtl.c (gen_lowpart_common, gen_highpart, operand_subword): + Test input against RTX for FP, AP, and SP, not same register number. -Fri Jul 10 13:44:46 1992 Howard Chu (hyc@hanauma.jpl.nasa.gov) + * expr.c (expand_expr): Update comments and fix formatting. + (expand_expr, case VAR_DECL, STRING_CST, CONSTRUCTOR): If + flag_force_addr, put address in register unless REG. + (expand_expr, case CONSTRUCTOR, CONVERT_EXPR): Make TARGET with + TMODE, if specified. + (expand_expr, case IN_EXPR): Clean up. Allow INDEX to be an + unsigned type. Always evaluate SET and INDEX in case of side effects. + (expand_expr, case CONVERT_EXPR): Use convert_modes to handle consts. + (expand_expr, case ABS_EXPR): Simplify processing of COMPLEX. + Compare with zero word-by-word if required. + (expand_expr, case ABS_EXPR, MIN_EXPR, COND_EXPR): Don't use TARGET + if not MODE. + (expand_expr, case TRUTH_*_EXPR): Modes of input and output must agree. + (expand_expr, case CONJ_EXPR): Remove redundant def of MODE. - * fx2800.h (LINK_LIBGCC_SPECIAL): Defined. - (DBX_OUTPUT_STANDARD_TYPES): Check that DECL_NAME(decl) exists - before trying to get its IDENTIFIER_POINTER. + * stor-layout.c (layout_record): If the place where we were going + to put a field changed, lay it out again. -Thu Jul 9 20:56:01 1992 Per Bothner (bothner@rtl.cygnus.com) +Tue Mar 15 07:53:36 1994 Paul A Vixie (paul@vix.com) - * dbxout.c (dbxout_type_methods): Fix minimal_debug so - that it skips a redundant class name prefix, as intended. - It now expects the length digits that precede the class name. + * Makefile.in (stmp-fixproto): Add missing "-" in front of "if". + (install-headers-tar, gcc.xtar): Use "-" in front of tar options. -Thu Jul 9 18:23:12 1992 Torbjorn Granlund (tege@wombat.gnu.ai.mit.edu) +Mon Mar 14 16:28:16 1994 Paul Eggert (eggert@twinsun.com) - * Makefile.in, libgcc2.c, longlong.h: Rename udiv_using_sdiv to - udiv_w_sdiv. + * fixincludes: Insert newlines just before the end of 'sed' + command strings if the last 'sed' command is 'a' or 'i'; + BSDI 1.1 'sed' needs this. -Thu Jul 9 18:10:40 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) +Mon Mar 14 15:46:29 1994 Ian Lance Taylor (ian@cygnus.com) - * tree.h (STRIP_TYPE_NOPS): New macro. - * c-decl.c (build_enumerator): Use STRIP_TYPE_NOPS. - * c-typeck.c (default_conversion): Use STRIP_TYPE_NOPS. - (build_binary_op, build_function_call): Likewise. - * c-common.c (check_case_value): Use STRIP_TYPE_NOPS. + * fixinc.svr4: Don't name variables in mmap prototype. - * mot3300.h (ASM_OUTPUT_CASE_END): New macro. - * m68k.c (switch_table_difference_label_flag): New variable. +Mon Mar 14 15:16:38 1994 Doug Evans (dje@cygnus.com) - * i860.md (QI and HI bte/btne patterns): Deleted. + * objc/Makefile (*.o): Add explicit dependencies for Sun's VPATH. -Thu Jul 9 06:09:20 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) +Mon Mar 14 05:11:42 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * c-typeck.c (default_conversion): Don't use STRIP_NOPS. + * function.c (assign_parms, expand_function_start): Properly + set MEM_IN_STRUCT_P for DECL_RTL of function result. - * print-rtl.c: Missing merge from 64-bit changes. - (print_rtx): Add new case 'w'. + * c-decl.c (grokdeclarator): Convert to sizetype when manipulating + size of array and use care to avoid mixed-type operations. -Wed Jul 8 14:35:39 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * expr.c (expand_expr): Don't call bc_expand_expr + if EXPAND_INITIALIZER. + * bc-optab.c (bc_expand_{binary,unary}_operation): Add missing + args to call to expand_expr. + * stmt.c (bc_expand_start_cond): Set exit_label if not EXITFLAG. + (bc_expand_end_bindings): Only define exit_label if set. + Don't pop nesting_stack. + * varasm.c (output_constant_def): Do hashing and make label + even if bytecode. + * bc-emit.c (bc_seg_write): Don't make unaligned reference to + seg->data. + * toplev.c (compile_file): Call bc_write_file here and pass + asm_out_file, not stdout. + (main): Don't call bc_write_file here. + Fix wording on error if -fbytecode specified on unsupported target. - * fixincludes, fixinc.svr4: Error if no argument. + * fold-const.c (fold, associate): If -ffast-math, associate FP mults. + (fold, case RDIV_EXPR): Split case; ignore division by 1. + If -ffast-math, convert to multply by reciprocal. + (fold, case *_DIV_EXPR): Simplify A/C1/C2. - * tree.c (integer_zerop, integer_onep, integer_all_onesp): - (integer_pow2p, real_zerop, real_onep, real_twop): Use STRIP_NOPS. - * expr.c (do_store_flag): Likewise. - * varasm.c (output_constructor): Likewise. - * c-decl.c (finish_struct, build_enumerator): Likewise. - * c-typeck.c (default_conversion, build_binary_op): Likewise. - (build_function_call): Likewise. + * tree.h (tree_int_cst_sgn): New declaration. + * tree.c (tree_int_cst_sgn): New function. + * c-decl.c (finish_{decl,struct,enum}): Call it. + * c-typeck.c (build_binary_op, pop_init_level): Likewise. + (output_pending_init_elements): Likewise. + * expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Likewise. + * fold-const.c (fold): Likewise. + (fold, case *_DIV_EXPR): Add missing conversion. + * convert.c (convert_to_integer): Convert integer_one_node to + proper type before tree_int_cst_lt call. - * integrate.c (integrate_decl_tree): Get rid of arg functionbody; - it was always 0. +Sun Mar 13 06:46:13 1994 Wolfgang Stukenbrock (wgstuken@immd4.informatik.uni-erlangen.de) - * mot3300.h: Fix typo. + * gcc.c (do_spec_1): Don't duplicate a macro starting with '__'. - * final.c (leaf_renumber_regs_insn): Handle new 'w' format. +Sun Mar 13 05:54:00 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Wed Jul 8 15:18:33 PDT 1992 Ron Guilmette (rfg at ncd.com) + * convert.c (convert_to_integer): When changing type of truthvalue + operation, change types of inputs too. + * c-common.c (TRUTH_*_EXPR): Convert to integer_type_node. - * tree.h (DECL_ABSTRACT_ORIGIN, DECL_ABSTRACT): Definitions added. - (struct tree_decl): New fields `abstract_origin' & `abstract_flag'. - (struct tree_decl): Field `from_inline_flag' deleted. - (DECL_FROM_INLINE): Definition revised to check DECL_ABSTRACT_ORIGIN. - * integrate.c (copy_decl_list): New function added. - (save_for_inline_copying): Call `copy_decl_list' for formal parameters. - Set DECL_ABSTRACT_ORIGIN for fndecl to point to itself. - (copy_decl_tree): Use `copy_decl_list' rather than just `copy_list'. - (integrate_parm_decls, integrate_decl_tree): Set DECL_ABSTRACT_ORIGIN - to point to the progenitor. - * print-tree.c (print_node): Print the value of DECL_ABSTRACT_ORIGIN - rather than the value of DECL_FROM_INLINE. + * tree.c: Include setjmp.h. + (build_real_from_int_cst): Propagate overflow flags and + establish float handler. + (build_complex): Propagate overflow flags. + * cse.c (simplify_binary_operation): Protect real_value_truncate + inside handler. + * fold-const.c (force_fit_value): Operate on REAL_CST as well. + (real_value_truncate): Don't use its own handler. + (const_binop): Set overflow on FP error and call force_fit_type. + (fold_convert): Likewise. + * c-common.c (constant_expression_warning, overflow_warning): + Handle REAL_CST and COMPLEX_CST. + * convex.h, convex.c, fx80.h, tahoe.h, vax.h, vax.c: Add OVERFLOW + operand to CHECK_FLOAT_VALUE. - * dwarfout.c (output_inlined_enumeration_type_die): New function. - (output_inlined_structure_type_die, output_inlined_union_type_die): - New functions added. - (output_entry_point_die, output_formal_parameter_die, - output_global_subroutine_die, output_global_variable_die, - output_label_die, output_lexical_block_die, - output_inlined_subroutine_die, output_local_variable_die, - output_local_subroutine_die): - Fixed to handle inline abstract & concrete (i.e. inlined) instances. - (output_inlined_subroutine_die): Deleted. - (output_label_die): Don't permit the rtx associated with a named - user-declared label to be marked as INSN_DELETED_P. - (output_tagged_type_instantiation): New function added. - (output_decl): Call `output_tagged_type_instantiation'. - Don't generate a pubnames label for anything marked as DECL_ABSTRACT. - (output_die): Generate the proper kind fo DIE for each of the four - possible combination of {normal, inlined} {variable, parameter}. - (dwarfout_file_scope_decl): Don't generate pubnames entries if - strictly abstract. + * jump.c (rtx_equal_for_thread_p): Correct error in previous + change; add missing arg in recursive call. - * dwarfout.c (ordering_attribute): Only def if USE_ORDERING_ATTRIBUTE - is defined. - (output_array_type_die): Only call ordering_attribute if it is defined. - (name_and_src_coords_attributes): Don't make it inline. - Do make it static linkage. - (const_value_attribute): Catch invalid kinds of rtx nodes - by aborting for the default case in switch. +Sat Mar 12 19:42:03 1994 H.J. Lu (hjl@nynexst.com) - * dwarfout.c (output_ptr_to_mbr_type_die): Make it static linkage. - (output_formal_types): Make sure that `formal_type' is initialized. - (output_type): Add a default case for switch. - (output_decl): Don't suppress DIEs for the initial (artificial) - arguments for C++ static member functions. + * configure (gxx-include-dir): Replacement for gxx-prefix. + * Makefile.in (gxx_include_dir): Likewise, for gxx_prefix. - * dwarfout.c (ceiling, field_type, simple_type_align_in_bits, - simple_type_size_in_bits, field_byte_offset): New functions added. - (data_member_location_attribute): Use new routine `field_byte_offset' - to calculate the offset value for the AT_location attribute. - (byte_size_attribute): Use new routine `field_type' to get the - actual type for any FIELD_DECL. Also, use `simple_type_size_in_bits' - to avoid potential problems with ERROR_MARKs when computing the size - of a FIELD_DECL. - (bit_offset_attribute): Rewritten to use `field_byte_offset' when - determining the start of the "containing object". + * i386/linux.h (NO_IMPLICIT_EXTERN_C): Defined. - * integrate.c (expand_inline_function): Integrate parameters before - locals to get debugging information in the proper order. - (integrate_decl_tree): Don't do a redundant pushlevel/poplevel for - the outermost scope (i.e. when level==0)... just use the one created - by `expand_inline_function'. +Sat Mar 12 07:42:12 1994 Paul Eggert (eggert@twinsun.com) - * calls.c (calls_alloca): For BLOCK, walk subblocks and vars by hand. + * Makefile.in (stmp-fixproto): Work around a `make' bug in BSDI 1.1. -Wed Jul 8 13:31:19 1992 Michael Meissner (meissner@osf.org) +Sat Mar 12 07:38:08 1994 Klaus Kaempf (kkaempf@didymus.rmi.de) - * cp-decl.c (print_binding_level): Fix typo, where 'lbl' was used - instead of 'lvl'. + * bi-run.h: Properly test BYTES_BIG_ENDIAN. + * bytecode.h: Likewise for WORDS_BIG_ENDIAN. - * objc-actions.c (build_shared_structure_initializer): Correct call - to build_int_2 which had only one argument, instead of two. + * cccp.c (do_include, hack-vms_include_specification): Change handling + of '#include filename' to be compatible with VAX-C. -Wed Jul 8 06:37:40 1992 Torbjorn Granlund (tege@sics.se) + * genemit.c (gen_exp): Added \n to printf to shorten line for VAX-C. - * gstdarg.h, gvarargs.h: Test `__hppa__' instead of `__hp9000s800__'. +Sat Mar 12 06:42:38 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * romp.md (zero_extendhisi2): Remove unneeded constraint. + * expr.h (emit_float_lib_cmp): Add declaration here. + * optabs.c: Don't define emit_float_lib_cmp now that no longer static. - * rs6000.md (zero_extendhisi2): Remove unneeded constraint. - (lu/stu): Use %0 instead of %1 in assembler insns. - (call_value): Add missing "=" in constraint. + * jump.c: Add prototypes for static functions. + (jump_optimize, delete_insn): Use GET_RTX_CLASS to test for insns. + (mark_jump_label): Delete dead code. + (delete_computation, redirect_tablejump): No longer static. -Wed Jul 8 06:30:20 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) +Fri Mar 11 14:40:40 1994 Jim Wilson (wilson@cygnus.com) - * rs6000.md (floatsidf): Correctly handle case when SImode operand - overlaps the first DFmode register. + * lite.h (TARGET_DEFAULT): Use parentheses. + * sparc.h (TARGET_HARD_QUAD): New macro. + (TARGET_SWITCHES): Add hard-quad-float, soft-quad-float. + (TARGET_DEFAULT): Use parentheses. + ({ADDTF3,SUBTF3,MULTF3,DIVTF3,SQRTTF2,FLOATSITF2,FIX_TRUNCTFSI2, + EXTENDSFTF2,TRUNCTFSF2,EXTENDDFTF2,TRUNCTFDF2,EQTF2,NETF2,GTTF2, + GETF2,LTTF2,LETF2}_LIBCALL): New macros. + * sparc.md (sleu+4, sleu+7, extendsftf2, extenddftf2, trunctfsf2, + trunctfdf2, floatsitf2, fix_trunctfsi2, addtf3, subtf3, multf3, + divtf3, sqrttf2): Disable when -msoft-quad-float. + (beq, bne, bgt, blt, bge, ble): When -msoft-quad-float, account + for return value of SPARC ABI routines that differs from libgcc. + * flow.c (libcall_dead_p): Fail not abort for libcall that returns + value via invisible pointer. + * optabs.c (emit_float_lib_cmp): Make non static. + (init_optabs): Use {ADDTF3,SUBTF3,MULTF3,DIVTF3,SQRTTF2,FLOATSITF2, + FIX_TRUNCTFSI2,EXTENDSFTF2,TRUNCTFSF2,EXTENDDFTF2,TRUNCTFDF2,EQTF2, + NETF2,GTTF2,GETF2,LTTF2,LETF2}_LIBCALL macros. - * fold-const.c (distribute_bit_expr, range_test, fold_truthop): - Use TRUTH_AND_EXPR instead of BIT_AND_EXPR so invert_truthvalue works. + * sparc/sparc.h (STARTING_FRAME_OFFSET): Depend on + LONG_DOUBLE_TYPE_SIZE. - * c-decl.c (grokdeclarator): Strip all NOP_EXPRs from SIZE. +Fri Mar 11 08:01:54 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - * integrate.c: Do 64-bit changes (this file omitted the last time). - Replace use of NULL and 0 in functions args with NULL_RTX. - (copy_rtx_and_substitute, subst_constants): Handle "w" rtl - operand class. + * rtl.h, tree.h, g++.c, gcc.c (PVPROTO): New macro. + * combine.c, expr.h, rtl.h, tree.h, gcc.c: Use it for varargs protos.. + * genattrtab.c, mips-tfile.c, output.h, toplev.c: Likewise. - * rs6000.h (LINK_SPEC): Support -static. +Fri Mar 11 07:21:36 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * tree.c (make_node, copy_node, make_tree_vec, tree_cons, build1): - Clear or copy tree nodes in a consistent manner, referencing - every byte of the node. + * emit-rtl.c (copy_rtx_if_shared, case LABEL_REF): Can't share. + * jump.c (jump_optimize): Delete REG_LABEL note if label no + longer in insn. - * regclass.c: Initialize REG_CLASS_CONTENTS into an array of - ints, then copy into a HARD_REG_SET to avoid conditionalization - of REG_CLASS_CONTENTS on 64-bit machines. + * c-decl.c (finish_decl): When preserving an initializer, ensure + its type is on a good obstack. - * c-common.c (check_case_value): Strip the NOP_EXPR added by - the grammar. - * stmt.c (pushcase, pushcase_range): Don't do it here. +Thu Mar 10 15:32:42 1994 Mike Collison (collison@sw.stratus.com) - * c-lex.c (yylex): Ensure TOTAL_PARTS is wide enough to store a - constant as wide as we can store in an INTEGER_CST. - (LONG_LONG_TYPE_SIZE): Deleted; no longer needed. + * reload1.c (emit_reload_insns): When clearing reg_last_reload_reg, + clear all hard regs in reload_out. -Tue Jul 7 15:50:38 1992 Chip Salzenberg (chip@tct.com) +Thu Mar 10 15:23:10 1994 Hallvard B Furuseth (hbf@durin.uio.no) - * x-i386sco (XCFLAGS): Omit flags specific to "rcc". - (CC, OLDCC): Put them here instead. + * collect2.c (dup2): Catch `dup' failure. Return correct value. -Tue Jul 7 18:57:10 1992 Mike Stump (mrs@wombat.gnu.ai.mit.edu) +Thu Mar 10 15:18:08 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) - The below entries should make DWARF debugging a little bit easier. + * gcc.c ([__MSDOS__]): Use #ifdef, not #if. + * collect2.c ([__MSDOS__]): Likewise. - * cp-decl.c (pushdecl): IDENTIFIER_GLOBAL_VALUE should not be _DECL - nodes but rather TYPE_DECLs. +Thu Mar 10 15:03:01 1994 Paul Eggert (eggert@twinsun.com) - * cp-decl.c (pushtag): Mark binding layer markers as internal. + * cccp.c (main, finclude, check_precompiled): When safe_read + returns a partial buffer, this means EOF has been reached; + don't try to read any more. - * cp-class.c (finish_struct): Propagate internal mark on binding - layer markers. +Wed Mar 9 18:47:29 1994 Paul Eggert (eggert@twinsun.com) - * cp-decl2.c (finish_file): Don't name things that should not be - named. + * real.c (target_negative): -0 counts as negative. - * cp-method.c (decl_as_string): New back-end routine for - substitute_nice_name. +Wed Mar 9 15:32:01 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * cp-decl2.c (substitute_nice_name): New function used to create - reasonable DECL_NAMEs from cyrptic ones. + * m68k.md (movqi): Disable special-case of stack push if operand + one is an address register. - * cp-decl2.c (grokclassfn): Use substitute_nice_name. + * c-typeck.c (pointer_int_sum): Multiplication should be + done signed. + (pointer_diff): Likewise the division. + * fold-const.c (fold, case MULT_EXPR): Simplify MULT_EXPR of an + EXACT_DIV_EXPR with the same divisor as our multiplicand. -Tue Jul 7 14:04:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * expr.c (emit_move_insn): Don't try subwords for a single word. - - * gcc.c (find_a_file, putenv_from_prefix): - Handle value of 2 in require_machine_suffix. - (process_command): Supply 2 for standard_exec_prefix{,_1}. - - * gstdarg.h: Undefine _BSD_VA_LIST if we define va_list. - - * cccp.c (append_include_chain): Fix setting of first_bracket_include. - - * loop.c (init_loop): Use word_mode, not SImode. - - * x-dpx2: New file. - * x-dpx2200, x-dpx2300: Files deleted. - * configure (m68k-bull-sysv*): Fatal error unless --with-gas. - Always use x-dpx2. - - * libgcc2.c (XFtype): Turn off definition; not used. - (TFtype): Define only if needed. - -Tue Jul 7 11:57:44 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) - - * tahoe.md (call_value): Add `=' to output operand constraint. - * arm.md (call_value): Likewise. - * gmicro.md (negsf2, negdf2, abssf2, absdf2): Likewise. - (peephole for moving returned value to fp reg): Likewise. - - * longlong.h (SI_TYPE_SIZE): Renamed from LONG_TYPE_SIZE. - - * longlong.h (machine independent code): #define udiv_qrnnd to call - __udiv_using_sdiv if we have sdiv_qrnnd but not udiv_qrnnd. - * libgcc2.c (__udiv_using_sdiv): New function. - * Makefile.in (LIB2FUNCS): Add __udiv_using_sdiv. - -Mon Jul 6 23:28:29 1992 Mike Stump (mrs@wombat.gnu.ai.mit.edu) - - * cp-dem.c, cp-lex.c, cp-method.c, cp-xref.c: Do not include - string.h or strings.h. - -Mon Jul 6 18:32:31 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * emit-rtl.c (operand_subword): Avoid conditionals in macro arg. - - * Changes to support execution on 64-bit machines. - * machmode.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, HOST_PTR_PRINTF): - Provide default definitions. - (MAX_SHORT): New macro. - (GET_MODE_BITSIZE): Cast result and shift constant to HOST_WIDE_INT. - * rtl.h (union rtunion_def): Add field rtwint. - (XWINT): New accessor macro. - (INTVAL): Use XWINT, not XINT. - (exact_log2, floor_log2, plus_constant, plus_constant_for_output): - Now macros that cast arg to HOST_WIDE_INT. - (NULL, NULL_PTR): Provide default definitions. - (GEN_INT): New macro. - (get_integer_term): Now returns HOST_WIDE_INT. - * tree.h (NULL, NULL_PTR): Provide default definitions. - (INT_CST_LT, INT_CST_LT_UNSIGNED): Cast to HOST_WIDE_INT. - (struct tree_int_cst): Pieces of constant are HOST_WIDE_INT, not - long. - (exact_log2, floor_log2, build_int_2): Now macros, like rtl.h. - * real.h (REAL_VALUE_TYPE, union real_extract): Use HOST_WIDE_INT, - not long. - (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XWINT instead of XINT. - * rtl.def (CONST_INT): Operand type now "w". - (CONST_DOUBLE): Change operands from type "i" to "w". - * basic-block.h (REGSET_ELT_BITS): Always use HOST_BITS_PER_WIDE_INT. - (REGSET_ELT_TYPE): New macro; same as HOST_WIDE_INT. - * expr.h (ARGS_SIZE_RTX): Use NULL_RTX in expand_expr call. - (plus_constant): Remove duplicate declaration. - * hard-reg-set.h (HARD_REG_SET): Only scalar type we use - is HOST_WIDE_INT; array is array of HOST_WIDE_INT. - * loop.h (struct induction): Field CONST_ADJUST is now HOST_WIDE_INT. - (loop_n_iterations): Now unsigned HOST_WIDE_INT. - (loop_iterations): Returns HOST_WIDE_INT. - * c-parse.y, cexp.y, c-decl.c, c-lex.c, c-typeck.c, caller-save.c: - Change 0 or NULL when passed as a parameter that should be a pointer - to NULL_TREE, NULL_RTX, or NULL_PTR, as appropriate. - * calls.c, cccp.c, combine.c, cp-lex.c, cse.c, dbxout.c: Likewise. - * dwarfout.c, emit-rtl.c, explow.c, expmed.c, expr.c: Likewise. - * final.c, flow.c, fold-const.c, function.c, gcc.c: Likewise. - * genattrtab.c, genpeep.c, genrecog.c, global-alloc.c: Likewise. - * jump.c, local-alloc.c, optabs.c, recog.c, reg-stack.c: Likewise. - * regclass.c, reload.c, reload1.c, reorg.c, rtl.c: Likewise. - * rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c: Likewise. - * toplev.c, unroll.c, varasm.c, loop.c, xcoffout.c: Likewise. - * caller-save.c, combine.c, cp-class.c, cp-decl.c, cp-method.c: - Cast and declare objects used to refer to wide values as HOST_WIDE_INT. - Use HOST_BITS_PER_WIDE_INT instead of HOST_BITS_PER_INT. - * cp-pt.c, cp-type2.c, cp-typeck.c, cse.c, dbxout.c: Likewise. - * dwarfout.c, emit-rtl.c, explow.c, expmed.c, expr.c: Likewise. - * final.c, fold-const.c, genattrtab.c, recog.c, reg-stack.c: Likewise. - * regclass.c, reload.c, sched.c, stmt.c, stor-layout.c: Likewise. - * loop.c, toplev.c, unroll.c, varasm.c: Likewise. - * caller-save.c, combine.c, flow.c, global-alloc.c, reorg.c, sched.c: - When refering to regsets, use type REGSET_ELT_TYPE. - * calls.c, combine.c, emit-rtl.c, explow.c, expmed.c, expr.c, final.c: - Use GEN_INT macro when making CONST_INTs. - * function.c, jump.c, loop.c, optabs.c, recog.c, reload1.c: Likewise. - * unroll.c: Likewise. - * cp-decl.c, cp-ptree.c, print-tree.c: Use HOST_PTR_PRINTF when - printing pointer values. - * cccp.c, cexp.y, gcc.c (NULL, NULL_PTR): Provide default definition. - * c-common.c (NULL): Remove definition from here. - * c-decl.c (NULL): Likewise. - (finish_struct): Ensure high-order part of width is zero. - * cp-decl.c (finish_enum): Likewise. - * c-lex.c (yylex): Call build_int_2 in more portable way. - (yyprint): Print constant different ways, depending on host parameters. - * final.c (output_asm_insn, output_addr_cont): Likewise. - * genattrtab.c (write_test_expr): Likewise. - * print-tree.c (print_node_brief, print_node): Likewise. - * cp-decl.c (xref_tag): Remove explicit reference to modes. - * cp-method.c (build_overload_value): Likewise. - * cp-lex.c (real_yylex): Make accumulating bits for constant - more portable. - * cse.c (uid_cuid): Now pointer to int instead of to short. - (exp_equiv_p): Change ifs on GET_RTX_FORMAT to a switch. - Add format code of "w". - * emit-rtl.c (gen_rtx): Add format code of "w". - * jump.c (rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise. - * loop.c (rtx_equal_for_loop_p): Likewise. - * reload.c (operands_match_p): Likewise. - * rtl.c (copy_rtx, copy_most_rtx): Likewise. - * rtlanal.c (rtx_equal_p): Likewise. + * jump.c (rtx_equal_for_thread_p): Commutative operations + are identical if the operands match in the opposite order. * sched.c (rtx_equal_for_memref_p): Likewise. - * explow.c (plus_constant_wide): Formerly plus_constant; argument - is HOST_WIDE_INT. - (plus_constant_for_output_wide): Similarly. - * fold-const.c: Use MAX_SHORTS for dimension of array of shorts. - * genattrtab.c (NULL_ATTR): New macro. - (attr_rtx): Use XWINT, not XINT, for CONST_INT. - Add case "w". - (check_attr_test, write_test_expr, main): Use XWINT, not XINT, - for CONST_INT. - * genemit.c (gen_exp): Use "NULL_RTX" instead of "0" when - emitting null. - Use GEN_INT and proper width when emitting a CONST_INT. - Abort if trying to write a CONST_DOUBLE. - * genrecog.c (struct decision): Add new fields TEST_ELT_ZERO_WIDE - and ELT_ZERO_WIDE. - (add_to_sequence, not_both_true, merge_trees, write_tree_1): - Use new fields. - * global-alloc.c (INT_BITS, INT_TYPE): Use HOST_WIDE_INT for type - of conflict matrix. - * loop. (loop_n_iterations): Now HOST_WIDE_INT. - * recog.c: Remove redundant declarations of plus_constant_for_output - and copy_rtx. - * rtl.c: Declare atol if needed. - (rtx_format): Add code for "w". - (read_rtx): Read code "w" field with atol if required. - (init_rtl): Fields of CONST_DOUBLE are now type "w". - * rtlanal.c (get_integer_term): Returns HOST_WIDE_INT. - * cccp.c, toplev.c: Error function args are HOST_WIDE_INT (kludge). - * toplev.c (exact_log2_wide): Renamed from exact_log2 and now has - arg of type HOST_WIDE_INT. - (floor_log2_wide): Similarly. - * tree.c (permalloc): Type of SIZE arg is int, not long. - (build_int_2_wide): Renamed from build_int_2 and has args of - type HOST_WIDE_INT. - * unroll.c (loop_iterations): Now returns HOST_WIDE_INT. - * varasm.c (immed_double_const): Arguments are now HOST_WIDE_INT. - -Mon Jul 6 14:56:26 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-common.c (decl_attributes): Don't set DECL_PACKED on VAR_DECL. - - * Makefile.in (GCC_CFLAGS): - Use CROSS_GCC_CFLAGS instead of -B for tooldir. - * cross-make (CROSS_GCC_CFLAGS): Define as -B for tooldir. - - * c-decl.c (finish_function): If return type of `main' is not `int', - warn instead of doing DEFAULT_MAIN_RETURN. - - * collect2.c, dwarfout.c, halfpic.c: Don't incude string.h. - - * c-decl.c (duplicate_decls): Let char *foo () match void *foo () - only if one of them came from a system header file. - - * stmt.c (pushcase): Fix typo. - - * Makefile.in (ALLOCA_FINISH): Make default `true'. - - * cccp.c (main): Clear first_bracket_include for -I-. - Set first_system_include for first system header directory. - (is_system_include): Start search at first_system_include. - -Mon Jul 6 12:58:27 1992 Chip Salzenberg (chip@tct.com) - - * cccp.c (INCLUDE_LEN_FUDGE): Defined. - (append_include_chain): New function. Adds directory(ies) - to include chain and updates value of max_include_len. - (main, path_include): Use append_include_chain. - (do_include): Use INCLUDE_LEN_FUDGE. - - * tree.h (DECL_IN_SYSTEM_HEADER): Defined. - (struct tree_decl): Add in_system_header_flag. - * c-common.c (declare_function_name): For __FUNCTION__ - and __PRETTY_FUNCTION__, set DECL_IN_SYSTEM_HEADER instead - of TREE_USED to supress `unused' warnings. - * c-decl.c (duplicate_decls): Merge DECL_IN_SYSTEM_HEADER flag. - * print-tree.c (print_node): Display TREE_RAISES and - DECL_IN_SYSTEM_HEADER flags. - * toplev.c (compile_file): Do not warn if an unused DECL - has DECL_IN_SYSTEM_HEADER set. - (rest_of_compilation): Do not set TREE_USED on static - functions defined in system headers; this will be taken - care of with DECL_IN_SYSTEM_HEADER. - * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER on permanent - decls defined in system headers. - * objc-actions.c (build_module_descriptor,add_objc_decls): - Set DECL_IN_SYSTEM_HEADER instead of TREE_USED on compiler- - created decls. - -Mon Jul 6 10:17:30 1992 Michael Collison (collison at osf.org) - - * i386.h (SUBTARGET_SWITCHES): - Incoporate SUBTARGET_SWITCHES into TARGET_SWITCHES. - (HALF_PIC_P, HALF_PIC_NUMBER_PTRS, HALF_PIC_NUMBER_REFS, - HALF_PIC_ENCODE, HALF_PIC_DECLARE, HALF_PIC_INIT, - HALF_PIC_ADDRESS_P, HALF_PIC_PTR, HALF_PIC_FINISH): - Define these as stubs if not OSF/1 platform. - * i386.md (movsi): Recognize half-pic moves. - -Mon Jul 6 11:16:47 1992 Tim Moore (moore@defmacro.cs.utah.edu) - - * pa.h (ASM_DECLARE_FUNCTION_NAME): Fix typo - -Mon Jul 6 08:48:51 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) - - * m68k.md (swapsi): Add `+' operand constraints. - (insert to memory recognizer): Add `+'. - (peephole for moving returned value to fp reg): Add `='. - -Sun Jul 5 16:34:24 1992 John F Carr (jfc at Achates.mit.edu) - - * vax.md (addsi3): Code generation improvements (whether to use movab). - - * vax.md (andsi3, andhi3, andqi3): If one of the source operands - is a constant, complement that operand instead of a register or - memory operand. - -Sun Jul 5 13:16:15 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (try_combine): When splitting using a DEFINE_SPLIT, - update the number of sets of the destination if it is being set - twice. Also update reg_significant. - -Sun Jul 5 13:14:50 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c++: Fix typo testing $quote for nullness. - - * cse.c (simplify_binary_operation): Don't put sum of two symbolic - addresses into a CONST. - - * m68kv4.h (ASM_OUTPUT_ALIGNED_COMMON): #undef this. - (ASM_OUTPUT_ALIGNED_LOCAL): #undef this. - (ASM_OUTPUT_ASCII): New overriding definition. - (ASM_OUTPUT_CASE_END): New overriding definition. - - * c-typeck.c (convert_arguments): No -Wconversion warning - if the function wants an enumeral type. - - * tek6000.h, tek6100.h, tek6200.h: New files. - * configure (ns32k-tek6100-bsd, ns32k-tek6200-bsd): New alternatives. - * config.sub: utek is synonym for bsd. - - * Makefile.in (alloca.o): Add -c. - - * Makefile.in (start.encap): Use LIBGCC1, not LIBGCC1_TARGET. - (GCC_CFLAGS): Find executables in $(tooldir)/bin, not $(tooldir). - (libgcc1.cross): New target. - (all.cross, cross-test): Depend on libgcc.a. - * cross-make (LIBGCC1): Use libgcc1.cross. - - * Makefile.in (USER_H): va-hp800.h changed to va-pa.h. - (install-common): Fix typo. - - * stmt.c (pushcase, pushcase_range): Use STRIP_NOPS on the values. - - * x-amix, x-i860v4, x-ncr3000, x-sparcv4: Undo last change. - * x-i386v4, x-m68kv4: Files deleted. - * configure (i386-*-sysv4, i486-*-sysv4, m68k-*-sysv4): - Corresponding changes. - - * c-decl.c (duplicate_decls): Don't warn about disagreement in `inline' - except when non-inline fn is made inline after a call or definition. - -Sun Jul 5 10:25:22 PDT 1992 Ron Guilmette (rfg at ncd.com) - - * c-decl.c (grokdeclarator): Make `long long long' an error, not a - warning. Make duplicate qualifiers do pedwarn, not warning. - - * c-decl.c (pushdecl): Always create a new (variant) ..._TYPE node - for each new TYPE_DECL node created. - - * libgcc2.c (UQItype, SItype, USItype, DItype, UDItype, SFtype, DFtype, - XFtype, TFtype): Typedefs added. - (SI_TYPE_SIZE): Renamed globally from LONG_TYPE_SIZE. - Define names for ANSI C types to `bogus_type' over the range of lines - where we must always use the new mode-related types. Undef them again - at the end of that range (so we can used the ANSI types again), and - then define the mode-related type names to `bogus_type' to insure - those are not used from then on. - - * libgcc2.c, longlong.h (DIstruct): Renamed globally from `longlong'. - (DIunion): Renamed globally from `long_long'. - Universally use the new mode-related type names for all functions - and macros which expect, yield, or otherwise rely on operands to be - of certain GCC-defined machine modes. - -Sun Jul 5 11:11:00 1992 Torbjorn Granlund (tege@wombat.gnu.ai.mit.edu) - - * pa.h: (TARGET_VERSION): Print " (hppa)". - * pa.md (zdepi recognizer): Add attribute. - (recognizers for SImode load and store with fpregs): Add `=' to - operand 0. - -Sat Jul 4 15:02:19 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * configure (mips-*-sysv4): Don't set use_collect2. - - * c-parse.y (primary): Wrap a NOP_EXPR around an enum value. - - * libgcc2.c (__builtin_saveregs for i860): Test __svr4__, not SVR4. - * va-i860.h: Test __svr4__. - - * c-decl.c (finish_function): Set BLOCK_SUPERCONTEXT of outer block. - - * x-m88kv3: File deleted. - - * x-sparcv4 (X_CFLAGS): Add -dn. - - * reorg.c: Move the #ifdef DELAY_SLOTS after the #includes. - -Sat Jul 4 14:16:33 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (SUBST): Ensure we don't call something that can make - a new undo entry in the middle of our making one. - -Sat Jul 4 12:17:55 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (cp-parse.c): Append YYEMPTY to cp-parse.h, not ...y. - - * cse.c (simplify_unary_operation): Add aborts in zero_extend - and sign_extend cases, explaining how they might need to be changed. - - * i960.h (WORD_SWITCH_TAKES_ARG): Fix typo. - - * x-amix, x-sparcv4, x-i860v4, x-i386v4, x-ncr3000: - Add -static to X_CFLAGS. - * x-m68kv4: New file. - * isc.h (HANDLE_SYSV_PRAGMA): Defined. - -Sat Jul 4 15:18:33 PDT 1992 Ron Guilmette (rfg at ncd.com) - - * xm-spc-sol2.h: New file. - - * tree.h (DECL_UID): Definition added. - (struct tree_decl): `uid' field added. - * tree.c (DECL_UID): Initialize this uniquely for each new ..._DECL. - - * rtl.h (NOTE_INSN_DELETED_LABEL): Definition added. - * rtl.c (note_insn_name): Add entry for NOTE_INSN_DELETED_LABEL. - * final.c (final_scan_insn): Call `dwarfout_label' for each - `NOTE_INSN_DELETED_LABEL'. - * jump.c (delete_insn): Don't really delete CODE_LABELs corresponding - to user-declared lables... Turn them into NOTE_INSN_DELETED_LABELs - instead. - - * dwarf.h (AT_abstract_origin): Renamed from AT_specification. - * dwarfout.c (dwarf_attr_name): Likewise. - (dwarf_tag_name, dwarf_attr_name, dwarf_stack_op_name, - dwarf_typemod_name, dwarf_fmt_byte_name): Use normal DWARF prefixes - for string names of unrecognized values. - (is_block_body): New function added. - (DECL_NAME_FMT): Definition added. - (equate_decl_number_to_die_number, abstract_origin_attribute, - pure_or_virtual_attribute): New functions added. - (src_coords_attribute): Only define this is DWARF_DECL_COORDINATES - is defined. - - * populate: New file. - - * function.c (instantiate_decls): Delete #if 1. - - * flags.h, toplev.c, dbxout.c (use_gnu_debug_info_extensions): - Renamed from `use_gdb_dbx_extensions'. - - * toplev.c (main): Added support for -gdwarf+ and for -gxcoff+. - -Sat Jul 4 08:39:47 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.c (m88k_end_prologue): Reset frame_laid_out here. - (m88k_expand_prologue): Not here. - - * m88k.h (IDENT_ASM_OPT, ALIGN_ASM_OPT, ASM_OUTPUT_CASE_LABEL): - Override svr4.h. - -Fri Jul 3 12:40:27 1992 Paul Eggert (eggert@twinsun.com) - - * fold-const.c (fold_convert): When converting a floating point - constant to integer, warn about out-of-range values after truncating - to integer, not before. - -Fri Jul 3 19:34:07 1992 Mike Stump (mrs@hal) - - * Makefile.in ($(srcdir)/cp-parse.c): extract YYEMPTY out of the - parser generated .c file and put in the parser .h so that cp-lex.c - does not have to define it. - * cp-tree.c (__eprintf): Third argument line is now unsigned, - completes Ron's Jul 2 change. +Wed Mar 9 12:07:29 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) -Fri Jul 3 15:03:30 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + * cse.c (simplify_relational_operation): Fix typos; use + ARG_POINTER_REGNUM and FRAME_POINTER_REGNUM in condtionals. - * configure: Set FIXINCLUDES in Makefile based on sysv4 or not. - * x-amix (ENQUIRE_CFLAGS, FIXINCLUDES): Deleted. +Tue Mar 8 16:12:07 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * config.sub: Recognize i486 like i386. + * explow.c (break_out_memory_refs): Don't call mark_reg_pointer + here. + (memory_address): Call it here if X changed and is now a REG + or REG + CONST_INT. - * defaults.h (ASM_FORMAT_PRIVATE_NAME, ASM_OUTPUT_ADDR_VEC_ELT): - (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_STABD_OP): New default definitions. - * final.c: Include defaults.h. - (ASM_STABD_OP): Deleted. - * Makefile.in (final.o) Depend on defaults.h. +Tue Mar 8 15:57:29 1994 Jim Wilson (wilson@cygnus.com) - * Makefile.in (toplev.o): Use MAYBE_TARGET_DEFAULT. - * configure: Set MAYBE_TARGET_DEFAULT for some targets. - Use 3, if target is i486... - Recognize i486 as well as i386 for most targets. + * c-decl.c (finish_decl): When saving/discarding initializers, + don't check TREE_PERMANENT and TREE_STATIC. + (finish_decl, finish_function): Pass new argument to + permanent_allocation. + * cp/decl.c (finish_function): Likewise. + * cp/decl2.c (write_vtable_entries, finish_file): Likewise. + * toplev.c (compile_file): Likewise. + * function.h (struct function): Add momentary_function_firstobj + field. + * tree.c (momentary_function_firstobj): New variable. + (init_obstack): Set it. + (save_tree_status): Save it and set it. + (restore_tree_status): Use it and restore it. + (permanent_allocation): New parameter function_end. Clear + momentary_obstack to momentary_function_firstobj if true. + (preserve_initializer): Set base field of every momentary + level on the momentary stack to new momentary_firstobj. + (pop_momentary): Only free back to previous base. + * tree.h (permanent_allocation): Add prototype. - * x-hp320g (LIBGCC1, AR, RANLIB, RANLIB_TEST, LIBCONVERT): Deleted. - * t-hp320g (LIBGCC1, AR, RANLIB, RANLIB_TEST, LIBCONVERT): Defined. - * t-svr4 (FIXINCLUDES): Deleted. +Mon Mar 7 20:10:56 1994 Jim Wilson (wilson@cygnus.com) - * Makefile.in (ENQUIRE_CFLAGS): Add -DNO_LONG_DOUBLE_IO. + * iris4gl.h: Rewrite. Include iris4loser.h not iris4-gdb.h. + Define PREFERRED_DEBUGGING_TYPE not ASM_SPEC. - * fold-const.c (BRANCH_COST): Add default definition. + * bsd-4.h (LINK_SPEC): Do not depend on gas. Don't interpret -EB + and -EL options, but do pass them. + * bsd-5.h (LINK_SPEC): Likewise. + * decl-osf1.h (LINK_SPEC): Likewise. + * iris5.h (LINK_SPEC): Likewise. + * mips-5.h (LINK_SPEC): Likewise. + * mips.h (LINK_SPEC): Likewise. + * svr3-4.h (LINK_SPEC): Likewise. + * svr3-5.h (LINK_SPEC): Likewise. + * svr4-4.h (LINK_SPEC): Likewise. + * svr4-5.h (LINK_SPEC): Likewise. - * cp-tree.h: Declare intQI_type_node, etc. - * cp-decl.c: Declare intQI_type_node, etc. - (init_decl_processing): Initialize those nodes. - -Thu Jul 2 15:18:33 PDT 1992 Ron Guilmette (rfg at ncd.com) - - * amix.h (ASM_OUTPUT_CASE_END, ASM_OUTPUT_ALIGNED_LOCAL): Output - tabs before SET_ASM_OP. - - * Makefile.in (dwarfout.o): Dependency on defaults.h added. - - * sparcv4.h: Include real.h. - (SET_ASM_OP): Undef it. - - * svr4.h (IDENT_ASM_OP): Added generic svr4 definition. - (ASM_FILE_END, ASM_OUTPUT_IDENT): Use IDENT_ASM_OP. - (ALIGN_ASM_OP): Added generic svr4 definition. - (ASM_OUTPUT_CASE_LABEL): Added generic svr4 definition. - - * i860.c (strict_single_insn_op_p, relop): Deleted. - * i860.h (ASM_OUTPUT_CASE_LABEL): Fixed definition to use - ASM_OUTPUT_ALIGN and ASM_OUTPUT_INTERNAL_LABEL. - * i860b.h, i860v3.h (TARGET_VERSION): Definitions added. - * i860v3.h (CPP_PREDEFINES): Predefine __svr3__ rather than SVR3. - - * c-decl.c (named_labels): Change linkage to static. - - * assert.h (__eprintf): Declare 3rd arg as unsigned. - - * cccp.c (do_include): Don't do fprintf's if inhibit_warnings. - Renamed system_header_p to angle_brackets. Use is_system_include. - (is_system_include): New function. - (redundant_include_p) : Renamed from lookup_include. - - * c-common.c (type_for_size): If no ANSI type matches, check for - matches with built-in mode-releated types. - (type_for_mode): Likewise. - * c-decl.c: Added declarations for mode-related internal type nodes. - (init_decl_processing): Initialize the new type nodes. - * c-tree.h: Added declarations for mode-related internal type nodes. - intQI_type_node, etc. - - * c-lex.c (yylex): For integers, rename shorts to parts. - Let the number of them be variable. Simplify overflow testing. - Don't use long long types unless ll was specified. - Don't warn twice. - -Thu Jul 2 20:30:20 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * gstdarg.h: #ifdef _STDARG_H, not __STDARG_H. - -Thu Jul 2 18:18:07 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * global.c: Renamed from global-alloc.c. - -Thu Jul 2 15:36:25 1992 Torbjorn Granlund (tege@wombat.gnu.ai.mit.edu) - - * pa.c (zdepi_operand): New function. - (emit_move_sequence): Use it. - * pa.md: New pattern to recognize cases where zdepi can be used to - load immediate constant. - (insv): Allow obvious immediate values. - (insv + 1): New recognizer for non-obvious immediate values. - -Thu Jul 2 15:13:15 1992 Michael Meissner (meissner@osf.org) - - * halfpic.c (half_pic_encode): Consider variables which are 'common' - variables to need pic fixup. Move the debug code, so that it prints - for all calls, and calls debug_tree also. - (half_pic_address): When doing eliminate_constant_term on a CONST, - do a XEXP (addr, 0) to get to the real address. - - * decrose.h (CPP_SPEC, CC1_SPEC): If neither -fbuiltin nor - -fno-builtin are passed, pass -fno-builtin, and renable the string - and memory builtins via macros. This is to support compiling the - OSF/1 kernel which has a prototyped exit function which takes three - arguments. With no -pic switches, default to using shared libs. - - * i386rose.h (CPP_SPEC, CC1_SPEC): If neither -fbuiltin nor - -fno-builtin are passed, pass -fno-builtin, and renable the string - and memory builtins via macros. This is to support compiling the - OSF/1 kernel which has a prototyped exit function which takes three - arguments. Turn off pic support until the 386 backend supports it. - - * x-i386rose (SHLIB): Use -pic-none instead of -L${BUILD}/usr/ccs/lib. - - * x-decrose (SHLIB): Use -pic-none instead of -L${BUILD}/usr/ccs/lib. - - * mips.md (movsi): Rewrite handling of half-pic code so that load - address of symbol + value is handled. - (branch_zero): Don't allow branch comparing constant to 0. - -Thu Jul 2 06:26:38 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.md (blockage insn): Renamed from profiler. - (epilogue insn): Don't provide this if a return insn will suffice. - (m88k_end_epilogue): If the last insn isn't a barrier, print a return. - * m88k.c (null_prologue): Renamed from null_epilogue. - - * m88k.c (condition_value): New function. - * m88k.md (compare word insns): New insns and define_split - patterns to take advantage of recent fold_truthop change. - - * m88k.h (ADDITIONAL_REGISTER_NAMES): Represent the condition code - register as (reg:CC 0). Give it the names "cc" and "psr". - * m88k.md (superoptimizer sequences): New define_split patterns. - (add/sub with carry): New insns. - (add/sub DImode, ffssi2): Clobber the condition code register. - -Wed Jul 1 13:37:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gstddef.h Don't define macros associated with size_t unless we - actually want to declare size_t. Likewise for ptrdiff_t and wchar_t. - - * Makefile.in (install-common): Depend on xgcc, g++, c++, EXTRA_PARTS. - Don't delete specs from libsubdir unless it exists in build dir. - - * va-pa.h: Renamed from va-hp800.h. - * gstdarg.h, gvarargs.h: Use new name. - - * news3.h, news3gas.h: New files. - * configure (m68k-sony-newsos3*): New alternative. - - * romp.h (SIZE_TYPE): Defined. - - * configure: Support --exec-prefix. Simplify handling - detached arguments of options. - - * isc.h, and other related files: - waiting for entries from karl@cs.umb.edu. - -Wed Jul 1 12:04:53 1992 Ron Guilmette (rfg at ncd.com) - - * c-decl.c (grokdeclarator): Don't mark file-scope register variables - as TREE_PUBLIC. - -Wed Jul 1 12:04:53 1992 Karl Berry (karl@cs.umb.edu) - - * i386iscgas.h (SIZE_TYPE, PTRDIFF_TYPE): Define these, since we - need to override GCC's defaults. - - * configure (i386-*-isc): Use different files if we have gas. - * t-i386iscgas, i386iscgas.h, isc.h: New files - * i386isc.h: Include isc.h. Most of contents moved to isc.h. - * bsd386.h (ASM_OUTPUT_LABELREF) [NO_UNDERSCORES]: do not prepend an - underscore in this case. - * i386gas.h (CPP_SPEC): if -posix, do -D_POSIX_SOURCE. - -Wed Jul 1 09:13:44 1992 Tom Wood (wood@dg-rtp.dg.com) - - * fold-const.c (fold_truthop): Renamed from merge_component_references. - (simple_operand_p): New function. - (range_test): Change JCODE parameter to the unconditional operation. - (fold_truthop): When branches are expensive, try to evaluate the - RHS unconditionally. Compute local variables as late as possible. - - * m88k.h (HANDLE_SYSV_PRAGMA): Replaces HANDLE_PRAGMA. - * m88k.c (m88k_handle_pragma_token): Deleted. - -Tue Jun 30 15:32:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (duplicate_decls): If newdecl for builtin function - has same return mode as the builtin, keep the builtin - but use newdecl's return type. - - * i386.md (lshrdi3_const_int): Fix typo in shr insn. - - * Makefile.in (GCC_CFLAGS): Add `-B$(tooldir)/'. - - * i386sun.h, rs6000-mach.h, sparc.h, sun2o4.h, sun3.h (LINK_SPEC): - Inhibit the default -e if -r or -nostdlib. - - * c-decl.c (lookup_label): Call label_rtx. - - * c-parse.y (primary): Rearrange and clean up. In C_DECL_ANTICIPATED - case, always call assemble_external and set TREE_USED. - -Mon Jun 29 22:27:49 1992 Mike Stump (mrs@wombat.gnu.ai.mit.edu) - - * cccp.c, cp-dem.c, dbxout.c, cp-lex.c, cp-xref.c, cp-method.c, - dwarfout.c, c-typeck.c, mips-tfile.c, protoize.c, collect2.c: Make - the compiler more consistent by using index and rindex everywhere - instead of sometimes using strchr and strrchr. - -Mon Jun 29 22:20:13 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * regclass.c (regclass): Restore some accidentally-deleted code. - -Mon Jun 29 12:48:05 1992 Nobuyuki Hikichi (hikichi@sra.co.jp) - - * collect2.c (MY_ISCOFF): New macro. - (scan_prog_file): Use that instead of ISCOFF. - - * mips.c (override_options) [MIPS_NEWS]: Call setlinebuf. - -Mon Jun 29 12:48:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gcc.c (do_spec_1): For %I, pass -iprefix, not -imacros. - - * c-common.c (decl_attributes): For `packed' on VAR_DECL, - set DECL_PACKED and DECL_ALIGN. - - * configure: Update usage message. - (m68k-sony-newsos*, mips-sony-newsos*): New synonyms. - - * fold-const.c (merge_component_references): - Make sure the four fields correspond in the proper order. - - * c-lex.c (check_newline): Support HANDLE_SYSV_PRAGMA. - (handle_sysv_pragma): New function. - * c-pragma.c: New file. - * stor-layout.c (maximum_field_alignment): New variable. - (layout_decl): Use it. - * Makefile.in (C_OBJS, OBJC_OBJS): Add c-pragma.o - (c-pragma.o): New rule. - - * i386.c (handle_pragma_token): Function deleted. - * i386v4.h (HANDLE_PRAGMA): Deleted. - - * g++: Reestablish symlink to c++. - Delete the testing of $TRACE--this could confuse people. - Delete spurious assignment of $version. - - * tree.h (DECL_PACKED): Store this in regdecl_flag. - - * Makefile.in (LIB2FUNCS): Change _builtin_New to _caps_New. - * libgcc2.c: Change L_builtin_New to L_caps_New. - - * dbxout.c (dbxout_symbol): Pass 3 args to eliminate_regs. - Call alter_subreg for subregs. Delete subreg case later on. - Don't bother with reg_renumber--any pseudo reg is clearly - a variable that was not allocated. - * sdbout.c (sdbout_symbol): Call alter_subreg for subregs. - Don't bother with reg_renumber--any pseudo reg is clearly - a variable that was not allocated. - - * sequent.h (SIZE_TYPE): Defined. - (LINK_LIBGCC_SPECIAL): Fix typo. - -Mon Jun 29 12:04:57 1992 Tom Wood (wood@dg-rtp.dg.com) - - * toplev.c (rest_of_compilation): Thread the prologue and epilogue - code immediately after reloading is done. - * sched.c (schedule_insns): Reposition the prologue and epilogue - notes as needed. - * reorg.c (dbr_schedule): Ditto. - * rtl.h (NOTE_INSN_PROLOGUE_END, NOTE_INSN_EPILOGE_BEGIN): New notes. - * rtl.c (note_insn_name): Record them. - * function.c (record_insns, contains, thead_prologue_and_epilogue_insns, - reposition_prologue_and_epilogue_notes): New functions. - * final.c: Include insn-flags.h. - (profile_after_prologue): New function. - (final_start_function): Use profile_after_prologue here when we - don't HAVE_prologue. - (final_scan_insn): Use profile_after_prologue when we scan - NOTE_INSN_PROLOGUE_END. (This happens when we do HAVE_prologue.) - Perform machine specific actions when the prologue-end and - epilogue-begin notes are scanned. - (final_scan_insn, BARRIER): Align only when something follows. - * Makefile.in (final.o): Depends on insn-flags.h. - - * m88k.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE): Define. - (DELAY_SLOTS_FOR_EPILOGUE, ELIGIBLE_FOR_EPILOGUE_DELAY): Delete. - * m88k.md (prologue, epilogue, profiler, locate1, locate2): New - patterns for representing prologues and epilogues. - * m88k.c (delay_slots_for_epilogue, eligible_for_epilogue_delay, - ok_for_epilogue_p): Delete epilogue delay slot functions. - (m88k_begin_prologue m88k_end_prologue m88k_expand_prologue): New - functions replacing m88k_output_prologue. - (m88k_begin_epilogue m88k_end_epilogue m88k_expand_epilogue): Ditto. - (preserve_registers): Delete epilogue delay slot mechanism and - change to output insns. - (emit_add, emit_ldst): New functions. - -Sun Jun 28 23:06:04 1992 Brendan Kehoe (brendan@cs.widener.edu) - - * Makefile.in (bootstrap, bootstrap2, bootstrap3): In each - passage of CC, use xgcc, not gcc. - * dostage2, dostage3: Likewise. - -Sun Jun 28 09:48:18 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-decl.c (duplicate_decls): If have char *foo () and - void *foo (...), make just a pedwarn. Add locals oldtype, newtype. - * c-typeck.c (self_promoting_args_p): No longer static. - - * flow.c (regno_uninitialized): Return 0 for global reg var. - - * c-typeck.c (initializer_constant_valid_p): - Allow CONVERT_EXPR if its operand is allowable. - (build_c_cast): For cast to union, make a CONSTRUCTOR. - - * sparc.c (SPARC_STACK_ALIGN): Add default definition. - - * c++: Use `set "$@"' to modify arguments. - Use a case to decide how to set $gcc. - $quote is now empty for false and the option name for true. - Error at end if $quote is nonempty. - $speclang is now the -x option itself. - Move the -v case above the -* case. - - * limitx.h: Add #ifndef. - * limity.h: New file. - * Makefile.in (install-limits-h): Append limity.h to the end. - - * c-typeck.c (digest_init): Don't push spellings here (for union case). - (process_init_constructor): Fix errors for field not found. - (build_c_cast): Fold casts to union type. - - * xm-vms.h (XREF_FILE_NAME): Fix typo. - - * i386sun.h (SIZE_TYPE): Defined. - - * Makefile.in (alloca.o): Delete the rm command. - Use -Demacs explicitly in compilation command. - (ALLOCA_FLAGS, ALLOCA_FINISH): Empty by default. - * x-pa-hpux, x-rs6000, x-rs6k-mach, x-dpx2200, x-dpx2300: - (ALLOCA_FLAGS, ALLOCA_FINISH): Deleted. - * x-dpx2200, x-dpx2300 (AS): Deleted. - - * configure: Set broken_install for V.4. - (i386-*-aix, ns32k-*-genix, i386-*-isc, i386-*-sco): - (i386-*-sco3.2v4, m88k-dg-dgux): Set broken_install. - (m88k-*-sysv): Don't use x-m88kv3. - * x-m88kv3: File deleted. - * x-aix386, x-dpx2200, x-dpx2300, x-genix, x-i386isc, x-i386sco: - * x-i386v, x-i386v4, x-i860v3, x-i860v4, x-m88kdgux, x-m88kdolph: - * x-m88kv4, x-ncr3000, x-sparcv4, x-xenix (INSTALL): Deleted. - -Sun Jun 28 08:44:32 1992 Michael Meissner (meissner@osf.org) - - * regclass.c (record_address_regs): Make the function static to - agree with the forward declaration. - - * mips.h (LINK_LIBGCC_SPECIAL): Define. - -Sun Jun 28 06:14:56 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (direct_load, direct_store): New variables. - (init_expr_once): New function. - (convert_move, convert_to_mode): Don't let gen_lowpart make a MEM in - a mode that can't be directly copied to or from memory. - (store_field): Don't directly store into memory in a mode that - can't be used in a single insn. - (expand_expr, case COMPONENT_REF): Likewise, for load. - * toplev.c (compile_file): Call init_expr_once. - - * cse.c (fold_rtx, case SUBREG): If we can find nested SUBREGs - with an inner register in the mode we want, get rid of all the - SUBREGs provided they are all within a word. - - * cp-call.c, cp-class.c, cp-decl.c, cp-edsel.c, cp-lex.c: Don't - declare xmalloc and free here. - * cp-methods.c, cp-pt.c, cp-search.c, flow.c, integrate.c: Likewise. - * loop.c, opjc-actions.c, reload1.c, reorg.c, rtl.c: Likewise. - * stmt.c, tree.c, varasm.c: Likewise. - * toplev.c (xmalloc, xrealloc): Declare return types correctly. - * rtl.h, tree.h: Declare xmalloc and free here. - - * expmed.c (emit_store_flag): Keep the last target around if we - should preserve subexpressions. - -Sat Jun 27 07:11:28 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (cse_insn): See if we have a CONST_INT that is already in - a register in a wider mode. - - * regclass.c: Major rework of regclass pass to do a better job of - setting up register preferences and replace the "preferred or - nothing" method with a class that should be used if the preferred - class cannot be allocated. - (MEMORY_MOVE_COST): Default value is 4, not 2. - (move_cost, may_move_cost): New arrays. - (init_reg_sets): Initialize them. - (struct costs): Replaces struct savings. - (costs): Replaces savings. - (op_costs): New array. - (altclass): Replaces preferred_or_nothing. - (reg_alternate_class): New function; replaced reg_preferred_or_nothing. - (regclass): Major rework. Use new recording methods; make two - passes if -fexpensive-optimizations; and refine REGNO_POINTER_FLAG - and loop_depth setting. - (record_reg_class): New function; replaces reg_class_record. - (copy_cost): New function. - (record_address_regs): Major changes. New parameters and simplified - and more efficient algorithm for chosing base vs. index regs. - * rtl.h (reg_alternate_class): Declare it. - * Makefile.in (regclass.o): Now includes reload.h and real.h. - * flow.c (dump_flow_info): Call reg_alternate_class instead of - reg_preferred_or_nothing. - * reload.c (find_reloads): Likewise. - (n_occurrences): No longer static. - * local-alloc.c: Use register alternate class instead of - preferred_or_nothing uniformly; change qty_preferred_or_nothing - to qty_alternate_class. - * global-alloc.c (global_alloc, retry_global_alloc): Call - reg_alternate_class instead of reg_preferred_or_nothing. - (find_reg): Change ALL_REGS_P argument to ALT_REGS_P. - Use alternate register class instead of ALL_REGS if can't allocate - in preferred class. - - * cccp.c (install): Accept separate arguments for integer and - pointer hash values; don't assume the sizes are the same. - All callers changed. - - * rtl.c (copy_rtx, copy_most_rtx): Add new case for 'u'. - - * tree.c (make_node): Clear all of common area, in particular, flags. - - * c-tree.h, cp-tree.h: Add declaration of truthvalue_conversion. - -Sat Jun 27 06:21:18 1992 Tom Wood (wood@dg-rtp.dg.com) - - * m88k.md (type attributes): Delete unused mbit and mfp types. - (ffsi2 insn): Define. - (negdf2 and absdf2 insns): Improve. - - * fold-const.c (range_test): Fix the misordered test. Fail if VAR - isn't an integer. - -Sat Jun 27 00:54:44 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * gcc.c (link_command_spec): No %D if LINK_LIBGCC_SPECIAL. - * sequent.h (LINK_LIBGCC_SPECIAL): Defined. - - * vax.h (PRINT_OPERAND): For SFmode, use 0f, not 0d or 0g. - - * ns32k.h (NS32K_DISPLACEMENT_P): Correct the range limits. - * ns32k.c (print_operand_address): REG_OK_FOR_INDEX_P wants an rtx. - -Fri Jun 26 08:55:03 1992 Tom Wood (wood@dg-rtp.dg.com) - - * fold-const.c (range_test): New function. - (merge_component_references): Look for range tests as well. - - * va-m88k.h: Same changes as other va-*.h files below. Make this - work when and others are included on DG/UX. - -Fri Jun 26 08:17:33 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * expr.c (safe_from_p): Handle 0 in TREE_VALUE of a TREE_LIST. - (store_constructor: Ignore empty links in element chain. - -Fri Jun 26 07:06:19 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-convert.c (convert_to_integer): Don't add a NOP_EXPR in cases - where we can simply change the type of the entire tree. - - * cse.c (find_best_addr): Look for equivalents of a REG that is - the first operand of an address that is a binary operator whose - second operand is a CONST_INT. - - * stmt.c (expand_end_bindings): Don't save argument pointer if it - will be eliminated in favor of the frame pointer. - - * combine.c (try_combine): When using define_split to split an - insn, first try to put the pseudo-register into the mode of - the destination since it is the most likely to be the correct mode. - - * combine.c (make_compound_operation): Treat PLUS and MINUS - the same when passing down the code to the next level; for - consistency, an ASHIFT inside either gets turned into a MULT. - - * fold-const.c (optimize_bit_field_compare): Delete dead - assignment which can sometimes reference an undefined variable. - - * genoutput.c (gen_split): Initialize n_alternatives. - - * romp.md (movdf): Fix typo in operand_subword call in define_split. - -Fri Jun 26 04:38:37 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Make stdarg mechanism work with libc. - * va-hp800.h, va-i860.h, va-i960.h, va-mips.h, va-pyr.h, va-sparc.h): - Don't define or declare va_list; declare __gnuc_va_list. - But only declare it once. - Define other things only if _STDARG_H or _VARARGS_H. - Declare va_end as well as defining it. - * gstdarg.h: Likewise. - If __need___va_list was defined, then undef it - and don't define _STDARG_H. - For all machines, declare va_list from __gnuc_va_list - but only if _STDARG_H is defined. - - * gvarargs.h: Test _ANSI_H_, not _ANSI_H. - -Thu Jun 25 23:24:02 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * ns32k.c (print_operand): - Change NO_IMMEDIATE_PREFIX_IF_SYMBOLIC conditional to #ifdef. - - * genoutput.c (gen_split): Set d->n_alternatives. - - * Makefile.in (test-protoize-simple): Expect just 400 lines. - (install-common-headers): When comparing srcdir with ., use pwd. - -Tue Jun 16 22:11:12 1992 Jim Wilson (wilson@sphagnum.cygnus.com) - - * Makefile.in (enquire.o): Don't delete/copy enquire.c, just use - the copy in the source directory. - -Tue Jun 25 23:52:27 1992 Howard Chu (hyc@hanauma.jpl.nasa.gov) - - * libgcc2.c (__builtin_saveregs): Use SVR4 code on Alliant FX2800, - but with BSD function-naming convention. - - * va-i860.h: Use SVR4 definitions of __va_saved_regs and va_list - on Alliant FX2800. - - * fx2800.h (I860_REG_PREFIX, ASM_COMMENT_START): Deleted. - (DBX_NO_EXTRA_TAGS, BSS_ASM_OP): Deleted. - (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Deleted. - (ASM_FILE_START): Just call output_file_directive. - -Thu Jun 25 06:49:15 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-typeck.c (process_init_constructor): Strip NON_LVALUE_EXPR - from specified array index. - - * configure (i386-*-bsd*, i386-*-mach*): Don't set tmake_file. - They used to use t-libc-ok. - - * input.h (struct file_stack): Revert prev. change. - -Thu Jun 25 06:33:52 1992 Tom Wood (wood@dg-rtp.dg.com) - - * stmt.c (expand_end_case): Add CASE_VALUES_THRESHOLD. - * m88k.h (CASE_VALUES_THRESHOLD): Define. - -Thu Jun 25 06:13:39 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * explow.c (plus_constant, case PLUS): Remove obsolete code; - use recursive call in case remaining operand is one we handle. - -Wed Jun 24 19:15:14 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (subst, case PLUS): If adding two things with no bits - in common, convert to IOR. - - * expr.c (do_jump, case BIT_AND_EXPR, COMPONENT_REF): Don't narrow - comparison unless byte accesses are not slow and we have a - comparison in the new mode. - -Wed Jun 24 14:29:09 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * c-parse.y (primary): If built-in decl has not had - an official declaration, print warning. - * c-decl.c (builtin_function): Set C_DECL_ANTICIPATED for - user-visible names. - * c-tree.h (C_DECL_ANTICIPATED): New macro. - - * fixincludes: Make some symlinks in the `multimedia' subdir. - - * i386.c: Change #error to just error. - - * protoize.c: Normalize error message syntax. - (process_aux_info_file): Don't delete .X file if it existed before. - (explicity compare modtime with .c file. - -Wed Jun 24 14:10:35 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * sparc.c (sparc_frw_compute_frame_size): New function, for flat - register window model support. - (sparc_frw_save_restore): Likewise. - (sparc_frw_output_function_prologue): Likewise. - (sparc_frw_output_function_epilogue): Likewise. - (sparc_frw_epilogue_delay_slots): Likewise. - (sparc_frw_eligible_for_epilogue_delay): Likewise. - -Tue Jun 23 22:36:12 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * cccp.c (rescan): Recognize # only when reading directly from a file. - - * input.h (struct file_stack): Add member `fd'. - - * regclass.c (regno_first_uid, regno_last_uid): Make elements ints. - (reg_scan): Allocate and clear them as ints. - * regs.h: Fix the declarations. - - * Create driver executable with name xgcc; rename to gcc in installing. - (xgcc): Target renamed. - (GCC_FOR_TARGET, GCC_PASSES, start.encap, specs, gcc-cross): - (install-common, install-collect2): Rename in deps, commands or value. - (install-collect2): Always get driver from xgcc whether cross or not. - -Tue Jun 23 00:00:35 1992 Brendan Kehoe (brendan@cs.widener.edu) - - * toplev.c (strip_off_ending): Also strip off .C and .cxx. - -Tue Jun 23 18:58:43 1992 Jim Wilson (wilson@wookumz.gnu.ai.mit.edu) - - * genrecog.c (add_to_sequence): Don't ignore mode of first operand - of a MATCH_OPERAND or MATCH_DUP_OP rtl. - * sparc.md (scc): Use noov_compare_op instead of normal_compare_op. - - * function.c (expand_function_start): When not optimizing, don't - put static chain pointer in a pseudo register. - - * sparc.c (print_operand): For '*', only annul branch if - optimizing, to avoid dbx bug. Add '(' to handle unoptimized case. - * sparc.h (PRINT_OPERAND_PUNCT_VALID_P): Add '('. - * sparc.md (jump): Add '%(' to pattern. - - * c-decl.c (store_parm_decls): Change type of void parameter to - error_mark_node. - - * configure (m68k-*-sysv4*): Use xm-m68kv.h not xm-m68kv4.h. - - * configure: Add -prefix option. - - * vax.c (split_quadword_operands): Declare paramater n. - - * i960.h (WORD_SWITCH_TAKES_ARG): Add -aux-info. - - * xcoffout.c (xcoffout_declare_function): Cast alloca result to char *. - - * c-convert.c (convert_to_integer): Don't pass truncation past - shift that is larger than the size being truncated to. - -Tue Jun 23 06:15:47 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * optabs.c (expand_binop, expand_unop): Try widening before trying - to make a library call. - - * stmt.c (expand_return): Add missing emit_queue call in tail - recursion case. - - * cse.c (simplify_unary_operation): Add SIGN_EXTEND and - ZERO_EXTEND to the operations we handle for wide results. - - * expr.c (emit_block_move): Convert size operand to mode that will - be passed to emit_library_call. - -Tue Jun 23 00:41:03 1992 Paul Eggert (eggert@shadow) - - * objc-parse.y (stmt): Fix mispelling for "label" in message. - - * cccp.c: (deps_file, pipe_closed): Deleted. - (main): Do not open deps_file until needed. - Check error status of dep_stream and stdout more carefully. - -Tue Jun 23 00:21:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (protoize.1, unprotoize.1): Rules deleted. - (install-man, proto, realclean): Don't operate on them. - * proto-man: File deleted. - - * protoize.c (main): Support -v as alias for -V. - -Mon Jun 22 21:50:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (compare, compare3): Discard error output from second - tail. If it fails, don't compare that file. - - * Makefile.in (stamp-proto): Move the touch command last. - - * cccp.c (finclude): Use xmalloc, not alloca, for file contents. - - * stmt.c (check_for_full_enumeration_handling): For a case range, - consider all values in the range as handled. Also, check both ends - for being in the enumeration. - - * ns32k.h (NS32K_DISPLACEMENT_P): Wide displacement range applies to - all models. - -Mon Jun 22 20:29:47 1992 Ron Guilmette (rfg at ncd.com) - - * expr.h (*_libfunc): Added missing extern declarations of libfuncs - to handle operations on/for TFmode and XFmode operands. - * expr.c (convert_move): Added missing code to handle moves (with - conversion) from/to TFmode and XFmode operands. - * optabs.c (*_libfuncs): Added missing definitions of libfuncs - to handle operations on/for TFmode and XFmode operands. - (emit_float_lib_cmp): Added missing code to handle XFmode and TFmode - comparisons. - (init_fixtab): Added missing code to handle fixing (and trunc'ing) - of XFmode and TFmode operands to various sizes of ints. - (init_floattab): Likewise, but for "float" operations from ints to - either XFmode or TFmode. - (expand_float): Likewise. - (expand_fix): Likewise. - (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): New - functions added to initialize whole hunks of various optabs with - appropriate `libfunc' field values. - (init_optabs): Use `init_integral_libfuncs' or `init_floating_libfuncs' - wherever a group of consecutive optab entries need to all have their - `libfunc' fields initialized. - (init_optabs): added missing code to handle all operations on/of - XFmode and TFmode operands. - -Mon Jun 22 06:40:32 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * rs6000.h (MEMORY_MOVE_COST): Increase to 6, from 4. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add new reg - classes SPEC_OR_GEN_REGS and NON_FLOAT_REGS. - - * rs6000.h (EXTRA_CONSTRAINT): Don't use indirect_operand; instead - check explicitly. - - * rs6000.md (divmod): Use "2" constraint instead of using "q" - twice. - (tablejump): Constraint of "r" should be "l". - - * emit-rtl.c (init_emit): Show that all pointers into the frame are - pointer registers. - -Mon Jun 22 04:20:26 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * va-sparc.h (va_arg): Rename local identifiers to start with __. - -Sun Jun 21 14:51:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * fold-const.c (real_value_truncate): New function. - All calls to REAL_VALUE_TRUNCATE changed to use this function. - - * reload1.c (reload): Record which insn attains each maximum need. - If can't find a spill, call spill_failure and return 1. - (spill_failure): New subroutine. - * global-alloc.c (global_alloc): Return 1 if reload returned 1. - * toplev.c (rest_of_compilation): If they return nonzero, give up - compiling this function. - - * c-decl.c (duplicate_decls): Never warn if redeclaring - a predeclared function. Use the new declaration's types - but keep any predeclared volatile flag. - If redeclaring builtin function, use new declaration's type. - If an old decl becomes volatile, fix the DECL_RTL. - * varasm.c (make_var_volatile): New function. - - * configure (mips-sony-bsd): Use xm-mips.h. - * xm-mipsbsdn.h: File deleted. - - * protoize.c (process_aux_info_file): Simplify logic for calling - gen_aux_info_file. Get rid of the label `retry'. - - * m68ksgs.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): - Override for sgs syntax. - -Sun Jun 21 14:06:41 1992 Brendan Kehoe (brendan@cs.widener.edu) - - * va-sparc.h (va_arg): Use a character array of size TYPE for - `d' in the union, and return its dereference as TYPE. - -Sun Jun 21 14:04:36 1992 Wilson Tien (wtien at urbana.mcd.mot.com) - - * m68k.c (print_operand_address) [MOTOROLA]: Use .w and .l, not :w, :l. - -Sat Jun 20 06:32:11 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * stor-layout.c (get_best_mode): If SLOW_BYTE_ACCESS is true, return - widest mode (but no wider than UNITS_PER_WORD) that meets all - the conditions. - - * combine.c (make_extraction): Always ensure we have a SUBREG when - we make a STRICT_LOW_PART. - - * varasm.c (const_hash, compare_constant_1, record_constant_1): - Handle case when TREE_VALUE of a constructor is zero. - (output_constant): Use CONSTRUCTOR_ELTS. - - * cse.c (cse_insn): Memory is not invalidated by a constant - subroutine call. - (delete_dead_from_cse): Correctly check for being within a - libcall block. - - * cse.c (canon_reg): Call validate_change with IN_GROUP equal to 1. - (cse_insn): Call apply_change_group after canon_reg. - When canonicalizing, call validate_change with IN_GROUP equal to - one and also call when canon_reg would. - - * combine.c (subst, shift cases): Use force_to_mode in - SHIFT_COUNT_TRUNCATED case. - - * rs6000.md: Add new pattern to split move of large constant. - - * cse.c (delete_dead_from_cse): Really delete insn instead of - turning it into a NOTE. - - * romp.md (shift patterns): Use QImode for count operand. - -Sat Jun 20 06:31:21 1992 Tom Wood (wood@dg-rtp.dg.com) - - * a29k.md (storehinhww): Use inhw not inbyte. - -Thu Jun 18 16:01:56 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * protoize.c (WIFEXITED, WEXITSTATUS): Delete unused macros. - - * combine.c (subst): If comparison operator has floating-point - result, adjust the value returned by simplify_relational_operation - accordingly. - * integrate.c (subst_constants): Likewise. - * loop.c (get_condition): Likewise. - * cse.c (fold_rtx): Likewise. - When returning TRUE or FALSE, handle comparisons returning - floating-point. - (find_comparison_args): Handle comparisons returning FP values; - only look at STORE_FLAG_VALUE for comparisons returning integers. - - * combine.c (try_combine, subst): Pass both comparison arguments - to SELECT_CC_MODE. - * i386.h, i960.h, i960.c, mips.h, pa.h, pa.c, rs6000.h: - Add second argument to SELECT_CC_MODE. - * sparc.h, sparc.c: Likewise. - - * cse.c (insert_regs): Make a quantity for the register in a - SUBREG if it doesn't have one. - (fold_rtx, case SUBREG): Always try to find a constant equivalent - for a SUBREG; try for CONST_DOUBLE as well. - (cse_insn): Call insert_regs on DEST if it is a SUBREG. - -Thu Jun 18 15:01:29 1992 Mike Stump (mrs@albert.gnu.ai.mit.edu) - - * c++: Allow for better quoting and -v handling. - -Thu Jun 18 14:49:20 1992 Tom Wood (wood@dg-rtp.dg.com) - - For RMS: - * varasm.c: Declare text_section and readonly_data_section. - - * dpx2.h (CPP_SPEC): Define __HAVE_68881__ unless -msoft-float. - DPX/2 machines all have a 68882. - - * x-i386sco (RCCFLAGS): Use -DNULL=0 to avoid suurious warnings - from rcc. - - * seq386.h (SIZE_TYPE): The Sequent running Dynix uses int for size_t. - -Thu Jun 18 14:36:41 1992 Mike Stump (mrs@albert.gnu.ai.mit.edu) - - Merge in Cygnus sources... - - Fri Jun 5 15:00:55 1992 Mike Stump (mrs at cygnus.com) - - * cp-typeck.c (build_c_cast): When casting, propagate const'ness - from cast type. When casting to a reference to T, really just - cast to T. - - * cp-cvt.c (build_up_reference): Make a copy of a node before - changing it. Only propagate the const bit if we are not - subverting it. - - Fri Jun 5 14:36:19 1992 Mike Stump (mrs at cygnus.com) - - * cp-cvt.c (build_up_reference): When casting away const on - references, do not report an error. - - Fri Jun 5 13:26:11 1992 Mike Stump (mrs at cygnus.com) - - * cp-init.c (build_new): Handle new placement with arrays. - - Thu Jun 4 08:26:44 1992 Mike Stump (mrs at cygnus.com) - - * cp-search.c (compute_visibility): DERIVED_FROM_P had its - arguments reversed, switched them to be in the right order. - Fixes visibility on protected members. - - Wed Jun 3 14:45:40 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (unary_expr): Make it illegal to use delete on - a pointer to a const object. With help from Brendan Kehoe. - - Wed Jun 3 13:25:26 1992 Ken Raeburn (Raeburn@Cygnus.COM) - - * cp-parse.y (template_instantiate_once): Set - CLASSTYPE_GOT_SEMICOLON to eliminate messages about missing - semicolons. - - * cp-decl.c (start_function): Don't emit error message for missing - semicolon after class decl; that syntax (declaring both class and - function returning that type) should be legal. Do emit a warning if - it's not an anonymous name. - - Mon Jun 1 18:08:09 1992 Mike Stump (mrs at cygnus.com) - - Sat May 30 15:38:54 1992 Brendan Kehoe (brendan@cs.widener.edu) - - * cp-decl.c (grokdeclarator): Don't allow main to be static. - - Mon Jun 1 17:52:24 1992 Mike Stump (mrs at cygnus.com) - - Sat May 30 15:38:54 1992 Brendan Kehoe (brendan@cs.widener.edu) - - * cp-decl.c (poplevel): Use DECL_INITIAL to detect undef label - instead of DECL_SOURCE_LINE. - - Mon Jun 1 17:22:54 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (unary_expr): Don't allow old placement syntax(with {}) - nor dynamic with new (with ()) new placement syntax. Completes May 27 - fix. - - Mon Jun 1 13:57:28 1992 Mike Stump (mrs at cygnus.com) - - * cp-type2.c (digest_init): Trailing '\0' is never ignored in - initializations using strings in ANSI draft C++ unlike ANSI C. - - Mon Jun 1 07:18:13 1992 Michael Tiemann (tiemann at rtl.cygnus.com) - - * cp-decl.c (pushdecl): Re-fix May 12 change regarding DECL_CONTEXT. - * cp-call.c (build_method_call): Go back to using DECL_CONTEXT - instead of DECL_CLASS_CONTEXT. DECL_CONTEXT says when a function - was first declared virtual in a class, which is needed information - in case the virtual function comes from a virtual baseclass (because - the derived class won't have a vtable entry for that function (if it - has a vtable at all!)). - - Wed May 27 17:05:50 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (unary_expr): Handle new placement syntax, desupport - the old placement syntax with a pedwarn. - - Tue May 26 17:30:28 1992 Mike Stump (mrs at cygnus.com) - - Thu May 21 17:13:38 1992 Michael Tiemann (tiemann at cygnus.com) - - * cp-decl.c (grok_enum_decls): Allow reference to nested enums from - other classes for NICHL. - - Tue May 26 15:31:30 1992 Mike Stump (mrs at cygnus.com) - - * cp-*.[chy]: Always include "assert.h" and not to - be consistent. - - Tue May 26 10:07:02 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (return_init): Fix simple typo that caused '=' - initialized named return values to fail. - - Mon May 25 11:42:18 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (component_decl): Handle anonymous unions as before, - except check to make sure it is really an anonymous union. - - Sat May 23 23:37:38 1992 Mike Stump (mrs at cygnus.com) - - * cp-tree.c (layout_basetypes): Don't core dump on erroneous input. - - Sat May 23 22:04:31 1992 Mike Stump (mrs at cygnus.com) - - * cp-typeck.c (c_expand_start_case): build_type_conversion can - return a NULL_TREE, so don't try and find a code or type of it. - - Wed May 20 09:09:08 1992 Michael Tiemann (tiemann@rtl.cygnus.com) - - * cp-call.c (build_method_call): Use DECL_CLASS_CONTEXT, not - DECL_CONTEXT to find the class in which FUNCTION was declared (for - non-virtual calls). - - Tue May 19 02:08:39 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (component_decl): Remove some bogus code that - prevents empty nested union definitions from compiling. - - Tue May 19 01:08:23 1992 Mike Stump (mrs at cygnus.com) - - * cp-decl.c (grokfndecl): Propagate volatile from type of - function out to the decl for the function. - - Mon May 18 17:19:39 1992 Mike Stump (mrs at rtl.cygnus.com) - - * cp-search.c (get_binfo): Since unions cannot participate in - inheritance relationships, return 0 instead of aborting. - - Fri May 15 13:37:40 1992 Mike Stump (mrs at cygnus.com) - - * cp-parse.y (template_type_name): Handle - template class task { friend task* preempt(task*); }; - syntax. + * dec-bsd.h (LINK_SPEC): Pass all normal linker options to gld. + (ASM_SPEC): Pass all normal assembler options to gas. + * osfrose.h (LINK_SPEC): Likewise. + (ASM_SPEC): Likewise. - * cp-pt.c (lookup_template_class): Ditto. + * mips.h (ASM_SPEC): Make definition depend on whether or + not the default assembler is gas. Pass all normal assembler + options to gas. + * iris4loser.h (ASM_SPEC): Likewise. Pass -O0 if the assembler is + not gas. - Thu May 14 22:54:17 1992 Mike Stump (mrs at cygnus.com) + * iris3.h (ASM_SPEC, LINK_SPEC): Delete. + * news4.h (ASM_SPEC, LINK_SPEC): Delete. + * news5.h (LINK_SPEC): Delete. + * nws3250v4.h (ASM_SPEC, LINK_SPEC): Delete. + * ultrix.h (ASM_SPEC, LINK_SPEC): Delete. - * cp-tree.c (layout_basetypes): Don't warn about non-virtual - destructors unless the user asks with -Wall. + * mips.h (ASM_FINAL_SPEC): Cross compiling does not presume gas. - Thu May 14 22:38:54 1992 Mike Stump (mrs at cygnus.com) + * osfrose.h (SIZE_TYPE): Delete. + (MAX_WCHAR_TYPE_SIZE): Define. - * cp-type2.c (build_functional_cast): exp may be an error_mark_node, - don't crash when it is. + * calls.c (expand_call): For pcc_struct_value case, set + MEM_IN_STRUCT_P correctly on target. - Thu May 14 18:56:26 1992 Mike Stump (mrs at cygnus.com) + * Makefile.in (mostlyclean): Don't explicitly delete ld. - * cp-decl.c (hack_incomplete_structures): Test for underflow - before decreamenting n_incomplete in current_binding_level, since - it is unsigned. +Mon Mar 7 20:06:38 1994 Ian Lance Taylor (ian@cygnus.com) - Tue May 12 15:52:49 1992 Mike Stump (mrs at cygnus.com) + * mips-tdump.c (print_symbol): The index field of a global symbol + is the symbol table index of the corresponding local symbol, not + an index into the aux table. + (print_file_desc): Print out size of line number information + rather than repeating line number count. The cbLineOffset field + of a PDR is relative to the cbLineOffset field of the FDR. Also, + when computing line_end of the last PDR, use cbLineOffset, not + ilineBase. - Mon May 11 14:10:50 1992 Ron Guilmette (rfg at ncd.com) +Mon Mar 7 17:42:35 1994 H.J. Lu (hjl@nynexst.com) - * cp-decl.c (poplevel): Reconciled with recent changes made to the - `poplevel' routine in c-decl.c. The changes here cause LABEL_DECL - nodes to be attached (as the BLOCK_VARS chain) to the BLOCK node - which represent the outermost scope of the function. + * Makefile.in (gxx_prefix): New; default to $(libdir). + (GPLUSPLUS_INCLUDE_DIR): Change to $(gxx_prefix)/g++-include. + * configure (gxx_prefix): New; default to $(libdir). - Mon May 11 12:35:44 1992 Ron Guilmette (rfg at ncd.com) + * i386/linux.h (GPLUSPLUS_INCLUDE_DIR): Deleted. + (STARTFILE_SPEC): Remove "-nojump". - * cp-class.c (finish_struct): Check DECL_CONTEXT to see if it is - any sort of a type (e.g. struct *or* union) rather than just - checking it to see if it's a RECORD_TYPE. - * cp-decl.c (pushdecl): Set DECL_CONTEXT of pushed ..._DECL node, - just as is done in c-decl.c. - (pushdecl): Delete useless variable `cntxt'. - (finish_decl): Set TREE_USED rather than DECL_FROM_INLINE in order - to prevent "unused" warnings. - (finish_function): Check DECL_CONTEXT to see if it is a type. - (finish_function): Fixed indentation problem. - * cp-gc.c (build_m_desc): Check DECL_CONTEXT to see if it is a type. - * cp-init.c (build_virtual_init): Fix indentation. - * cp-lex.c (store_pending_inline): Check DECL_CONTEXT to see if it - is a type. - * cp-pt.c (tsubst, do_pending_expansions): Check DECL_CONTEXT to see - if it is a type. - * cp-typeck.c (mark_addressable): Check DECL_CONTEXT to see if it is - any sort of a type (e.g. struct *or* union) rather than just - checking it to see if it's a RECORD_TYPE. +Mon Mar 7 17:06:08 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - Tue May 12 08:52:06 1992 Michael Tiemann (tiemann@rtl.cygnus.com) + * i386/xm-linux.h (malloc): Remove disabled code. - * cp-typeck.c (build_component_ref): Call `break_out_cleanups'. - Also clean up indentiation. +Mon Mar 7 13:27:09 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Mon May 11 23:14:04 1992 Mike Stump (mrs at cygnus.com) + * cccp.c (no_record_file): New variable. + (main): Set it for -imacros and -include files. + (do_endif): Don't call record_control_macro for -include or -imacros + files or files included from -imacros. - * cp-decl.c (pushtag): Handle structure tags in the same way as the - C front-end. This completes a change that rms put in on 3/12/92 and - I put in the Cygnus tree on 3/13/92 and Mark Eichin took back out on - 3/18/92. +Sun Mar 6 21:48:51 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - Sun May 3 00:29:59 1992 Mike Stump (mrs at cygnus.com) + * config.sub: Accept freebsd as OS. - * cp-lex.c (copy_lang_decl, store_pending_inline): Cast - arguments to bcopy to be char *. +Sun Mar 6 14:40:00 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - Fri May 1 12:22:31 1992 Michael Tiemann (tiemann@cygnus.com) + * stupid.c: Add prototypes for static functions. + (last_{jump,label}_suid): Deleted; all uses deleted. + (reg_crosses_blocks): Likewise. + (stupid_life_analysis): Only allocate MAX_SUID entries + of after_insn_hard_regs. + Use GET_RTX_CLASS when possible. + Initialize all of reg_renumber. + Use reg_alternate_class when reg not available in preferred class. + (stupid_find_reg): Delete argument CROSSES_BLOCKS. - * cp-init.c (expand_aggr_init, expand_vec_init): When comparing - array types, use `comptypes' instead of ==, since two array types - may be structurally identical but not == if one was defaulted from - an initializer. + * stupid.c (stupid_mark_refs): If setting reg_where_dead, set + regs_live so we don't later clobber it. - Wed Apr 29 01:25:25 1992 Mike Stump (mrs at cygnus.com) + * recog.c (constrain_operands): Properly handle '#' in constraint. - * cp-init.c (do_friend): Check that PREVIOUS_DECL is non-NULL. + * combine.c (subst): Split into five functions. + (simplify_{rtx,if_then_else,set,logical}): New functions. -Thu Jun 18 14:15:07 1992 Torbjorn Granlund (tege@hal.gnu.ai.mit.edu) +Sun Mar 6 13:12:48 1994 James Van Artsdalen (james at bigtex.cactus.org) - * pa.md (insv): Use `+' for operand 0 constraint. + * reg-stack.c (find_blocks): Undo previous change to block + delineation algorithm. + (reg_to_stack): Make algorithm identical to that in find_blocks. -Thu Jun 18 13:39:22 1992 Michael Meissner (meissner@osf.org) +Sat Mar 5 16:27:58 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * mips.h (MIPS_VERSION): Bump Meissner version # to 20. - (final_prescan_insn): Add declaration. - (FINAL_PRESCAN_INSN): Just call final_prescan_insn. - (CONST_OK_FOR_LETTER_P): Rewrite some tests, so that they will - work on host systems with 64 bit integers. + * genattrtab.c (attr_printf): Remove `register' from decl of FMT. + * tree.c (build_nt, build_parse_node): Remove `register' from decl + of CODE. - * mips.c (large_int): Rework, so that we don't get funny boundary - conditions on systems with 64 bit integers. - (mips_move_1word): Just use li to load constants that can be done - with lui, instead of issuing the lui, since the GAS bug that - generated two instructions has been fixed. - (final_prescan_insn): Move the checking for filling the delay - slots here from the FINAL_PRESCAN_INSN macro. + * reload.c (get_secondary_mem): Call SECONDARY_MEMORY_NEEDED_MODE + if it is defined. + * alpha.h (SECONDARY_MEMORY_NEEDED_MODE): New macro. + * alpha.c (output_{pro,epi}log): Round var size to quadword boundary. - * mips.md (andsi3, iorsi3, xorsi3): Make the constraints match - the real machine (the predicate still is more general in order - to optimize bitfields at the expense of not CSE'ing large - constants used in logical ops, and making reload load it into - a scratch register). Don't use $1 as a temporary register any - more. + * alpha.md (unaligned_{load,store}hi): Clear low bit of + address before using as operand to extwl, mskwl, and inswl. + (movhi, reload_inhi, reload_outhi): Pass extra scratch value. - * varasm.c (decode_reg_name): If `memory' return -4. +Fri Mar 4 17:16:23 1994 Leonard Norrgard (vinsci@nic.funet.fi) - * stmt.c (expand_asm_operands): If `memory' is used as a clobbered - register, emit a (clobber (const_int 0)) to force the compiler not - to cache memory values in registers across the assembly - instruction(s). + * c-lex.c: Delete gperf-generated source from here. + * c-gperf.h: New file; contains just gperf output. + * Makefile.in (c-gperf.h): New rule. + (c-lex.o): Depends on c-gperf.h. + (realclean): Delete c-gperf.h. + (distdir): Build c-gperf.h. + (diff): Omit differences in c-gperf.h. - * mips-tfile.c (read_line): Semicolons within strings are not - counted as statement separators. +Fri Mar 4 06:35:26 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - * collect2.c (scan_prog_file, OSF/rose case): Cast pointer arguments - to bcopy to generic * to avoid warnings. + * svr4.h, m88k.h (ASM_FINISH_DECLARE_OBJECT): Set + size_directive_output to 1. -Thu Jun 18 12:04:53 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) + * reload1.c (emit_reload_insns): Don't call gen_input_reload if + src and dest are identical. - * c++: If given -v with no file args, don't pass the libraries to - gcc. +Thu Mar 3 15:32:55 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) -Thu Jun 18 10:34:22 1992 Tom Wood (wood@dg-rtp.dg.com) + * alpha.md (mskXl): Add missing NOT in patterns. - * expr.c (expand_builtin, BUILT_IN_FSQRT): Emit queue of increment - instructions before starting a sequence that may get thrown away. + * t-m88k: Remove added realclean rule. -See ChangeLog.5 for earlier changes. +See ChangeLog.8 for earlier changes.