diff options
-rwxr-xr-x | gcc/ChangeLog | 10905 | ||||
-rwxr-xr-x | gcc/ChangeLog.0 | 13017 | ||||
-rwxr-xr-x | gcc/ChangeLog.Cygnus | 3393 | ||||
-rwxr-xr-x | gcc/ChangeLog.lib | 3781 | ||||
-rwxr-xr-x | gcc/FSFChangeLog | 1503 | ||||
-rwxr-xr-x | gcc/FSFChangeLog.10 | 10110 | ||||
-rwxr-xr-x | gcc/FSFChangeLog.11 | 14493 | ||||
-rwxr-xr-x | gcc/FSFChangeLog.12 | 1244 | ||||
-rwxr-xr-x | gcc/c-aux-info.c | 61 | ||||
-rwxr-xr-x | gcc/c-common.c | 87 | ||||
-rwxr-xr-x | gcc/c-decl.c | 6 | ||||
-rwxr-xr-x | gcc/c-lex.c | 69 | ||||
-rwxr-xr-x | gcc/c-tree.h | 5 | ||||
-rwxr-xr-x | gcc/cccp.1 | 674 | ||||
-rwxr-xr-x | gcc/cccp.c | 10833 | ||||
-rwxr-xr-x | gcc/cexp.y | 1248 | ||||
-rwxr-xr-x | gcc/gcc.c | 59 | ||||
-rwxr-xr-x | gcc/toplev.c | 10 |
18 files changed, 1 insertions, 71497 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog deleted file mode 100755 index 7b8f481..0000000 --- a/gcc/ChangeLog +++ /dev/null @@ -1,10905 +0,0 @@ -2000-05-11 Nick Clifton <nickc@redhat.com> - - * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not emit a 0 - alignment, the assembler treats it as a word alignment. - -Thu Oct 14 20:09:17 1999 Jonathan Larmour <jlarmour@cygnus.co.uk> - - * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option - to .section when outputting a .bss section to deal with multiple - .bss input sections (as happens with -fdata-sections) - Also output %progbits, not @progbits so the assembler doesn't treat as - a comment. - * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise - - * config/arm/t-arm-elf (MULTILIB_OPTIONS): Add -mcpu=arm7 multilib... - (MULTILIB_DIRNAMES): ...in directory nofmult... - (MULTILIB_EXCEPTIONS): ...but don't need to build it with thumb-interwork - (MULTILIB_MATCHES): And make sure it matches all the relevant CPUs - - * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of - thumb parts even when building with non-thumb CPUs, by forcing - thumb mode. - - * config/arm/elf.h (MULTILIB_DEFAULTS): include -fno-leading-underscore - to prevent unnecessary multilib - -Fri Oct 8 14:44:16 1999 Jonathan Larmour <jlarmour@cygnus.co.uk> - - * configure.in (arm*-*-*): bracket arm core versions correctly - * configure: regenerate - -Tue Oct 5 17:12:26 MDT 1999 Diego Novillo <dnovillo@cygnus.com> - - * config/rs6000/rs6000.c (secondary_reload_class): For - TARGET_ELF make sure that HIGH instructions are copied - into BASE_REGS. - -Wed Feb 10 11:03:22 1999 Richard Henderson <rth@cygnus.com> - - * configure.in (alphaev6*): Fix typo in target_cpu_default2. - -Wed Apr 7 14:07:34 1999 Jeffrey A Law (law@cygnus.com) - - * unroll.c (copy_loop_body): Always ensure at least two insns - are in the copied loop. - -Thu Aug 26 16:05:39 1999 Jason Merrill <jason@yorick.cygnus.com> - - * configure.in (sparc86x-aout): Set use_collect2. - -Fri Aug 27 15:19:48 1999 Jason Merrill <jason@yorick.cygnus.com> - - * rs6000.md: Add missing arg to rs6000_output_load_toc_table. - -Fri Aug 27 09:53:14 1999 Brendan Kehoe <brendan@cygnus.com> - - * sparc.md: For DF splits for reg/mem and mem/reg, Do gen_rtx_REGs - explicitly if we're dealing with a REG to circumvent gen_highpart and - gen_lowpart doing word swapping. (For sparc86x-elf - -mlittle-endian-data support.) - -1999-08-31 Brendan Kehoe <brendan@cygnus.com> - - * real.c (GET_REAL, PUT_REAL): Honor aliasing rules for the byte - order changes for these, using memcpy instead of trying - assignment. Fixes problems emitting float values in some - situations. - -Sat Sep 25 14:03:53 1999 Nick Clifton <nickc@cygnus.com> - - * varasm.c (asm_emit_uninitialised): If flag_data_sections is - true, then attempt to use ASM_OUTPUT_UNIQUE_BSS or - ASM_OUTPUT_UNIQUE_LOCAL to emit the variable. - - * tm.texi (ASM_OUTPUT_UNIQUE_BSS): Document new target macro. - (ASM_OUTPUT_UNIQUE_LOCAL): Document new target macro. - -Sat Sep 25 13:42:15 1999 Nick Clifton <nickc@cygnus.com> - - * varasm.c (asm_emit_uninitialised): New function: Generate - the assembler statements necessary to declare an uninitialised - variable. - (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised - variable. - (ASM_EMIT_BSS): New macro: Emit an entry in the bss section. - (ASM_EMIT_COMMON): New macro: Emit an entry in the common - section. - (assemble_variable): Use asm_emit_uninitialised to emit an - uninitialised variable. - -Thu Sep 2 22:00:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Make value passed to LABEL_ALIGN - conform to documentation. - * sh.h (LABEL_ALIGN): If aligning loops, call sh_label_align - to check for special cases. - (sh_label_align): Declare. - * sh.c (sh_label_align): Define. - -Wed Sep 8 10:56:38 1999 Nick Clifton <nickc@cygnus.com> - - Patch supplied by Bernd Schmidt <bernds@cygnus.com>: - - * reload.c (MODE_BASE_REG_CLASS): Provide default definition and - replace all uses of BASE_REG_CLASS with this macro. - -Wed Aug 25 09:38:17 1999 Nick Clifton <nickc@cygnus.com> - - * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs along - with SYMBOL_REFs. - -Tue Aug 24 20:16:55 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/telf.h (ASM_WEAKEN_LABEL): Define. - (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT, - ASM_DECLARE_RESULT, ASM_DECLARE_FUNCTION_NAME, - ASM_DECLARE_OBJECT_NAME, AS_FINISH_DECLARE_OBJECT_NAME, - ASM_DECLARE_FUNCTION_SIZE): Define. - -Mon Aug 23 15:59:32 1999 Jonathan Larmour <jlarmour@cygnus.co.uk> - - * config/mips/mips.c (mips_move_2words): Only split 64-bit loads for - floating-point registers - -Thu Jun 24 03:00:01 1999 Jorn Rennecke <amylaar@cygnus.co.uk> - - * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define. - -Wed Aug 11 18:28:07 EDT 1999 Diego Novillo <dnovillo@cygnus.com> - - * config/mips/mips.c (mips_move_2words): Emit two li insns for - 32-bit targets. - -1999-04-16 Angela Marie Thomas <angela@cygnus.com> - - * config/mips/elfb4300.h: Support for dwarf2 debugging. - * config/mips/elfl4300.h: Likewise. - -Thu May 13 13:44:58 EDT 1999 Andrew MacLeod <amacleod@cygnus.com> - - * config/rs6000/rs6000.md (nonlocal_goto_receiver): Add check for - constant_pool_size () before restoring the TOC register. - -Thu Jul 29 14:47:23 1999 Vladimir Makarov <vmakarov@drake.cygnus.com> - - * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto - -Asparclite for sparc86x. - (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for - sparc86x. - (ASM_CPU_SPEC): Use -Asparclite for sparc86x. - -Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (fixup_addr_diff_vecs): Emit braf reference label. - (braf_label_ref_operand): Delete. - * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand. - * sh.md (casesi_jump_2): Operand1 is now the inside of a - label_ref, and has no predicate. - The patten has a predicate to guard against invalid substitutions. - (dummy_jump): Delete. - (casesi): Update use of casesi_jump_2. - -Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT. - -Fri Jul 23 21:14:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * dwarfout.c (ASM_OUTPUT_DWARF_DATA2): Cast VALUe to unsigned short. - -Wed Mar 10 18:56:31 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (choose_reload_regs): When inheriting from the frame - pointer, don't clobber it. - -Mon Jul 19 14:23:42 1999 Vladimir Makarov <vmakarov@toad.to.cygnus.com> - - * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE - instead of V8 for sparclite86x in cpu_table. - -Thu Jul 15 14:53:54 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> - - * config/sparc/lite.h (TARGET_DEFAULT): Enable sparclite. - - * config/sparc/liteelf.h (TARGET_DEFAULT): Ditto. - - * config/sparc/sp86x-aout.h (TARGET_DEFAULT): Ditto. - - * config/sparc/sp86x-elf.h (TARGET_DEFAULT): Ditto. - - -Tue Jun 15 12:57:44 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> - - * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Add the macros. - - * config/d10v/d10v.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - -Mon Jul 12 10:13:25 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> - - * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block - always unless NO_DEBUG is used. Compile this code - unconditionally. - (replace_symbols_in_block): Compile it unconditionally. - -Fri Jun 11 21:00:45 1999 Jim Wilson <wilson@cygnus.com> - - * config/mips/mips.c (mips_secondary_reload_class): Check for - (PLUS (SP) (REG)) and return appropriate register class. - * config/mips/mips.md (reload_insi): Delete predicate for operand 1. - Handle (PLUS (SP) (REG)). - -1999-06-16 Nick Clifton <nickc@cygnus.com> - - * config/tc-arm.c (thumb_set): New pseudo op. - (text, data, section): Override these pseudo ops with ARM - specific versions. - (s_thumb_set): New function: Perform the same as a .set pseudo - op, but also mark the alias'ed symbol as being a Thumb - function. - (arm_s_text): New function: Perform the same as the .text - pseudo op, but dump the literal pool before changing - sections. - (arm_s_data): New function: Perform the same as the .data - pseudo op, but dump the literal pool before changing - sections. - (arm_s_section): New function: Perform the same as the - .section pseudo op, but dump the literal pool before changing - sections. - (arm_cleanup): Do not reset the current section before dumping - the literal pool. - -1999-06-16 Nick Clifton <nickc@cygnus.com> - - * varasm.c (assemble_alias): Use the macro - ASM_OUTPUT_DEF_FROM_DECLS, if defined, in preference to - ASM_OUTPUT_DEF. - - * tm.texi: Document new macro ASM_OUTPUT_DEF_FROM_DECLS. - - * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro. - - -Thu Jun 10 10:02:30 1999 Nick Clifton <nickc@cygnus.com> - - * config/tc-arm.c (ARM_8, ARM_9): Define. - (md_parse_option): Parse ARM8 and ARM9 cpu types. - -Thu Jun 10 10:02:30 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (TARGET_CPU_arm9, TARGET_CPU_arm9tdmi): - Define. - (TARGET_OPTIONS): Add 'tune=' and 'fp=' options. - (arm_is_strong): New exported variable. - (arm_is_6_or_7): New exported variable. - (USE_RETURN_INS): Add parameter to macro. - - * config/arm/arm.md (is_strongarm): New attribute. - (model_wbuf): New attribute. - (write_buf, write_blockage, core): Amend models. - - * config/arm/arm.c (MAX_INSNS_SKIPPED): Replace with a - variable called 'max_insns_skipped'. - (insn_flags, tune_flags): New variables. - (arm_is_strong, arm_is_6_or_7): New variable. - (struct all_cores): Add arm8 and arm9 cores. - (arm_override_options): Rewrite to allow tuning of processor - selection. - (bit_count): New function: Count the number of bits set in a - word. - (use_return_insn): Add parameter. Disable conditional returns - if they are inefficient. - (arm_rtx_costs): Examien tuning parameter to determine - multiply costs. - (load_multiple_sequence): Add arm9 tuneing. - (final_prescan_insn): Add arm9 tuneing. -Thu Jul 8 16:07:26 1999 Jason Merrill <jason@yorick.cygnus.com> - - * sparc/liteelf.h: Handle ctors like sparc86x. - -Wed Jun 2 10:03:01 1999 Catherine Moore <clm@cygnus.com> - - * config/arm/thumb.c (thumb_print_operand): Process 'c' type - operands for selective linking support. - * config/arm/telf.h (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P): Define. - (UNIQUE_SECTION): Define. - -1999-05-27 Felix Lee <flee@cygnus.com> - - * fixinc.x86-linux-gnu (FD_ZERO): missing patch from drepper: - remove memory output operands. - * fixinc/fixinc.x86-linux-gnu (FD_ZERO): sync with above. - -Sat May 22 18:18:43 1999 Jason Merrill <jason@yorick.cygnus.com> - - * sparc/liteelf.h: Handle ctors like MIPS crosses. - * sparc/lite.h (STARTFILE_SPEC, LIB_SPEC): Define to "". - * configure.in: Don't use libgloss.h on sparclite-elf. - Use collect2 on sparclite-aout. - -Mon Mar 1 16:36:18 1999 Jeffrey A Law (law@cygnus.com) - - * mips.md (div_trap_normal, div_trap_mips16): Require the dependent - insn to be an INSN before looking at its pattern. - -Thu Feb 4 10:46:30 1999 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3, - [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register - before calling gen_div_trap. - -Wed Feb 3 15:51:04 1999 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.c (true_reg_or_0_operand) : New function. - * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand. - * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): - Use true_reg_or_0_operand for div_trap. - -Wed Feb 3 15:26:58 1999 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.md (div_trap_mips16): Remove nop's after branches. - -Mon Jan 18 12:03:08 1999 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.md (div_trap): Split div_trap_mips16 - from div_trap. - (div_trap_normal,div_trap_mips16): Correct the length attributes. - -Sat May 22 18:19:10 1999 Jason Merrill <jason@yorick.cygnus.com> - - * configure.in: Don't use libgloss.h on mips64vr4100-elf, - mips64vr4300-elf, or mips64vr5xxx-elf. - -1999-05-21 Ulrich Drepper <drepper@cygnus.com> - - * new1.cc: Use __GCC_THROW and __GCC_nothing instead of __THROW - and __nothing. - * new2.cc: Likewise. - -1999-05-21 Ulrich Drepper <drepper@cygnus.com> - - * inc/new: Use __GCC_THROW and __GCC_nothing instead of __THROW - and __nothing. - -Sat May 15 11:59:47 1999 Jim Wilson <wilson@cygnus.com> - - * configure: Rebuild. - -Sat May 15 13:05:41 1999 Jim Wilson <wilson@cygnus.com> - - * arm.md (zeroextractqi_compare0_scratch): Disable. - -Fri May 14 21:18:48 1999 Jim Wilson <wilson@cygnus.com> - - * reload1.c (choose_reload_regs): New locals check_regnum, nr, - cant_inherit. When calling reload_reg_free_for_value_p, loop over - each reg in check_reg in case it is a multi-word hard register. - -Fri May 14 13:57:03 1999 Stan Cox <scox@cygnus.com> - - * range.c (range_inner): Pick up devo change to set all_label_ref - from LABEL_NUSES instead of using LABEL_REFS. - -1999-05-14 Ulrich Drepper <drepper@cygnus.com> - - * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Fix operand numbers in - asm input operands. - -Fri May 7 12:31:21 1999 Jim Wilson <wilson@cygnus.com> - - * mips/mips.c (mips_select_rtx_section): When TARGET_MIPS16, use - function_section instead of text_section. - * mips/mips.h (ENCODE_SECTION_INFO): Add check for UNIQUE_SECTION_P - in TARGET_MIPS16 STRING_CST handling. - -Wed Sep 23 00:16:41 1998 Ken Raeburn <raeburn@cygnus.com> - - * cse.c (cse_insn): Don't substitute inside a libcall if we would - need to update the RETVAL insn's notes, and if the new value is a - hard reg register changed between the current insn and the RETVAL - insn. - -Fri May 7 12:31:21 1999 Jim Wilson <wilson@cygnus.com> - - * mips/elf64.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define. - -Fri May 7 18:12:55 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com> - - * sparc.h (GO_IF_LEGITIMATE_ADDRESS): Prohibit REG+REG addressing - for TFmode when there are no instructions which accept REG+REG - instructions. - -Thu Apr 15 15:00:47 1999 Vladimir Makarov <vmakarov@makita.cygnus.com> - - * expmed.c (extract_bit_field): Extract field smaller than a word - when unsignedp not assuming that the field is an integer. - -Thu Apr 29 07:40:21 1999 Vladimir Makarov <vmakarov@makita.cygnus.com> - - * config/d10v/d10v.c (d10v_output_addr_const): Use parentheses - around SYMBOL_REF. - (print_operand_memory_reference): Remove output of parentheses - around symbols. This is Nick Clifton's patch dated Nov 16, 1998. - -Sat Apr 10 13:09:18 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (di_operand): Allow SUBREGs as well. - (soft_df_operand): Allow SUBREGs as well. - -Sun Apr 25 03:17:33 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (insn_lengths_max_uid): New variable. - (init_insn_lengths, shorten_branches): Set it. - (get_attr_lengths): Test insn uid against insn_lengths_max_uid. - -Mon Apr 26 13:30:31 EDT 1999 Andrew MacLeod <amacleod@cygnus.com> - - * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all - calls within a libcall block to indicate no throws are possible. - * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for - libcall blocks. Don't add edges to exception handlers if we see - a REG_EH_REGION note with a value of 0. - (make_edges): Override active_eh_region vector if the call has a note - indicating the call does not throw. - -Mon Apr 26 13:56:17 EDT 1999 Andrew MacLeod <amacleod@cygnus.com> - - * config/alpha/alpha.md (builtin_setjmp_receiver): Use a label_ref. - -1999-04-13 Jason Merrill <jason@yorick.cygnus.com> - - * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead - of the decls themselves. - -1999-04-09 Jason Merrill <jason@yorick.cygnus.com> - - * decl.c (start_decl): Pass attributes to grokdeclarator. - (grokdeclarator): Handle attributes on constructor-syntax - initializers. - -Fri Apr 9 11:18:55 1999 Jason Merrill <jason@yorick.cygnus.com> - - * c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays - of classes, too. - -Mon Apr 5 12:58:03 1999 Catherine Moore <clm@cygnus.com> - - * config/mips/elf.h, config/mips/elf64.h - (CTORS_SECTION_ASM_OP): Define. - (DTORS_SECTION_ASM_OP): Define. - (EXTRA_SECTIONS): Define. - (INVOKE__main): Define. - (NAME__MAIN): Define. - (SYMBOL__MAIN): Define. - (EXTRA_SECTIONS_FUNCTIONS): Define. - (SECTION_FUNCTION_TEMPLATE): Define. - (ASM_OUTPUT_CONSTRUCTOR): Define. - (ASM_OUTPUT_DESTRUCTOR): Define. - (CTOR_LIST_BEGIN): Define. - (CTOR_LIST_END): Define. - (DTOR_LIST_BEGIN): Define. - (DTOR_LIST_END): Define. - (LIB_SPEC): Define. - (STARTFILE_SPEC): Define. - (ENDFILE_SPEC): Define. - * config/mips/linux.h: Undefine all of the above. - * config/mips/rtems64.h: Likewise. - * config/mips/t-biendian (EXTRA_MULTILIB_PARTS): Define. - (CRTSTUFF_T_CFLAGS): Define. - * config/mips/t-lsi: Likewise. - * config/mips/t-r3900: Likewise. - * config/mips/t-vr4100: Likewise. - * config/mips/t-vr4300: Likewise. - * config/mips/t-vr5000: Likewise. - * config/mips/t-elf: New file. - * config/mips/vxworks.h: New file. - * configure.in (mips-wrs-vxworks): Use mips/vxworks.h. - (mips*-*-*elf*): Use t-elf instead of t-ecoff. - * configure: Regenerate. - -Tue Apr 6 15:58:28 1999 Catherine Moore <clm@cygnus.com> - - * gcc/config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P): Define. - -1999-03-24 Jim Blandy <jimb@zwingli.cygnus.com> - - * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all - platforms. - -Wed Mar 31 16:13:42 1999 Jim Wilson <wilson@cygnus.com> - - * loop.c (find_and_verify_loops): Don't move a block between a - tablejump and its immediately following jump table. - -Tue Mar 30 13:19:36 1999 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (throw_helper): Just return the SP offset, rather than - a whole udata. Include args_size in the offset. - (__throw, __rethrow): Adjust. - -Mon Mar 29 18:10:31 1999 Richard Henderson <rth@cygnus.com> - - * flow.c (add_edge): Don't add duplicate edges. - -Fri Mar 26 11:38:01 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define. - -Sat Mar 27 16:13:50 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (mark_used_regs): Improve handling of ASMs. - -Mon Mar 29 15:48:39 1999 Jason Merrill <jason@yorick.cygnus.com> - - * invoke.texi (Invoking G++, C++ Dialect Options): Update. - -Fri Feb 12 16:56:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (load_mems): Don't guess how to do a load / store, use - gen_move_insn. - -Fri Mar 5 23:08:01 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads_subreg_address): Actually create the USE - for the register, not the new memory location. - -Fri Feb 12 21:09:51 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads_subreg_address): New function, broken out of - find_reloads_toplev. - (find_reloads_toplev, find_reloads_address_1): Use it. - -Fri Mar 5 21:41:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (emit_reload_insns): If pseudo that can't be replaced - with its equivalent constant, fall back to reload_in. - -Mon Mar 8 18:47:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (copy_src_to_dest): New argument max_old_uid. - -Tue Mar 2 16:45:31 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * unroll.c (copy_loop_body): Don't make extra copies of - NOTE_INSN_LOOP_CONT notes. - -1999-02-11 Nick Clifton <nickc@cygnus.com> - - * lib/remote.exp (proc remote_exec): Display timeout in log - message. - - * lib/target.exp (proc default_target_compile): Add support for - timeout option. - - * baseboards/arm-sim.exp: Set gcc,timeout to 500. - -1999-02-11 Nick Clifton <nickc@cygnus.com> - - * lib/gcc.exp (proc gcc_target_compile): Add support for timeout - specified by target. - - * lib/consistency.exp (proc gcc_target_compile): Add support for - timeout specified by target. - -Mon Mar 15 12:39:38 1999 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.c (init_idents): New function. Initialise - static tree nodes for m32r specific attribute identifiers. Remove - leading and trailing double underscores from the attribute names. - (m32r_valid_machine_decl_attribute): Call init_idents. - (m32r_encode_section_info): Call init_idents. - -Mon Mar 15 15:27:44 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use - PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC. - -Thu Mar 11 11:00:34 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * global.c (build_insn_chain): Add code for processing - explicitly case when n_basic_blocks == 0. - -1999-03-11 Jim Wilson <wilson@cygnus.com> - - * reload1.c (calculate_needs_all_insns): When ignore equivalence - setting insn, clear need_elim, need_reload, and need_operand_change. - -Wed Mar 10 00:01:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine_note_store): Fix calculation of number - of affected registers. - -1999-03-04 Martin Hunt <hunt@cygnus.com> - - * gdbtk-hooks.c (gdbtk_load_hash): Change download_hash() - to Download::download_hash(). - -1999-03-01 Martin Hunt <hunt@cygnus.com> - - * gdbtk.c (TclDebug): Increase buffer size to 10000, in case - backtraces are very long. - -1999-02-26 James Ingham <jingham@cygnus.com> - - * gdbtk-cmds.c (gdb_search): Add a -filename switch, which returns - the file in which the function or type was defined, along with the - function... - - * gdbtk.c (gdbtk_find_main): The external editor stuff was getting - set twice... - -1999-02-18 Martin Hunt <hunt@cygnus.com> - - * gdbtk-cmds.c (gdb_disassemble): When debugging native threads, - set disassemble_from_exec to 0. This fixes bugs where disassembly - of threaded programs failed. - -1999-02-16 James Ingham <jingham@cygnus.com> - - * gdbtk.c (gdbtk_init): Remove redundant setting of the external - editor variables. - -1999-02-11 Martin Hunt <hunt@cygnus.com> - - * gdbtk-variable.c (variable_format): Enable binary format. - -1999-02-11 Martin Hunt <hunt@cygnus.com> - - * gdbtk-hooks.c: Change ALL Tcl_Eval calls in hooks to - call report_error() if there are errors. - -1999-02-11 Martin Hunt <hunt@cygnus.com> - - * gdbtk.c, gdbtk-cmds.c, gdbtk-hooks.c: Removed old IDE stuff. - -1999-02-09 Martin Hunt <hunt@cygnus.com> - - * gdbtk-hooks.c: Remove gdbtk_ignorable_warning prototype. - It is in gdbtk.h. - (report_error): New function. Displays debugging information - if a hook function fails. All hook functions should probably - call this. - (gdbtk_warning): Call report_error() if there is a problem. - (gdbtk_register_changed): Call report_error() if there is a problem. - (gdbtk_memory_changed): Call report_error() if there is a problem. - (gdbtk_ignorable_warning): Pass along class argument. If there - is a problem, call report_error(). - - * gdbtk-cmds.c: Remove TclDebug prototype. It is in gdbtk.h. - (gdb_loadfile): Add class name to gdbtk_ignorable_warning call. - - * gdbtk.c (TclDebug): Add "priority" argument. Calls "dbug" - instead of "debug". Removed non-ANSI ifdefs. - - * gdbtk.h: Fixed protos for gdbtk_ignorable_warning and TclDebug. - -1999-03-03 James Ingham <jingham@cygnus.com> - - * i386-tdep.c (_initialize_i386_tdep): Set the inital value for - disassembly flavor at startup, rather than hardcoding it. - - -1999-03-04 Martin Hunt <hunt@cygnus.com> - - * download.ith: New file. - * download.itb: New file. Implements itcl3 class and replaces - download.tcl. - - * srcbar.tcl (create_menu_items): Call create_run_menu - without arguments. - (create_run_menu): Add Disconnect and Connect to Run menu - instead of file menu. Change download_it to Download::download_it. - - * srctextwin.itb (do_key): Change binding to call - Download::download_it. - - * debugwin.itb (DebugWinDOpts::build_win): Add ProcessWIn to list - of classes for filter. - - * interface.tcl (set_target): No need to set window title. - (run_executable): Change download_it to Download::download_it - -1999-03-04 James Ingham <jingham@cygnus.com> - - * modal.tcl (ModalDialog): Handle WM_DELETE_WINDOW by calling the - cancel method. Also set unpost_notification to different values - in unpost & the destructor, so if the object dies irregularly, you - know not to try to double destruct it. - -1999-03-03 James Ingham <jingham@cygnus.com> - - * warning.tcl (WarningDlg::constructor):Destroy with unpost. - - * util.tcl (get_disassembly_flavor, set_disassembly_flavor, - init_disassembly_flavor): Added these functions for the Intel P2 - disassembly flavors. - (list_element_strcmp): New function for lsort -command on lists. - - * tracedlg.tcl (TraceDlg): Change combobox callback to reflect new - after behavior. - - * targetselction.itb (TargetSelection::save): If the target - is not valid, tell the user rather than simple refusing to go - away. - Also move stuff around to isolate the instance dependant stuff as - much as possible - Also replace delete with unpost. - - * targetselection.ith (TargetSelection): Make as much of the - initialization stuff Class functions as possible. Then only - initialize it once. - - * srcwin.ith (_update_title): initialize need_files. - - * srcwin.itb (SrcWin::_build_win): I changed the combobox so it - ran its code in an idle handler, so we can take out all the after - idle... cruft here. - - * srctextwin.ith (SrcTextWin): Added textheight variable so you - can adjust the height of the text display. - - * srctextwin.itb (SrcTextWin::build_win): Don't hardcode the size - of the text window, set it with the textheight option instead. - Also replace childsite with "component text" wherever required. - - * srcpref.itb (SrcPref::build_win, set_flavor): Added the Intel - disassembly flavor combobox. Added set_flavor method to support - this. - * srcpref.ith: Added declaration for set_flavor, and - disassembly_flavor instance variable. - - * modal.tcl (ModalDialog::post, unpost): Added unpost method to - provide a more regular way to dismiss the dialogs. Just - destroying them was leading to funny destruction order bugs. - Added cancel method, which is what client code should call to - "force close" the dialog, so child classes can override, and do - some cleanup. - - * memwin.itb (MemWin::destructor): Call the cancel method of the - Preferences dialog (if it is posted) rather than just destroying - it. - - * mempref.itb (MemPref::ok): call unpost, since this is a modal - dialog. - - * managedwin.itb (ManagedWin::reveal): Used to be called raise. - Don't reuse Tcl or Tk commands unless there is a really good - reason to... - (ManagedWin::destroy_toplevel): renamed from delete, which - conflicts both with the Itcl1.5 delete method, and the Itcl3.0 - delete command... Also, don't use this as the way to destroy - ManagedWins, rather destroy the object and let the object take - care of removing its toplevel. - (ManagedWin::_create): Group all the windows with - . for WindowManagers that properly handle this. - (ManagedWin::_create): Use dont_remember_size - rather than the instance variable. Also, windows which don't - remember size are not necessarily transient. - (ManagedWin::_create): Only call post if the - ManagedWin also isa ModalDialog. It is clearer what is going on. - * managedwin.ith: Carry through the name changes. - - * main.tcl: call init_disassembly_flavor for Intel assembly - flavors. - - *main.tcl: Group . with . This is half of the work required to - play nice with WindowMaker. The other half waits till we can get - gdb to pass the command-line arguments to Tcl. - - * interface.tcl: Add file_changed_hook to the hooks. The browser - window watches this and refreshes the file box if it changes. - - * globalpref.ith (GlobalPref): This should be a modal dialog. - * globalpref.itb (GlobalPref::build_win): call update idletasks, - not update. Since we are calling update, there is no reason to - delay calling resize_font_item_height. - * globalpref.itb: Replace destroy toplevel with unpost. - - * debugwin.itb (DebugWin::build_win): Replace childsite with - "component text" - - * console.itb (Console::_build_win): Replace childsite with - "component text" - - * browserwin.itb: Rewritten pretty completely. - * prefs.tcl (pref_set_defaults): add the browser preferences. - - * prefs.tcl (pref_set_defaults): add the intel disassembly flavor - preference. - - * about.tcl (About): This should be a modal dialog. - -1999-03-02 James Ingham <jingham@cygnus.com> - - * globalpref.itb (GlobalPref::make_font_item): Don't do the - resize_font_item_height here, since an update can cause the resize - before all the windows are built. Delay to the end of build_win - instead. - -1999-02-24 James Ingham <jingham@cygnus.com> - - * toolbar.tcl (remove_button): Specify the row in the toolbar from - which you are removing the item. On Windows, there are two rows - in the standard toolbar... - -1999-02-22 Martin Hunt <hunt@cygnus.com> - - * warning.tcl (WarningDlg::constructor): Remove extra quote - that was causing loading of this module to fail. - - * managedwin.itb (ManagedWin::_create): If the pack fails - (for example because the warning dialog reliazed it should - ignore the warning) print a warning debug message and return. - Also, while testing, tell the window manager to position - the window without asking the user for the position. - -1999-02-18 Martin Hunt <hunt@cygnus.com> - - * srctextwin.itb (SrcTextWin::FillAssembly): As a last resort, - if the disassembly fails for some reason, switch to the scratch - pane and write in a message about not being able to disassemble. - -1999-02-18 Martin Hunt <hunt@cygnus.com> - - * helpviewer.ith (HtmlViewer): Add thread and function - browser windows to help index. - - * help/index.toc: Removed. - -1999-02-18 Martin Hunt <hunt@cygnus.com> - - * help/thread.html: New file. Thread window online help. - * help/index.html: Add thread.html, and alphabetize list. - * help/source.html: Add index for thread_bp. - -1999-02-17 Martin Hunt <hunt@cygnus.com> - - * globalpref.itb (GlobalPref::build_win): Add a checkbutton to - allow use of an internet browser to read help files. - - * prefs.tcl (pref_set_defaults): Add preference gdb/help/browser. - Default is to use builtin html help. - - * helpviewer.itb (HtmlViewer::open_help): New public proc. - Depending on preferences, opens help in external browser or - internal htmlviewer. - - * toolbar.tcl (create_help_menu): Use HtmlViewer::open_help. - -1999-02-17 Martin Hunt <hunt@cygnus.com> - - * managedwin.itb (ManagedWin::_create): Restore some lines that - were accidently checked in commented out. - -1999-02-17 Keith Seitz <keiths@cygnus.com> - - * help/index.html: Add function browser. - * help/browser.html: New help file. - -1999-02-12 Martin Hunt <hunt@cygnus.com> - - * managedwin.itb (ManagedWin::_create): If a window class defines a - public variable "nosize" the size will not be set, only the position. - * browserwin.ith (toggle_all_bp): Add public variable "nosize". - -1999-02-12 Martin Hunt <hunt@cygnus.com> - - * process.ith: New file. - * process.itb: New file. Converted process.tcl to new itcl class. - * process.tcl: Deleted. - - * warning.tcl (WarningDlg::constructor): Set the window name. - -1999-02-11 Martin Hunt <hunt@cygnus.com> - - * variables.tcl (editEntry): Check that $variable is not empty. - - * warning.tcl (WarningDlg::constructor): Put focus on the - "OK" button and bind it to <Return>. - - * watch.tcl (add): If the user attempts to add a non-existent - variable to the watch-window, display an ignorable warning. - - * interface.tcl (gdbtk_tcl_ignorable_warning): -transient - should not take an argument. - (set_target_name): Ditto. - * srcbar.tcl (create_menu_items): Ditto. - * memwin.itb (MemWin::create_prefs): Ditto. - * managedwin.itb (ManagedWin::_create): Ditto. - -1999-02-11 James Ingham <jingham@cygnus.com> - - Move the Intel disassembly mode changes into devo. - - * main.tcl: Init the disassembly flavor bits. - * prefs.tcl: Define disassembly-flavor - * srcpref.ith: Add current_disassembly_flavor instance variable - and set_flavor method. - * srcpref.itb (build_win): Add the disassembly_flavor combobox. - (apply): set the flavor, if applicable. - (set_flavor): New method. - * util.tcl: Add 3 new functions - get_disassembly_flavor, - list_disassembly_flavor and init_disassembly_flavor. - -1999-02-10 Martin Hunt <hunt@cygnus.com> - - * srcwin.itb, download.tcl, main.tcl, srcbar.tcl: Removed old - IDE stuff. - - * toolbar.tcl (create_help_menu): Updated Cygnus URL and - removed old IDE stuff. - (create_ide_buttons): Removed. - -1999-02-10 Martin Hunt <hunt@cygnus.com> - - * managedwin.itb (ManagedWin::_create): Bind Alt-F4 to - always close the window. - -1999-02-10 Martin Hunt <hunt@cygnus.com> - - * main.tcl: Removed old debugging preferences. - * prefs.tcl (pref_set_defaults): Ditto. - -1999-02-09 Martin Hunt <hunt@cygnus.com> - - * managedwin.itb (ManagedWin::_create): Simplify raise - and post now that all windows use new manager. - - * warning.tcl (WarningDlg): Rewrite of entire class to use - new itcl 3.0 class. Also now uses a "class name" to keep - track of which messages should be ignored. Uses tk_messageBox - of the message doesn't have -ignorable set. - - * interface.tcl: Removed IDE stuff. - (gdbtk_tcl_ignorable_warning): Accept "class" argument and - use it when creating a WarningDlg. Use new ManagedWin::open. - - * srctextwin.itb (SrcTextWin::set_tp_at_line): Fix TraceDlg - open command to use ManagedWin::open. - - * srcpref.itb (SrcPref::build_win): Comment out line number - option. It wasn't very useful and did not become effective - until GDBtk was restarted. - -1999-02-09 James Ingham <jingham@cygnus.com> - - * srctextwin.itb (build_win): Set the paned window background to - white so it looks better when you switch windows. - - * mempref.itb (build_win): Use the libgui combobox for the bytes per - line field. - - * mempref.itb: remove some global declarations that I missed when - I converted all the variables to instance data. - - * variables.tcl (change_value): Catch one more place where $this - was being passed as a window name. - - * TODO: Added some more items, and removed some that had been fixed. - -Mon Feb 8 12:27:16 1999 Keith Seitz <keiths@cygnus.com> - - * interface.tcl (set_target_name): Fix switch syntax - error and getd the options preference in case it's not set. - - -1999-03-03 James Ingham <jingham@cygnus.com> - - * browser.test: Fixed up to match the new function browser. - This is not done yet... - - * srcwin.test: Check for errors when the bbox is called for a text - item that is not on screen (so bbox is ""). Return something more - useful. - -1999-03-01 James Ingham <jingham@cygnus.com> - - * Changelog entries merged over from gdb development branch. - - 1999-01-12 Martin Hunt <hunt@cygnus.com> - - * gdb.gdbtk/srcwin.test: Add a bunch of tests for the source - window filename and function comboboxes. Add in stack tests. - - 1999-01-11 Martin Hunt <hunt@cygnus.com> - - * gdb.gdbtk/srcwin.test: New file. Source Window tests. - * gdb.gdbtk/srcwin.exp: New file. Source Window tests. - - Wed Jan 6 09:22:52 1999 Keith Seitz <keiths@cygnus.com> - - * gdb.gdbtk/c_variable.test (c_variable-1.9): Add new - test to check for creation of a variable that is really a type. - (c_variable-7.81): Use "output" instead of "print" to get PC. - Include missing bits of test. - - * gdb.gdbtk/cpp_variable.test (cpp_variable-1.6): Default format - is now "natural", not "hexadecimal" - (cpp_variable-2.22): Ditto. - (cpp_variable-2.24): Force format to hex before getting value. - - * gdb.gdbtk/cpp_variable.exp: Supply missing arg to gdbtk_analyze_results. - - Tue Jan 5 12:40:52 1999 Keith Seitz <keiths@cygnus.com> - - * gdb.gdbtk/c_variable.c, c_variable.test, c_variable.exp: New C - language tests for variable object interface. - - * gdb.gdbtk/cpp_variable.h, cpp_variable.cc, cpp_variable.test, - cpp_variable.exp: New C++ language tests for variable object - interface. - - * gdb.gdbtk/Makefile.in (EXECUTABLES): Add c_variable and cpp_variable. - - Tue Jan 5 12:33:47 1999 Keith Seitz <keiths@cygnus.com> - - * lib/gdb.exp (gdbtk_analyze_results): Generic function - for outputting results of test run. - - * gdb.gdbtk/defs (gdbtk_test): Handle xpass and xfail. - (gdbtk_test_error): New proc which handles error aborts. - - * gdb.gdbtk/console.exp: Use gdbtk_analyze_results. - Check if we have a valid DISPLAY before running. - * gdb.gdbtk/browser.exp: Ditto. - - 1998-12-07 Martin M. Hunt <hunt@cygnus.com> - - * lib/gdb.exp (gdbtk_start): Fix path for itcl library. - * gdb.gdbtk/browser.test: Change "manage open" to ManagedWin::open. - * gdb.gdbtk/console.test: Same. - * gdb.gdbtk/*: Update from devo. - - Fri Jul 24 14:57:19 1998 Keith Seitz <keiths@cygnus.com> - - * gdb.gdbtk/Makefile.in: Add new example program "stack". - * gdb.gdbtk/browser.test,browser.exp: Add browser window - tests. - * gdb.gdbtk/stack1.c,stack2.c: Test case for browser window. - -end-sanitize-gdbtk -Thu Feb 25 13:21:58 1999 Michael Meissner <meissner@cygnus.com> - - * flags.h (flag_optimize_comparisons): Add new flag. - - * toplev.c (flag_optimize_comparisons): Add new global. - (f_options): Add -foptimize-comparisons. - - * fold-const.c (fold_truthop): Add optimizing sequence of comparsions - opreations. - (simple2_operand_p): New function like simple_operand_p, but - allows some simple arithmetic as well. - - * jump.c (jump_optimize): Don't do branch elimination on single - insns setting ints larger than the word size. - - * invoke.texi: Update documentation. - -Wed Mar 3 19:09:11 1999 Jim Wilson <wilson@cygnus.com> - - * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, - MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef. - (INIT_SUBTARGET_OPTABS): Define to empty. - * sparc/liteelf.h (LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE, - STDC_0_IN_SYSTEM_HEADERS, MULDI3_LIBCALL, DIVDI3_LIBCALL, - UDIV3_LIBCALL, MODDI3_LIBCALL, UMODDI3_LIBCALL): Delete. - * sparc/sp86x-elf.h: Likewise. - -Mon Mar 1 19:09:32 1999 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (CROSS_FLOAT_H): Delete. - (FLOAT_H): Use float_h_file. - (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency. - (gfloat.h): Delete. - (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h. - (mostlyclean): Delete gloat.h reference. - (install-cross-rest, install-float-h-cross, stmp-headers): Update - comments. - * configure.in (sparcv9-*-solaris2*): Set float_format to none. - (sparc-*-solaris2*): Set float_format to none for 2.5 and higher. - (float_h_file): Set from float_format. Substitute into Makefile.in. - (float_format): No longer substitute into Makefile.in. - * cross-make (FLOAT_H): Delete. - * config/mips/t-cross64 (FLOAT_H): Delete. - * configure: Rebuilt. - -Wed Mar 3 20:02:21 1999 Jim Wilson <wilson@cygnus.com> - - * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef. - (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string. - -Fri Feb 26 12:53:00 1999 Jim Wilson <wilson@cygnus.com> - - * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving - from HI/LO/HILO/MD into general registers the same as for one - of moving general registers to HI/LO/HILO/MD. - -Tue Mar 2 09:24:10 1999 Nick Clifton <nickc@cygnus.com> - - * configure.in (gxx_include_dir): Rename to - gcc_gxx_include_dir in order to prevent it being overridden by - a top level Makefile. - (gcc_tooldir): If $exec_prefix != $prefix then use the - difference between the two as the basis for gcc_tooldir. - (dollar): Define. - - * configure: Rebuild. - - * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir. - Add subsitution for dollar. - -Mon Mar 1 15:03:51 1999 Jim Wilson <wilson@cygnus.com> - - * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs. Fix comments. - * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of - HImode reg when TARGET_5200. - -Fri Feb 26 14:52:21 1999 Catherine Moore <clm@cygnus.com> - - * toplev.c (compile_file): Disable -ffunction-sections and - debugging warning if the object format is elf. - -Sat Feb 20 16:19:55 1999 Andrew Cagney <cagney@b1.cygnus.com> - - * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 && - frame_pointer_needed adjust frame size. - (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted - in .frame pseudo-op. - Frm Jim Wilson <wilson@cygnus.com>: - * mips.c (function_prologue): Adjust frame size in .frame pseudo-op - when TARGET_MIPS16 && frame_pointer_needed. - -1999-03-01 Brendan Kehoe <brendan@cygnus.com> - - Sat Jan 30 08:27:23 1999 Jeffrey A Law (law@cygnus.com) - - * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to - function definition. - (aliases_everything_p, write_dependence_p):Likewise. - -1999-02-25 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c: Check ANSI_PROTOTYPES instead of __STDC__. - -1999-02-23 Jason Merrill <jason@yorick.cygnus.com> - - * errfn.c: Change varargs code to look like toplev.c. - -Thu Feb 23 15:20:49 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (is_sfunc): New attribute. - * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it. - -Thu Feb 11 17:51:24 1999 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (movdf_hardfloat32): Add support for non-offsetable - LO_SUMs in addition to register+register addresses. - -1999-02-18 Vladimir Makarov <vmakarov@loony.cygnus.com> - - * configure.in (i[34567]86-*-linux-gnu*, - i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, - i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as - fixincludes. - - * configure: Rebuilt. - - * fixinc.x86-linux-gnu: New script for fixing asm-statements bug - on x86 linux. - - * fixinc/fixinc.x86-linux-gnu: Copy of the previous one. - - * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*, - i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, - i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as - fixincludes. - -Wed Feb 17 13:27:24 1999 Jim Wilson <wilson@cygnus.com> - - * m68k/crt0.S (start): Use jpbl not jmi in coldfire code. - -Thu Feb 18 15:52:49 1999 Jim Wilson <wilson@cygnus.com> - - * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support. - -Fri Feb 12 13:06:28 1999 Jim Wilson <wilson@cygnus.com> - - * stmt.c (expand_return): Return if optimize_tail_recursion succeeded. - (optimize_tail_recursion): Change return type from void to int. - Add return statements. - * tree.h (optimize_tail_recursion): Change prototype to match. - -Sun Feb 14 09:24:27 1999 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (iorsi3_internal3): Emit `#' for case where operand3 - is not CR0 so it is properly split. - -Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) - - * reload.c (find_reloads_address_1): Fix handling of an autoincremented - pseudo which is homed in the stack. - -Tue Feb 16 23:57:17 1999 Jeffrey A Law (law@cygnus.com) - - * mn10300.igen (retf): Fix return address computation and store - the new pc value into nia. - -Wed Feb 10 10:09:41 1999 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (bset, bclr): Operand 0 is a read/write operand. - -Fri Feb 12 00:51:26 1999 Jeffrey A Law (law@cygnus.com) - - * mips.c (save_restore_insns): Fix loop to save/restore FP registers. - (compute_frame_size): Change loop over FP regs to be consistent - with the loop in save_restore_insns. - -Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) - - * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle - extending a CONST_INT. - - * h8300.md (peephole for combining memrefs): Delete incorrect peephole. - -Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.md (ashldi_const): Disable for !TARGET_5200. Fix indention. - (ashldi3 expander): Similarly. Update comments. - -Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) - - * calls.c (store_one_arg): Mark any slots used for the argument - as in-use immediately after we're done saving any slots which - will be overwritten by this argument. - - -Wed Feb 10 13:30:18 1999 Dave Brolley <brolley@cygnus.com> - - * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0. - -Fri Feb 12 18:29:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset): - New functions. - (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset. - -Fri Feb 12 19:22:41 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * loop.c (strength_reduce): Disable the latest loop optimizations. - - * loop.c (find_life_end): Wrap parameters in forward definition by - missed PROTO. - -1999-02-08 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.md: Enforce TARGET_LONG_CALLS option. - * config/v850/v850.c (construct_restore_jr, construct_save_jarl): - Enforce TARGET_LONG_CALLS option. - -Sat Feb 6 11:04:08 1999 Jim Wilson <wilson@cygnus.com> - - * unroll.c (find_splittable_givs): After express_from, call replace_rtx - to convert dest_reg to new_reg. - -Wed Feb 10 10:09:41 1999 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_combine_note_store): Second argument is no - longer unused/ignored. Handle multi-register hard regs. - (move2add_note_store): Simplify. - -Sat Feb 6 10:31:35 1999 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_combine_note_store): Be more careful with - STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT. - (move2add_note_store): Likewise. - - -Sat Feb 6 18:14:46 1999 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (reload_insi): Do not earlyclobber the output operand. - -1999-02-05 Michael Meissner <meissner@cygnus.com> - - * loop.c (check_dbra_loop): A store using an address giv for which - we have no life information is not reversible. - -Fri Feb 5 17:08:01 1999 Dave Brolley <brolley@cygnus.com> - - * function.c (fixup_var_refs): Scan catch_clauses too. - -Fri Feb 5 11:33:49 1999 Benjamin Kosnik <bkoz@loony.cygnus.com> - - * c-common.c (decl_attributes): Fix reserved space for init_priority. - * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro. - -Fri Feb 5 12:37:05 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Clear not_every_iteration when - passing the NOTE_INSN_LOOP_CONT note. - - * haifa-sched.c (add_dependence): Do not add a dependency on a - note. - -Fri Feb 5 10:52:58 1999 Nick Clifton <nickc@cygnus.com> - - * recog.c (split_block_insns): Only call update_flow_info if - instruction scheduling is enabled. - -Fri Feb 5 07:09:29 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (first_loop_store_insn): New file-scope variable. - (prescan_loop): Set it. - (check_dbra_loop): Check if a store depends on a register - that is set after the store. - -Fri Feb 5 06:55:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * unroll.c (entire file): Remove tabs / spaces at end of lines. - Replace spaces with tabs where appropriate. - -Thu Feb 4 15:12:41 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (scan_loop): New argument loop_cont. Changed caller. - (strength_reduce): New argument loop_cont. Changed caller. - Before clearing not_every_iteration after a label, check if - we are not already past LOOP_CONT. - -Wed Feb 3 20:44:59 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.h (express_from): Declare. - (struct induction): Replace derived flag with derived_from pointer. - * loop.c (strength_reduce, record_giv, recombine_givs): Likewise. - (express_from): No longer static. - * unroll.c (find_splittable_givs): Replace derived with derived_from. - When processing an address giv with which another giv has been - combined that has also been derived from a third giv, handle like - having combined with the third giv. - Set splittable_regs_updates appropriately for derived givs. - -Wed Feb 3 11:56:23 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (insn_sets_and_refs_are_delayed): New function. - * pa.h (INSN_SETS_ARE_DELAYED): Use it. - (INSN_REFERENCES_ARE_DELAYED): Likewise. - -Tue Feb 2 22:42:51 1999 Jim Wilson <wilson@cygnus.com> - - * Makefile.in: Change all uses of AR to AR_FOR_TARGET. Change all uses - of HOST_AR to AR. Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST. - (RANLIB_TEST): Test to see if ranlib exists. Only test absolute file - names if host == target. - (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete. - (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS. - (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules - setting them to *_FOR_TARGET. - * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): - Delete. - -Fri Jan 29 21:00:56 1999 Bob Manson <manson@charmed.cygnus.com> - - * resource.c, resource.h: New files. - * Makefile.in (OBJS): Add it. - - * haifa-sched.c (regno_use_in): Moved to rtlanal.c. - (split_block_insns): Moved to recog.c. - (update_flow_info): Make public. - * rtl.h: Declare them. - - * reorg.c: Moved the functions dealing with computing resource - usage to resource.c. - - * sched.c (regno_use_in): Moved to rtlanal.c. - (update_flow_info): Make public. - (schedule_insns): Use split_block_insns. - - * recog.c (split_block_insns): New function. - -Tue Feb 2 20:26:23 1999 Stan Cox <scox@cygnus.com> - - * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x synonym. - -Tue Feb 2 20:24:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (loop_optimize): Fix value max_uid_for_loop is reset - to after find_and_verify_loops call. - -Tue Feb 2 19:48:29 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * (recombine_givs): Don't use a giv that's likely to be dead to - derive others. - - * loop.c (recombine_givs): Fix test for lifetime overlaps / loop - wrap around when deriving givs. - -Mon Feb 1 11:29:49 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/tpe.h (WCHAR_TYPE): Define to 'unsigend short'. - (WCHAR_TYPE_SIZE): Define to 16. - -1999-01-30 Jim Blandy <jimb@zwingli.cygnus.com> - - * configure: For PowerPC configurations, accept "401", "ec603e", - "740", and "750" as valid arguments to --with-cpu. They're - supported in config/rs6000/rs6000.c, but were missing from this - list. - -Sat Jan 30 08:27:23 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (parallel shift and shiftadd): Mark output of shift as an - earlyclobber. - -Sat Jan 30 03:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (strength_reduce): Size reg_map according to reg_iv_type. - -Fri Jan 29 22:34:41 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (recombine_givs): Don't try to derive givs that have combined. - -Fri Jan 29 15:52:07 1999 Dave Brolley <brolley@cygnus.com> - - * emit-rtl.c (remove_insn): New function. - * rtl.h (remove_insn): Add prototype. - * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn. - -Fri Jan 29 15:44:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning - forward from cont dominator. - -Fri Jan 29 00:14:55 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (strength_reduce): Grow set_in_loop / n_times_set / - may_not_optimize to proper size when converting biv increments - into givs. - If necessary, reallocate reg_iv_type / reg_iv_info before calling - recombine_givs. - -Thu Jan 28 23:24:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (recombine_givs): New parameter unroll_p. If set, don't - generate complex adds. Changed caller. - Don't generate adds that cost more than the original one. - (strength_reduce): Warning fixes. - -Wed Jan 27 23:39:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (insn_first_p): Declare. - * rtlanal.c (insn_first_p): New function. - * loop.h (varray.h): Include. - (struct induction): Change combined_with to unsigned. - New members derived, ix and last_use. - (reg_iv_type, reg_iv_info): Now varray_type. All references changed. - (REG_IV_TYPE, REG_IV_INFO): Define. - (first_increment_giv, last_increment_giv): Declare. - * loop.c (loop_number_loop_cont): New static variable. - (loop_number_cont_dominator): Likewise. - (reg_iv_type, reg_iv_info): Now varray_type. - (first_increment_giv, last_increment_giv): New variables. - (compute_luids, verify_dominator, find_life_end): New functions. - (cmp_recombine_givs_stats, recombine_givs): Likewise. - (loop_optimize): Allocate loop_number_loop_cont and - loop_number_cont_dominator. Use compute_luids. - (find_and_verify_loops): Initialize loop_number_loop_cont and - loop_number_cont_dominator. - (strength_reduce): Try to find bivs that can be expressed as givs - of another biv, and to convert biv increments into givs. - Call recombine_givs. Handle derived givs. - (record_biv): New argument location. All callers changed. - (record_giv): Initialize derived and last_use fields. - (basic_induction_var): New argument location. All callers changed. - (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv. - Increment combined_with instead of setting to 1. - * unroll.c (derived_regs): New static variable. - (unroll_loop): Initialize it. - Allocate local_regno according to max_reg_num. - (copy_loop_body): Cope with derived givs. - (find_splittable_givs): Check for Givs made from biv increments. - Set derived_regs for givs. - * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h . - -Wed Jan 27 19:31:36 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * function.c (purge_addressof_1): Handle case when a register - has been used in a wider mode. - -Tue Jan 26 12:45:55 1999 Jim Wilson <wilson@cygnus.com> - - * function.c (expand_function_end): Pass arg_pointer_save_area to - validize_mem before using it. Emit code into a sequence. - -Sun Jan 24 20:13:45 1999 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (left shift + set cr patterns): Add missing '#' to - split patterns. - (move register + set cr pattern): Ditto. - (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch, - inadvertently deleted. - -Sun Jan 24 08:07:59 1999 Jeffrey A Law (law@cygnus.com) - - * stmt.c (stmt_loop_nest_empty): New function. - * tree.h (stmt_loop_nest_empty): Declare it. - * rtl.def (CALL_PLACEHOLDER): New rtx code. - -Sat Jan 23 01:37:36 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (gcc_tooldir): Handle case where exec_prefix has - not been explicitly set. - * configure: Rebuilt. - - * configure.in (gcc_tooldir): When not making a relative gcc_tooldir, - use $exec_prefix/$target_alias for gcc_tooldir. - * configure: Rebuilt. - -Fri Jan 22 11:48:56 1999 Richard Henderson <rth@cygnus.com> - - * cppp.c (xrealloc): Fix typo last change. - * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise. - * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise. - * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. - -1999-01-22 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (CR0_REGNO_P): New macro to test if cr0. - (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0. - (PREDICATE_CODES): Add cc_reg_not_cr0_operand. - (cc_reg_not_cr0_operand): Add declaration. - - * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a - pseudo register, or a control register that is not CR0. - - * rs6000.md (all combiner patterns building . instructions): For - all `.' instructions that do something and set cr0, add an - alternative that does the operation, and then sets a different - flag, in order to avoid using the costly mcrf instruction and also - allow cr0 to be clobbered in asm statements. Also fix a few - patterns that used the wrong register. - -Fri Jan 22 10:42:06 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of - the macros. - -Fri Jan 22 07:43:01 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (gcc_tooldir): Move before first reference. - Let autoconf substitute in a value. - * configure.in (gcc_tooldir): Only use a relative path to the - tool directory if $exec_prefix == $prefix. - * configure: Rebuilt. - - * Makefile.in (tooldir): Replace with gcc_tooldir. - -Thu Jan 21 21:53:36 1999 Richard Henderson <rth@cygnus.com> - - * emit-rtl.c (try_split): Don't try to split non-instructions. - -Thu Jan 21 20:24:02 1999 Richard Henderson <rth@cygnus.com> - - * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept - transformations that we have performed earlier. - * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. - - * alpha.md (prologue_stack_probe_loop): Don't do our own label - handling, call gen_label_rtx instead. - -Thu Jan 21 17:45:18 1999 Richard Henderson <rth@cygnus.com> - - * cccp.c (xrealloc): Call malloc given a NULL old pointer. - * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise. - * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. - * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise. - * genrecog.c, mips-tfile.c, protoize.c: Likewise. - -Thu Jan 21 15:48:03 1999 Dave Brolley <brolley@cygnus.com> - - * cppexp.c (cpp_lex): Allocate token_buffer dynamically. - -1999-01-21 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Remove labels - `CYGNUS LOCAL i960-80bit'. - * emit-rtl.c (operand_subword) : Ditto - * stor-layout.c (layout_type): Ditto. - * varasm.c (output_constant_pool): Ditto. - -Thu Jan 21 14:18:04 EST 1999 Andrew MacLeod <amacleod@cygnus.com> - - * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use - move_by_pieces. - (MOVE_MAX_PIECES): Define maximum number of bytes to move at once. - (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults. - (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults. - (move_by_pieces): Use new macros. - (emit_block_move): Use new macros. - (clear_by_pieces): Use new macros. - (clear_storage): Use new macros. - (emit_push_insn): Use new macros. - (expand_expr): Use new macros. - * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): - Define. - (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define. - (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE. - (MOVE_MAX_PIECES): move 8 bytes on SH4. - * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT, - USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, - USE_STORE_PRE_DECREMENT): Describe new macros. - -Thu Jan 21 09:38:04 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (arm_gen_store_multiple): Fix typo in recent - update. - -Wed Jan 20 18:15:08 1999 Dave Brolley <brolley@cygnus.com> - - * function.c (assign_parms): Save and restore setting of - TREE_USED (parm). - -Wed Jan 20 12:51:42 1999 Mark Mitchell <mark@markmitchell.com> - - * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout. - Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate. - -Tue Jan 19 21:20:52 1999 Richard Henderson <rth@cygnus.com> - - * recog.c (pop_operand): New function. - * recog.h (pop_operand): Declare it. - * genrecog.c (preds): Define it. - - * expr.c (do_jump_for_compare): Handle conditional branch expanders - emitting multiple jump instructions. - * jump.c (condjump_label): New function. - * rtl.h (condjump_label): Declare it. - -Tue Jan 19 21:08:20 1999 Richard Henderson <rth@cygnus.com> - - * expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit - clobber during or after reload. - -Tue Jan 19 16:56:03 1999 Richard Henderson <rth@cygnus.com> - - * genoutput.c (name_for_index): New function. - (scan_operands, validate_insn_alternatives): Use it. - * genrecog.c (insn_name_ptr_size): New variable. - (make_insn_sequence): Fill in insn_name_ptr. - (merge_trees): Use it. - -Tue Jan 19 16:37:36 1999 Richard Henderson <rth@cygnus.com> - - * i386/isc.h (TARGET_DEFAULT): Define symbolicly. - * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise. - * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise. - -Tue Jan 19 15:00:10 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (NUM_STORES): Delete. - (loop_store_mems): Turn into an EXPR_LIST of MEMs. - (prescan_loop): Properly initialize loop_mems_idx. - (note_addr_stored): Simplify using list structure instead of - fixed sized array. - (invariant_p, check_dbra_loop, load_mems): Similarly. - - * flow.c (invalidate_from_autoinc): New function. - (mark_set_1, mark_used_regs): Use it. - - * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile. - -Tue Jan 19 11:54:04 1999 Jason Merrill <jason@yorick.cygnus.com> - - * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by - invisible reference. - -1999-01-19 Vladimir N. Makarov <vmakarov@cygnus.com> - - * invoke.texi (-mlong-double-64): New option description. - -1999-01-19 Jim Wilson <wilson@cygnus.com> - - * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to - LIBGCC2_LONG_DOUBLE_TYPE_SIZE. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. Set to LONG_DOUBLE_TYPE_SIZE - if not defined. - * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics. - (CPP_SPECS): Add -mlong-double-64 support. - (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New. - (TARGET_SWITCHES): Add -mlong-double-64 support. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. - * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float. - (CPP_SPECS): Add -mlong-double-64 support. - * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64. - (MULTILIB_DIRNAMES): Add ld64. - * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise. - -Tue Jan 19 10:24:53 1999 Mark Mitchell <mark@markmitchell.com> - - * rtl.h (rtx_def): Update documentation. - (MEM_IN_STRUCT_P): Likewise. - (MEM_SCALAR_P): New macro. - (MEM_COPY_ATTRIBUTES): Likewise. - (MEM_SET_IN_STRUCT_P): Likewise. - * rtl.texi (MEM_SCALAR_P): Document. - * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES. - (fixed_scalar_and_varying_struct_p): New function. Use - MEM_SCALAR_P rather than !MEM_IN_STRUCT_P. - (aliases_everything_p): Likewise. - (true_dependence): Use them. - (write_dependence_p): New function, containing code common to - anti_dependence and output_dependence. - (anti_dependence): Use it. - (output_dependence): Likewise. - * calls.c (save_fixed_argument_area): Don't clear - MEM_IN_STRUCT_P. - (expand_call): Use MEM_SET_IN_STRUCT_P. - (emit_library_call): Don't clear MEM_IN_STRUCT_P. - (emit_library_call_value): Likewise. - (store_one_arg): Use MEM_SET_IN_STRUCT_P. - * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES. - (make_extraction): Likewise. - (simplify_shift_const): Likewise. - (gen_lowpart_for_combine): Likewise. - * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES. - * emit-rtl.c (operand_subword): Likewise. - (change_address): Likewise. - * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES. - * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES. - (emit_group_store): Use MEM_SET_IN_STRUCT_P. - (copy_blkmode_from_reg): Likewise. - (store_field): Likewise. - (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P - heuristically. Use MEM_SET_IN_STRUCT_P. - (get_memory_rtx): Likewise. - * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES. - * function.c (assign_stack_temp): Clear MEM_SCALAR_P and - MEM_ALIAS_SET on newly returned MEMs. - (assign_temp): Use MEM_SET_IN_STRUCT_P. - (put_reg_into_stack): Likewise. - (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES. - (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P. - (assign_parms): Likewise. - (expand_function): Likewise. - * integrate.c (expand_inline_function): Likewise. - (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES. - * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P. - * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES. - * print-rtl.c (print_rtx): Print /f for frame_related. - * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES. - * reload1.c (reload): Copy MEM_SCALAR_P as well. - * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P. - (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES. - * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P. - (output_constant_def): Likewise. - * a29k.c (a29k_set_memflags_1): Take scalar_p. - Set MEM_SCALAR_P. - (a29k_set_memflags): Use it. - * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES. - * c4x.c (c4x_scan_for_ld): Likewise. - * h8300.c (fix_bit_operand): Likewise. - * m88k.c (legitimize_address): Likewise. - (block_move_loop): Likewise. - (block_move_no_loop): Likewise. - (block_move_sequence): Likewise. - (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. - * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise. - * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES. - * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. - * arm.h (arm_gen_load_multiple): Take scalar_p. - (arm_store_load_multiple): Likewise. - * arm.c (arm_gen_load_multiple): Likewise. - (arm_gen_store_multiple): Likewise. - (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P. -Tue Jan 19 06:26:30 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (cccp.o, cpplib.o): Depend on Makefile. - -Mon Jan 18 03:52:56 1999 Christian Bruel <Christian.Bruel@st.com> - Jeffrey A Law (law@cygnus.com) - - * flow.c (last_mem_set): Delete variable. References removed. - (mem_set_list): New variable. - (life_analysis): Initialize and finalize alias analysis. - (propagate_block); Initialize mem_set_list. Clear for CALL_INSNs. - (insn_dead_p): For a store to memory, search the entire mem_set_list - for a match. - (mark_set_1): Kill entries on the mem_set_list for aliased writes or - changes to their addresses. Add new entries to the mem_set_list for - memory writes writes. - (mark_used_regs): Kill entries on the mem_set_list which may be - referenced by a load operation. - -Mon Jan 18 01:01:02 1999 Jeffrey A Law (law@cygnus.com) - - * alias.c (base_alias_check): Add missing return for differing - symbols case. - -Sun Jan 17 19:23:20 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (cppulp.o): Add dependencies. - - * i386.md (integer conditional moves): Add missing earlyclobbers. - - * regmove.c (optimize_reg_copy_1): Undo Aug 18 change. Update - REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change - where a register is live. - -Sat Jan 16 15:13:46 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (shadd): Create shadd insns, even if the result of the shift is - needed without the addition. - -Sat Jan 16 10:48:16 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage. - -Fri Jan 15 17:43:59 1999 Jeffrey A. Law <law@rtl.cygnus.com> - - * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create - (mem (lo_sum (...)) for TFmode unless TARGET_V9. - -Thu Jan 14 22:38:41 1999 Jeffrey A Law (law@cygnus.com) - - * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf. - - * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid - generating non-canonical rtl. - -1999-01-14 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/i960/i960.c (i960_output_move_double_zero, - i960_output_move_quad_zero): New functions for moving zeros. - (i960_output_move_double, i960_output_move_quad): Additional code - for situation when moving unaligned register group. - - * config/i960/i960.h (i960_output_move_double_zero, - i960_output_move_quad_zero): The function definitions. - - * config/i960/i960.md (movdi+1, movti+1): Usage of the functions. - -1999-01-13 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/i960/i960.c (i960_function_prologue): New code (optimal - solution) for saving global registers in local registers. - (form_reg_groups, reg_group_compare, split_reg_group): New - functions used by the code. - (reg_group): New structure definition for the new code. - -Wed Jan 13 13:28:22 1999 Catherine Moore <clm@cygnus.com> - - * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN - before generating a call to abort for volatile functions. - * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. - (TARGET_ABORT_NORETURN): Define. - (abort-on-noreturn): New option. - -Wed Jan 13 00:59:04 1999 Jeffrey A Law (law@cygnus.com) - - * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when - generating code for TARGET_64BIT. - -Tue Jan 12 10:23:24 1999 Stan Cox <scox@cygnus.com> - - * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls. - -Tue Jan 12 02:36:10 PST 1999 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Jan 12 01:30:19 1999 Richard Henderson <rth@cygnus.com> - - * rtl.c (rtx_alloc): Use memset instead of inline loop. - - * recog.h (recog_op_alt): Declare extern. - -Tue Jan 12 00:23:31 1999 Richard Henderson <rth@cygnus.com> - - * function.c (purge_addressof_1): If the note accesses a mem+addressof - in a wider mode than any replacement, adjust the cached replacement. - Cache trivial substitutions as well. - -Tue Jan 12 00:06:00 1999 Richard Henderson <rth@cygnus.com> - - * Makefile.in (OBJECTS): Add sbitmap.o. - (BASIC_BLOCK_H): Add sbitmap.h. - * basic-block.h: Move simple bitmap code to sbitmap.h. - * flow.c: Move simple bitmap code to sbitmap.c - * sbitmap.h, sbitmap.c: New files. - -Mon Jan 11 23:51:50 1999 Richard Henderson <rth@cygnus.com> - - * alpha.h (TARGET_SWITCHES): Document switches. - (TARGET_OPTIONS): Likewise. - - * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC. - -Mon Jan 11 22:54:14 1999 Richard Henderson <rth@cygnus.com> - - * tree.c (new_alias_set): Return zero if !flag_strict_aliasing. - -Mon Jan 11 22:36:01 1999 Richard Henderson <rth@cygnus.com> - - * basic-block.h (basic_block_head): Rename to x_basic_block_head. - (basic_block_end): Rename to x_basic_block_end. - (BLOCK_HEAD, BLOCK_END): Update. - - * caller-save.c: Change basic_block_head/end references to - BLOCK_HEAD/END. - * combine.c, flow.c, function.c, gcse.c, global.c: Likewise. - * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise. - * regmove.c, reload1.c, reorg.c, sched.c: Likewise. - -Thu Jan 11 18:37:50 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * invoke.texi (-mcpu=740, -mcpu=750): New options. - (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 & - PPC750. - -1999-01-11 Michael Meissner <meissner@cygnus.com> - - * config/rs6000/rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all - machines supported with -mcpu=xxx. - (processor_type): Add PROCESSOR_PPC750. - (ADJUST_PRIORITY): Call rs6000_adjust_priority. - (RTX_COSTS): Supply costs for 750 multiply/divide operations. - (rs6000_adjust_priority): Add declaration. - - * config/rs6000/rs6000.c (rs6000_override_options): - -mcpu={750,740} now sets the processor type as 750, not 603. - Allow -mmultiple and -mstring on little endian 750 systems. - (rs6000_adjust_priority): Stub for now. - (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle. - - * config/rs6000/rs6000.md (function/cpu attributes): Add initial - ppc750 support. - - * config/rs6000/sysv4.h (STRICT_ALIGNMENT): Don't force strict - alignment if little endian. - (CC1_SPEC): Pass -mstrict-align if little endian, and not - overridden. - (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs. - (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs. - - * config/rs6000/{sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): - Override, default is little endian. - - * config/rs6000/t-ppcgas (MULTILIB_*): Delete obsolete Solaris - multilibs. - -Sat Jan 9 23:54:09 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gcc.c (xstrerror): Renamed from my_strerror. All callers - changed. Remove prototype since we get that from libiberty.h. - - * protoize.c (xstrerror): Likewise. - -Sat Jan 9 23:22:04 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gcc.c (read_specs): Ensure format specifiers match their arguments. - -Sat Jan 9 20:04:24 1999 Richard Henderson <rth@cygnus.com> - - * tree.c (copy_node): Oops. That would be copy not zero - in that last change. - -Sun Jan 10 15:35:41 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c: Include system.h. - (c4x_caller_save_map): Disable caller save for RC. - (c4x_optimization_options): Disable scheduling before reload. - (valid_parallel_load_store) : Define return type as int. - Remove unused variable regs. - * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register - class. - * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to - handle rotations. - (*db, decrement_and_branch_until_zero): Fix up constraints - to keep reload happy. - -Sat Jan 9 18:35:29 1999 Richard Henderson <rth@cygnus.com> - - * tree.c (make_node): Call bzero instead of inline clear. - (copy_node, make_tree_vec, build1): Likewise. - (get_identifier): Call strlen instead of inline count. - (maybe_get_identifier): Likewise. - -Sun Jan 10 14:04:51 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc - operations in 3rd annulled delay slot. - (*lshrqi3_const_set): Disallow c constraint for operand0. - (modhi3+1, modhi3+2): Set attribute type to multi. - * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of - != operator. - -Sat Jan 9 11:44:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gansidecl.h: Allow attribute unused on labels only when we are - version 2.93 or higher. Not all versions of 2.92 have this feature. - - * version.c: Bump minor number to 93. - -Fri Jan 8 10:51:13 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * config/m68k/m68k.h: Declare output_function_epilogue. - * recog.h: Declare next_insn_tests_no_inequality. - -Fri Jan 8 01:43:53 1999 Jeffrey A Law (law@cygnus.com) - - * stmt.c (optimize_tail_recursion): New function, extracted from ... - (expand_return): Use optimize_tail_recursion. - * tree.h (optimize_tail_recursion): Declare. - - * toplev.c (compile_file): Move call to output_func_start_profiler - to after the loop to emit deferred functions. - -Thu Jan 7 19:52:53 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> - - * system.h (abort): Supply more detailed information on how to - report an Internal Compiler Error. - -Thu Jan 7 11:26:17 1999 Mark Mitchell <mark@markmitchell.com> - - * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to - allocate memory that will live beyond this function. - (expand_call): Free it here. - -Thu Jan 7 03:08:17 1999 Richard Henderson <rth@cygnus.com> - - * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for - integer data not destined for fp regs. - (LEGITIMIZE_RELOAD_ADDRESS): New. - -Thu Jan 7 03:03:42 1999 Stan Cox <scox@cygnus.com> - Richard Henderson <rth@cygnus.com> - - Support for Hypersparc and Sparclite86x: - * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New. - (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets. - (ASM_CPU32_DEFAULT_SPEC): Likewise. - (TARGET_CPU_DEFAULT): Likewise. - (enum processor_type): Likewise. - (CPP_ENDIAN_SPEC): Handle little endian data. - (LIBGCC2_WORDS_BIG_ENDIAN): Likewise. - (ADJUST_COST): Call sparc_adjust_cost. - * sparc.c (sparc_override_options): Fix up for the new targets. - (supersparc_adjust_cost): Make static. - (hypersparc_adjust_cost): New. - (ultrasparc_adjust_cost): Make static. - (sparc_adjust_cost): New. - * sparc.md (attr cpu): Add hypersparc and sparclite86x. - (function_unit): Add hypersparc scheduling rules. - - * configure.in (with_cpu handler): Recognize hypersparc. - -Thu Jan 7 23:54:05 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c: Added space after negation operator. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. - -Thu Jan 7 23:39:27 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class. - -Thu Jan 7 00:29:25 199 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases, - when a test can't be performed due to limited width of - HOST_BITS_PER_WIDE_INT, use the more conservative approximation. - Fix UDIV case for cases where the first operand has the highest bit - set. - -Thu Jan 7 00:01:38 1999 Lutz Vieweg <lkv@mania.robin.de> - - * pa.h (reg_class): Add FPUPPER_REGS. - (REG_CLASS_NAMES): Similarly. - (REG_CLASS_CONTENTS): Similarly - (REGNO_REG_CLASS): Handle FPUPPER_REGS. - (FP_REG_CLASS_P): Likewise. - (REG_CLASS_FROM_LETTER): Similarly. - (CLASS_MAX_NREGS): Similarly. - -1999-01-06 Brendan Kehoe <brendan@cygnus.com> - - * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h - for a typedef of bool. Make sure to have a copy of the file is - in place before we look to fix it. Fix typo in variable name to - FILE. - -Wed Jan 6 07:51:05 1999 Richard Henderson <rth@cygnus.com> - - * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use - value_mode for the return mode. - -Wed Jan 6 17:55:19 1999 Robert Lipe <robertlipe@usa.net> - - * configure.in: New flag --with-dwarf2. If set, enables DWARF-2 - debugging as default. - - * config/tm-dwarf2.h: New file. - -Wed Jan 6 16:08:54 1999 Jeffrey A Law (law@cygnus.com) - - * h8300.h (ASM_OUTPUT_LABELREF): Define. - - * pa.h (DONT_RECORD_EQUIVALENCE): Kill. - * local-alloc.c (update_equiv_regs): Corresponding changes. - * tm.texi (DONT_RECORD_EQUIVALENCE): Kill. - - * calls.c (special_function_p): Push alloca test inside the large - conditional which excludes functions not at file scope or not - extern. - - * calls.c (special_function_p): New function broken out of - expand_call. - (precompute_register_parameters): Likewise. - (store_one_arg): Likewise. - (store_unaligned_argumetns_into_pseudos): Likewise. - (save_fixed_argument_area): Likewise. - (restore_fixed_argument_area): Likewise. - (expand_call): Corresponding changes. - -Wed Jan 6 10:43:29 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX - handling. - (const_sint32_operand): Likewise. - -Wed Jan 6 09:44:51 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * toplev.h: In addition to checking _JBLEN, also check if `setjmp' - is a macro when deciding if we can use `jmp_buf' in prototypes. - -Thu Jan 7 00:12:24 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (addqi3): If the destination operand is - a hard register other than an extended precision register, - emit addqi3_noclobber. - (*addqi3_noclobber_reload): New pattern added so that reload - will recognise a store of a pseudo, equivalent to the sum - of the frame pointer and a constant, as an add insn. - -Wed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. - - * configure.in (pc-msdosdjgpp): Set x_make to x-go32. - * configure: Rebuilt. - * i386/xm-go32.h: Define LIBSTDCXX. - * i386/x-go32: New. - * i386/go32.h (MD_EXEC_PREFIX): Define. - (FILE_NAME_ABSOLUTE_P): Define. - (LINK_COMMAND_SPEC): Define. - -Wed Jan 6 02:23:36 1999 "Charles M. Hannum" <root@ihack.net> - - * expr.c (store_expr): If the lhs is a memory location pointed - to be a postincremented (or postdecremented) pointer, always - force the rhs to be evaluated into a pseudo. - -Wed Jan 6 00:54:21 1999 Geoff Keating <geoffk@ozemail.com.au> - - * real.c (mtherr): Print more reasonable warning messages. - -Tue Jan 5 21:57:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h. - - * cccp.c: Include prefix.h, don't prototype prefix.c functions. - (new_include_prefix): Constify char* parameters. - - * cppfiles.c (read_name_map): Likewise. - (append_include_chain): Likewise. Also, use a writable char* copy - of parameter `dir' which we then modify, rather than using the - parameter itself to store the new writable string. - (remap_filename): Constify some variables. Also, use a writable - char* to store an allocated string which we will be modifying. - - * cpplib.c: Include prefix.h, don't prototype prefix.c functions. - (cpp_start_read): Constify variable `str'. - - * cpplib.h (append_include_chain): Constify a char* parameter. - - * gcc.c Include prefix.h, don't prototype prefix.c functions. - (add_prefix, save_string): Constify char* parameters. - (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. - - * prefix.c: Include prefix.h. - (get_key_value, translate_name, save_string, update_path, - set_std_prefix): Constify various char* parameters and variables. - (save_string): Use xmalloc, not malloc. - (translate_name): Use a writable temporary variable to create and - modify a string before setting it to a const char*. - - * prefix.h: New file to prototype functions exported from prefix.c. - -Mon Jan 4 15:37:30 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c (skip_if_group): Split out the logic that handles - directive recognition to its own function. Don't use - parse markers; use a bare pointer into the buffer. Use - copy/skip_rest_of_line instead of doing it by hand. Remove - `return on any directive' mode which was never used, and take - only one argument. - (consider_directive_while_skipping): New function, subroutine - of skip_if_group. Logic streamlined a bit. - (conditional_skip, do_elif, do_else): Call skip_if_group with - only one argument. - -Mon Jan 4 15:27:30 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an - error. - -Mon Jan 4 11:55:51 1999 Jason Merrill <jason@yorick.cygnus.com> - - * extend.texi (Bound member functions): Document. - -Mon Jan 4 11:01:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string, - lang_to_string, type_to_string): Make return type const char*. - (print_symbol): Apply `const' keyword to a char*. - (print_file_desc): Cast structure member `crfd' to ulong when - comparing against one. - - * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*. - (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. - (progname, input_name): Apply `const' keyword to a char*. - Don't redundantly include sys/stat.h. - (alloc_info): Apply `const' keyword to a char*. - (st_to_string, sc_to_string): Likewise. - (hash_string): Cast variable `hash_string' to a symint_t when - comparing against one. - (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one. - Likewise cast it to long when comparing against one. - (add_local_symbol): Apply `const' keyword to a char*. - (add_ext_symbol): Likewise. - (add_unknown_tag): Likewise. - (add_procedure): Cast a printf-style field width to an int. - (add_file): Cast PAGE_USIZE to long when comparing against one - (parse_begin): Cast a printf-style field width to an int. - (parse_bend): Likewise. - (parse_def): Likewise. - (parse_end): Likewise. - (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED. - (parse_stabs_common): Fix format specifier. - (parse_input): Change type of variable `i' to Size_t. - (write_object): Fix arguments to match format specifiers. - Cast variable `num_write' to long when comparing against one. - (read_seek): Cast variable `sys_read' to symint_t when comparing - against one. Fix arguments to match format specifiers. Cast - variable `size' to long when comparing against one. - (copy_object): Cast result of `sizeof' to int when comparing - against one. Fix arguments to match format specifiers. Cast - variable `ifd' to long when comparing against a signed value. - Likewise, likewise. - -Mon Jan 4 10:30:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-common.c (decl_attributes): Allow applying attribute `unused' - on a LABEL_DECL. - - * c-parse.in (label): Parse attributes after a label, and call - `decl_attributes' to handle them. - - * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define. - - * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When - generating labels, mark them with ATTRIBUTE_UNUSED_LABEL. - - * invoke.texi: Note that labels can be marked `unused'. - -Sun Jan 3 23:32:18 PST 1999 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Jan 3 23:00:42 1999 Jeffrey A Law (law@cygnus.com) - - * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing - RTL for a compare/jump sequence. - -Sun Jan 3 22:58:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL - for a target with HAVE_cc0 defined. - (emit_cmp_and_jump_insns): New function. - * expr.h (emit_cmp_and_jump_insns): Prototype it. - * loop.c (check_dbra_loop): Use it to replace calls - to emit_cmp_insn and emit_jump_insn and to canonicalise - the comparison if necessary. - * unroll.c (unroll_loop): Likewise. - -Sun Jan 3 21:01:04 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - - * fixincludes (sys/utsname.h): Provide forward declaration of - struct utsname on Ultrix V4.[35]. - - * mips.md (div_trap): Use local labels instead of dot-relative - branches. - -Sun Jan 3 20:40:34 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (branch, negated branch): Handle (const_int 0) as first - source operand. - * pa.c (output_cbranch): Likewise. - -Sun Jan 3 03:20:38 1999 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (rs6000_stack_info): Undo spurious part of last - change. - -1999-01-01 Manfred Hollstein <manfred@s-direktnet.de> - - * extend.texi (__builtin_constant_p): Add missing @smallexample. - -Fri Jan 1 11:48:20 1999 Jeffrey A Law (law@cygnus.com) - - * i386.md (doubleword shifts): Fix dumb mistakes in previous change. - -Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) - - * m68k.md (adddi_dilshr32): Allow all operands to be registers too. - (adddi_dishl32): Similarly. - - * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers - for each insn in the skipped block. - - * reload1.c (reload_as_needed): Verify that the insn satisfies its - constraints after replacing a register address with an autoincrement - address for reload inheritance purposes. - - * i386.md (doubleword shifts): Avoid namespace pollution. - -Wed Dec 30 23:00:28 1998 David O'Brien <obrien@NUXI.com> - - * configure.in (FreeBSD ELF): Needs special crt files. - -Wed Dec 30 22:50:13 1998 Geoffrey Noer <noer@cygnus.com> - - * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash. - -1998-12-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * loop.c (check_dbra_loop): While reversing the loop, if the - comparison value has a VOID mode use the mode of the other operand - to compute the mask. - -Wed Dec 30 22:24:00 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.md ({save,restore}_stack_function): Take 2 operands to - avoid warnings in compiling explow.c. - - (patch from Ken Raeburn, raeburn@cygnus.com) - * rs6000.c (rs6000_stack_info): Force 8-byte alignment of - fpmem_offset. Compute total size after that, and then - rs6000_fpmem_offset using both values. - -Mon Dec 28 19:26:32 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> - - * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in - the future; indeed that already happens in some cases. - -Tue Dec 29 11:58:53 1998 Richard Henderson <rth@cygnus.com> - - * sparc.c (input_operand): Recognize (const (constant_p_rtx)). - (arith_operand): Remove constant_p_rtx handling. - (const64_operand, const64_high_operand): Likewise. - (arith11_operand, arith10_operand, arith_double_operand): Likewise. - (arith11_double_operand, arith10_double_operand, small_int): Likewise. - (small_int_or_double, uns_small_int, zero_operand): Likewise. - * sparc.h (PREDICATE_CODES): Likewise. - - * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. - -Tue Dec 29 11:32:54 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>: - - * rtl.def (CONSTANT_P_RTX): Clarify commentary. - * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to - consider constant CONSTRUCTOR constant and to defer some cases - to cse. - * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX. - * regclass.c (reg_scan_mark_refs, case CONST): Likewise. - -Tue Dec 29 11:30:10 1998 Richard Henderson <rth@cygnus.com> - - * expr.c (init_expr_once): Kill can_handle_constant_p recognition. - * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. - - * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling. - (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. - (sext_add_operand, and_operand, or_operand): Likewise. - (reg_or_cint_operand, some_operand, input_operand): Likewise. - * alpha.h (PREDICATE_CODES): Likewise. - -Sat Dec 26 23:26:26 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) - - * gengenrtl.c (gencode): Always use bzero to clear memory instead - of dangerous casts and stores. - - * Makefile.in (compare, gnucompare): Add missing else true clauses. - -Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) - - * alpha.md (builtin_longjmp): Add missing "DONE". - -Thu Dec 24 10:39:57 1998 Stan Cox <scox@cygnus.com> - - * gcc.c (execute): Enable -pipe with win32. - -Wed Dec 23 10:27:44 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/t-arm-elf: Add multiplib option for leading - underscores. - - * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable - 'user_label_prefix' rather than macro USER_LABEL_PREFIX. - - (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather - than variable 'reload_address_base_reg_class'. [Note this - change is unrelated to the others in this patch]. - - * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no - leading underscore. - -Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alias.c (record_alias_subset): Remove ignored `&'. - (init_alias_once): Likewise. - - * c-lex.c (UNGETC): Cast first argument of comma expression to void. - - * config/mips/mips.c (mips_asm_file_end): Cast the result of - fwrite to `int' when comparing against one. - - * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. - (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. - - * cse.c (rehash_using_reg): Change type of variable `i' to - unsigned int. - - * dwarf2out.c (initial_return_save): Cast -1 to unsigned before - assigning it to one. - - * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. - - * final.c (final_scan_insn): Likewise for variable `i'. - (output_asm_insn): Cast a char to unsigned char when used as an - array index. - - * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when - assigning it to one. - - * loop.c (strength_reduce): Remove unused variables `count' and `temp'. - - * recog.c (preprocess_constraints): Cast a char to unsigned char - when used as an array index. - - * regmove.c (find_matches): Likewise. - - * reload1.c (calculate_needs): Add default case in switch. - (eliminate_regs_in_insn): Initialize variable `offset'. - (set_offsets_for_label): Change type of variable `i' to unsigned. - (reload_as_needed): Wrap variable `i' in macro check on - AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. - - * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' - with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t - when comparing against one. - - * stor-layout.c (layout_decl): Cast maximum_field_alignment to - unsigned when comparing against one. Likewise for - GET_MODE_ALIGNMENT(). - (layout_record): Cast record_align to int when comparing against a - signed value. - (layout_type): Cast TYPE_ALIGN() to int when comparing against a - signed value. - - * tree.c (get_identifier): Cast variable `len' to unsigned when - comparing against one. - (maybe_get_identifier): Likewise - -Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): Do not set reload_completed. - * reload1.c (reload): Set reload_completed before calling - cleanup_subreg_operands. - -Tue Dec 22 23:58:31 1998 Richard Henderson <rth@cygnus.com> - - * reload1.c (emit_reload_insns): Check `set' not null before use. - -Tue Dec 22 15:15:45 1998 Nick Clifton <nickc@cygnus.com> - - * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to - 'int'. - -Tue Dec 22 13:55:44 1998 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - - * halfpic.c (half_pic_encode): Delete redundant code. - -Tue Dec 22 13:02:22 1998 Michael Meissner <meissner@cygnus.com> - - * toplev.c (main): Delete handling of -dM as a preprocessor - option. - -Mon Dec 21 17:39:38 1998 Michael Meissner <meissner@cygnus.com> - - * toplev.c (main): Don't emit any warnings when using -dD, -dM, or - -dI, which are handled by the preprocessor. - -Sun Dec 20 16:13:44 1998 John F. Carr <jfc@mit.edu> - - * configure.in: Handle Digital UNIX 5.x the same as 4.x. - * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". - -Sun Dec 20 07:39:52 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 19 22:24:22 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 19 21:41:32 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * genattr.c (fatal): Qualify a char* with the `const' keyword. - - * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set, - write_unit_name, write_eligible_delay, expand_units, - make_length_attrs, write_attr_case, find_attr, - make_internal_attr): Likewise. - * gencheck.c (tree_codes): Likewise. - * gencodes.c (fatal): Likewise. - * genconfig.c (fatal): Likewise. - * genemit.c (fatal): Likewise. - * genextract.c (fatal, walk_rtx, copystr): Likewise. - * genflags.c (fatal): Likewise. - * genopinit.c (fatal, optabs, gen_insn): Likewise. - * genoutput.c (fatal, error, predicates): Likewise. - * genpeep.c (fatal): Likewise. - * genrecog.c (fatal, decision, pred_table, add_to_sequence, - write_tree_1, write_tree, change_state, copystr, indents): Likewise. - -Thu Dec 17 18:21:49 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - - * configure.in (with-fast-fixincludes): Fix whitespace. - * configure: Rebuilt. - - * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific - asm() etc. function declarations in __DECC. - -Thu Dec 17 13:57:23 1998 Nick Clifton <nickc@cygnus.com> - - * expr.c (emit_move_insn_1): Only emit a clobber if the target - is a pseudo register. - -Thu Dec 17 13:50:29 1998 Nick Clifton <nickc@cygnus.com> - - * gcse.c: Include expr.h in order to get the prototype for - get_condition() which is used in delete_null_pointer_checks(). - -Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. - -Thu Dec 17 12:31:12 1998 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. - (ALL_CFLAGS): Delete SCHED_CFLAGS. - -1998-12-17 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of - ';'). - -1998-12-17 Michael Tiemann <tiemann@axon.cygnus.com> - - * i960.md (extend*, zero_extend*): Don't generate rtl that looks - like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides - optimizations from the combiner. - -Thu Dec 17 08:27:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. - -Wed Dec 16 17:30:35 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c (main): Disable optimize_size if a specific - optimization level is requested. Always set optimization - level to 2 if -Os is specified. - -Wed Dec 16 16:33:04 1998 Dave Brolley <brolley@cygnus.com> - - * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with - cpplib. - * cpplib.c (cpp_start_read): If in_fname is not initialized, try to - initialize it using fname. - -1998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c (do_include): Treat #include_next in the - primary source file as #include plus warning. Treat - #include_next in a file included by absolute path as an - error. fp == CPP_NULL_BUFFER is a fatal inconsistency. - -Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cccp.c: Don't define MIN/MAX anymore. - * cpplib.c: Likewise. - * machmode.h: Likewise. - * system.h: Provide definitions for MIN/MAX. - -Tue Dec 15 23:47:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * fix-header.c: Don't define xstrdup here. - -Wed Dec 16 05:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (consec_sets_giv): New argument last_consec_insn. - (strength_reduce): Provide / use it. - -Wed Dec 16 17:24:07 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.h (loop_info): New field 'vtop'. - * loop.c (check_dbra_loop): Use loop_info->vtop rather than - scanning loop for vtop. - * unroll.c (subtract_reg_term, find_common_reg_term): New functions. - (loop_iterations): Use them to determine if loop has a constant - number of iterations. Set loop_info->vtop. Don't subtract - common reg term from initial_value and final_value if have a - do-while loop. - -Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. - - * mn10300.md (bset, bclr): Operand 0 is a read/write operand. - - * mn10200.md (abssf2, negsf2): New expanders. - - * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders. - -Tue Dec 15 11:55:30 1998 Nick Clifton <nickc@cygnus.com> - - * integrate.c (copy_rtx_and_substitute): If a SUBREG is - replaced by a CONCAT whoes components do not have the same - mode as the original SUBREG, use a new SUBREG to restore the - mode. - - * emit-rtl.c (subreg_realpart_p): Cope with subregs containing - multiword complex values. - -1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cppalloc.c: Add xstrdup here. - * cpplib.h: Remove savestring prototype. - * cpplib.c: Remove savestring function. s/savestring/xstrdup/ - throughout. - * cppfiles.c: s/savestring/xstrdup/ throughout. - -1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c: Make all directive handlers read their own - arguments. - (struct directive): Remove last two arguments from FUNC - member prototype. Remove `command_reads_line' member - entirely. - (directive_table): Remove initializations of - command_reads_line flag. Pretty-print. - (eval_if_expression, do_define, do_line, do_include, - do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, - do_else, do_elif, do_sccs, do_assert, do_unassert, - do_warning): Take only two args. - - (cpp_define): Call do_define with two args and the text to - define stuffed into a buffer. - (make_assertion): Call do_assert with two args. - (handle_directive): Call do_line with two args. Call - kt->func with two args. Remove command_reads_line - processing. - (do_define, do_undef, do_error, do_warning, do_pragma, - do_sccs): Read the rest of the line here. - (do_ident): Gobble rest of line, as cccp does. - (cpp_undef): New function. - (cpp_start_read): Call cpp_undef instead of do_undef. - -1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpphash.h (union hash_value): Remove `keydef' member, add a - `struct hashnode *aschain' member for #assert. - - * cpplib.c (struct tokenlist_list, struct - assertion_hashnode): Delete structure definitions. - (assertion_install, assertion_lookup, delete_assertion, - check_assertion, compare_token_lists, reverse_token_list, - read_token_list, free_token_list): Delete functions. - (parse_assertion): New function. - (cpp_cleanup): Don't destroy the assertion_hashtable. - - (do_assert): Gut and rewrite. #assert foo (bar) places - entries for `#foo' and `#foo(bar)' in the macro hash table, - type T_ASSERT. The value union's `aschain' member is used - to chain all answers for a given predicate together. - (do_unassert): Also rewritten. Take an un-asserted - answer off the chain from its predicate and call - delete_macro on the hashnode, or walk a predicate chain - calling delete_macro on all the entries. - (cpp_read_check_assertion): Simply call parse_assertion to - get the canonical assertion name, and look that up in the - hash table. - - * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): - Removed. - - * cpphash.c (install): Use bcopy instead of an explicit loop - to copy the macro name. - - * cppexp.c (cpp_lex): Convert the result of - cpp_read_check_assertion to a `struct operation' directly; - don't go through parse_number. - -Tue Dec 15 18:27:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.h (struct induction): Delete times_used member. - * loop.c (n_times_set): Rename to set_in_loop. Changed all users. - (n_times_used): Rename to n_times_set. Changed all users. - (scan_loop): Free reg_single_usage before strength reduction. - (record_giv, combine_givs): Remove handling of times_used member. - (combine_givs_used_once): Rename to: - (combine_givs_used_by_other) . Changed all callers. - -Tue Dec 15 01:45:26 1998 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P - instead of TREE_CODE_CLASS == 't'. - (gen_type_die): Likewise. - (scope_die_for): Ignore FUNCTION_TYPE "scopes". - -Mon Dec 14 16:23:27 1998 Jim Wilson <wilson@cygnus.com> - - * real.c (endian): Disable last change unless - HOST_BITS_PER_WIDE_INT is greater than 32. - -Mon Dec 14 17:13:36 EST 1998 Andrew MacLeod <amacleod@cygnus.com> - - * output.h (force_data_section): New prototype. - * varasm.c (force_data_section): New function to force the - data section, regardless of what in_section thinks. - * dwarf2out.c (output_call_frame_info): Call force_data_section - since varasm may not realize we've changes sections. - -Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com> - - * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes - after completeing reload. - - * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are - deleted after reload. - -Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h (multiple_sets): Fix prototype. - * rtlanal.c (multiple_sets): Fix return type. - -Sun Dec 13 12:43:58 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Dec 13 01:05:22 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1998-12-13 Manfred Hollstein <manfred@s-direktnet.de> - - * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. - -Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (recompute_reg_usage): Add second argument. - * flow.c (recompute_reg_usage): Likewise. - * toplev.c (rest_of_compilation): Supply second argument to - recompute_reg_usage. - - * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 - after reload. - -Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) - - * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32. - (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. - (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, - mcpu32 or m5200. - - * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. - - * rtlanal.c (multiple_sets): New function. - * rtl.h (multiple_sets): Declare it. - * local-alloc.c (wipe_dead_reg): Use it. - * global.c (global_conflicts): Likewise. - -Sat Dec 12 22:13:02 1998 Mark Mitchell <mark@markmitchell.com> - - * global.c (record_conflicts): Don't use an array of shorts to - store an array of ints. - (global_conflicts): Likewise. - -Sat Dec 12 16:49:24 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_block_move): mode_for_size expects - bits, not bytes. Infer extra alignment from addressof. - -1998-12-11 Michael Meissner <meissner@cygnus.com> - - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the - .sbss section, not .sdata. - -1998-12-11 Manfred Hollstein <manfred@s-direktnet.de> - - * cccp.c: Do not #include <sys/stat.h> here; this is already done - by "system.h". - * collect2.c: Likewise. - * cpplib.h: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * getpwd.c: Likewise. - * protoize.c: Likewise. - * toplev.c: Likewise. - - * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h" - and don't try to define it here. - * Makefile.in (cppmain.o): Depend on machmode.h. - (cpplib.o): Likewise. - (cpperror.o): Likewise. - (cppexp.o): Likewise. - (cppfiles.o): Likewise. - (cpphash.o): Likewise. - (cppalloc.o): Likewise. - (fix-header.o): Likewise. - (scan-decls.o): Likewise. - -Fri Dec 11 11:02:49 1998 Stan Cox <scox@cygnus.com> - - * sh.c (print_operand): lookup interrupt_handler attribute instead - of relying on static variable. - * (calc_live_regs): Likewise. - * (sh_pragma_insert_attributes): Create interrupt_handler - attribute if a pragma was specified - * (sh_valid_machine_decl_attribute): Don't set static flag. - * sh.h (PRAGMA_INSERT_ATTRIBUTES): New. - -Fri Dec 11 12:56:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START - to determine if a register is live at a jump destination. - Everything is dead at a BARRIER. - -Thu Dec 10 16:02:06 1998 Jim Wilson <wilson@cygnus.com> - - * cse.c (simplify_unary_operation): Sign-extend constants when - they have the most significant bit set for the target. - * real.c (endian): Sign-extend 32 bit output values on a 64 bit - host. - * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in - HOST_WIDE_INT temporary before negating it. - * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000. - -Thu Dec 10 15:05:59 1998 Dave Brolley <brolley@cygnus.com> - - * objc/objc-act.c (lang_init_options): Enclose cpplib related code in - #if USE_CPPLIB. - -Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * collect2.h: New header file for prototypes. - - * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. - -Wed Dec 9 17:40:26 1998 Dave Brolley <brolley@cygnus.com> - - * collect2.c: Include collect2.h. - * tlink.c: Likewise. - -Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c: Update some comments. - -Wed Dec 9 15:29:26 1998 Dave Brolley <brolley@cygnus.com> - - * objc/objc-act.c (cpp_initialized): Removed. - (lang_init_options): Initialize cpplib. - (lang_decode_option): Move initialization of cpplib to - lang_init_options. - * c-lang.c: (parse_options,parse_in): Added. - (lang_init_options): Initialized cpplib here. - * c-decl.c (parse_options,cpp_initialized): Removed. - (c_decode_option): Move initialization of cpplib to - lang_init_options. - -Wed Dec 9 19:36:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine, reload_combine_note_store): - Make STORE_RUID always valid. - (reload_combine): Check if BASE is clobbered too early. - -Wed Dec 9 09:53:58 1998 Nick Clifton <nickc@cygnus.com> - - * reload.c (find_reloads): Display the insn that cannot be - reloaded. - -Wed Dec 9 12:15:26 1998 Dave Brolley <brolley@cygnus.com> - - * cccp.c (create_definition): Fix end of bufer logic. - -Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function - pointer parameters changed to use the PARAMS() macro. - -Wed Dec 9 09:12:40 EST 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.h (struct handler_info): Add handler_number field. - * except.c (gen_exception_label): EH labels no longer need to be - on the permanent obstack. - (get_new_handler): Set the label number field. - (output_exception_table_entry): Regenerate handler label reference - from the label number field. - (init_eh): Remove a blank line. - * integrate.c (get_label_from_map): Labels no longer need to be - on the permanent obstack. - -Tue Dec 8 22:04:33 1998 Jim Wilson <wilson@cygnus.com> - - * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand - only when OUTER_CODE is SET. - -Tue Dec 8 22:47:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (strength_reduce): If scan_start points to the loop exit - test, be wary of subversive use of gotos inside expression statements. - Don't set maybe_multiple for a backward jump that does not - include the label under consideration into its range. - * unroll.c (biv_total_increment): Make use of maybe_multiple field. - -Tue Dec 8 22:33:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * explow.c (plus_constant_wide): Don't immediately return with - result of recursive call. - -Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com> - - * eh-common.h (struct eh_context): Add table_index for rethrows. - - * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. - (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be - processed when inlined or unrolled (ie duplicated in some way). - - * rtl.c (reg_note_name): Add strings for new reg_note enums. - - * expr.h (rethrow_libfunc): New library decl. - - * optabs.c (rethrow_libfunc): Initialize. - - * except.h (struct eh_entry): Add new field 'rethrow_label'. - (new_eh_region_entry): No longer exported from except.c. - (duplicate_handlers): Renamed to duplicate_eh_handlers and - different prototype. - (rethrow_symbol_map, rethrow_used): New exported functions. - (eh_region_from_symbol): New exported function. - - * except.c (create_rethrow_ref): New function to create a single - SYMBOL_REF for a rethrow region. - (push_eh_entry): Initialize a rethrow ref. - (func_eh_entry): Add a rethrow_label field. - (new_eh_region_entry): Make static, and initialize the rethrow entry. - (duplicate_eh_handlers): Create a new region, and remap labels/symbols. - (eh_region_from_symbol): Find an EH region based on its rethrow symbol. - (rethrow_symbol_map): Given a label map, maps a rethrow symbol for - a region into an appropriate new symbol. - (rethrow_used): Indicate whether a rethrow symbol has been referenced. - (expand_eh_region_end): Don't issue jump around code for new-exceptions. - (end_catch_handler): Emit a barrier for new-exceptions since - control can never drop through the end of a catch block. - (expand_end_all_catch): new-exceptions never fall through a catch - block. - (expand_rethrow): use __rethrow routine for new exceptions. - (output_exception_table_entry): Generate rethrow labels, if needed. - (output_exception_table): Generate start and end rethrow labels. - (init_eh): Create rethrow symbols for beginning and end of table. - (scan_region): Don't eliminate EH regions which are the targets of - rethrows. - - * flow.c (make_edges): Add different edges for rethrow calls, - identified by having the REG_EH_RETHROW reg label. - (delete_unreachable_blocks): Don't delete regions markers which are - the target of a rethrow. - - * integrate.c (save_for_inline_eh_labelmap): New callback routine to - allow save_for_inline_copying to call duplicate_eh_handlers. - (save_for_inline_copying): Call duplicate_eh_handlers instead of - exposing internal details of exception regions. - (copy_for_inline): Check if SYMBOL_REFs need adjustment. - (expand_inline_function_eh_labelmap): New callback routine to - allow expand_inline_function to call duplicate_eh_handlers. - (expand_inline_function): Call duplicate_eh_handlers instead of - exposing internal details of exception regions. - (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST - flag is set. - - * libgcc2.c (find_exception_handler): Generalize to enable it to - pick up processing where it left off last time for a rethrow. - (__unwinding_cleanup): New function. debug hook which is called before - unwinding when __throw finds there is nothing but cleanups left. - (throw_helper): Common parts of __throw extracted out for reuse. - (__throw): Common parts moved to throw_helper. - (__rethrow): New function for performing rethrows. - -Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (current_function_decl): Tweak declaration. - -Tue Dec 8 10:23:52 1998 Richard Henderson <rth@cygnus.com> - - * c-decl.c (flag_isoc9x): Default off. - (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x. - * cccp.c (print_help, main): Likewise. - * gcc.c (default_compilers): Update for -std=gnu*. - -Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. - * demangle.h: Deleted. - - * reload1.c (current_function_decl): Declare. - -Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. - -Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. - -1998-12-08 Ulrich Drepper <drepper@cygnus.com> - - * configure.in: Test for availability of putc_unlocked, fputc_unlocked, - and fputs_unlocked. - * configure: Rebuilt. - * system.h: If the *_unlocked functions are available use them - instead of the locked counterparts by defining macros. - * config.in: Regenerated. - -Tue Dec 8 00:34:05 1998 Mike Stump <mrs@wrs.com> - - * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is - wrong and should only be used for dump related things, not - debugging information, instead main_input_filename should be used. - Also, reuse output_file_directive if possible. - * i386/aix386ng.h (ASM_FILE_START): Likewise. - * i386/isc.h (ASM_FILE_START): Likewise. - * i386/win-nt.h (ASM_FILE_START): Likewise. - * i386/sun386.h (ASM_FILE_START): Likewise. - -Mon Dec 7 23:56:28 1998 Robert Lipe <robertl@dgii.com> - - * configure.in (mips*-*-linux*): Handle big and little endian - systems. - * configure: Rebuilt. - -Mon Dec 7 23:14:51 1998 Mike Stump <mrs@wrs.com> - - * emit-rtl.c: Fix typo. - -Mon Dec 7 23:07:38 1998 Nathan Sidwell <nathan@acm.org> - - * reload1.c (eliminate_regs): Don't do anything, if we're not - generating code. - -Mon Dec 7 15:27:09 1998 DJ Delorie <dj@cygnus.com> - - * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. - Add comment. - * mips/mips.c (mips_select_section): Add comment. - -Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com> - - * cccp.c (ignore_escape_flag): Add support for \ as `natural' - characters in file names in #line to be consistent with #include - handling. We support escape prcessing in the # 1 "..." version of - the command. See also support in cp/lex.c. - (handle_directive): Likewise. - (do_line): Likewise. - -1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM - so it'll work on non-ASCII platforms. Always consider $ an - identifier character. Take no arguments. - (cpp_reader_init): Call initialize_char_syntax with no - arguments. - (cpp_start_read): Don't call initialize_char_syntax again. - Clear is_idchar['$'] and is_idstart['$'] if not - opts->dollars_in_ident. - - * cpplib.h (struct cpp_reader): Replace void *data element by - cpp_options *opts. Rearrange elements to make gdb printout - less annoying (put buffer stack at end). - (CPP_OPTIONS): Get rid of now-unnecessary cast. - - * cppmain.c: s/data/opts/ when initializing cpp_reader - structure. - * c-decl.c: Likewise. - * objc/objc-act.c: Likewise. - * fix-header.c: Likewise. - -1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.h (struct cpp_buffer): Replace dir and dlen members - with a struct file_name_list pointer. - (struct cpp_reader): Add pointer to chain of `actual - directory' include searchpath entries. - (struct file_name_list): Add *alloc pointer for the sake of - the actual-directory chain. - - Move definition of HOST_WIDE_INT here. - (cpp_parse_escape): Change prototype to match changes in - cppexp.c. - - * cppfiles.c (actual_directory): New function. - (finclude): Use it to initialize the buffer's actual_dir - entry. - (find_include_file): We don't need to fix up max_include_len - here. - - * cpplib.c (do_include): Don't allocate a file_name_list on - the fly for current directory "" includes, use the one that's - been preallocated in pfile->buffer->actual_dir. Hoist out - duplicate code from the search_start selection logic. - (cpp_reader_init): Initialize pfile->actual_dirs. - - Remove definition of HOST_WIDE_INT. Change calls - to cpp_parse_escape to match changes in cppexp.c (note - hardcoded MASK, which is safe since this is the source - character set). - - * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c - to handle wide character constants in #if directives. The - function now returns a HOST_WIDE_INT, and takes a third - argument which is a binary mask for all legal values (0x00ff - for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define - MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of - cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c] - -Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com> - - * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. - -Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB. - * cppalloc.c: Move function `xcalloc' from cpplib.c to here. - * cpplib.c: Move function `xcalloc' from here to cppalloc.c. - -Mon Dec 7 11:30:49 1998 Nick Clifton <nickc@cygnus.com> - - * final.c (output_asm_name): Use tabs to seperate comments from - assembly text. - - Include instruction lengths (if defined) in output. - -Mon Dec 7 10:53:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value - in the loop_info structure. - -Mon Dec 7 11:04:40 1998 Catherine Moore <clm@cygnus.com> - - * configure.in: (arm*-*-ecos-elf): New target. - * configure: Regenerated. - * config/arm/elf.h (ASM_WEAKEN_LABEL): Define. - * config/arm/ecos-elf.h: New file. - * config/arm/unknown-elf.h (TARGET_VERSION): Check - for redefinition. - -Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (output_far_jump): Emit braf only for TARGET_SH2. - -Sun Dec 6 04:19:45 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Dec 6 05:16:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (check_dbra_loop): New argument loop_info. Update fields - as needed. - -Sun Dec 6 03:40:13 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Dec 6 07:49:29 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger - compressed reports are ok and preferred over URLs - -Sun Dec 6 07:45:33 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * invoke.texi (Warning Options): Soften the tone of -pedantic - -Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) - - * print-rtl.c (print_rtx): Add prototype. - - * unroll.c (iteration_info): Make it static. - -Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com> - - * alias.c (memrefs_conflict_p): A second ANDed address - disables the aligned address optimization. - -Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_set_const_1): Fix parenthesis error - in -c << n case. - -Sat Dec 5 15:14:52 1998 Jason Merrill <jason@yorick.cygnus.com> - - * i960.h (BOOL_TYPE_SIZE): Define. - -Sun Dec 6 00:28:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality - from old valid_parallel_operands_4. - (valid_parallel_operands_4): Check that operands for 4 operand - parallel insns are valid, excluding load/store insns. - * config/c4x/c4x.h (valid_parallel_load_store): Add prototype. - * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use - valid_parallel_load_store instead of valid_parallel_operands_4. - (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, - *negqf2_movqf_clobber, *absqi2_movqi_clobber, - *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber, - *notqi_movqi_clobber): Use valid_parallel_operands_4. - (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber, - *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber, - *subqi3_movqi_clobber): Use valid_parallel_operands_5. - -Sat Dec 5 23:52:01 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (iteration_info): Delete extern. - -Fri Dec 4 20:15:57 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. - - * final.c (cleanup_subreg_operands): Delete some unused code. - - * recog.h (MAX_RECOG_ALTERNATIVES): New macro. - (struct insn_alternative): New structure definition. - (recog_op_alt): Declare variable. - (preprocess_constraints): Declare function. - * recog.c (recog_op_alt): New variable. - (extract_insn): Verify number of alternatives is in range. - (preprocess_constraints): New function. - * reg-stack.c: Include recog.h. - (constrain_asm_operands): Delete. - (get_asm_operand_lengths): Delete. - (get_asm_operand_n_inputs): New function. - (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and - N_OUTPUTS args. All callers changed. - Compute number of inputs and outputs here by calling - get_asm_operand_n_inputs. - Instead of constrain_asm_operands, call extract_insn, - constrain_operands and preprocess_constaints. Use information - computed by these functions throughout. - (record_reg_life): Delete code that is unused due to changes in - record_asm_reg_life. - (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, - N_INPUTS and N_OUTPUTS args. All callers changed. - Similar changes as in record_asm_reg_life. - (subst_stack_regs): Move n_operands declaration into the if statement - where it's used. - Delete code that is unused due to changes in subst_asm_stack_regs. - * stmt.c (expand_asm_operands): Verify number of alternatives is in - range. - * Makefile.in (reg-stack.o): Depend on recog.h. - -Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) - - * except.c (set_exception_version_code): Argument is an "int". - -Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. - * configure: Rebuilt. - -Fri Dec 4 01:29:28 1998 Robert Lipe <robertl@dgii.com> - - * configure.in (mipsel-*-linux*): New target. - * mips/linux.h: New file, based on other Linux targets. - -Thu Dec 3 11:19:50 1998 Mike Stump <mrs@wrs.com> - - * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook - runs in the context of the deleter, not the deletee, so we must - use taskVarGet to find the correct memory to free. - (__gthread_key_create): Initialize the task - variable subsystem so that the task variable is still active when - the delete hook is run. - -1998-12-03 Joseph S. Myers <jsm28@cam.ac.uk> - - * pdp11.h: Use optimize_size for space optimizations. - * pdp11.c: Likewise. - * pdp11.md: Likewise. - - * pdp11.h (TARGET_40_PLUS): Fix typo. - -Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) - - * local-alloc.c (block_alloc): Slightly retune heuristic to widen - qty lifetimes. - -Thu Dec 3 22:30:18 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * alias.c (addr_side_effect_eval): New function. - (memrefs_conflict_p): Use it. - * rtl.h (addr_side_effect_eval): Prototype it. - -1998-12-02 Joseph S. Myers <jsm28@cam.ac.uk> - - * pdp11.md (extendsfdf2): Fix mode mismatch in SET. - -Wed Dec 2 11:23:07 1998 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads): When force const to memory, put result - in substed_operand not *recog_operand_loc. - -1998-12-02 Ulrich Drepper <drepper@cygnus.com> - - * c-lex.c: Fix indentation from last patch. - Remove trailing whitespace. - * real.c: Likewise. - -Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (delete_block): Call set_last_insn after we have reset - NEXT_INSN (kept_tail). - -Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (trap_if): Use "$0" for the value zero. - -Tue Dec 1 20:49:49 1998 Ulrich Drepper <drepper@cygnus.com> - Stephen L Moshier <moshier@world.std.com> - Richard Henderson <rth@cygnus.com> - - * c-common.c (declare_function_name): Declare predefinied variable - `__func__'. - - * c-decl.c (flag_isoc9x): Set to 1 by default. - (c_decode_option): Handle -std= option. Remove -flang-isoc9x. - (grokdeclarator): Always emit warning about implicit int for ISO C 9x. - - * c-parse.in: Allow constructors in ISO C 9x. - Rewrite designator list handling. - Allow [*] parameters. - Don't warn about comma at end of enum definition for ISO C 9x. - - * cccp.c (c9x): New variable. - (rest_extension): New variable. - (print_help): Document new -std= option. - (main): Recognize -std= option. Set c9x appropriately. - (create_definition): Recognize ISO C 9x vararg macros. - - * gcc.c (default_compilers): Adjust specs for -std options. - (option_map): Add --std. - (display_help): Document -std. - - * toplev.c (documented_lang_options): Add -std and remove - -flang-isoc9x. - - * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF - or REAL_VALUE_HTOF based on base of the constants. - * fold-const.c (real_hex_to_f): New function. Replacement function - for hex FP conversion if REAL_ARITHMETIC is not defined. - * real.c (asctoeg): Add handling of hex FP constants. - * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or - real_hex_to_f. - -Tue Dec 1 16:45:49 1998 Stan Cox <scox@cygnus.com> - - * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add - -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro - expansion. Use hi/lo as destination register. - (div_trap): New. - (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*, - umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking. - Avoid as macro expansion. Use hi/lo as destination register. - - * mips.h (MASK_CHECK_RANGE_DIV): New. - (MASK_NO_CHECK_ZERO_DIV): New. - (ELIMINABLE_REGS): Added GP_REG_FIRST + 31. - (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting - return address for leaf functions out of r31 to support - builtin_return_address. - -Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x), - NEXT_INSN(x) to check insn x. - -Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (delete_block): Call set_last_insn if we end up deleting the - last insn in the rtl chain. - - * reload1.c (reload): Do not set reload_completed or split insns - here. Instead... - * toplev.c (rest_of_compilation): Set reload_completed after - reload returns. Split insns after reload_cse has run. - -Tue Dec 1 11:55:04 1998 Richard Henderson <rth@cygnus.com> - - * final.c (final_scan_insn): Abort if block_depth falls below 0. - -Tue Dec 1 10:23:16 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc. - -Tue Dec 1 10:22:18 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove - use of user-label_prefix. - -Tue Dec 1 17:58:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (emit_reload_insns): Clear spill_reg_store - when doing a new non-inherited reload from the same pseudo. - - * local-alloc.c (function_invariant_p): New function. - (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P - to decide if an equivalence should be recorded. - * reload1.c (num_eliminable_invariants): New static variable. - (reload): Set it. Use function_invariant_p instead of CONSTANT_P - to decide if an equivalence should be recorded. - Unshare PLUS. - (calculate_needs_all_insns): Skip insns that only set an equivalence. - Take num_eliminable_invariants into account when deciding - if register elimination should be done. - (reload_as_needed): Take num_eliminable_invariants into account - when deciding if register elimination should be done. - (eliminate_regs): Handle non-constant reg_equiv_constant. - * rtl.h (function_invariant_p): Declare. - -Mon Nov 30 02:00:08 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Nov 30 00:42:59 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Nov 29 22:59:40 1998 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (add_new_handler): Complain about additional handlers - after one that catches everything. - -Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (alpha*-*-netbsd): Fix typo. - * configure: Rebuilt. - -Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h: Include libiberty.h. - - * c-aux-info.c: Remove prototypes for concat/concat3. Change - function `concat' from fixed parameters to variable parameters, - as is done in libiberty. All callers of concat/concat3 - changed to use the new `concat' with variable args. - - * cccp.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - * cexp.y: Likewise. - * collect2.c: Likewise. - * config/1750a/1750a.h: Likewise. - * cppalloc.c: Likewise. - * cppexp.c: Likewise. - * cppfiles.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * dyn-string.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * genattr.c: Likewise. - * genattrtab.c: Likewise. - * gencheck.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * gengenrtl.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * getpwd.c: Likewise. - * halfpic.c: Likewise. - * hash.c: Likewise. - * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes - in NEED_DECLARATION_* macros. - - * mips-tfile.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - (fatal): Fix const-ification of variable `format' in - !ANSI_PROTOTYPES case. - - * prefix.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - - * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid - conflicting with function `spaces' from libiberty. - - * profile.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - * protoize.c: Likewise. - * rtl.h: Likewise. - * scan.h: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. - * toplev.h: Likewise. - * tree.h: Likewise. - -Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. - -Thu Nov 26 23:45:37 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * README.C4X: Updated URLs. - * config/c4x/c4x.c (c4x_address_conflict): Fix typo. - (valid_parallel_operands_5): Remove unused variable. - -Thu Nov 26 23:40:03 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. - -1998-11-26 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages - which can be configured. - (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@ - (Makefile): Pass actual LANGUAGES through the environment when - re-configuring. - (cstamp-h): Likewise. - (config.status): Likewise. - - * configure.in (enable_languages): Add new configuration parameter - "--enable-languages=lang1,lang2,...". - (${srcdir}/*/config-lang.in): Change handling to configure only - those directories, that the user might have enabled; default to - "all" existing languages. - * configure: Regenerate. - -Thu Nov 26 00:19:19 1998 Richard Henderson <rth@cygnus.com> - - * rtlanal.c (regs_set_between_p): New function. - * rtl.h (regs_set_between_p): Prototype it. - * jump.c (jump_optimize): Use it instead of modified_between_p - in the Sep 2 change. - -Wed Nov 25 23:32:02 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au> - Matthias Pfaller <leo@dachau.marco.de> - - * invoke.texi (Option Summary, NS32K Options): add description - of NS32K specific options. - - * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2, - fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2, - fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3, - negdf2, absdf2): Use l instead of f since the double class and - float class are no longer the same. - (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3, - divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2, - ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...): - use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been - fixed. - (cmpsi, cmphi, cmpqi): use general_operand instead of - non_immediate_operand. Removes erroneous assumption that can't - compare constants. - (movsf, movsi, movhi, movqi,...): New register numbering scheme. - (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded - constants. - (movstrsi, movstrsi1, movstrsi2): completely new block move - scheme. - (...): Patterns to exploit multiply-add instructions. - (udivmodsi4, udivmodsi_internal4, udivmodhi4, - udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new - patterns to exploit extended divide insns. - (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi - etc patterns. - - * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex - float return values as well as simple scalar floats. - (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES): - support new flag to denote 32381 fpu. - (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081. - (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not - compling for 32381. - (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, - REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES, - REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM, - L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, - LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES, - REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS, - REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, - REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P, - REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381 - fpu registers and special register classes for new 32381 - instructions dotf and polyf. - (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to - be tieable. - (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX, - INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is - required. - (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option. - (MOVE_RATIO): Set to zero because of smart movstrsi implimentation. - (REGISTER_MOVE_COST): move code to register_move_cost function for - ease of coding and debugging. - (CLASS_LIKELY_SPILLED_P): Under new register scheme class - LONG_FLOAT_REGO is likely spilled but not caught by default - definition. - (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro - instead of hard coded numbers in range check. - (ASM_OUTPUT_LABELREF_AS_INT): delete since unused. - (...): Add prototypes for functions in ns32k.c but disable because - of problems when ns32k.h is included in machine independant files. - - * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h". - (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names, - hard_regno_mode_ok, secondary_reload_class, - print_operand, print_operand_address): new register scheme to - include 32381 fpu registers and special register classes for new - 32381 instructions dotf and polyf. - (gen_indexed_expr): Make static to keep namespace clean. - (check_reg): remove since never called. - (move_tail, expand_block_move): helper functions for "movstrsi" - block move insn. - (register_move_cost): Helper function for REGISTER_MOVE_COST macro. - Increase cost of moves which go via memory. - * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag. - (CPP_PREDEFINES): nolonger predefine "unix". - - * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...): - Remove erroneous %$. print_operand() can work out from the rtx is - an immediate prefix is required. - - * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling - convention. - (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of - pic operands. - - * ns32k.c (symbolic_reference_mentioned_p, print_operand): - Correct handling of pic operands. - (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p, - ns32k_comp_type_attributes, ns32k_return_pops_args): Support for - -mrtd calling convention. - -Wed Nov 25 23:42:20 1998 Tom Tromey <tromey@cygnus.com> - - * gcc.c (option_map): Recognize --output-class-directory. - -Thu Nov 26 18:26:21 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.h (precondition_loop_p): Added new mode argument. - * unroll.c (precondition_loop_p): Likewise. - (approx_final_value): Function deleted and subsumed - into loop_iterations. - (loop_find_equiv_value): New function. - (loop_iterations): Use loop_find_equiv_value to find increments - too large to be immediate constants. Also use it to find terms - common to initial and final iteration values that can be removed. - -Thu Nov 26 18:05:04 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.h (struct loop_info): Define new structure. - (precondition_loop_p): Added prototype. - (unroll_loop): Added new argument loop_info to prototype. - (final_biv_value, final_giv_value): Added new argument n_iterations - to prototype. - * loop.c (strength_reduce): Declare new structure loop_iteration_info - and new pointer loop_info. - (loop_n_iterations): Replace global variable by element in - loop_info structure. - (check_final_value): New argument n_iterations. - (insert_bct): New argument loop_info. - (loop_unroll_factor): Replace global array by element in - loop_info structure. - (loop_optimize): Remove code to allocate and initialise - loop_unroll_factor_array. - * unroll.c (precondition_loop_p): No longer static since - used by branch on count optimization. - (precondition_loop_p, unroll_loop): New argument loop_info. - (final_biv_value, final_giv_value, find_splittable_regs): New - argument n_iterations. - (loop_iteration_var, loop_initial_value, loop_increment, - loop_final_value, loop_comparison_code, loop_unroll_factor): - Replaced global variables by loop_info structure. - (loop_unroll_factor): Replace global array by element in - loop_info structure. - -Thu Nov 26 17:49:29 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn - when loop reversed. - - * unroll.c (precondition_loop_p): Return loop_initial_value - for initial_value instead of loop_iteration_var. - -Thu Nov 26 17:15:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md: Fix minor formatting problems. Update docs. - (*b, *b_rev, *b_noov, *b_noov_rev, *db, - decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch - to output the instruction sequences. - (rpts): Delete. - (rptb_top): Provide alternatives to use any register or memory - for loop counter. - (rptb_end): Emit use of operands rather than assigning them - explicitly to the RS and RE registers. - -Thu Nov 26 16:37:59 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p, - c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p, - c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg, - c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, - c4x_merge_notes, c4x_parallel_process, - c4x_combine_parallel_independent, c4x_combine_parallel_dependent, - c4x_combine_parallel): Delete. - -Thu Nov 26 15:16:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c: (c4x_override_options): For compatibility - with old target options clear flag_branch_on_count_reg if - -mno-rptb specified and set flag_argument_alias is -mno-aliases - specified. - (c4x_output_cbranch): Handle a sequence of insns rather than a - single insn. - (c4x_rptb_insert): Do not emit a RPTB insn if the RC register - has not been allocated as the loop counter. - (c4x_address_conflict): Do not allow two volatile memory references. - (valid_parallel_operands_4, valid_parallel_operands_5, - valid_parallel_operands_6): Reject pattern if the register destination - of the first set is used as part of an address in the second set. - -Thu Nov 26 14:56:32 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG. - (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES - is no longer enabled if PARALLEL_MPY_FLAG set. - (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity. - (REG_CLASS_CONTENTS): Add braces around initializers. - (HAVE_MULTIPLE_PACK): Define. - (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with - REAL_VALUE_TO_DECIMAL. - (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with - REAL_VALUE_TO_DECIMAL. - (ar0_reg_operand): Add prototype. - (ar0_mem_operand): Likewise. - (ar1_reg_operand): Likewise. - (ar1_mem_operand): Likewise. - (ar2_reg_operand): Likewise. - (ar2_mem_operand): Likewise. - (ar3_reg_operand): Likewise. - (ar3_mem_operand): Likewise. - (ar4_reg_operand): Likewise. - (ar4_mem_operand): Likewise. - (ar5_reg_operand): Likewise. - (ar5_mem_operand): Likewise. - (ar6_reg_operand): Likewise. - (ar6_mem_operand): Likewise. - (ar7_reg_operand): Likewise. - (ar7_mem_operand): Likewise. - (ir0_reg_operand): Likewise. - (ir0_mem_operand): Likewise. - (ir1_reg_operand): Likewise. - (ir1_mem_operand): Likewise. - (group1_reg_operand): Likewise. - (group1_mem_operand): Likewise. - (ir1_reg_operand): Likewise. - (arx_reg_operand): Likewise. - (not_rc_reg): Likewise. - (not_modify_reg): Likewise. - (c4x_group1_reg_operand): Remove prototype. - (c4x_group1_mem_operand): Likewise. - (c4x_arx_reg_operand): Likewise. - -Wed Nov 25 19:02:55 1998 (Stephen L Moshier) <moshier@world.std.com> - - * emit-rtl.c (gen_lowpart_common): Remove earlier change. - * real.c (make_nan): Make SIGN arg actually specify the sign bit. - -Thu Nov 26 14:12:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern - during reload. - -Wed Nov 25 22:05:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1 - unless FMOVD_WORKS is defined. - -Wed Nov 25 20:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regclass.c (init_reg_sets): Move code that calculates tables - dependent on reg_class_contents from here... - (init_reg_sets_1): To here. - -Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.h: Delete struct import_file. Add ihash element to - struct cpp_buffer. Delete dont_repeat_files and - import_hash_table elements from cpp_reader; change - all_include_files to a hash table. Delete all foobar_include - / last_foobar_include elements from struct cpp_options; put - back four such: quote_include, bracket_include, - system_include, after_include. Redo struct file_name_list - completely. Add new structure type include_hash. Add - prototypes for merge_include_chains and include_hash. Change - prototypes for finclude, find_include_file, and - append_include_chain to match changes below. - - * cppfiles.c (simplify_pathname, include_hash, - remap_filename, merge_include_chains): New functions. - (add_import, lookup_import, open_include_file): Removed. - (INO_T_EQ): Define this (copied from cccp.c). - (hack_vms_include_specification): Remove all calls and #if 0 - out the definition. It was being called incorrectly and at - the wrong times. Until a VMSie can look at this, it's better - to not pretend to support it. - (append_include_chain): Change calling convention; now takes - only one directory at a time, and sets up the data structure - itself. - (redundant_include_p): Rewritten - this is now used for all - include redundancy, whether by #ifndef, #import, or #pragma - once. Looks up things in the include hash table. - (file_cleanup): Decrement pfile->system_include_depth here if - it's >0. - (find_include_file): Calling convention changed; now passes - around a struct include_hash instead of 3 separate parameters. - Guts ripped out and replaced with new include_hash mechanism. - (finclude): Calling convention changed as for - find_include_file. Error exits pulled out-of-line. Reformat. - (safe_read): Return a long, not an int. - (deps_output): Don't recurse. - - * cpplib.c (is_system_include): Deleted. - (path_include): Fix up call to append_include_chain. - (do_include): Fix up calls to find_include_file and finclude. - Clean up dependency output a bit. Shorten obnoxiously lengthy - #import warning message. Don't decrement - pfile->system_include_depth here. - (do_pragma): Understand the include_hash structure. Reformat. - (do_endif): Correct handling of control macros. Understand - the include_hash. - (cpp_start_read): Fix up calls to finclude. Call - merge_include_chains. - (cpp_handle_option): Fix up calls to append_include_chain. - Understand the four partial include chains. - (cpp_finish): Add debugging code (#if 0-ed out) for the - include_hash. - (cpp_cleanup): Free the include_hash, not the import hash and - the all_include and dont_repeat lists which no longer exist. - -Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (no_new_pseudos): Define. - (rest_of_compilation): Set no_new_pseudos as needed. - * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo - if no_new_pseudos is set. - * rtl.h (no_new_pseudos): Declare it. - * reload1.c (reload): Update comments. - * md.texi: Corresponding changes. - -Wed Nov 25 11:26:17 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo. - (choose_reload_regs): Rename it here as well. When computing it, - also merge in used hardregs. - -1998-11-25 07:51 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * gcc.c: Split out Objective-C specs to... - * objc/lang-specs.h: here. (New file.) Make the specs cpplib - aware. - - * c-lex.c (init_parse): Always initialize the filename global. - * objc/objc-act.c (lang_init): Always call check_newline at - beginning of file. - -Wed Nov 25 00:48:29 1998 Graham <grahams@rcp.co.uk> - - * reload1.c (reload): Remove unused variable. - (reload_reg_free_for_value_p): Add missing parameter definition. - - * jump.c (jump_optimize): Remove unused variable. - -Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h. - - * cse.c (fold_rtx): Make autoincrement addressing mode tests be - runtime selectable. - * expr.c (move_by_pieces): Similarly. - (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly. - * flow.c (find_auto_inc): Similarly. - (try_pre_increment): Similarly. - * loop.c (strength_reduce): Similarly. - * regclass.c (auto_inc_dec_reg_p): Similarly. - * regmove.c (try_auto_increment): Similarly. - (fixup_match_1): Similarly. - * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined. - (HAVE_PRE_DECREMENT): Similarly. - (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly. - * Corresponding changes to all target header files. - * tm.texi: Update docs for autoinc addressing modes. - -Tue Nov 24 20:24:59 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in (m68020-*-elf*, m68k-*-elf*): New targets. - * configure: Rebuild. - * config/elfos.h: New file. - * config/m68k/m68020-elf.h, config/m68k/m68kelf.h, - config/m68k/t-m68kelf: New file. - -Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (HOST_AR): Define. - (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly. - (libcpp.a): Use the host tools explicitly. - (STAGESTUFF): Add libcpp.a. - -Tue Nov 24 09:33:49 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md (movstrsi_internal): Describe changes made - to source and destination registers. - -Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com> - - * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe. - The strategy we now use is to pre allocate the top_elt along - with the EH context so that each thread has its own top_elt. - This is necessary as the dynmanic cleanup chain is used on the - top element of the stack and each thread MUST have its own. - (eh_context_static): Likewise. - (new_eh_context): Likewise. - (__sjthrow): Likewise. - -Mon Nov 23 20:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> - - * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while. - * i386.md (prologue_get_pc): Remove unused variable. - -Mon Nov 23 17:05:40 1998 Geoffrey Noer <noer@cygnus.com> - - * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_. - -Mon Nov 23 16:40:00 1998 Ulrich Drepper <drepper@cygnus.com> - - * Makefile.in (OBJS): Add graph.o - (graph.o): New dependency list. - * flags.h: Declare dump_for_graph and define graph_dump_types type. - * print-rtl.c (dump_for_graph): Define new variable. - (print_rtx): Rewrite to allow use in graph dumping functions. - * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file, - finish_graph_dump_file. - Define graph_dump_format. - (compile_file): If graph dumping is enabled also clear these files. - Finish graph dump files. - (rest_of_compilation): Also dump graph information if enabled. - (main): Recognize -dv to enabled VCG based graph dumping. - * graph.c: New file. Graph dumping functions. - -Mon Nov 23 16:39:04 1998 Richard Henderson <rth@cygnus.com> - - * configure.in: Look for <sys/stat.h>. - * system.h: Include it before substitute S_ISREG definitions. - -Mon Nov 23 17:40:37 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage. - * config/mips/iris6.h: Same. - * config/mips/mips.md: Same. - * config/mips/mips.c: Same; also add "-mabi=o64" option. - * config/mips/mips.h: Same; also define ABI_O64. - -Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in: Use AC_PREREQ(2.12.1). - -Mon Nov 23 10:16:38 1998 "Melissa O'Neill" <oneill@cs.sfu.ca> - - * cccp.c (S_ISREG, S_ISDIR): Delete defines. - * cpplib.c, gcc.c: Likewise. - * system.h (S_ISREG, S_ISDIR): Define if not already defined. - -Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com> - - * local-alloc.c (local_alloc): Use malloc not alloca for - reg_qty, reg_offset, ref_next_in_qty. - -Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * caller-save.c (insert_one_insn): Initialize the live_before and - live_after register sets. - - Add SH4 support: - - * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define. - (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define. - * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS. - (fp_reg_names, assembler_dialect): New variables. - (print_operand_address): Handle SUBREGs. - (print_operand): Added 'o' case. - Don't use adj_offsettable_operand on PRE_DEC / POST_INC. - Name of FP registers depends on mode. - (expand_block_move): Emit different code for SH4 hardware. - (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate. - (from_compare): Likewise. - (add_constant): New argument last_value. Changed all callers. - (find_barrier): Don't try HImode load for FPUL_REG. - (machine_dependent_reorg): Likewise. - (sfunc_uses_reg): A CLOBBER cannot be the address register use. - (gen_far_branch): Emit a barrier after the new jump. - (barrier_align): Don't trust instruction lengths before - fixing up pcloads. - (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG. - Use auto-inc addressing for fp registers if doubles need to - be loaded in two steps. - Set sh_flag_remove_dead_before_cse. - (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul. - (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul. - (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR. - Support for FIRST_XD_REG .. LAST_XD_REG. - (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG. - (sh_expand_epilogue): Likewise. - (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4. - (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account. - (arith_reg_operand): FPUL_REG is OK for SH4. - (fp_arith_reg_operand, fp_extended_operand) New functions. - (tertiary_reload_operand, fpscr_operand): Likewise. - (commutative_float_operator, noncommutative_float_operator): Likewise. - (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise. - (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise. - (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise. - (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise. - * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only. - (CONDITIONAL_REGISTER_USAGE): Likewise. - (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define. - (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define. - (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define. - (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd. - (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer - to -1 and sh_flag_remove_dead_before_cse to 1. - (ASSEMBLER_DIALECT): Define to assembler_dialect. - (assembler_dialect, fp_reg_names): Declare. - (OVERRIDE_OPTIONS): Add code for TARGET_SH4. - Hide names of registers that are not accessible. - (CACHE_LOG): Take TARGET_CACHE32 into account. - (LOOP_ALIGN): Take TARGET_HARWARD into account. - (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define. - (FIRST_PSEUDO_REGISTER: Now 49. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers. - (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG. - (HARD_REGNO_MODE_OK): Update. - (enum reg_class): Add DF_REGS and FPSCR_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise. - (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update. - (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define. - (NPARM_REGS): Eight floating point parameter registers on SH4. - (BASE_RETURN_VALUE_REG): SH4 also passes double values - in floating point registers. - (GET_SH_ARG_CLASS) Likewise. - Complex float types are also returned in float registers. - (BASE_ARG_REG): Complex float types are also passes in float registers. - (FUNCTION_VALUE): Change mode like PROMOTE_MODE does. - (LIBCALL_VALUE): Remove trailing semicolon. - (ROUND_REG): Round when double precision value is passed in floating - point register(s). - (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are - passed on the stack. - (FUNCTION_ARG): Little endian adjustment for SH4 SFmode. - (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4. - (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account. - (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD. - (MODE_DISP_OK_8): Not for SH4 DFmode. - (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode. - Allow indexed addressing for PSImode after reload. - (LEGITIMIZE_ADDRESS): Not for SH4 DFmode. - (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode. - Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS. - (DOUBLE_TYPE_SIZE): 64 for SH4. - (RTX_COSTS): Add PLUS case. - Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case. - (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS, - MAC_REGS, PR_REGS, DF_REGS. - (REGISTER_NAMES): Use fp_reg_names. - (enum processor_type): Add PROCESSOR_SH4. - (sh_flag_remove_dead_before_cse): Declare. - (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare. - (PREDICATE_CODES): Add binary_float_operator, - commutative_float_operator, fp_arith_reg_operand, fp_extended_operand, - fpscr_operand, noncommutative_float_operator. - (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR. - (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4. - * sh.md (attribute cpu): Add value sh4. - (attrbutes fmovd, issues): Define. - (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv. - (function units memory, int, mpy, fp): Make dependent on issue rate. - (function units issue, single_issue, load_si, load): Define. - (function units load_store, fdiv, gp_fpul): Define. - (attribute hit_stack): Provide proper default. - (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4. - (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns. - (udivsi3, divsi3): Emit special patterns for SH4 hardware, - (mulsi3_call): Now uses match_operand for function address. - (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL / - REG_RETVAL notes. - (push, pop, push_e, pop_e): Now define_expands. - (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders. - (movsi_ie): Added y/i alternative. - (ic_invalidate_line_i, movdf_i4): New insns. - (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters. - (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders. - (movdf): Add special code for SH4. - (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible. - (call_valuei, calli, call_value): Likewise. - (movsf): Emit no-op move. - (mov_nop, movsi_y): New insns. - (blt, sge): generalize to handle DFmode. - (return predicate): Call emit_fpscr_use and remove_dead_before_cse. - (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4. - (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns. - (fpu_switch0, fpu_switch1, movpsi): New expanders. - (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters. - (toggle_sz): New insn. - (addsf3, subsf3, mulsf3, divsf3): Now define_expands. - (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns. - (macsf3): Make use of fpscr visible. Disable for SH4. - (floatsisf2): Make use of fpscr visible. - (floatsisf2_i4): New insn. - (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4. - (ieee_ccmpeqsf_t): Likewise. - (fix_truncsfsi2): Emit different code for SH4. - (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns. - (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns. - (negsf2, sqrtsf2, abssf2): Now expanders. - (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders. - (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns. - (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns. - (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders. - (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns. - (fix_truncdfsi2_i4_2+1): New splitters. - (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns. - (extendsfdf2, truncdfsf2): New expanders. - (truncdfsf2_i4): New insn. - * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4. - (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4. - * float-sh.h: When testing for __SH3E__, also test for - __SH4_SINGLE_ONLY__ . - * va-sh.h (__va_freg): Define to float. - (__va_greg, __fa_freg, __gnuc_va_list, va_start): - Define for __SH4_SINGLE_ONLY__ like for __SH3E__ . - (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise. - (__PASS_AS_FLOAT): Use different definition for __SH4__ and - __SH4_SINGLE__. - (TARGET_SH4_P): Define. - (va_arg): Use it. - - * sh.md (movdf_k, movsf_i): Tweak the condition so that - init_expr_once is satisfied about the existence of load / store insns. - - * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie): - change m constraint in source operand to mr / mf . - - * va-sh.h (__va_arg_sh1): Use __asm instead of asm. - - * (__VA_REEF): Define. - (__va_arg_sh1): Use it. - - * va-sh.h (va_start, va_arg, va_copy): Add parenteses. - -Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com) - - * i386/dgux.c (struct option): Add new "description field". - * m88k/m88k.c (struct option): Likewise. - -Sun Nov 22 16:07:57 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Nov 22 13:40:02 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * regmove.c (regmove_profitable_p): Use return value of find_matches - properly. - -Sun Nov 22 02:47:37 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called - without reload having been called earlier. - - * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP - addressing modes. - (v850_reorg): Similarly. - - * loop.c (check_dbra_loop): Avoid using gen_add2_insn. - -Sat Nov 21 02:18:38 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (move_movables): Start of libcall might be new loop start. - -Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS(). - -Fri Nov 20 08:34:00 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * function.c (nonlocal_goto_handler_slots): Renamed from - nonlocal_goto_handler_slot; now an EXPR_LIST chain. - (push_function_context_to): Adjust for this change. - (pop_function_context_from): Likewise. - (init_function_start): Likewise. - (expand_function_end): Likewise. - * function.h (struct function): Likewise. - * calls.c (expand_call): Likewise. - * explow.c (allocate_dynamic_stack_space): Likewise. - * expr.h (nonlocal_goto_handler_slots): Rename its declaration. - * stmt.c (declare_nonlocal_label): Make a new handler slot for each - label. - (expand_goto): When doing a nonlocal goto, find corresponding handler - slot for it. Don't put the label address in the static chain register. - (expand_end_bindings): Break out nonlocal goto handling code into - three new functions. - (expand_nl_handler_label, expand_nl_goto_receiver, - expand_nl_goto_receivers): New static functions, broken out of - expand_end_bindings and adapted to create one handler per nonlocal - label. - * function.c (delete_handlers): Delete insn if it references any of - the nonlocal goto handler slots. - * i960.md (nonlocal_goto): Comment out code that modifies - static_chain_rtx. - * sparc.md (nonlocal_goto): Likewise. - (goto_handler_and_restore_v9): Comment out. - (goto_handler_and_restore_v9_sp64): Comment out. - -Thu Nov 19 23:44:38 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * expr.c (STACK_BYTES): Delete unused macro. - * calls.c: Provide default for PREFERRED_STACK_BOUNDARY. - (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. - (expand_call): Likewise. - (emit_library_call): Likewise. - (emit_library_call_value): Likewise. - * function.c: Provide default for PREFERRED_STACK_BOUNDARY. - (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. - * explow.c: Provide default for PREFERRED_STACK_BOUNDARY. - (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. - (allocate_dynamic_stack_space): Likewise. - * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro. - (STACK_BOUNDARY): Update description to reflect the new situation. - -Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (relax_delay_slots): When optimizing for code size, if a - return with a filled delay slot is followed by a return with an - unfilled delay slot, delete the first return and reemit the insn - that was previously in its delay slot. - - * i860.c (single_insn_src_p): Add missing parens. - * ginclude/math-3300.h: Likewise. - -Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org) - - * regclass.c (init_reg_sets_1): Add prototype. - (init_reg_modes): Likewise. - -1998-11-19 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * c-common.c: Change warning messages to say `comparison is - always true' or `comparison is always false' instead of the - confusing `is always 0', `is always 1'. - -Thu Nov 19 19:05:49 1998 Per Bothner <bothner@cygnus.com> - - * print-tree.c (print_node): After printing BLOCK or BIND_EXPR, - break instead of return (which loses closing '>'). - -Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com) - - * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not - standard 387 constants. - - * i386.md (jump): Explicitly set "memory" attribute. - (indirect_jump, prologue_set_stack_ptr): Likewise. - (prologue_get_pc_and_set_got, pop): Likewise. - (allocate_stack_worder, blockage, return_internal): Likewise. - (return_pop_internal, nop): Likewise. - (epilogue_set_stack_ptr, leave): Likewise. - -Thu Nov 19 15:42:54 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/coff.h: Set USER_LABEL_PREFIX to "_". - -Thu Nov 19 23:20:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_for_value_p): - Early auto_inc reloads don't conflict with outputs. - -Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h). - Instead call AC_HEADER_SYS_WAIT. - - * collect2.c: Don't provide defaults for sys/wait.h macros. - * gcc.c: Likewise. - * protoize.c: Likewise. Also, don't include sys/wait.h. - - * system.h: Include sys/wait.h and provide macro defaults. - -1998-11-19 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * Makefile.in (mandir): Set to @mandir@. - (man1dir): New variable to hold the former value of $(mandir). - Replace all uses of $(mandir) by $(man1dir). - -Wed Nov 18 16:31:28 1998 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads_address_part): If have a CONST_INT, create - a new one before passing it to force_const_mem. - - * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in - find_reloads_address call. - -Wed Nov 18 22:13:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (store_expr): Don't generate load-store pair - if TEMP is identical (according to ==) with TARGET. - -Tue Nov 17 22:25:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_for_value_p): When considered reload - has an output, matching inputs are not sufficient to avoid conflict. - -Tue Nov 17 11:51:16 1998 Mark Mitchell <mark@markmitchell.com> - - * hash.h (hash_table_key): New type. - (hash_entry): Change `string' field to generic `key'. - (hash_table): Add `comp' and `hash' functions. - (hash_table_init): Take them as input. - (hash_table_init_n): Likewise. - (hash_lookup): Modify for generic keys. - (hash_newfunc): Likewise. - (hash_traverse): Likewise. - (string_hash): New function. - (string_compare): Likewise. - (string_copy): Likewise. - * hash.c (hash_table_init_n): Modify for generic keys. - (hash_table_init): Likewise. - (hash_lookup): Likewise. - (hash_newfunc): Likewise. - (hash_traverse): Likewise. - (string_hash): Split out from hash_lookup. - (string_compare): New function. - (string_copy): Split out from hash_lookup. - * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash - tables. - (symbol_hash_lookup): Likewise. - (file_hash_newfunc): Likewise. - (file_hash_lookup): Likewise. - (demangled_hash_newfunc): Likewise. - (demangled_hash_lookup): Likewise. - (tlink_int): Likewise. - (read_repo_file): Likewise. - (recompile_files): Likewise. - (demangle_new_symbols): Likewise. - (scan_linker_output): Likewise. - -Tue Nov 17 17:13:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * flow.c (insn_dead_p): New argument NOTES. Changed all callers. - -Mon Nov 16 17:56:07 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (output_mi_thunk): Improve test for local branch. - -Mon Nov 16 17:56:07 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000.c (output_mi_thunk): Correct test for aggregate values. - -Mon Nov 16 21:02:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_before_p): Delete. - Changed all callers to use reload_reg_free_for_value_p instead. - (reload_reg_free_for_value_p): Handle more reload types. - A RELOAD_FOR_INPUT doesn't conflict with its - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS. - Add special case for OUT == const0_rtx. - Added ignore_address_reloads argument. Changed all callers. - -Mon Nov 16 02:22:29 1998 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (compile_file): Don't pedwarn about undefined static - functions just because we passed -Wunused. - -Mon Nov 16 04:41:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * function.c (purge_addressof_1): Unshare rtl created by - store_bit_field. - -Mon Nov 16 04:23:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (regmove_optimize): Don't do anything but - optimize_reg_copy[123] when flag_regmove is not set. - -Sat Nov 14 15:05:07 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode - value in paradoxical SImode result, rather than truncating midpoint. - -Fri Nov 13 22:19:23 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (reg_not_elim_operand): New. - * alpha.h (PREDICATE_CODES): Add it. - * alpha.md (s48addq, s48subq patterns): Use it as the predicate - for the multiplicand. - -Fri Nov 13 22:50:37 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (movsf): Remove explicit secondary-reload-like - functionality. Only truncate SFmode store if in FPR. - (movsf splitters): Combine const_double splitters. - (movsf_hardfloat): Add GPR support. - -Fri Nov 13 11:02:11 1998 Stan Cox <scox@cygnus.com> - - * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to - deprecate -mlive-g0 and -mbroken-saverestore. - * t-splet (MULTILIB_OPTIONS): Likewise. - - * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size - in a leaf function. Clarify total_size/extra_size relationship. - -Thu Nov 12 19:20:57 1998 Geoffrey Noer <noer@cygnus.com> - - * i386/cygwin32.asm: Delete. - * i386/cygwin.asm: New file, renamed from cygwin32.asm. - * i386/cygwin32.h: Delete. - * i386/cygwin.h: New file, renamed from cygwin32.h. - * i386/t-cygwin32: Delete. - * i386/t-cygwin: New file, renamed from t-cygwin32. Include - cygwin.asm instead of cygwin32.asm. Remove "32" from comment. - * i386/x-cygwin32: Delete. - * i386/x-cygwin: New file, renamed from x-cygwin32. - * i386/xm-cygwin32: Delete. - * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly - renamed cygwin_ funcs for path translations. - * i386/win32.h: Define __CYGWIN__ when -mcygwin given. - * i386/winnt.c: Remove "32" from comment about cygwin. - * i386/mingw32.h: Fix references to cygwin32.h in light of above. - * rs6000/cygwin32.h: Delete. - * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add - -D__CYGWIN__ to CPP_PREDEFINES. - * rs6000/x-cygwin32: Delete. - * rs6000/x-cygwin: New file, renamed from x-cygwin32. - * rs6000/xm-cygwin32: Delete. - * rs6000/xm-cygwin: New file, renamed from xm-cygwin32. - - * configure.in: Check for cygwin* instead of cygwin32. Account - for the rename of cygwin-related config files to lose the "32"s. - * configure: Regenerate. - - * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c, - toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__. - -Wed Nov 11 12:25:19 1998 Tom Tromey <tromey@cygnus.com> - - * Makefile.in (JAVAGC): New macro. - * configure: Rebuilt. - * configure.in: Recognize --enable-java-gc argument. Subst - `JAVAGC' variable. - -Thu Nov 12 03:32:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - Handle equivalences that have been obscured by gcse: - - * reload1.c (reload): Handle equivalences set up in multiple places. - * local-alloc.c (reg_equiv_init_insns): New variable. - (no_equiv): New function. - (update_equiv_regs): Handle equivalences set up in multiple places. - Don't ignore an insn just because its destination is likely to be - spilled. - -Wed Nov 11 13:46:13 1998 Jim Wilson <wilson@cygnus.com> - - * except.c (expand_eh_return): Readd force_operand call lost in - Sept 15 change. - -Tue Nov 10 17:04:11 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case. - -1998-11-09 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H. - -Mon Nov 9 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * regmove.c (regmove_optimize): Fix error in last change. - -Mon Nov 9 16:37:52 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * mips.c (function_prologue): When TARGET_MIPS16, adjust the register - offset in the .mask pseudo to compensate for frame pointer adjustments. - (mips16_fp_args, build_mips16_call_stub): For little endian, do not - word swap arguments moved to/from FP registers. - * mips16.S (DFREVCMP): Reverse arguments to OPCODE. - -Mon Nov 9 09:47:06 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Nov 9 02:14:14 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (delete_output_reload_insn): If a pseudo is set multiple - times, then it can not be completely replaced. - -Mon Nov 9 00:39:02 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length. - -Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gansidecl.h: Prepend a "G" to the macro wrapping this file - (to distinguish it from the macro wrapping ansidecl.h.) - Include libiberty's ansidecl.h. Remove all redundant definitions. - Define the PROTO() style macros in terms of the PARAMS() ones. - - - * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not - __STDC__, when deciding whether to use ANSI variable args. - (emit_library_call_value): Likewise. - - * cccp.c (error): Likewise. - (warning): Likewise. - (error_with_line): Likewise. - (warning_with_line): Likewise. - (pedwarn): Likewise. - (pedwarn_with_line): Likewise. - (pedwarn_with_file_and_line): Likewise. - (fatal): Likewise. - - * cexp.y (error): Likewise. - (pedwarn): Likewise. - (warning): Likewise. - - * collect2.c (fatal_perror): Likewise. - (fatal): Likewise. - (error): Likewise. - - * combine.c (gen_rtx_combine): Likewise. - - * cpperror.c (cpp_message): Likewise. - (cpp_fatal): Likewise. - - * cpplib.c (cpp_error): Likewise. - (cpp_warning): Likewise. - (cpp_pedwarn): Likewise. - (cpp_error_with_line): Likewise. - (cpp_warning_with_line): Likewise. - (cpp_pedwarn_with_line): Likewise. - (cpp_pedwarn_with_file_and_line): Likewise. - - * cpplib.h: Don't define PARAMS() macro. - - * demangle.h: Likewise. - - * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__, - when deciding whether to use ANSI variable args. - - * emit-rtl.c (gen_rtx): Likewise. - (gen_rtvec): Likewise. - - * final.c (asm_fprintf): Likewise. - - * fix-header.c (cpp_message): Likewise. - (fatal): Likewise. - (cpp_fatal): Likewise. - - * gcc.c (concat): Likewise. - (fatal): Likewise. - (error): Likewise. - - * genattr.c (fatal): Likewise. - - * genattrtab.c (attr_rtx): Likewise. - (attr_printf): Likewise. - (fatal): Likewise. - - * gencodes.c (fatal): Likewise. - - * genconfig.c (fatal): Likewise. - - * genemit.c (fatal): Likewise. - - * genextract.c (fatal): Likewise. - - * genflags.c (fatal): Likewise. - - * genopinit.c (fatal): Likewise. - - * genoutput.c (fatal): Likewise. - (error): Likewise. - - * genpeep.c (fatal): Likewise. - - * genrecog.c (fatal): Likewise. - - * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when - deciding whether to declare `tree_node' and `rtx_def'. - - * hash.h: Don't define stuff we get from gansidecl.h. - - * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS(). - (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding - whether to use ANSI variable args. - (error): Likewise. - - * prefix.c (concat): Likewise. - - * scan.h: Likewise. - - * system.h: Likewise. - - * toplev.c (error_with_file_and_line): Likewise. - (error_with_decl): Likewise. - (error_for_asm): Likewise. - (error): Likewise. - (fatal): Likewise. - (warning_with_file_and_line): Likewise. - (warning_with_decl): Likewise. - (warning_for_asm): Likewise. - (warning): Likewise. - (pedwarn): Likewise. - (pedwarn_with_decl): Likewise. - (pedwarn_with_file_and_line): Likewise. - (sorry): Likewise. - (really_sorry): Likewise. - - * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding - whether to declare `tree_node' and `rtx_def'. - - * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when - deciding whether to use ANSI variable args. - (build_nt): Likewise. - (build_parse_node): Likewise. - -Sun Nov 8 13:10:55 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB. - -Sat Nov 7 22:26:19 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * collect2.c (main, case 'b'): Use else if. - -Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in (host_xm_file, build_xm_file, xm_file, tm_file): - Arrange to include gansidecl.h in {ht}config.h & tm.h just - before the config/ directory headers. - (tm_file_list, host_xm_file_list, build_xm_file_list): Handle - gansidecl.h in the list of dependencies. - - * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h. - (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib, - mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o, - gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o, - dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o, - cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o): - Likewise. - - * cccp.c: Don't include gansidecl.h. - * cexp.y: Likewise. - * collect2.c: Likewise. - * config/c4x/c4x.c: Likewise. - * config/v850/v850.h: Likewise. - * cppalloc.c: Likewise. - * cpperror.c: Likewise. - * cppexp.c: Likewise. - * cppfiles.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * cppmain.c: Likewise. - * cppulp.c: Likewise. - * demangle.h: Likewise. - * doprint.c: Likewise. - * dyn-string.c: Likewise. - * eh-common.h: Likewise. - * fix-header.c: Likewise. - * frame.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * gen-protos.c: Likewise. - * gencheck.c: Likewise. - * halfpic.h: Likewise. - * hash.c: Likewise. - * machmode.h: Likewise. - * mbchar.c: Likewise. - * prefix.c: Likewise. - * protoize.c: Likewise. - * recog.h: Likewise. - * rtl.h: Likewise. - * scan-decls.c: Likewise. - * tree.h: Likewise. - * varray.h: Likewise. - -Sat Nov 7 11:37:53 1998 Richard Henderson <rth@cygnus.com> - - * i386.md (call_value_pop): If we're not popping anything, - defer to call_value. - (call_pop): Likewise defer to call. - -Sat Nov 7 02:49:56 1998 Richard Henderson <rth@cygnus.com> - - * function.c (purge_addressof): Clear purge_addressof_replacements - only after processing the whole function. - -Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload): If we can not perform a particular elimination - when we thought we could earlier, then we must always iterate through - the loop at least one more time. - -Fri Nov 6 19:37:33 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (add_operand): Simplify the CONST_INT match. - (sext_add_operand): Correct typo in comparison by using - CONST_OK_FOR_LETTER_P. - * alpha.md (s?addq): Use sext_add_operand to allow the negative - constant alternatives to be generated. - (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow - small constants, since the hw instructions do. - -Fri Nov 6 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a - previous insn to store directly into our reload register, make sure - that if the source of the previous insn is a reload register, its - spill_reg_store and spill_reg_stored_to values are cleared. - -Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (floatunssidf2_internal splitter): Use base register - operand, not hard-coded SP. - -Fri Nov 6 04:07:53 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * jump.c (calculate_can_reach_end): Fix thinko. - -Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (fill_simple_delay_slots): Fix typo. - - * romp.h (LEGITIMIZE_ADDRESS): Fix typo. - -Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz) - - * i386.md (extendsidi2): Use # in the output template. - (extendsidi splitters): New splitters. - -Thu Nov 5 11:13:27 1998 Nick Clifton <nickc@cygnus.com> - - * configure.in: Use unknown-elf.h as tm_file for arm-elf - configuarions. - * configure: Regenerate. - -Thu Nov 5 07:59:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * jump.c (init_label_info, delete_barrier_successors, - mark_all_labels, delete_unreferenced_labels, - delete_noop_moves, calculate_can_reach_end): New functions broken - out of jump_optimize. - (jump_optimize): Use them. - -Thu Nov 5 07:57:45 EST 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.c (expand_fixup_region_end): Make sure outer context labels - are not issued in an inner context during cleanups. - -Thu Nov 5 04:03:06 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (addsi3, subsi3): No new temporaries once cse is - no longer expected. - -Thu Nov 5 03:29:19 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as - to expose this midpoint to CSE. - -Thu Nov 5 03:42:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. - -Thu Nov 5 10:53:01 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * configure.in: Bring over gcc2 change of Nov 19 1997. - -Wed Nov 4 23:43:08 1998 Graham <grahams@rcp.co.uk> - - * toplev.c (output_lang_identify): Make definition dependent on - ASM_IDENTIFY_LANGUAGE. - - * print-rtl.c (spaces): Make static. - -Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson <hp@axis.se> - - * extend.texi: Clarify proper uses for register clobbers in asms. - -Wed Nov 4 22:16:36 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * recog.h (enum op_type): Define. - (constrain_operands): Adjust prototype. - (recog_op_type): Declare new variable. - * recog.c (recog_op_type): New variable. - (insn_invalid_p): Allow modifying an asm statement after reload. - (extract_insn): Set up recog_op_type. - (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed. - Don't compute operand types, use recog_op_type. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * caller-save.c (init_caller_save): Use extract_insn, not insn_extract. - * reorg.c (fill_slots_from_thread): Likewise. - * reload1.c (reload_as_needed): Likewise. - (gen_reload): Likewise. - (inc_for_reload): Likewise. - (reload_cse_simplify_operands): Likewise. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * genattrtab.c (write_attr_case): Generate call to extract_insn, not - insn_extract. - * final.c (final_scan_insn): Use extract_insn, not insn_extract. - (cleanup_operand_subregs): Use extract_insn, not insn_extract. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * regmove.c (find_matches): Likewise. Change meaning of the return - value to be nonzero if the optimization can be performed, zero if - not. All callers changed. - Shorten some variable names to fix formatting problems. - (regmove_optimize): Shorten some variable names to fix formatting - problems. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * regclass.c (scan_one_insn): Likewise. - (record_reg_classes): Don't compute operand types, use recog_op_type. - * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use - recog_constraints instead. - -Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h (flow2_completed): Declare. - * flow.c (flow2_completed): Definition. - * toplev.c (rest_of_compilation): Set and clear flow2_completed - as necessary. - -Wed Nov 4 19:15:37 1998 "Melissa O'Neill" <oneill@cs.sfu.ca> - - * Makefile.in (libcpp.a): Ranlib libcpp.a - - * cppulp.c (user_label_prefix): Initialize. - -Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com) - - * flow.c (mark_regs_live_at_end): Mark the stack pointer as live - at a RETURN if current_function_sp_is_unchanging is set. - -Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * emit-rtl.c (try_split): Fixed error in Oct 10 patch. - -Wed Nov 4 15:11:15 1998 Geoffrey Noer <noer@cygnus.com> - - * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL, - TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New. - (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options. - (CPP_PREDEFINES): Don't define __CYGWIN32__ here. - (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options. - (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition - to __CYGWIN32__. - (LIB_SPEC): Handle -mno-cyginw option. - (LINK_SPEC): Handle -mdll. - -Wed Nov 4 22:56:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads): Fix test for usage by other reload - to handle secondary reloads properly. - -Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an - intermediate structure which has exactly the members provided by - ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the - static intermediate structure. - - (init_elim_table): Xmalloc() `reg_eliminate', and initialize it - from the intermediate structure. Do the same analogous fix in - the case where ELIMINABLE_REGS is not defined. - -Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (SELECT_SECTION): Fix thinko. - -Tue Nov 3 17:51:36 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (output_call_frame_info): Comments on last change. - -Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (add_constant): When taking the address of an item in the - pool, get the mode of the item addressed. - - * arm.c (final_prescan_insn case INSN): If an insn doesn't - contain a SET or a PARALLEL, don't consider it for conditional - execution. - - Restore ABI compatibility for NetBSD. - * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in - arm.h - (RETURN_IN_MEMORY): Likewise. - -Mon Nov 2 11:46:17 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations. - (m32r_output_block_move): Rewrite bytes < 4 handling. - -Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in: Call AC_FUNC_VFORK. - - * collect2.c: Define VFORK_STRING as a printable string for - error messages (either "vfork" or "fork".) If HAVE_VFORK_H is - defined, include vfork.h. If VMS is defined, define vfork() - appropriately. Remove vfork check on USG, we're using autoconf. - (collect_execute): Pass VFORK_STRING to fatal_perror instead of - checking locally what string to pass. - (scan_prog_file): Likewise. - (scan_libraries): Likewise. - - * gcc.c: Remove vfork check on USG, we're using autoconf. - Besides, no calls to vfork/fork occur in this file. - - * protoize.c: Likewise. - -Mon Nov 2 07:52:28 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * configure.in (DEFAULT_LINKER): renamed from LD - (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch - (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS - * configure: rebuilt - -Mon Nov 2 01:48:10 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * BUGS: fix the regexp for `more' to find the appropriate node. - Reported by Joerg Pietschmann <joerg_pietschmann@zkb.ch> - - * BUGS: added link to the WWW FAQ - -Sun Nov 1 18:27:15 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com) - - * From Christian Gafton: - * i386/linux.h (CPP_PREDEFINES): Add -D__i386__. - * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__. - * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__. - -Sat Oct 31 21:42:39 1998 Mark Mitchell <mark@markmitchell.com> - - * c-common.c (c_get_alias_set): Allow all type-punning through - unions. Don't get confused about the type of a bit-field, despite - the antics of build_modify_expr. - -Sat Oct 31 22:35:29 1998 Jean-Pierre Radley <jpr@jpr.com> - - * fixinc.sco: Paramaterize #include_next values. - * fixinc/fixinc.sco: Likewise. - -Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): No longer set reload_completed. - * reload1.c (reload): Set it here. Perform instruction splitting - after reload has completed if we will be running the scheduler - again. - -Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize): Initialize mappings from INSN_UID to - EH region if exceptions are enabled and we're performing cross - jump optimizations. - (find_cross_jump): Exit loop if the insns are in different EH regions. - -Sat Oct 31 10:02:48 1998 Mark Mitchell <mark@markmitchell.com> - - * dwarf2out.c (output_call_frame_info): Use - ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c. - -Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - Reinstall Apr 24th fix, lost during May 6th gcc2 merge: - * c-common.c (check_format_info): Don't check for the 'x' - format character twice, instead check for 'x' and 'X' - -Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (assembler features): Also make gas is configured if - we find it in the souce tree. - -Fri Oct 30 13:23:20 1998 Richard Henderson <rth@cygnus.com> - - * i386.c (i386_comp_type_attributes): Compare whether the - attributes are defined, not their tree nodes. - -Fri Oct 30 11:39:47 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * configure.in (gxx_include_dir): bitten by autoconf quoting - characters :-( - * configure: rebuilt - -Fri Oct 30 10:43:29 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * configure.in: Ignore non-absolute value in $AS. - -Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de> - - * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko. - -Fri Oct 30 00:42:34 1998 Mark Elbrecht <snowball3@usa.net> - - * configure.in (msdosdjgpp): Set exeext and target_alias. - -Thu Oct 29 23:55:43 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * flow.c (XNMALLOC): New macro. - (flow_int_list_blocks, basic_block_succ, basic_block_pred): New - static variables. - (add_edge, add_edge_to_label): New static functions. - (free_bb_memory): New function. - (flow_delete_insn): Delete function. - (basic_block_drops_in): Delete variable. - (find_basic_blocks): Allocate and initialize basic_block_head, - basic_block_succ. Don't allocate basic_block_drops_in. - Call free_bb_memory at the beginning. - (find_basic_blocks_1): Don't do multiple passes. - Delete code to compute basic_block_drops_in. - After calling make_edges, mark blocks reached by current block live. - Update test for unreachable live blocks. - (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers - changed. - Simplify to call add_edge_to_label when a LABEL_REF is found. - (make_edges): Simplify to call add_edge_to_label instead of - mark_label_ref most of the time. - Compute here whether control drops into the next block. - (delete_unreachable_blocks): Return void. All callers changed. - Delete unreachable blocks in reverse order. - After deleting all unreachable blocks, renumber the remaining ones - and update n_basic_blocks. - (delete_block): Speed up deletion a bit. - Don't set basic_block_drops_in for deleted blocks. - (free_basic_block_vars): Don't free basic_block_drops_in. - (life_analysis_1): Update to use new edge representation. - (dump_flow_info): Delete code to print basic block info; call - dump_bb_data instead. - (compute_preds_succs): Delete code to recompute basic_block_drops_in - and uid_block_number. - Simply copy the previously computed cfg. - (dump_bb_data): New arg LIVE_INFO. All callers changed. - Print register lifetime information if LIVE_INFO is nonzero. - * basic-block.h (dump_bb_data): Adjust prototype. - * gcse.c (gcse_main): Update call to dump_bb_data. - * rtl.h (free_bb_memory): Declare. - * toplev.c (rest_of_compilation): Call free_bb_memory. - - * reload1.c (struct elim_table): Delete MAX_OFFSET member. - (update_eliminable_offsets): Don't compute it. - (set_initial_elim_offsets): Don't initialize it. - Break out some code into set_initial_label_offsets so the rest of - this function can be called from reload_as_needed. - Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when - ELIMINABLE_REGS isn't. - (set_initial_label_offsets): New function, broken out of - set_initial_elim_offsets. - (set_offsets_for_label): New function, broken out of set_label_offsets - and reload_as_needed. - (reload): Call the two new functions. - (reload_as_needed): Call set_initial_elim_offsets instead of - duplicating the code. Likewise for set_offsets_for_label. - - * reload1.c (choose_reload_regs): Fix typo in Oct 17 change. - (emit_reload_insns): Ensure that when we set reg_reloaded_valid for - any hard reg, reg_reloaded_dead contains valid data. - -Thu Oct 29 22:30:54 1998 Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de> - - * i386.c (i386_comp_type_attributes): Return nonzero for mismatched - "stdcall" and "cdecl" attributes. - -Thu Oct 29 23:55:43 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload1.c (choose_reload_regs): Fix typo in Oct 17 change. - -Thu Oct 29 19:05:17 1998 Jim Wilson <wilson@cygnus.com> - - * sched.c (update_flow_info): Add code to ! found_orig_dest case to - handle deleted no-op moves of hard registers. - * haifa-sched.c (update_flow_info): Likewise. - -Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end - of the sequences to reload the HILO register which do not actually - reference HILO. - -Thu Oct 29 12:39:35 1998 Jim Wilson <wilson@cygnus.com> - - * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field. - -Thu Oct 29 14:10:22 EST 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.c (emit_eh_context): Make the EH context register stay alive - at -O0 so stupid.c doesn't get confused. - -1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * emit-rtl.c (try_split): Do not try to split a BARRIER. - -Thu Oct 29 01:33:54 1998 Jan Hubicka <hubicka@freesoft.cz> - Jeffrey A Law (law@cygnus.com) - - * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM - (zero_extendsidi2): Use # in output template and handle completely by - splits. - (zero_extend splitters): New define_splits. - (ashiftrt_32): New pattern. - -Wed Oct 28 22:58:35 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (append_random_chars): New fn. - (get_file_function_name_long): Use it. - -Wed Oct 28 22:27:05 1998 Richard Henderson <rth@cygnus.com> - - * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last. - (LIBCPP_OBJS): New. Add cppulp.o. - (cppmain, fix-header): Depend on and use libcpp.a. - * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead - of the individual object files. - * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@, - last. - - * cccp.c (user_label_prefix): New. - (main): Set it off -f*leading-underscore. - (special_symbol): Use it. - * cpplib.c (special_symbol): Likewise. - (cpp_handle_option): Handle -f*leading-underscore. - * cppulp.c: New file. - - * output.h (user_label_prefix): Declare it. - * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix. - * toplev.c (f_options, main): Handle -f*leading-underscore. - - * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of - referencing USER_LABEL_PREFIX directly. - * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise. - * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. - * final.c (asm_fprintf): Use user_label_prefix instead. - * arm/thumb.c (thumb_print_operand): Likewise. - - * gcc.c (default_compilers): Pass -f*leading-underscore on to - cpp wherever appropriate. - -Wed Oct 28 23:09:25 1998 Robert Lipe <robertl@dgii.com> - - * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer- - specific compiler switches. - -Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead - of rtl.h. - -Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate - structure which has exactly the members provided by EXTRA_SPECS. - Xmalloc() the real `extra_specs', and initialize it from this - intermediate structure. - - * alpha.h (EXTRA_SPECS): Revert change for missing initializers. - - * mips.h (EXTRA_SPECS): Likewise. - - * sparc.h (EXTRA_SPECS): Likewise. - -Wed Oct 28 16:46:07 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * function.c (purge_addressof_1): Instead of aborting when a - bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not - work just put the ADDRESSOF on stack. Otherwise remember all such - successfull replacements, so that exactly the same replacements - can be made on the REG_NOTEs. Remove the special case for CALL - insns again. - (purge_addressof_replacements): New variable. - (purge_addressof): Clear it at end. - -1998-10-28 16:10 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB. - (lang_init): Call check_newline always. - * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling - cpp_start_read, set yy_cur and yy_lim to read from - parse_in.token_buffer, so that we'll see the first #line - directive. - * cpplib.c (cpp_start_read): finclude the main input file - before processing -include/-imacros. Process -imacros and - -include separately, and handle -include by stacking a - buffer for the file in question as if it'd been #included. - * toplev.c (documented_lang_options) Recognize -H when - USE_CPPLIB is on. - -1998-10-28 16:09 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c: Merge do_once into do_pragma. Break file handling - code out of do_include. - Move append_include_chain, deps_output, - file_cleanup, redundant_include_p, import_hash, - lookup_import, add_import, read_filename_string, read_name_map, - open_include_file, finclude, safe_read to cppfiles.c. - Move prototypes for deps_output, append_include_chain, - finclude to cpplib.h. Move definition of struct - file_name_list there also. - - * cppfiles.c: New file. Contains all the above functions - broken out of cpplib.c; also hack_vms_include_specification - from cccp.c and find_include_file, a new function broken out of - do_include. - - * Makefile.in (cppmain): Depend on cppfiles.o. - (fix-header): Likewise. - (cppfiles.o): New target. - * configure.in (--enable-c-cpplib): Add cppfiles.o to - extra_c_objs. Add ../cppfiles.o to extra_cxx_objs. - -Wed Oct 28 14:06:49 1998 Jim Wilson <wilson@cygnus.com> - - * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort - if pending_types is non-zero. - (dwarfout_finish): Verify pending_types is zero before finishing. - -Wed Oct 28 10:29:09 1998 Nick Clifton <nickc@cygnus.com> - - * expr.c (convert_move): Use shifts to perform the move if a - suitable extend pattern cannot be found. Code written by - Richard Henderson <rth@cygnus.com>. - -Wed Oct 28 03:59:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * regclass.c (renumber, regno_allocated): New static variables, moved - out of allocate_reg_info. - (allocate_reg_info): Move these two variables outside the function. - Move code to free memory into new function free_reg_info. - (free_reg_info): New function, broken out of allocate_reg_info. - * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info. - * rtl.h (allocate_reg_info): Don't declare. - (free_reg_info): Declare. - - * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment. - -Wed Oct 28 02:38:12 1998 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (compile_file): Temporarily revert last change. - -Wed Oct 28 00:00:35 1998 Jason Merrill <jason@yorick.cygnus.com> - - * c-typeck.c (convert_for_assignment): Parenthesize. - -1998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * reload1.c (delete_output_reload): Avoid ambigous else. - -Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (compile_file): Call allocate_reg_info to free register - table memory. - * rtl.h (allocate_reg_info): Declare. - - * PROJECTS: Remove entry for local spilling. - - * final.c (cleanup_subreg_operands): New function. - (final_scan_insn): Use it. - (alter_subreg): Clear the "used" field when we turn a SUBREG into - a REG. - * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG - operands when reload has finished. - * reload.h (cleanup_subreg_operands): Declare.. - * flow.c (life_analysis_1): No longer delete CLOBBER insns after - reload. Handled in reload itself. - -Tue Oct 27 23:32:34 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload1.c (verify_initial_offsets): New function. - (reload): Call it after reload_as_needed. Also verify that the frame - size stays constant during reload_as_needed. - * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change. - - * reload.h (struct insn_chain): Add need_operand_change element. - * reload1.c (new_insn_chain): Clear it. - (calculate_needs_all_insns): Set it; don't overload need_reload. - (reload_as_needed): Use it. - - * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of - reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS - and reload_address_index_reg_class. - (find_reloads_address_1): Likewise. - * reload.h (reload_address_base_reg_class, - reload_address_index_reg_class): Don't declare. - * reload1.c (reg_old_renumber, pseudo_previous_regs, - pseudo_forbidden_regs, bad_spill_regs_global): New static variables. - (used_spill_regs): Now static. - (reload_address_base_reg_class, reload_address_index_reg_class, - regs_explicitly_used, counted_for_groups, counted_for_nongroups, - basic_block_needs, max_needs, group_size, group_mode, max_groups, - max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn, - forbidden_regs): - Deleted variables. - (init_reload): Delete code to compute base/index reg classes. - (reload): Delete variable J. - Delete code to manage basic_block_needs. - Don't compute regs_explicitly_used. - Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs, - pseudo_previous_regs. - Initialize bad_spill_regs_global. - Don't call order_regs_for_reload here. - Don't initialize spill_reg_order and n_spills. - Don't forbid explicitly used regs to be used for spill regs. - Change main loop to infinite loop, with explicit break statements. - Make SOMETHING_CHANGED variable local to that loop. - Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn, - max_groups_insn, max_nongroups_insn, group_size, group_mode. - Make sure spilled_speudos is cleared before calling spill_hard_reg or - new_spill_reg. - Don't call dump_needs. - Delete code to reset potential_reload_regs. - Delete code to terminate loop conditional on the global needs variables - showing no further needs. - (calculate_needs_all_insns): Return void. All callers changed. - Initialize somehing_needs_elimination here, not in reload. - Delete avoid_return_reg kludge. - (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void. - All callers changed. - Initialize the group_mode and group_size elements of the arg CHAIN. - Delete code to manage basic_block_needs. - Operate on elements of CHAIN instead of global variables. - Delete avoid_return_reg kludge. - (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void. - All callers changed. - Operate on elements of CHAIN instead of global variables. - Delete special SMALL_REGISTER_CLASSES code. - Delete spill_failure code; now in new_spill_reg. - (find_group): Lose GLOBAL arg, take CHAIN arg, return void. - All callers changed. - Operate on elements of CHAIN instead of global variables. - (maybe_mark_pseudo_spilled): New static function. - (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void. - All callers changed. - Operate on elements of CHAIN instead of global variables. - Call order_regs_for_reload here, not in reload. - Initialize spill_reg_order and n_spills. - Simplify test whether an asm insn is involved. - Delete spill_failure code; now in new_spill_reg. - Call maybe_mark_pseudo_spilled for everything marked as live in - CHAIN. Merge CHAIN's used_spill_regs into the global variable - used_spill_regs. - (dump_needs): Take CHAIN arg. No longer static, to prevent the - compiler from optimizing this function (now unused) away. - Operate on elements of CHAIN instead of global variables. - (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers - changed. - Operate on elements of CHAIN instead of global variables. - (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args, - take CHAIN arg. All callers changed. - Operate on elements of CHAIN instead of global variables. - (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take - CHAIN, NONGROUP args. Return void. All callers changed. - Verify caller isn't trying to spill a pseudo. - Simplify test for illegal reg, just use bad_spill_regs. - Generate better error messages. - Operate on elements of CHAIN instead of global variables. - Mark spilled register in CHAIN's used_spill_regs element. - Don't call spill_hard_reg. - (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed. - Mark spilled hard regs in bad_spill_regs_global. - Mark affected pseudos in spilled_pseudos, but don't spill them. - (ior_hard_reg_set): New static function. - (finish_spills): Return int. All callers changed. - Compute spill_reg_order, n_spills and spill_regs here. Also update - regs_ever_live for regs used as spills. - For every pseudo in spilled_pseudos, spill it and mark the previous - hard reg it had in pseudo_previous_regs. Compute which hard regs - arseudo): New static function. - (order_regs_for_reload): Take CHAIN arg. All callers changed. - Initialize bad_spill_regs from bad_spill_regs_global, then merge any - hard registers explicitly used across the current insn into the set. - Compute hard_reg_n_uses taking only pseudos live across this insn - into account. - Tweak sorting of potential_reload_regs. - (compare_spill_regs): Delete function. - (reload_as_needed): Don't sort the spill_regs array, it's computed - in proper order in finish_spills. - Delete avoid_return_reg kludge. - Delete code to manage basic_block_needs. - (allocate_reload_reg): Minor speed/readability tweaks. - Operate on elements of CHAIN instead of global variables. - (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed. - Delete avoid_return_reg kludge. - Initialize reload_reg_used from CHAIN's used_spill_regs element. - Delete unused label FAIL. - (reload_combine): Replce reload_address_index_reg_class with - INDEX_REGS. - Don't use used_spill_regs to determine information about lifetime of - hard regs. - -Tue Oct 27 13:15:02 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c (display_help): Ignore empty target specific - options, and if -W is also specified on the command line then - display undocumented options. - - * config/arm/arm.c: Updated with changes in devo sources. - * config/arm/arm.h: Updated with changes in devo sources. - * config/arm/lib1funcs.asm: Updated with changes in devo sources. - * config/arm/lib1thumb.asm: Add ELF support. - -Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * collect2.c (aix64_flag): New variable. - (main, case 'b'): Parse it. - (GCC_CHECK_HDR): object magic number must match mode. - (scan_prog_file): Only check for shared object if valid header. - Print debugging if header/mode mismatch. - -Tue Oct 27 10:15:02 1998 Nick Clifton <nickc@cygnus.com> - - Added support for arm-elf-linux configuration, submitted by Philip - Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf - code developed by Catherine Moore <clm@cygnus.com>. The following - files are affected: - - * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf - targets. - - * configure: Regenerated. - - * config/arm/aout.h: Add default definitions of REGISTER_PREFIX, - USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro - definitions conditional on their not having been already defined. - - * config/arm/lin1funcs.asm: Add ELF only macros to generate .size - and .type directives, and add "(PLT)" qualification to function - calls. - - * config/arm/linux.h: Deleted. This file is now superceeded by - either linux-elf.h or linux-aout.h. - - * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling. - (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel - support). - Move definitions from old linux.h file here. - - * config/arm/elf.h: New file. Generic ARM/ELF support. - - * config/arm/linux-aout.h: New file. Support for Linux with a.out. - - * config/arm/linux-elf.h: New file. Support for Linux with ELF. - - * config/arm/linux-elf26.h: New file. Support for Linux with ELF - using the 26bit APCS. - - * config/arm/unknown-elf.h: New file. Support for OS'es other - than Linux with ELF. - - * config/arm/t-arm-elf: New file. makefile fragment for arm-elf - builds. - - * config/arm/coff.h: Include aout.h for basic assembler macros. - Add support for -mstructure_size_boundary=<n> command line option. - - * config/arm/arm.h: Add support for -mstructure_size_boundary=<n> - command line option. Make macro definitions conditional on their - not having been already defined. - - * config/arm/arm.c: Add support for -mstructure_size_boundary=<n> - command line option. - - -Tue Oct 27 08:56:46 1998 Andrew MacLeod <amacleod@cygnus.com> - - * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING - has been changed to not include a newline. Use this macro instead. - (output_enumeral_list, const_value_attribute, name_attribute, - comp_dir_attribute, prototyped_attribute, producer_attribute, - inline_attribute, pure_or_virtual_attribute, output_inheritance_die, - dwarfout_file_scope_decl, generate_new_sfname_entry, - generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use - ASM_OUTPUT_DWARF_STRING_NEWLINE macro. - -Mon Oct 26 13:35:02 1998 Richard Henderson <rth@cygnus.com> - - * combine.c (subst): Process the inputs to a parallel asm_operands - only once. - -Mon Oct 26 13:32:31 1998 Richard Henderson <rth@cygnus.com> - - * stmt.c (expand_asm_operands): Accept `=' or `+' at any position. - -Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com) - - * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document. - -Mon Oct 26 00:36:58 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> - - * stmt.c (expand_fixup): Set fixup->before_jump to a - NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG. - -Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (recog.o): Depend on toplev.h. - (insn-emit.o): Depend on recog.h. - (insn-peep.o): Depend on recog.h and insn-config.h. - - * combine.c (simplify_set): Remove unused variable `scratches'. - - * final.c (final_scan_insn): Wrap declaration of variables `vlen' - and `idx' in macro conditional controlling their use. - - * genemit.c (main): Make the generated output file include - recog.h. Don't have it declare `insn_operand_constraint', since - we get it from recog.h. - - * genpeep.c (main): Make the generated output file include - insn-config.h and recog.h. - - * recog.c: Include toplev.h. - (extract_insn): Remove unused variable `p'. - - * regclass.c (fix_register): Add missing braces around initializer - for `what_option'. - (allocate_reg_info): Move variable `i' into the scope where it is - used. Change its type to `size_t'. - -Sun Oct 25 13:10:15 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload.c (push_reload): When merging reloads, make sure - that reload_in_reg and reload_in are from the same reload in - all cases. - -Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/crtdll.h (CPP_PREDEFINES): Fix typo. - * i386/mingw32.h (CPP_PREDEFINES): Likewise. - -Fri Oct 23 23:42:03 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * loop.c (loop_has_tablejump): New variable. - (prescan_loop): Scan for it. - (insert_bct): Replace explicit scan with use of it. - * regclass.c (regclass): Restore loop variable j. - (record_reg_classes): Deterine op_types modifiers and initialize - classes[i] before matching constraints. Handle matching - constraints 5-9. - -Fri Oct 23 13:55:48 1998 Jim Wilson <wilson@cygnus.com> - - * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete - subreg support. - -Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips.h (EXTRA_SPECS): Add missing initializers. - -Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc.h (EXTRA_SPECS): Add missing initializers. - (sparc_defer_case_vector): Provide a prototype. - - * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when - comparing it to the result of a pointer subtraction. - -Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast - the argument to (unsigned char). - - * alpha.h (EXTRA_SPECS): Add missing initializers. - (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the - format specifier. - -Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis_1): Enable "rescan" code after reload. - (propagate_block): Delete dead code after reload. - - * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings - back Oct 15, 1998 change. - * haifa-sched.c (update_flow_info): Likewise. - * flow.c (life_analysis_1): Delete CLOBBER insns after reload. - - * mn10200.md (truncated shift): Accept constant inputs too. - -Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com) - - * machmode.h (mode_mask_array): No longer const. - * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined. - -Fri Oct 23 11:19:06 1998 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * frame.c: Somewhat explain `FDE'. - Suggested by Brendan Kehoe - -Fri Oct 23 00:56:11 1998 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (pending_chain): Move up. - (save_expr_status): Do save pending_chain. - (restore_expr_status): And restore it. - * function.h (struct function): Add pending_chain. - -1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The - did not match the code. - -Fri Oct 23 00:07:01 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * regclass.c (regclass): Break out some code into new function - scan_one_insn, and into regclass_init. - (init_cost): New static variable, moved out of regclass. - (regclass_init): Initialize it here, not in . - (scan_one_insn): New static function, broken out of regclass. - * recog.c (apply_change_group): Break out some code into new - function insn_invalid_p. - (insn_invalid_p): New static fn, broken out of apply_change_group. - -Thu Oct 22 22:34:42 1998 Jim Wilson <wilson@cygnus.com> - - * reload1.c (reload_as_needed): When rewrite POST_INC, verify - reg_reloaded_contents matches incremented pseudo. - - * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. - -Fri Oct 23 11:11:56 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for - addressing modes with side effects. These are currently - placeholders for the C4x target. - -Thu Oct 22 16:46:35 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * loop.c (express_from): Make sure that when generating a PLUS of - a PLUS, any constant expression appears on the outermost PLUS. - -Thu Oct 22 15:46:23 1998 Per Bothner (bothner@cygnus.com) - - * Makefile.in (distdir-cvs, distdir-start): Clean up so it - works if "$(srcdir)" != ".". - -Wed Oct 21 19:23:59 1998 Jim Wilson <wilson@cygnus.com> - - * expmed.c (store_bit_field): If need to add a SUBREG, then remove - existing SUBREG if we can, otherwise abort. - -Wed Oct 21 09:58:51 1998 Mark Mitchell <mark@markmitchell.com> - - * c-common.c (c_apply_type_quals_to_decl): Don't crash when - `restrict' is applied to a non-pointer variable. - -Wed Oct 21 09:18:58 1998 Mark Mitchell <mark@markmitchell.com> - - * invoke.texi: Document -flang-isoc9x. - - * tree.h (TYPE_RESTRICT): New macro. - (TYPE_UNQUALIFIED): New manifest constant. - (TYPE_QUAL_CONST): Likewise - (TYPE_QUAL_VOLATILE): Likewise. - (TYPE_QUAL_RESTRICT): Likewise. - (tree_type): Add restrict_flag. Reduce count of free bits. - (tree_decl): Add pointer_alias_set. - (build_qualified_type): New function. - (build_type_variant): Define in terms of build_qualified_type. - * tree.c (set_type_quals): New function. - (make_node): Initializae DECL_POINTER_ALIAS_SET. - (build_type_attribute_variant): Use build_qualified_type and - set_type_quals. - (build_type_variant): Rename, and modify, to become... - (build_qualified_type): New function. - (build_complex_type): Use set_type_quals. - - * c-tree.h (C_TYPE_OBJECT_P): New macro. - (C_TYPE_FUNCTION_P): Likewise. - (C_TYPE_INCOMPLETE_P): Likewise. - (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. - (c_apply_type_quals_to_decl): New function. - (c_build_qualified_type): New function. - (c_build_type_variant): Define in terms of c_build_qualified_type. - (flag_isoc9x): Declare. - * c-typeck.c (qualify_type): Use c_build_qualified_type. - (common_type): Change to use TYPE_QUALS. - (comptypes): Likewise. - (convert_for_assignment): Likewise. - * c-aux-info.c (gen_type): Likewise. Deal with `restrict'. - * c-decl.c (flag_isoc9x): Define. - (c_decode_option): Handle -flang-isoc9x. - (grokdeclarator): Update to handle restrict. Use TYPE_QUALS, - c_build_qualified_type, etc. Use c_apply_type_quals_to_decl. - * c-lex.c (init_lex): Deal with restrict. - (init_lex): Don't treat restrict as a reserved word in - -traditional mode, or without -flang-isoc9x. - * c-lex.h (rid): Add RID_RESTRICT. - * c-parse.gperf (restrict, __restrict, __restrict__): Make - equivalent to RID_RESTRICT. - * c-parse.in (TYPE_QUAL): Update comment. - * c-common.c: Include rtl.h. - (c_find_base_decl): New function. - (c_build_type_variant): Rename, and modify, to become ... - (c_build_qualified_type): New function. - (c_apply_type_quals_to_decl): Likewise. - * toplev.c (documented_lang_options): Add -flang-isoc9x. - -Wed Oct 21 09:15:06 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (TARGET_SWITCHES): Document arm specific - command line switches. - -Tue Oct 20 10:04:51 1998 Graham <grahams@rcp.co.uk> - - * reload.c (loc_mentioned_in_p): Add missing braces to bind - else to correct if. - -Mon Oct 19 16:34:05 1998 Tom Tromey <tromey@cygnus.com> - - * gcc.c (option_map): Added --classpath and --CLASSPATH. - -Tue Oct 20 10:59:02 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * regclass.c (fix_register): Add error message. - * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the - new error message. - -Tue Oct 20 10:12:17 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-decl.c (warn_missing_noreturn): New global variable. - (c_decode_option): Check for new flags -W{no-}missing-noreturn. - (finish_function): Implement missing noreturn warning. - - * c-tree.h (warn_missing_noreturn): Declare extern. - - * invoke.texi: Document new flags. - - * toplev.c (documented_lang_options): Add description. - -Tue Oct 20 22:16:11 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT - loop optimization stable for the C4x. - (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop, - c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get, - c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT - loop optimization). - (c4x_address_conflict): Be more paranoid when packing a volatile - memref in a parallel load/store. - -Tue Oct 20 21:56:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (repeat_block_top, repeat_block_end, - repeat_block_filler): Deleted. - (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber): - Condition code not set if destination register from 'c' class. - (*subbqi3_carry_clobber): Fix typo. - -1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * reorg.c (steal_delay_list_from_target) Check for insns that - modify the condition codes and effect the direction of the jump - in the sequence. - -Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> - - * function.c (purge_addressof_1): Replace call to - emit_insns_before() with emit_insn_before(). - -Mon Oct 19 19:34:03 1998 Mike Stump <mrs@wrs.com> - - * libgcc2.c (__pure_virtual): Call __terminate instead of _exit. - -Mon Oct 19 13:26:24 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * jump.c (sets_cc0_p): Compile only if HAVE_cc0. - -Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (compute_hash_table): Correctly identify hard regs which are - clobbered across calls. - - * loop.c (scan_loop): Be more selective about what invariants are - moved out of a loop. - -Mon Oct 19 10:46:58 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - - * libgcc2.c (eh_context_static): Do not call malloc to allocate the - static eh_context structure. - -Mon Oct 19 10:45:40 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg. All - callers changed. - (try_combine): Don't update max_scratch. - * flow.c (max_scratch, num_scratch): Delete variables. - (life_analysis_1): Don't initialize max_scratch. - (propagate_block): Don't update max_scratch. - (mark_set_1): Don't increment num_scratch. - * regs.h (max_scratch): Delete declaration. - -Mon Oct 19 10:28:15 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_reg_free_before_p): Hack. Return 0 if EQUIV - is nonzero. This is temporary! - - * sched.c (update_flow_info): Handle death notes made invalid by - instruction splitting. Partially reverts Oct 15, 1998 patch. - * haifa-sched.c (update_flow_info): Likewise. - -Sun Oct 18 17:31:26 1998 Jeffrey A Law (law@cygnus.com) - - * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL - if it has a nonzero DECL_INITIAL. - -Sat Oct 17 23:18:08 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (flow.o): Depend on recog.h. - - * cpplib.h (directive_table): Add missing initializiers. - (finclude): Change type of variable `bsize' to size_t. - - * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED. - - * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE. - - * fix-header.c (lookup_std_proto): Cast the result of `strlen' to - `int' when comparing against one. - (cpp_file_line_for_message): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - - * flow.c: Include recog.h. - (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR). - - * function.c (thread_prologue_and_epilogue_insns): Mark parameter - `f' with ATTRIBUTE_UNUSED. - (reposition_prologue_and_epilogue_notes): Likewise. - - * genopinit.c (gen_insn): Cast argument of ctype functions to - `unsigned char'. - - * haifa-sched.c: Include recog.h. - (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when - comparing against one. - - * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now. - - * mips-tfile.c (parse_end): Cast the argument of ctype function to - `unsigned char'. - (parse_ent): Likewise. - (parse_input): Likewise. - - * optabs.c (init_libfuncs): Likewise. - - * protoize.c (find_rightmost_formals_list): Likewise. - - * recog.h (const_double_operand): Fix typo in prototype. - - * tlink.c (scan_linker_output): Cast the argument of ctype - function to `unsigned char'. - - * toplev.c (check_lang_option): Cast the result of `strlen' to - `int' when comparing against one. - -Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> - - * gcse.c (dump_cuid_table): Correct typo. - -Sat Oct 17 11:02:47 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c (display_help): Prepend '-m' to target specific - options. - (check_lang_option): Ignore text after end of first word of a - language specific option. - (display_help): Ignore empty target specific options, and if -W is - also specified on the command line then display undocumented - options. - - * invoke.texi: Document --help option. - -Sat Oct 17 02:26:03 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload1.c (reg_used_by_pseudo): New static variable. - (choose_reload_regs): Initialize it. - Use it instead of testing spill_reg_order to determine whether a - pseudo is live in a hard register across the current insn. - Fix a typo in a reference to reload_reg_rtx. - - * flow.c (propagate_block): Replace code that computes and uses - regs_sometimes_live with simpler code that just walks the set of - currently live registers. - - * Makefile.in (insn-extract.o): Fix dependencies. - * genextract.c (main): Generate includes for insn-config.h and - recog.h. - Delete generation of declarations which are now in recog.h. - * genrecog.c (main): Delete generation of definitions which are - now in recog.c. - * local-alloc.c (block_alloc): Use extract_insn and the variables - it sets up instead of looking up values by insn_code. - * recog.c (recog_operand, recog_operand_loc, recog_dup_loc, - recog_dup_num): Define here instead of generating the definition in - genrecog.c. - (recog_n_operands, recog_n_dups, recog_n_alternatives, - recog_operand_mode, recog_constraints, recog_operand_address_p): - New variables. - (extract_insn): New function. - * recog.h (extract_insn): Declare function. - (which_alternative, recog_n_operands, recog_n_dups, - recog_n_alternatives, recog_operand_mode, recog_constraints, - recog_operand_address_p): Declare variables. - * regclass.c (n_occurrences): New static function. - * reload.c (n_occurrences): Delete function. - (find_reloads): Use extract_insn. - * reload.h (n_occurrences): Delete declaration. - -Sat Oct 17 01:17:51 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_as_needed): Fix test for when to call - update_eliminable_offsets. - -Fri Oct 16 20:40:50 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - Fix consistency problems with reg_equiv_{mem,address}; - Improve reload inheritance; - - * reload.c (reload_out_reg): New variable. - (loc_mentioned_in_p, remove_address_replacements): New functions. - (remove_replacements): Deleted. - (push_reload): Set reload_out_reg[i]. - When merging, also set reload_{in,out}_reg[i], and remove - duplicate address reloads. - (combine_reloads): Copy reload_out_reg[i]. - (find_reloads): Do make_memloc substitution also when - reg_equiv_memory_loc[regno] and num_not_at_initial_offset - are both nonzero. - Include *recog_operand_loc in commutativity operand changes. - Generate optional output reloads. - Delete reference to n_memlocs. Don't set *recog_operand_loc before - processing operands. Call make_memloc in reg_equiv_address code. - Set *recog_operand_loc only after processing operands, and only - if replace is true. Return a value. - When changing address reload types for operands that didn't get - reloaded, use RELOAD_FOR_OPADDR_ADDRESS for - RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads. - Don't emit USEs for pseudo SUBREGs when not replacing. - (find_reloads_address): Do make_memloc substitution also when - reg_equiv_memory_loc[regno] and num_not_at_initial_offset - are both nonzero. - (find_reloads_toplev): Likewise. - Call make_memloc in reg_equiv_address code. - (debug_reload_to_stream): Add code to output reload_out_reg. - (make_memloc): Delete local variable i, ifdefed out code, and - references to memlocs and n_memlocs. - (memlocs, n_memlocs): Delete. - (push_secondary_reload): Clear reload_out_reg. - (find_reloads_address_1): Provide memrefloc argument to all calls - to find_reloads_address. - In AUTO_INC code, handle non-directly addressable equivalences properly. - * reload.h (reload_out_reg, num_not_at_initial_offset): Declare. - (find_reloads): Add return type. - (remove_address_replacements, deallocate_reload_reg): Declare. - * reload1.c (num_not_at_initial_offset): No longer static. - (delete_address_reloads, delete_address_reloads_1): Likewise. - (deallocate_reload_reg): New function. - (spill_reg_stored_to): New array. - (eliminate_regs): Don't substitute from reg_equiv_memory_loc. - (eliminate_regs_in_insn): Move assignments of previous_offset and - max_offset fields, and recalculation of num_not_at_initial_offset - into new static function: - (update_eliminable_offsets) . - (reload_as_needed): Call update_eliminable_offsetss after calling - find_reloads. - Call forget_old_reloads_1 with contents of reloaded auto_inc - expressions if the actual addressing can't be changed to match the - auto_inc. - (choose_reload_regs): For inheritance, replace - reload_reg_free_before_p test with reload_reg_used_at_all test, and - remove stand-alone reload_reg_used_at_all test. - Use reload_out_reg to determine which reload regs have output reloads. - Treat reload_override_in more similar to inherited reloads. - Handle (subreg (reg... for inheritance. - For flag_expensive_optimizations, add an extra pass to remove - unnecessary reloads from known working inheritance. - Delete obsolete code for pseudos replaced with MEMs. - Handle inheritance from auto_inc expressions. - (emit_reload_insns): If reload_in is a MEM, set OLD to - reload_in_reg[j]. - Don't reload directly from oldequiv; if it's a pseudo with a - stack slot, use reload_in[j]. - Check that reload_in_reg[j] is a MEM before replacing reload_in - from reg_reloaded_contents. - Include non-spill registers in reload inheritance processing. - Also try to use reload_out_reg to set spill_reg_store / - reg_last_reload_reg. - In code to set new_spill_reg_store, use single_set to find out if - there is a single set. - Add code that allows to delete optional output reloads. - Add code to allow deletion of output reloads that use no spill reg. - At the end, set reload_override_in to oldequiv. - Also call delete_output_reload if reload_out_reg is equal to old - in oldequiv code. - Add code to call delete_output_reload for stores with no matching load. - Set / use spill_reg_stored_to. - Handle case where secondary output reload uses a temporary, but - actual store isn't found. - When looking for a store of a value not loaded in order to call - delete_output_reload, count_occurences should return 0 for no - loads; but discount inherited input reloadill_reg_stored_to. - Do checks for extra uses of REG. Changed all - callers. - Use delete_address_reloads. - (reload): Take return value of find_reloads into account. - If a no-op set needs more than one reload, delete it. - (reload_reg_free_before_p): RELOAD_FOR_INPUT - can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS - for the same operand. - (clear_reload_reg_in_use): Check for other reloads that keep a - register in use. - (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS / - RELOAD_FOR_OPADDR_ADDR. - Take into account when an address address reload is only needed - for the address reload we are considering. - (count_occurrences): Use rtx_equal_p for MEMs. - (inc_for_reload): Return instruction that stores into RELOADREG. - New argument two, IN, and rtx. Changed all callers. - (calculate_needs_all_insns, reload_as_needed): - Don't clear after_call for a CLOBBER. - Keep track of how many hard registers need to be copied from - after_call, and don't clear after_call before we have seen - that much copies, or we see a different instruction. - -Fri Oct 16 10:58:23 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks_1): Do not delete unreachable blocks - after reload has completed. - -Fri Oct 16 17:26:10 1998 Dave Brolley <brolley@cygnus.com> - - * cpplib.c (cpp_get_token): Replace whitespace that occurs between - a macro name and the next token with a single blank if that whitespace - is in a macro buffer and the next token is not '('. - -Fri Oct 16 15:44:02 1998 Dave Brolley <brolley@cygnus.com> - - * cccp.c (rescan): Handle multibyte chartacters ending in backslash. - (rescan): Ditto. - (skip_if_group): Ditto. - (skip_to_end_of_comment): Ditto. - (macarg1): Ditto. - (discard_comments): Ditto. - (change_newlines): Ditto. - -Fri Oct 16 15:26:24 1998 Dave Brolley <brolley@cygnus.com> - - * c-lex.c (yylex): Fix unaligned access of wchar_t. - -Fri Oct 16 10:47:53 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation. - (TARGET_OPTIONS): Add --help documentation. - -Fri Oct 16 11:49:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change. - -Fri Oct 16 07:08:46 1998 Bruce Korb <korb@datadesign.com> - - * fixinc/* Moved in from ../contrib directory in preparation - for integrating it into the normal build process. In particular, - fixinc/Makefile.in must be config-ed into the build directory - as fixinc/Makefile. Proposed patches to ./Makefile.in and - ./configure.in will be "in the mail" momentarily. - -Fri Oct 16 08:13:46 1998 David S. Miller <davem@pierdol.cobaltnet.com> - - * cse.c (cse_basic_block): Fixup hash flushing loop so we do not - accidently walk into the free list. Comment how that can happen. - (invalidate): Fix indentation. - -Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis_1): Do not clobber regs_ever_live after - reload. Never perform rescans of the insn chain after reload. - (propagate_block): Do not delete insn or create new autoinc addressing - modes after reload. - - * jump.c (jump_optimize): Unconditionally use the code that was - previously conditional on PRESERVE_DEATH_INFO_REGNO_P. - * reload1.c (reload): When reloading is finished, delete all - REG_DEAD and REG_UNUSED notes. - (emit_reload_insns): Delete all code that was conditional on - PRESERVE_DEATH_INFO_REGNO_P. - (no_longer_dead_regs): Delete variable. - (reload_cse_delete_death_notes): Delete function. - (reload_cse_no_longer_dead): Delete function. - (reload_cse_regs_1): Delete all code to handle deletion of death - notes. - (reload_cse_noop_set_p): Likewise. - (reload_cse_simplify_set): Likewise. - (reload_cse_simplify_operands): Likewise. - (reload_cse_move2add): Likewise. - * reorg.c (used_spill_regs): Delete declaration. - (max_label_num_after_reload): Delete declaration. - (find_dead_or_set_registers): Don't assume that spill regs are - dead at a CODE_LABEL. - * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate, - even after reload. - * sched.c (sched_analyze_insn): Likewise. - (update_flow_info): Likewise. - * haifa-sched.c (sched_analyze_insn): Likewise. - (update_flow_info): Likewise. - * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation. - * toplev.c (max_label_num_after_reload): Delete variable. - (rest_of_compilation): Don't set max_label_num_after_reload. - Call life_analysis after reload_cse_regs if optimizing. - * config/gmicro/gmicro.h: Delete comment referring to - PRESERVE_DEATH_INFO_REGNO_P. - * config/i386/i386.h: Likewise. - * config/m88k/m88k.h: Likewise. - * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition. - * config/sh/sh.h: Likewise. - -Thu Oct 15 19:48:41 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * loop.c (strength_reduce): Restore marking bct_p as - ATTRIBUTE_UNUSED. - * rs6000.c (optimization_options): Change #ifdef HAIFA to - HAVE_decrement_and_branch_on_count. - (small_data_operand): Remove TARGET_ELF condition for marking - parameters ATTRIBUTE_UNUSED. - -Thu Oct 15 11:45:51 1998 Robert Lipe <robertl@dgii.com> - - * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define. - (SELECT_SECTION): Resync with svr4.h. - -Thu Oct 15 12:42:13 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * loop.c (strength_reduce): Undo Oct 14 change marking bct_p - ATTRIBUTE_UNUSED. - -Thu Oct 15 00:57:55 1998 Robert Lipe <robertl@dgii.com> - - * c-pragma.c (handle_pragma_token): Test for null tree before - dereferencing TREE_CODE. - -Thu Oct 15 17:36:48 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c: Convert to use GEN_INT. - (c4x_parallel_process): Rework to handle new repeat loop structure. - - * config/c4x/c4x.md: Convert to use GEN_INT. - (rptb_end): Convert to use GE test. Replace uses with clobbers. - (decrement_and_branch_on_count): Likewise. - - * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that - loop.c has the desired functionality. - (rc_reg_operand): New prototype. - - * config/c4x/t-c4x: Can now build all front ends. - -Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com) - - * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS. - -Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com) - - * Makefile.in (stmp-fixinc): Do not install assert.h if not desired. - * config/t-rtems: Do not install assert.h -- use newlib's. - -Wed Oct 14 21:57:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (combine_instructions): When finished, call init_recog. - * regmove.c (optimize_reg_copy_3): Reject volatile MEMs. - -Wed Oct 14 16:10:22 1998 Per Bothner <bothner@cygnus.com> - - * toplev.c: If flag_syntax_only, don't open or write assembler file. - -Wed Oct 14 13:26:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cppalloc.c (memory_full): Mark function prototype with - ATTRIBUTE_NORETURN. - - * demangle.h (collect_exit): Likewise. - - * fix-header.c (v_fatal, fatal): Likewise. - - * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort): - Likewise. - - * gcov.c (print_usage): Likewise. - - * genattr.c (fatal, fancy_abort): Likewise. - - * genattrtab.c (fatal, fancy_abort): Likewise. - - * gencodes.c (fatal, fancy_abort): Likewise. - - * genconfig.c (fatal, fancy_abort): Likewise. - - * genemit.c (fatal, fancy_abort): Likewise. - - * genextract.c (fatal, fancy_abort): Likewise. - - * genflags.c (fatal, fancy_abort): Likewise. - - * genopinit.c (fatal, fancy_abort): Likewise. - - * genoutput.c (fatal, fancy_abort): Likewise. - - * genpeep.c (fatal, fancy_abort): Likewise. - - * genrecog.c (fatal, fancy_abort): Likewise. - - * libgcc2.c (__eprintf, __default_terminate, __sjthrow, - __sjpopnthrow, __throw): Likewise. - - * objc/objc-act.c (objc_fatal): Likewise. - - * protoize.c (usage, aux_info_corrupted, - declare_source_confusing): Likewise. - - * rtl.c (dump_and_abort): Likewise. - - * rtl.h (sets_cc0_p): Likewise. - - * toplev.c (float_signal, pipe_closed): Likewise. - -1998-10-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges - when generating the decision tree for the general case. - - * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes - wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs. - -Wed Oct 14 11:14:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (sched.o): Depend on recog.h. - - * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to - (unsigned) when comparing against one. - (find_base_value): Likewise. - (record_base_value): Cast variable `regno' to (unsigned) when - comparing against one. Cast the result of REGNO() macro to - (unsigned) when comparing against one. - (memrefs_conflict_p): Change type of variables `r_x' and `r_y' to - unsigned. - (init_alias_analysis): Add unsigned variable `ui'. Use it as loop - variable where an unsigned index is needed. - - * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code) - before comparing against one. - - * collect2.c: Add prototypes for functions `error', `fatal' and - `fatal_perror'. Make these functions take variable arguments - instead of faking it with a fixed number of args. - (write_c_file_stat): Cast the argument of ctype macro to (unsigned - char). - - * combine.c (can_combine_p): Mark parameter `pred' with - ATTRIBUTE_UNUSED. - (find_split_point): Cast variable `src' to (unsigned - HOST_WIDE_INT) when comparing against one. - (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift. - (simplify_logical): Likewise. - (force_to_mode): Cast result of INTVAL() macro to (unsigned - HOST_WIDE_INT) when comparing against one. Cast 1 to (unsigned - HOST_WIDE_INT) in shift. - (simplify_and_const_int): Cast result of INTVAL() macro to - `unsigned HOST_WIDE_INT' when comparing against one. - (merge_outer_ops): Cast variable const0 to `unsigned - HOST_WIDE_INT' when comparing against the result of - GET_MODE_MASK() macro. - (simplify_comparison): Likewise for variable `c0'. Cast variable - `const_op' to `unsigned HOST_WIDE_INT' when comparing against - one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast the - result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing - against one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast - result of INTVAL() macro to `unsigned HOST_WIDE_INT' when - comparing against one. - (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'. - - config/mips/mips.c (gen_int_relational): Cast result of INTVAL() - macro to `unsigned HOST_WIDE_INT' when comparing against one. - (output_block_move): Cast `sizeof' expression to (int) when - comparing against one. - (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing - against one. - (save_restore_insns): Cast `base_offset' to `long' to match format - specifier in fprintf. - - * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro - to `enum machine_mode'. - - * flow.c (life_analysis_1): Remove unused variable `insn'. - - * gcc.c (translate_options): Move variables `j' and `k' into the - scope in which they are used. Change their types to `size_t'. - (set_spec): Cast the argument of ctype macro to `unsigned char'. - (read_specs): Likewise. - (process_command): Cast `sizeof' to (int) when comparing against one. - (do_spec_1): Cast the argument of ctype macro to `unsigned char'. - (handle_braces): Cast both sides of `==' expression to `long' to - ensure sign matching. - (main): Cast variable `i' to `int' when comparing against one. - - * gcov-io.h (__fetch_long): Change type of parameter `bytes' from - int to size_t. Cast variable `i' to size_t when comparing against - one. - - * genattrtab.c (convert_set_attr_alternative): Remove unused - parameter `insn_code'. All callers changed. - (convert_set_attr): Likewise. - - * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to - size_t when comparing against one. Likewise for variable `len'. - - * global.c (global_alloc): Cast variable `max_regno' to size_t - when comparing against one. Likewise for variable `max_allocno'. - - * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED. - - * local-alloc.c (validate_equiv_mem_from_store): Mark parameter - `set' with ATTRIBUTE_UNUSED. - (find_free_reg): Cast `sizeof' expression to (int) when comparing - against one. - - * loop.c (count_loop_regs_set): Remove unused variable `dest'. - (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED. - (get_condition): Cast variable `const_val' to `unsigned - HOST_WIDE_INT' when comparing against one. Cast unsigned - expression to HOST_WIDE_INT when comparing against one. - (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED. - (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to - `unsigned' when comparing against one. - - * protoize.c (is_id_char): Change type of parameter `ch' to - unsigned char. - (munge_compile_params): Cast argument of ctype macro to (const - unsigned char). - (process_aux_info_file): Cast variable `aux_info_size' to int when - comparing against one. - (forward_to_next_token_char): Cast argument of ctype macro to - `const unsigned char'. - (edit_formals_lists): Likewise. - (find_rightmost_formals_list): Likewise. - (add_local_decl): Likewise. - (add_global_decls): Likewise. - (edit_fn_definition): Likewise. - (do_cleaning): Likewise. - (scan_for_missed_items): Likewise. - (edit_file): Cast variable `orig_size' to (int) when comparing - against one. - (main): Cast argument of ctype macro to `const unsigned char'. - - * recog.c (const_int_operand): Mark parameter `mode' with - ATTRIBUTE_UNUSED. - - * regclass.c (record_reg_classes): Change type of variable `c' to - `unsigned char'. Cast `char' array index to `unsigned char'. - - * reload.c (push_secondary_reload): Cast argument to - REG_CLASS_FROM_LETTER() macro to `unsigned char'. - - * reload1.c (calculate_needs): Cast `char' array index to - `unsigned char'. - (set_label_offsets): Change type of variable `i' to unsigned int. - Cast result of XVECLEN() macro to unsigned when comparing against - one. - (mark_not_eliminable): Change type of variable `i' to unsigned. - (order_regs_for_reload): Likewise. Cast `max_regno' to unsigned - when comparing against one. - (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when - comparing against one. - (choose_reload_regs): Hide unused label `fail'. - (reload_cse_simplify_operands): Cast `char' array index to - `unsigned char'. - (reload_combine_note_store): Mark parameter `set' with - ATTRIBUTE_UNUSED. Cast UNITS_PER_WORD to unsigned when comparing - against one. - (reload_cse_move2add): Remove unused variable `src2'. - - * sched.c: Include recog.h. - (sched_note_set): Remove unused parameter `b'. All callers - changed. - (split_hard_reg_notes): Likewise for parameter `orig_insn'. - (blockage_range): Cast result of UNIT_BLOCKED() macro to (int) - when comparing against one. - - * stupid.c (stupid_find_reg): Mark parameter `changes_size' with - ATTRIBUTE_UNUSED. Cast `sizeof' expression to (int) when - comparing against one. - - * unroll.c (precondition_loop_p): Remove unused parameter - `loop_end'. All callers changed. - -Tue Oct 13 22:12:11 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload1.c (maybe_fix_stack_asms): New static function. - (reload): Call it. - - * reload.h (compute_use_by_pseudos): Declare. - - * reload1.c (spilled_pseudos, insns_need_reload): New variables. - (something_needs_reloads): Delete variable. - (finish_spills): New function. - (compute_use_by_pseudos): New function. - - (delete_caller_save_insns): Lose argument FIRST. All callers changed. - Use the reload_insn_chain instead of walking the rtl directly. - - (reload): Allocate and free spilled_pseudos. - Ensure that all calls of spill_hard_reg are followed by a call to - finish_spills. - Use the insns_need_reload list instead of something_needs_reloads - to find out if reload_as_needed must be called. - Clear unused_insn_chains at the end. - - (calculate_needs_all_insns): Lose FIRST parameter. All callers - changed. - Delete code to keep track of current basic block. - Walk reload_insn_chain instead of the rtl structure. Build the - insns_need_reload chain. - Remember which insns need reloading/elimination by setting the - appropriate fields in struct insn_chain, not by putting modes on the - insn. - - (calculate_needs): Lose THIS_BLOCK arg. Accept arg CHAIN instead of - arg INSN. All callers changed. - Delete declaration of struct needs. - Don't set something_needs_reloads. - Record insn needs in the CHAIN argument. - - (spill_hard_reg): Record the affected pseudos in spilled_pseudos. - - (reload_as_needed): Lose FIRST arg. All callers changed. - Walk the reload_insn_chain instead of the rtx structure. - Delete code to keep track of current basic block. - Rename one of the NEXT variables to OLD_NEXT. - - (allocate_reload_reg): Accept arg CHAIN instead of arg INSN. All - callers changed. - (choose_reload_regs): Likewise. - - (emit_reload_insns): Replace INSN and BB args with arg CHAIN. All - callers changed. - - * caller-save.c (MOVE_MAX_WORDS): New macro. Use it throughout - instead of (MOVE_MAX / UNITS_PER_WORD) computation. - (hard_regs_live, hard_regs_need_restore): Delete variables. - (n_regs_saved): Now static. - (referenced_regs, this_insn_sets): New variables. - - (setup_save_areas): Restructure the code a bit. - - (restore_referenced_regs): Delete function. - (mark_referenced_regs): New function, similar to the old - restore_referenced_regs, but mark registers in referenced_regs. - - (clear_reg_live): Delete function. - (mark_set_regs): Renamed from set_reg_live. All callers changed. - Only mark registers in this_insn_sets. - - (save_call_clobbered_regs): Rework this function to walk the - reload_insn_chain instead of using the list of instructions directly. - Delete code to keep track of register lives, compute live regs on the - fly from information in the chain. - Instead of calling restore_referenced_regs, use mark_referenced_regs, - then walk the set it computes and call insert_restore as appropriate. - - (insert_restore): Lose INSN and BLOCK args. Add CHAIN arg. All - callers changed. - Restructure the code a bit. Test hard_regs_saved instead of - hard_regs_need_restore. - (insert_save): Lose INSN and BLOCK args. Add CHAIN and TO_SAVE - args. All callers changed. - Restructure the code a bit. Use TO_SAVE to determine which regs to - save instead of more complicated test. - (insert_one_arg): Lose INSN and BLOCK args. Add CHAIN arg. All - callers changed. - Create a new insn_chain structure for the new insn and place it - into the chain. - - * rtl.texi: Update documentation to reflect that reload no longer - puts modes on the insns. - -1998-10-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> - - * function.c (purge_addressof_1): Force the first argument of a - CALL insn to memory. - -Wed Oct 14 00:38:40 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h: Delete duplicate prototypes. Add some missing - prototypes. - * rtlanal.c: (for_each_rtx): Formatting tweak. - -1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * real.c (emdnorm and etoasc): Disable round to even for c4x target - to be compatible with TI compiler. - - * Makefile.in (USER_H): Add va-c4x.h to definition. - -Tue Oct 13 23:03:37 1998 Richard Henderson <rth@cygnus.com> - - * function.c (purge_addressof_1): Fix typo in inequality: do - bitfield optimization for equal mode sizes. - * expmed.c (store_bit_field): Don't take subregs of subregs in - the movstrict case. Tidy a potential problem in the multi-word case. - (extract_bit_field): Likewise. - -Tue Oct 13 22:12:11 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * flow.c (find_basic_blocks): Emit NOPs after normal calls in this - function. - Compute max_uid_for_flow by calling get_max_uid after the scan. - (find_basic_blocks_1): Don't emit NOPs here. - -Tue Oct 13 22:05:49 1998 Richard Henderson <rth@cygnus.com> - - * alias.c (base_alias_check): Accept new args for the modes of the - two references. Use them to determine if an AND can overlap. Update - all callers. - (memrefs_conflict_p): Assume sizes are aligned, and uses them - to determine if an AND can overlap. - -Tue Oct 13 17:51:04 1998 Jim Wilson <wilson@cygnus.com> - - * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16 - check. Add comment to document problems with TARGET_SUN_FPA version - of this macro. - * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves. - -Tue Oct 13 17:46:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (gencheck.o): Depend on gansidecl.h. - - * c-common.c (print_char_table): Add missing initializers. - (scan_char_table): Likewise. - (time_char_table): Likewise. - - * c-decl.c (c_decode_option): Mark parameter `argc' with - ATTRIBUTE_UNUSED. - (declare_parm_level): Mark parameter `definition_flag' with - ATTRIBUTE_UNUSED. - - * c-lex.c (readescape): Use `(unsigned)1' in shift. - (yylex): Likewise. Cast `sizeof' to an (int) when comparing - against one. - - * calls.c (store_one_arg): Remove unused parameter `fndecl'. All - callers changed. - (emit_call_1): Mark parameters `fndecl' and `funtype' with - ATTRIBUTE_UNUSED. - (expand_call): Cast result of MIN() to (unsigned int) when - comparing against an unsigned value. - - * cccp.c (pcfinclude): Remove unused parameter `limit'. All - callers changed. - (make_definition): Remove unused parameter `op'. All callers - changed. - (create_definition): Cast REST_EXTENSION_LENGTH to (long) when - comparing against the result of pointer arithmetic. - - * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned) - when comparing against one. - - * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and - HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against - one. - (output_die): Move variable `i' into the scope in which it is - used. Change its type to `unsigned'. - (output_die): Cast the result of `strlen' to (int) when passing it - to ASM_OUTPUT_ASCII(). - (output_pubnames): Likewise. - (output_line_info): Likewise. - - * emit-rtl.c (global_rtl): Add missing initializers. - - * explow.c (promote_mode): Mark parameter `for_call' with - ATTRIBUTE_UNUSED. - - * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to - `unsigned HOST_WIDE_INT' when comparing against one. - (synth_mult): Change type of variable `cost' to int. - (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift. - - * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned) - when comparing against one. - (get_inner_reference): Change variable `alignment' to unsigned. - (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned - int) when comparing against one. - (expand_builtin_setjmp): Change type of variable `i' to size_t. - - * fold-const.c (div_and_round_double): Cast BASE to - (HOST_WIDE_INT) when comparing against one. - - * gencheck.c: Include gansidecl.h. - (main): Mark parameter `argv' with ATTRIBUTE_UNUSED. - - * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and - `tcode' with ATTRIBUTE_UNUSED. - - * real.c (edivm): Cast constant value to (unsigned long) in - expression compared against an unsigned value. - - * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when - comparing against one. - (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int) - when comparing against one. - - * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to - (unsigned int) when comparing against one. Likewise for - GET_MODE_BITSIZE. - (smallest_mode_for_size): Likewise. - (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED. - (restore_storage_status): Likewise. - - * toplev.c (debug_args): Add missing initializer. - (f_options): Spelling correction. Add missing initializers. - (documented_lang_options): Likewise. - (debug_end_source_file): Mark parameter `lineno' with - ATTRIBUTE_UNUSED. - - * tree.c (valid_machine_attribute): Mark parameters `attr_args', - `decl' and `type' with ATTRIBUTE_UNUSED. - - * varasm.c (decode_reg_name): Cast `sizeof' expression to (int) - when comparing against one. - (assemble_variable): Mark parameter `top_level' with - ATTRIBUTE_UNUSED. - (assemble_external_libcall): Mark parameter `fun' with - ATTRIBUTE_UNUSED. - (output_constant_pool): Mark parameters `fnname' and `fndecl' with - ATTRIBUTE_UNUSED. - -Tue Oct 13 12:51:04 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration. - Replace use of r5 with use of r19. - - * config/v850/v850.h (LINK_POINTER_REGNUM): Define. - - * config/v850/v850.c (compute_register_save_size): Allow for the - fact that helper functions save all registers, not just those used - by the function. - - Replace constant 31 with macro LINK_POINTER_REGNUM. - - * config/v850/v850.md: Use 'indirect_operand' rather than - 'memory_operand' for bit test/set/clear patterns. - -Tue Oct 13 11:49:14 1998 Jason Merrill <jason@yorick.cygnus.com> - - * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL. - * varasm.c (assemble_start_function et al): Don't call - ASM_GLOBALIZE_LABEL for weak symbols. - -Tue Oct 13 11:37:45 1998 Nick Clifton <nickc@cygnus.com> - - * cse.c (equiv_constant): Check for NULL return from - gen_lowpart_if_possible(). - -Tue Oct 13 11:24:51 1998 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands. - - * collect2.c (main): Pass -EL/-EB through to the compiler. - -1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * expr.c (push_block): Handle targets where the stack grows - to higher addresses, but args grow to lower addresses and - ACCUMULATE_OUTGOING_ARGS is not defined. - -Tue Oct 13 08:00:52 1998 Catherine Moore <clm@cygnus.com> - - * config/v850/v850.c (print_operand): Extend meaning - of 'c' operands to support .vtinherit. - -Tue Oct 13 21:38:35 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c: Convert to gen_rtx_FOO. - Added ATTRIBUTE_UNUSED to unused function arguments. - (rc_reg_operand): New predicate. - (c4x_rptb_insert): New function. - (c4x_rptb_nop_p): Recognize modified rptb_top pattern. - (c4x_optimization_options): New function. - - * config/c4x/c4x.md: Convert to gen_rtx_FOO. - (decrement_and_branch_on_count): New pattern. - (rptb_top): Modified pattern to work with BCT optimization. - - * config/c4x/c4x.h (RC_REG): New register class. - (rc_reg_operand): Define prototype. - (IS_RC_REG): New macro. - (IS_RC_OR_PSEUDO_REG): New macro. - (IS_RC_OR_PSEUDO_REGNO): New macro. - (OPTIMIZATION_OPTIONS): Define. - -Mon Oct 12 19:57:34 1998 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c (extract_init_priority): No priority is 65535. - -Mon Oct 12 12:10:37 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * Makefile.in (build_tooldir): new variable, same as old - $(tooldir), but without depending on $(libdir)/$(unlibsubdir) - (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/ - (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto - - * configure.in (gxx_include_dir): set default based on unlibsubdir - * Makefile.in (tooldir): ditto - (cccp.o, cpplib.o): use unlibsubdir implicitly through - gxx_include_dir, includedir and tooldir - (protoize.o, unprotoize.o): ditto - -Mon Oct 12 10:50:44 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md: Replace (reg 24) with (reg:CC 24). - - * config/arm/thumb.c (thumb_override_options): Add warning about - PIC code not being supported just yet. - -Sun Oct 11 16:49:15 EDT 1998 John Wehle (john@feith.com) - - * flow.c: Update comment. - (notice_stack_pointer_modification): New static function. - (record_volatile_insns): Use it. - (mark_regs_live_at_end): Mark the stack pointer as alive - at the end of the function if current_function_sp_is_unchanging - is set. - (life_analysis_1): Set current_function_sp_is_unchanging. - * function.c: Define it. - (init_function_start): Initialize it. - * output.h: Declare it. - * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark - the stack pointer as alive at the end of the function if - current_function_sp_is_unchanging is set. - * i386.c (ix86_epilogue): Optimize the restoring - of the stack pointer. - -Mon Oct 12 01:22:53 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Oct 11 23:04:30 1998 Robert Lipe <robertl@dgii.com> - - * c-pragma.c (handle_pragma_token): If passed a token instead - of a tree, use that as the pack value. - -Sun Oct 11 14:21:14 1998 Mark Mitchell <mark@markmitchell.com> - - * flow.c (find_basic_blocks_1): Fix prototype. - -Sun Oct 11 05:03:41 1998 Ken Raeburn <raeburn@cygnus.com> - - * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros. - (struct tree_decl): New fields no_check_memory_usage. - * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE. - (init_attributes): Register it as a new attribute. - (decl_attributes): Set flags on functions given that attribute. - * c-decl.c (duplicate_decls): Merge new attribute. - * expr.h (current_function_check_memory_usage): Declare new var. - * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c, - pa.c, sparc.c: Replace uses of flag_check_memory_usage with - current_function_check_memory_usage. - * function.h: Add field to struct function. - * function.c (current_function_check_memory_usage): Define it. - (push_function_context_to, pop_function_context_from): Save and - restore it. - (expand_function_start): Set it, based on global flag and function - attribute. - - * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do - check non-automatic variables, to permit detection of writes to - read-only locations in embedded systems without memory management. - * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument - when emitting chkr_set_right_libfunc call, even if the argument is - BLKmode or variable-sized; don't abort. - - * optabs.c (init_optabs): Create Checker and __cyg_profile_* - symbols in Pmode, not VOIDmode. - -Sun Oct 11 01:03:05 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cppexp.c: When forcing unsigned comparisons, cast both sides - of the operation. - - * cpphash.h: Move static declaration of hashtab[]... - * cpphash.c: ...here. - - * cpplib.c: Cast difference of two pointers to size_t before - comparing it to size_t. Cast signed to unsigned - before comparing to size_t. (FIXME: struct argdata should use - unsigned buffer sizes.) - * cpplib.h (struct cpp_reader): Declare token_buffer_size as - unsigned int. (CPP_WRITTEN): Cast return value to size_t. - (CPP_RESERVE): Parenthesize N for evaluation order, cast to - size_t before comparison. - -Sun Oct 11 00:15:29 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): Delete "live_reachable_p" argument. - (find_basic_blocks_1): Similarly. - * output.h (find_basic_blocks): Fix prototype. - * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to - find_basic_blocks anymore. - -Sat Oct 10 22:00:34 1998 Richard Henderson <rth@cygnus.com> - - * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro. - (sbitmap_free, sbitmap_vector_free): New macros. - * output.h (rtl_dump_file): Declare. - -Sat Oct 10 17:01:42 1998 Jeffrey A Law (law@cygnus.com) - - * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION. - -Fri Oct 9 22:08:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fp-bit.c (SFtype): Don't implicitly use int in declaration. - (DFtype): Likewise. - (_fpdiv_parts): Remove unused parameter `tmp', all callers changed. - (divide): Remove unused variable `tmp'. - (si_to_float): Cast numeric constant to (SItype) before comparing - it against one. - -Fri Oct 9 16:03:19 1998 Graham <grahams@rcp.co.uk> - - * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use. - * gcc.c (add_preprocessor_option): Correct typo when allocating - memory, sizeof() argument had one too many `*'. - (add_assembler_option): Likewise. - (add_linker_option): Likewise. - * gcov.c (output_data): Likewise. - * local-alloc.c (memref_used_between_p): Likewise. - (update_equiv_regs): Likewise. - * loop.c (strength_reduce): Likewise. - * reg-stack.c (record_asm_reg_life): Likewise. - (subst_asm_stack_reg): Likewise. - * reorg.c (dbr_schedule): Likewise. - -Fri Oct 9 15:57:51 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * flow.c (life_analysis_1): Break out some functions. - (find_basic_blocks_1): Likewise. Also move some variables out and - make them static. - Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize - new static var nonlocal_label_list with it. - (active_eh_region, nested_eh_region, label_value_list, - nonlocal_label_list): New static variables. - (make_edges, delete_unreachable_blocks, delete_block): New static - functions, broken out of find_basic_blocks_1. - (record_volatile_insns, mark_regs_live_at_end, set_noop_p, - noop_move_p): New static functions, broken out of life_analysis_1. - -Fri Oct 9 15:49:29 1998 Richard Henderson <rth@cygnus.com> - - * expmed.c (store_bit_field): Pun non-integral str_rtx modes. - Take extra care for op0 now possibly being a subreg. - (extract_bit_field): Likewise. - * function.c (purge_addressof_1): Revert Oct 4 change. Drop - the reg to memory if there is no equal sized integral mode. - * stor-layout.c (int_mode_for_mode): New function. - * machmode.h: Prototype it. - -Fri Oct 9 14:26:44 1998 Jeffrey A Law (law@cygnus.com) - - * global.c (build_insn_chain): Verify no real insns exist past the - end of the last basic block, then exit the loop. - -Fri Oct 9 11:44:47 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use. - -Thu Oct 8 21:59:47 1998 Dave Brolley <brolley@cygnus.com> - - * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS. - -Thu Oct 8 22:03:45 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases. - -Thu Oct 8 17:00:18 1998 Richard Henderson <rth@cygnus.com> - - * flow.c (find_basic_blocks): Correctly determine when a call - is within an exception region. - -Thu Oct 8 17:15:04 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'. - - * cpplib.h: Protect from multiple inclusions. - * cpplib.c: Fix minor formatting problems. - - * i386/xm-cygwin32.h: Only define POSIX if it is not already defined. - - * jump.c (jump_optimize): Revert accidental patch. - - * Makefile.in (cpplib.o): Use unlibsubdir. - -Thu Oct 8 12:50:47 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (get_condition): Allow combine when either compare is - VOIDmode. - -Thu Oct 8 11:31:01 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Oct 8 12:21:14 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk> - - * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF. - (init_lex): Initialize ridpointers[RID_BYREF]. - * c-lex.h (enum rid): Add RID_BYREF. - * c-parse.gperf: Add RID_BYREF as a type qualifier. - * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF. - (encode_type_qualifiers): Similarly - * c-gperf.h: Rebuilt. - -Thu Oct 8 05:56:00 1998 Jeffrey A Law (law@cygnus.com) - - * c-common.c (type_for_mode): Only return TItype nodes when - HOST_BITS_PER_WIDE_INT is >= 64 bits. - * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare - when HOST_BITS_PER_WIDE_INT is >= 64 bits. - (init_decl_processing): Only create TItype nodes when - HOST_BITS_PER_WIDE_INT is >= 64 bits. - * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare - when HOST_BITS_PER_WIDE_INT is >= 64 bits. - -Thu Oct 8 05:05:34 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * stmt.c (n_occurrences): New static function. - (expand_asm_operands): Verify that all constrains match in the - number of alternatives. - Verify that '+' or '=' are at the beginning of an output constraint. - Don't allow '&' for input operands. - Verify that '%' isn't written for the last operand. - * reload.c (find_reloads): Abort if an asm is found with invalid - constraints; all possible problems ought to be checked for earlier. - -Thu Oct 8 04:26:20 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * flags.h (flag_branch_on_count_reg): Always declare - * toplev.c (flag_branch_on_count_reg): Likewise. - * toplev.c: Fix typos. - - * real.c (c4xtoe): Remove unused variables. Add some missing parens. - (toc4x): Similarly. - -Thu Oct 8 01:25:22 1998 Richard Henderson <rth@cygnus.com> - - * flow.c (find_basic_blocks): Calc upper bound for extra nops in - max_uids_for_flow. - (find_basic_blocks_1): Add a nop to the end of a basic block when - a trailing call insn does not have abnormal control flow. - * gcse.c (pre_transpout): New variable. - (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it. - (compute_pre_transpout): Calculate it. - (compute_pre_ppinout): Use it to eliminate impossible placements - due to abnormal control flow through calls. - (compute_pre_data): Call compute_pre_transpout. - -Wed Oct 7 21:40:24 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo. - -Wed Oct 7 21:19:46 1998 Ken Raeburn <raeburn@cygnus.com> - - * config/mips/mips.md (tablejump_internal3, tablejump_internal4 - and matching define_insns): Tack on a `use' of the table label, so - flow analysis will recognize a tablejump. - -Wed Oct 7 17:33:39 1998 Richard Henderson <rth@cygnus.com> - - * gcse.c (pre_insert_insn): Tweek to notice that calls do not - always end basic blocks for abnormal edge reasons. - -Wed Oct 7 14:40:43 1998 Nick Clifton <nickc@cygnus.com> - - * config/i386/i386.h: Remove definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/i386/go32.h: Add definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/i386/win32.h: Add definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/i386/cygwin32.h: Add definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * c-pragma.c (insert_pack_attributes): Do not insert - attributes unless #pragma pack(push,<n>) is in effect. - -Wed Oct 7 12:10:46 1998 Jim Wilson <wilson@cygnus.com> - - * expr.c (emit_group_store): Handle a PARALLEL destination. - -Wed Oct 7 10:07:29 1998 Richard Henderson <rth@cygnus.com> - - * gcse.c (pre_insert_insn): When a call ends a bb, insert - the new insns before the argument regs are loaded. - -Wed Oct 7 12:55:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf. - (c-parse.gperf): Update comments describing invocation flags. - (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs). - -1998-10-07 Manfred Hollstein <manfred@s-direktnet.de> - - * reload1.c (reload): Call free before clobbering the memory - locations or constants pointers. - -Wed Oct 7 02:05:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework - for efficiency by checking whether we need to modify the current - stack permission at all. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. - * config/sparc/sparc.c (sparc_initialize_trampoline): Emit - __enable_execute_stack libcall here too if - TRANSFER_FROM_TRAMPOLINE is defined. - * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if - IN_LIBGCC2. - -Wed Oct 7 02:27:52 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (DRIVER_DEFINES): Remove last change. - -Wed Oct 7 01:08:43 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all - insns we're going to copy. - * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX. - - * loop.c (count_one_set): Add prototype. - - * caller-save.c (restore_referenced_regs): Lose mode argument. - (insert_save): Lose mode argument. - (insert_restore): Lose mode argument. - (insert_one_insn): Lose mode argument. - (save_call_clobbered_regs): Lose mode argument. - (setup_save_areas): Take no argument and return void. All callers - changed. - Don't verify validity of memory addresses. - * reload.h (setup_save_ares): Adjust prototype. - (save_call_clobbered_regs): Likewise. - * reload1.c (delete_caller_save_insns): New function. - (caller_save_spill_class): Delete variable. - (caller_save_group_size): Delete variable. - (reload): Call setup_save_areas and save_call_clobbered_regs - in the main loop, before calling calculate_needs_all_insns. - Don't call save_call_clobbered_regs after the loop. - Call delete_caller_save_insns at the end of an iteration if - something changed. - Delete code to manage caller_save_spill_class. - Emit the final note before setting reload_first_uid. - Simplify test that determines whether reload_as_needed gets run. - (calculate_needs): Delete code to manage caller_save_spill_class. - -Tue Oct 6 15:42:27 1998 Richard Henderson <rth@cygnus.com> - - * collect2.c (main): Initialize ld_file_name. - -Tue Oct 6 15:45:15 1998 Catherine Moore <clm@cygnus.com> - - * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't - check for flag_function_sections. - -Tue Oct 6 20:02:31 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * cse.c (insert_regs): Fix bug in Sep 24 change. - -Tue Oct 6 17:00:42 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * flags.h (flag_dump_unnumbered): Declare. - * toplev.c (flag_dump_unnumbered): Don't declare. - * print-rtl.c (flags.h): Include. - (print_rtl_single): Add return value. - * rtl.h (print_rtl_single): Update declaration. - * flow.c (flag_dump_unnumbered): Don't declare. - (print_rtl_with_bb): Use return value of print_rtl_single. - -Tue Oct 6 01:36:00 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * loop.c (count_one_set): New static function, broken out of - count_loop_regs_set - (count_loop_regs_set): Call it. - * global.c (mark_reg_store): Handle clobbers here by not calling - set_preference. - (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER - is in fact a clobber. - * integrate.c (process_reg_param): New function, broken out of - expand_inline_function. - (expand_inline_function): Call it. - - - * i386.md (addsidi3_1): Delete unused variable temp. - (addsidi3_2): Likewise. - (clstrstrsi): Delete unused variable addr1. - - * rtl.h: Don't declare any functions also declared in recog.h. - - * Makefile.in (stupid.o): Update dependencies. - (global.o): Likewise. - - * global.c: Include reload.h - (reg_becomes_live): New function. - (reg_dies): New function. - (build_insn_chain): New function. - (global_alloc): Call build_insn_chain before calling reload. - - * reload.h (struct needs): New structure definition. - (struct insn_chain): Likewise. - (reload_insn_chain): Declare variable. - (new_insn_chain): Declare function. - - - * reload1.c (reload_startobj): New variable. - (reload_insn_chain): New variable. - (unused_insn_chains): New variable. - (new_insn_chain): New function. - (init_reload): Initialize reload_startobj, not reload_firstobj. - (reload): Initialize reload_firstobj. - Before returning, free everything on the reload_obstack. - - * stupid.c: Include insn-config.h, reload.h and basic-block.h. - (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber, - current_chain): New variables. - (reg_where_born): Delete variable. - (REG_WHERE_BORN): New macro. - (find_clobbered_regs): New function. - (stupid_life_analysis): Don't allocate/free reg_where_born. - Allocate and free reg_where_born_exact, reg_where_born_clobber, - reg_where_dead_chain. - Use REG_WHERE_BORN instead of reg_where_born. - While processing the insns, build the reload_insn_chain with - information about register lifetimes. - (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born. - (stupid_mark_refs): Replace arg INSN with arg CHAIN. All callers - changed. - Compute and information about birth and death of pseudo registers in - reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber. - Delete code to set elements of reg_where_born. - -Mon Oct 5 22:34:30 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * tree.def (GOTO_EXPR): Modified documentation. - * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed - goto. - -Mon Oct 5 22:43:36 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * unroll.c (loop_iteration_var, loop_initial_value, loop_increment - loop_final_value, loop_comparison_code): No longer static. - (unroll_loop): Delete loop_start_value update. - * loop.h (loop_iteration_var, loop_initial_value, loop_increment, - loop_final_value, loop_comparison_code): Extern. - (loop_start_value): Delete extern. - * loop.c (loop_can_insert_bct, loop_increment, loop_start_value, - loop_comparison_value, loop_comparison_code): Delete. - (loop_optimize): Remove initialization for deleted variables. - (strength_reduce): Delete analyze_loop_iterations call. Only call - insert_bct if flag_branch_count_on_reg set. - (analyze_loop_iterations): Delete. - (insert_bct): Remove iteration count calculation. Move checks for - viable BCT optimization to here. Obtain iteration count from - loop_iterations and correct for unrolling. Check for enough - iteration to be beneficial. Comment out runtime iteration count - case. - (insert_bct): Print iteration count in dump file. Remove - loop_var_mode and use word_mode directly. - - * rs6000.h (processor_type): Add PROCESSOR_PPC604e. - * rs6000.c (rs6000_override_options): Use it. - (optimization_options): Enable use of flag_branch_on_count_reg. - * rs6000.md (define_function_unit): Describe 604e. - -1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * loop.c (move_movables): Corrected threshold calculation for - moved_once registers. - -Mon Oct 5 21:18:45 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * loop.c (combine_givs_p): Fix test for identical givs. - -Mon Oct 5 10:11:28 1998 Nick Clifton <nickc@cygnus.com> - - * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't - call abort if the function is already defined. - -Mon Oct 5 10:02:36 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if - truncation is not a no-op. - -Mon Oct 5 09:02:04 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Oct 5 08:19:55 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Oct 5 01:07:23 1998 Torbjorn Granlund <tege@matematik.su.se> - - * expmed.c (expand_divmod): Don't widen for computing remainder - if we seem to have a divmod pattern for needed mode. - -Mon Oct 5 01:01:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c (macroexpand): Correct off-by-one error in handling - of escapes. - -Sun Oct 4 23:58:30 1998 Richard Henderson <rth@cygnus.com> - - * combine.c (expand_field_assignment): Don't do bitwise operations - on MODE_FLOAT; pun to MODE_INT if possible. - -Sun Oct 4 18:33:24 1998 Jason Merrill <jason@yorick.cygnus.com> - scott snyder <snyder@d0sgif.fnal.gov> - - * tlink.c (scan_linker_output): Recognize errors from irix 6.2 - linker. Recognize mangled names in quotes. - -Sun Oct 4 02:58:20 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64. - (ashlsi3_const1, ashldi3_const1): New combiner patterns. - (ashrsi3_extend, ashrsi3_extend2): New combiner patterns. - (lshrsi3_extend, lshrsi3_extend2): Ditto. - -Sun Oct 4 00:23:00 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * function.c (purge_addressof_1): If trying to take a sub-word - integral piece of a floating point mode, put it on the stack. - -Sat Oct 3 19:01:03 1998 Richard Henderson <rth@cygnus.com> - - * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake. - -Sat Oct 3 14:42:19 1998 Jason Merrill <jason@yorick.cygnus.com> - - * PROJECTS: Remove template friends. - - * collect2.c (sort_ids): Remove unused variable. - - * tm.texi (MATH_LIBRARY): Document. - (NEED_MATH_LIBRARY): Remove. - - * varasm.c (assemble_start_function, assemble_variable, weak_finish, - assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too. - -Sat Oct 3 16:14:44 1998 John Carr <jfc@mit.edu> - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Initialize - last_end to 0x7fffffff. - -Fri Oct 2 19:14:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * function.c (purge_addressof_1): Do not perform endianness - corrections on bitpos, who we call will do it for us. - -Fri Oct 2 11:52:35 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.c (WORD_REG_USED): Fix typo. - (initial_offset): Use WORD_REG_USED. - - * h8300.c (handle_pragma): Fix typo. - -Fri Oct 2 10:51:35 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * caller-save.c (insert_save_restore): Break this function up - into new functions insert_restore, insert_save and insert_one_insn. - All callers changed. - (insert_restore): New function, mostly broken out of - insert_save_restore. - (insert_save): Likewise. - (insert_one_insn): Likewise. - (restore_referenced_regs): New argument BLOCK. All callers changed. - (save_call_clobbered_regs): Don't keep track of basic block boundaries - in this function, do it in insert_one_insn instead. - - * reload1.c (reload): Break out some more pieces into separate - functions. - (dump_needs): New function, broken out of reload. - (set_initial_elim_offsets): Likewise. - (init_elim_table): Likewise. - (update_eliminables): Likewise. - - * global.c (global_alloc): Delete code to manage the scratch_list. - * local-alloc.c (qty_scratch_rtx): Delete. - (scratch_block): Delete. - (scratch_list): Delete. - (scratch_list_length): Delete. - (scratch_index): Delete. - (alloc_qty_for_scratch): Delete. - (local-alloc): Update initialization of max_qty. - Delete code to manage the scratch list. - Delete code to allocate/initialize qty_scratch_rtx. - (block_alloc): Don't allocate quantities for scratches. - Delete code to manage the scratch list. - * regs.h (scratch_list): Delete declaration. - (scratch_block): Delete declaration. - (scratch_list_length): Delete declaration. - * reload1.c (reload): Delete code to manage the scratch list. - (spill_hard_reg): Likewise. - (mark_scratch_live): Delete. - - * recog.c (alter_subreg): Delete declaration. - -1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de> - - * Makefile.in (cccp.o): Fix typo in last patch. - -Fri Oct 2 16:13:12 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * t-sh (LIB1ASMFUNCS): Add _set_fpscr . - * config/sh/lib1funcs.asm (___set_fpscr): Add. - -Fri Oct 2 02:01:59 1998 Jeffrey A Law (law@cygnus.com) - - * regclass.c (reg_scan_mark_refs): Return immediately if passed a - NULL_RTX as an argument. - - * Makefile.in (unlibsubdir): Define. - (DRIVER_DEFINES): Use unlibsubdir. - (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly. - (stmp-fixinc): Similarly. - -Thu Oct 1 19:58:30 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * regmove.c (regmove_optimize): Add variable old_max_uid. - At the end of the function, update basic_block_end. - -Thu Oct 1 17:58:25 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Use - FIRST_PSEUDO_REGISTER as upper bound for last_end, not an - arbitrary constant. - -Thu Oct 1 17:57:14 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c: Improve interworking support. - -Thu Oct 1 18:43:35 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was - copied from reload_out[r] . - -Thu Oct 1 19:20:09 1998 John Carr <jfc@mit.edu> - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work - with more than three size ranges. - - * flow.c (sbitmap_copy): Use bcopy to copy bitmap. - - * rtl.c (mode_name): Add a null string at the end of the array. - (mode_wider_mode): Change type to unsigned char. - (mode_mask_array): New variable. - (init_rtl): Update for mode_wider_mode type change. - - * rtl.h (mode_wider_mode): Change type to unsigned char. - (mode_mask_array): Declare. - (GET_MODE_MASK): Use mode_mask_array. - -Thu Oct 1 15:56:01 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * calls.c (expand_call) : Encapsulate code into - copy_blkmode_from_reg. - * expr.c (copy_blkmode_from_reg): New function. - * expr.h (copy_blkmode_from_reg): New function. - * integrate.c (function_cannot_inline_p): We can inline - these now. - (expand_inline_function): Use copy_blkmode_from_reg - if needed. Avoid creating BLKmode REGs. - (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode - object. - -Thu Oct 1 10:42:27 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c: Add function prototypes. - Add support for v850 special data areas. - - * config/v850/v850.h: Add support for v850 special data areas. - - * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and - HANDLE_PRAGMA_PACK_PUSH_POP. - (push_alignment): New function: Cache an alignment requested - by a #pragma pack(push,<n>). - (pop_alignment): New function: Pop an alignment from the - alignment stack. - (insert_pack_attributes): New function: Generate __packed__ - and __aligned__ attributes for new decls whilst a #pragma pack - is in effect. - (add_weak): New function: Cache a #pragma weak directive. - (handle_pragma_token): Document calling conventions. Add - support for #pragma pack(push,<n>) and #pragma pack (pop). - - * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP - are defined enable HANDLE_PRAGMA_PACK. - Move 'struct weak_syms' here (from varasm.c). - Add pragma states for push and pop pragmas. - - * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES - if it is defined. - - * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with - HANDLE_GENERIC_PRAGMAS. - - * varasm.c: Move definition of 'struct weak_syms' into - c-pragma.h. - (handle_pragma_weak): Deleted. - - * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. - - * c-decl.c (start_function): Add invocation of - SET_DEFAULT_DECL_ATTRIBUTES, if defined. - - * tm.texi: Remove description of non-existant macro - SET_DEFAULT_SECTION_NAME. - - (HANDLE_SYSV_PRAGMA): Document. - (HANDLE_PRAGMA_PACK_PUSH_POP): Document. - -Wed Sep 30 22:27:53 1998 Robert Lipe <robertl@dgii.com> - - * config.sub: Recognize i[34567]86-pc-udk as new target. - * configure.in: Likewise. - * config/i386/t-udk: New file. - * config/i386/udk.h: New file. - -Wed Sep 30 19:33:07 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (check_annul_list_true_false): Remove unused variables. - (steal_delay_list_from_target): Add missing "used_annul" variable. - (try_merge_delay_insns): Close out half formed comment. - -Wed Sep 30 19:13:20 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * cpplib.c (macroexpand): If arg->raw_before or - arg->raw_after, remove any no-reexpansion escape at the - beginning of the pasted token. Correct handling of whitespace - markers and no-reexpand markers at the end if arg->raw_after. - - * toplev.c (documented_lang_options): Recognize -include, - -imacros, -iwithprefix, -iwithprefixbefore. - * cpplib.c (cpp_start_read): Process -imacros and -include - switches at the same time and in command-line order, after - initializing the dependency-output code. Emit properly nested - #line directives for them. Emit a #line for the main file - before processing these switches, and don't do it again - afterward. - -Wed Sep 30 18:03:22 1998 Richard Henderson <rth@cygnus.com> - - * function.c (purge_addressof_1): Use bitfield manipulation - routines to handle mem mode < reg mode. - -Wed Sep 30 18:43:32 1998 Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * reorg.c (try_merge_delay_insns): Account for resources referenced - in each instruction in INSN's delay list before trying to eliminate - useless instructions. Similarly when looking at a trial insn's delay - slots. - - * reorg.c (check_annul_list_true_false): New function. - (steal_delay_list_from_{target,fallthrough}): Call it and also - refine tests for when we may annul if already filled a slot. - (fill_slots_from_thread): Likewise. - (delete_from_delay_slot): Return newly-created thread. - (try_merge_delay_isns): Use its new return value. - -Wed Sep 30 18:29:26 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is - used to compute a giv or as some other non-counting use. - -Wed Sep 30 18:19:27 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro. - * local-alloc.c (find_free_reg): Use it. - * global.c (find_reg): Likewise. - * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED. - - * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. - * caller-save.c (init_caller_save): Use it. - * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE. - -Wed Sep 30 12:57:30 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> - - * configure.in: Add --enable-cpplib option which uses cpplib - for cpp, but doesn't link cpplib into cc1. Make help text - capitalization consistent. - * configure: Rebuilt. - -Wed Sep 30 10:09:39 1998 Mark Mitchell <mark@markmitchell.com> - - * function.c (gen_mem_addressof): If the address REG is - REG_USERVAR_P make the new REG be so also. - * loop.c (scan_loop): Apply DeMorgan's laws and add documentation - in an attempt to clarify slightly. - -Wed Sep 30 09:57:40 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF - and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE. - -Wed Sep 30 10:13:39 1998 Catherine Moore <clm@cygnus.com> - - * toplev.c: Fix last patch. - -Tue Sep 29 20:03:18 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (get_condition): Fix typo in May 9 change. - -Tue Sep 29 11:11:38 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * invoke.texi (-fexceptions): Merge 2 different descriptions. - -Mon Sep 28 22:08:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * toplev.c (documented_lang_options): Spelling corrections. - -Mon Sep 28 19:41:24 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * configure.in: new flags --with-ld and --with-as, equivalent - to setting LD and AS environment variables. Test whether - specified arguments are GNU commands, and report them with - checking messages. Use the specified AS for configure - tests too. - * configure: ditto - * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER - * config.in: ditto - * gcc.c (find_a_file): when looking for `as' and `ld', return - the DEFAULT program if it exists - * collect2.c (main): use DEFAULT_LINKER if it exists - - * gcc.c (find_a_file): the test for existence of a full - pathname was reversed - -Mon Sep 28 17:34:35 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems. - * rs6000.c (output_mi_thunk): Always use a raw jump for now. - -Mon Sep 28 14:24:03 1998 Mark Mitchell <mark@markmitchell.com> - - * tree.h (TYPE_BINFO): Document. - -Mon Sep 28 12:55:49 1998 Stan Cox <scox@cygnus.com> - - * i386-coff.h (dbxcoff.h): Added. - -Mon Sep 28 12:51:00 1998 Catherine Moore <clm@cygnus.com> - - * toplev.c: fix bad patch around flag_data_sections. - -Mon Sep 28 10:32:28 1998 Nick Clifton <nickc@cygnus.com> - - * reload1.c (reload): Use reload_address_index_reg_class and - reload_address_base_reg_class when setting - caller_save_spill_class. (Patch generated by Jim Wilson: - wilson@cygnus.com). - -Mon Sep 28 07:43:34 1998 Mark Mitchell <mark@markmitchell.com> - - * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs - and ARRAY_TYPEs. Tidy up. Improve support for type-punning. - * expr.c (store_field): Add alias_set parameter. Set the - MEM_ALIAS_SET accordingly, if the target is a MEM. - (expand_assignment): Use it. - (store_constructor_field): Pass 0. - (expand_expr): Likewise. - -Mon Sep 28 07:54:03 1998 Catherine Moore <clm@cygnus.com> - - * flags.h: Add flag_data_sections. - * toplev.c: Add option -fdata-sections. Add flag_data_sections. - (compile_file): Error if flag_data_sections not supported. - * varasm.c (assemble_variable): Handle flag_data_sections. - * config/svr4.h: Modify prefixes for UNIQUE_SECTION_NAME. - * config/mips/elf.h: Likewise. - * config/mips/elf64.h: Likewise. - * invoke.texi: Describe -fdata-sections. - -Mon Sep 28 04:15:44 1998 Craig Burley <burley@melange.gnu.org> - - * invoke.texi (-ffloat-store): Clarify that this option - does not affect intermediate results -- only variables. - -Mon Sep 28 04:11:35 1998 Jeffrey A Law (law@cygnus.com) - - * cpp.texi: Update for Fortran usage from Craig. - -Fri Sep 25 22:09:47 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (function_arg_boundary): Revert accidental change on - September 18. - -Fri Sep 25 20:30:00 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk. - (output_mi_thunk): Declare. - - * rs6000.c (output_mi_thunk): Function to create thunks for MI. - (output_function_profiler): Use r12 for temp, instead of r11 so - that we preserve the static chain register. - -Fri Sep 25 14:18:33 1998 Jim Wilson <wilson@cygnus.com> - - * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums. - -Fri Sep 25 19:30:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (gen_shl_sext): Fix case 5. - -Fri Sep 25 17:35:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine): Re-add line that got accidentally lost. - -Fri Sep 25 10:43:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid - accessing variables until they are initialized via va_arg(). - -Thu Sep 24 22:12:16 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * reload1.c (reload_combine): Initialize set before using. - -Thu Sep 24 18:53:20 1998 Jason Merrill <jason@yorick.cygnus.com> - - * sdbout.c (sdbout_field_types): Don't emit the types of fields we - won't be emitting. - -Thu Sep 24 17:05:30 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md (insv): Add comment. In CONST_INT case, and - operand3 with mask before using it. Patch provided by Jim Wilson. - -Thu Sep 24 15:08:08 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * config/sparc/sparc.c (function_value): Perform the equivalent of - PROMOTE_MODE for ARCH64. - (eligible_for_epilogue_delay): Allow DImode operations in delay - slot of a return for ARCH64. - -Thu Sep 24 22:17:54 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (sqrtsf2): Fix mode of sqrt. - -Thu Sep 24 21:48:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (choose_reload_regs): Also try inheritance when - reload_in is a stack slot of a pseudo, even if we already got a - reload reg. - -Thu Sep 24 21:22:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs. - (reload_cse_regs): New function body: call reload_cse_regs_1, - reload_combine, reload_cse_move2add. - When doing expensive_optimizations, call reload_cse_regs_1 a - second time after reload_cse_move2add. - (reload_combine, reload_combine_note_store): New functions. - (reload_combine_note_use): New function. - (reload_cse_move2add, move2add_note_store): New functions. - -Thu Sep 24 18:48:43 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR - reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing. - - Properly keep track of first RELOAD_FOR_X_ADDRESS also for - more than 3 such reloads. - - If there is not more than one RELOAD_FOR_X_ADDRESS, don't change - RELOAD_FOR_X_ADDR_ADDR reload. - -Thu Sep 24 17:45:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (store_constructor): When initializing a field that is smaller - than a word, at the start of a word, try to widen it to a full word. - - * cse.c (cse_insn): When we are about to change a register, - remove any invalid references to it. - - (remove_invalid_subreg_refs): New function. - (mention_regs): Special treatment for SUBREGs. - (insert_regs): Don't strip SUBREG for call to mention_regs. - Check if reg_tick needs to be bumped up before that call. - (lookup_as_function): Try to match known word_mode constants when - looking for a norrower constant. - (canon_hash): Special treatment for SUBREGs. - -Thu Sep 24 01:35:34 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define. - * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is - defined, emit libcall to __enable_execute_stack. Also fix opcodes - and offsets in actual stack trampoline code so they match the - commentary and actually work. - -Thu Sep 24 01:19:02 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for - tmake_file. - (sparc64-*-linux): Use t-linux and sparc/t-linux64 for - tmake_file. Set extra_parts to needed crt objects. - * configure: Rebuilt. - * config/sparc/linux64.h (SPARC_BI_ARCH): Define. - (TARGET_DEFAULT): Set if default is v9 or ultra. - (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros. - (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH. - (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise. - (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, - LINK_SPEC, LINK_ARCH_SPEC): Likewise. - (TARGET_VERSION): Define. - (MULTILIB_DEFAULT): Define. - * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that - mixed 32/64 bit compilers based upon SPARC_BI_ARCH work. - (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define - appropriately. - (TARGET_SWITCHES): Allow ptr32/ptr64 options once more. - * config/sparc/sparc.c (sparc_override_options): If arch and - pointer size disagree, emit diagnostic and fix it up. If - SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32. Turn off - V8PLUS in 64-bit mode. - * config/sparc/t-linux64: New file. - * config/sparc/t-sol2-64: New file. - * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS. - * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define. - (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC, - CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define. - (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those. - (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC): - Define. - (STARTFILE_SPEC): Set approriately based upon those. - (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon - disposition of DEFAULT_ARCH32_P. - (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define. - (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those. - (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P. - (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH. - * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on - arch64/v9. - * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise. - -Wed Sep 23 22:32:31 1998 Mark Mitchell <mark@markmitchell.com> - - * rtl.h (init_virtual_regs): New function. - * emit-rtl.c (init_virtual_regs): Define. - (insn_emit): Use it. - * integrate.c (save_for_inline_copying): Likewise. - -Wed Sep 23 16:22:01 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h: The following patches were made by Jim Wilson: - (enum reg_class): Add NONARG_LO_REGS support. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, - PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload - completes. Re-enable HImode REG+OFFSET addresses. - (LEGITIMIZE_RELOAD_ADDRESS): Define. - - * expmed.c (extract_bit_field): Add comment from Jim Wilson. - -Wed Sep 23 13:26:02 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (get_aligned_mem): Revert Sep 20 change. - (alpha_set_memflags, alpha_set_memflags_1): Likewise. - (alpha_align_insns): Properly calculate initial offset wrt max_align. - -Wed Sep 23 10:45:44 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (find_barrier): Revert change of Apr 23. Handle table - jumps as a single entity, taking into account the size of the - table. - -Tue Sep 22 15:13:34 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * tree.def (SWITCH_EXPR): New tree node definition. - -Mon Sep 21 23:40:38 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 22:31:14 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 22:48:09 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Recognize i[34567]86-*-openbsd* and handle it like - NetBSD. - -Mon Sep 21 22:05:28 1998 Jeffrey A Law (law@cygnus.com) - - * Revert this patch. - * reload.c (find_reloads): Do not replace a pseudo with - (MEM (reg_equiv_addr)) in the initializing insn for the - pseudo. - -Mon Sep 21 20:19:41 1998 John Carr <jfc@mit.edu> - - * final.c (final_scan_insn): Disable tracking CC across branches. - -Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * expr.h (eh_rtime_match_libfunc): New extern declaration. - * optabs.c (init_optabs): Set eh_rtime_match_libfunc. - * except.c (start_catch_handler): Use eh_rtime_match_libfunc. - * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is - NULL. Only include <stdio.h> if inhibit_libc is not defined. - -Mon Sep 21 14:10:51 1998 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_compilation): Skip compiling anything with - DECL_EXTERNAL set, not just if it has DECL_INLINE as well. - -Mon Sep 21 13:51:05 1998 Jim Wilson <wilson@cygnus.com> - - * flow.c (find_basic_blocks): Delete check for in_libcall_block when - prev_code is a CALL_INSN. Change check for REG_RETVAL note to - use in_libcall_block. - (find_basic_blocks_1): Delete check for in_libcall_block when prev_code - is a CALL_INSN. If CALL_INSN and in_libcall_block, then change code - to INSN. - -Mon Sep 21 14:02:23 1998 - - * i386.h: (TARGET_SWITCHES) Improve doc for align-double. Fix - typo in no-fancy-math-387 description. - -Mon Sep 21 09:27:18 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 09:24:49 1998 Stan Cox <scox@cygnus.com> - - * i386-coff.h (DBX_DEBUGGING_INFO): Added. - -Mon Sep 21 09:14:49 1998 Robert Lipe <robertl@dgii.com> - - * i386.h: (TARGET_SWITCHES) Add description fields for flags - documented in install.texi. - (TARGET_OPTIONS) Likewise. - -Mon Sep 21 01:39:03 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 01:53:05 1998 Felix Lee <flee@cygnus.com> - - * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). - * cccp.c (main): Likewise. - - * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h: - Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some - macro-use bugs. - -Mon Sep 21 00:52:12 1998 Per Bothner <bothner@cygnus.com> - - * Makefile.in (LIBS): Link in libiberty.a. - * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy. - -Sun Sep 20 23:28:11 1998 Richard Henderson <rth@cygnus.com> - - * reload1.c (emit_reload_insns): Accept a new arg for the bb. Use - it to update bb boundaries. Update caller. - * function.c (reposition_prologue_and_epilogue_notes): Update - bb boundaries wrt the moved note. - -Sun Sep 20 20:57:02 1998 Robert Lipe <robertl@dgii.com> - - * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder - problems. - * configure: Regenerate. - -Sun Sep 20 19:01:51 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_sr_alias_set): New variable. - (override_options): Set it. - (alpha_expand_prologue, alpha_expand_epilogue): Use it. - (mode_mask_operand): Fix signed-unsigned comparision warning. - (alpha_expand_block_move): Likewise. - (print_operand): Likewise. - (get_aligned_mem): Use change_address. - (alpha_set_memflags, alpha_set_memflags_1): Set the alias set. - (alphaev4_insn_pipe, alphaev4_next_group): New functions. - (alphaev4_next_nop, alphaev5_next_nop): New functions. - (alpha_align_insns): Remade from old alphaev5_align_insns - to handle multiple processors. - (alpha_reorg): Call alpha_align_insns for both ev4 and ev5. - * output.h (label_to_alignment): Prototype. - - * tree.c (new_alias_set): New function. - * tree.h (new_alias_set): Declare it. - * c-common.c (c_get_alias_set): Use it. - -Sun Sep 20 12:35:55 1998 Richard Henderson <rth@cygnus.com> - - * fold-const.c (fold): Yet another COND_EXPR bug: when folding - to an ABS expr, convert an unsigned input to signed. - -Sun Sep 20 12:14:45 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Fix another type in COND_EXPR handling code. - -1998-09-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * configure.in: Add support for c4x targets. - * configure: Rebuilt. - -Sun Sep 20 00:00:51 1998 Richard Henderson <rth@cygnus.com> - - * combine.c (distribute_notes): If an insn is a cc0 user, only - delete it if we can also delete the cc0 setter. - -Sun Sep 20 00:22:23 1998 Michael Tiemann <michael@impact.tiemann.org> - - * fold-const.c (fold): Fix typo in COND_EXPR handling code. - (invert_truthvalue): Enable truthvalue inversion for - floating-point operands if -ffast-math. - -Sat Sep 19 23:58:07 1998 Melissa O'Neill <oneill@cs.sfu.ca> - - * configure.in: Disable collect2 for nextstep. Instead use - crtbegin/crtend. - * configure: Rebuilt. - * config/nextstep.h (STARTFILE_SPEC): Add crtbegin. - (ENDFILE_SPEC): Define. - (OBJECT_FORMAT_MACHO): Define. - (EH_FRAME_SECTION_ASM_OP): Define. - * crtstuff.c: Handle MACHO. - -Sun Sep 20 00:24:24 1998 Robert Lipe <robertl@dgii.com> - - * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define. - -1998-09-19 Torbjorn Granlund <tege@matematik.su.se> - - * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0. - (_fpadd_parts): Get sign right for 0. - -1998-09-19 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * ginclude/varargs.h: Add support for C4x target. - * ginclude/stdargs.h: Likewise. - -Sat Sep 19 12:05:09 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_return_addr): SET should be VOIDmode. - (alpha_emit_set_long_const): Rewrite to be callable from reload - and 32-bit hosts. - (alpha_expand_epilogue): Update for alpha_emit_set_long_const. - * alpha.md (movdi): Likewise. - -Sat Sep 19 07:33:36 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (add_constant): New parameter address_only, change caller. - Set it non-zero if taking the address of an item in the pool. - (arm_reorg): Handle cases where we need the address of an item in - the pool. - - * arm.c (bad_signed_byte_operand): Check both arms of a sum in - a memory address. - * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle - memory addresses that are not in standard canonical form. - -Sat Sep 19 01:00:32 1998 Michael Hayes (mph@elec.canterbury.ac.nz) - - * README.C4X: New file with information about the c4x ports. - * ginclude/va-c4x.h: New file for c4x varargs support. - * config/c4x: New directory with c4x port files. - -Fri Sep 18 22:52:05 1998 Jeffrey A Law (law@cygnus.com) - - * reload.c (find_reloads): Do not replace a pseudo with - (MEM (reg_equiv_addr)) in the initializing insn for the - pseudo. - -Fri Sep 18 23:50:56 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * toplev.c (rest_of_compilation): Set bct_p on second call to - loop_optimize. - * loop.c (loop_optimize, scan_loop, strength_reduce): New argument - bct_p. - (strength_reduce): Only call analyze_loop_iterations and - insert_bct if bct_p set. - (check_dbra_loop): Fix typo. - (insert_bct): Use word_mode instead of SImode. - (instrument_loop_bct): Likewise. Do not delete iteration count - condition code generation insn. Initialize iteration count before - loop start. - * rtl.h (loop_optimize): Update prototype. - - * ginclude/va-ppc.h (va_arg): longlong types in overflow area are - not doubleword aligned. - - * rs6000.c (optimization_options): New function. - (secondary_reload_class): Only call true_regnum for PSEUDO_REGs. - * rs6000.h (OPTIMIZATION_OPTIONS): Define. - (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters - first; cr1 can be used for FP record condition insns. - -Fri Sep 18 09:44:55 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h (m32r_block_immediate_operand): Add to - PREDICATE_CODES. - - * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" - patterns. - - * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p' - operators. - (block_move_call): New function: Call a library routine to copy a - block of memory. - (m32r_expand_block_move): New function: Expand a "movstrsi" - pattern into a sequence of insns. - (m32r_output_block_move): New function: Expand a - "movstrsi_internal" pattern into a sequence of assembler opcodes. - (m32r_block_immediate_operand): New function: Return true if the - RTL is an integer constant, less than or equal to MAX_MOVE_BYTES. - -Thu Sep 17 16:42:16 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and - re-align some code. - * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>. - -Thu Sep 17 12:24:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (copy_src_to_dest): Check that modes match. - -Wed Sep 16 22:10:42 1998 Robert Lipe <robertl@dgii.com> - - * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF. - -Wed Sep 16 15:24:54 1998 Richard Henderson <rth@cygnus.com> - - * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class - narrower than FLOAT_REGS. - -Wed Sep 16 17:51:00 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR - * cccp.c: ditto - * Makefile.in (old_gxx_include_dir): removed - -Wed Sep 16 12:29:22 1998 Nick Clifton <nickc@cygnus.com> - - * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match - new specification. - - * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma(). - (sh_handle_pragma): Change function arguments to match new - specification for HANDLE_PRAGMA. - -Wed Sep 16 12:43:19 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to - `unsigned char'. - (main): Mark parameter `argc' with ATTRIBUTE_UNUSED. - When generating output, initialize missing struct member to zero. - -Wed Sep 16 14:47:43 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (copy_src_to_dest): Don't copy if that requires - (a) new register(s). - -Wed Sep 16 01:29:12 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * global.c (reg_allocno): Now static. - * reload1.c (reg_allocno): Delete declaration. - (order_regs_for_reload): Take no arguments. Don't treat regs - allocated by global differently than those allocated by local-alloc. - -Wed Sep 16 01:09:01 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q - condition, fix format strings. - (output_function_epilogue): Likewise. - - * m68k/m68k.c: Don't include <stdlib.h> directly. - -Wed Sep 16 00:30:56 1998 Geoff Keating <geoffk@ozemail.com.au> - - * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set, - mem_first_set, mem_last_set; because 0 can be a CUID. - (oprs_unchanged_p): Use new definition. - (record_last_reg_set_info): Likewise. - (record_last_mem_set_info): Likewise. - (compute_hash_table): Likewise. - -Tue Sep 15 22:59:52 1998 Jeffrey A Law (law@cygnus.com) - - * rs6000.c (output_epilogue): Handle Chill. - - * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - - * combine.c (make_extraction): If no mode is specified for - an operand of insv, extv, or extzv, default it to word_mode. - (simplify_comparison): Similarly. - * expmed.c (store_bit_field): Similarly. - (extract_bit_field): Similarly. - * function.c (fixup_var_regs_1): Similarly. - * recog.c (validate_replace_rtx_1): Similarly. - * mips.md (extv, extzv, insv expanders): Default modes for most - operands. Handle TARGET_64BIT. - (movdi_uld, movdi_usd): New patterns. - - * pa.c (emit_move_sequence): Do not replace a pseudo with its - equivalent memory location unless we have been provided a scratch - register. Similarly do not call find_replacement unless a - scratch register has been provided. - -Tue Sep 15 19:23:01 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants, - return FLOAT_REGS. - -Tue Sep 15 19:09:06 1998 Richard Henderson <rth@cygnus.com> - - * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill. - (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill. - (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill. - (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New. - * c-decl.c (init_decl_processing): Update accordingly. - * expr.c (expand_builtin): Likewise. - - * rtl.h (global_rtl): Add cfa entry. - (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New. - (LAST_VIRTUAL_REGISTER): Update. - * emit-rtl.c (global_rtl): Add cfa entry. - (init_emit): Initialize it. - * function.c (cfa_offset): New. - (instantiate_virtual_regs): Initialize it. - (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx. - (expand_function_end): Call expand_eh_return. - * tm.texi (ARG_POINTER_CFA_OFFSET): New. - - * except.c (current_function_eh_stub_label): Kill. - (current_function_eh_old_stub_label): Likwise; update all references. - (expand_builtin_set_return_addr_reg): Kill. - (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill. - (expand_builtin_set_eh_regs): Kill. - (eh_regs): Produce a third reg for the actual handler address. - (eh_return_context, eh_return_stack_adjust): New. - (eh_return_handler, eh_return_stub_label): New. - (init_eh_for_function): Initialize them. - (expand_builtin_eh_return, expand_eh_return): New. - * except.h: Update prototypes. - * flow.c (find_basic_blocks_1): Update references to the stub label. - * function.h (struct function): Kill stub label elements. - - * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the - register number is one that would be in the previous window. - Provide a dummy definition for non-windowed targets. - (get_reg_addr): New function. - (get_reg, put_reg, copy_reg): Use it. - (__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub - generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa. - - * alpha.c (alpha_eh_epilogue_sp_ofs): New. - (alpha_init_expanders): Initialize it. - (alpha_expand_epilogue): Use it. - * alpha.h: Declare it. - * alpha.md (eh_epilogue): New. - - * m68h.h (ARG_POINTER_CFA_OFFSET): New. - * sparc.h (ARG_POINTER_CFA_OFFSET): New. - -Tue Sep 15 19:31:58 1998 Michael Meissner <meissner@cygnus.com> - - * i960.h (CONST_COSTS): Fix thinko. Test flag, not the constant - flag bit mask. - -Tue Sep 15 14:10:54 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.h (struct eh_entry): Add false_label field. - (end_catch_handler): Add prototype. - * except.c (push_eh_entry): Set false_label field to NULL_RTX. - (start_catch_handler): When using old style exceptions, issue - runtime typematch code before continuing with the handler. - (end_catch_handler): New function, generates label after handler - if needed by older style exceptions. - (expand_start_all_catch): No need to check for new style exceptions. - (output_exception_table_entry): Only output the first handler label - for old style exceptions. - * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching - mechanism into one function, if a runtime matcher is provided. - -Tue Sep 15 13:53:59 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1. - -Tue Sep 15 09:59:01 1998 Mark Mitchell <mark@markmitchell.com> - - * integrate.c (copy_decl_list): Fix typo. - -Tue Sep 15 04:18:52 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length - attribute. - -Mon Sep 14 14:02:53 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 14 10:33:56 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 14 09:51:05 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 13 22:10:18 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * invoke.texi (C Dialect Options): Put back missing @end itemize. - -Mon Sep 14 02:33:46 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * configure.in: remove usage of `!' to negate the result of a - command; some common shells do not support it - -Sun Sep 13 19:17:35 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * configure.in: in sparc9-sol2 config, use 'if test' not - brackets. - * configure: Rebuilt. - - * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to - CM_MEDANY. - (CPP_CPU_SPEC): Do not define _LP64, header files do this. - (CPP_CPU_DEFAULT_SPEC): Likewise. - * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right - for arch64 libfuncs. - - * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode - for operand zero. - -Sun Sep 13 09:11:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub. - - * collect2.c: Don't declare `sys_siglist' here. - (my_strsignal): Prototype and define new function. Use it in - place of `sys_siglist' hacks. - - * mips_tfile.c: Likewise. - - * configure.in (AC_CHECK_FUNCS): Check for strsignal. - (GCC_NEED_DECLARATIONS): Likewise. - - * system.h (strsignal): Prototype it, if necessary. - (sys_siglist): Declare it, if necessary. - -Sun Sep 13 04:37:28 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * loop.c (move_movables): While removing insn sequences, preserve - the next pointer of the most recently deleted insn when we skip - over a NOTE. - -Sun Sep 13 08:13:39 1998 Ben Elliston <bje@cygnus.com> - - * objc/config-lang.in: Do not output the name of the selected - thread file when building the front-end. The Makefile for the - runtime library will do this. - - * objc/Make-lang.in: Do not build the runtime library or install - the Objective C header files. The Makefile for the runtime - library will do this. - - * objc/Makefile.in (all.indirect): Only build the front-end. - (compiler): Rename to `frontend'. - (obj-runtime): Remove target. - (copy-headers): Likewise. - (clean): No need to remove `libobjc.a' any longer. - -Sat Sep 12 11:37:19 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines - supported with -mcpu=xxx. - -Fri Sep 11 23:55:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * flow.c (mark_set_1): Recognize multi-register structure return - values in CALL insns. - (mark_used_regs): Likewise. - (count_reg_sets_1): Likewise. - (count_reg_references): Likewise. - * rtlanal.c (note_stores): Likewise. - (reg_overlap_mentioned_p): Likewise. - * haifa-sched.c (check_live_1): Likewise. - (update_live_1): Likewise. - (sched_analyze_1): Likewise. - (sched_note_set): Likewise. - (birthing_insn_p): Likewise. - (attach_deaths): Likewise. - - * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable. - - -Fri Sep 11 22:57:55 1998 Eric Dumazet <dumazet@cosmosbay.com> - - * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h. - -Thu Sep 10 22:02:04 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * glimits.h (__LONG_MAX__): Recognize __sparcv9 too. - -Thu Sep 10 21:19:10 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * configure.in: Add check for GAS subsection -1 support. - * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add. - * configure config.in: Rebuilt. - * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use - SImode is subsection -1 works, else use DImode. - (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if - subsection -1 works. - * config/sparc/sparc.c (sparc_output_addr_vec, - sparc_output_addr_diff_vec): Use them if defined. - -Thu Sep 10 10:46:01 1998 Mark Mitchell <mark@markmitchell.com> - - * tree.h (DECL_ORIGIN): New macro. - * integrate.c (copy_and_set_decl_abstract_origin): New function. - (copy_decl_list): Use it. - (integrate_parm_decls): Likewise. - (integrate_decl_tree): Likewise. - * dwarf2out.c (decl_ultimate_origin): Simplify. - * dwarfout.c (decl_ultimate_origin): Likewise. - * c-decl.c (duplicate_decls): Use DECL_ORIGIN. - (pushdecl): Likewise. - -Thu Sep 10 08:01:31 1998 Anthony Green <green@cygnus.com> - - * config/rs6000/rs6000.c (output_epilog): Add Java support. - -Thu Sep 10 14:48:59 1998 Martin von Löwis <loewis@informatik.hu-berlin.de> - - * invoke.texi (C++ Dialect Options): Document -fhonor-std. - -Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (straighten_stack): Do nothing if the virtual stack is - empty or has a single entry. - - * toplev.c (rest_of_compilation): Open up the dump file for reg-stack - before calling reg_to_stack. - -Thu Sep 10 00:03:34 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alphaev5_insn_pipe): Abort on default case. - (alphaev5_next_group): Swallow CLOBBERs and USEs. - - * c-tree.h (warn_long_long): Declare it. - -Wed Sep 9 23:31:36 1998 (Stephen L Moshier) <moshier@world.std.com> - - * emit-rtl.c (gen_lowpart_common): Disable optimization of - initialized float-int union if the value is a NaN. - -Wed Sep 9 23:00:48 1998 Nathan Sidwell <nathan@acm.org> - - * c-lex.c (real_yylex): Don't warn about long long constants if - we're allowing long long - -Wed Sep 9 21:58:41 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * except.h (current_function_eh_stub_label): Declare. - (current_function_eh_old_stub_label): Declare. - * function.h (struct function): New members eh_stub_label and - eh_old_stub_label. - * except.c (current_function_eh_stub_label): New variable. - (current_function_eh_old_stub_label): New variable. - (init_eh_for_function): Clear them. - (save_eh_status): Save them. - (restore_eh_status): Restore them. - (expand_builtin_eh_stub): Set current_function_eh_stub_label. - (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label. - * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't - make an edge from the block that contains it to the block starting - with the label if this label is one of the eh stub labels. - If eh stub labels exist, show they are reachable from the last block - in the function. - - * reload1.c (reload): Break out several subroutines and make some - variables global. - (calculate_needs_all_insns): New function, broken out of reload. - (calculate_needs): Likewise. - (find_reload_regs): Likewise. - (find_group): Likewise. - (find_tworeg_group): Likewise. - (something_needs_reloads): New global variable, formerly in reload. - (something_needs_elimination): Likewise. - (caller_save_spill_class): Likewise. - (caller_save_group_size): Likewise. - (max_needs): Likewise. - (group_size): Likewise. - (max_groups): Likewise. - (max_nongroups): Likewise. - (group_mode): Likewise. - (max_needs_insn): Likewise. - (max_groups_insn): Likewise. - (max_nongroups_insn): Likewise. - (failure): Likewise. - - * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET. - -Wed Sep 9 13:14:41 1998 Richard Henderson <rth@cygnus.com> - - * loop.c (load_mems): Copy rtx for output mem. - -Wed Sep 9 15:16:58 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for - mips1 or mips2 either. - -Wed Sep 9 12:31:35 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): New marking scheme for jumps inside switch - tables. - (pa_adjust_insn_length): Update to work with new marking scheme - for jumps inside switch tables. - * pa.md (switch_jump): Remove pattern. - (jump): Handle jumps inside jump tables. - - * Makefile.in (profile.o): Depend on insn-config.h - -Wed Sep 9 09:36:51 1998 Jim Wilson <wilson@cygnus.com> - - * iris6.h (DWARF2_UNWIND_INFO): Undef. - -Wed Sep 9 01:32:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - Add preliminary native sparcv9 Solaris support. - * configure.in: Recognize sparv9-*-solaris2* - * configure: rebuilt - * config.sub: Recognize sparcv9 just like sparc64. - * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm - config/sparc/sol2-cn.asm: Macroize so it can be shared between - 32-bit and 64-bit Solaris systems. - * config/sparc/t-sol2: Assemble those with cpp. - * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9. - (*TF*_LIBCALL): If ARCH64 use V9 names. - * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files. - -Wed Sep 9 01:07:30 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation. - (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and - not doing pic. - (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not - Pmode. - * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0 - to Pmode if CASE_VECTOR_MODE is something else. - -Wed Sep 9 00:10:31 1998 Jeffrey A Law (law@cygnus.com) - - * prefix.c (update_path): Correctly handle cases where PATH is - a substring of the builtin prefix, but specifies a different - directory location. - -Tue Sep 8 23:46:04 1998 Hans-Peter Nilsson <hp@axis.se> - - * expr.c: Corrected comment about what MOVE_RATIO does. - * config/alpha/alpha.h: Ditto. - * config/1750a/1750a.h: Ditto. - * config/clipper/clipper.h: Ditto. - * config/i386/i386.h: Ditto. - -Tue Sep 8 22:56:12 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (m68k-next-nextstep3*): Use collect2. - Similarly for x86 NeXT configurations. - * configure: Rebuilt. - -Tue Sep 8 01:38:57 1998 Nathan Sidwell <nathan@acm.org> - - * configure.in: Don't assume srcdir is .../gcc - * configure: Rebuilt. - -Sat Sep 5 16:34:34 EDT 1998 John Wehle (john@feith.com) - - * global.c: Update comments. - (global_alloc): Assign allocation-numbers - even for registers allocated by local_alloc in case - they are later spilled and retry_global_alloc is called. - (mark_reg_store, mark_reg_clobber, - mark_reg_conflicts, mark_reg_death): Always record a - conflict with a pseudo register even if it has been - assigned to a hard register. - (dump_conflicts): Don't list pseudo registers already assigned to - a hard register as needing to be allocated, but do list their - conflicts. - * local-alloc.c: Update comment. - -Mon Sep 7 23:38:01 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH. - * configure: Rebuilt. - -Mon Sep 7 22:41:46 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): Fix name for ec603e, to add - missing 'c'. - * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx - for all targets that set -msoft-float. - -Mon Sep 7 23:30:07 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * toplev.c (print_switch_values): Make static to match prototype. - -Mon Sep 7 19:13:59 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: If we are unable to find the "gnatbind" program, - then do not configure the ada subdir. - * configure: Rebuilt. - -Sun Sep 6 14:03:58 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 6 13:28:07 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 6 08:54:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (toplev.o): Depend on $(EXPR_H). - (insn-extract.o, insn-attrtab.o): Depend on toplev.h. - - * gansidecl.h: Define ATTRIBUTE_NORETURN. - - * genattrtab.c: Have insn-attrtab.c include toplev.h. - - * genextract.c: Have insn-extract.c include toplev.h. - - * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'. - - * toplev.c: Include expr.h. - (really_sorry, fancy_abort): Remove prototypes. - (set_target_switch): Add argument in prototype. - (vfatal): Mark prototype with ATTRIBUTE_NORETURN. - (v_really_sorry): Likewise. - (print_version, print_single_switch, print_switch_values): Make - static and add prototype arguments. - (decl_printable_name): Add prototype arguments. - (lang_expand_expr_t): New typedef. - (lang_expand_expr): Declare as a lang_expand_expr_t. - (incomplete_decl_finalize_hook): Add prototype argument. - (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED. - (botch): Likewise for variable `s'. - (rest_of_type_compilation): Mark variables `type' and `toplev' - with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO, - XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined. - (display_help): Make variable `i' an `unsigned long'. - (main): Remove unused parameter `envp'. - Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'. - Cast -1 when comparing it with a `size_t'. - - * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark - prototype with ATTRIBUTE_NORETURN. - (fatal_insn_not_found, fatal_insn, really_sorry, - push_float_handler, pop_float_handler): Add prototypes. - (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN. - (do_abort, botch): Add prototypes. - -Sat Sep 6 12:05:18 1998 John Carr <jfc@mit.edu> - - * final.c (final): If a label is reached only from a single jump, - call NOTICE_UPDATE_CC on the jump and its predecessor before - emitting the insn after the label. - - * i386.h: Add AMD K6 support. - Change TARGET_* macros to use table lookup. - (INITIALIZE_TRAMPOLINE): Improve trampoline code. - (ADJUST_COST): Change definition to call function in i386.c. - (ISSUE_RATE): Define as 2 for anything newer than an 80486. - * i386.c: Add AMD K6 support. - Add constants for feature tests used by TARGET_* macros. - (split_di): If before reload, call gen_lowpart and gen_highpart. - (x86_adjust_cost): New function. - (put_jump_code): New function. - (print_operand): New codes 'D' and 'd'. - * i386.md: New insn types. New insn attribute "memory". - Redefine scheduling parameters to use new types and add AMD K6 - support. Explicitly set type of most insns. - (move insns): K6 prefers movl $0,reg to xorl reg,reg. Pentium - Pro and K6 prefer movl $1,reg to incl reg. - (adddi3, subdi3): Set cc_status. - (DImode shift patterns): Change label counters from HOST_WIDE_INT - to int; x86 can't have more than 2^31 DImode shifts per file. - (setcc): Combine all setcc patterns. Allow writing memory. - Combine all jump patterns using match_operator. - (*bzero): Name pattern. Emit mutliple stos instructions when that - is faster than rep stos. - (xordi3, anddi3, iordi3): Simplify DImode logical patterns and - add define_split. - -Sun Sep 6 11:17:20 1998 Dave Love <d.love@dl.ac.uk> - - * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771 - linking. - -Sat Sep 5 22:05:25 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, - not whatever we're generating now. - - * alpha.c (set_frame_related_p, FRP): New. - (alpha_expand_prologue): Mark frame related insns. - (alpha_expand_epilogue): Likewise, but with a null FRP. - * alpha.h (INCOMING_RETURN_ADDR_RTX): New. - * alpha.md (exception_receiver): New. - * alpha/crtbegin.asm (.eh_frame): New beginning. - (__do_frame_setup, __do_frame_takedown): New. - * alpha/crtend.asm (.eh_frame): New ending. - * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define. - (ASM_SPEC): Don't emit both dwarf2 and mdebug. - (ASM_FILE_START): Don't emit .file for dwarf2. - - * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR. - * rtl.c (reg_note_name): Likewise. - * rtl.texi (REG_NOTES): Likewise. - * dwarf2out.c (dwarf2out_frame_debug): Use it. Recognize a store - without an offset. - -Sat Sep 5 14:47:17 1998 Richard Henderson <rth@cygnus.com> - - * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS. - * i386.md (movsf, movdf, movxf): Validate memory address returned - from force_const_mem. Kill useless REG_EQUAL setting code. - -Sat Sep 5 14:23:31 1998 Torbjorn Granlund <tege@matematik.su.se> - - * m68k.md (zero_extendsidi2): Fix typo. - -Sat Sep 5 13:40:24 1998 Krister Walfridsson <cato@df.lth.se> - - * configure.in: Removed references to the removed file - * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for - * arm*-*-netbsd* and ns32k-*-netbsd*. - * config/i386/xm-netbsd.h: Removed unnecessary file. - * config/m68k/xm-netbsd.h: Likewise. - * config/sparc/xm-netbsd.h: Likewise. - * config/mips/xm-netbsd.h: Likewise. - -Sat Aug 29 13:32:58 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define. - (PCC_BITFIELD_TYPE_MATTERS): Define to be 0. - - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for - for exact section attributions. - - * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc - runtime. - * i386/crtdll.h (CPP_PREDEFINES): Define. - -Sat Sep 5 03:23:05 1998 Jeffrey A Law (law@cygnus.com) - - * m68k.md (5200 movqi): Do not allow byte sized memory references - using address regs. - * m68k.c (output_move_qimode): Do not use byte sized operations on - address registers. - - * Makefile.in (pexecute.o): Use pexecute.c from libiberty. Provide - explicit rules for building. Similarly for alloca, vfprintf, - choose-temp and mkstemp, getopt, getopt1, and obstack. - (INCLUDES): Add $(srcdir)/../include. - * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete. - * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise. - -Fri Sep 4 11:57:50 1998 Tom Tromey <tromey@cygnus.com> - - * gcc.c (do_spec_1): [case 'o'] Account for - lang_specific_extra_outfiles. - (main): Correctly clear all slots in outfiles for - lang_specific_extra_outfiles. Set input_file_number before - calling lang_specific_pre_link. - -Fri Sep 4 10:37:07 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. - -Fri Sep 4 02:01:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (output_double_int): In all V9 symbolic - cases, use xword. - (sparc_output_deferred_case_vectors): If no work to do, return. - Fix thinko in Sept 1 change. - -1998-09-03 SL Baur <steve@altair.xemacs.org> - - * Makefile.in: add semicolon in BISON definition for portability. - -Thu Sep 3 13:34:41 1998 Toon Moene <toon@moene.indiv.nluug.nl> - - * config/nextstep.c (handle_pragma): Correct name of third - argument. - -Tue Sep 1 11:30:33 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17). - * config/m32r/m32r.h: Make register 17 be fixed. - * config/m32r/m32r.c: Use SImode for cc operations. - -Thu Sep 3 18:17:34 1998 Benjamin Kosnik <bkoz@cygnus.com> - - * invoke.texi (Warning Options): Add -Wnon-template-friend - documentation. - -Thu Sep 3 18:16:16 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}. - -Thu Sep 3 18:05:16 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (movsf): Disable explicit secondary-reload-like - functionality if TARGET_POWERPC64. - (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like - functionality. - -Thu Sep 3 11:41:40 1998 Robert Lipe <robertl@dgii.com> - - * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h - and term.h from fixinc.wrap. - -Thu Sep 3 09:47:31 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is - safe to include both string.h and strings.h together. - (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding - which headers to search for function declarations. Continue to - prefer string.h over strings.h when both are not acceptable. - - * acconfig.h (STRING_WITH_STRINGS): Add stub. - - * configure.in: Call GCC_HEADER_STRING. - - * system.h: Test STRING_WITH_STRINGS when deciding which headers - to include. Continue to prefer string.h over strings.h when both - are not acceptable. - -Wed Sep 2 23:56:29 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do - not assume top 32-bits of symbolic addresses are zero if - flag_pic. - -Thu Sep 3 00:23:21 1998 Richard Henderson <rth@cygnus.com> - - * ginclude/va-alpha.h: Protect entire second portion of the - file against double inclusion. - -Thu Sep 3 00:37:55 1998 Ovidiu Predescu <ovidiu@aracnet.com> - - Added support for the Boehm's garbage collector. - * configure.in: Handle --enable-objc-gc. - * configure: Rebuilt. - * Makefile.in (CHECK_TARGETS): Add check-objc. - (check-objc): New rule. - * objc/Make-lang.in: Build a different Objective-C library that - runs with the Boehm's collector. - * objc/encoding.c (objc_round_acc_size_for_types): New function. - * objc/encoding.c: Correctly compute the size of compound types in - the presence of bitfields. Skip the variable name of the type if - any. Added support for long long. - * objc/encoding.h (_C_GCINVISIBLE): New specifier. - (_F_GCINVISIBLE): New mask. - * objc/gc.c: New file. Compute the type memory mask associated with - a class based on the runtime information. - * objc/misc.c: Added the hooks that use the Boehm's collector - allocation functions. - * objc/objc-act.c (build_class_template): Generate a new class - member (gc_object_type) to hold the class' type memory mask. - (build_shared_structure_initializer): Initialize the new member to - NULL. - (encode_complete_bitfield): New function. Generate the new - encoding. - (encode_field_decl): Generate the new encoding only for the GNU - runtime. - * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the - long long types. - (class_get_gc_object_type): New function to mark a pointer instance - variable as a weak pointer. - * objc/objc-features.texi: New file. - * objc/objc.h (gc_object_type): New class member. - * objc/objects.c (class_create_instance): Create a typed memory - object when compiled with Boehm's collector support. - * objc/sendmsg.c (__objc_init_install_dtable): Call - __objc_send_initialize instead of setting the initialize flag. - (__objc_send_initialize): Call __objc_generate_gc_type_description - to generate the class type memory mask. Rewrite the code that - sends the +initialize so that it is called only once (bug report - and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>). - * testsuite/objc: New testsuite for Objective-C type encoding. - * testsuite/lib/objc-torture.exp: New file. - * testsuite/lib/objc.exp: New file. - -Wed Sep 2 14:47:36 1998 Jim Wilson <wilson@cygnus.com> - - * jump.c (jump_optimize): In if/then/else transformations, add - another call to modified_between_p for the jump insn. - -Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com) - - * fix-header.c (symlink): Treat like readlink. - -Wed Sep 2 19:30:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles - as FT_float. - -Wed Sep 2 10:06:07 1998 Nick Clifton <nickc@cygnus.com> - - * config/nextstep.h: Update HANDLE_PRAGMA macro. - * config/h8300/h8300.h: Update HANDLE_PRAGMA macro. - * config/i960/i960.h: Update HANDLE_PRAGMA macro. - - * config/nextstep.c (handle_pragma): Take three arguments, as per - the new HANDLE_PRAGMA macro specification. - * config/h8300/h8300.c (handle_pragma): Take three arguments, as - per the new HANDLE_PRAGMA macro specification. - * config/i960/i960.c (process_pragma): Take three arguments, as - per the new HANDLE_PRAGMA macro specification. - -Wed Sep 2 09:25:29 1998 Nick Clifton <nickc@cygnus.com> - - * c-lex.c (check_newline): Call HANDLE_PRAGMA before - HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages - if unknown pragmas are encountered. - (handle_sysv_pragma): Interpret return code from - handle_pragma_token (). Return success/failure indication rather - than next unprocessed character. - (pragma_getc): New function: retrieves characters from the - input stream. Defined when HANDLE_PRAGMA is enabled. - (pragma_ungetc): New function: replaces characters back into the - input stream. Defined when HANDLE_PRAGMA is enabled. - - * c-pragma.c (handle_pragma_token): Return success/failure status - of the parse. - - * c-pragma.h: Change prototype of handle_pragma_token(). - - * varasm.c: (handle_pragma_weak): Only create this function if - HANDLE_PRAGMA_WEAK is defined. - - * c-common,c (decl_attributes): If defined call the expression - contained within the INSERT_ATTRIBUTES macro before adding - attributes to a decl. - - * tm.texi (HANDLE_PRAGMA): Document the new verion of - HANDLE_PRAGMA, which takes three arguments. - (INSERT_ATTRIBUTES): Document this new macro. - - * LANGUAGES: Document the new version of HANDLE_PRAGMA and the - new INSERT_ATTRIBUTES macro. - -Wed Sep 2 02:03:23 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (movdf): Only generate special RTL for - LABEL_REFs when PIC. - (move_label_di): Remove - (movdi_pic_label_ref, movdi_high_pic_label_ref, - movdi_lo_sum_pic_label_ref): New patterns for 64-bit label - references when PIC. - * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT, - ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW, - output an .xword for all 64-bit cases. - -Tue Sep 1 15:55:17 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (finalize_pic): Don't output arbitrary - alignment, use FUNCTION_BOUNDARY instead. - (sparc_output_deferred_case_vectors): Likewise. - -Mon Aug 31 17:25:41 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (movsf_const_intreg): Kill warning. - (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives. - -Mon Aug 31 13:57:55 1998 Richard Henderson <rth@cygnus.com> - - * alpha/va_list.h: New file. - * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. - -Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) - - * NEWS: Add SCO Openserver and Unixware 7 notes. - - * NEWS: Fix typos. - -Mon Aug 31 15:42:18 1998 Dave Brolley <brolley@cygnus.com> - - * varasm.c (compare_constant_1): Handle RANGE_EXPR. - (record_constant_1): Handle RANGE_EXPR. - -Mon Aug 31 10:54:03 1998 Richard Henderson <rth@cygnus.com> - - * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap. - * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START - and NOTE_INSN_RANGE_END specially. - (reemit_notes): Likewise. - -Mon Aug 31 10:18:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'. - (ultrasparc_sched_init): Remove unneeded &. - -Mon Aug 31 10:47:16 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040 - for m68020-60, to prevent the use of fintrz. - -Sun Aug 30 22:17:20 1998 Mark Mitchell <mark@markmitchell.com> - - * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) - even in stage1. - * Makefile.in: Likewise. - * configure: Regenerated. - -Sun Aug 30 22:15:41 1998 H.J. Lu (hjl@gnu.org) - - * configure.in (gxx_include_dir): Changed to - '${prefix}/include/g++'-${libstdcxx_interface}. - * configure: Rebuilt. - -Sun Aug 30 20:19:43 1998 Hans-Peter Nilsson <hp@axis.se> - - * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use - consistent. - * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move - *sequences* *below* which scalar moves will be used. - -Sun Aug 30 17:18:43 1998 Jeffrey A Law (law@cygnus.com) - - * collect2.c (mktemp): Delete unused declaration. - - * config/xm-netbsd.h: Remove unnecessary file. - * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h - file anymore, it is not needed. - -Sun Aug 30 16:05:45 1998 Mark Mitchell <mark@markmitchell.com> - - * convert.c (convert_to_integer): Issue an error on conversions to - incomplete types. - -Sun Aug 30 16:47:20 1998 Martin von Lvwis <loewis@informatik.hu-berlin.de> - - * Makefile.in: Add lang_tree_files and gencheck.h. - * configure.in: Generate them. - * gencheck.c: Include gencheck.h. - -Sat Aug 29 21:38:24 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to - movdi_lo_sum_pic and movdi_high_pic and make visible. - * config/sparc/sparc.c (legitimize_pic_address): For -fPIC, - emit these when Pmode is not SImode. - * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW. - -Sat Aug 29 14:59:32 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit - .linkonce directive after the first time. - -Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com) - - * m68k.md (beq0_di): Generate correct (and more efficient) code when - the clobbered operand overlaps with an input. - (bne0_di): Similarly. - - * Makefile.in (INSTALL): Remove "--no-header" argument. - - * NEWS: Various updates. - -Fri Aug 28 19:00:44 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (arith_operand, const64_operand, - const64_high_operand, arith_double_4096_operand): Mark mode as - unused. - (create_simple_focus_bits): Remove unused arg highest_bit_set, all - callers changed. - (sparc_emit_set_const64): Remove unused variable i. - (sparc_splitdi_legitimate): Likewise for addr_part. - (ultra_code_from_mask): Likewise for mask. - (ultra_cmove_results_ready_p): Fixup entry modulo calc. and - reverse return values so it matches usage and comments. - (ultra_flush_pipeline): Likewise. - (ultra_fpmode_conflict_exists): Likewise, remove unused variable - this_type, and allow loads and stores of differing FP modes as - they do not create a conflict. - (ultra_find_type): Initialize fpmode to SFmode, fix - parenthesization thinkos in large conditional. - (ultrasparc_sched_init): Mark dump and sched_verbose as unused. - Init free_slot_mask after ultra_cur_hist is reset, not before. - (ultrasparc_rescan_pipeline_state): Remove unused variable ucode. - (ultrasparc_sched_reorder): Don't bzero current pipeline state, - use ultra_flush_pipeline instead, then re-init group pointer. - Fix statement with no effect. If no progress made in, and no - instructions scheduled at all, advance to new pipeline cycle else - we get into an endless loop. - (ultrasparc_adjust_cost): Remove previous arg. - * config/sparc/sparc.h (ADJUST_COST): Update to reflect that. - -Fri Aug 28 13:52:35 1998 Jim Wilson <wilson@cygnus.com> - - * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference - code. Use reg_overlap_mentioned_p to detect when source and - destination overlap. - (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands. - -1998-08-28 Brendan Kehoe <brendan@cygnus.com> - - * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not - COMPARISON_VAL, into invariant_p. - -Fri Aug 28 15:13:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (regclass_compatible_p): New function. - (regmove_optimize): Use it. - - Use NREGS parameter insted of calling max_reg_num. - - (fixup_match_1): Don't use code = MINUS when later tieing with - a hard register is likely. - -Fri Aug 28 14:54:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when - COMPARISON_VAL was normalized. - -Thu Aug 27 20:10:46 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): The loop ending comparison value - must be an invariant or we can not reverse the loop. - - * loop.c (scan_loop): Count down from max_reg_num - 1 to - FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration - of the loop. - (load_mems_and_recount_loop_regs_set): Likewise. - - * i386.c (print_operand): Remove obsolete 'c' docs. - -Wed Aug 26 17:13:37 1998 Tom Tromey <tromey@cygnus.com> - - * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION. - * frame.c (init_object_mutex): New function. - (init_object_mutex_once): Likewise. - (find_fde): Call it. - (__register_frame_info): Likewise. - (__register_frame_info_table): Likewise. - (__deregister_frame_info): Likewise. - -Thu Aug 27 15:14:18 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (sched_analyze_insn): Fix thinko in last change. - -Thu Aug 27 16:34:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (check_dbra_loop): Enable code for reversal - of some loops without a known constant loop end. - -Wed Aug 26 18:38:15 1998 Richard Henderson <rth@cygnus.com> - - * haifa-sched.c (last_clock_var): New. - (schedule_block): Initialize it. - (schedule_insn): Use it to fill insn modes with issue information. - - * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit. - Tag trapb and next insn with TImode. - (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New. - (alpha_reorg): Add conditional for alpha_handle_trap_shadows. - Invoke alphaev5_align_insns as appropriate. - * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER. - (MD_SCHED_VARIABLE_ISSUE): New. - * alpha.md (attr type): Add multi. - (define_asm_attributes): New. - (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi. - (arg_home): Likewise. - (fnop, unop, realign): New. - -Wed Aug 26 15:55:41 1998 Jim Wilson <wilson@cygnus.com> - - * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef. - * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. - - * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. - (rs6000-ibm-aix4.[12]*): Likewise. - * configure: Regnerate. - -Wed Aug 26 09:30:59 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it - already contains the return address. - -Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Use bitfield instructions to extract/deposit - word sized hunks when loading unaligned args into registers. - - * haifa-sched.c (sched_analyze_insn): Only create scheduling - barriers for LOOP, EH and SETJMP notes on the loop_notes list. - - * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too. - -Wed Aug 26 16:35:37 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (check_dbra_loop): Add some code that would allow reversal - of some loops without a known constant loop end if it were enabled. - -Wed Aug 26 11:08:44 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * mips.md (lshrsi3_internal2+2): Fix type-o. - -Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h: Include stdarg.h/varargs.h, make sure they are ordered - correctly with regards to stdio.h. - - * calls.c: Remove stdarg.h/varargs.h. - * cccp.c: Likewise. - * cexp.y: Likewise. - * combine.c: Likewise. - * cpperror.c: Likewise. - * cpplib.c: Likewise. - * cpplib.h: Likewise. - * doprint.c: Likewise. - * emit-rtl.c: Likewise. - * final.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * genattr.c: Likewise. - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * mips-tfile.c: Likewise. - * prefix.c: Likewise. - * protoize.c: Likewise. - * regmove.c: Likewise. - * toplev.c: Likewise. - * tree.c: Likewise. - -Wed Aug 26 05:09:27 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * config/sparc/sparc.c (sparc_override_options): If not - TARGET_FPU, turn off TARGET_VIS. - * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis. - (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS. - * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero. - (movdi_insn_sp64): Add VIS fzero alternative. - (clear_sf, clear_df): New VIS patterns. - (movsf, movdf expanders): Allow fp_zero_operand flat out when - TARGET_VIS. - (one_cmpldi2_sp64): Provide new fnot1 VIS alternative. - -Tue Aug 25 10:57:41 1998 Mark Mitchell <mark@markmitchell.com> - - * loop.c (n_times_set, n_times_used, may_not_optimize, - reg_single_usage): Convert to varrays. All uses changed. - (insert_loop_mem): Return a value. - (scan_loop): Tweak AVOID_CC_MODE_COPIES code. - (load_mems_and_recount_loop_regs_set): Likewise. Grow the arrays, if - necessary. - -Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com) - - * From Alexandre: - * configure.in: Do not set thread_file to "irix" since no such - support exists yet. - - * sparc.md (float abs/neg splits): Check reload_completed before - calling alter_subreg. - -Tue Aug 25 19:17:59 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New - function. - * config/sparc/sparc.h: Declare it. - * config/sparc/sparc.md (float abs/neg splits): Use it. - (all other splits): Handle SUBREGs properly where necessary. - (unnamed (1<<x)-1 V8PLUS pattern): Disable for now. - -Tue Aug 25 19:48:46 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (fill_simple_delay_slots): Do not abort if we encounter - an insn on the unfilled_slots_list that has no delay slots. - (fill_eager_delay_slots): Similarly. - -Tue Aug 25 13:35:20 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX - as an ordinary operand. - -Tue Aug 25 12:54:57 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (valid_machine_attribute): Don't apply attributes to both - decl and type. - -Tue Aug 25 12:23:20 PDT 1998 Richard Henderson <rth@cygnus.com> - - * reload.c (operands_match_p): Handle rtvecs. - - * i386.c (legitimate_pic_address_disp_p): New. - (legitimate_address_p): Use it. - (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF. - Handle constant pool symbols just like statics. - (emit_pic_move): Use Pmode not SImode for clarity. - (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks. - [UNSPEC]: New, handling what we killed above. - [PLUS]: Detect and abort on invalid symbol arithmetic. - * i386.h (CONSTANT_ADDRESS_P): Remove HIGH. - -Tue Aug 25 12:02:23 1998 Mark Mitchell <mark@markmitchell.com> - - * alias.c: Include output.h. - (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as - different if we're in a varargs function. - * Makefile.in (alias.o): Depend on output.h - -Tue Aug 25 19:20:12 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (GIV_SORT_CRITERION): Delete. - -Tue Aug 25 13:19:46 1998 Dave Brolley <brolley@cygnus.com> - - * regclass.c (regclass): Use xmalloc/free instead of alloca. - * stupid.c (stupid_life_analysis): Ditto. - * reload1.c (reload): Ditto. - -Tue Aug 25 05:48:18 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> - - * config/sparc/sparc.c (arith_4096_operand, arith_add_operand, - arith_double_4096_operand, arith_double_add_operand): New - predicates. - * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them. - * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use - them to transform add/sub 4096 into add/sub -4096. - -Mon Aug 24 23:31:03 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * loop.c (scan_loop): Allocate some slop to handle pseudos - generated by move_movables. - (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES - here too. - -Mon Aug 24 19:45:40 1998 Jim Wilson <wilson@cygnus.com> - - * tree.def (DECL_RESULT): Correct documentation. - -Tue Aug 25 01:15:27 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed - all callers. Abort for RELOAD_FOR_INSN. RELOAD_FOR_OUTADDR_ADDR: - conflicts will all RELOAD_FOR_OUTPUT reloads. - - * reload1.c (reload_cse_regs_1): When deleting a no-op move that - loads the function result, substitute with a USE. - -Mon Aug 24 15:20:19 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64 - when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode. - (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup. - * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4. - (print_operand, cases 'O' and 'T'): Fix typos in lossage strings. - * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT - operand. - (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change - 'o' to 'm' for GPR variant constraints. - -Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. - - * h8300.h (STRIP_NAME_ENCODING): Fix typo. - - * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect - when the source and destination overlap. - - * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid - clash with global type. - -Mon Aug 24 00:53:53 1998 Jason Merrill <jason@yorick.cygnus.com> - - * fixinc.irix: Add curses.h handling from fixinc.wrap. - - * c-common.c (combine_strings): Also set TREE_READONLY. - Change warn_write_strings to flag_const_strings. - * c-decl.c, c-tree.h: Likewise. - -Sun Aug 23 18:39:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a - CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM - sequence, use SET/IOR instead so CSE can see it. - * config/sparc/sparc.md (movhi_const64_special, - movsi_const64_special): New patterns necessitated by that change. - (movhi_high): Remove. - (movhi_lo_sum): Change to match an IOR. - (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64. - (movdf_insn_v9only): New pattern for when V9 but not ARCH64. - (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64. - (movdf splits): Allow when not V9 or when not ARCH64 and integer - registers are involved. - (snesi_zero_extend split): Remove reload_completed test. - (unnamed plus and minus zero_extend sidi splits): Add it. - -Sun Aug 23 11:56:08 1998 Mark Mitchell <mark@markmitchell.com> - - * extend.texi: Remove description of extension to explicit - instantiation that is now endorsed by standard C++. - -Sun Aug 23 09:39:09 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/arc/arc.c (arc_initialize_pic): Remove. - * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does - nothing on any platform and is invoked by no-one, it does not even - appear in the documentation. - * config/sparc/sparc.h (INITIALIZE_PIC): Likewise. - * config/sparc/sparc.c (initialize_pic): Likewise. - (find_addr_reg): Remove this as well, no longer referenced after - my rewrite. - -Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com) - - * recog.c (validate_replace_rtx_group): New function. - * recog.h (validate_replace_rtx_group): Declare it. - * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo - the entire group of substitutions. - -Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de) - - * loop.c (load_mems): Fix initializers. - -Fri Aug 21 23:07:46 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (TFmode splits): Handle destination - registers being referenced in the address correctly. - - * expmed.c (make_tree) [CONST_INT]: Sign extend even if - TREE_UNSIGNED, when bitsize of type's mode is larger than - HOST_BITS_PER_WIDE_INT. - -Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes. - * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, - EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New - macros. - * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and - EXIT_BLOCK_EXPR. - -Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.c (h8300_encode_label): Use '&' for tiny data items. - * h8300.h (TINY_DATA_NAME_P): Likewise. - (STRIP_NAME_ENCODING): Handle '&'. - - * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the - register (it could be accessed via an outer SUBREG). - (REG_OK_FOR_BASE_P): Likewwise. - (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P. - - * remove.c (optimize_reg_copy_3): Abort instead of silently generating - bogus rtl. - - * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative. - -Thu Aug 20 17:35:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (movtf_insn_sp32): All memory operands - must be offsettable so the splits can be made. - -Thu Aug 20 13:56:53 1998 Michael Meissner <meissner@cygnus.com> - - * config/i386/winnt.c: Include system.h, not stdio.h to get - sys/param.h pulled in before rtl.h in case the system defines MIN - and MAX. - -Thu Aug 20 13:44:20 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. - -Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com> - - * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for - arrays of bits. - * cpplib.c (cpp_define): Handle macros with parameters. - -Wed Aug 19 21:33:19 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit. - (output_toc): Use single TOC slot or llong minimal-toc for DFmode - and DImode 64-bit. Use llong for minimal-toc SFmode and - SYMBOL_REF / LABEL_REF 64-bit. - (output_function_profiler): Use llong for profiler label and ld to - load 64-bit label address. - -Wed Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com) - - * config/arm/thumb.md (extendqisi2_insn): Cope with REG + - OFFSET addressing. - -Wed Aug 19 14:13:31 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Aug 19 13:10:30 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Aug 19 13:06:47 1998 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c (extract_init_priority): Use atoi instead of strtoul. - -Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson <hp@axis.se> - - * tm.texi (Misc): Fix typo "teh". - - * tm.texi (PIC): Fix typo "PPIC". - - * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no - effect when -O2 and higher. - * invoke.texi (Optimize Options): Likewise for -fcaller-saves. - -1998-08-19 Michael Hayes <michaelh@ongaonga.chch.cri.nz> - - * regclass.c: Changed register set documentation to be consistent - with GCC behaviour. - - * final.c (final_start_function) Removed redundant test for - call_fixed_regs. - -Wed Aug 19 13:28:41 1998 Mark Mitchell <mark@markmitchell.com> - - * rtl.h (rtx_function): New type. - (for_each_rtx): New function. - * rtlanal.c (for_each_rtx): Define it. - - * recog.c (change_t): New type. - (change_objects, change_old_codes, change_locs, change_olds): - Replace with ... - (changes): New variable. - (validate_change): Dynamically allocate room for more changes, if - necessary. Uses changes array instead of change_objects, etc. - (apply_change_group): Use changes array instead of - change_objects, etc. - - * loop.c (loop_mem_info): New type. - (loop_mems): New variable. - (loop_mems_idx): Likewise. - (looop_mems_allocated): Likewise. - (scan_loop): Remove nregs parameter. - (next_insn_in_loop): New function. - (load_mems_and_recount_loop_regs_set): Likewise. - (load_mems): Likewise. - (insert_loop_mem): Likewise. - (replace_loop_mem): Likewise. - (replace_label): Likewise. - (INSN_IN_RANGE_P): New macro. - (loop_optimize): Don't pass max_reg_num() to scan_loop. - (scan_loop): Remove nregs parameter, compute it after any new - registers are created by load_mems. Use INSN_IN_RANGE_P and - next_insn_in_loop rather than expanding them inline. Call - load_mems to load memory into pseudos, if appropriate. - (prescan_loop): Figure out whether or not there are jumps from the - loop to targets other than the label immediately following the - loop. Call insert_loop_mem to notice all the MEMs used in the - loop, if it could be safe to pull MEMs into REGs for the duration - of the loop. - (strength_reduce): Use next_insn_in_loop. Tweak comments. - -Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_override_options): Remove lie about ignoring PIC flag. - -Wed Aug 19 07:08:15 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (finalize_pic): Check for the correct - nonlocal_goto_receiver UNSPEC number. - * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment - making note of this dependency existing in sparc.c - (negtf2_notv9 split): Give NEG SFmode. - (negsf2): Fix insn output string. - -Tue Aug 18 12:40:27 1998 Richard Henderson <rth@cygnus.com> - - * c-common.c (decl_attributes): Issue an error if the argument - to alias is not a string. - -Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last - pending memory flush list. - - * combine.c (can_combine_p): Allow combining insns with REG_RETVAL - notes. - (try_combine): Allow combining insns with REG_LIBCALL notes. - - * expr.c (emit_block_move): Do not call memcpy as a libcall - instead build up a CALL_EXPR and call it like any other - function. - (clear_storage): Similarly for memset. - - * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p - on notes. - - * Makefile.in (cplus-dem.o): Provide explicit rules for building - cplus-dem.o - - * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED - and REG_LIVE_LENGTH as successful substitutions are made. - -Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * config/sparc/sparc.c (ultra_find_type): Add empty semicolon - statement after end of loop label. - -Tue Aug 18 07:13:27 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (ultra_types_avail): New variable. - (ultra_build_types_avail): New function to record mask of insn - types in ready list at this cycle. - (ultrasparc_sched_reorder): Call it. - (ultra_find_type): Use it to quicken the search. Also simplif - dependency check, don't use rtx_equal_p because we know exactly - what we are looking for. - -Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling - for architecture v4. - -Mon Aug 17 21:26:38 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call - gen_compare_reg. - (movsf_const_intreg, movsf_const_high, movsf_const_lo, - movdf_const_intreg and helper splits): New patterns to move float - constants into integer registers. - (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and - splits. - -Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com) - - * From Graham - * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype - to itype. - * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem. - - * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that - a BASE_REGS register is needed as an intermediate when copying - a symbolic value into any register class other than BASE_REGS. - - * expr.c (move_by_pieces): No longer static. Remove prototype. - * rtl.h (move_by_pieces): Add extern prototype. - * mips.c (expand_block_move): Handle aligned straight line copy by - calling move_by_pieces. - - * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs - and VAR_DECLs. - -Mon Aug 17 10:28:52 1998 Mark Mitchell <mark@markmitchell.com> - - * stmt.c (expand_end_loop): Tidy. Allow unconditional - jumps out of the loop to be treated as part of the exit test. - -Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - Jeff Law <law@cygnus.com> - - * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty. - * cplus-dem.c: Delete. - - * Makefile.in (fold-const.o): depend on $(RTL_H). - - * fold-const.c: Include rtl.h to get the prototype for - `set_identifier_local_value'. - - * loop.c (express_from_1): Remove unused variable `tmp'. - (combine_givs): cast the first argument of bzero to char *. - - * toplev.c (display_help): Remove unused variable `looking_for_start'. - - * c-decl.c (init_decl_processing): Remove unneeded &. - - * alpha.h (alpha_initialize_trampoline): Provide prototype. - - * except.c (set_exception_lang_code, set_exception_version_code): - Change parameter from `short' to `int' to avoid using a gcc - extension. - - * except.h (set_exception_lang_code, set_exception_version_code): - Likewise for prototypes. - - * flow.c (count_reg_references): Remove unused variables `regno' - and `i'. - - * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. - - * prefix.c (translate_name): Cast the result of `alloca'. - - * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. - -Mon Aug 17 09:23:42 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>. - Include "toplev.h". - (valid_dbcc_comparison_p): Mark mode argument as unused. - (symbolic_operand): Likewise. - (legitimize_pic_address): Likewise. - (const_uint32_operand): Likewise. - (const_sint32_operand): Likewise. - * sched.c [!INSN_SCHEDULING]: Define only dummy function - schedule_insns and comment out rest of file. - - * m68k.c (output_move_simode_const): Use subl to move a zero into an - address register. - (output_move_[hq]imode): Likewise. - -Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (main): Enable -fstrict-aliasing for -O2 and above. - * invoke.texi: Corresponding changes. - -Mon Aug 17 02:03:55 1998 Richard Henderson <rth@cygnus.com> - - * regclass.c (allocate_reg_info): Respect MIN when clearing data. - -Sun Aug 16 17:37:06 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (ultra_code_from_mask, - ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, - ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline, - ultrasparc_sched_init, ultrasparc_variable_issue, - ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New - functions to describe UltraSPARC pipeline exactly to Haifa. - (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost, - as there is nothing the scheduler can do about it. Indicate that - REG_DEP_OUTPUT's collide. Fixup formatting. - * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and - divide costs on Ultra for DImode. - (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE): - Define. - * config/sparc/sparc.md (ieu_unnamed function unit): Rename to - ieuN and add call_no_delay_slot to type list. - (cti function unit): New unit for branches on UltraSPARC. - (subx/addx insns): Set type to misc. - (sidi zero/sign extension insns on arch64): Set type to shift. - (sign_extendhidi2_insn): Set type to sload. - -Sun Aug 16 13:52:00 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (rs6000_stack_info): Use if == 0 for sizes. - (output_epilog): Use if != 0 for offset. - (rs6000_fatal_bad_address): Prepare for Intl. - * rs6000.h (rs6000_fatal_bad_address): Declare. - * rs6000.md (movsfcc, movdfcc): Use else if. - (elf_high): Use {liu|lis}. - (elf_low): Use {cal|la}. Remove %a template from old mnemonics. - (movsi): Use rs6000_fatal_bad_address. - -Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com> - - * reload.c (find_equiv_reg): Reject equivalences separated - by a volatile instruction. - -Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. - -Sat Aug 15 20:51:35 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (movsicc): Fix mode mismatch. - -Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated - return type. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - -Sat Aug 15 08:39:49 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove - write-only modifier from operand 1 constraint. - -Sat Aug 15 06:28:19 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If - emitting a XOR of -1 at the end, emit a NOT instead for combine's - sake. - (sparc_emit_set_const64): Likewise, also when computing trailing - bits do not negate low_bits and make fast_int an int. - -Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (add_label_notes): Do not ignore references to labels - before dispatch tables. Mirrors Apr 8 change to mark_jump_label. - * gcse.c (add_label_notes): Similarly. - - * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. - - * m68k.md (adddi_dilshr32): One of the operands must be a register. - (adddi_dishl32): Similarly. - -Fri Aug 14 14:12:59 1998 Jason Merrill <jason@yorick.cygnus.com> - - * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings. - * alias.c (memrefs_conflict_p): Add braces to shut up warnings. - * cse.c (cse_basic_block): Add parens to shut up warnings. - -Fri Aug 14 12:58:21 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (sparc_emit_set_const64_quick2, - sparc_emit_set_const64_longway, const64_is_2insns, - create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs - in 64-bit constant formation. - * config/sparc/sparc.md (snesi_zero_extend split): Generate - rtl for addx not subx. - (define_insn movdi_const64_special): Make available even when - HOST_BITS_PER_WIDE_INT is not 64. - (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove. - (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand. - (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both - instances of operand 1 inside a QI subreg. - (xordi3_sp64_dbl): Remove '%' constraint for op1. - (one_cmpldi2_sp64): Fix output string. - (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra - alternative case. - (unnamed arch64 ashift DI): Truncate shift count if greater than - 63, not 31. - -Fri Aug 14 21:52:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (store_expr): Don't optimize away load-store pair - when either source or destination have a side effect. - -Fri Aug 14 16:50:10 1998 John Carr <jfc@mit.edu> - - * genrecog.c (add_to_sequence): Fatal error if the modes of the - operands of SET are incompatible. - - * alpha.md: Fix max and min patterns so modes of SET operands match. - -Fri Aug 14 12:22:55 1998 Ian Lance Taylor <ian@cygnus.com> - - * configure.in: Avoid [[ by using test and changequote. - * configure: Rebuild. - -Fri Aug 14 01:22:31 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * rtl.def (CONSTANT_P_RTX): Fix typo in string name. - - * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc, - seqsi_special_extend, snesi_special_extend, snesi_zero_extend and - split, snedi_zero_trunc and split, seqsi_zero_extend and split, - seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di, - movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and - split, addx_extend_sp64, subx_extend_sp64, subx_extend and split): - Fix mismatching modes in SET operands. - (conditional move patterns): Fix formatting. - (unnamed subx arch64 pattern): Remove duplicate insn. - -Fri Aug 14 00:34:34 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (const64_operand, const64_high_operand): - Get it right when HOST_BITS_PER_WIDE_INT is not 64. - (input_operand): Fixup test for what we accept for constant - integers. - (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give - set VOIDmode. - (safe_constDI): Remove. - (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64, - gen_safe_XOR64): New functions. - (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2, - sparc_emit_set_const64_longway, sparc_emit_set_const64): Use - them. - * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make - available when HOST_BITS_PER_WIDE_INT is not 64. - (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and - move before movdi_insn_sp64 pattern. - (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove. - (define_insn sethi_di_medlow, seth44, setm44, sethh): Use - symbolic_operand as predicate for second operand. - (DImode minus split on arch32, negsi2 expander, one_cmplsi2 - expander): Give set VOIDmode. - -Fri Aug 14 01:45:06 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define. - -Fri Aug 14 01:40:21 1998 Geoffrey Keating <geoffk@ozemail.com.au> - - * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. - -Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating - point. - (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. - -Fri Aug 14 01:19:08 1998 Robert Lipe <robertl@dgii.com> - - * install.texi: Various SCO OpenServer tweaks. - -Thu Aug 13 20:14:40 1998 Jim Wilson <wilson@cygnus.com> - - * reload1.c (eliminate_regs_in_insn): Handle another case when - eliminating the frame pointer to the hard frame pointer. Add - missing ep->to_rtx check to one existing case. - - * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI. - -Thu Aug 13 17:08:11 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.h: De-conditionalize init_priority code. - - * mips.h (NM_FLAGS): Change from -Bp to -Bn. - * collect2.c (NM_FLAGS): Change from -p to -n. - - * configure.in: Turn on collect2 for mipstx39-elf. - Handle use_collect2=no properly. - - * c-common.c: De-conditionalize init_priority code. - * collect2.c (extract_init_priority, sort_ids): New fns. - (main): Call sort_ids. - Move sequence_number to file scope. - - * configure.in: Handle --enable-init-priority. - * c-common.c (attrs): Add A_INIT_PRIORITY. - (init_attributes, decl_attributes): Likewise. - * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros. - * tree.c (get_file_function_name_long): Split out... - (get_file_function_name): ...from here. - -Thu Aug 13 16:09:53 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * expr.c (safe_from_p): Change code to ERROR_MARK only when not - accessing nodes. - -Thu Aug 13 15:24:48 1998 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (display_help): Add braces to shut up warnings. - * tree.c (simple_cst_equal): Likewise. - - * fold-const.c (non_lvalue): Don't deal with null pointer - constants here. - (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. - - * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0 - of any size to a pointer. - -Thu Aug 13 12:53:13 1998 Jim Wilson <wilson@cygnus.com> - - * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED. - -Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers - which will be saved. - * mn10300.md (prologue insn): Only save registers which need saving. - (epilogue insn): Similarly. - - * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register" - optimizations. - -Wed Aug 12 12:39:16 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for - VAR_DECL's in gp addressable sections. - -Tue Aug 11 23:02:31 1998 John Carr <jfc@mit.edu> - - * sparc.c: Change return <exp> to <exp>; return; in functions - returning void. - * sparc.md: Add empty semicolon statement after final label in - move expanders. - -Tue Aug 11 22:42:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (define_insn addx_extend): Rename to - addx_extend_sp64, only allow when TARGET_ARCH64. - (define_insn addx_extend_sp32 and split): Version that works when - not TARGET_ARCH64. - (define_insn subx_extend): Likewise. - (define_split adddi3 and subdi3 with zero extension): Fixup and - correct bugs when not TARGET_ARCH64. - -Tue Aug 11 16:04:34 1998 John Carr <jfc@mit.edu> - - * except.c (set_exception_lang_code, set_exception_version_code): - Use prototype-style definition if __STDC__, to match declaration - in except.h. - - * genemit.c: Change FAIL and DONE macros not to use loops. - -Tue Aug 11 12:27:03 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use - ASM_OUTPUT_DWARF2_ADDR_CONST if defined. - - * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16. - -Tue Aug 11 18:12:53 1998 Dave Love <d.love@dl.ac.uk> - - * README.g77: Update from Craig. - -Tue Aug 11 04:46:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of - type HOST_WIDE_INT. - (safe_constDI sparc_emit_set_const64_quick1, - sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, - analyze_64bit_constant, const64_is_2insns, - create_simple_focus_bits): Fix some bugs when compiled on real - 64-bit hosts. - (function_arg_record_value_3, function_arg_record_value_2, - function_arg_record_value): Add fully prototyped forward decls. - * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back - to cmpsi_insn and use on both 64 and 32 bit targets. - (define_insn cmpsi_insn_sp64): Remove. - (define_expand zero_extendsidi2): Allow for 32-bit target too. - (define_insn zero_extendsidi2_insn): Rename to - zero_extendsidi2_insn_sp64. - (define_insn zero_extendsidi2_insn_sp32): New pattern and - assosciated forced split for it. - - * config/sparc/sparc.c (const64_operand, const64_high_operand): - New predicates. - * config/sparc/sparc.h: Declare them. - (PREDICATE_CODES): Add them. - * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl, - movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them. - -Mon Aug 10 22:57:24 1998 John Carr <jfc@mit.edu> - - * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt - in v9 case as the latter makes the Solaris assembler crash. - -Mon Aug 10 22:39:09 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM - for TFmode when !v9. We require offsettable memory addresses. - * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to - DFmode register number conversions. - * config/sparc/sparc.md (define_split DFmode moves): If register - is a SUBREG do alter_subreg on it before using. - (define_expand movtf): Fixup comment about alignment on v9. - (define_split TFmode moves): Don't use gen_{high,low}part, create - explicit SUBREGs instead. - -Mon Aug 10 19:02:55 1998 John Carr <jfc@mit.edu> - - * Makefile.in (mbchar.o): Depend on mbchar.c. - -Mon Aug 10 04:28:13 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - Richard Henderson <rth@cygnus.com> - - Rewrite Sparc backend for better code generation and - improved sparc64 support. - * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to - zero. - * config/sparc/sysv4.h: Likewise. - * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand, - move_operand, v8plus_regcmp_op, emit_move_sequence, - singlemove_string, doublemove_string, mem_aligned_8, - output_move_double, output_move_quad, output_fp_move_double, - move_quad_direction, output_fp_move_quad, output_scc_insn): - Remove. - (small_int_or_double): New predicate. - (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission. - (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of - old pic_{sethi,lo_sum}_si patterns. - (mem_min_alignment): New generic function to replace - mem_aligned_8, which uses REGNO_POINTER_ALIGN information when - available and can test for arbitrary alignments. All callers - changed. - (save_regs, restore_regs, build_big_number, - output_function_prologue, output_cbranch, output_return, - sparc_flat_save_restore, sparc_flat_output_function_prologue, - sparc_flat_output_function_epilogue): Prettify - insn output. - (output_function_epilogue): Likewise and add code to output - deferred case vectors. - (output_v9branch): Likewise, add new arg INSN and use it to tack - on branch prediction settings. All callers changed. - (print_operand): Likewise and output %l44 for LO_SUMs when - TARGET_CM_MEDMID. - (sparc_splitdi_legitimate): New function to make sure DImode - splits can be run properly when !arch64. - (sparc_initialize_trampoline, sparc64_initialize_trampoline): - Reformat example code in comments. - (set_extends): Remove UNSPEC/v8plus_clear_high case. - (sparc_addr_diff_list, sparc_addr_list): New statics to keep track - of deferred case vectors we need to output. - (sparc_defer_case_vector): Record a case vector. - (sparc_output_addr_vec, sparc_output_addr_diff_vec, - sparc_output_deferred_case_vectors): New functions to output them. - (sparc_emit_set_const32): New function to form 32-bit constants in - registers when that requires more than one instruction. - (safe_constDI, sparc_emit_set_const64_quick1, - sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, - analyze_64bit_constant, const64_is_2insns, - create_simple_focus_bits, sparc_emit_set_const64): New functions - which do the same for 64-bit constants when arch64. - (sparc_emit_set_symbolic_const64): New function to emit address - loading for all code models on v9. - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make - %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0. - (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1. - (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix - inaccuracies in comments, add symbolic and text_segment operands - when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively. Use - GENERAL_REGS in these cases as a temp REG is needed to load these - addresses into a register properly. - (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it - is no longer used. - (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp - quads are guarenteed to have 16-byte alignment. - (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use - copy_to_suggested_reg instead of explicit LO_SUM and HIGH. - (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for - deferred case vector implementation. - (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline. - (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls. - Generate "internal label - label" instead of "label - 1b". - (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID. - (PREDICATE_CODES): Remove sparc_operand, move_operand, - v8plus_regcmp_op. Add small_int_or_double, input_operand, and - zero_operand. - (doublemove_string, output_block_move, output_fp_move_double, - output_fp_move_quad, output_move_double, output_move_quad, - output_scc_insn, singlemove_string, mem_aligned_8, move_operand, - sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs. - (sparc_emit_set_const32, sparc_emit_set_const64, - sparc_emit_set_symbolic_const64, input_operand, zero_operand, - mem_min_alignment, small_int_or_double): Add externs. - * config/sparc/sparc.md: Document the many uses of UNSPEC and - UNSPEC_VOLATILE in this backend. - (define_function_unit ieu): Rename to ieu_unnamed. Add move and - unary to types which execute in it. - (define_function_unit ieu_shift): Rename to ieu0. - (define_function_unit ieu1): New, executes compare, call, and - uncond_branch type insns. - (define_function_units for type fdivs, fdivd, fsqrt): These - execute in the fpu multiply unit not the adder on UltraSparc. - (define_expand cmpdi): Disallow TARGET_V8PLUS. - (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32. - (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it - allows the arith_double_operand predicate and rHI constraint when - TARGET_ARCH64. - (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe, - cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn, - neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn, - sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu, - sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64, - movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64, - movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64, - movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64, - movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn, - cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn, - sign_extendqihi2_insn, sign_extendqisi2_insn, - sign_extendqidi2_insn, sign_extendhidi2_insn, - extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2, - trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2, - floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2, - fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, - adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64, - subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3, - muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus, - const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3, - smulsi3_highpart_v8plus, unnamed subreg mult, - const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32, - const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32, - const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus, - const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32, - const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3, - udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64, - andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3, - or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64, - xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op, - cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not, - cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not, - cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set, - cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg, - cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not, - cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3, - addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3, - muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2, - negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2, - ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1, - cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt, - ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt, - lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32, - call_symbolic_sp32, call_address_sp64, call_symbolic_sp64, - call_address_struct_value_sp32, call_symbolic_struct_value_sp32, - call_address_untyped_struct_value_sp32, - call_symbolic_untyped_struct_value_sp32, call_value_address_sp32, - call_value_symbolic_sp32, call_value_address_sp64, - call_value_symbolic_sp64, branch_sp32, branch_sp64, - flush_register_windows, goto_handler_and_restore, - goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64, - flush, all ldd/std peepholes, return_qi, return_hi, return_si, - return_addsi, return_di, return_adddi, return_sf, all call+jump - peepholes, trap, unnamed trap insns): Prettify output strings. - (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32, - or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2): - Likewise and force + implement splits for integer cases. - (define_insn return_sf_no_fpu): Likewise and allow to match when - no-fpu because of our subreg SFmode splits. - (define_insn zero_extendqihi2, zero_extendqisi2_insn, - zero_extendqidi2_insn, zero_extendhidi2_insn, - zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use - input_operand for second operand. - (cmp_minus_cc, cmp_minus_cc_set): Likewise and use - reg_or_0_operand for operand 2 so new splits can use it. - (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus, - cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0 - too. - (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow - CONST_DOUBLEs for operand 2. - (define_insn move_label_di): Likewise and label distance - optimization because it no longer works with new deferred case - vector scheme. To be revisited. - (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise - and allow reg_or_0_operand and J constraint for second operand. - (define_insn jump): Set branch predict taken on V9. - (define_insn tablejump): Emit LABEL_REF + PLUS memory address for - new deferred case vector scheme. - (define_insn pic_tablejump_32, pic_tablejump_64): Remove. - (define_insn negdi2_sp32): Force + implement splits. - (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and - one_cmplsi2_not_liveg0 respectively, and create expander of original - names which emit special rtl for TARGET_LIVE_G0. - (define_insn cmpdi_v8plus, scc_si, scc_di): Remove. - (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do - gen_compare_reg, FAIL instead. - (define_insn sgtu, sleu): Likewise and check gen_s*() return - values when trying to reverse condition codes, if they FAIL then - do likewise. - (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend, - snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero, - neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero, - seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0, - x_minus_i_eq_0): Add new splits to perform these multi-insn cases, - set output string to # to indicate they are mandatory splits. - (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di, - pic_sethi_di, move_pic_label_si): Remove. - (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic, - movsi_high_pic, movsi_pic_label_reg): New patterns to take their - place. - (define_expand movsi_pic_label_ref, define_insn - movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New - expander and insns to handle PIC label references and deferred - case vectors. - (define_insn get_pc_via_rdpc): Comment out as it is no longer - used. - (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf): - Rewrite to not use emit_move_sequence, make use of new constant - formation code, and new splits for all multi-insn cases. - (define_insn movqi_insn): Remove sethi case, it can never happen. - Use reg_or_zero_operand instead of const0_rtx explicit test, - use input_operand instead of move_operand for source, and use - general_operand now for dest. - (define_insn movhi_insn): Similar but leave sethi case. - (define_insn lo_sum_qi, store_qi, store_hi): Remove. - (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and - movhi_lo_sum respectively, prettify output string. - (define_insn movsi_zero_liveg0): New pattern to put zero into a - register when needed on TARGET_LIVE_G0. - (define_insn movsi_insn): Use general_operand and input_operand - for dest and src respectively. Simplify applicability test. - Prettify output strings, and add clr alternative for J - constraint. - (define_insn movdi_sp32_v9, movdi_sp32, define_splits for - deprecated std and reg-reg DI moves): Remove and... - (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new - implementation which uses forced splits for all non-single insn - cases. - (define_split DI move cases on !arch64): New splits to handle all - situations of 64-bit double register DImode on 32bit, and - unaligned registers and memory addresses for all subtargets. - (define_insn movsf_const_insn, movdf_const_insn, store_sf): - Remove. - (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and - input_operand for dest and src respectively, prettify output - strings. - (define_insn movdf_insn, movdf_no_e_insn, store_df, - movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove - and... - (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32, - movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn, - movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64, - movtf_no_e_insn_sp64) Replace with new - implementation which uses forced splits for all non-single insn - cases. - (define_split DF move cases): New splits in similar vein to DI - move counterparts. - (define_insn sethi_di_medlow, sethi_di_medium_pic, - sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64, - movdi_sp64_insn): Remove old v9 code model and constant loading - support insns and.. - (define_insn pic_lo_sum_di, pic_sethi_di, - sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow, - seth44, setm44, setl44, sethh, setlm, sethm, setlo, - embmedany_sethi, embmedany_losum, embmedany_brsum, - embmedany_textuhi, embmedany_texthi, embmedany_textulo, - embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl, - movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new - scheme, using unspecs, secondary reloads, and one to one sparc - insn to rtl insn mapping for better scheduling and code gen. - (define_expand reload_indi, reload_outdi): Reload helpers for - MEDANY and EMBMEDANY symbol address loading cases which require a - temporary register. - (define_expand movsicc): Remove v8plus_regcmp cases. - (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, - cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc, - cmp_diqi_trunc_set): New patterns used by some of the new scc - splits on arch64. - (define_insn xordi3_sp64_dbl): New pattern used for constant - formation when crossing from 32-bit targets. - (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper - split): Remove. - (define_insn addx, subx): Make visible and prettify. - (define_insn adddi3_insn_sp32): Likewise and force split. - (define_insn addx_extend, subx_extend, unnamed): New patterns for - 64bit scc split usage. - (define_insn unnamed plusDI zero_extend, unnamed minusDI - zero_extend, subdi3): Force and implement splits. - - * final.c (final_scan_insn): Don't output labels if target - specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations - instead. - - * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end, - don't forget to walk inside SEQUENCESs too as these are what the - delay slot scheduler will create. - -Mon Aug 10 01:21:01 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (extxl+1,+2): New patterns to work around - combine lossage. - -Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) - - * rs6000.c (rs6000_allocate_stack_space) Fix typo which - caused bad assembly code to be generated. - -Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com) - - * netbsd.h: Fix typo. - -Mon Aug 3 00:06:42 1998 Robert Lipe <robertl@dgii.com> - - * config.sub: Fix typo. - -Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson <hp@axis.se> - - * invoke.texi (Environment Variables): Typo: Change "ascpects" - into "aspects". - (Running Protoize): Typo: Change "ther" into "other". - -Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) - - * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. - * m68k/netbsd.h: Likewise. - * ns32k/netbsd.h: Likewise. - * sparc/netbsd.h: Likewise. - -Sat Aug 1 17:59:30 1998 Richard Henderson <rth@cygnus.com> - - * ginclude/va-alpha.h (va_list): Use a typedef, not a define. - * ginclude/va-clipper.h (va_list): Likewise. - -Fri Jul 31 20:22:02 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): If big endian and -Os, use - load/store multiple instructions unless user overrides. - -Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) - - * ns32k/netbsd.h: Fix typo. - -Fri Jul 31 10:23:55 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number - labels with .debugsym if no parallel insns. - -Thu Jul 30 19:15:53 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. - (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. - -Thu Jul 30 19:50:15 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. - (AR_FOR_TARGET): Define. - -Thu Jul 30 12:29:12 1998 Mark Mitchell <mark@markmitchell.com> - - * dyn-string.h: New file. - * dyn-string.c: Likewise. - * Makefile.in (OBJS): Add dyn-string.o. - (dwarf2out.o): Add dyn-string.h dependency. - (dyn-string.o): List dependencies. - * dwarf2out.c: Include dyn-string.h. - (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy. - (addr_const_to_string): Take a dyn_string_t, not a char* as a - prototype. Use dyn_string_append rather than strcat, throughout. - (addr_to_string): Use dyn_string_t. - -Thu Jul 30 13:08:07 1998 Ken Raeburn <raeburn@cygnus.com> - - Function entry/exit profiling instrumentation: - * expr.h (profile_function_entry_libfunc, - profile_function_exit_libfunc): Declare new variables. - * optabs.c: Define them here. - (init_optabs): Initialize them. - * tree.h (struct tree_decl): New flag - no_instrument_function_entry_exit. - (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro. - * c-decl.c (duplicate_decls): Merge it. - * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION. - (init_attributes): Use it for "no_instrument_function". - (decl_attributes): Handle it, for functions that have not yet been - compiled. Set decl flag. - * flags.h (flag_instrument_function_entry_exit): Declare new - variable. - * toplev.c (flag_instrument_function_entry_exit): Define it here. - (f_options): New option "instrument-functions". - * function.h (struct function): New field instrument_entry_exit. - * function.c (current_function_instrument_entry_exit): New - variable. - (push_function_context_to, pop_function_context_from): Save and - restore. - (expand_function_start): Set current_ variable, maybe emit return - label and entry profile call. - (expand_function_end): Maybe emit exit profile call. - -Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) - - * i386.md (movqi): When optimizing a load of (const_int 1) into a - NON_QI_REG_P, pretend the register is SImode. - -Wed Jul 29 23:49:23 1998 Todd Vierling <tv@netbsd.org> - - * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist). - Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any - manufacturer id for ns32k. - * configure: Regenerated. - * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too. - * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc. - * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0. - * config/m68k/netbsd.h: Same. - * config/ns32k/netbsd.h: Same. - * config/sparc/netbsd.h: Same. - -Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) - - * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO - or UNROLL_COMPLETELY loop that starts with a jump to its - exit code. - -Wed Jul 29 22:18:14 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS. - * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT. - (print_operand, case 'B'): Don't fall through. - (print_operand, case 'S'): Correct mask begin/end computation. - Use HOST_BITS_PER_WIDE_INT. - * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG. - (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT. - * rs6000/aix41.h (CPP_PREDEFINES): Same. - * rs6000/aix43.h (CPP_PREDEFINES): Same. - -Wed Jul 29 11:47:10 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber - constraint from second alternative. - -Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com> - - * configure.in: Fix --without/--disable cases for local-prefix, - gxx-include-dir and checking. - -Tue Jul 28 22:01:23 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * configure.in (enable_haifa): Set by default for sparc64 too. - configure: Rebuilt. - -Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com> - - * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro. - * i386/winnt.c (associated_type): New fn. - (i386_pe_valid_type_attribute_p): New fn. - (i386_pe_check_vtable_importexport): Remove. - (i386_pe_dllexport_p): Use associated_type. - (i386_pe_dllimport_p): Likewise. - - From Antonio M. O. Neto <anmendes@cruzeironet.com.br>: - * i386.c (i386_valid_type_attribute_p): Also accept - attributes for METHOD_TYPEs. - -Tue Jul 28 23:17:39 1998 Peter Gerwinski <peter@gerwinski.de> - - * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. - -Tue Jul 28 22:31:12 1998 Craig Burley <burley@gnu.org> - - * gcc.c: Fix commentary describing %g, %u, %U, and %O. - - * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent - them from generating a new base name for each occurence of - a specific suffix. - -1998-07-28 Vladimir N. Makarov <vmakarov@cygnus.com> - - * cse.c (cse_insn): Enable subsitution inside libcall only for REG, - SUBREG, MEM. - * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. - - - - * cplus-dem.c (type_kind_t): New type. - (demangle_template_value_parm): Add type_kind_t parameter. Rely - on this paramter, rather than demangling the type again. - (demangle_integral_value): Pass tk_integral. - (demangle_template_: Pass the value returned from do_type. - (do_type): Return a type_kind_t. Pass tk_integral to - demangle_template_value_parm for array bounds. - (demangle_fund_type): Likewise. - -Mon Jul 27 00:54:41 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are - identical. - -Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Accept CONSTANT_P_RTX. - -Mon Jul 27 17:18:52 1998 Dave Brolley <brolley@cygnus.com> - - * stor-layout.c (layout_type): Handle arrays of bits, for Chill. - - * expr.c (get_inner_reference): Handle zero-based, unsigned, array - index conversion. - -Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (DEBUGGER_AUTO_OFFSET): Define. - (DEBUGGER_ARG_OFFSET): Likewise. - - * mn10300.md (movsf): Remove last change. Not needed. - -Mon Jul 27 14:22:36 1998 Dave Brolley <brolley@cygnus.com> - - * c-lex.c (yylex): Fix boundary conditions in character literal and - string literal loops. - -Mon Jul 27 11:43:54 1998 Stan Cox <scox@cygnus.com> - - * longlong.h (count_leading_zeros): Sparclite scan instruction was - being invoked incorrectly. - - * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation. - * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): - Add -pg support. - * i386/win32.h: New file. Hybrid mingw32.h/cygwin32.h configuration. - * configure.in: Added i[34567]86-*-win32 - * config.sub: Ditto. - * configure: Rebuilt. - -Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) - - * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating - the frame pointer and compiling PIC code and reload has not completed. - - * i386.c (output_to_reg): Add code to emulate non-popping DImode - case. - -Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com) - - * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. - -Sat Jul 25 23:29:23 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> - - * Makefile.in (install-info): Only try to update the info - directory file if it exists in the first place. - -Fri Jul 24 18:58:37 1998 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> - - * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. - -Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle - CONST_DOUBLE source. - -Fri Jul 24 11:17:04 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm - strings as the insertion of USER_LABEL_PREFIX. - * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a - valid code. - * config/arm/thumb.md: Use %_ as a prefix to gcc library function - calls. - -Thu Jul 23 18:53:20 1998 Jim Wilson <wilson@cygnus.com> - - * dbxout.c (dbxout_range_type): Only call dbxout_type_index for - already defined type. - -Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (check_max_integer_computation_mode): Allow conversions - of constant integers to MAX_INTEGER_COMPUTATION_MODE. - (expand_expr): Likewise. - -Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * expr.c (expand_expr): Expand RETURN_EXPR. - -Thu Jul 23 11:00:29 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. - -Wed Jul 22 19:10:00 1998 Catherine Moore <clm@cygnus.com> - - * dwarf2out.c (output_aranges): Call stripattributes - for TEXT_SECTION references. - (output_line_info): Likewise. - -Wed Jul 22 14:08:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * profile.c (branch_prob): Call allocate_reg_info after outputting - profile rtl in instrument_arcs. - -Wed Jul 22 12:47:49 1998 Jim Wilson <wilson@cygnus.com> - - * fixinc.irix (math.h): Install wrapper instead of copying. - -Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression - so WFL are expanded correctly when contained in a COMPOUND_EXPR. - * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use - lang_flag_0. Added documentation in the flag table. - -Tue Jul 21 23:28:35 1998 Klaus Kaempf <kkaempf@rmi.de> - - * cccp.c (do_include): Fix vax c style include handling. - -Tue Jul 21 13:28:19 1998 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays. - -Sun Jul 12 01:27:05 1998 Jason Merrill <jason@yorick.cygnus.com> - - * fold-const.c (non_lvalue): Don't deal with null pointer - constants here. - (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. - -Tue Jul 21 15:49:31 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX. - * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX. - * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX. - (u_short_cint_operand): Same. - (reg_or_cint_operand): Same. - (logical_operand): Same. - (input_operand): Same. - (reg_or_short_operand): Use u_short_cint_operand. - -Tue Jul 21 08:56:42 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands, - but keep the insns and splits. Adjust so when the ultimate destination - is memory, use cvtql. - -Tue Jul 21 08:55:09 1998 Richard Henderson <rth@cygnus.com> - - * flow.c (regno_uninitialized): Fixed regs are never uninitialized. - -Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) - - * gcc.c (do_spec): Call "error" not "warning". - - * configure.in: Fix minor problems with gas feature detection code. - * configure: Rebuilt. - - * gcc.c (do_spec): Issue a warning for '%[]' usage. - - * Undo this change. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. - -Mon Jul 20 22:34:17 1998 Richard Henderson <rth@cygnus.com> - - * alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget. - (CPP_SUBTARGET_SPEC): Default to empty string. - (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New. - (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New. - * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker). - * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New. - (LIB_SPEC): Tidy. - * alpha/linux.h (CPP_PREDEFINES): Tidy. - * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New. - * alpha/netbsd.h (CPP_PREDEFINES): Tidy. - * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC. - * alpha/win-nt.h (CPP_PREDEFINES): Likewise. - * alpha/vsf.h (CPP_PREDEFINES): Likewise. - (CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC. - * alpha/vxworks.h: Likewise. - -Mon Jul 20 22:51:57 1998 Ken Raeburn <raeburn@cygnus.com> - - * mips.md (reload_outsi): Added missing REGNO call. - (smulsi3_highpart, umulsi3_highpart): Provide prototype for - function pointer. - (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use - another match_operator and compare the codes. - - * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. - - * MIPS multiply pattern fixes: - * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Add union classes for HI, LO, or HILO plus general registers. - (GENERATE_MADD): Deleted. - * mips.md (mulsi3_mult3): Don't disparage output-LO alternative. - Add TARGET_MAD to condition. - (mulsi3): Test HAVE_mulsi3_mult3, not specific flags. - (mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use - "*d" for accumulator, to give preference to LO initially but not - during reload. - -Mon Jul 20 16:16:38 1998 Dave Brolley <brolley@cygnus.com> - - * configure.in (enable_c_mbchar): New configure option. - (extra_cpp_objs): Always available now. - - * cexp.y (mbchar.h): #include it. - (yylex): Handle Multibyte characters in character literals. - - * cccp.c (mbchar.h): #include it. - (main): Set character set based on LANG environment variable. - (rescan): Handle multibyte characters in comments. - (skip_if_group): See above. - (validate_else): See above. - (skip_to_end_of_comment): See above. - (macarg1): See above. - (discard_comments): See above. - (rescan): Handle multibyte characters in string and character literals. - (collect_expansion): See above. - (skip_quoted_string): See above. - (macroexpand): See above. - (macarg1): See above. - (discard_comments): See above. - (change_newlines): See above. - - * c-lex.c (mbchar.h): #include it. - (GET_ENVIRONMENT): New macro. - (init_lex): Set character set based on LANG environment variable. - (yylex): Handle multibyte characters in character literals. - (yylex): Handle multibyte characters in string literals. - - * Makefile.in (mbchar.o): New target. - (cccp$(exeext)): @extra_cpp_objs@ is always available. - (cppmain$(exeext)): @extra_cpp_objs@ is always available. - - * mbchar.[ch]: New files for multibyte character handling. - -Mon Jul 20 01:11:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * jump.c (jump_optimize): When simplifying noop moves and - PUSH_ROUNDING, fix thinko so we use same criterion for identifying - the PUSHes to rewrite in second loop as we did in the first. - -Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cplus-dem.c (demangle_nested_args): Make function definition - static to match the prototype. - -Fri Jul 17 14:58:44 1998 Richard Henderson <rth@cygnus.com> - - * alloca.c: Respect USE_C_ALLOCA. - * gencheck.c (xmalloc): Ignore __GNUC__ for definition. - * gengenrtl.c (xmalloc): Likewise. - -Fri Jul 17 14:18:14 1998 Richard Henderson <rth@cygnus.com> - - * loop.h (struct induction): Add no_const_addval. - * loop.c (the_movables, reg_address_cost): New variables. - (init_loop): Init reg_address_cost. - (loop_optimize): Call end_alias_analysis. - (scan_loop): Init the_movables. - (record_giv): Init induction->no_const_addval. - (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==. - [REG]: Rearrange loop search test to catch more cases. - (general_induction_var): Return success not benefit; take an extra - argument for that. Change all callers. - (simplify_giv_expr) [PLUS]: Always combine invariants. Use sge_plus. - [MULT]: Use rtx_equal_p instead of ==. Combine simple invariants. - [default]: Search the_movables for additional combinations. - (sge_plus_constant, sge_plus): New functions. - (express_from_1): New function. - (express_from): Always define. Rewrite using express_from_1. - (combine_givs_p): Handle more cases. Ignore address cost. - (cmp_combine_givs_stats): New function. - (combine_givs_used_once, combine_givs_benefit_from): New functions. - (combine_givs): Rewrite to do best-fit combination. - - * fold-const.c (operand_equal_p): Handle RTL_EXPR. - (fold): Do a complete (A*C)+(B*C) association check. - -Fri Jul 17 11:21:55 1998 Jim Wilson <wilson@cygnus.com> - - * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. - -Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (MODES_TIEABLE_P): Fix typo. - -Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) - - * tree.c (valid_machine_attribute): Only create a new type variant if - there is a decl to use it. - -Thu Jul 16 14:48:04 1998 Nick Clifton <nickc@cygnus.com> - - * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have - a suffix. - -Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson <hp@axis.se> - - * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may - be deleted" - -Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed. - Simplify tests for clearing an address register. - (expand_prologue): Corresponding changes. - - * mn10300.md (movXX patterns): Make sure the destination is an - ADDRESS_REG when substituting "zero_areg" for (const_int 0). - (logical patterns): Split into expanders + patterns - (zero and sign extension patterns): Similarly. - (shift patterns): Similarly. - -Thu Jul 16 01:17:44 1998 Richard Henderson <rth@cygnus.com> - - * loop.c (emit_iv_add_mult): Scan the entire insn list generated - for the sequence, recording base values. - -Wed Jul 15 10:49:55 1998 Richard Henderson <rth@cygnus.com> - - * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix). - -Tue Jul 14 14:15:30 1998 Nick Clifton <nickc@cygnus.com> - - * gcc.c: Remove ANSI-C ism from --help code. - - * toplev.c: Support --help with USE_CPPLIB. - -Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Rework gas feature code to work with symlink based - source trees. - - * extend.texi: Clarify some issues related to local variables - assigned to explicit registers. - - * mn10300.md (mulsi): Turn into expander + pattern. - - * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a - alternative. - -Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h. - -Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump again to distinguish mainline tree from the - egcs-1.1 branch. - -See ChangeLog.0 for earlier changes. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/ChangeLog.0 b/gcc/ChangeLog.0 deleted file mode 100755 index f2982a5..0000000 --- a/gcc/ChangeLog.0 +++ /dev/null @@ -1,13017 +0,0 @@ -Tue Jul 14 02:20:38 1998 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump to avoid problems with old spec files during - bootstrap. - -Mon Jul 13 23:11:44 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.c (output_scc_insn): Enclose || conditions in - parens while walking over notes. - * config/sparc/sparc.md (reg movdi split): Clean up matching - conditions. - (all DI arithop splits on 32-bit): Handle immediate arguments - correctly when they are CONST_INTs. - -Mon Jul 13 23:57:21 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * m68k/m68k.h (TARGET_SWITCHES): Clear MASK_68040_ONLY for - -m68020-40, -m68020-60 and -m5200. - -Mon Jul 13 23:52:05 1998 Weiwen Liu <weiwen.liu@yale.edu> - - * gcc.c (do_spec_1): Fix %O handling for secure temporary file - creation. - -Mon Jul 13 23:42:36 1998 Ralf Corsepius <corsepiu@faw.uni-ulm.de> - - * sh/elf.h (MAX_OFILE_ALIGNMENT): Undefine before including svr4.h. - -Mon Jul 13 23:36:08 1998 Jim Wilson <wilson@cygnus.com> - - * i386/i386.h (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): New specs. - (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Use them. - (EXTRA_SPECS): Support them. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. - * i386/aix386ng.h, cygwin32.h, freebsd-elf.h, gas.h, isc.h, - linux-aout.h, linux-oldld.h, linux.h, osfelf.h, osfrose.h, sco.h, - sco4.h, sco4dbx.h, sco5.h, sol2.h, sysv3.h (CPP_SPEC): Delete - %[cpp_cpu]. - -Mon Jul 13 23:31:04 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (output_scc_di): Use cmpw #0 only for address registers. - -Mon Jul 13 23:26:43 1998 Jeffrey A Law (law@cygnus.com) - - * tree.h (tree_common): Note front-end dependencies on layout of - this structure. - -Mon Jul 13 23:18:39 1998 Craig Burley <burley@gnu.org> - - * stmt.c (expand_expr_stmt): If not assigning fresh - value to last_expr_value, zero it, so old garbage - doesn't get dereferenced. - -Mon Jul 13 23:06:55 1998 Henning.Petersen@t-online.de (Henning Petersen) - - * gcse.c (hash_scan_insn): Add missing argument declaration. - -Mon Jul 13 18:59:13 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in (mips-sgi-irix5cross64, mips-sgi-irix5*): Remove - HAVE_INTTYPES_H from xm_defines. Define xm_file to mips/xm-iris5.h. - * mips/xm-iris5.h (USG): Delete. - -Mon Jul 13 17:18:47 1998 Nick Clifton <nickc@cygnus.com> - - * cccp.c (main): Add support for parsing --help. - (display_help): New function: display command line switches. - - * cpplib.c (cpp_handle_option): Add support for parsing --help. - (display_help): New function: display command line switches. - - * gcc.c (main): Add support for parsing --help, and passing it on - to the sub-processes invoked by gcc. - (display_help): New function: display comman line switches. - - * tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document - 'description' field added to structure. - - * toplev.c: Add support for parsing --help. - Add documentation strings to command line option tables. - (display_help): New function: display comman line switches. - -Mon Jul 13 16:15:10 1998 John Carr <jfc@mit.edu> - - * sparc.c, sparc.h, sparc.md: New trampoline code. - Allow integer operand 1 to V8+ DImode shift instructions. - Fix bugs in V8+ wide multiply patterns. - In 32 bit mode, split DImode register moves and logical instructions. - Write V9 branch prediction flag. - Use V9 conditional move more often for scc. - -Mon Jul 13 15:10:09 1998 Philippe De Muyter <phdm@macqel.be> - - * invoke.texi(-fno-builtin): Explain that the names of built-in - functions begin with `__builtin_', not `__'. - -Mon Jul 13 19:01:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_before_p): Abort for RELOAD_FOR_OUTPUT. - -Mon Jul 13 10:50:17 1998 Mark Mitchell <mark@markmitchell.com> - - * cplus-dem.c (SCOPE_STRING): Remove DMGL_JAVA stuff. - (cplus_demangle_opname): Initialize work. - (demangle_template): Remove is_java_array. - (do_type): Remove DMGL_JAVA stuff. - (long_options): Remove "java". - (main): Remove 'j' option. - -Mon Jul 13 10:19:00 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (REG_CLASS_FROM_LETTER): Map 'y' to SP_REGS. - Handle 'x' as NO_REGS for this cpu. - (REGNO_OK_FOR_BIT_BASE_P): Define. - (REG_OK_FOR_BIT_BASE_P): Define. - (GO_IF_LEGITIMATE_ADDRESS): Use them. - (REG_OK_FOR_INDEX_P): Tweak. - * mn13000.c (REG_SAVE_BYTES): Define. - (expand_epilogue, initial_offset): Use it. - (secondary_reload_class): Slightly reformat. - (output_tst): Tweak comments. - * mn10300.md: Change 'x' to 'y' for SP_REGS. Then add 'x' to many - patterns. - (addsi3): Turn into a define_expand/define_insn pair. Rework code for - three operand addition case to be more efficient. - (subsi3): Turn into a define_expand/define_insn pair. - - * expr.c (expand_expr): Only set MEM_IN_STRUCT_P if the memory address - is not varying for REFERENCE_TYPE or when we think we might have found - an optimized access to the first element in an array. - -Mon Jul 13 02:24:08 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * regclass.c (reg_scan_mark_refs): New arg min_regno. Only update - regscan information for REGs with numbers greater than or equal to - this. All callers changed. - (reg_scan_update): New function to efficiently update regscan - information on the fly. - * rtl.h: Add prototype. - * jump.c (jump_optimize): Call it when we make a transformation - which generates new pseudo-REGs. - -Sun Jul 12 13:08:14 1998 Jeffrey A Law (law@cygnus.com) - - * collect2.c (main): Use "-x c" instead of "-lang-c" for force the - compiler into C mode. - -Sun Jul 12 01:27:05 1998 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c (demangle_nested_args): Return a value. - - * tree.h (TYPE_P): New macro. - -Sat Jul 11 16:19:48 1998 Mark Mitchell <mark@markmitchell.com> - - * cplus-dem.c (string): Move definition before work_stuff. - (work_stuff): Add volatile_type, forgetting_types, - previous_argument, and nrepeats fields. - (SCOPE_STRING): New macro. - (demangle_template): Add `remember' parameter. Add comment. - Register the `B' code type here, if remembering. Tidy. Fix crash - on NULL tmpl_argvec. Be consistent with use of tname/trawname. - (demangle_nested_args): New function. - (internal_cplus_demangle): Handle volatile-qualified member - functions. - (mop_up): Delete the previous_argument string if present. - (demangle_signature): Tidy. Handle volatile-qualified member - functions. Handle back-references using the `B' code. Use extra - parameter to demangle_template and SCOPE_STRING where appropriate. - (demangle_template_value_parm): Fix thinko; 'B' is not an integral - code. - (demangle_class): Use SCOPE_STRING. - (gnu_special): Pass additional argument to demangle_template. - Use SCOPE_STRING. - (demangle_qualified): Save qualified types for later - back-references. Handle constructors and destructors for template - types correctly. - (do_type): Tidy. Use SCOPE_STRING. Pass extra argument to - demangle_template. Use demangled_nested_args. Don't remember - qualified types here; that's now done in demangle_qualified. - Similarly for templates. - (do_arg): Improve commment. Handle 'n' repeat code. - (remember_type): Check forgetting_types. - (demangle_args): Deal with 'n' repeat codes. Tidy. - -Sat Jul 11 02:59:08 1998 Richard Earnshaw <rearnsha@arm.com> - - * arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile - and structure attribute flags to MEMs generated. - (splits for sign-extended HI & QI mode from memory): Also propagate - the volatile flag. - - * configure.in (thumb-*-coff*): Don't cause fixincludes to be run. - -Fri Jul 10 19:06:59 1998 Michael Meissner <meissner@cygnus.com> - - * varray.h: Include system.h if it hasn't already been included - before to get size_t declared. - -Fri Jul 10 12:53:58 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * jump.c (jump_optimize): If after_regscan and our transformations - generate new REGs, rerun reg_scan. - -Fri Jul 10 11:50:43 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * config/i960/i960.c (i960_address_cost): MEMA operands with - positive offsets < 4096 are free. - -Fri Jul 10 12:34:37 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.c (const_uint32_operand): Recognize - CONSTANT_P_RTX. - (const_sint32_operand): Likewise. - -Thu Jul 9 22:58:59 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (alias.o): Depend on $(EXPR_H). - -Thu Jul 9 18:24:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (choose_reload_regs): If using an equivalence from - find_equiv_reg and reg_reloaded_valid is not set for this register, - clear the associated spill_reg_store. - -Thu Jul 9 18:12:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (emit_reload_insns): If an output reload copies only - to a secondary reload register, indicate that the secondary reload - does the actual store. - -Thu Jul 9 18:01:05 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_equiv_reg): If need_stable_sp is set, - check if stack pointer is changed directly in a PARALLEL. - -Thu Jul 9 10:38:14 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (duplicate_loop_exit_test): Fix thinko. - -Thu Jul 9 01:30:37 1998 Joel Sherrill <joel@OARcorp.com> - Ralf Corsepius <corsepiu@faw.uni-ulm.de> - - * config/i386/rtemself.h: Updated to keep in sync with - config/i386/linux.h. - - * configure.in: Added sh-rtemself. - * configure: Rebuilt. - * config/sh/rtems.h: Removed -D__ELF__ since it is now COFF. - * config/sh/rtemself.h: New file. - - * config/rs6000/rtems.h: Defined STARTFILE_DEFAULT_SPEC. - -Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check if the assembler supports ".balign" and - ".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately. - * acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag. - * i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for - ".balign" then use it. - - * print-rtl.c (print_rtx): Revert previous patch. - - * jump.c (duplicate_loop_exit_test): Do not duplicate the loop exit - test if the exit code has an insn with ASM_OPERANDS. - - * i386/cygwin32.h (STDIO_PROTO): Fix typo. - * m32r.h (STDIO_PROTO): Fix typo. - - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Handle addresses created by - LEGITIMIZE_RELOAD_ADDRESS. - * tm.texi (LEGITIMIZE_RELOAD_ADDRESS): Note that this macro must be - able to handle addresses created by previous invocations of the macro. - - * flow.c (find_auto_inc): Remove most recent change. Real bug was - elsewhere. - - * cse.c (count_reg_usage): Count registers used in addresses of - CLOBBERs. - -Wed Jul 8 15:08:29 1998 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (STAGESTUFF): Readd line lost during June 9 FSF merge. - - * configure.in (mips64orion-*-rtems*): Use elf64.h not elfl64.h. - -1998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function - stubs. - - * toplev.c (lang_options): Add -Wlong-long, -Wno-long-long - options. - * c-decl.c (warn_long_long): Define. - (c_decode_option): Parse -Wlong-long, -Wno-long-long options. - (grokdeclarator): Add flag `warn_long_long' as guard for - warning "ANSI C does not support `long long'". - * invoke.texi: Add description of options -Wlong-long, - -Wno-long-long. - * gcc.1: The same as above. - -Wed Jul 8 02:43:34 1998 Jeffrey A Law (law@cygnus.com) - - * rtlanal.c (reg_overlap_mentioned_p): Handle STRICT_LOW_PART. If - either argument is CONSTANT_P, then return zero. - * reload.c (reg_overlap_mentioned_for_reload_p): Similarly. - - * configure.in: Also look at $srcdir/gas/configure to find a - gas version #. - -Wed Jul 8 00:28:22 1998 Carlo Wood <carlo@runaway.xs4all.nl> - - * dsp16xx.h : Clean up of macro OPTIMIZATION_OPTIONS - -Tue Jul 7 21:18:14 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (ASM_DECLARE_FUNCTION_NAME): Merge duplicate - definitions from last two patches. - -Tue Jul 7 23:03:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (choose_reload_regs): Don't set reload_override_in - if EQUIV is clobbered in INSN and the reload is done after INSN. - -Tue Jul 7 21:23:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN - to the first insn of the sequence. - -Tue Jul 7 21:05:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * cse.c (cse_insn): Don't make change without validation. - -Tue Jul 7 11:40:05 1998 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (various zero/sign extension patterns): zero and sign - extensions which use "sub" clobber cc0. - -Tue Jul 7 09:12:08 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Jul 7 10:07:20 1998 Jeffrey A Law (law@cygnus.com) - - * print-rtl.c (print_rtx): Use REAL_VALUE_TYPE instead of "double". - -Tue Jul 7 08:41:27 1998 Richard Henderson (rth@cygnus.com) - - * print-rtl.c (print_rtx): Only print fp values when REAL_VALUE_TYPE - is a double. - -Tue Jul 7 00:31:58 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Jul 7 01:03:03 1998 Mumit Khan <khan@xraylith.wisc.edu> - - Support for dllimport and dllexport attributes for i386-pe. - - * tree.h (DECL_NON_ADDR_CONST_P): New accessor macro. - (struct tree_decl): Add non_addr_const_p field. - * tree.c (staticp): Use. - - * i386/cygwin32.h (CPP_PREDEFINES): Map __declspec(x) to GCC - attributes. - (SUBTARGET_SWITCHES): Switches to turn on/off dllimport|export - attributes. Also accept -mwindows option. - (VALID_MACHINE_DECL_ATTRIBUTE): New macro. - (MERGE_MACHINE_DECL_ATTRIBUTE): New macro. - (REDO_SECTION_INFO_P): New macro. - (DRECTVE_SECTION_FUNCTION): New macro. - (drectve_section): Cover function to implement above. - (SWITCH_TO_SECTION_FUNCTION): New macro. - (switch_to_section): Covert function to implement above. - (EXTRA_SECTIONS): Add in_drectve. - (EXTRA_SECTION_FUNCTIONS): Add in_drectve and switch_to_section. - (ENCODE_SECTION_INFO): Delete old macro and redefine as a function. - (STRIP_NAME_ENCODING): Handle new attributes. - (ASM_OUTPUT_LABELREF): New macro. - (ASM_OUTPUT_FUNCTION_NAME): New macro. - (ASM_OUTPUT_COMMON): New macro. - (ASM_OUTPUT_DECLARE_OBJECT_NAME): New macro. - - * i386/mingw32.h (CPP_PREDEFINES): Map __declspec(x) to GCC - attributes. - - * i386/winnt.c (i386_pe_valid_decl_attribute_p): New function. - (i386_pe_merge_decl_attributes): New function. - (i386_pe_check_vtable_importexport): New function. - (i386_pe_dllexport_p): New function. - (i386_pe_dllimport_p): New function. - (i386_pe_dllexport_name_p): New function. - (i386_pe_dllimport_name_p): New function. - (i386_pe_mark_dllexport): New function. - (i386_pe_mark_dllimport): New function. - (i386_pe_encode_section_info): New function. - (i386_pe_unique_section): Strip encoding from name first. - -Tue Jul 7 00:50:17 1998 Manfred Hollstein (manfred@s-direktnet.de) - - * libgcc2.c (L_exit): Provide a fake for atexit on systems which - define ON_EXIT but not HAVE_ATEXIT. - -Tue Jul 7 00:44:35 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * m68k.md (zero_extend QI to HI): Correctly handle TARGET_5200. - -Tue Jul 7 00:36:41 1998 Ulrich Drepper <drepper@cygnus.com> - - * i386.c: Remove random whitespace at end of lines. - - * i386.c (ix86_epilogue): For pentium processors, try to deallocate - 4 or 8 byte stacks with pop instructions instead of an add instruction. - -Tue Jul 7 00:30:08 1998 Klaus Kaempf <kkaempf@rmi.de> - - * alpha.c: Include tree.h before expr.h. - -Mon Jul 6 22:50:48 1998 Jason Merrill <jason@yorick.cygnus.com> - - * c-parse.in (struct_head, union_head, enum_head): New nonterminals. - (structsp): Use them. Update files generated from c-parse.in. - * extend.texi (Type Attributes): Document it. - - * c-decl.c: Add warn_multichar. - (c_decode_option): Handle -Wno-multichar. - * c-lex.c (yylex): Check it. - * c-tree.h: Declare it. - * toplev.c (lang_options): Add it. - * invoke.texi: Document it. - -Mon Jul 6 22:47:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_equiv_reg): When looking for stack pointer + const, - make sure we don't use a stack adjust. - - * reload.c (find_equiv_reg): If need_stable_sp is set, - check if stack pointer is changed directly. - - * reload1.c (delete_dead_insn): Don't delete feeding insn - if that insn has side effects. - - * flow.c (find_auto_inc): Clear UNCHANGING bit of register that is - changed. - - * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OPADDR_ADDR - precedes RELOAD_FOR_OUTADDR_ADDRESS. - - * gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changed - caller. - -Mon Jul 6 22:21:56 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * m68k.c (output_scc_di): Use cmpw #0 instead of tstl when - testing address registers on the 68000. - -Mon Jul 6 22:17:19 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk> - - * i386.c (is_fp_test): Fix thinko. - - * jump.c (jump_optimize) Check for CONST_INT before using INTVAL. - -Mon Jul 6 22:14:31 1998 Richard Henderson (rth@cygnus.com) - - * print-rtl.c (print_rtx): Display the real-value equivalent of - a const_double when easy. - - * real.h (REAL_VALUE_TO_TARGET_SINGLE): Use a union to pun types. - Zero memory first for predictability. - (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. - * varasm.c (immed_real_const_1): Notice width of H_W_I == double. - - * regclass.c (allocate_reg_info): Initialize the entire reg_data - virtual array. - -Mon Jul 6 22:09:32 1998 Ian Lance Taylor <ian@cygnus.com> - Jeff Law <law@cygnus.com> - - - * i386/cygwin32.h: Add some declaration of external functions. - (ASM_DECLARE_FUNCTION_NAME): Define. - (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. - (ASM_FILE_END): Define. - * i386/winnt.c (i386_pe_declare_function_type): New function. - (struct extern_list, extern_head): Define. - (i386_pe_record_external_function): New function. - (i386_pe_asm_file_end): New function. - - * cpplib.c (cpp_options_init): Initialize cplusplus_comments to 1, - matching July 18, 1995 change to cccp.c. If -traditional then - disable cplusplus_comments. - -Mon Jul 6 21:28:14 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (expand_compound_operation): Fix thinko in code to optimize - (zero_extend:DI (subreg:SI (foo:DI) 0)) to foo:DI. - - * Disable the following change from gcc2. Not appropriate for egcs: - - Sun Jun 7 09:30:31 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - * reload.c (find_reloads): Give preference to pseudo that was the - reloaded output of previous insn. - -Mon Jul 6 21:07:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_FUNC_PRINTF_PTR): Don't define HOST_PTR_PRINTF. - Instead, define a new macro HAVE_PRINTF_PTR which only signifies - whether we have the %p format specifier or not. - - * acconfig.h: Delete stub for HOST_PTR_PRINTF, add HAVE_PRINTF_PTR. - - * machmode.h (HOST_PTR_PRINTF): When determining the definition, - check HAVE_PRINTF_PTR to see whether "%p" is okay. - - * mips-tfile.c: Include machmode.h to get HOST_PTR_PRINTF. - - * Makefile.in (mips-tfile.o): Depend on machmode.h. - -Mon Jul 6 10:42:05 1998 Mark Mitchell <mark@markmitchell.com> - - * jump.c (duplicate_loop_exit_test): Don't refuse to copy a - section of code just because it contains - NOTE_INSN_BLOCK_{BEG,END}. - * stmt.c (expand_end_loop): Likewise. Also, don't refuse to - move CALL_INSNs or CODE_LABELs. When moving code, don't move - NOTE_INSN_BLOCK_{BEG,END}. - -Mon Jul 6 09:38:15 1998 Mark Mitchell <mark@markmitchell.com> - - * cse.c (CSE_ADDRESS_COST): New macro, based on ADDRESS_COST, but - dealing with ADDRESSOF. - (find_best_addr): Use it. - -Mon Jul 6 09:27:08 1998 Richard Henderson <rth@cygnus.com> - - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Revert last change. - -Mon Jul 6 09:25:06 1998 Dave Love <d.love@dl.ac.uk> - - * libgcc2.c (__eprintf): Make args consistent with prototype in - assert.h. - -Mon Jul 6 00:28:43 1998 Mark Mitchell <mark@markmitchell.com> - - * cse.c (cse_insn): When SETting (MEM (ADDRESSOF (X))) to Y, - don't claim that the former is equivalent to the latter. - -Sun Jul 5 23:58:19 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Second arg is an RTX now. Update all callers. - (cse_basic_block): Keep track of the current RETVAL insn for a - libcall instead of just noting that we're in a libcall. - - * combine.c (simplify_comparison): Do not commute a AND into - a paradoxical SUBREG if not WORD_REGISTER_OPERATIONS. - - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Protect with - HAVE_GAS_MAX_SKIP_P2ALIGN. - * i386/linux.h: Likewise. - -Fri Jul 3 02:33:35 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * sparc.c (sparc_operand, move_operand, arith_operand, - arith11_operand, arith10_operand, arith_double_operand, - arith11_double_operand, arith10_double_operand, small_int, - uns_small_int): Recognize CONSTANT_P_RTX. - (output_sized_memop, output_move_with_extension, - output_load_address, output_size_for_block_move, - output_block_move, delay_operand): Remove, has not been - enabled or referenced for years. - * sparc.md (movstrsi, block_move_insn): Likewise. - * sparc.h (PREDICATE_CODES): Define. - * linux-aout.h (MACHINE_STATE_{SAVE,RESTORE}): Override with - version which uses getcc/setcc traps to save/restore condition - codes. - * linux64.h: Likewise. - * sunos4.h: Likewise. - * linux.h: Likewise. - * sol2.h: Likewise. - * sun4o3.h: Likewise. - -Fri Jul 3 02:28:05 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode - lossage on VMS. Reported by kkaempf@rmi.de. - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0. - -Thu Jul 2 17:41:14 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default - version. - -Thu Jul 2 14:34:48 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * expr.h (STACK_SIZE_MODE): New macro. - * explow.c (allocate_dynamic_stack_space): Use it for - mode of allocate_stack pattern increment operand. - * tm.texi (STACK_SAVEAREA_MODE, STACK_SIZE_MODE): Document. - * md.texi (stack_save_block, ...): Reflect use of macro. - - * rs6000.h (PROMOTE_MODE): Always promote to word_mode. - (PROMOTE_FUNCTION_ARGS): Define. - (PROMOTE_FUNCTION_RETURN): Define. - (FUNCTION_VALUE): Promote to word_mode if smaller. - Convert to gen_rtx_FOO. - * rs6000.md (call_indirect): Store doubleword in 64-bit mode. - Convert to gen_rtx_FOO. - * rs6000.c: Convert to gen_rtx_FOO. - -Thu Jul 2 14:16:11 1998 Michael Meissner <meissner@cygnus.com> - - * varray.{c,h}: New files to provide virtual array support. - - * Makefile.in (OBJS): Add varray.o. - (varray.o): Add new file. - (REGS_H): New variable for dependencies for files including - regs.h. Add varray.h and files it includes. Change all regs.h - dependencies to $(REGS_H). - - * toplev.c (x{m,re}alloc): If size is 0, allocate 1 byte. - (xcalloc): Provide frontend for calloc. - * {tree,rtl}.h (xcalloc): Add declaration. - - * basic-block.h (REG_BASIC_BLOCK): Convert reg_n_info to be a - varray. - - * regs.h (toplevel): Include varray.h. - (reg_n_info): Switch to use a varray. - (REG_*): Ditto. - (allocate_reg_info): Change num_regs argument to be size_t. - - * regclass.c (reg_info_data): New structure to remember groups of - reg_info structures allocated that are to be zeroed. - ({pref,alt}class_buffer): New statics to hold buffers - allocate_reg_info allocates for {pref,alt}class_buffer. - (regclass): Use {pref,alt}class_buffer to initialize - {pref,alt}class. - (allocate_reg_info): Switch to make reg_n_info use varrays. - Allocate buffers for the preferred and alter register class - information. Change num_regs argument to be size_t, not int. - - * flow.c (reg_n_info): Switch to use varrays. - -Thu Jul 2 10:11:47 1998 Robert Lipe <robertl@dgii.com> - - * install.texi (sco3.2v5): Document new --with-gnu-as flag. - * config/i386/sco5.h (JUMP_TABLES_IN_TEXT_SECTION): Defined as - in other targets. - (USE_GAS): Conditionalize away native assembler usage. - * config/i386/sco5gas.h: New file. - * config/i386/t-sco5gas: New file. - * configure.in (ix86-sco3.2v5*): Use new files if --with-gnu-as - -Thu Jul 2 08:20:00 1998 Catherine Moore <clm@cygnus.com> - - * haifa-sched.c (alloc_EXPR_LIST): Change to use - unused_expr_list. - -Thu Jul 2 14:13:28 1998 Dave Love <d.love@dl.ac.uk> - - * Makefile.in (install-info): Don't use $realfile. Ignore - possible errors from the install-info program. - -Thu Jul 2 01:53:32 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk> - - * combine.c (simplify_comparison): Apply SUBREG_REG to SUBREGs. - -Wed Jul 1 23:06:03 1998 Richard Henderson <rth@cygnus.com> - - * i386.h (HARD_REGNO_MODE_OK): Kill spurrious test. - (MODES_TIEABLE_P): Tie SImode and HImode. - -1998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de> - - * invoke.texi (Optimize Options): Fix typo. - -Wed Jul 1 22:25:43 1998 Jim Wilson <wilson@cygnus.com> - - * xcoffout.c (xcoffout_begin_function): Call xcoffout_block for - the zero'th block. - -Wed Jul 1 23:12:58 1998 Ken Raeburn <raeburn@cygnus.com> - - * h8300.c (print_operand): Delete %L support. - * h8300.md (branch_true, branch_false): Use %= with a prefix - instead of %L for local branch labels. - -Wed Jul 1 21:27:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (emit_reload_insns): Use proper register classes for - SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_MEMORY_NEEDED code. - -Wed Jul 1 21:17:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads): If there are multiple - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads for - one operand, change RELOAD_FOR_INPADDR_ADDRESS / - RELOAD_FOR_OUTADDR_ADDRESS for all but the first - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads. - -Wed Jul 1 17:23:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (fixup_match_2): Check that P has RTX_CLASS 'i' before - using its PATTERN. - -Wed Jul 1 05:04:41 1998 Richard Henderson <rth@cygnus.com> - - * expr.c (emit_group_load, emit_group_store): Rewrite considering - the size and alignment of the structure being manipulated. - * expr.c, calls.c, function.c: Update all callers. - * expr.h: Update prototypes. - * cse.c (invalidate): Cope with parallels. - -Wed Jul 1 04:22:23 1998 Richard Henderson <rth@cygnus.com> - - * sparc.c (function_arg_record_value): Take a MODE arg with which to - create the PARALLEL. Update all callers. - -Wed Jul 1 04:10:35 1998 Richard Henderson <rth@cygnus.com> - - * expr.c (expand_assignment, store_constructor, expand_expr): Use - convert_memory_address instead of convert_to_mode when possible. - -Wed Jul 1 03:48:00 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_initialize_trampoline): Take arguments describing - the layout. Use ptr_mode. Disable hint generation. Use gen_imb. - * alpha.h (INITIALIZE_TRAMPOLINE): Pass extra args to the init func. - (TRANSFER_FROM_TRAMPOLINE): Move ... - * alpha/osf.h: ... here. - * alpha/vms.h (INITIALIZE_TRAMPOLINE): Use alpha_initialize_trampoline. - (TRANSFER_FROM_TRAMPOLINE): Remove undef. - * alpha/win-nt.h: Likewise. - * alpha/vxworks.h: Likewise. - - * alpha/linux.h: Revert gcc2 merge lossage. - -Wed Jul 1 10:56:55 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-decl.c (grokdeclarator): Don't warn about implicit int in - `typedef foo = bar'. - -Wed Jul 1 02:12:33 1998 Robert Lipe <robertl@dgii.com> - - * i386.c (asm_output_function_prefix): Make 686 function - prologues not issue .types for non-global lables. - -Tue Jun 30 23:46:53 1998 Dmitrij Tejblum <tejblum@arc.hq.cti.ru> - - * i386/freebsd.h (WCHAR_TYPE): Chagne to an "int". - (WCHAR_TYPE_SIZE): Update appropriately. - -Tue Jun 30 23:16:39 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (recompute_reg_usage): Does not return a value. - * rtl.h (recompute_reg_usage): Update prototype. - - * jump.c (jump_optimize): Show that the jump chain is not - valid when not optimizing. - -Tue Jun 30 16:01:01 1998 Richard Henderson <rth@cygnus.com> - - * rtl.def (CONSTANT_P_RTX): New. - * rtl.h (CONSTANT_P): Recognize it. - * cse.c (fold_rtx): Eliminate it. - * expr.c (can_handle_constant_p): New variable. - (init_expr_once): Initialize it. - (expand_builtin): Generate CONSTANT_P_RTX if the expression is not - immediately recognizable as a constant. - - * alpha.c (reg_or_6bit_operand): Recognize CONSTANT_P_RTX. - (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. - (sext_add_operand, and_operand, or_operand): Likewise. - (reg_or_cint_operand, some_operand, input_operand): Likewise. - * alpha.h (PREDICATE_CODES): Add CONSTANT_P_RTX where needed. - -1998-06-30 Benjamin Kosnik <bkoz@bliss.nabi.net> - - * dbxout.c (dbxout_type_methods): Remove warn_template_debugging. - -Tue Jun 30 14:03:34 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_NEED_DECLARATION): Accept an optional second - argument, which is typically preprocessor code used to draw in - additional header files when looking for a function declaration. - (GCC_NEED_DECLARATIONS): Likewise. - - * configure.in (GCC_NEED_DECLARATIONS): Add checks for getrlimit - and setrlimit, search for them in sys/resource.h. - - * acconfig.h: Add stubs for NEED_DECLARATION_GETRLIMIT and - NEED_DECLARATION_SETRLIMIT. - - * system.h: Prototype getrlimit/setrlimit if necessary. - -Tue Jun 30 10:54:48 1998 Mark Mitchell <mark@markmitchell.com> - - * rtl.texi: Don't say that RTX_INTEGRATED_P is not depended - upon. - -Tue Jun 30 13:11:42 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000/sysv4.h (asm output): add tabs for asm directives. - -Tue Jun 30 13:11:42 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * Makefile.in (FLAGS_TO_PASS): Set AR_FLAGS to AR_FOR_TARGET_FLAGS. - -Tue Jun 30 08:59:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gansidecl.h (ATTRIBUTE_UNUSED): Use __unused__ not `unused'. - Don't define NULL here. Also, remove all vestiges of autoconf - based checks for bcmp/bcopy/bzero/index/rindex. - - * system.h: Immediately after including stdio.h, check for and if - necessary provide a default definition of NULL. - -Tue Jun 30 08:22:05 1998 Michael Meissner <meissner@cygnus.com> - - * reload1.c (reload_cse_simplify_operands): Call - fatal_insn_not_found, not abort. - -Tue Jun 30 02:34:02 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (make_temp_file): Accept new argument for the - file suffix to use. Allocate space for it and add it to the - template. - * mkstemp.c (mkstemps): Renamed from mkstemp. Accept new argument - for the length of the suffix. Update template struture checks - to handle optinal suffix. - * collect2.c (make_temp_file): Update prototype. - (main): Put proper suffixes on temporary files. - * gcc.c (make_temp_file): Update prototype. - (do_spec_1): Put proper suffixes on temporary files. - -Tue Jun 30 00:56:19 1998 Bruno Haible <haible@ilog.fr> - - * invoke.texi: Document new implicit structure initialization - warning. - -Mon Jun 29 21:40:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * toplev.c (flag_dump_unnumbered): Declare. - (f_options): Add dump-unnumbered. - * print-rtl.c (flag_dump_unnumbered): Define. - (print_rtx): Print only '#' for insn numbers if flag_dump_unnumbered - is nonzero. - (print_rtl): Don't output line number notes if flag_dump_unnumbered - is nonzero. - * flow.c (print_rtl_with_bb): Don't output newline after line - numbers note if flag_dump_unnumbered is nonzero. - -Mon Jun 29 22:12:06 1998 Jeffrey A Law (law@cygnus.com) - - * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for - details. - - * pa.c, pa.h, pa.md: Convert to gen_rtx_FOO. - -Mon Jun 29 20:12:41 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (fix-header): Don't needlessly depend on cpperror.o. - - * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Cast expansion to - void since it is evaluated in a comma list. - - * mips.h (ASM_GENERATE_INTERNAL_LABEL): Always sprintf `NUM' - argument as a long and cast `NUM' to long to ensure it is of the - proper width. Wrap macro arguments in parens when they appear in - the expansion. - - * sol2.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - - * sparc.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_DECLARE_RESULT): Fix fprintf format specifier to match - function argument return type. - (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P, - REGNO_OK_FOR_CCFP_P): Use `(unsigned)' not `U'. - - * cpplib.c (cpp_message_from_errno): Remove unneeded argument to - cpp_message. - - * dbxout.c: Fix the comments after an #endif to reflect the actual - condition tested in the preceding #if. - - * except.c (find_all_handler_type_matches): Switch to old-style - function definition. - - * expr.c (expand_builtin): Remove unused variable `type' twice. - - * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Cast -1 before comparing it - to an unsigned long. - - * haifa-sched.c (print_insn_chain): Remove unused function. - - * objc/objc-act.c (build_msg_pool_reference): Hide prototype and - definition. - - * toplev.c: When testing whether to include dbxout.h, also include - it when XCOFF_DEBUGGING_INFO is defined. - - * unroll.c (unroll_loop): Add parentheses around assignment used - as truth value. - -Mon Jun 29 12:18:00 1998 Catherine Moore <clm@cygnus.com> - - * config/lb1spc.asm (.div, .udiv): Replace routines. - -Mon Jun 29 09:44:24 1998 Mark Mitchell <mark@markmitchell.com> - - * rtl.h: Update comment about special gen_rtx variants. - * emit-rtl.c (gen_rtx): Handle MEMs using gen_rtx_MEM. - -Sun Jun 28 20:58:51 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (choose_temp_base): Restore original variant of - this function for compatibility. - (make_temp_file): This is the new, preferred interface to create - temporary files. - * collect2.c (choose_temp_base): Delete declaration. - (make_temp_file): Declare. - (temp_filename_length, temp_filename): Delete. - (main): Use make_temp_file to get temporary files. Use --lang-c - to force the resulting ctort/dtor file to be compiled with the C - compiler. Make sure to remove temporary files on all exit paths. - * gcc.c (make_temp_file): Provide prototype if MKTEMP_EACH_FILE is - defined. - (choose_temp_base): Only provide prototype if MKTEMP_EACH_FILE is - not defined. - (do_spec): Use make_temp_file if MKTEMP_EACH_FILE is defined. - -Sun Jun 28 08:57:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in (GCC_NEED_DECLARATIONS): Add strerror, getcwd and - getwd. - - * acconfig.m4: Add stubs for NEED_DECLARATION_STRERROR, - NEED_DECLARATION_GETCWD and NEED_DECLARATION_GETWD. - - * cccp.c: Remove strerror()/sys_nerr/sys_errlist decls. - (my_strerror): Add prototype and make it static. - - * collect2.c: Likewise. - - * cpplib.c: Likewise. - - * gcc.c: Likewise, but keep `my_strerror' extern. - - * protoize.c: Likewise. - - * pexecute.c (my_strerror): Add argument to prototype. - - * system.h: Add prototypes for getcwd, getwd and strerror. Add - extern decls for sys_nerr and sys_errlist. Make abort decl - explicitly extern. - - * getpwd.c: Remove decls for getwd and getcwd. - -Sun Jun 28 02:11:16 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Jun 27 23:32:25 1998 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize): Use side_effects_p & may_trap_p instead - of rtx_unsafe_p. Use modified_between_p instead of reg_set_between_p. - Allow FP moves to be optimized. - (rtx_unsafe_p): Delete. - -Sat Jun 27 23:02:04 1998 Richard Henderson <rth@cygnus.com> - - * objc/archive.c: Remove <string.h> prototypes. - -Sat Jun 27 22:37:05 1998 Jeffrey A Law (law@cygnus.com) - - * tm.texi (NEED_MATH_LIBRARY): Document new target macro. - - * Makefile.in (gencheck): Remove $(TREE_H) dependency. - -Sat Jun 27 20:20:00 1998 John Carr <jfc@mit.edu> - - * dsp16xx.h (FIRST_PSEUDO_REGISTER): Add parentheses to definition. - * dsp16xx.c (next_cc_user_unsigned): New function. - Remove save_next_cc_user_code. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - * dsp16xx.md: Call next_cc_user_unsigned instead of using - save_next_cc_user_code. - Use gen_rtx_* functions instead of gen_rtx. - -Sat Jun 27 20:18:34 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000.h: Add trap_comparison_operator to PREDICATE_CODES. - -Sat Jun 27 16:45:42 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (count_reg_sets): New function. - (count_reg_sets_1, count_ref_references): Likewise. - (recompute_reg_usage): Likewise. - * rtl.h (recompute_reg_usage): Add prototype. - * toplev.c (rest_of_compilation): Call recompute_reg_usage just - before local register allocation. - -Sat Jun 27 13:15:30 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (negsf, negdf): Revert Jan 22 change. - -Sat Jun 27 07:35:21 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mkstemp.c: Include gansidecl.h. Rename uint64_t to gcc_uint64_t. - (mkstemp): Remove size specifier for variable `letters'. Call - gettimeofday, not __gettimeofday. - - * Makefile.in (EXPR_H): New dependency variable. - (c-typeck.o): Depend on $(EXPR_H) instead of expr.h. - (c-iterate.o): Likewise. - (gencheck): Depend on $(TREE_H) instead of tree.h, etc. - (stor-layout.o): Depend on $(EXPR_H) instead of expr.h. - (toplev.o): Likewise. Also depend on $(RECOG_H) instead of recog.h. - (varasm.o): Depend on $(EXPR_H) instead of expr.h. - (function.o): Likewise. - (stmt.o): Likewise. - (except.o): Likewise. - (expr.o): Likewise. - (calls.o): Likewise. - (expmed.o): Likewise. - (explow.o): Likewise. - (optabs.o): Likewise. - (sdbout.o): Likewise. - (dwarf2out.o): Likewise. - (emit-rtl.o): Likewise. - (integrate.o): Likewise. - (jump.o): Likewise. - (cse.o): Likewise. - (gcse.o): Likewise. Also depend on $(BASIC_BLOCK_H) instead of - basic-block.h. - (loop.o): Depend on $(EXPR_H) instead of expr.h. - (unroll.o): Likewise. - (combine.o): Likewise. - (reload.o): Likewise. - (reload1.o): Likewise. - (caller-save.o): Likewise. - (reorg.o): Likewise. - (alias.o): Don't depend on insn-codes.h. - (regmove.o): Depend on $(RECOG_H)/$(EXPR_H) instead of recog.h/expr.h. - (insn-emit.o): Depend on $(EXPR_H) instead of expr.h. - (insn-opinit.o): Likewise. - -Sat Jun 27 01:35:14 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (choose_temp_base): Remove MPW bits. Use mkstemp - instead of mktemp. - * gcc.c (MKTEMP_EACH_FILE): Define. - (main): No need to call choose_temp_base if we are going to - use choose_temp_base to create each file later. - * mkstemp.c: New file. Adapted from glibc. - * Makefile.in (xgcc, colect2, protoize, unprotoize): Link in mkstemp.o - (mkstemp.o): Add dependencies. - - * configure.in (gettimeofday): Check for its existance. - * config.in (HAVE_GETTIMEOFDAY): Define. - * configure: Rebuilt. - -1998-06-26 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (ne 0, non power case): Add missing & constraint. - Name pattern ne0. - (negative abs insns): Add pattern names. - -Fri Jun 26 17:36:42 1998 Dave Love <d.love@dl.ac.uk> - - * Makefile.in (install-info): Run install-info program in separate - loop. - -Fri Jun 26 16:03:15 1998 Michael Meissner <meissner@cygnus.com> - - * haifa-sched.c (schedule_block): Add hooks for the machine - description to reorder the ready list, and update how many more - instructions can be issued this cycle. - * tm.texi (MD_SCHED_{INIT,REORDER,VARIABLE_ISSUE}): Document. - -Fri Jun 26 11:54:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.h (REGNO_OK_FOR_{INDEX,BASE,FP,CCFP}_P): - Explicitly mark the constant being compared against as unsigned. - * config/sparc/sparc.c (sparc_select, cpu_default, cpu_table): - Fully initialize final members. - (mem_aligned_8): Explicit init of offset to zero. - (output_function_prologue): Explicit init of n_regs to zero. - (output_function_epilogue): Likewise, and mark arg size as - unused. - (init_cumulative_args): Mark libname and indirect as unused. - (function_arg_pass_by_reference): Likewise for cum and named. - (sparc_builtin_saveregs): Likewise for arglist. - (sparc_flat_eligible_for_epilogue_delay): Likewise for slot. - -Fri Jun 26 06:58:54 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Only need a secondary reload - if reloading a MEM. - - * arm.h (arm_adjust_cost): Renamed bogus prototype from - arm_adjust_code. - (bad_signed_byte_operand): Add prototype. - * arm.c (arm_override_options): Make I unsigned. - (const_ok_for_arm): Add casts to the constants. - (load_multiple_operation): Don't redeclare elt in sub-block. - (arm_gen_movstrqi): Delete external declaration of optimize. - (gen_compare_reg): Declare parameter fp. - - * arm.c (final_prescan_insn): Only initialize scanbody if the insn - has a pattern. - -Fri Jun 26 09:31:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alpha.c: Include system.h and toplev.h. - (cint8_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (const48_operand): Likewise. - (mode_width_operand): Likewise. - (mode_mask_operand): Likewise. - (mul8_operand): Likewise. - (current_file_function_operand): Likewise. - (signed_comparison_operator): Likewise. - (divmod_operator): Likewise. - (any_memory_operand): Likewise. - (alpha_return_addr): Likewise for parameter `frame'. - (alpha_builtin_saveregs): Likewise for parameter `arglist'. - (vms_valid_decl_attribute_p): Likewise for parameters `decl' and - `attributes'. - (alpha_start_function): Likewise for parameter `decl'. Use - HOST_WIDE_INT_PRINT_DEC in call to fprintf. Fix various format - specifiers. Remove unused variables `lab' and `name'. - (alpha_end_function): Mark parameter `decl' with ATTRIBUTE_UNUSED. - (check_float_value): Likewise for parameter `overflow'. - (alpha_need_linkage): Likewise for parameters `name' and `is_local'. - - * alpha.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define as - taking an argument. - (ASM_OUTPUT_SHORT): Cast argument to `int' in call to fprintf. - (ASM_OUTPUT_CHAR): Likewise. - (ASM_OUTPUT_BYTE): Likewise. - (PRINT_OPERAND_ADDRESS): Use HOST_WIDE_INT_PRINT_DEC in call to - fprintf. - (PUT_SDB_EPILOGUE_END): Mention argument `NAME' in definition. - Add prototypes for functions in alpha.c. - - * alpha.md (ashldi3): Add default case in switch. - -1998-06-26 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (gcc_version, gcc_version_trigger): New macros. - (version): Initialize from $(gcc_version). - - * configure.in (version): Rename to gcc_version. - (gcc_version_trigger): New variable; call AC_SUBST for it and - emit it into the generated config.status. - * configure: Regenerate. - -Thu Jun 25 12:47:41 1998 Mark Mitchell <mark@markmitchell.com> - - * fold-const.c (make_range): Don't go looking at TREE_OPERANDs of - nodes that are not expressions. - -Thu Jun 25 15:08:16 1998 Mark Mitchell <mark@markmitchell.com> - - * invoke.texi (-fstrict-aliasing): Document. - * rtl.texi (MEM_ALIAS_SET): Document. - - * flags.h (flag_strict_aliasing): Declare. - * toplev.c (flag_strict_aliasing): Define. - (f_options): Add -strict-aliasing. - (main): Set flag_strict_aliasing if -O2 or higher. - - * tree.h (tree_type): Add alias_set field. - (TYPE_ALIAS_SET): New macro. - (TYPE_ALIAS_SET_KNOWN_P): Likewise. - (get_alias_set): Declare. - * tree.c (lang_get_alias_set): Define. - (make_node): Initialize TYPE_ALIAS_SET. - (get_alias_set): New function. - * print-tree.c (print_node): Dump the alias set for a type. - - * c-tree.h (c_get_alias_set): Declare. - * c-common.c (c_get_alias_set): New function. - * c-decl.c (init_decl_processing): Set lang_get_alias_set. - - * expr.c (protect_from_queue): Propogage alias sets. - (expand_assignment): Calculate alias set for new MEMs. - (expand_expr): Likewise. - * function.c (put_var_into_stack): Likewise. - (put_reg_into_stack): Likewise. - (gen_mem_addressof): Likewise. - (assign_parms): Likewise. - * stmt.c (expand_decl): Likewise. - * varasm.c (make_decl_rtl): Eliminate redundant clearing of - DECL_RTL. Calculate alias set for new MEMs. - - * rtl.def (REG): Add dummy operand. - (MEM): Add extra operand to store the MEM_ALIAS_SET. - * rtl.h (MEM_ALIAS_SET): New macro. - (gen_rtx_MEM): Declare. - * emit-rtl.c (gen_rtx_MEM): New function. - * gengenrtl.c (sepcial_rtx): Make MEMs special. - - * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro. - (DIFFERENT_ALIAS_SETS_P): Likewise. - (canon_rtx): Propogate the alias set to the new MEM. - (true_dependence): Check the alias sets. - (anti_dependence): Likewise. - (output_dependence): Likewise. - * explow.c (stabilize): Progoate alias sets. - * integrate.c (copy_rtx_and_substitute): Likewise. - * final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P - in an unpredictable state. Propogate alias sets. - * reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which - we have no alias information. - -Thu Jun 25 16:59:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h. - (find_all_handler_type_matches): Add function prototype. - * eh-common.h (CATCH_ALL_TYPE): Definition added. - * except.c (find_all_handler_type_matches): Add function to find all - runtime type info in the exception table. - (output_exception_table_entry): Special case for CATCH_ALL_TYPE. - -Thu Jun 25 15:47:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (xcoffout.o): Depend on toplev.h, output.h and dbxout.h. - - * config/fp-bit.c (_fpmul_parts): Move variables `x', `ylow', - `yhigh' and `bit' into the scope in which they are used. - (_fpdiv_parts): Remove unused variables `low', `high', `r0', `r1', - `y0', `y1', `q', `remainder', `carry', `d0' and `d1'. - - * rs6000.c: Move include of output.h below tree.h. Include toplev.h. - (any_operand): Mark unused parameters `op' and `mode' with - ATTRIBUTE_UNUSED. - (count_register_operand): Likewise for parameter `mode'. - (fpmem_operand): Likewise. - (short_cint_operand): Likewise. - (u_short_cint_operand): Likewise. - (non_short_cint_operand): Likewise. - (got_operand): Likewise. - (got_no_const_operand): Likewise. - (non_add_cint_operand): Likewise. - (non_logical_cint_operand): Likewise. - (mask_operand): Likewise. - (current_file_function_operand): Likewise. - (small_data_operand): Likewise for parameters `op' and `mode' but - only when !TARGET_ELF. - (init_cumulative_args): Mark parameters `libname' with - ATTRIBUTE_UNUSED. - (function_arg_pass_by_reference): Likewise for parameters `cum', - `mode' and `named'. - (expand_builtin_saveregs): Likewise for parameter `args'. - (load_multiple_operation): Likewise for parameter `mode'. - (store_multiple_operation): Likewise. - (branch_comparison_operator): Likewise. - (secondary_reload_class): Likewise. - (print_operand): Add parentheses around & operation. - (output_prolog): Mark parameter `size' with ATTRIBUTE_UNUSED. - (output_epilog): Likewise. Cast argument to fprintf to int. - (rs6000_adjust_cost): Mark parameter `dep_insn' with ATTRIBUTE_UNUSED. - (rs6000_valid_decl_attribute_p): Likewise for parameters `decl', - `attributes', `identifier' and `args'. - (rs6000_valid_type_attribute_p): Likewise for parameter `attributes'. - (rs6000_comp_type_attributes): Likewise for parameters `type1' and - `type2'. - (rs6000_set_default_type_attributes): Likewise for parameter `type'. - - * rs6000.h (RTX_COSTS): Add parentheses around & operation. - (toc_section, private_data_section, trap_comparison_operator): Add - prototypes. - - * dbxout.h (dbxout_parms, dbxout_reg_parms, dbxout_syms): Add - prototypes. - - * xcoffout.c: Include toplev.h, outout.h and dbxout.h. - - * xcoffout.h (stab_to_sclass, xcoffout_begin_function, - xcoffout_begin_block, xcoffout_end_epilogue, - xcoffout_end_function, xcoffout_end_block, - xcoff_output_standard_types, xcoffout_declare_function, - xcoffout_source_line): Add prototypes. - -Thu Jun 25 09:54:55 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM, - noticed by grahams@rcp.co.uk. - -Thu Jun 25 11:12:29 1998 Dave Brolley <brolley@cygnus.com> - - * gcc.c (default_compilers): Use new | syntax to eliminate - string concatenation. - -Thu Jun 25 01:00:48 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_function_name): Delete. - (alpha_ra_ever_killed): Notice current_function_is_thunk. - (alpha_sa_mask, alpha_sa_size, alpha_does_function_need_gp): Likewise. - (alpha_start_function): Reorg from output_prologue. - (alpha_end_function): Reorg from output_epilogue. - * alpha.h (ASM_DECLARE_FUNCTION_NAME): Call alpha_start_function. - (ASM_DECLARE_FUNCTION_SIZE): New. - (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. - (PROFILE_BEFORE_PROLOGUE): Set. - (ASM_OUTPUT_MI_THUNK): Remove bits now output by start/end_function. - * alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - -Thu Jun 25 01:18:47 1998 John Wehle (john@feith.com) - - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - -1998-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * expr.c (expand_assignment): Rework address calculation for structure - field members to expose more invariant computations to the loop - optimizer. - (expand_expr): Likewise. - -Wed Jun 24 22:44:22 1998 Jeffrey A Law (law@cygnus.com) - - * local-alloc.c (block_alloc): Do not try to avoid false dependencies - when SMALL_REGISTER_CLASSES is nonzero. - -Wed Jun 24 17:55:15 1998 Klaus Kaempf <kkaempf@progis.de> - - * alpha.md (call_vms, call_value_vms): Strip leading * from symbol. - -Wed Jun 24 16:27:23 1998 John Carr <jfc@mit.edu> - - * expr.c (get_memory_rtx): New function. - (expand_builtin): Call get_memory_rtx for MEM arguments to builtin - string functions. - - * expmed.c (init_expmed): Initialize all elements of *_cost arrays. - - * optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...). - * expr.c: Likewise. - * explow.c: Likewise. - * combine.c: Likewise. - * reload1.c: Likewise. - * gcse.c: Likewise. - -Wed Jun 24 15:13:01 1998 Dave Brolley <brolley@cygnus.com> - - * README.gnat: Add patch for new lang_decode_options interface. - -Wed Jun 24 09:14:04 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.c (start_catch_handler): Do nothing if EH is not on. - -1998-06-24 Manfred Hollstein <manfred@s-direktnet.de> - - * configure.in (gxx_include_dir): Initialize default value depending on - new flag --enable-version-specific-runtime-libs; remove superfluous - default initialization afterwards. - * configure: Regenerate. - -Wed Jun 24 01:32:12 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * toplev.c (rest_of_compilation): Revert May 15 change. - -Tue Jun 23 21:27:27 1998 Ken Raeburn <raeburn@cygnus.com> - - * reload.c (find_reloads): Fix check for failure to match any - alternative, to account for Mar 26 change in initial "best" cost. - -Tue Jun 23 16:44:21 1998 Dave Brolley <brolley@cygnus.com> - - * cpplib.c (do_line): Typo broke #line directive. - (cpp_message_from_errno): New function. - (cpp_error_from_errno): Call cpp_message_from_errno. - * cpplib.h (cpp_message_from_errno): New function. - -Tue Jun 23 13:38:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * libgcc2.c (__get_eh_table_version, __get_eh_table_language): New - functions to return exception descriptor information. - (find_exception_handler): Pass match_info field to runtime matcher, - not a descriptor table entry. - -Tue Jun 23 09:30:58 1998 Dave Love <d.love@dl.ac.uk> - - * cpp.texi, gcc.texi: Add @dircategory, @direntry meant to - accompany previous Makefile.in (install-info) change. - -Tue Jun 23 10:06:07 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * eh-common.h (struct __eh_info): Remove coerced value field. - * libgcc2.c (find_exception_handler): Don't set coerced_value field. - * except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use - POINTER_SIZE instead of Pmode. - (expand_start_all_catch): Call start_catch_handler() if we are not - using new style exceptions. - -Tue Jun 23 06:45:00 1998 Catherine Moore <clm@cygnus.com> - - * varasm.c (assemble_variable): Remove reference to warn_bss_align. - -Mon Jun 22 23:57:31 1998 David S. Miller <davem@pierdol.cobaltmicro.com> - - * config/sparc/sparc.md (zero_extendhidi2, extendhisi2, - extendqihi2, extendqisi2, extendqidi2, extendhidi2, adddi3, - subdi3, negdi2, call, call_value, untyped_return, nonlocal_goto, - splits and peepholes): Change remaining generic gen_rtx calls to - specific genrtl ones. - * config/sparc/sparc.c: Likewise. - -Mon Jun 22 22:21:46 1998 Richard Henderson <rth@cygnus.com> - - * gcc.c (handle_braces): Recognize | between options as an or. - -Mon Jun 22 23:13:47 1998 John Wehle (john@feith.com) - - * i386/freebsd-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. - * i386/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. - - * i386.md (exception_receiver): Define. - -Mon Jun 22 12:01:48 1998 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, - PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): New variables. - (install-common): Use them. - - * gcse.c (add_label_notes): New function. - (pre_insert_insn): Call it. - * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and - pass the label to set_label_in_map. - -Mon Jun 22 19:01:14 1998 Dave Love <d.love@dl.ac.uk> - - * Makefile.in (install-info): Fix typpo in previous change. - -Mon Jun 22 11:10:00 1998 Catherine Moore <clm@cygnus.com> - - * varasm.c (assemble_variable): Emit alignment warning. - -Mon Jun 22 08:18:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (varasm.o): Depend on sdbout.h. - (sdbout.o): Depend on toplev.h. - - * collect2.c (scan_prog_file): Cast fprintf argument to `long' and - use %ld specifier. - - * final.c (shorten_branches): Cast first arg of `bzero' to char *. - - * genextract.c (main): When creating insn-extract.c, mark variable - `i' with ATTRIBUTE_UNUSED. - - * genpeep.c (main): When creating insn-peep.c, mark variables - `insn', `x' and `pat' with ATTRIBUTE_UNUSED. - - * objc/init.c (__objc_tree_print): Wrap function definition in - macro `DEBUG'. - - * objc/objc-act.c (encode_array): Cast sprintf argument to `long' - and use %ld specifier. - (adorn_decl): Likewise, twice. - - * reload1.c (reload_cse_regs): Cast first arg of `bzero' to char *. - - * sdbout.c: Include output.h and toplev.h. - (PUT_SDB_INT_VAL): Use HOST_WIDE_INT_PRINT_DEV to print argument - `a'. Cast `a' to HOST_WIDE_INT to force it to always be so. - (PUT_SDB_SIZE): Likewise. - - * sdbout.h (sdbout_mark_begin_function): Add prototype. - - * stmt.c (check_for_full_enumeration_handling): Cast argument of - `warning' to long and use %ld specifier. - - * toplev.c (main): Likewise for `fprintf'. - - * toplev.h (output_file_directive): Add prototype. - - * unroll.c (unroll_loop): Use HOST_WIDE_INT_PRINT_DEC specifier in - call to `fprintf'. - (precondition_loop_p): Likewise. - - * varasm.c Include sdbout.h. - (assemble_static_space): Move sometimes-unused variable `rounded' - into the scope in which it is used. - - * mips.c (gpr_mode): Don't say `static' twice. - - * cpplib.c (cpp_handle_option): Don't pass unneeded NULL to cpp_fatal. - - * objc/objc-act.c (init_selector): Hide prototype and definition. - - * optabs.c (gen_cond_trap): Remove unused variable `icode'. - - * regmove.c (copy_src_to_dest): Likewise for `i'. - - * mips-tfile.c (add_local_symbol): Cast width format specifier to int. - (add_ext_symbol): Likewise. - (add_file): Likewise. - (parse_def): Likewise. - (write_varray): Use HOST_PTR_PRINTF to print a pointer. Fix - remaining format specifiers and arguments. - (write_object): Likewise, several times. - (read_seek): Likewise. - (out_of_bounds): Likewise. - (allocate_cluster): Likewise. - (xmalloc): Likewise. - (xcalloc): Likewise. - (xrealloc): Likewise. - (xfree): Likewise. - - * mips-tdump.c (print_symbol): Likewise. - -Sun Jun 21 17:05:34 1998 Dave Love <d.love@dl.ac.uk> - - * Makefile.in (install-info): Use install-info program if - available, per GNU standard. - -Sun Jun 21 18:56:44 1998 Jeffrey A Law (law@cygnus.com) - - * invoke.texi: Document -mrelax for the mn10300 and mn10200. - - * basic-block.h (init_regset_vector): Delete declaration. - * flow.c (init_regset_vector): Make it static and add a prototype. - - * bitmap.h (debug_bitmap): Declare. - - * haifa-sched.c (debug_ready_list): Make static. - - * toplev.h (fancy_abort): Declare. - -Sun Jun 21 18:30:13 1998 H.J. Lu (hjl@gnu.org) - - * basic-block.h (init_regset_vector): New declaration. - - * Makefile.in (sdbout.o): Add insn-codes.h to dependency. - - * global.c: Include machmode.h amd move hard-reg-set.h before - rtl.h. - - * haifa-sched.c (insn_issue_delay, birthing_insn_p, - adjust_priority, print_insn_chaino): New declaration. - (schedule_insns): Remove declaration. - (init_target_units, get_visual_tbl_length, - init_block_visualization): Add prototype. - - * integrate.c (pushdecl, poplevel): Remove declaration. - - * rtl.h (expand_expr): Remove declaration. - - * loop.c (oballoc): Remove declaration. - (replace_call_address): Add prototype. - -Sun Jun 21 01:08:17 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Jun 21 01:16:38 1998 John Wehle (john@feith.com) - - * i386.c (output_fp_conditional_move): Don't bother handling - (cc_prev_status.flags && CC_NO_OVERFLOW) since the INSN patterns - prevent this from happening. - - * i386.md (nonlocal_goto_receiver): Delete. - -Sun Jun 21 00:42:20 1998 H.J. Lu (hjl@gnu.org) - - * Makefile.in (crtbeginS.o, crtendS.o): Add -fno-exceptions and - -DCRTSTUFFS_O. - (INSTALL): cd $(srcdir) before make. - - * flow.c (allocate_for_life_analysis, init_regset_vector): - Remove declaration. - - * function.h (get_first_block_beg): New declaration. - - * gbl-ctors.h (__do_global_dtors): Add prototype. - - * gcov-io.h (__fetch_long): New declaration. - (__store_long): Likewise. - (__read_long): Likewise. - (__write_long): Likewise. - - * gcov.c (print_usage): New declaration. - - * Makefile.in (c-iterate.o): Depend on insn-codes.h too. - -Sat Jun 20 00:36:16 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Initialize "src" and "dest". - * stmt.c (expand_return): Likewise. - * expmed.c (extract_split_bit_field): Similarly for "result" - * gcse.c (compute_hash_table): Mark first arg as unused. - * jump.c (jump_optimize): Initialize reversep. - * tree.c (make_node): Initialize length. - - * c-common.c (check_format_info): Initialize length_char and - fci to keep -Wall quiet. - - * except.c (jumpif_rtx): Put declaration and definition - inside a suitable #ifdef. - (jumpifnot_rtx): Delete dead function. - - * i386.h (output_int_conditional_move): Declare. - (output_fp_conditional_move): Likewise. - (ix86_can_use_return_insn_p): Likewise. - - * optabs.c (init_traps): Put prototype inside a suitable #ifdef. - -Sat Jun 20 00:27:40 1998 Graham <grahams@rcp.co.uk> - - * alias.c: Include toplev.h - * caller-save.c: Include toplev.h - * combine.c: Include toplev.h - * flow.c Include toplev.h - * global.c: Include toplev.h - * jump.c: Include toplev.h - * local-alloc.c: Include toplev.h - * loop.c: Include toplev.h - * regmove.c: Include toplev.h - * stupid.c: Include toplev.h - * unroll.c: Include toplev.h - * Makefile.in: Add toplev.h dependencies. - -Fri Jun 19 22:40:25 1998 Jason Merrill <jason@yorick.cygnus.com> - - * regmove.c (copy_src_to_dest): Add decl for loop_depth. - - * svr4.h (ASM_GENERATE_INTERNAL_LABEL): Cast arg to unsigned. - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA1): Likewise. - Add parens to various macros. - -Fri Jun 19 23:22:42 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * c-typeck.c (pop_init_level): Warn about implicit zero initialization - of struct members. - -Fri Jun 19 23:06:33 1998 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (assemble_start_function): Add weak_global_object_name. - * tree.c (get_file_function_name): Use it. - -Fri Jun 19 22:55:14 1998 Jeffrey A Law (law@cygnus.com) - - * except.c (jumpif_rtx): Make static and add prototype. - (jumpifnot_rtx): Likewise. - - * README.gnat: Add a build patch from Fred Fish. - - * c-lang.c (GNU_xref_begin, GNU_xref_end): Deleted. - - * Makefile.in (c-iterate.o): Depend on expr.h. - -Fri Jun 19 20:38:34 1998 H.J. Lu (hjl@gnu.org) - - * except.h (emit_unwinder, end_eh_unwinder): Removed. - - * dwarfout.c (getpwd): Add prototype. - (is_pseudo_reg, type_main_variant, is_tagged_type, - is_redundant_typedef): New declaration. - (output_decl): Add prototype for FUNC. - (type_main_variant): Make it static. - (is_tagged_type): Likewise. - (is_redundant_typedef): Likewise. - - * expr.c (do_jump_by_parts_greater_rtx): Removed. - (truthvalue_conversion): Likewise. - - * c-iterate.c: Include "expr.h". - (expand_expr): Use proper values when calling the function. - - * explow.c (emit_stack_save): Add prototype for FCN. - (emit_stack_restore): Likewise. - - * dwarf2out.c (getpwd): Add prototype. - - * dwarf2out.h (debug_dwarf, debug_dwarf_die): New declarations. - - * c-typeck.c (c_expand_asm_operands): Use proper values when calling - expand_expr. - - * c-lex.c (yyprint): Add prototype. - (check_newline, build_objc_string): Remove declaration. - - * c-tree.h (comptypes_record_hook): Removed. - (finish_incomplete_decl): New prototype. - - * alias.c (find_base_value): Add prototype. - (true_dependence): Add prototype for function argument. - - * c-aux-info.c (xmalloc): Remove declaration. - -Fri Jun 19 20:23:05 1998 Robert Lipe <robertl@dgii.com> - - * i386.c: Include system.h. Remove redundant includes. - (optimization_options): Mark param 'size' with ATTRIBUTE_UNUSED. - (i386_cc_probably_useless_p): Likewise for 'decl', 'attributes', - 'identifier', 'args'. - (i386_valid_type_attribute_p): Likewise for 'attributes'. - (i386_comp_type_attribute_p): Likewise for 'type1', 'type2'. - (function_arg_partial_nregs): Likewise for 'cum', 'mode', 'type', - and 'named'. - (symbolic_operand): Likewise for 'mode'. - (call_insn_operand): Likewise. - (expander_call_insn_operand): Likewise. - (ix86_logical_operator): Likewise. - (ix86_binary_operator_ok): Likewise. - (emit_pic_move): Likewise. - (VOIDmode_compare_op): Likewise. - (is_mul): Likewise. - (str_immediate_operand): Likewise. - (ix86_uary_operator_ok): Likewise for 'code', 'mode', and 'operands'.yy - (asm_output_function_prefix): Likewise for 'name'. - (function_prologue): Likewise for 'file', and 'size'. - (function_epilogue): Likewise. - -1998-06-19 Jim Wilson <wilson@cygnus.com> - - * loop.h (struct induction): Clarify comment for unrolled field. - * unroll.c (find_splittable_givs): Move set of unrolled field - after address validity check. - -Fri Jun 19 18:38:04 1998 Michael Meissner <meissner@cygnus.com> - - * config/fp-bit.c (INLINE): Only define if not already defined. - -1998-06-19 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (installdirs): Loop over directories in $(libsubdir) - creating probably missing ones, instead of single if statements. - -Fri Jun 19 10:43:52 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-common.c (truthvalue_conversion): Protect side effects in the - expression when splitting a complex value. - * fold-const.c (fold): Likewise. - -Fri Jun 19 02:31:16 1998 Klaus Kaempf (kkaempf@progis.de) - - * cccp.c (hack_vms_include_specification): rewrite to handle - '#include <dir/file.h>' correctly. - -Fri Jun 19 02:24:11 1998 H.J. Lu (hjl@gnu.org) - - * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Defined. - -Fri Jun 19 02:10:10 1998 John Wehle (john@feith.com) - - * i386.c (notice_update_cc): Integer conditional moves don't - affect cc0. - - * i386.md (movsfcc, movdfcc, movxfcc): Use emit_store_flag - to support LT, LE, GE, and GT signed integer comparisons. - (movsfcc+1, movsfcc+2, movdfcc+1, movdfcc+2, - movxfcc+1, movxfcc+2): Pattern doesn't match if the comparison - is LT, LE, GE, or GT. - (movdicc): Remove code resulting from an earlier patch which - didn't apply correctly. - -Fri Jun 19 02:00:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't - consider a MEM in FP mode as equal. - -Fri Jun 19 01:02:17 1998 Jeffrey A Law (law@cygnus.com) - - * c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for - duplicate declarations of a function. - -Fri Jun 19 00:33:33 1998 H.J. Lu (hjl@gnu.org) - - * config/float-i386.h: New. - - * configure.in (i[34567]86-*-linux-*): Set float_format to i386. - -Thu Jun 18 20:11:00 1998 Jim Wilson <wilson@cygnus.com> - - * sched.c (schedule_insns): Use xmalloc not alloca for max_uid - indexed arrays. Call free at the end of the function for them. - * haifa-sched.c (schedule_insns): Likewise. - -Thu Jun 18 18:16:01 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (size_of_string): Do count backslashes. - -Thu Jun 18 11:43:54 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG - addressing when one register is the frame pointer or stack - pointer. Disallow REG+CONST addressing in HI mode. - -Thu Jun 18 17:30:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to - RELOAD_FOR_INSN. - -Thu Jun 18 09:36:50 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (c-lang.o): Depend on output.h. - - * c-lang.c: Include output.h. - - * sparc.c (sparc_builtin_saveregs): Remove unused variable `fntype'. - - * except.c (expand_builtin_eh_stub): Likewise for variable `jump_to'. - - * genrecog.c (write_subroutine): When writing insn-recog.c, mark - variables `insn', `pnum_clobbers', `x[0 .. max_depth]' and `tem' - with ATTRIBUTE_UNUSED. - - * regmove.c (copy_src_to_dest): Make function static to match its - prototype. - - * reload1.c Include hard-reg-set.h before rtl.h to get macro - HARD_CONST. Include machmode.h before hard-reg-set.h. - - * rtl.h: Prototype `retry_global_alloc' and wrap with macro - HARD_CONST to protect usage of typedef HARD_REG_SET. - - * tree.c: Prototype `_obstack_allocated_p'. - - * varasm.c: Wrap prototype of `asm_output_aligned_bss' in macro - BSS_SECTION_ASM_OP. - -Thu Jun 18 09:20:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * pa.c: Include system.h and toplev.h. Remove redundant code. - (call_operand_address): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (symbolic_operand): Likewise. - (symbolic_memory_operand): Likewise. - (pic_label_operand): Likewise. - (fp_reg_operand): Likewise. - (pre_cint_operand): Likewise. - (post_cint_operand): Likewise. - (ireg_or_int5_operand): Likewise. - (int5_operand): Likewise. - (uint5_operand): Likewise. - (int11_operand): Likewise. - (uint32_operand): Likewise. - (ior_operand): Likewise. - (lhs_lshift_cint_operand): Likewise. - (pc_or_label_operand): Likewise. - (legitimize_pic_address): Likewise. - (hppa_legitimize_address): Likewise for parameter `old'. - (output_block_move): Likewise for parameter `size_is_constant'. - (output_function_prologue): Likewise for parameter `size'. - (output_function_epilogue): Likewise. - (return_addr_rtx): Likewise for parameter `count'. - (output_mul_insn): Likewise for parameter `unsignedp'. - (hppa_builtin_saveregs): Likewise for parameter `arglist'. - (output_bb): Likewise for parameter `operands'. - (output_bvb): Likewise. - (function_label_operand): Likewise for parameter `mode'. - (plus_xor_ior_operator): Likewise. - (shadd_operand): Likewise. - (non_hard_reg_operand): Likewise. - (eq_neq_comparison_operator): Likewise. - (movb_comparison_operator): Likewise. - (pa_combine_instructions): Likewise for parameter `insns'. - - * pa.h: Add prototypes for functions `output_deferred_plabels', - `override_options', `output_ascii', `output_function_prologue', - `output_function_epilogue', `print_operand', - `symbolic_expression_p', `reloc_needed', `compute_frame_size', - `hppa_address_cost', `and_mask_p', `symbolic_memory_operand', - `pa_adjust_cost', `pa_adjust_insn_length' and - `secondary_reload_class'. - -Wed Jun 17 22:28:48 1998 Jason Merrill <jason@yorick.cygnus.com> - - * configure.in: Don't turn on collect2 unconditionally. - -Wed Jun 17 20:20:48 1998 Mark Mitchell <mark@markmitchell.com> - - * cse.c (cse_basic_block): Don't include NOTE insns in the count - that is used to decide whether or not it is time to erase the - equivalence table. - -Wed Jun 17 18:30:43 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000/linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define to zero. - -Wed Jun 17 19:05:03 1998 John Carr <jfc@mit.edu> - - * haifa-sched.c (haifa_classify_insn): TRAP_IF is risky. - (sched_analyze_2): Allow scheduling TRAP_IF. - - * reorg.c (mark_referenced_resources): Examine operands of TRAP_IF. - - * rtl.h (TRAP_CODE): New macro. - - * rtl.def (TRAP_IF): Change second operand type to rtx. - - * optabs.c (gen_cond_trap): New function. - (init_traps): New function. - (init_optabs): Call init_traps. - * expr.h: Declare gen_cond_trap. - - * jump.c (jump_optimize): Optimize jumps to and around traps. - - * sparc.md: Define trap instructions. - - * rs6000.md: Define trap instructions. - * rs6000.c (print_operand): New code 'V' for trap condition. - (trap_comparison_operator): New function. - - * m88k.md: Update use of TRAP_IF. - - * tree.h (enum built_in_function): New function code BUILT_IN_TRAP. - * c-decl.c (init_decl_processing): New builtin __builtin_trap. - * expr.c (expand_builtin): Handle BUILT_IN_TRAP. - - * expr.c (expand_builtin): Error if __builtin_longjmp second argument - is not 1. - -Wed Jun 17 15:20:00 PDT 1998 Catherine Moore <clm@cygnus.com> - - * reload1.c (spill_hard_reg): Check mode of register when - spilling from scratch_list. - -Wed Jun 17 16:25:38 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) - - * except.c (add_new_handler): fix bug in finding last region handler. - * libgcc2.c (find_exception_handler): Pass exception table pointer - to runtime type matcher, not the match info field. - -Wed Jun 17 15:57:48 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) - - * eh-common.h (struct eh_context): Add comment for hidden use of - field dynamic_handler_chain. - * except.c (get_dynamic_handler_chain): Comment on, and use the - correct offset of the dynamic_handler_chain field. - -1998-06-17 12:46:56 1998 Jim Wilson <wilson@cygnus.com> - - * mips/iris6.h (LINK_SPEC): Add -woff 131. - -1998-06-17 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: Disable EH_FRAME_SECTION if we don't have .init. - - * configure.in: Don't disable collect2 when we have GNU ld. - -Wed Jun 17 08:38:13 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (make_range): Do not widen the type of the expression. - - * expr.c (check_max_integer_computation_mode): New function. - (expand_expr): Avoid integer computations in modes wider than - MAX_INTEGER_COMPUTATION_MODE. - * fold-const.c (fold): Likewise. - * tree.h (check_max_integer_computation_mode): Declare. - * tm.texi (MAX_INTEGER_COMPUTATION_MODE): Document it. - - * configure.in (nm): Make a link to "nm" in the build tree too. - - * mn10300.md (andsi3): Fix typo. - -Tue Jun 16 22:58:40 1998 Richard Henderson <rth@cygnus.com> - - * reload1.c (reload_cse_regs): Call bzero instead of looping. - -Tue Jun 16 18:30:35 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (stripattributes): Prepend '*' to the section name. - -Tue Jun 16 16:49:26 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_prologue, alpha_expand_epilogue): New fns. - (output_prologue, output_epilogue): Merge VMS and OSF versions; - Remove anything related to the actual code generation. - (output_end_prologue): New function. - (alpha_sa_mask, alpha_sa_size): Merge VMS and OSF versions. - (alpha_does_function_need_gp): Return false for VMS. - (alpha_function_needs_gp): Make static. - (add_long_const): Delete. - (summarize_insn): Don't assume a SUBREG is of a REG. - Prototype all static functions. Rename VMS-specific global - variables vms_*. - * alpha.h (TARGET_CAN_FAULT_IN_PROLOGUE): Default to 0. - (FUNCTION_BOUNDARY): Align to cache line. - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER): Align to octaword. - (FUNCTION_END_PROLOGUE): New macro. - * alpha.md (attribute length): New. Mark all insns. - (return_internal, prologue_stack_probe_loop) New patterns. - (prologue, init_fp, epilogue): New patterns. - Disable peepholes. - * linux.h (TARGET_CAN_FAULT_IN_PROLOGUE): Define. - -Tue Jun 16 17:36:35 1998 Dave Brolley <brolley@cygnus.com> - - * toplev.c (lang_options): Add -trigraphs option for cpplib. - -Tue Jun 16 23:33:24 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS - is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS - is earlier than RELOAD_FOR_INPUT_ADDRESS. - -Tue Jun 16 13:15:16 1998 Jim Wilson <wilson@cygnus.com> - - * libgcc1-test.c (memcpy): Define. - -Tue Jun 16 13:44:02 1998 Michael Meissner <meissner@cygnus.com> - - * genattrtab.c (struct attr_desc): Change int flags to bit - fields. Add bit fields for this being function_units_used - or *_blockage_range attributes. - (write_unit_name): New function to print a function unit name - given unit #. - (expand_units): Indicate whether this is function_units_used or - *_blockage_range attributes. - (write_toplevel_expr): Print function_units_used and - *_blockage_range attributes in a more friendly fashion. - (make_internal_attr): Indicate whether this attribute is either - function_units_used or *_blockage_range. - -Mon Jun 15 17:06:43 1998 Michael Meissner <meissner@cygnus.com> - Jim Wilson <wilson@cygnus.com> - - * regmove.c (copy_src_to_dest): Do not copy src to dest if either - the source or destination is special. - -Mon Jun 15 13:20:33 1998 Jim Wilson <wilson@cygnus.com> - - * c-decl.c (shadow_tag_warned): Use specs not declspecs in for loop. - -Mon Jun 15 07:16:29 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Jun 13 13:10:40 1998 Krister Walfridsson <cato@df.lth.se> - - * config/sparc/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Undefine before - redefining it. - -Fri Jun 12 18:06:45 1998 Doug Evans <devans@egcs.cygnus.com> - - * m32r/m32r.h (STARTFILE_SPEC): Delete crtsysc.o. - (ENDFILE_SPEC): Add -lgloss. - -Fri Jun 12 14:57:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips.c (small_int): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (large_int): Likewise. - (pc_or_label_operand): Likewise. - (call_insn_operand): Likewise. - (consttable_operand): Likewise. - (m16_uimm3_b): Likewise. - (m16_simm4_1): Likewise. - (m16_nsimm4_1): Likewise. - (m16_simm5_1): Likewise. - (m16_nsimm5_1): Likewise. - (m16_uimm5_4): Likewise. - (m16_nuimm5_4): Likewise. - (m16_simm8_1): Likewise. - (m16_nsimm8_1): Likewise. - (m16_uimm8_1): Likewise. - (m16_nuimm8_1): Likewise. - (m16_uimm8_m1_1): Likewise. - (m16_uimm8_4): Likewise. - (m16_nuimm8_4): Likewise. - (m16_simm8_8): Likewise. - (m16_nsimm8_8): Likewise. - (m16_usym8_4): Likewise. - (m16_usym5_4): Likewise. - (mips_move_1word): Change type of variable `i' from int to size_t. - (mips_move_2words): Likewise. - (output_block_move): Mark parameter `libname' with ATTRIBUTE_UNUSED. - (function_arg_advance): Use HOST_PTR_PRINTF to print an address. - (function_arg): Likewise. - (function_arg_partial_nregs): Mark parameter `named' with - ATTRIBUTE_UNUSED. - (override_options): Use ISDIGIT instead of isdigit. - (mips_output_external): Mark parameter `file' with ATTRIBUTE_UNUSED. - (final_prescan_insn): Likewise for parameters `opvec' and `noperands'. - (save_restore_insns): Cast HOST_WIDE_INT arguments passed to - function `fatal' to long before printing. Use - HOST_WIDE_INT_PRINT_DEC in fprintf. Both changes done several - times in this function. - (function_prologue): Mark parameter `size' with ATTRIBUTE_UNUSED. - (function_epilogue): Likewise for parameters `file' and `size'. - Print an int with "%d" not "%ld". - (mips_select_rtx_section): Mark parameter `x' with ATTRIBUTE_UNUSED. - (mips_function_value): Likewise for parameter `func'. - (function_arg_pass_by_reference): Likewise for parameters `cum' - and `named'. - (extend_operator): Likewise for parameter `mode' - (highpart_shift_operator): Likewise. - - * mips.md (mul_acc_si): Remove unused variable `macc'. - -Fri Jun 12 09:33:44 1998 Richard Henderson <rth@cygnus.com> - - * fold-const.c (fold): Revert last change. It breaks constant - expressions somehow. - -Fri Jun 12 10:23:36 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): When comparing complex - prevent operands from being evaluated twice. - -Fri Jun 12 00:50:27 1998 Sergey Okhapkin <sos@prospect.com.ru> - - * toplev.c (lang_options): Add -remap as a preprocessor option. - -Fri Jun 12 00:30:32 1998 John Wehle (john@feith.com) - - * i386.md (cmpsi_1, cmphi_1, cmpqi_1): Remove code - which set CC_REVERSED since reload should ensure that - the operands are already the correct type. - -Thu Jun 11 17:14:15 1998 Jim Wilson <wilson@cygnus.com> - - * except.c (expand_builtin_eh_stub): Call emit_move_insn rather than - calling gen_rtx_SET. - -Thu Jun 11 18:45:49 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * config/rs6000/x-aix43 (AR): Delete. - (AR_FOR_TARGET_FLAGS): Add -X32_64 here. - -Thu Jun 11 16:19:17 1998 David W. Schuler <schuld@btv.ibm.com> - - * config/i386/aix386ng.h (CPP_SPEC): Remove extraneous quote. - -Thu Jun 11 12:40:27 1998 Jim Wilson <wilson@cygnus.com> - - * mips.c (override_options): Replace word_mode with explicit - TARGET_64BIT check. - -Thu Jun 11 14:50:02 1998 Michael Meissner <meissner@cygnus.com> - - * regmove.c (regmove_optimize): If we can't replace the - destination in an insn that sets the source, generate an explicit - move of the source to the destination. - (copy_src_to_dest): New function. - (toplevel): Include basic-block.h - - * Makefile.in (regmove.o): Add basic-block.h dependencies. - -Thu Jun 11 10:30:09 1998 Dave Brolley <brolley@cygnus.com> - - * toplev.c (lang_options): Add missing options (nostdinc, idirafter). - -Wed Jun 10 23:39:32 1998 Mark Mitchell <mark@markmitchell.com> - - * rtl.h (rtx_def): Improve documentation. - (MEM_IN_STRUCT_P): Likewise. - -Wed Jun 10 23:23:17 1998 Graham <grahams@rcp.co.uk> - - * c-decl.c (start_decl): Correct test for -Wmain. - - * c-decl.c (grokdeclarator): Remove unused variable "last". - -Wed Jun 10 14:52:27 1998 Jim Wilson <wilson@cygnus.com> - - * expr.c (expand_builtin_setjmp): Store const1_rtx in target. - (expand_builtin_longjmp): Abort if value isn't const1_rtx. - Delete code storing value in static_chain_rtx. - (expand_builtin, case BUILT_IN_LONGJMP): Pass NULL_RTX for target - to second expand_expr call. - -Wed Jun 10 13:08:41 1998 Mark Mitchell <mark@markmitchell.com> - - * mips/mips.c: Remove -mabi=o32 and -mabi=n64. - -Wed Jun 10 13:41:23 1998 Dave Brolley <brolley@cygnus.com> - - * cppmain.c (fatal): New function. - * configure.in (cpp_main): New configuration variable. - * configure: Regenerated. - * Makefile.in (CCCP): Use a configuration variable to select basex - for cccp. - (cppmain$(exeext)): Add @extra_cpp_objs@. - -Wed Jun 10 13:07:02 1998 Dave Brolley <brolley@cygnus.com> - - * objc/objc-act.c: Add cpplib declarations. - (lang_decode_option): Initialize cpplib if necessary. - (lang_decode_option): New argc/argv interface. - * tree.h (lang_decode_option): New argc/argv interface. - * toplev.c (lang_options): Add cpp options. - (main): New interface for lang_decode_option. - * gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler - unless -E, -M or -MM is specified. - * cpplib.h (cpp_handle_option): New function. - * cpplib.c (cpp_handle_option): New function. - (cpp_handle_options): Now calls cpp_handle_option. - * c-tree.h (c_decode_option): New argc/argv interface. - * c-lex.c (init_parse): cpplib now initialized in c_decode_option. - * c-lang.c (lang_decode_option): New argc/argv interface. - * c-decl.c: Add cpplib declarations. - (c_decode_option): New argc/argv interface. - (c_decode_option): Call cpp_handle_option. - (c_decode_option): Now returns number of strings processed. - -Wed Jun 10 09:47:13 1998 Richard Earnshaw (rearnsha@arm.com) - - * unroll.c (verify_addresses): Use validate_replace_rtx to undo the - changes. Abort if the undo fails. - -1998-06-10 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/rs6000/rs6000.c (output_prolog): Change locations and - directions of saving and restoring arguments of main on the stack. - -Wed Jun 10 08:56:27 1998 John Carr <jfc@mit.edu> - - * reload1.c (reload_cse_simplify_operands): Do not call gen_rtx_REG - for each alternative. Do not replace a CONST_INT with a REG unless - the reg is cheaper. - -Wed Jun 10 02:11:55 1998 Jeffrey A Law (law@cygnus.com) - - * decl.c (init_decl_processing): Fix typo. - - * mips.c (gpr_mode): New variable. - (override_options): Initialize gpr_mode. - (compute_frame_size): Use "gpr_mode" instead of "word_mode" to - determine size and offset of general purpose registers save slots. - (save_restore_insns, mips_expand_prologue): Similarly. - - * reload.c (find_reloads_toplev): Use gen_lowpart common to convert - between constant representations when we have (SUBREG (REG)) with - REG equivalent to a constant. - -Wed Jun 10 01:39:00 1998 Juha Sarlin <juha@c3l.tyreso.se> - - * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. - -Tue Jun 9 22:05:34 1998 Richard Henderson <rth@cygnus.com> - - * fold-const.c (fold): Even with otherwise constant trees, look for - opportunities to combine integer constants. - -Wed Jun 3 23:41:24 EDT 1998 John Wehle (john@feith.com) - - * i386.c (notice_update_cc): Clear cc_status.value2 in the - case of UNSPEC 5 (bsf). - - * i386.md (movsfcc, movdfcc, movxfcc): The floating point - conditional move instructions don't support signed integer - comparisons. - -Tue Jun 9 14:31:19 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/t-v850 (TCFLAGS): Add assembler options to warn of - overlfows. - - * config/v850/lib1funcs.asm (__return_interrupt): Use 'addi - 16,sp,sp' ratehr than 'add 16,sp'. Patch courtesy of Biomedin - <glctr@abc.it>. - -Tue Jun 9 16:23:13 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.c (expand_start_catch): Rename to start_catch_handler. - (expand_end_catch): Delete function. - (expand_end_all_catch): Remove catch status that expand_end_catch - use to do. - * except.h (expand_start_catch): Rename prototype. - (expand_end_catch): Delete prototype. - -Tue Jun 9 12:57:32 1998 Mark Mitchell <mark@markmitchell.com> - - * invoke.texi: Add documentation for -mips4 and -mabi=*. - -Tue Jun 9 12:12:34 1998 Klaus Kaempf (kkaempf@progis.de) - - * alpha/vms.h (EXTRA_SECTIONS): Add in_ctors and in_dtors. - (EXTRA_SECTION_FUNCTIONS): Add ctors_section and dtors_section. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. - -Tue Jun 9 12:10:27 1998 John Carr <jfc@mit.edu> - - * haifa-sched.c (update_flow_info): Use UNITS_PER_WORD, not MOVE_MAX, - as the threshold to permit splitting memory operations. - -Tue Jun 9 12:36:16 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (gpr_mode): New variable. - (override_options): Initialize gpr_mode. - (compute_frame_size): Use "gpr_mode" instead of "word_mode" to - determine size and offset of general purpose registers save slots. - (save_restore_insns, mips_expand_prologue): Similarly. - - * Makefile.in (LIB2FUNCS_EH): Define. Just "_eh" for now. - (LIBGCC2_CFLAGS): Remove -fexceptions. - (LIB2FUNCS): Remove "_eh". - (libgcc2.a): Iterate over LIB2FUNCS_EH and build everything in - it with -fexceptions. - - * Makefile.in (local-alloc.o): Depend on insn-attr.h. - * local-alloc.c (block_alloc): Avoid creating false - dependencies for targets which use instruction scheduling. - -Tue Jun 9 02:40:49 1998 Richard Henderson <rth@cygnus.com> - - * mips/elf.h (ASM_DECLARE_OBJECT_NAME): Define. - (ASM_FINISH_DECLARE_OBJECT): Define; - * mips/elf64.h: Likewise. - -Tue Jun 9 01:08:47 1998 Richard Henderson <rth@cygnus.com> - - * toplev.c (flag_new_exceptions): Remove extraneous `extern'. - -Mon Jun 8 23:24:48 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Jun 8 23:24:58 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (mulsidi3): Add !TARGET_POWERPC64 constraint. - (mulsidi3_ppc64): Delete. - -Mon Jun 8 20:57:40 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (varasm.o): Depend on dbxout.h. - (cse.o): Depend on toplev.h and output.h. - (gcse.o): Depend on output.h. - - * mips.c: Include system.h and toplev.h and remove redundant code. - Include output.h after tree.h so all its prototypes get activated. - * mips.md (table_jump): Remove unused variable `dest'. - - * sparc.h: Add prototype for `v8plus_regcmp_op'. - - * crtstuff.c (fini_dummy, init_dummy): Mark function definitions - with __attribute__ ((__unused__)). - (__frame_dummy): Provide prototype before use, wrap it with - EH_FRAME_SECTION_ASM_OP. - - * cse.c: Move inclusion of <setjmp.h> above local headers. - Include toplev.h and output.h. - - * dbxout.h: Add prototype for `dbxout_begin_function'. - - * final.c (final_scan_insn): Wrap variable `max_skip' in macro - ASM_OUTPUT_MAX_SKIP_ALIGN. - - * gcse.c: Include system.h and output.h. - (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): - Make extern instead of static. - (compute_can_copy): Only declare variables `reg' and `insn' when - AVOID_CCMODE_COPIES is not defined. - (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. - (hash_scan_clobber): Likewise for `x' and `insn'. - (hash_scan_call): Likewise. - (record_last_set_info): Likewise for `setter'. - (mark_call): Likewise for `pat'. - (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. - - * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the - length parameter so that it multiplies the number of elements by - the sizeof(element). - - * output.h: Add prototype for `weak_finish'. - - * recog.h: Likewise for `validate_replace_src'. - - * rtl.h: Likewise for `optimize_save_area_alloca', - `fix_sched_param', `purge_addressof', `gcse_main', - `regmove_optimize', `dbr_schedule', `branch_prob' and - `end_branch_prob'. - - * toplev.h: Likewise for `set_float_handler' and - `output_quoted_string'. - - * varasm.c: Include dbxout.h. - -Mon Jun 8 18:12:06 1998 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_secondary_reload_class): Use gp_reg_p instead of - GP_REG_P. Use gr_regs instead of GR_REGS. - -Mon Jun 8 16:54:12 1998 Ken Raeburn <raeburn@cygnus.com> - Jeff Law <law@cygnus.com> - - * Revamped multiply support for MIPS chips. - * mips.c (extend_operator): New function. - (highpart_shift_operator): Likewise. - * mips.h: Declare new functions. - (PREDICATE_CODES): Add support for new predicates. - * mips.md (mulsi3 expander): Simplify. - (mulsi_mult3): Add another constraint alternative. Support - 3 operand multiply instructions as found on various mips - parts. - (mulsi3_r4650): Delete pattern, now handled by mulsi_mult3. - (mul_acc_si): New pattern and associated splitters. - (mulsidi3 expander): Rework to use mulsidi3_64bit and - mulsidi3_internal. - (umulsidi3): New expander. - (mulsidi3_internal): Accept either sign or zero extended - operands and generate code as appropriate appropriately. - (mulsidi3_64bit): Similarly. - (smulsi3_highpart): Turn into an expander and generate code - to match new patterns. - (umulsi3_highpart): Likewise. - (xmulsi3_highpart_internal): New pattern. - (maddi patterns): Delete. Replace with: - (mul_acc_di, mul-acc_64bit_di): New patterns. - -Mon Jun 8 14:16:15 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with - flag_new_exceptions runtime flag. - (struct old_exception_table): New struct which represents what - the exception table looks like without the new model. - (NEW_EH_RUNTIME): New value used as a tag in the exception table to - flag that this is a new style table. - * except.h: Remove compile time flag NEW_EH_MODEL. - (expand_builtin_eh_stub_old): New prototype. - * tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD. - * expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD. - * c-decl.c (init_decl_processing): Add new builtin function - __builtin_eh_stub_old. - * final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL. - * flags.h (flag_new_exceptions): New runtime flag. - * toplev.c (flag_new_exceptions): Initialize default to 0, - -fnew-exceptions sets to 1. - * except.c (output_exception_table_entry): Output New style exception - identifier into table, and replace compile time flag NEW_EH_MODEL - with runtime flag flag_new_exceptions. - (output_exception_table): Replace compile time flag NEW_EH_MODEL. - (expand_builtin_eh_stub_old): Duplicates original functionality of - expand_builtin_eh_stub. - (expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL. - * libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs. - (old_find_exception_handler): New func, same as find_exception_handler - except it works on the old style exception table. - (__throw): Replace NEW_EH_MODEL. Detect new model based on presence - of identifier in the exception table, and call appropriate routines. - -Mon Jun 8 01:21:13 1998 Jason Merrill <jason@yorick.cygnus.com> - - * function.c: Define current_function_cannot_inline. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - * function.h (struct function): Provide it a home. - * output.h: Declare it. - * integrate.c (function_cannot_inline_p): Check it. - -Mon Jun 8 10:43:15 1998 Richard Henderson <rth@cygnus.com> - - * expr.c (force_operand): Detect PIC address loads before - splitting arithmetic. - -Mon Jun 8 09:22:38 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Jun 8 02:55:56 1998 Graham <grahams@rcp.co.uk> - - * tree.c (tree_class_check): Add braces to eliminate ambigious - else warning. - (tree_check): Likewise. - -Mon Jun 8 02:49:23 1998 H.J. Lu (hjl@gnu.org) - - * reg-stack.c (subst_stack_regs_pat): Make sure the top of - stack is the destination for conditional move insn. - -Mon Jun 8 01:21:13 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.h (TREE_VEC_END): Cast unused value to void. - - * i386.c (print_operand): Use %lx for long operand. - -Mon Jun 8 00:04:07 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (summarize_insn): Ignore rtl slot format 'i'. - -Sun Jun 7 14:15:45 1998 John Carr <jfc@mit.edu> - - * sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long - conversion functions. - -Sun Jun 7 14:02:58 1998 Richard Henderson <rth@cygnus.com> - - * toplev.c (flag_exceptions): Default to 0. - (compile_file): Remove flag_exceptions == 2 hack. - (main): Call lang_init_options. - * tree.h: Declare it. - * c-lang.c: Implement it. - * objc/objc-act.c: Likewise. - -Sun Jun 7 12:27:30 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (restore_stack_block): Generate MEM and specify mode. - * rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode. - * rs6000.c (rs6000_output_load_toc_table): Use fputs. - (output_function_profiler): Use asm_fprintf and fputs. - -Sat Jun 6 12:17:12 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gencheck.c: Remove redundant stdio.h include. Add a definition - of xmalloc for when we are forced to link with alloca.o. - - * reload1.c (reload_reg_free_for_value_p): Use `(unsigned)1' - instead of `1U'. - - * fold-const.c (constant_boolean_node): Make definition static to - match the prototype. - -Fri Jun 5 15:53:17 1998 Per Bothner <bothner@cygnus.com> - - * gcc.c (lang_specific_pre_link): New LANG_SPECIFIC_DRIVER function. - (lang_specific_extra_outfiles): New LANG_SPECIFIC_DRIVER variable. - (do_spec, input_filename, input_filename_length): Make public. - (main): Adjust outfiles allocation by lang_specific_extra_outfiles. - Call lang_specific_pre_link befor elinking. - -Fri Jun 5 12:29:28 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (rank_for_schedule): For "equally good insns", prefer - the insn which has the most insns dependent on it. - -Fri Jun 5 09:03:22 1998 John Carr <jfc@mit.edu> - - * alias.c (find_base_value): Avoid reading past end of reg_base_value. - -Fri Jun 5 03:05:34 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (insxh-1): New insxl pattern for combine. - -Fri Jun 5 01:12:15 1998 H.J. Lu (hjl@gnu.org) - - * i386/i386.c (output_fp_conditional_move): New function - to output floating point conditional move. - (output_int_conditional_move): New function to output integer - conditional move. - - * i386/i386.md (movsicci+5, movhicc+5, movdicc+5): Call - output_int_conditional_move () to output int conditional move. - (movsfcc+5, movdfcc+5, movxfcc+5): Call - output_fp_conditional_move () to output floating point - conditional move. - - * i386/i386.c (put_condition_code): In INT mode, check - cc_prev_status.flags & CC_NO_OVERFLOW for GE and LT. - -Thu Jun 4 16:09:51 1998 Dave Brolley <brolley@cygnus.com> - - * dbxout.c (dbxout_type): Output arrays of bits as if - they were bitstrings for Chill - -Thu Jun 4 14:35:27 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * tree.c (get_inner_array_type): New function. - * tree.h (get_inner_array_type): Prototype. - * expr.h (STACK_SAVEAREA_MODE): New macro. - * expr.c (expand_builtin_setjmp): Initialize sa_mode using - STACK_SAVEAREA_MODE. - (expand_builtin_longjmp): Likewise. - * explow.c (emit_stack_save): Likewise. - (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode. - - * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC. - (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC. - * rs6000/aix43.h: New file. - * rs6000/t-aix43: New file. - * rs6000/x-aix41: New file. - * rs6000/x-aix43: New file. - * configure.in (rs6000-ibm-aix*): Use them. - * rs6000/powerpc.h: Delete. - * rs6000/sysv4.h: Move necessary powerpc.h definitions to here. - * rs6000/netware.h: and here. - * rs6000/win-nt.h: and here. - - * rs6000/rs6000.c (processor_target_table, 620): Do not affect - MASK_POWERPC64. - (rs6000_override_options): Ignore flag_pic for AIX. - (rs6000_immed_double_const): Delete. - (u_short_cint_operand): Don't assume 32-bit CONST_INT. - (reg_or_u_short_operand): Don't assume 32-bit CONST_INT. - (num_insns_constant): mask64_operand() is 2 insns. - (logical_operand): Don't assume 32-bit CONST_INT. - (non_logical_cint_operand): Don't assume 32-bit CONST_INT. - (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit. - (mask_constant): HOST_WIDE_INT parameter. - (non_and_cint_operand): Delete. - (mask64_operand): New function. - (and64_operand): New function. - (function_arg_advance): DImode arguments do not need special - alignment when 64-bit. - (function_arg): Likewise. - (setup_incoming_varargs): Reverse reg_size assignment. - (print_operand): HOST_WIDE_INT second parameter. - (print_operand, 'B'): New case. - (print_operand, 'M'): Fix typo in lossage string. - (print_operandm 'S'): New case. - (rs6000_stack_info): Reverse reg_size assignment. Use total_raw_size - to compute AIX push_p. Use reg_size to compute {cr,lr}_save_offset. - (rs6000_output_load_toc_table): Reverse init_ptr assignment. Use - TARGET_64BIT not TARGET_POWERPC64. Convert fprintf to fputs. - Load GOT highpart, don't add it. Add lowpart with {cal|la}. - (rs6000_allocate_stack_space): Use {cal|la}. - (output_epilog): Use {cal|la} - (output_function_profiler): Add call glue to mcount call. - Load GOT highpart, don't add it. Add lowpart with {cal|la}. - - * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64. - (STACK_BOUNDARY): Depend on TARGET_32BIT. - (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type. - (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT. - (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'. Replace 'S' with - 64-bit mask operand. - (RS6000_SAVE_TOC): Depend on TARGET_32BIT. - (STACK_SAVEAREA_MODE): New macro. - (LEGITIMATE_CONSTANT_P): DImode okay for 64bit. - (LEGITIMIZE_RELOAD_ADDRESS): New macro. - (RTX_COSTS, AND/IOR/XOR): Reflect current machine description. - (ASM_FILE_START): Emit 64-bit ABI directive. - (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit. - (PREDICATE_CODES): Add "and64_operand" and "mask64_operand". - Delete "non_and_cint_operand". "input_operand" includes CONST_DOUBLE. - - * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask. - Restore define_splits. - (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint. - (floatsidf2_internal, floatunssidf2_internal2): Likewise. - Do not specify base register operand mode. - (floatsidf2_loadaddr): Do not specify base register operand mode. - (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base - register; do not specify mode. Remove !TARGET_POWERPC64 final - constraint. - (floatsidf2_load): Do not specify base register operand mode. Remove - !TARGET_POWERPC64 final constraint. - (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify - base register operand mode. - (adddi3): Split large constants early. - (absdi3): Shift by 63, not 31. - (*mulsidi3_ppc64): New pattern. - (rotldi3): Add masking combiner patterns. - (anddi3): Add rldic{r,l} masking. Remove split of large constants - because PPC insns zero-extend. - (iordi3, xordi3): Split large constants early. - (movsi matcher): Remove S and T constraints. - (movsf const_double): create SImode constant from TARGET_DOUBLE. - (movdf_hardfloat32): Add default abort() case. - (movdf easy_fp_const): create DImode constant from TARGET_DOUBLE. - (movdi): Remove 64-bit constant generator. Try to convert - CONST_DOUBLE to CONST_INT. Handle TOC memory constants. - (movdi_32): Add default abort() case. - (movdi_64): Add numerous ways to split 64-bit constants. - Make catch-all define_split more optimal and never FAIL. - (movti_ppc64): Add default abort() case. - (allocate_stack): Remove operand modes. Use Pmode. - (restore_stack_block): Remove operand modes. Generate Pmode - temporary. - (save_stack_nonlocal, restore_stack_nonlocal): Generate Pmode - temporary. Save area is double Pmode. - (call_indirect_aix64, call_value_indirect_aix64): New patterns. - (call, call_value): Do not specify address operand mode. Choose - appropriate AIX ABI. - (*call_local64, *ret_call_local64): New patterns. - (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns. - (*ret_call_nonlocal_aix32): Use call_value_indirect for REG. - (compare): Materialize DImode truthvalues. - -Thu Jun 4 01:26:57 1998 Craig Burley <burley@gnu.org> - - * expr.c (safe_from_p): Avoid combinatorial explosion - over duplicate SAVE_EXPRs by ensuring we never recurse - on one that has already been visited. - -Thu Jun 4 00:54:21 1998 Graham <grahams@rcp.co.uk> - - * loop.c (check_dbra_loop): Initialise final_value before - normalizing the loop. - -Wed Jun 3 20:00:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_for_value_p): New arguments out and - reloadnum. Changed all callers. - -1998-06-03 Ulrich Drepper <drepper@cygnus.com> - - * system.h: Add _() and N_() macros in preparation for gettext. - -Wed Jun 3 11:02:24 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-common.c (check_format_info): Put back check for C9x `hh' - length modifier. Warn about %n format writing into const. Remove - obsolete comment. - (format_char_info): Fix comments. - - * configure.in: Set float_format to m68k for all m68k targets that - do not override LONG_DOUBLE_TYPE_SIZE. - * config/float-m68k.h: New file. - -Tue Jun 2 23:14:01 1998 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize): Remove debug messages accidentally left in - with the previous change. - -Tue Jun 2 22:46:08 1998 Richard Henderson <rth@cygnus.com> - - * expr.c (store_expr): Revert stray patch associated with - 1998-05-23 commit. - -Tue Jun 2 21:59:01 1998 Richard Henderson <rth@cygnus.com> - - * jump.c (rtx_unsafe_p): New function. - (jump_optimize): Use it on if/then/else transformations and - conditional move transformations. - -Tue Jun 2 22:50:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST - or VAR-- == CONST construct a proper mask if VAR is a bitfield. - Cope with CONST being out of range for the bitfield. - -Tue Jun 2 22:28:31 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> - - * expr.c (emit_move_insn_1): When moving complex values in several - steps, emit a CLOBBER to show the destination dies. - -Tue Jun 2 22:17:26 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (site.exp): Use the object testsuite directory as - the temporary directory. - - * expr.c (expand_expr, case ADDR_EXPR): Handle taking the - address of an ADDRESSOF rtx. - -1998-06-02 Mike Stump <mrs@wrs.com> - - * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. - * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. - * i960.md (ret, flush_register_windows): Define. - (nonlocal_goto): Likewise. Nested function nonlocal gotos don't - work yet. - * tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Document new macro. - -Tue Jun 2 14:02:38 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (divsi3, udivsi3, modsi3, umodsi3): Enable, and work - around an OSF/1 library bug wrt sign-extension of inputs. - -Tue Jun 2 13:02:44 1998 Richard Henderson <rth@cygnus.com> - - * vax/netbsd.h (DWARF2_UNWIND_INFO): Must be undef, not defined 0. - -Mon Jun 1 03:44:03 1998 Catherine Moore <clm@cygnus.com> - - * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define. - - * varasm.c (assemble_variable): Augment alignment warning. - -Mon Jun 1 12:14:28 1998 Michael Meissner <meissner@cygnus.com> - - * config/fp-bit.c (_fp{add,div}_parts): Return correct IEEE result - in the presence of IEEE negative 0's. - -Sun May 31 16:11:41 1998 John Wehle (john@feith.com) - - * reload.c (find_reloads): Record the existing mode if - operand_mode == VOIDmode before replacing a register with - a constant. - * i386.md (tstsi, tsthi, tstqi, tstsf, tstdf, tstxf): Set - i386_compare_op1 to const0_rtx for the benefit of the - conditional move patterns. - (movsicc, movhicc, movsfcc, movdfcc, movxfcc, movdicc): Rewrite - based on suggestions from Jim Wilson. - -Sun May 31 00:44:02 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun May 31 00:34:17 1998 Bruce Korb <korbb@datadesign.com> - - * Makefile.in (fixinc.sh): Update rules again. - -Sun May 31 00:27:47 1998 Jeffrey A Law (law@cygnus.com) - - * extend.texi: Bring back reference to trampoline paper. - -Sun May 31 00:22:34 1998 Ulrich Drepper <drepper@cygnus.com> - - * Makefile.in (USER_H): Add stdbool.h. - * ginclude/stdbool.h: New file. - -Fri May 29 01:48:25 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (thread_jumps): Do not look at the NOTE_LINE_NUMBER - of a non-note insn. - - * gcse.c (pre_delete): Fix code to determine the mode of - the reaching pseudo register. - -Fri May 29 01:07:28 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * Makefile.in (GEN): Add gencheck - (STAGESTUFF): Add tree-check.h and gencheck. - -Fri May 29 00:57:37 1998 Bruce Korb <korbb@datadesign.com> - - * Makefile.in (cstamp-h.in): Remove before trying to recreate. - (fixinc.sh): Set some additional environment variables before - calling mkfixinc.sh. - -Thu May 28 12:57:05 1998 Jeffrey A Law (law@cygnus.com) - - * reload.c (find_reloads): Do not force a reloads of match_operators. - -Thu May 28 10:22:22 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.h (remove_handler): Add new prototype. - * except.c (remove_handler): New function to remove handlers - from an exception region. - * flow.c (find_basic_blocks_1): Remove handlers from regions when - handler label is deleted; remove exception regions with no handlers. - -Thu May 28 09:36:39 1998 Michael Meissner <meissner@cygnus.com> - - * except.h (rtx): Define rtx type correctly if needed. - * function.h (rtx): Ditto. - (tree): Define tree type correctly if needed. - - * c-pragma.c (toplevel): Include rtl.h. - - * stor-layout.c (toplevel): Move include of rtl.h before - except.h. - - * Makefile.in (c-pragma.o): Add except.h, rtl.h dependencies. - (tree.o): Add except.h dependency. - -Wed May 27 22:02:40 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c: Revert accidental checkin. - - * configure.lang: Fix thinko when adding a definition for - target_alias to the Makefile. - -Wed May 27 02:50:00 1998 Catherine Moore (clm@cygnus.com) - - * config/sparc/lb1spc.asm (.rem and .urem): Replace - routines. - -Wed May 27 02:48:31 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_gen_constant): Rework to eliminate uninitialized - variable warnings. Don't generate scratch registers if only - counting insns. - (find_barrier): Eliminate unused variable SRC. - -1998-05-27 Manfred Hollstein <manfred@s-direktnet.de> - - * toplev.h (rtx_def): Provide global declaration to avoid - `limited scope' warnings. - -Tue May 26 23:47:52 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * Makefile.in (gencheck.o): Use HOST_CC. - * i386/t-mingw32: New file. - * configure.in (i386-*-mingw32*): Use. - -Tue May 26 07:31:04 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (bad_signed_byte_operand): New predicate function. - * arm.h (PREDICATE_CODES): Add it to the list. - * arm.md (*extendqi[sh]i_insn): Split any addresses that ldrsb - can't handle. - (define_split): Two new splits for above insns. - - * arm.c: Include toplev.h. - (arm_override_options): Add parentheses around use of tune_flags. - (arm_split_constant): Remove unused variable. - (arm_gen_constant, arm_gen_movstrqi, add_constant): Likewise. - (output_func_prologue, arm_expand_prologue): Likewise. - (arm_canonicalize_comparison): Make I unsigned; rework constants - accordignly. Add missing paratheses around << operation. - (arm_rtx_costs): Correctly parenthesise MULT costs. Add a DEFAULT - clause. - ({load,store}_multiple_sequence): Initialize BASE_REG. - (select_dominance_cc_mode): Add DEFAULT clauses. - (broken_move): Return zero if the destination is not a register. - (arm_reorg): Move unused REGNO declaration into the dead code. - * arm.h (CANONICALIZE_COMPARISON): Ensure OP1 is updated. - -Mon May 25 22:49:56 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon May 25 11:56:24 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon May 25 14:00:13 1998 Dave Brolley <brolley@cygnus.com> - - * cpperror.c (v_cpp_message): Remove static prototype. - * cpplib.c (v_cpp_message): Move prototype to cpplib.h. - * cpplib.h (v_cpp_message): Add protoptype. - (stdarg.h,varargs.h): Needed for v_cpp_message prototype. - -Sun May 24 20:36:15 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun May 24 02:08:57 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1998-05-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.h: Declare more functions used in macros. - (REG_CLASS_CONTENTS): Completely embrace initializer. - * m68k.md (adddi3, subdi3): Add abort call to avoid warning - about returning no value. - * cse.c (find_best_addr): Declare p and found_better only if - needed. - * dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0. - * dwarfout.c (string_length_attribute): #if 0 away. - * function.c (expand_function_end): Define varible blktramp only - if needed. - * jump.c (find_insert_position): Define only if !HAVE_cc0. - * loop.c (combine_givs_p): Define variable tem only if needed. - * real.c: Comment out unused functions eabs, eround, - e{24,53,64,113}toasc and eiinfin. - - -Sat May 23 23:44:53 1998 Alexandre Oliva <oliva@dcc.unicamp.br> - - * Makefile.in (boostrap2-lean, bootstrap3-lean, - bootstrap4-lean): New targets. - -Sat May 23 23:35:14 1998 Jeffrey A Law (law@cygnus.com) - - * warn_summary, test_summary: Moved into the contrib directory. - -1998-05-23 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): Move down to the end - of the Makefile. - (FLOAT_H_TEST): Likewise. - (ENQUIRE): Likewise. - (float.h-nat): Likewise. - (float.h-cross): Likewise. - (enquire): Likewise. - (enquire.o): Likewise. - (stmp-int-hdrs): Fix comment about enquire; depend upon gfloat.h. - (stmp-headers): Move actions to stmp-int-hdrs, retaining only a - no-op. - (FLOAT_H): Remove old float.h-nat version; move current definition - to CROSS_FLOAT_H location. - (all.cross): Remove comments about enquire stuff. - - * Makefile.in (all.cross): Swap $(LIBGCC) and $(STMP_FIXPROTO). - (rest.encap): Likewise. - (libgcc2.ready): Depend upon $(STMP_FIXPROTO) - - * toplev.h (tree_node): Provide global declaration to avoid - `limited scope' warnings. - -Sat May 23 23:23:35 1998 Robert Lipe <robertl@dgii.com> - - * test_summary: Display section breaks for each entry - in a multilibbed target's output. - -1998-05-23 Richard Henderson <rth@cygnus.com> - - * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the - offset's mode is not ptr_mode, convert it. - -1998-05-22 Jason Merrill <jason@yorick.cygnus.com> - - * fold-const.c (ssize_binop): New fn. - * tree.h: Declare it. - -Fri May 22 03:42:05 1998 Richard Earnshaw (rearnsha@arm.com) - - * genextract.c (print_path): Handle zero-length path as a special - case. - -Fri May 22 01:38:07 1998 Hans-Peter Nilsson <hp@axis.se> - - * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. - -Fri May 22 00:57:00 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> - - * final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value. - (shorten_branches, final_scan_insn): Test value of - JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it - is defined. - * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes. - * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1. - * arm/tcoff.h: Likewise. - * i386/386bsd.h: Likewise. - * i386/freebsd-elf.h: Likewise. - * i386/freebsd.h: Likewise. - * i386/netbsd.h: Likewise. - * i386/ptx4-i.h: Likewise. - * i386/sysv4.h: Likewise. - * pa/pa.h: Likewise. - * rs6000/linux.h: Likewise. - * rs6000/rs6000.h: Likewise. - * sh/sh.h: Likewise. - * sparc/sp64-elf.h: Likewise. - * v850/v850.h: Likewise. - * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0. - * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic). - -Thu May 21 19:50:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (gen_add3_insn): New function. - (fixup_match_2): Use it instead of calling gen_addsi3. - -Thu May 21 23:09:50 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (gencheck): Depend on HOST_LIBDEPS. - - * alias.c (rtx_equal_for_memref_p): Handle SCRATCH as a memory - address. - -Thu May 21 20:18:13 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * Makefile.in (TREE_H): Add tree-check.h. - (tree-check.h, gencheck): New targets. - * gencheck.c: New file. - * tree.c (tree_check, tree_class_check): New functions. - * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. - (TYPE_CHECK, DECL_CHECK): Define. - Modify all access macros to use generated checking macros. - -Wed May 20 23:44:28 EDT 1998 John Wehle (john@feith.com) - - * acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag. - * configure.in: Check for it. - * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Use it. - * final.c (uid_align, uid_shuid, label_align): Make static. - (label_align): Change type to struct label_alignment pointer. - (LABEL_TO_ALIGNMENT, shorten_branches): Update due to type change. - (LABEL_TO_MAX_SKIP): Define. - (LABEL_ALIGN_MAX_SKIP, LOOP_ALIGN_MAX_SKIP, - LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Provide defaults. - (shorten_branches): Record the maximum bytes to skip when - aligning a label. - (final_scan_insn): Use the maximum bytes to skip when aligning a label - if ASM_OUTPUT_MAX_SKIP_ALIGN is available. - * i386.h (LOOP_ALIGN_MAX_SKIP, - LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. - * i386.c (override_options): i386_align_jumps and i386_align_loops - default to 4 if ASM_OUTPUT_MAX_SKIP_ALIGN is available. - * invoke.texi: Document new i386 align-loops and align-jumps behavior. - -1998-05-21 Mark Mitchell <mmitchell@usa.net> - - * cplus-dem.c (do_type): Handle volatile qualification. - -Thu May 21 12:23:17 1998 Per Bothner <bothner@cygnus.com> - - * function.c (init_function_start): Don't call emit_line_note if - lineno is 0. (Can happen when compiling Java .class files.) - -Thu May 21 19:50:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_for_value_p): Fix RELOAD_FOR_INPUT - end of lifetime and RELOAD_FOR_OUTPUT start of lifetime. - -Thu May 21 19:32:27 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (nonzero_bits): For paradoxical subregs, take - LOAD_EXTENDED_OP into account. - -Thu May 21 11:51:15 1998 Dave Brolley <brolley@cygnus.com> - - * configure.in (extra_c_objs): add prefix.o. - (extra_cxx_objs): extra objects for C++ with cpplib. - * configure: Regenerate. - - * c-tree.h: (get_directive_line): Different prototype for cpplib. - (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. - - * c-lex.h: (get_directive_line): Not needed here for cpplib. - - * c-lex.c: (yy_cur,yy_lim,yy_get_token): Move to c-common.c. - (GET_DIRECTIVE_LINE): Move to c-common.c and rename to get_directive_line. - - * c-common.c (parse_in,parse_options,cpp_token): Declare for cpplib. - (yy_cur,yy_lim,yy_get_token,get_directive,line): Moved here from c-lex.c - -Thu May 21 09:04:42 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gengenrtl.c (type_from_format, accessor_from_format): Change - type of parameter `c' from `char' to `int'. - -Wed May 20 22:28:34 1998 Jeffrey A Law (law@cygnus.com) - - * warn_summary, test_summary: New scripts from - Kaveh Ghazi and Alexandre Oliva respectively. - - * gcse.c (current_function_calls_longjmp): Declare. - -1998-05-20 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (base_type_die): Use int_size_in_bytes. - -Wed May 20 01:11:02 1998 Doug Evans (devans@cygnus.com) - Jeff Law (law@cygnus.com) - - * Global CSE and constant/copy propagation. - * Makefile.in (OBJS): Add gcse.o - (STAGESTUFF): Add *.gcse. - (gcse.o): Add dependencies. - (mostlyclean): Remove *.gcse and */*.gcse. - * gcse.c: New file. - * loop.c (loop_optimize): Move call to init_alias_analysis. - * recog.c (validate_replace_src): New function. - * toplev.c (gcse_dump): New global variable. - (flag_gcse, gcse_time): Likewise. - (compile_file): Initialize gcse_time and clean out the gcse dump - file if necessary. - (rest_of_compilation): Call gcse_main as requested. Dump RTL - after gcse if requested. - (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse - dumps for -da. - * gcc.texi: Add gcse related internal documentation. - * invoke.texi: Note new command line options for gcse. - * tm.texi: Document AVOID_CCMODE_COPIES. - * mips.h (AVOID_CCMODE_COPIES): Define. - -Tue May 19 22:31:20 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (deduced.h): Only run scan-types if $(SYSTEM_HEADER_DIR) - exists. - (stmp-fixproto): Simlarly for running fixproto. - * cross-make (SYSTEM_HEADER_DIR): Now $(tooldir)/sys-include. - -Tue May 19 19:08:52 1998 Jim Wilson <wilson@cygnus.com> - - * config/mips/mips.c (double_memory_operand): Accept any MEM during - reload when TARGET_64BIT. - -Tue May 19 18:21:25 1998 Jim Wilson <wilson@cygnus.com> - - Finish incomplete change started by Kenner. - * configure.in (*-*-linux-gnu*): Delete NO_STAB_H from xm_defines. - (powerpcle-*-cygwin32): Delete xm_defines. - * final.c, mips-tfile.c, xcoffout.c, config/mips/mips.c: Use - HAVE_STAB_H instead of NO_STAB_H. - * config/xm-linux.h (NO_STAB_H): Delete. - (HAVE_STAB_H): Undefine. - * config/i386/xm-go32.h (NO_STAB_H): Delete. - -1998-05-19 Jim Wilson <wilson@cygnus.com> - - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Ignore - LANG_TYPE trees with DECL_SOURCE_LINE of 0. - -Tue May 19 15:07:54 1998 Todd Vierling <tv@netbsd.org> - - * arm/netbsd.h: Ensure DWARF2_UNWIND_INFO is undefined. - -Tue May 19 17:19:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_reg_free_for_value_p): New function. - (allocate_reload_reg, choose_reload_regs): Use it. - -Tue May 19 11:51:00 EDT 1998 Andrew MacLeod (amacleod@cygnus.com) - - * except.c (expand_start_catch): Correct logic for when to - generate a new handler label, and when to use the old one. - -Tue May 19 11:08:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (print-rtl.o): Depend on bitmap.h. - (dbxout.o): Depend on toplev.h. - ($(SCHED_PREFIX)sched.o): Likewise. - ($(out_object_file)): Likewise for system.h and toplev.h. - (cppmain.o): Depend on gansidecl.h. - (cpplib.o): Likewise. - (cpperror.o): Likewise. - (cppexp.o): Likewise. - (cpphash.o): Likewise. - (cppalloc.o): Likewise. - (fix-header.o): Depend on cpplib.h and cpphash.h. - (scan-decls.o): Depend on gansidecl.h. - - * basic-block.h (free_regset_vector): Add prototype. - - * cccp.c (check_precompiled): Mark parameter `fname' with - ATTRIBUTE_UNUSED. - (do_assert): Likewise for `op' and `keyword'. - (do_unassert): Likewise. - (do_line): Likewise for `keyword'. - (do_error): Likewise for `op' and `keyword'. - (do_warning): Likewise. - (do_ident): Likewise for `keyword'. - (do_pragma): Likewise for `limit', `op' and `keyword'. - (do_sccs): Likewise. - (do_if): Likewise for `keyword'. - (do_elif): Likewise. - (do_else): Likewise. - (do_endif): Likewise. - - * collect2.c (getenv): Remove redundant prototype. - (collect_exit, collect_execute, dump_file): Likewise. - (dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST. - (dump_prefix_list): Hide prototype and definition. - - * sparc.c: Include toplev.h. - (intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (symbolic_memory_operand): Likewise. - (sp64_medium_pic_operand): Likewise. - (data_segment_operand): Likewise. - (text_segment_operand): Likewise. - (splittable_symbolic_memory_operand): Likewise. - (splittable_immediate_memory_operand): Likewise. - (eq_or_neq): Likewise. - (normal_comp_operator): Likewise. - (noov_compare_op): Likewise. - (v9_regcmp_op): Likewise. - (v8plus_regcmp_op): Likewise. - (extend_op): Likewise. - (cc_arithop): Likewise. - (cc_arithopn): Likewise. - (small_int): Likewise. - (uns_small_int): Likewise. - (clobbered_register): Likewise. - (legitimize_pic_address): Likewise. - (delay_operand): Likewise. - (sparc_builtin_saveregs): Remove unused variable `stdarg'. - - * sparc.h (order_regs_for_local_alloc, eligible_for_return_delay, - sparc_issue_rate, v8plus_regcmp_p): Add prototypes. - - * sparc.md (cmpdi_v8plus): Add abort for default case in switch. - - * cppalloc.c: Include gansidecl.h. - - * cpperror.c: Include stdarg.h/varargs.h and gansidecl.h. - (cpp_file_line_for_message): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - (v_cpp_message): New function. - (cpp_message): Use it. Also convert to variable arguments. - (cpp_fatal): Likewise. - (cpp_pfatal_with_name): Constify parameter `name'. - - * cppexp.c: Move gansidecl.h before cpplib.h. - * cpphash.c: Likewise. - * cpphash.h (hashf, delete_macro): Add prototypes. - - * cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before - cpplib.h. Don't include errno.h. - (update_path): Add arguments to prototype. - (cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro, - cpp_print_containing_files): Remove redundant prototypes. - (cpp_hash_cleanup, add_import, append_include_chain, - make_assertion, path_include, initialize_builtins, - initialize_char_syntax, finclude, validate_else, comp_def_part, - lookup_import, redundant_include_p, is_system_include, - read_name_map, read_filename_string, open_include_file, - check_macro_name, compare_defs, compare_token_lists, - eval_if_expression, change_newlines): Add prototype arguments. - (hashf): Remove redundant prototype. - (read_token_list, free_token_list, safe_read, xcalloc, savestring, - conditional_skip, skip_if_group): Add prototype arguments. - (fdopen): Remove redundant prototype. - (do_define, do_line, do_include, do_undef, do_error, do_pragma, - do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs, - do_once, do_assert, do_unassert, do_warning): Add prototype arguments. - (struct directive): Add prototype arguments to function pointer - member `func'. - (handle_directive): Add missing arguments to call to `do_line'. - (do_include): Mark parameters `unused1' and `unused2' with - ATTRIBUTE_UNUSED. - (do_line): Likewise for `keyword' and new parameters `unused1' and - `unused2'. - (do_error): Likewise for `keyword'. - (do_warning): Likewise. Also add missing argument `pfile' in call - to cpp_pedwarn. - (do_once): Mark parameter `keyword', `unused1' and `unused2' with - ATTRIBUTE_UNUSED. - (do_ident): Likewise for `keyword', `buf' and `limit'. - (do_pragma): Likewise. Also add missing arguments in call to do_once. - (do_sccs): Mark parameter `keyword', `buf' and `limit' with - ATTRIBUTE_UNUSED. - (do_if): Likewise for `keyword'. - (do_elif): Likewise. - (eval_if_expression): Likewise for `buf' and `length'. - (do_xifdef): Likewise for `unused1' and `unused2'. - (do_else): Likewise for `keyword', `buf' and `limit'. - (do_endif): Likewise. - (parse_name): Add missing argument `pfile' in call to cpp_pedwarn. - (cpp_handle_options): Remove superfluous NULL argument in call to - cpp_fatal. - (cpp_handle_options): Likewise. - (do_assert): Mark parameter `keyword', `buf' and `limit' with - ATTRIBUTE_UNUSED. - (do_unassert): Likewise. - (cpp_print_file_and_line): Add missing argument `pfile' in call to - cpp_file_line_for_message. - (v_cpp_error): New function. - (cpp_error): Use it. Also accept variable arguments. - (v_cpp_warning): New function. - (cpp_warning): Use it. Also accept variable arguments. - (cpp_pedwarn): Accept variable arguments. - (v_cpp_error_with_line): New function - (cpp_error_with_line): Use it. Accept variable arguments. - (v_cpp_warning_with_line): New function. - (cpp_warning_with_line): Use it. Accept variable arguments. Hide - definition. - (cpp_pedwarn_with_line): Accept variable arguments. - (cpp_pedwarn_with_file_and_line): Likewise. - (cpp_error_from_errno): Constify parameter `name'. Add missing - argument `pfile' in call to cpp_file_line_for_message. - (cpp_perror_with_name): Constify parameter `name'. - - * cpplib.h: Define PARAMS() in terms of PROTO(). - (fatal): Remove redundant prototype. - (cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line, - cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line, - cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name, - cpp_fatal, cpp_message, cpp_pfatal_with_name, - cpp_file_line_for_message, cpp_print_containing_files): Add - arguments to prototypes. - (scan_decls, cpp_finish): Add prototypes. - - * cppmain.c: Include gansidecl.h. - (main): Remove unused variable `i'. - - * dbxout.c: Include toplev.h. - - * demangle.h (do_tlink, collect_execute, collect_exit, - collect_wait, dump_file, file_exists): Add prototype. - - * dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide - prototype and definition. - (gen_unspecified_parameters_die): Don't assign results of call to - function new_die() to unused variable `parm_die'. - (dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED. - (dwarf2out_define): Likewise for `lineno' and `buffer'. - - * dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide - prototype and definition. - (output_die): Add prototype arguments to function pointer arg. - (output_unspecified_parameters_die): Mark parameter `arg' with - ATTRIBUTE_UNUSED. - - * except.c (output_exception_table_entry): Remove unused variable - `eh_entry'. - - * except.h (expand_fixup_region_start, expand_fixup_region_end): - Add prototypes. - - * expr.c (do_jump_by_parts_equality_rtx): Remove prototype. - - * expr.h (do_jump_by_parts_equality_rtx): Add prototype. - - * fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h - before cpplib.h, include cpphash.h, remove redundant prototype of - cpp_fatal, don't define `const', add a prototype for `fatal'. - (cpp_file_line_for_message): Add missing arguments `pfile'. - (v_cpp_message): New function. - (cpp_message): Use it. - (v_fatal): New function. - (fatal, cpp_fatal): Use it. - (cpp_pfatal_with_name): Constify parameter `name'. - - * flow.c (free_regset_vector): Remove redundant prototype. - - * function.c (round_down): Wrap prototype and definition with - macro ARGS_GROW_DOWNWARD. - (record_insns): Wrap prototype and definition with - defined (HAVE_prologue) || defined (HAVE_epilogue). - - * gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros. - - * gen-protos.c: Include gansidecl.h. - (hashf): Don't make it static, constify parameter `name'. - - * genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match - specifier %s in calls to function `fatal'. - - * haifa-sched.c: Include toplev.h. - (find_rgns): Remove unused variable `j'. - - * integrate.c (note_modified_parmregs): Mark parameter `x' with - ATTRIBUTE_UNUSED. - (mark_stores): Likewise. - - * jump.c (mark_modified_reg): Likewise. - - * output.h (insn_current_reference_address): Add prototype. - (eh_frame_section): Likewise. - - * print-rtl.c: Include bitmap.h. - - * reload1.c (reload): Wrap variables `note' and `next' in macro - PRESERVE_DEATH_INFO_REGNO_P. - (forget_old_reloads_1): Mark parameter `ignored' with - ATTRIBUTE_UNUSED. - (choose_reload_regs): Remove unused variable `in'. - (reload_cse_invalidate_mem): Mark parameter `ignore' with - ATTRIBUTE_UNUSED. - (reload_cse_check_clobber): Likewise. - - * rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype. - (mark_elimination): Fix typo in prototype. - - * scan-decls.c: Include gansidecl.h. - - * tree.h (using_eh_for_cleanups, supports_one_only): Add prototype. - -Mon May 18 22:37:33 1998 Jeffrey A Law (law@cygnus.com) - - * function.c (identify_blocks): Fix thinko when setting the - block number for NOTE_INSN_BLOCK_END. - -Mon May 18 15:30:42 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/lib1funcs.asm: Add .text pseudo op to start of - ___udivsi3. - - * config/v850/lib1funcs.asm: Fix .size pseudo ops to use three - underscores for the prefixes to the names of the maths functions. - - * dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE. Add - comment explaining why. - -Mon May 18 13:20:23 1998 Richard Henderson <rth@cygnus.com> - - * tree.h (TYPE_SIZE_UNIT): New. - (struct tree_type): Add size_unit member. - * stor-layout.c (layout_type): Initialize it. - * expr.c (get_inner_reference) [ARRAY_REF]: Use it. - * tree.c (size_in_bytes, int_size_in_bytes): Likewise. - -Mon May 18 12:07:37 1998 Richard Earnshaw (rearnsha@arm.com) - - * stor-layout.c (layout_record): Fix off-by-one error when checking - length of the TYPE_BINFO vector. - -Mon May 18 10:59:23 1998 Nick Clifton <nickc@cygnus.com> - - * dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a - function parameter passed in memory. - -Mon May 18 09:02:09 1998 Robert Lipe <robertl@dgii.com> - - * dwarfout.h, dwarf2out.h, dbxout.h, sdbout.h: New files. - Prototypes for externally used functions in respective C files. - * dwarfout.c, dbxout.c, dwarf2out.c, sdbout.c, toplev,c, - final.c: Include above files. - * Makefile.in (toplev.o): Add dependency for above four headers. - (final.o): Likewise. - (dwarfout.o, dbxout.o, dwarf2out.o, sdbout.o): Depend on four - respective header files. - -Mon May 18 01:23:33 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (TARGET_TOOLPREFIX): No longer define. - (AR_FOR_TARGET, RANLIB_FOR_TARGET): Define to use versions in - the build tree if they exist. - (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Update - appropriately. - (objdir): Let configure substitute value. - (FLOAT_H): Let configure select a pre-built version from the - config subdir. - * build-make (INSTALL_TARGET, ALL): Disable, no longer needed. - * configure.in: Substitute for objdir. - - * Makefile.in (build_canonical, host_canonical): Let configure - substitute values for these variables. - * configure.in: Substitute for build_canonical, host_canonical - and target_subdir in generated Makefile. - - * output.h (find_basic_blocks): Declare. - (free_basic_block_vars, set_block_num, life_analysis): Likewise. - - * Makefile.in (BISON): Use bison from the build tree if it exists. - (FLEX): Similarly. - -Mon May 18 00:08:19 1998 Nick Clifton <nickc@cygnus.com> - - * gcc.c (SWITCH_CURTAILS_COMPILATION): Definition. - (DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c. - (process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan - command line arguments to see if an executable is not being - created, and if so - do not append the suffix. - - * tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new - driver macro. - -Sun May 17 23:59:45 1998 John Wehle (john@feith.com) - - * i386.h (ALIGN_DFmode): Delete. - (CONSTANT_ALIGNMENT): Define. - * varasm.c (force_const_mem): Use it. - -Sun May 17 19:31:05 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_conditional_branch): Clear cmp_code after - using it with swap_condition, not before. - -Sun May 17 13:44:32 1998 Jim Wilson <wilson@cygnus.com> - - * alias.c (mode_alias_check): Delete. - (true_dependence, anti_dependence, output_dependence): Revert April 21 - change. - -Sun May 17 08:45:21 1998 Krister Walfridsson <cato@df.lth.se> - - * toplev.c (output_lang_identify): Enable prototype and definition. - -Sun May 17 01:12:27 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat May 16 23:20:32 1998 Richard Henderson <rth@cygnus.com> - - * alpha/osf.h (HAVE_STAMP_H): Define. - * alpha.c: Use it. - * alpha/netbsd.h, alpha/netbsd-elf.h: New files. - * configure.in (alpha*-*-netbsd*): New. - Based on patches from Paul H. Anderson <pha@pdq.com>. - - * configure.in (alpha*-*-linux-*): Kill xm_defines. - (alpha*-*-linux-gnulibc1*) [fixincludes]: Define. - * alpha/xm-linux.h: Remove file. - -Sat May 16 18:32:45 1998 Doug Evans <devans@canuck.cygnus.com> - - * dbxout.c (dbxout_parms): If mode of type of parameter living - in memory doesn't match mode of DECL_RTL, make big endian correction. - -Fri May 15 21:40:06 1998 John Wehle (john@feith.com) - - * i386.md (movdi-1, movdi): Rewrite based on SI move patterns. - -Fri May 15 18:55:22 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.h (BINFO_SIZE, TYPE_BINFO_SIZE): New macros. - * stor-layout.c (layout_record): Set it. - -Fri May 15 18:49:30 1998 Mark Mitchell <mmitchell@usa.net> - - * toplev.c (rest_of_compilation): Don't defer nested functions. - -Fri May 15 17:42:52 1998 Bob Manson <manson@charmed.cygnus.com> - - * config/rs6000/rs6000.c (rs6000_stack_info): Align the stack bottom - to an 8-byte boundary if info_ptr->fpmem_p. - -Fri May 15 17:36:11 1998 Bill Moyer <ttk@cygnus.com> - - * loop.c (basic_induction_var): Added test preventing - CCmode parameter passed to convert_modes(). - -Fri May 15 17:26:18 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * expr.c (expand_expr, case EXPR_WITH_FILE_LOCATION): Save/restore - input_filename and lineno around expand_expr call. Set them to values - in WFL before expand_expr call. - -Fri May 15 12:44:57 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> - - * stor-layout.c (set_sizetype): Set TYPE_NAME on bitsizetype. - -Fri May 15 07:20:03 1998 Mark Mitchell <mmitchell@usa.net> - - * fold-const.c (constant_boolean_node): New function. - (fold): Use it. - -Fri May 15 11:21:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (gen_shl_and): Don't sign extend constant for kind two. - Abort if trying to split kind 3 or 4 outside of combine. - -Fri May 15 01:47:37 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (print_operand, case 'x'): Use HOST_WIDE_INT_PRINT_HEX. - -Fri May 15 01:42:45 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * objc/Make-lang.in (OBJC_O): Add missing exeext. - (libobjc.a, runtime-info.h): Likewise. - -Fri May 15 01:29:39 1998 John Wehle (john@feith.com) - - * i386.h (DATA_ALIGNMENT): Define. - -Fri May 15 05:35:37 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (delete_output_reload): Ignore single USE that - was emitted for the pseudo use of this INSN. - If the no reference to REG between OUTPUT_RELOAD_INSN and INSN - remains, we can always delete OUTPUT_RELOAD_INSN. - -Thu May 14 18:38:50 1998 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads): Don't penalize SCRATCH output reload. - -Thu May 14 15:10:30 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (expr.o): Remove dependency on deleted modemap.def file. - -Thu May 14 16:30:47 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * eh-common.h: New file for basic EH data structures. - * except.h: Various prototypes and structures for NEW_EH_MODEL - * function.h (struct function): Add a struct eh_stack for the catch - clause stack. - * except.c (gen_exception_label): New function to generate an - exception label. - (push_eh_entry): Use gen_exception_label() and init 'label_used' field. - (push_entry): New function to push an existing entry onto a stack. - (receive_exception_label): New function to emit the code required - at the start of all catch blocks. - (struct func_eh_entry): New structure for maintaining handlers - associated with EH regions. - (new_eh_region_entry): New function to register an EH region. - (add_new_handler): New function to register a handler with a region. - (get_new_handler): Creates anew handler entry for registering. - (find_func_region): New function to convert a NOTE eh region number - to an Eh region index. - (get_first_handler): New function to get the first handler in a region. - (clear_function_eh_region): New function to release memory. - (duplicate_handlers): New function to duplicate a list of handlers. - (expand_eh_region_end): Create a new region entry node as well. - (expand_leftover_cleanups): Call receive_exception_label() and - register the cleanup as a handler to the current region. - (expand_start_catch): New function to start a catch clause. - (expand_end_catch): New function to end a catch clause. - (expand_start_all_catch): restructure to not do the equivilent of - what expand_start_catch() does now. Push the exception region being - handled onto the catch stack. - (output_exception_table_entry): Issue an entry for each handler - associated with a region. - (set_exception_lang_code): New function for setting the language code. - (set_exception_version_code): New function to set the version number. - (output_exception_table): Output version and language codes. - (find_exception_handler_labels): Find handler labels using new scheme. - (is_exception_handler_label): New function, returns 1 if label is - present as a handler in some exception region. - (check_exception_handler_labels): Use the new scheme. - (init_eh_for_function): Initialize the catch stack. - (save_eh_status): Save the catch stack. - (restore_eh_status): Restore the catch stack. - (scan_region): Don't remove unreferenced handler label. Flow does it. - (get_reg_for_handler): New function to get the eh_context pointer - passed by __throw. - (expand_builtin_eh_stub): Changes required for NEW_EH_MODEL only. - * final.c (final_scan_insn): With NEW_EH_MODEL, add EH table - entry when processing END region rather that START region. - * flow.c (find_basic_blocks_1): Find all potential handler regions - now that we don't automatically know what the labels might be. - Let scan_region() remove unreferenced EH BEGIN/END labels. - * integrate.c (get_label_from_map): Put inlined labels onto the - permanent obstack since we dont know which ones might be exception - labels. - (save_for_inline_copying): Make new copies of all the handlers. - (expand_inline_function): Make new copies of all the handlers. - * libgcc2.c: Remove local struct decls, and include eh-common.h. - (find_exception_handler): With NEW_EH_MODEL the first matching - region we find is the right one. Add eh_info as a new parameter. - (__throw): Pass eh_info to find_exception_handler. Set handler - and pass use different regs under NEW_EH_MODEL. - -Thu May 14 12:58:21 1998 Jim Wilson <wilson@cygnus.com> - - * i960.h (hard_regno_mode_ok): Changed to function from array of - unsigned. - (HARD_REGNO_MODE_OK): Call function instead of testing bit. - * i960.c (hard_regno_mode_ok): Changed to function from array of - unsigned. - -Thu May 14 08:41:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (remove_replacements): New function. - * reload.h (remove_replacements): Declare. - * reload1.c (choose_reload_regs): Disable some reloads that - belong to inherited reloads. - -Thu May 14 02:17:17 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (scan_loop): Don't call move_moveables for optimize_size. - - * reload1.c (merge_assigned_reloads): When merging, reset - reload_spill_index for the eliminated reload. - -Wed May 13 17:51:13 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_insns): Fix merge goof. - -1998-05-13 Jim Wilson <wilson@cygnus.com> - - * varasm.c (make_decl_rtl): Revert April 1 change. - * alpha/alpha.h, alpha/win-nt.h, arm/arm.h, i386/unix.h, i960/i960.h, - m68k/linux.h, pa/pa.h, sparc/sparc.h, vax/vax.h (ASM_OUTPUT_MI_THUNK): - Get function name from the SYMBOL_REF in the DECL_RTL, not from - DECL_ASSEMBLER_NAME. - * i386/winnt.c (gen_stdcall_suffix): Comment for questionable use of - DECL_ASSEMBLER_NAME. - -Wed May 13 13:09:19 1998 Jim Wilson <wilson@cygnus.com> - - * i386.c (notice_update_cc, output_float_compare): Disable - TARGET_CMOVE support. - -Wed May 13 15:28:59 1998 Michael Meissner <meissner@cygnus.com> - Jeff Law <law@cygnus.com> - - * rtlanal.c (find_reg_note): Ignore notes that are not on on - insns of class 'i'. - (find_regno_note): Likewise. - - * Makefile.in (stor-layout.o): Depend on except.h - (varasm.o, function.o): Likewise. - (expr.o): Depend on except.h, modemap.def and hard-reg-set.h. - - * Makefile.in (HOST_RTL): Add $(HOST_PREFIX)bitmap.o. - (rtl.o, emit-rtl.o): Add dependency on bitmap.h. - ($(HOST_PREFIX_1)rtl.o): Likewise. - ($(HOST_PREFIX_1)bitmap.o): New host object. - * emit-rtl.c (toplevel): Include bitmap.h. - (gen_rtx): Handle 't' and 'b' nodes. - * print-rtl.c (print_rtx): Handle printing NOTE_INSN_LIVE notes. - Print block number for block begin/end notes. Print 't' type - nodes as a pointer. Know that the 3rd argument of live range - start/stop notes is really a range_info rtx. If type is 'b', print - out argument as a bitmap. - * rtl.c: Include bitmap.c. - (copy_rtx): Copy tree nodes as is. Copy bitmaps if type is 'b'. - (note_insn_name): Add NOTE_INSN_RANGE_{START,END}, NOTE_INSN_LIVE. - * rtl.def (RANGE_LIVE): New node to hold live information while we - recalculate the basic blocks. - (RANGE_REG, RANGE_INFO): New rtl types for live range splitting. - (RANGE_VAR): New node, to hold information saved in symbol node for New - communicating live range information to the debug output functions. - * rtl.h (rtunion_def): Add rttree and rtbit fields. - (XBITMAP, XTREE): New accessor macros. - (NOTE_LIVE_INFO): Overload NOTE_SOURCE_FILE for NOTE_INSN_LIVE notes. - (NOTE_RANGE_INFO): Similarly for NOTE_INSN_RANGE_{START,END} notes. - (NOTE_BLOCK_LIVE_RANGE_BLOCK): Define. - (NOTE_INSN_RANGE_START, NOTE_INSN_RANGE_END, NOTE_INSN_LIVE): New notes. - (RANGE_LIVE_{BITMAP,ORIG_BLOCK}): New accessor macros. - (RANGE_REG_{SYMBOL,BLOCK}_NODE, RANGE_VAR_*): New accessor macros. - (RANGE_INFO_*): Likewise. - * sched.c (sched_analyze): Keep live range start/stop notes. - (unlink_other_notes): Likewise. - * haifa-sched.c (sched_analyze): Keep live range start/stop notes. - (unlink_other_notes): Likewise. - * tree.h (BLOCK_LIVE_RANGE_{START,END,VAR_FLAG}): New accessor macros. - (BLOCK_LIVE_RANGE_FLAG): Likewise. - (DECL_LIVE_RANGE_RTL): Likewise. - (struct tree_block): Add live_range_flag, live_range_var_flag, - live_range_start and live_range_end. - (struct tree_decl): Add live_range_rtl field. - * gengenrtl.c (type_from_format): Handle 'b' and 't'. - (accessor_from_format): Likewise. - - * haifa-sched.c (schedule_block): Make verbose output line up. - Also add a blank line in printing the individual ready lists. - -Wed May 13 15:43:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h. - (c-lex.o): Depend on output.h. - (c-common.o): Likewise. - (stmt.o): Likewise. - (calls.o): Likewise. - (integrate.o): Depend on toplev.h. - (regclass.o): Depend on output.h. - (final.o): Depend on reload.h. - - * c-common.c: Include output.h. - (check_format_info): Remove unused variable `integral_format'. - - * c-decl.c (print_lang_decl): Mark parameters `file', `node' and - `indent' with ATTRIBUTE_UNUSED. - (print_lang_type): Likewise. - (maybe_build_cleanup): Likewise for parameter `decl'. - (copy_lang_decl): Likewise for parameter `node'. - - * c-lang.c: Include c-tree.h, c-lex.h and toplev.h. - (lang_print_xnode): Mark parameters `file', `node' and `indent' - with ATTRIBUTE_UNUSED. - (lookup_interface): Likewise for parameter `arg'. - (is_class_name): Likewise. - (maybe_objc_check_decl): Likewise for parameter `decl'. - (maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and - `reflexive'. - (maybe_objc_method_name): Likewise for parameter `decl'. - (build_objc_string): Likewise for parameters `len' and `str'. - - * c-lex.c: Include output.h. - - * c-lex.h (position_after_white_space): Correct typo in prototype. - - * c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else, - c_expand_end_cond, init_iterators): Add prototypes. - - * caller-save.c (set_reg_live): Mark parameters `reg' and `setter' - with ATTRIBUTE_UNUSED. - - * calls.c: Include output.h. - - * cccp.c (pipe_closed): Mark parameter `signo' with - ATTRIBUTE_UNUSED. - - * combine.c: Move inclusion of expr.h to after insn-config.h. - - * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define - as empty, rather define as ((void)0). - - * sparc.c (sparc_check_64): Add braces around ambiguous `else'. - Add parentheses around assignment used as truth value. - - * cplus-dem.c (squangle_mop_up): Change return type to void. - (internal_cplus_demangle): Remove unused parameter `options'. - All callers changed. - (cplus_demangle_opname): Remove function wide variable `int i' and - replace with `size_t i' at each location where it is used. - (cplus_demangle_opname): change type of `i' from int to size_t. - - * cppexp.c (right_shift): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - - * cpphash.c (cpp_lookup): Likewise. - (cpp_hash_cleanup): Likewise. - - * cpplib.c (parse_name): Add a prototype and make it static. - (null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - (null_cleanup): Likewise for parameters `pbuf' and `pfile'. - (macro_cleanup): Likewise for parameter `pfile'. - (file_cleanup): Likewise. - - * cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read, - cpp_read_check_assertion, skip_rest_of_line): Add prototypes. - - * crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data, - __DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED. - - * cse.c (cse_check_loop_start): Mark parameter `set' with - ATTRIBUTE_UNUSED. - - * dbxout.c (flag_minimal_debug, have_used_extensions, - source_label_number): Move inside macro wrapper check against - defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO). - - * dwarf2out.c (gen_entry_point_die): Hide prototype and definition. - - * except.h (doing_eh): Provide prototype. - - * expr.c: Move inclusion of expr.h to after insn-config.h. - - * final.c: Include reload.h. - (shorten_branches): Cast the first argument of bzero to char *. - - * fix-header.c (cpp_print_containing_files): Mark parameter - `pfile' with ATTRIBUTE_UNUSED. - (cpp_fatal): Likewise. - - * flow.c (find_basic_blocks_1): Cast the first argument of bzero - to char *. - - * genattrtab.c (make_length_attrs): Change the type of variable - `i' from int to size_t. - (zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED. - (one_fn): Likewise. - - * genextract.c (main): When generating insn-extract.c, mark - variable `junk' with ATTRIBUTE_UNUSED. - - * gengenrtl.c (gencode): When generating genrtl.c, cast the first - argument of bzero to char*. - - * integrate.c: Include toplev.h. - - * libgcc2.c: Wrap `struct exception_table' and - `find_exception_handler' in macro DWARF2_UNWIND_INFO. - - * objc/Make-lang.in (objc-act.o): Depend on toplev.h. - - * objc/objc-act.c: Include toplev.h. - (lang_print_xnode): Mark parameters `file', `node' and `indent' - with ATTRIBUTE_UNUSED. - (finish_protocol): Likewise for parameter `protocol'. - - * output.h (declare_weak): Add prototype. - (decode_reg_name): Don't wrap with TREE_CODE macro. - (assemble_alias): Add prototype. - - * regclass.c: Include output.h. - - * reload.h (reloads_conflict): Add prototype. - - * rtl.h (print_rtl_single, mark_elimiation, reg_class_subset_p, - output_func_start_profiler): Add prototypes. - - * rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with - ATTRIBUTE_UNUSED. - - * scan-decls.c: Include scan.h. - - * scan.h (recognized_function, recognized_extern): Add prototypes. - - * stmt.c: Include output.h. - - * toplev.c (error_for_asm, warning_for_asm): Remove prototypes. - (output_lang_identify): Hide prototype and definition. - (float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED. - (pipe_closed): Likewise. - - * toplev.h (count_error, strip_off_ending, error_for_asm, - warning_for_asm): Add prototypes. - -Wed May 13 12:54:19 1998 Michael Meissner <meissner@cygnus.com> - - * toplev.c (rest_of_compilation): "Charge" final for any time - doing various cleanup operations after finishing compilation - of a function. - - * flow.c (dump_flow_info): Also print number of sets and - whether or not the pseudo is a user variable. - - * flow.c (reg_n_max): New global variable. - * regclass.c (allocate_reg_info): Keep reg_n_max up to date. - Delete regno_max variable. - * regs.h (REG_N_CHECK): Define. - (REG_N_REFS, REG_N_SETS, REG_N_DEATHS): Use REG_N_CHECK. - (REG_N_CHANGES_SIZE, REG_N_CALLS_CROSSED, REG_LIVE_LENGTH): Likewise. - (REGNO_FIRST_UID, REGNO_LAST_UID, REGNO_LAST_NOTE_UID): Likewise. - -Wed May 13 12:54:19 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de> - - * acconfig.h (ENABLE_CHECKING): Undefine. - * configure.in (--enable-checking): New option. - -Wed May 13 08:52:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (merge_assigned_reloads): Can merge - RELOAD_FOR_INPUT_ADDRESS and RELOAD_FOR_OTHER_ADDRESS even - if RELOAD_FOR_INPUT with the same reload_reg_rtx is present. - -Tue May 12 20:05:57 1998 Jim Wilson <wilson@cygnus.com> - - * collect2.c (main): Ignore do_collecting when COLLECT_EXPORT_LIST. - -Wed May 13 03:23:45 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (gen_reload): Create REG_EQUIV notes. - -Tue May 12 22:21:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload): Fix check for USEs to use code of pattern. - (choose_reload_regs): Remove dead variable use_insn. - -Tue May 12 14:04:49 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (DBX_CONTIN_LENGTH): Reduce to 3000 bytes. - -Tue May 12 15:16:02 1998 Michael Meissner <meissner@cygnus.com> - - * haifa-sched.c (HAIFA_INLINE): Define to be __inline unless - already defined. - (find_insn_{,mem_}list): Use HAIFA_INLINE, not __inline. - (insn_{unit,issue_delay}): Ditto. - (blockage_range): Ditto. - (actual_hazard{,_this_instance}): Ditto. - (schedule_unit): Ditto. - (potential_hazard): Ditto. - (insn_cost): Ditto. - (swap_sort): Ditto. - (queue_insn): Ditto. - (birthing_insn_p): Ditto. - (adjust_priority): Ditto. - (get_block_head_tail): Ditto. - (init_rgn_data_dependences): Ditto. - -Tue May 12 10:27:54 1998 Klaus Kaempf <kkaempf@progis.de> - - * alpha/vms.h (COMMON_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON): Define. - -Tue May 12 11:44:14 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon. - -Tue May 12 11:38:31 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/mips.md (dslot): Move after definition of "cpu" - attribute. Handle r3900 case. - -Tue May 12 10:21:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h: Define the STRINGIFY macro here. - * protoize.c: Not here. - * gengenrtl.c (DEF_RTL_EXPR): Use the STRINGIFY macro. - -Tue May 12 00:47:33 1998 John Wehle (john@feith.com) - - * varasm.c (assemble_variable): Compute the alignment of the data - earlier so that both initialized and uninitialized variables are - effected by DATA_ALIGNMENT. - * tm.texi (DATA_ALIGNMENT): Updated appropriately. - -Mon May 11 19:57:58 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c: Prototype static functions. - -Mon May 11 17:43:03 1998 Jim Wilson <wilson@cygnus.com> - - * regmove.c (fixup_match_2, find_matches, regmove_profitable): - Add explanatory comments. - - * sparc.h (SPARC_INCOMING_INT_ARG_FIRST): Support TARGET_FLAT. - -Mon May 11 17:24:27 1998 Richard Henderson <rth@cygnus.com> - - * sparc.md (ffsdi2): Disable. Simplify the expression as well. - -Mon May 11 13:30:44 1998 Jim Wilson <wilson@cygnus.com> - - * varasm.c (make_decl_rtl): Disable April 1 change. - -Mon May 11 09:14:41 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (alpha-*-linux-gnu): Undo lossage from gcc2 merge. - -Mon May 11 08:24:18 1998 Richard Henderson <rth@cygnus.com> - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '`'. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_truncdfsi2, fix_truncsfsi2): New patterns and - related define_splits. Also add peepholes for SImode reload - plus sign_extend lossage. - -Mon May 11 09:33:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * genattr.c: Include stdarg.h/varargs.h. Change function - `fatal' to use variable arguments instead of faking it with - integer parameters. Provide a prototype which also - checks the format specifiers using ATTRIBUTE_PRINTF_1. - - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * genoutput.c: Likewise. Similarly for function `error'. - -Sun May 10 02:27:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * acconfig.h (HAVE_VOLATILE): Insert stub for autoconf. - * alocal.m4 (GCC_C_VOLATILE): New autoconf test. - * configure.in: Use GCC_C_VOLATILE. - * system.h (volatile): Define as empty if no volatile support is - available. - -Sun May 10 01:21:43 1998 Jeffrey A Law (law@cygnus.com) - - * genemit.c (output_add_clobbers): Removed unused variable 'i' from - generated fucntion. - -Sat May 9 02:02:15 1998 Richard Henderson <rth@cygnus.com> - - * loop.c (get_condition): Don't combine when either compare is MODE_CC. - * alpha.c (alpha_emit_conditional_branch): New function. Taken from - the body of beq; additionally set the mode of the branch to CCmode for - FP compares and not fast_math. - (alpha_emit_conditional_move): Always use a compare insn for FP - when not fast_math, as well as setting CCmode on the cmov. - * alpha.md (beq, bne, blt, et al): Call alpha_emit_conditional_branch. - - * machmode.h (COMPLEX_MODE_P): New macro. - -Sat May 9 01:53:23 1998 Richard Henderson <rth@cygnus.com> - - * haifa-sched.c (print_exp): Fix typo. - -Fri May 8 21:48:50 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Fri May 8 18:23:08 1998 Michael Meissner <meissner@cygnus.com> - - * final.c (final_scan_insn): Call fatal_insn instead of abort if - we could not split an insn when required to. - - * m32r.md ({add,sub}di3): Add define_splits and appropriate low - level insns. - (peepholes): Disable peepholes that call dead_or_set_p. - (movsi): Rewrite to handle addresses better after last change. - Add define_split to split load of addresses in large/medium modes. - (prologue): Call m32r_expand_prologue. - (movsi_{push,pop}): Generators for push/pop. - (movsi): Support PRE_{INC,DEC}, POST_INC. - (mov{di,df}): Rewrite. Always split the insns. - (movsf): Add define_split to get register load in correct mode. - (cmp_ne_small_const_insn): Use 'N' instead of 'S' constraint. - (attributes): Rewrite attributes so that type indicates both the - type and the length of the insn directly. - (all insns): Change to use new type attributes. - (debug): New attribute to convey whether -mdebug was used. - (opt_space): New attribute to convey whether -Os was used. - (function units): Loads are 3 cycles, not 2. Better classify all - insns into short/long. - (load/store/extend insns): Add separate case for load/store - indirect operations without an offset. - (divsi3): Division is a long operation, not short. - - * m32r.h (LEGITIMATE_LO_SUM_ADDRESS_P): Do not allow LO_SUM for - modes > 1 word. - (GO_IF_MODE_DEPENDENT_ADDRESS): LO_SUM is now mode dependent. - (CONST_OK_FOR_LETTER_P): Make 'N' handle reverse 8 bit compares. - (EXTRA_CONSTRAINT): Remove 'S' special support. Add 'U' for - operands with PRE_{INC,DEC}, POST_INC. - (FUNCTION_PROFILER): Call abort instead of doing nothing. - (GO_IF_LEGITIMATE_ADDRESS): Allow PRE_{INC,DEC}, POST_INC of - SImode variables. - (gen_split_move_double): Declare. - (EXTRA_CONSTRAINT): Add 'T' for memory reference with no offset. - - * m32r.c (gen_split_move_double): Fix typo. Also, don't call - emit_move_insn, build up SET's directly. - (toplevel): Include system.h, not stdio.h. - (move_double_src_operand): Allow any DF or DI mode constant. - (gen_split_move_double): Split moves of DI or DF values into the - appropriate moves, loads, or stores. Don't handle use of auto - inc/dec if using dead index. Do handle overlapping moves, etc. - (m32r_frame_info): Remove prologue_size field. - (m32r_compute_frame_size): Don't calculate prologue size. - (m32r_output_function_prologue): Change to pretty much a NOP. - (m32r_expand_prologue): Expand prologue as a series of INSNs. - (m32r_print_operand): Add support for PRE_{INC,DEC}, POST_INC. - (m32r_print_operand_address): Ditto. - -Fri May 8 14:13:21 1998 H.J. Lu (hjl@gnu.org) - - * reload1.c (emit_reload_insns): When performing expensive - optimizations, do not output the last reload insn if OLD is - not the dest of NSN and is in the src and is clobbered by INSN. - -Fri May 8 09:47:29 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (genrtl.o): Depend on system.h. - * gengenrtl.c (gencode): When creating genrtl.c, have it - include system.h. - -Fri May 8 10:57:33 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/t-linux: Remove extra stuff already included in - config/t-linux. - -Fri May 8 09:53:24 Paul Eggert <eggert@twinsun.com> - - * fixinc.wrap: Renamed from fixinc.math. Put wrapper around - curses.h if it contains `typedef char bool;', as suggested by - Manfred Hollstein <manfred@s-direktnet.de>. - - * configure.in: Rename fixinc.math to fixinc.wrap. - -Thu May 7 19:26:34 1998 Jim Wilson <wilson@cygnus.com> - - * gcc.c (read_specs): Handle missing blank line at end of specs file. - - * i386.md (movsicc, movhicc, movsicc_1, movhicc_1, movsfcc_1, - movdfcc_1): Disable. - -Thu May 7 15:39:14 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in (enable_threads): Rename to enable_threads_flag before - main loop. Set enable_threads to enable_threads_flag inside main - loop. - -Thu May 7 17:38:03 1998 Michael Meissner <meissner@cygnus.com> - - * r6000/eabi.asm (__eabi): Restore LR in case __eabi is called - multiple times. - -Thu May 7 14:26:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_FUNC_VFPRINTF_DOPRNT): New macro. - - * configure.in: Add a call to GCC_FUNC_VFPRINTF_DOPRNT. - (AC_CHECK_HEADERS): Remove unused check for varargs.h,sys/varargs.h. - (AC_CHECK_FUNCS): Remove unused check for vprintf. - - * Makefile.in: Add support for linking in vfprintf.c and doprint.c. - (cccp.o): Depend on gansidecl.h. - (cexp.o): Likewise. - - * cccp.c: Convert from using PRINTF_ALIST/PRINTF_DCL to VPROTO as - per the rest of gcc source. - * cexp.y: Likewise. Include gansidecl.h and remove all code made - redundant. - - * cccp.c: Remove checks for HAVE_VPRINTF and the associated code - used when vfprintf is missing. - * cexp.y: Likewise. - * gcc.c: Likewise. - * genattrtab.c: Likewise. - * mips-tfile.c: Likewise. - * toplev.c: Likewise. - - * vfprintf.c: New file. - * doprint.c: New file. - -Thu May 7 10:18:41 1998 Jeffrey A Law (law@cygnus.com) - - * config/linux.h (ASM_COMMENT_START): Remove from here, - * config/linux-aout.h (ASM_COMMENT_START): and here, - * config/i386/linux.h (ASM_COMMENT_START): to here, - * config/i386/linux-aout.h (ASM_COMMENT_START): and here. - * config/i386/linux-oldld.h (ASM_COMMENT_START): Define - here as '#' too. - -Thu May 7 10:55:59 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.md (adddi3, subdi3): Properly negate the DImode - constant. - -Wed May 6 22:32:37 CDT 1998 Robert Lipe <robertl@dgii.com> - - * Makefile.in (dwarfout.o) Add toplev.h dependency. - * dwarfout.c, i386.c: Include toplev.h - * toplev.h: (pfatal_with_name) Add prototype. - -Wed May 6 19:02:29 1998 Jason Merrill <jason@yorick.cygnus.com> - - * Makefile.in: Fix .SUFFIXES. - -Wed May 6 19:31:32 1998 Alan Modra <alan@spri.levels.unisa.edu.au> - - * config/linux.h (ASM_COMMENT_START): Define as "#". - * config/linux-aout.h (ASM_COMMENT_START): Likewise. - -Wed May 6 15:51:39 1998 Jim Wilson <wilson@cygnus.com> - - * objc/Make-lang.h (objc-parse.o): Add toplev.h dependency. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. - - * toplev.c: Include toplev.h. - * Makefile.in (c-common.o, c-convert.o, c-decl.o, c-iterate.o, - c-lex.o, c-parse.o, c-pragma.o, c-typeck.o, calls.o, convert.o, - dwarf2out.o, except.o, expr.o, final.o, fold-const.o, function.o, - hash.o, profile.o, real.o, reg-stack.o, regclass.o, reload.o, - reload1.o, stmt.o, stor-layout.o, tlink.o, tree.o, varasm.o): Add - toplev.h dependency. - - * mips/mips.c (save_restore_insns): Change FRAME_POINTER_REGNUM to - HARD_FRAME_POINTER_REGNUM. - - * expr.c (target_temp_slot_level): Delete duplicate definition. - -Wed May 6 16:46:01 1998 Jeffrey A Law (law@cygnus.com) - - * stmt.c (mark_seen_cases): Make it have external linkage again. - * expr.h (mark_seen_cases): Add declaration, but only when tree.h - has been included. - - * haifa-sched.c (print_value, case SUBREG): Fix typo. - - * i386.c (output_387_binary_op): Add some braces to avoid warnings. - * i386.h (REG_CLASS_CONTENTS): Similarly. - - * toplev.c (-fsched-max): Delete flag. - (-fsched-interblock-max-blocks,-fsched-interblock-max-insns): Likewise. - * haifa-sched.c: Remove -fsched-max-N, -fsched-interblock-max-blocks-N - and -fsched-interblock-max-insns-N support. Remove INTERBLOCK_DEBUG - conditionals. - - * haifa-sched.c (find_rgns): Correctly handle reducible loops with - inner loops which are not reducible. - - * loop.c (regs_match_p): Fix typo in prototype. - - * regmove.c (try_auto_increment): Wrap declaration inside an - #ifdef AUTO_INC_DEC. - -Wed May 6 17:07:47 1998 Michael Meissner <meissner@cygnus.com> - - * final.c (output_operand_lossage): Call fatal with the operand - lossage message instead of calling abort. - -Wed May 6 15:37:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-common.c: Convert to using ctype macros defined in system.h. - * c-lex.c: Likewise. - * cccp.c: Likewise. - * collect2.c: Likewise. - * rs6000.c: Likewise. - * cpplib.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * gen-protos.c: Likewise. - * pexecute.c: Likewise. - * protoize.c: Likewise. - * rtl.c: Likewise. - * scan.c: Likewise. - * stmt.c: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. - -Wed May 6 14:44:14 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/r3900.h (SUBTARGET_ASM_DEBUGGING_SPEC) : - Replace -gdwarf-2 with -g0. - -Wed May 6 11:43:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (mips-tfile.o, mips-tdump.o): Depend on system.h. - * mips-tdump.c: Include system.h, remove redundant headers. - * mips-tfile.c: Likewise. Also, convert all ctype function calls - to calls of the macro versions defined in system.h. - - * objc/Make-lang.in (objc-act.o): Depend on system.h. - * objc/objc-act.c: Include system.h, remove redundant headers. - -Wed May 6 11:21:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in (AC_CHECK_FUNCS): Add isascii. - (GCC_NEED_DECLARATIONS): Add atof. - - * system.h: Provide prototypes for abort, atof, atol and sbrk here. - * rtl.c, rtl.h, toplev.c, tree.h: Not here. - -Wed May 6 10:52:49 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h: Wrap time.h and sys/file.h in autoconf checks. - Provide default definitions for O_RDONLY and O_WRONLY here. - - * cccp.c, cpplib.c, fix-header.c, gcc.c, protoize.c: Not here. - -1998-05-06 Mark Mitchell <mmitchell@usa.net> - - * tree.h (IS_EXPR_CODE_CLASS): Remove bogus '3'. - -Wed May 6 06:35:38 1998 Robert Lipe <robertl@dgii.com> - - * toplev.h: New file. Protypes for functions in toplev.c. - * tree.h, rtl.h: Deleted protos for functions in toplev.c. - * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c, - c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c, - convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c, - function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c, - reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c, - varasm.c: include it. - -Wed May 6 01:09:01 1998 Jeffrey A Law (law@cygnus.com) - Jim Wilson (wilson@cygnus.com) - - * haifa-sched.c (find_rgns): In no_loops case, fix test for leaf - blocks. Check for 1 successor which is the EXIT_BLOCK. - - * haifa-sched.c (find_rgns): Detect unreachable blocks, including - unreachable loops with more than one block. - -Wed May 6 08:22:24 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * fix-header.c (write_rbrac): Add "abort" to functions which need to - be protected. - -Wed May 6 00:09:36 1998 Jeffrey A Law (law@cygnus.com) - - * Check in merge from gcc2. See ChangeLog.12 for details. - -Tue May 5 14:33:49 1998 Jim Wilson <wilson@cygnus.com> - - * c-common.c (scan_char_table): Separate 's' and 'c'. 'c' does not - accept 'a' flag. 'S' does accept 'a' flag. - (check_format_info): When pedantic, warn for m/C/S/a/A formats, - and `a' flag. - - * elf64.h (MULTILIB_DEFAULTS): Move definition after mips.h include. - -Tue May 5 10:50:39 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.h: Declare functions from m68k.c used in - macros and machine description. - (ASM_OUTPUT_LONG_DOUBLE): Always use `l' flag in print format for - long values. - (ASM_OUTPUT_FLOAT): Likewise. - (ASM_OUTPUT_FLOAT_OPERAND): Likewise. - -Tue May 5 01:28:12 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.def: Add NAMESPACE_DECL. - * dwarfout.c (type_ok_for_scope): Ignore NAMESPACE_DECLs for now. - * dwarf2out.c (push_decl_scope): Likewise. - (scope_die_for): Likewise. - * tree.c (decl_function_context): Use TREE_CODE_CLASS to determine - how to get next context level. - -Tue May 5 01:43:16 1998 Jim Wilson <wilson@cygnus.com> - - * i386.c (output_fix_trunc): Add code to emulate non-popping DImode - case. - -Tue May 5 01:15:06 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.h (ADDITIONAL_REGISTER_NAMES): Add "er" registers. - - * reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes - for any insns skipped at the start of a block because they were - redundant. - -Mon May 4 20:23:51 1998 Jim Wilson <wilson@cygnus.com> - - * alpha.h (DBX_CONTIN_LENGTH): Decrease to 3000. - -1998-05-04 Ulrich Drepper <drepper@cygnus.com> - - * c-common.c (format_char_info): Add new field hhlen. - (print_char_table, scan_char_table, time_char_table): Initialize - hhlen field appropriately. - (char_format_info): Recognize hh modifier and lookup correct char - table entry. - -Mon May 4 19:15:29 1998 Jim Wilson <wilson@cygnus.com> - - * expr.c (expand_expr, case INDIRECT_REF): Don't optimize string - reference if this is a store. - -Mon May 4 17:25:17 1998 Richard Henderson <rth@cygnus.com> - - * sparc.c (output_move_quad): Fix typo in mov_by_64 argument. - -Sun May 3 23:57:25 1998 Robert Lipe <robertl@dgii.com> - - Make UnixWare 7 bootstrap support work with final shipping product. - * configure.in: (i[34567]86-*-sysv5): append, not overwrite, xm_file. - Pick up xm-siglist and xm-alloca. - (xm_defines): Add USG so dbxout will build. - * configure: Regenerate. - -Sun May 3 13:51:34 PDT 1998 Richard Henderson <rth@cygnus.com> - - Support for official Sparc V9 ABI: - * sparc.c (sparc_override_options): Force stack bias off for !arch64. - Care for flag_pcc_struct_return default. - (output_move_quad): Rewrite to move by halves on v9 and in the - proper direction. - (move_quad_direction): New function. - (output_fp_move_quad): Use it to determine the direction of copy. - (function_arg_slotno): Return -1 for FP reg overflow as well. - (function_arg_record_value*): New functions. - (function_arg): Use them. Streamline unprototyped parameter passing. - (function_arg_pass_by_reference): Pass TCmode by reference. - (function_value): New function. - * sparc.h (PTRDIFF_TYPE, SIZE_TYPE): For -pedantic's sake, don't use - long long in 64-bit mode. - (RETURN_IN_MEMORY): v9 returns structs < 32-bytes in regs. - (DEFAULT_PCC_STRUCT_RETURN): Make the default detectable. - (BASE_RETURN_VALUE_REG): Consider complex float types for arch64. - (BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG): Likewise. - (BASE_INCOMING_ARG_REG): Likewise. - (FUNCTION_VALUE): Call function_value. - (FUNCTION_OUTGOING_VALUE, LIBCALL_VALUE): Likewise. - * sparc.md (movdi_sp32_v9): Disable for arch64. - (movsf, movdf, movtf): Sort all ulternatives using fp regs first. - (call_value_address_sp64): Remove register class constraints. - (call_value_symbolic_sp64): Likewise. - (nonlocal_goto): Pass label reg directly to goto_handlers. Constrain - v9 case to 32-bit constants. - (goto_handler_and_restore_v9): Provide a version for arch64. - * sparc/linux64.h (SIZE_TYPE, PTRDIFF_TYPE): Remove private definition. - * sparc/sp64-aout.h (TARGET_DEFAULT): Turn on stack bias. - (CPP_PREDEFINES): New. - * sparc/sp64-elf.h: Likewise. - (PREFERRED_DEBUGGING_TYPE): Dwarf2. - (ASM_OUTPUT_DWARF2_ADDR_CONST): New. - * sparc/sysv4.h (SIZE_TYPE, PTRDIFF_TYPE): Undo svr4.h's changes. - -Sat May 2 17:47:17 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat May 2 01:37:29 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads): Emit USEs to mark where a pseudo - is reloaded with the MEM of its stack slot. - * reload1.c (cannot_omit_stores): Delete. - (reload): Don't initialize it. - Don't apply avoid_return_reg logic to USEs. - When done, remove USEs that have a REG_EQUAL note on them. - (emit_reload_insns): Handle case where we have inherited a MEM. - (choose_reload_regs): Likewise. - (delete_output_reload): Don't use cannot_omit_stores. - -Thu Apr 30 18:59:03 1998 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (cpp.info, gcc.info): Put -o option before input file. - -Thu Apr 30 16:57:34 1998 Michael Meissner <meissner@cygnus.com> - - * haifa-sched.c (print_{exp,value}): Various changes to make the - debug output easier to read. Also, use only one buffer, and make - sure the buffer we are passed in doesn't overflow. - (safe_concat): Concatenate to a buffer without overflow. - -Thu Apr 30 16:57:34 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * haifa-sched.c (alloc_{INSN,EXPR}_LIST): Make static to agree - with the prototype. - -Wed Apr 29 21:45:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sched.c (new_insn_dead_notes): Check if the register was - used in the original instruction. - * haifa-sched.c (new_insn_dead_notes): Likewise. - -Wed Apr 29 13:46:03 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (scope_die_for): If could not find proper scope, - check for and handle tagged type with incorrect TYPE_CONTEXT. - -Wed Apr 29 15:34:40 1998 John Carr <jfc@mit.edu> - - * calls.c (expand_call): Fix recognition of C++ operator new. - - * alias.c (mode_alias_check): Disable type based alias detection. - -Wed Apr 29 15:06:42 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL, - ASM_OUTPUT_WEAK_ALIAS): Define. - * config/mips/elf64.h: Same. - * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, - ASM_WEAKEN_LABEL): Removed. - -Wed Apr 29 10:53:29 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * calls.c (expand_call): Bump the length limit on the specially - recognized function names to 17. - -Tue Apr 28 17:53:33 1998 Jim Wilson <wilson@cygnus.com> - - * ginclude/stddef.h: Add check for _MACHINE_ANSI_H_ for BSD/OS - when undefining macros at the end. - - * expr.c (expand_builtin, case BUILT_IN_MEMSET): Break if either - val or len has TREE_SIDE_EFFECTS set. - - * sparc.md (mulsidi3): Call const v8plus and v8plus routines. - (mulsidi3_v8plus, const_mulsidi3_v8plus): Delete asterisk from name. - (smuldi3_highpart): Call const v8plus routine. - (smulsi3_highpart_v8plus): Renamed from smulsidi3_highpart_v8plus. - (const_smulsi3_highpart_v8plus): New pattern. - (smulsi3_highpart_sp32): Renamed from smulsidi3_highpart_sp32. - (umulsidi3): Call const v8plus routine. - (umulsi3_highpart): Handle const before v8plus. Call const v8plus - routine. - (umulsi3_highpart_v8plus): Renamed from umulsidi3_highpart_v8plus. - (umulsi3_highpart_sp32): Renamed from umulsidi3_highpart_sp32. - -Tue Apr 28 08:55:26 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (*_oper{and|ator}): Change enum arguments and return - values to int, so they can be prototyped even in files that don't - include rtl.h. - ({small,large}_insn_p): Ditto. - (m32r_select_cc_mode): Ditto. - (gen_compare): Ditto. - (function_arg_partial_nregs): Ditto. - (m32r_setup_incoming_varargs): Ditto. - (init_reg_tables): Add prototype. - (m32r_frame_info): Add prolog_size field. - (m32r_compute_frame_size): Calculate the size of the prologue. - (m32r_first_insn_address): Return prologue size. - (m32r_output_function_prologue): Calculate frame size before - printing out information. Print out the prologue size. - - * m32r.h: Prototype all functions in m32r.c. - (FIRST_INSN_ADDRESS): Declare, returning prologue size. - - * m32r.md (bcc functions): Cast enum's to int. - - * m32r.c (conditional_move_operand): Silence a debug message. - ({small,long}_insn): New predicates. - - * m32r.h (TARGET_M32R): New macro. - (PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn. - (HAIFA_P): Define as 1/0 depending on whether the Haifa scheduler - was selected. - (ISSUE_RATE): Define as 2. - - * m32r.md (insn_size): New attribute. - ({,rev_}branch_insn): Add .s qualifier to branches believed to be - short. - (m32r): New attribute. - - * configure.in (enable_haifa): Switch m32r to Haifa by default. - * configure: Regenerate. - - (Changes from Nick Clifton <nickc@cygnus.com>) - * m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint to perfoirm - the equivalent of a negated 'I' constraint. - (PRESERVE_DEATH_INFO_REGNO_P): Define in order to allow peephole - optimisation to work. - - * m32r.md (cmp_ne_small_const_insn): Use 'S' constriant rather - than 'I' since the value is negated. - (peephole): Add peephole optimisation to cope with optimization of - divide and subtracts of the same operands. - - * m32r.c zero_and_one, emit_cond_move): Add support for MVFC. - * m32r.h: Ditto. - * m32r.md: Ditto. - - * m32r.h (PREDICATE_CODES): Add declaration of machine specific - predicates. - -Tue Apr 28 07:25:53 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (libgcc2.ready): Revert last patch (Apr 24). - -Mon Apr 27 18:39:47 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Check against - frame_pointer_rtx not FRAME_POINTER_REGNUM. - -Mon Apr 27 18:36:28 1998 Jim Wilson <wilson@cygnus.com> - - * reg-stack.c: Revert last patch (Apr 20). - (convert_regs): Set insn to PREV_INSN (next) after do while loop. - - * m68k/lb1sf68.asm (Laddsf$3): Fix typos in mcf5200 exg code. - - * loop.c (check_dbra_loop): New locals jump, first_compare, and - compare_and_branch. Call get_condition to set first_compare. - Set compare_and_branch to number of compare/branch instructions. - Replace PREV_INSN (PREV_INSN (loop_end)) with first_compare. - Replace '2' with compare_and_branch. - -Mon Apr 27 15:53:30 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * cplus-dem.c (demangle_qualified): Replace missing else. - -Mon Apr 27 20:22:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (gen_ashift_hi): Don't make SUBREG of a SUBREG. - -Mon Apr 27 18:23:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (sh_expand_prologue, sh_expand_epilogue): - If TARGET_DOUBLE_ALIGN, preserve 64 bit stack alignment. - * sh.h (STACK_BOUNDARY): Likewise. - -Mon Apr 27 17:22:48 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - -Mon Apr 27 08:55:23 1998 Michael Meissner <meissner@cygnus.com> - - * system.h (abort): If abort is not defined, and neither is - USE_SYSTEM_ABORT, redefine abort to call fprintf and exit, - reporting the line and filename of the error. - - * .gdbinit: Add breakpoints on exit and fancy_abort. - - * final.c (split_double): Avoid a compiler warning if - BITS_PER_WORD is less than or equal to HOST_BIT_PER_WIDE_INT. - - * rtl.h (JUMP_{CROSS_JUMP,NOOP_MOVES,AFTER_REGSCAN}): New macros - for calling jump_optimize. - - * toplev.c (rest_of_compilation): Call jump_optimize using JUMP_* - macros, rather than 0/1's. - -Sun Apr 26 23:19:10 1998 Richard Henderson <rth@cygnus.com> - - * alpha.h (CONST_COSTS): Zero is always free. - (RTX_COSTS): Add EV6 costs. Abort if alpha_cpu is unknown. - -Sun Apr 26 15:38:50 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * cplus-dem.c (gnu_special): Fix off-by-one bug when checking the - length in the name of a virtual table. - -Sun Apr 26 01:21:06 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (print_operand): Don't add 'v' suffix for ALPHA_FPTM_N. - -Sat Apr 25 22:11:38 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Apr 25 17:17:15 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold_convert): Fix typo. - -Sat Apr 25 17:55:54 1998 John Carr <jfc@mit.edu> - - * alias.c (alias_invariant): New variable. - (record_base_value): New argument INVARIANT. - (memrefs_conflict_p): If a register has an entry in the alias_invariant - array, try substituting that value for the register. - - * rtl.h: Declare record_base_value. - - * loop.c, unroll.c: Update callers of record_base_value. - - * alias.c (find_base_value, find_base_term): SIGN_EXTEND and - ZERO_EXTEND do not affect base values. - -Fri Apr 24 15:57:02 1998 Jeffrey A Law (law@cygnus.com) - - * dbxout.c (dbxout_type): Fix typo. - (dbxout_range_type): Another HOST_WIDE_INT_PRINT_DEC fix. - - * configure.in: Use CC_FOR_BUILD, not BUILD_CC. - -Fri Apr 24 16:11:47 1998 John Carr <jfc@mit.edu> - - * expr.c (expand_builtin, case MEMSET): Set MEM_IN_STRUCT_P - if the argument is the address of a structure or array. - - * configure.in: Enable Haifa scheduler by default for SPARC. - -Fri Apr 24 20:55:47 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * cse.c (cse_set_around_loop): Don't do optimization when - new pseudos are created. - -Fri Apr 24 11:00:18 1998 Jeffrey A Law (law@cygnus.com) - - * dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC - appropriately. - (dbxout_type_method_1, dbxout_type): Likewise. - (print_int_cst_octal, print_octal, dbxout_symbol): Likewise. - (dbxout_type): Fix check for when to print a type range in - octal vs decimal. - -Fri Apr 24 16:45:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * (gen_shl_and, in case 1): Fix comparison with mask. - -Fri Apr 24 06:46:40 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame - pointer as second register in REG+REG pair. - -Fri Apr 24 09:22:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-common.c (check_format_info): Don't check for the 'x' format - character twice, instead check for 'x' and 'X' - -Fri Apr 24 08:02:30 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (libgcc2.ready): Add explicit dependancy from - $(STMP_FIXPROTO) to ensure all necessary include files have - been created and to guarantee proper parallel builds. - -Fri Apr 24 04:42:35 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (sh_expand_prologue, in !SH3E code): Don't push an extra - register for stdarg functions. - * sh.h (current_function_varargs): Declare. - (FUNCTION_ARG): Ignore NAMED for stdarg functions. - -1998-04-23 Jim Wilson <wilson@cygnus.com> - - * frame.c, libgcc2.c (stdlib.h, unistd.h): Don't include when - inhibit_libc is defined. - - * c-aux-info.c (gen_type): Use DECL_NAME only for TYPE_DECL. - -Thu Apr 23 19:09:33 1998 Jim Wilson <wilson@cygnus.com> - - * profile.c (tablejump_entry_p): New function. - (branch_prob): Add code to recognize MIPS tablejump entry branch. - Use tablejump_entry_p in MIPS and HPPA tablejump checking code. - -Thu Apr 23 15:01:13 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (find_barrier): Return as soon as a barrier is - found, rather than at end of the loop, after the insn has been - changed. - -Thu Apr 23 20:21:06 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (gen_ashift_hi): Implement right shifts via gen_ashift. - * sh.md (ashrhi3_k, lshrhi3_k, lshrhi3_m, lshrhi3, lshrhi3+1): Delete. - -Wed Apr 22 17:07:35 1998 Michael Meissner <meissner@cygnus.com> - - * loop.c (note_addr_stored): Correct function to take 2 arguments, - instead of 1. - - * rtl.def (MATCH_INSN2): Add new matching pattern. - * genrecog.c (add_to_sequence): Support MATCH_INSN2. - -Wed Apr 22 15:52:22 1998 John Carr <jfc@mit.edu> - - * emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero - if HOST_BITS_PER_WIDE_INT is larger than BITS_PER_WORD. - - * final.c (split_double): Sign extend both halves of a split CONST_INT. - -Wed Apr 22 10:42:45 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (compute_frame_size): Change only argument to a HOST_WIDE_INT. - -Wed Apr 22 10:53:49 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> - - * cplus-dem.c (struct work stuff): Add field for B and K mangle codes. - (cplus_demangle_opname): Call mop_up_squangle. - (cplus_demangle): Initialize squangle info, then call - internal_cplus_demangle. (Most code moved there as well) - (internal_cplus_demangle): New function, performs most of what use - to be done in cplus_demangle, but is only called with this file. - (squangle_mop_up): New function to clean up B and K code data. - (mop_up): set pointers to NULL after freeing. - (demangle_signature, demangle_template, demangle_class): Add - switch elements to handle K and B codes. - (demangle_prefix, gnu_special, demangle_qualified): Add - code to handle K and B codes. - (do_type, demangle_fund_type): Handle B and K codes. - (remember_Ktype): New function to store K info. - (register_Btype, remember_Btype): New functions for B codes. - (forget_B_and_K_types): New function to destroy B and K info. - -1998-04-21 Jim Wilson <wilson@cygnus.com> - - * stmt.c (check_seenlabel): When search for line number note for - warning, handle case where there is no such note. - -Tue Apr 21 20:48:37 1998 John Carr <jfc@mit.edu> - - * genemit.c (gen_exp): Allow machine description to set mode of - MATCH_OP_DUP. - -Tue Apr 21 16:36:01 1998 John Carr <jfc@mit.edu> - - * alias.c (mode_alias_check): New function. - (true_dependence, anti_dependence, output_dependence): Call - mode_alias_check. - -Tue Apr 21 12:05:32 1998 Jeffrey A Law (law@cygnus.com) - - * mips.h (STACK_BOUNDARY): Allow specific targets to override. - (MIPS_STACK_ALIGN): Similarly. - - * c-common.c (type_for_mode): Handle TI types. - * c-decl.c (intTI_type_node, unsigned_int_TI_type_node): Define. - (init_decl_processing): Handle TI types. - * c-tree.h (intTI_type_node, unsigned_int_TI_type_node): Declare. - - * mips.c (block_move_loop): Test Pmode == DImode instead of - TARGET_MIPS64. - (expand_block_move, save_restore_insns): Likewise. - (function_prologue, mips_expand_prologue): Likewise. - (mips_expand_epilogue): Likewise. - * mips.h (POINTER_SIZE): Allow specific targets to override. - (Pmode): Allow specific targets to override. - (FUNCTION_PROFILER): Test Pmode == DImode instead of TARGET_MIPS64 - (POINTER_BOUNDARY, FUNCTION_MODE): Likewise. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. - (TRAMPOLINE_ALIGNMENT, INITIALIZE_TRAMPOLINE): Likewise. - (CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - (ASM_OUTPUT_ADDR_DIFF_ELT, SIZE_TYPE, PTRDIFF_TYPE): Likewise. - * mips.md (indirect, tablejump & casesi support): Test for - Pmode == DImode instead of TARGET_MIPS64. - (call patterns): Likewise. - -Tue Apr 21 09:43:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done - for gen_rtx(MEM, ...). - -Tue Apr 21 02:15:36 1998 Richard Henderson <rth@cygnus.com> - - * sparc.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Rewrite - to not be so gross, and to properly function with PIC. - -Mon Apr 20 20:44:25 1998 Jim Wilson <wilson@cygnus.com> - - * frame.c (heapsort): Rename to frame_heapsort. - - * gcc.c (do_spec_1, case '['): Move flag out of loop and initialize it. - -Mon Apr 20 12:43:09 1998 Doug Evans <devans@canuck.cygnus.com> - - * flow.c (sbitmap_vector_alloc): Ensure sbitmaps properly aligned. - -Mon Apr 20 15:04:14 1998 John Wehle (john@feith.com) - - * i386.md (movsf_push, movdf_push, movxf_push): Allow memory - operands during and after reload. - -Mon Apr 20 22:37:50 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches, init_insn_lengths): Move code - to free label_align, uid_shuid, insn_lengths, insn_addresses - and uid_align from the former function into the latter one; - Add code to clear these variables. - * sh.h (label_align): Remove declaration. - -Mon Apr 20 14:48:29 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (lang_specific_driver): Declare prototype properly so - fatal can be passed to it without error. - - * configure.in (AC_CHECK_FUNCS): Check for strchr and strrchr. - * configure: Regenerate. - * config.in: Add #undef's for strchr and strrchr. - - * protoize.c (toplevel): If we have rindex, but not strrchr, map - rindex to strrchr. - (file_could_be_converted): Use strrchr, not rindex since rindex is - not defined on Linux systems when _POSIX_SOURCE is defined. - (file_normally_convertible): Ditto. - (process_aux_info_file): Ditto. - (main): Ditto. - - * rs6000.md (mov{sf,df} define_splits): When splitting a move of - a constant to an integer register, don't split the insns that do - the simple AND and OR operations, rather just split each word, and - let the normal movsi define split handle it further. - -Mon Apr 20 18:19:40 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (find_barrier): Fix bug in ADDR_DIFF_VEC handling. - (split_branches): Call init_insn_lengths. - -Mon Apr 20 07:37:49 1998 Michael Meissner <meissner@cygnus.com> - - * i386.c: Include expr.h to get the change_address prototype - declared. - -Mon Apr 20 01:00:05 1998 H.J. Lu (hjl@gnu.org) - - * reg-stack.c (subst_asm_stack_regs): Change to return the last - new insn generated by this function. - (subst_stack_regs): Likewise. - (convert_regs): Record the last newly generated insn and use - it for change_stack () instead of INSN. - -Sun Apr 19 15:41:24 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * fix-header.c (enum special_file): Undefine enumerators if they - are already defined by include files. - * fixproto (rel_source_file in unistd.h stdlib.h): Prefix file protection - macro with '__' to not pollute user namespace. - -Sun Apr 19 02:42:06 1998 Richard Henderson <rth@cygnus.com> - - * haifa-sched.c (queue_to_ready): Fix typo in prototype. - -Sat Apr 18 23:52:35 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Apr 18 18:30:22 1998 Jim Wilson <wilson@cygnus.com> - - * i386.md (fix_truncsfdi2+[123]): Add + to operand 1 constraints. - - * i386.h (CPP_CPU_DEFAULT): Renamed to CPP_CPU_DEFAULT_SPEC. - Add missing -Dpentium* options. - (CPP_CPU_SPEC): Delete redundant definition. Include cpp_cpu_default - instead of CPP_CPU_DEFAULT. - (EXTRA_SPECS): Add entry for cpp_cpu_default. - -Sat Apr 18 19:06:59 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be - negative in a stackless frame. - * rs6000.c (rs6000_stack_info): Don't include fixed-size link area - in stackless frame size. Support 64-bit stackless frame size. - Combine fpmem offset calculations and don't add total_size to - offset if not pushing a stack frame. - -Sat Apr 18 15:41:16 1998 Jim Wilson <wilson@cygnus.com> - - * regmove.c (fixup_match_1): In three places, in flag_exceptions - check, change p to q. - -Sat Apr 18 15:30:49 1998 Jim Wilson <wilson@cygnus.com> - - * gcc.c (lang_specific_driver): Add new parm type to prototype. - (added_libraries): New file scope static variable. - (process_command): Initialize added_libraries. Pass it to - lang_specific_driver. - (main): Use added_libraries in check for no input files. - -Sat Apr 18 01:23:11 1998 John Carr <jfc@mit.edu> - - * sparc.c, sparc.h, sparc.md, sol2.h: Many changes related to V9 - code generation. Use 64 bit instructions in 32 bit mode when - possible. Use V9 return instruction. UltraSPARC optimizations. - - * sparc.h: Change gen_rtx (CODE to gen_rtx_CODE (. - -Fri Apr 17 22:38:17 1998 Jeffrey A Law (law@cygnus.com) - - * global.c (global_alloc): Don't pass HARD_CONST (0) to find_reg, - just pass zero. That will work regardless of the size of HARD_REG_SET. - - * libgcc2.c (__floatdisf): Fix a couple typos. - -Fri Apr 17 17:28:26 1998 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (mostlyclean): Delete *.mach and *.bp files. - -Fri Apr 17 16:35:35 1998 Greg McGary <gkm@gnu.org> - - * emit-rtl.c (gen_highpart): initialize `word' properly for pseudo. - -Fri Apr 17 14:30:37 1998 John Carr <jfc@mit.edu> - - * emit-rtl.c (operand_subword_force): If a register can not be - accessed by words, copy it to a pseudo register. - -Fri Apr 17 14:30:37 1998 Jim Wilson <wilson@cygnus.com> - - * rs6000/vxppc.h (CPP_SPEC): Add support for mrelocatable*. - -Fri Apr 17 17:01:25 1998 Michael Meissner <meissner@cygnus.com> - - * tree.h (mark_seen_cases): Delete declaration. - -Fri Apr 17 13:32:20 1998 Jeffrey A Law (law@cygnus.com) - - * stmt.c (mark_seen_cases): Make static and add prototype. - -Fri Apr 17 11:21:43 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * frame.c: Include stdlib.h and unistd.h to possibly get various - function prototypes. The fixproto script guarantees these header - files exist on the target system. - * libgcc2.c: Likewise. - - * gthr-single.h (__gthread_mutex_lock, __gthread_mutex_trylock, - __gthread_mutex_unlock): Add __attribute__ ((__unused__)) to the - function parameters. - * libgcc2.c (__udiv_w_sdiv): Likewise. - -Thu Apr 16 22:41:02 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (asm_output_bss): Add prototype. - (asm_output_aligned_bss): Likewise. - - * unroll.c (verify_addresses): Add prototype. - - * toplev.c: Add many prototypes. Too many to mention here. - - * stmt.c (check_seenlabel): Add prototype. - - * rtlanal.c (reg_set_p_1): Add prototype. - (reg_set_last_1): Likewise. - - * reorg.c (find_dead_or_set_registers): Add prototype. - - * regmove (try_auto_increment): Add prototype. - - * reg-stack.c (pop_stack): Add prototype. - - * recog.c (validate_replace_rtx_1): Add prototype. - (find_cosntant_term_loc): Likewise. - - * loop.c (regs_patch_p): Add prototype. - (add_label_notes, count_nonfixed_reads): Likewise. - (find_single_use_in_loop): Likewise. - (express_from): Surround prototype with #ifdef. - (giv_sort): Similarly. - - * jump.c (mark_modified_reg): Add prototype. - - * haifa-sched.c (is_prisky): Add prototype. - (queue_to_ready): Likewise. - - * genextract.c (gen_insn): Add prototype. - - * genemit.c (max_operand_1): Add prototype. - (max_operand_vec, print_code, gen_exp, gen_insn): Likewise. - (gen_expand, gen_explit, output_add_clobbers): Likewise. - (output_init_mov_optab): Likewise. - - * genattrtab.c (attr_hash_add_rtx): Add prototype. - (attr_hash_add_string, write_length_unit_log): Likewise. - - * genattr.c (init_range): Add prototype. - - * combine.c (sets_function_arg_p): Add prototype. - - * expr.c (store_constructor_field): Add prototype. - (get_memory_usage_from_modifier): Likewise - - * expmed.c (synth_mult): Add prototype. - (choose_multiplier, invert_mod2n): Likewise. - - * except.c (push_eh_entry): Add prototype. - (pop_eh_entry, enqueue_eh_entry, dequeu_eh_entry): Likewise. - (call_get_eh_context, start_dynamic_cleanup): Likewise. - (start_dynamic_handler, can_throw): Likewise. - (output_exception_table_entry, scan_region): Likewise. - (eh_regs, set_insn_eh_region): Likewise. - - * dwarfout.c (decl_class_context): Add prototype. - (output_inheritance_die, type_ok_for_scope): Likewise. - - * c-lex.c (skip_white_space_on_line): Add prototype. - - * alias.c (record_set): Add prototype. - (find_base_term, base_alias_check): Likewise. - - * function.c (assign_outer_stack_local): Make static and add prototype. - - * haifa-sched.c (build_control_flow): Accept raw data as inputs - instead of computing it locally. Callers changed. - (find_rgns): Several new arguments. Callers changed. - Generally clean up and comment better. Use dominators to - identify reducible loops. Convert some flag arrays to bitmaps. - Convert most of the code to work on pred/succ lists instead of - an edge table. Add comments for future improvements. - (schedule_insns): Allocate temporary tables for flow data, call - routines to compute flow data and pass it along to children as - arguments. - (debug_control_flow): Delete. Use dump_bb_data instead. - - * basic-block.h (compute_dominators): Declare. - - * flow.c (dump_sbitmap, dump_sbitmap_vector): New debugging - functions. - * basic-block.h: Declare them. - -Thu Apr 16 13:45:51 1998 Jim Wilson <wilson@cygnus.com> - - * reg-stack.c (constrain_asm_operands): Set n_alternatives to zero if - no operands. - -Wed Apr 15 11:33:09 1998 Alexandre Petit-Bianco <apbianco@sendai.cygnus.com> - - * tree.c (build_expr_wfl): Use NULL_TREE if the file name is NULL. - Propagate TREE_SIDE_EFFECTS and TREE_TYPE iff the encapsulated - node is non NULL. Cache last file name and file name identifier node. - -1998-04-15 Mark Mitchell <mmitchell@usa.net> - - * c-common.c (declare_hidden_char_array): Use TYPE_DOMAIN to get - the length of an array, not TREE_TYPE. - -Wed Apr 15 15:31:34 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (sbitmap_union_of_successors): New function. - * basic-block.h (sbitmap_union_of_successors): Declare it. - -Wed Apr 15 12:38:03 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in (gnu_ld): Rename to gnu_ld_flag before main loop. - Set gnu_ld to gnu_ld_flag inside main loop. - (gas): Likewise. - -Wed Apr 15 14:50:05 1998 Dave Brolley <brolley@cygnus.com> - - * toplev.c (compile_file): Call init_parse using new interface. - (init_lex): Remove declaration. - - * c-lex.c (init_parse): Now returns char* containing filename. - -Wed Apr 15 12:37:10 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing if not optimizing. - -Wed Apr 15 12:10:18 1998 Michael Meissner <meissner@cygnus.com> - - * Makefile.in (gen{config,flags,codes,emit}): Link in host print-rtl.o. - (gen{extract,peep,opinit,output}): Ditto. - - * gen{attr,codes,config,emit,output}.c (insn_attr_name): Provide a - global definition so print-rtl.o can be linked in. - * gen{peep,recog}.c (insn_attr_name): Ditto. - -Tue Apr 14 07:30:57 1998 K. Richard Pixley <rich@kyoto.noir.com> - - * fixincludes: discard empty C++ comments, as found in sys/time.h - on hpux-11.0. - -Wed Apr 15 10:47:21 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.md (adddi3, subdi3): Optimize for constant - operand. - -Wed Apr 15 01:21:21 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Rework slightly to avoid - bogus warning from previous change. - -Tue Apr 14 23:39:13 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md: Revert Oct 27 change, as it is superceeded by Kenner's - Nov 8 find_replacement change. Move decls of get_unaligned_address - * alpha.h: ... here. - -Tue Apr 14 22:00:39 1998 John Carr <jfc@mit.edu> - - * function.c (assign_parms): Initialize unsignedp before passing - its pointer to promote_mode. - - * genattrtab.c (check_attr_test): Handle MATCH_INSN like MATCH_OPERAND. - (write_test_expr): Allow MATCH_INSN. - -Tue Apr 14 21:57:57 1998 Paul Eggert <eggert@twinsun.com> - - * install.texi: Update section on warnings that can be safely ignored. - -Tue Apr 14 14:55:16 1998 Jim Wilson <wilson@cygnus.com> - - * mips.md (reload_outdi): Change the scratch mode from DImode to - TImode. New variable scratch, used instead of operand[2] in template. - Add code for MIPS16 HILO_REGNUM case where output reg is not M16_REG_P. - -Tue Apr 14 16:19:03 1998 Michael Meissner <meissner@cygnus.com> - - * expr.c (MOVE_RATIO): Set to 3 if optimizing for space. - -Tue Apr 14 11:31:28 1998 Krister Walfridsson <cato@df.lth.se> - - * i386/bsd386.h (ASM_OUTPUT_ALIGN): Redefine. - -Tue Apr 14 09:02:32 1998 Jeffrey A Law (law@cygnus.com) - - * svr4.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. - (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * Idea and part of the patch from HJ. - * Makefile.in: auto-host.h renamed from auto-config.h. All references - changed. - (distclean): Remove auto-build.h too. - * configure.in: Rename host autoconf generated file to auto-host.h. - If host != build, then run autoconf to generate auto-build.h for - the build machine and include it in build_xm_files. - Check for wait.h and sys/wait.h. - - * combine.c (simplify_rtx, case TRUNCATE): Respect value of - TRULY_NOOP_TRUNCATION. - -Mon Apr 13 11:31:49 1998 Jason Merrill <jason@yorick.cygnus.com> - - * tree.h (BINFO_OFFSET_ZEROP): Use integer_zerop. - -Sun Apr 12 20:55:32 1998 Catherine Moore <clm@cygnus.com> - - * invoke.texi (ld options) Include memset requirements - for options -nodstdlib and -nodefaultlibs. - -1998-04-12 Paul Eggert <eggert@twinsun.com> - - This change is from an idea suggested by Arthur David Olson. - - * c-common.c (decl_attributes, record_function_format, - check_format_info, init_function_format_info): - Add support for strftime format checking. - (enum format_type): New type. - (record_function_format): Now static, and takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change `pedwarn' to `warning', since these warnings do not necessarily - mean the program does not conform to the C Standard, as the code - need not be executed. - - * c-tree.h (record_function_format): Remove decl; no longer extern. - - * extend.texi: Add documentation for strftime format checking. - -Sun Apr 12 20:23:03 1998 Jeffrey A Law (law@cygnus.com) - - * mips/ecoffl.h: Do not include mips.h. - * mips/elf.h: Likewise. - - * configure.in (mips-*-ecoff): Do not mention mips/mips.h in tm_files. - * mips/ecoff.h: Include "mips/mips.h". - -Sat Apr 11 22:42:54 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Apr 11 01:24:28 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (count_reg_usage): Correctly handle REG_NONNEG notes. - (delete_trivially_dead_insns): Renamed from delete_dead_from_cse. - * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns instead of delete_dead_from_cse. Also call delete_trivially_dead_insns - between loop optimization passes. - * rtl.h: Updated appropriately. - -Fri Apr 10 22:28:32 1998 Jeffrey A Law (law@cygnus.com) - - Reinstall this patch from Jason. - * function.c (push_function_context_to): Don't call init_emit. - -Fri Apr 10 13:40:20 1998 Nick Clifton <nickc@cygnus.com> - - * rtl.c (read_skip_spaces): Prevent infinite loops upon - encountering unterminated comments. - -Fri Apr 10 10:43:41 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Properly handle CONST_INTs for - 64x32 cross builds. - - * configure.in: Handle --with-fast-fixincludes. - (fixincludes): If --with-fast-fixincludes, then use a different - fixincludes program by default. - * Makefile.in (fixinc.sh): New rule. - -Fri Apr 10 00:36:31 1998 H.J. Lu (hjl@gnu.org) - - * i386.md (movqi+1): Handle invalid QI register. - (movsf_push-1): Likewise. - -Thu Apr 9 16:53:59 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.c: call_address_operand(): Only accept symbolic - addresses. - symbolic_memort_operand(), call32_operand(), int8_operand(), - int16_operand(), uint24_operand(), reg_or_int8_operand(): Removed. - Not used. - uint16_operand(): Made static. - -Thu Apr 9 01:43:04 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Fix typo. - -Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) - - * c-lex.c (finput): New global. - (init_parse): Always included. Handle !USE_CPPLIB using - code originally in compile_file. - (finish_parse): Update for CPPLIB. - * toplev.c (init_parse, finish_parse): Declare. - (finput): Delete variable. Now in front-ends. - (compile_file): Remove code which is now handled by init_parse - which is unconditionally called. Similarly for finish_parse. - -Wed Apr 8 23:13:50 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, - ASM_WEAKEN_LABEL): Add. - -Wed Apr 8 18:21:30 1998 Richard Henderson <rth@cygnus.com> - - * alpha/crtbegin.asm, alpha/crtend.asm, alpha/t-crtb: New files. - * configure.in (alpha-*-linux*): Use them. - -Fri Apr 3 17:02:13 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition. - * tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO, - COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros. - (build_expr_wfl): New prototype declaration. - * tree.c (build_expr_wfl): New function, to build - EXPR_WITH_FILE_LOCATION nodes. - (copy_node): Don't zero TREE_CHAIN if copying a - EXPR_WITH_FILE_LOCATION node. - * print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION. - * expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION. - -Wed Apr 8 12:51:19 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (v850): Use t-v850. - (ix86-wrs-vxworks): Recognize 786 just like other x86 configurations. - - * protoize.c (creat, read, write): Do not declare. - - * jump.c (mark_jump_label): Record REG_LABEL notes for insns which - refer to the CODE_LABEL before a dispatch table. - - * invoke.texi: Add ARC options. - - * gcc.c (proces_command): Improve error message for -o with - either -c or -S. - - * i386/x-cygwin32 (CLIB): Link in advapi32. - - * alpha.h (ASM_IDENTIFY_GCC): Define to nothing. - (ASM_IDENTIFY_LANGUAGE): Likewise. - - * i386.md (movqi recognizer): Don't perfom byte increment into - a NON_QI_REG_P. - - * configure.in (x86-dg-dgux): Run fixinc.dgux. - - * i370.h: Fix typo in GEN_INT changes. - - * bitmap.c (bitmap_element_allocate): Use "void" for arglist instead - of an empty arglist in prototype. - - * Makefile.in: Remove bytecode crud that crept back in after the - gcc2 merge. - -1998-04-08 Brendan Kehoe <brendan@cygnus.com> - - * c-lex.h (is_class_name): Fix arg type to be tree, not void. - (make_pointer_declarator, reinit_parse_for_function): Fix typo. - -Wed Apr 8 06:16:45 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - -Wed Apr 8 00:44:18 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> - - * c-lex.c (is_class_name): Delete declaration. - (whitespace_cr): Make static and add prototype. - * c-lex.h (make_pointer_declarator, reinit_parse_for_function, - yylex, get_directive_line): Turn declarations into prototypes. - (position_after_whitespace, check_newline, yyerror,, is_class_name, - forget_protocol_qualifiers, remember_protocol_qualifiers): Add - prototypes. - * genattr.c (extend_range, write_upcase, gen_attr, write_units): Add - prototypes. - * gencodes.c (gen_insn): Add prototype. - * genconfig.c (walk_insn, gen_insn, gen_expand, gen_split, - gen_peephole): Add prototypes. - * genflags.c (num_operands, gen_proto, gen_nonproto, gen_insn): Add - prototypes. - * gengenrtl.c (type_from_format, accessor_from_format, special_rtx, - special_format, find_formats, gendecl, genmacro, gendef, genlegend, - genheader, gencode): Add prototypes. - * genopinit.c (gen_insn): Add prototype. - * genoutput.c (output_prologue, output_epilogue, scan_operands, - process_template, validate_insn_alternatives, gen_insn, gen_peephole, - gen_expand, gen_split, n_occurrences): Add prototypes. - * genpeep.c (gen_peephole): Add prototype. - * loop.c (find_and_verify_loops, mark_loop_jump, prescan_loop, - reg_in_basic_block_p, consec_sets_invariant_p, libcall_other_reg, - labels_in_range_p, count_loop_regs_set, note_addr_stored, - loop_reg_used_before_p, scan_loop, replace_call_address, - skip_consec_insns, libcall_benefit, ignore_some_movables, - force_movables, combine_movables, rtx_equal_for_loop_p, move_movables, - strength_reduce, valid_initial_value_p, find_mem_givs, record_biv, - check_final_value, record_giv, update_giv_derive, basic_induction_var, - simplify_giv_expr, general_induction_var, consec_sets_giv, - check_dbra_loop, express_from, combine_givs_p, combine_givs, - product_cheap_p, maybe_eliminate_biv, maybe_eliminate_biv_1, - last_use_this_basic_block, record_initial, update_reg_last_use, - iteration_info, analyze_loop_iterations, insert_bct, - instrument_loop_bct, indirect_jump_in_function_p): Turn declarations - into prototypes. - -Tue Apr 7 21:48:52 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - -1998-04-07 Ken Raeburn <raeburn@cygnus.com> - - * config/mips/mips.c (siginfo): Deleted. - (override_options): Don't install SIGINFO signal handler. - -Tue Apr 7 11:58:04 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (check_dbra_loop): When normalize comparison_val, add check - to verify it is non-negative. - -Tue Apr 7 02:01:47 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_block_move): Correctly collect block offsets. - (alpha_expand_block_clear): Likewise. - -Mon Apr 6 23:36:01 1998 Richard Henderson <rth@cygnus.com> - - * tree.h (sizetype_tab): Fix previous change for K&R. - -Mon Apr 6 22:23:29 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Apr 6 23:16:10 1998 Richard Earnshaw (rearnsha@arm.com) - - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. - -Mon Apr 6 21:49:57 1998 Bob Manson <manson@charmed.cygnus.com> - - * gcc.c: Add linker spec. - (link_command_spec): Use %(linker) instead of ld. - (main): If collect2 is requested as the linker, see if it exists; - if not, use ld instead. - - * Makefile.in (USE_COLLECT2): It's named collect2 now, not ld. - (ld:) Deleted. - (install-collect2): Install as collect2, not ld. - - * configure.in(will_use_collect2): It's named collect2 now. - - * collect2: Remove checks to see if we were invoked recursively. - (collect_execute): Use _spawnvp under cygwin32. - -Mon Apr 6 17:23:41 1998 Jim Wilson <wilson@cygnus.com> - - * haifa-sched.c (build_control_flow): Set unreachable for block whose - only predecessor is itself. - -Mon Apr 6 16:08:04 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-parse.in: Include system.h, and remove stuff now made redundant. - * cccp.c: Likewise. - * cexp.y: Likewise. - * protoize.c: Likewise. Properly check for cpp stringification. - - * Makefile.in (c-parse.o, cccp.o, cexp.o, protoize.o, unprotoize.o): - Depend on system.h. - - * objc/Make-lang.in (objc-parse.o): Likewise. - -Mon Apr 6 14:59:58 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gansidecl.h: Check if compiler supports __attribute__. Provide - definitions for ATTRIBUTE_UNUSED and ATTRIBUTE_PRINTF using - __attribute__ when its available. Also provide definitions for - ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2 and ATTRIBUTE_PRINTF_3 in - terms of ATTRIBUTE_PRINTF. - - * genoutput.c (process_template): Use ATTRIBUTE_UNUSED in place - of __attribute__. - -Mon Apr 6 07:17:52 1998 Catherine Moore <clm@cygnus.com> - - * combine.c (can_combine_p): Include successor in volatile test. - -Mon Apr 6 14:16:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (CASE_VECTOR_SHORTEN_MODE): Fix logic when to set - offset_unsigned. - -Mon Apr 6 02:03:29 1998 Jeffrey A Law (law@cygnus.com) - - * objc/objc-act.c (encode_aggregate_within): Avoid GNU extensions - in prototype and definition. - -Mon Apr 6 00:48:56 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Apr 6 00:08:50 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_block_clear): Add missing offset arg to - alpha_expand_unaligned_store_words. - -Sun Apr 5 21:31:24 1998 John Wehle (john@feith.com) - - * i386.md (movsf_push, movsf_mem): Remove. - (movsf_push): Rename from movsf_push_nomove and move in front of - movsf. Use nonmemory_operand predicate and don't bother checking - TARGET_MOVE. - (movsf_push_memory): New pattern. - (movsf): Don't bother checking for push_operand. If TARGET_MOVE and - both operands refer to memory then force operand[1] into a register. - (movsf_normal): Change to unnamed pattern. - Likewise for movdf, movxf, and friends. - -Sun Apr 5 18:45:51 PDT 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Apr 5 16:31:10 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (alpha-dec-osf*): Match osf1.3 correctly. - -Sun Apr 5 16:53:37 1998 Don Bowman <don@pixsci.com> - - * configure.in (mips-wrs-vxworks): New target. - -Sat Apr 4 23:34:32 PST 1998 Jeff Law (law@cygnus.com) - - * expmed.c (synth_mult): The value -1, has no zeros, so it can - never have the form ...011. - - * version.c: Bump for snapshot. - -Sat Apr 4 20:16:46 1998 Richard Henderson <rth@cygnus.com> - - * i386.c (asm_output_function_prefix, load_pic_register): - Use ASM_GENERATE_INTERNAL_LABEL properly. - (output_pic_addr_const): Recognize %X to supress any PIC sym suffix. - (print_operand): Ignore it. - (load_pic_register): Use it for the got load call. - * i386.md (prologue_set_got, prologue_get_pc): Likewise. - (prologue_get_pc_and_set_got): Likewise. - * i386.h: Update print_operand docs. - -Sat Apr 4 19:08:37 1998 Richard Henderson <rth@cygnus.com> - - * i386.md (ffssi, ffshi): Rewrite as define_expands. - (ffssi_1, ffshi_1): New (unspec [] 5) support patterns. - * i386.c (notice_update_cc): Recognize unspec 5. - -Sat Apr 4 18:07:16 1998 David Mosberger-Tang (davidm@mostang.com) - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_truncsfdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - (fix_truncdfdi2): Likewise. - -Sat Apr 4 17:42:05 1998 Richard Henderson <rth@cygnus.com> - - * tree.h (sizetype_tab[2], sbitsizetype, ubitsizetype): Merge all - of these into a single struct, with additional [us]sizetype entries. - * stor-layout.c (set_sizetype): Initialize [us]sizetype. - * fold-const.c (size_int_wide): Don't rely on sizetype_tab being - an array. - -Sat Apr 4 17:04:41 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (alpha-*-linux-*): Undo tm_file changes from gcc2 merge. - -Sat Apr 4 13:50:01 1998 Richard Henderson <rth@cygnus.com> - - * haifa-sched.c (split_block_insns): Don't supress insn splitting - on subsequent passes. - - * alpha.c (hard_fp_register_operand): New function. - * alpha.h (PREDICATE_CODES): Add it. - * alpha.md (extendsidi2): Kill bogus f<-f cvtql+cvtlq case. Add an - f<-m case and accompanying define_split. - (trapb): Use a unique unspec_volatile number. - -Sat Apr 4 13:32:08 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (alpha-*-linux-gnu*): Undo Feb 3 change brought in - from gcc2 merge. - -Sat Apr 4 10:23:41 1998 Jeffrey A Law (law@cygnus.com) - - * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12 - for details. - - * haifa-sched.c: Mirror recent changes from gcc2. - -Fri Apr 3 00:17:01 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (insn*.o): Depend on system.h. - - * pa.c (output_global_address): Initialize base. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Initialize index. - -1998-04-03 Mike Stump <mrs@wrs.com> - - * gthr.h: Support systems that don't have weak, but have threads. - * configure.in (*wrs-vxworks*): Use VxWorks threads by default. - * gthr-vxworks.h: New file. - * objc/thr-vxworks.h: Dummy file from thr-single.c for now. - -Thu Apr 2 18:00:52 1998 Jim Wilson <wilson@cygnus.com> - - * i386.md (movqi+1): Change alternative 1 from *r/r to *r/*rn. - -1998-04-02 Vladimir N. Makarov <vmakarov@cygnus.com> - - * ginclude/va-i960.h (va_end): Change void * to void. - -Thu Apr 2 13:51:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (choose-temp.o): Depend on system.h. - - * choose-temp.c: Include system.h when IN_GCC. - -Thu Apr 2 02:37:07 1998 Joern Rennecke (amylaar@cygnus.co.uk) - Richard Henderson <rth@cygnus.com> - - * reload.c (find_reloads_address): Try LEGITIMIZE_RELOAD_ADDRESS. - (move_replacements): New function. - * reload.h: Prototype it. - - * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): New definition. - -Thu Apr 2 01:01:34 1998 Richard Henderson <rth@cygnus.com> - - * configure (alpha-*-linuxecoff, alpha-*-linux-gnulibc1): - Run fixincludes. - - * emit-rtl.c (gen_lowpart_common): Skip count by HARD_REGNO_NREGS. - (gen_highpart): Likewise. - * final.c (alter_subreg): Allow the target to hook by-mode subreg - hard register number changes. - -Wed Apr 1 22:26:22 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c optimze_bit_field_compare): Initialize rnbitpos, - rnbitsize, rnmode and rinner. - (make_range): Initialize type. - (fold): Initialize arg0, arg1 and varop. - - * function.c (instantiate_virtual_regs_1): Initialize offset, regnoi - and regnor. - (expand_function_start): Initialize last_ptr. - - * stor-layout.c (layout_record): Initialize desired_align. - (get_best_mode): Initialize unit. - - * tree.c (copy_node): Initialize length. - - * c-lex.c (yylex): Initialize traditional_type, ansi_type and type. - - * caller-save.c (insert_save_restore): Initialize pat, code and - numregs. - - * emit-rtl.c (push_to_sequence): Initialize top. - (push_topmost_sequence): Likewise. - - * genattrtab.c (simplify_by_exploding): Initialize defval. - - * profile.c (branch_prob): Initialize dest. - - * rtl.h (note_stores): Remove duplicate prototype. - (GEN_INT): Re-instate cast of second arg to HOST_WIDE_INT. - - * cplus-dem.c (gnu_special): Don't get confused by .<digits> - strings that are not actually lengths. - - * genattrtab.c: Make generated file use system.h, instead of - including stdio.h, etc directly. - * genextract.c, genopinit.c, genoutput.c: Likewise. - * genpeep.c, genrecog.c: Likewise - - * genoutput.c (process_template): Mark operands in the generated - function as potentially unused if compiling with GNU CC. - - * i386/freebsd-elf.h (CPP_PREDEFINES): Update from FreeBSD folks. - - * pa.md (reload peepholes): Remove unused variable "mode". - -Wed Apr 1 17:06:19 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h: Add super interworking support. - * config/arm/thumb.c: Add super interworking support. - * config/arm/thumb.md: Add super interworking support. - * config/arm/lib1funcs.asm: Add interworking support. - * config/arm/lib1thumb.asm: Add super interworking support. - * config/arm/t-semi: Add interworking support. - * config/arm/t-thumb: Add interworking support. - * config/arm/README-interworking: New file. - -Wed Apr 1 14:38:10 1998 Jim Wilson <wilson@cygnus.com> - - * config/mips/iris6.h (MD_EXEC_PREFIX): Set to /usr/bin/. - (MD_STARTFILE_PREFIX): Unset. - -1998-04-01 Mark Mitchell <mmitchell@usa.net> - - * varasm.c (make_decl_rtl): Update the DECL_ASSEMBLER_NAME for a - entity in a local scope. - - * fold-const.c (fold): Call truthvalue_conversion for values which - are folded to boolean type. - -Wed Apr 1 06:09:53 1998 Jeffrey A Law (law@cygnus.com) - - * 1750a.md, arm.c, clipper.c, clipper.md: Use GEN_INT consistently. - * convex.h, dsp16xx.c, fx80.md, gmicro.c, gmicro.md: Likewise. - * i370.h, i370.md, i860.c, i860.h, i860.md, i960.c: Likewise. - * i960.h, i960.md, m32r.md, m68k.md, m68kv4.h, m88k.c: Likewise. - * m88k.md, ns32k.c, ns32k.md, pdp11.c, pdp11.h, pdp11.md: Likewise. - * pyr.c, pyr.h, pyr.md, romp.c, romp.h, romp.md: Likewise. - * rs6000.md, sparc.c, sparc.h, sparc.md, spur.c, spur.md: Likewise. - * tahoe.md, vax.h, vax.md, we32k.c, we32k.h, we32k.md: Likewise. - * md.texi: Likewise. - -Wed Apr 1 08:33:44 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * fixincludes (limits.h): Fix nested comments in Motorola's - limits.h and sys/limits.h. - -Tue Mar 31 16:57:33 1998 Jim Wilson <wilson@cygnus.com> - - * alpha.c (alpha_expand_unaligned_load): Use tgt instead of addr - as dest of expand_binop call. - - * alpha.md (extzv): Correct check for valid operand[2] values. - - * profile.c (branch_prob): Add code to recognize HPPA tablejump entry - branch. - - * toplev.c (rest_of__compilation): Call init_recog_no_volatile at end. - -Mon Mar 30 13:11:05 1998 Stan Cox <scox@cygnus.com> - - * libgcc2.c: (__main, __do_global_dtors, __do_global_ctors): - For __CYGWIN32__ use the versions in winsup/dcrt0.cc. - - * gcc.c, cccp.c, cpplib.c, collect2.c (GET_ENVIRONMENT): Added. - cygwin32 can override this to allow both unix and win32 style PATHs. - - * i386/xm-cygwin32.h (GET_ENVIRONMENT): Defined to allow win32 - style environment paths. - -Mon Mar 30 14:43:20 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (cppalloc.o, cpperror.o, cppexp.o, cpphash.o, - cpplib.o, cppmain.o, fix-header.o, gcov.o, gen-protos.o, - gengenrtl.o, halfpic.o, hash.o, scan-decls.o, scan.o): Depend on - system.h. - - * cpphash.c: Include config.h. - * cppalloc.c: Include system.h. Add parameters to various - function prototypes. - * cpperror.c: Likewise. - * cppexp.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * cppmain.c: Likewise. - * fix-header.c: Likewise. - * gcov.c: Likewise. - * gen-protos.c: Likewise. - * gengenrtl.c: Likewise. - * halfpic.c: Likewise. - * hash.c: Likewise. - * scan-decls.c: Likewise. - * scan.c: Likewise. - -Mon Mar 30 11:06:45 1998 Jim Wilson <wilson@cygnus.com> - - * README.gnat: Add lang_print_xnode definition. - -Mon Mar 30 11:12:24 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.c (standard_68881_constant_p): Don't use - fmovecr on the 68060. - -Mon Mar 30 00:21:03 1998 Jeffrey A Law (law@cygnus.com) - - * genemit.c (DONE): Rework so that it works in the true arm if - an if-else conditional. - (FAIL): Likewise. - -Sun Mar 29 12:45:23 1998 Jeffrey A Law (law@cygnus.com) - - * rs6000.c: Do not include stdioh or ctype.h anymore. - - * Makefile.in (c-typeck.o): Delete on expr.h, insn-codes.h and - $(RTL_H). - (stor-layout.o): Likewise. - * c-typeck.c: Include rtl.h and expr.h. - * stor-layout.c: Likewise. - - * cpplib.c (cpp_file_line_for_message): Delete unused parameter. - All callers changed. - (do_sccs): Wrap in an SCCS_DIRECTIVE ifdef. - * fix-header.c (cpp_file_line_for_message): Delete unused paramter. - All callers changed. - - * collect2.c (is_in_list): Wrap inside COLLECT_EXPORT_LIST ifdef. - - * local-alloc.c (reg_classes_overlap_p): Delete dead function. - - * tree.h (lang_print_xnode): Provide prototype. - -Sat Mar 28 23:50:44 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Mar 29 00:42:21 1998 Jeffrey A Law (law@cygnus.com) - - * objc/sendmsg.c (__objc_block_forward): Add braces for return - value if INVISIBLE_STRUCT_RETURN. - - * pa.c (arith_double_operand): Fix parens. - - * haifa-sched.c (print_pattern): Correct arg to sprintf. - - * Makefile.in (libgcc1.null): Make return type for __foo void. - -Sat Mar 28 14:37:20 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h: Add declarations for many functions defined in pa.c. - - * genpeep.c (main): Remove unused variable 'i' from the generated - file. - - * genemit.c (gen_expand): Do not emit "_done" or "_fail" labels. - (gen_split): Likewise. - (main): Rework generated definitions of DONE and FAIL so that they - no longer use gotos. Avoids warnings about unused labels. - - * integrate.c (copy_rtx_and_substitute): Rework to avoid need for - unused "junk" variable. - - * genattrtab.c (write_complex_function): Add a default case in - generated switch statement to keep -W -Wall quiet. - -Sat Mar 28 10:47:21 1998 Nick Clifton <nickc@cygnus.com> - - * invoke.texi: Document more ARM and Thumb command line options. - - * config/arm/xm-thumb.h: New file. - -Sat Mar 28 01:37:33 1998 Craig Burley <burley@gnu.ai.mit.edu> - - * stmt.c (expand_expr_stmt): Must generate code for - statements within an expression (gcc's `({ ... )}') - even if -fsyntax-only. - -Sat Mar 28 01:06:12 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - Jeffrey A Law (law@cygnus.com) - - * basic-block.h (basic_block_computed_jump_target): Declare. - * flags.h: (current_function_has_computed_jump): Declare. - * flow.c: (basic_block_computed_jump_target): Define. - (flow_analysis): Allocate it. Set current_function_has_computed_jump - to 0. - (find_basic_blocks): Set current_function_has_computed_jump and - elements of basic_block_computed_jump_target to 1 as appropriate. - * function.c: (current_function_has_computed_jump): Define. - * global.c (global_conflicts): Don't allocate pseudos into stack regs - at the start of a block that is reachable by a computed jump. - * reg-stack.c (stack_reg_life_analysis): If must restart, do so - immediately. - (subst_stack_regs): Undo change from Sep 4 1997. - (uses_reg_or_mem): Now unused, deleted. - * stupid.c (stupid_life_analysis): Compute - current_function_has_computed_jump. - (stupid_find_reg): Don't allocate stack regs if the function has a - computed goto. - * haifa-sched.c (is_cfg_nonregular): Delete code to determine if - the current function has a computed jump. Use the global value - instead. - -Sat Mar 28 00:21:37 1998 Jeffrey A Law (law@cygnus.com) - - * i386/freebsd.h (CPP_PREDEFINES): Remove __386BSD__. - (DWARF2_UNWIND_INFO): Define to zero. - -Fri Mar 27 16:04:49 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (set_std_prefix): Add declaration. - (process_command): If GCC_EXEC_PREFIX is set, remove /lib/gcc-lib/ - suffix, and update the standard prefix prefix.c uses. - - * prefix.c (std_prefix): New global to hold default prefix value. - (get_key_value): Change to use std_prefix instead of PREFIX. - (translate_name): Ditto. - (update_path): Ditto. - (get_key_value): Release allocated scratch storage. - (set_std_prefix): New function to reset the standard prefix. - -Fri Mar 27 18:08:21 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (find_barrier): Fix calculations for alignment increase. - -Fri Mar 27 08:56:52 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (stmp-fixinc): If we're actually fixing include - files, copy gcc's assert.h into the fixed include dir. - * fixincludes (assert.h): Avoid any attempts to fix a probably - broken system specific assert.h file. - * fixproto (stdlib.h): Make sure, it'll contain a definition of - size_t. - -Fri Mar 27 00:49:46 1998 Jeffrey A Law (law@cygnus.com) - - * regclass.c (reg_scan_mark_refs): Be more selective about - when we mark a register with REGNO_POINTER_FLAG. - -Thu Mar 26 23:00:11 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - reload inheritance improvement: - * reload1.c (reg_reloaded_contents, reg_reloaded_insn): - Change meaning: index is now hard reg number. - (reg_reloaded_valid, reg_reloaded_dead): New variables. - (reload_spill_index): Content is now a hard reg number. - (reload_as_needed): Change to fit new variable meaning. - (forget_old_reloads_1, allocate_reload_reg): Likewise. - (choose_reload_regs, emit_reload_insns): Likewise. - -Thu Mar 26 18:34:13 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regclass.c (record_reg_classes): '?' increases cost by two. - - * reload.c (find_reloads): Double previous costs. Output - reloads cost one unit extra. - - * reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that - boiled down to && ! 0. - - * reload.c (find_equiv_reg): Also consider a goal offset from the - frame pointer to be constant. - -Thu Mar 26 17:34:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (OPTIMIZATION_OPTIONS): Define. - -Thu Mar 26 00:19:47 1998 Richard Henderson <rth@cygnus.com> - - * combine.c (make_compound_operation): Simplify (subreg (*_extend) 0). - -Wed Mar 25 23:53:11 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_adjust_cost): Avoid redundant calls to get_attr_type. - -Wed Mar 25 13:40:48 1998 Jim Wilson <wilson@cygnus.com> - - * c-common.c (check_format_info): Initialize type, is_type. New local - integral_format. Don't warn for 'L' when pedantic. Do warn for 'L' - when pedantic if used with integral format specifier. - -Wed Mar 25 16:09:01 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum - direction. - (function_arg_padding): Declare. - - * rs6000.c: Include system.h. - (function_arg_padding): Change return type to int, cast enum's to - int. - - (From Kaveh R. Ghazi <ghazi@caip.rutgers.edu>) - * collect2.c (scan_prog_file): Add explicit braces to avoid - ambiguous `else'. - - * dbxout.c (dbxout_type_fields): Add braces around empty body in - an if-statement. - (dbxout_type): Likewise. - - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg1' - and `reg2'. - - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Ditto. - - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. - -Wed Mar 25 10:05:19 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c: New File. Support for ARM's Thumb - instruction set. - * config/arm/thumb.h: New File. Thumb definitions. - * config/arm/thumb.md: New File. Thumb machine description. - * config/arm/tcoff.h: New File. Thumb COFF support. - * config/arm/t-thumb: New File. Thumb makefile fragment. - * config/arm/lib1thumb.asm: New File. Thumb libgcc support functions. - - * configure.in: Add Thumb-coff target. - * configure: Add Thumb-coff target. - * config.sub: Add Thumb-coff target. - -Wed Mar 25 10:30:32 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (scan_loop): Initialize move_insn_first to zero. - -Wed Mar 25 01:06:49 1998 Joel Sherrill (joel@OARcorp.com) - - * config/i386/go32-rtems.h: Defined TARGET_MEM_FUNCTIONS. - * config/i386/rtems.h: Likewise. - * config/i960/rtems.h: Likewise. - * config/m68k/rtems.h: Likewise. - * config/mips/rtems64.h: Likewise. - * config/pa/rtems.h: Likewise. - * config/rs6000/rtems.h: Likewise. - * config/sh/rtems.h: Likewise. - * config/sparc/rtems.h: Likewise. - -Wed Mar 25 00:57:26 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * pa.c (emit_move_sequence): If in reload, call find_replacement. - -Tue Mar 24 10:44:11 1998 Nick Clifton <nickc@cygnus.com> - - * Makefile.in (gcov$(exeext)): Support .exe extension to gcov. - - * collect2.c (find_a_file): Add debugging. - (find_a_file): Test for win32 style absolute paths if - DIR_SERPARATOR is defined. - (prefix_from_string): Add debugging. - (main): Test for debug command line switch at start of program - execution. - (main): Use GET_ENVIRONMENT rather than getenv(). - (prefix_from_env): Use GET_ENVIRONMENT. - -1998-03-24 Mark Mitchell <mmitchell@usa.net> - - * cplus-dem.c (optable): Add sizeof. - (demangle_template_value_parm): New function containing code - previously found in demangle_template. - (demangle_integral_value): New function which handles complicated - integral expressions. - (demangle_template): Use them. - -Tue Mar 24 12:13:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (genconfig.o, genflags.o, gencodes.o, genemit.o, - genopinit.o, genrecog.o, genextract.o, genpeep.o, genattr.o, - genattrtab.o, genoutput.o): Depend on system.h. - - * genattr.c: Include system.h. Add arguments to various function - prototypes. Remove redundant prototype of read_rtx(). - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - -1998-03-24 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * c-lang.c (lang_print_xnode): New function. - * objc/objc-act.c (lang_print_xnode): Likewise. - * print-tree.c (print_node): Call it - -Mon Mar 23 23:59:11 1998 H.J. Lu (hjl@gnu.org) - - * c-parse.in: Recognize protocol qualifiers in class - definitions for objc. - Include "output.h". - (yyerror): Remove redundant decl. - (yyprint): Fix prototype. - -Mon Mar 23 23:49:47 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (rtx_cost): Only call CONST_COSTS if it is defined. - - * stmt.c (unroll_block_trees): Free block_vector if needed. - -Mon Mar 23 23:26:42 1998 Philippe De Muyter <phdm@macqel.be> - - * m68k/m68k.md (zero_extendqidi2, zero_extendhidi2): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iordi_zext): New pattern. - (iorsi_zexthi_ashl16): Pattern reworked to avoid "0" constraint for - operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. - - * m68k/m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. - -1998-03-22 Mark Mitchell <mmitchell@usa.net> - - * tree.h (IS_EXPR_CODE_CLASS): New macro. - -Mon Mar 23 23:18:48 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.h (CONST_COSTS): Remove definition. - (DEFAULT_RTX_COSTS): Define. - -Mon Mar 23 22:58:22 1998 Joel Sherrill (joel@OARcorp.com) - - * config/sh/rtems.h: Switched from ELF to COFF. - -Mon Mar 23 14:14:20 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * freebsd.h (ASM_OUTPUT_ALIGN): Redefine. - -Sat Mar 21 23:52:56 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> - Geoff Noer <noer@cygnus.com> - - * Makefile.in: Various fixes for building cygwin32 native toolchains. - - * objc/Makefile.in: Various fixes for building cygwin32 native toolchains. - * objc/Make-lang.in: Likewise. - - * config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon. - -Sun Mar 22 00:21:46 1998 R. Ganesan <rganesan@novell.com> - - * configure.in: Handle with-PACKAGE=no correctly - -Fri Mar 20 17:36:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, - c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, - caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, - dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, - expr.o, final.o, flow.o, function.o, getpwd.o, global.o, - integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, - prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, - reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, - rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, - tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend - on system.h. - - * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, - c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, - caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, - dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, - expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, - integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, - prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, - reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, - rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, - stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, - xcoffout.c: Include system.h. Organize include ordering so - that stdarg/varargs comes before other system headers. Remove - spurious casts of functions assured of a prototype in system.h. - -Fri Mar 20 11:19:40 1998 Stan Cox <scox@equinox.cygnus.com> - - * reg-stack.c (pop_stack): Define. Pops any register on the - regstack and adjusts regstack. - (compare_for_stack_reg): Use pop_stack. - -Thu Mar 19 23:51:01 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa1.0-hp-hpux10): Handle threads for this - config too. - -Thu Mar 19 20:30:31 1998 Philippe De Muyter <phdm@macqel.be> - - * libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT. - - * fold-const.c (fold): Replace sign-extension of a zero extended - value by a single zero extension. - -Thu Mar 19 00:58:07 1998 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (init_eh): Do nothing. - (save_eh_status): Call init_eh_for_function, not init_eh. - * function.c (push_function_context_to): Don't call init_emit. - -Thu Mar 19 13:39:52 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. - -Thu Mar 19 10:10:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * final.c (shorten_branches): Add parentheses around +/- in - operand of &. - - * flow.c (life_analysis): Wrap variable `i' in macro ELIMINABLE_REGS. - -Thu Mar 19 09:15:17 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * regclass.c (memory_move_secondary_cost): Wrap uses of - SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS - with #ifdef tests. - -Thu Mar 19 09:06:35 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * config/m68k/m68k.md (addqi3): Fix typo gen_INT vs. GEN_INT. - - * flow.c (life_analysis): #include <sys/types.h> to make sure - size_t is defined. - * cplus-dem.c (demangle_function_name): Likewise. - -Thu Mar 19 09:00:01 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * final.c (insn_noperands): Change type to unsigned int. - (final_scan_insn): Likewise for noperands; - properly check operand number boundaries. - -Wed Mar 18 16:20:30 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (extzv): Don't reject register operands. Fix - mode of operand 1. - -Wed Mar 18 16:14:23 1998 Richard Henderson <rth@cygnus.com> - - * dbxout.c (dbxout_function_end): Fix last change. The correct - predicate is ASM_OUTPUT_SECTION_NAME. - -Wed Mar 18 12:43:20 1998 Jim Wilson <wilson@cygnus.com> - - * sh.md (ashlsi_c-1): Delete 3rd argument to gen_ashlsi_c. - (ashlsi): Use match_dup 1 instead of match_operand 2. - -Wed Mar 18 13:46:07 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. - -Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. - -Wed Mar 18 16:53:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * netbsd.h (ASM_OUTPUT_ALIGN): Redefine. - -Wed Mar 18 12:43:20 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (struct movable): New field move_insn_first. - (scan_loop): In consec sets code, set it. Clear it otherwise. - (move_movables): In consec sets code, use it. Copy REG_NOTES from - p to i1 only if i1 does not have REG_NOTES. Delete obsolete ifdefed - out code. - -Wed Mar 18 09:52:56 1998 Richard Henderson <rth@cygnus.com> - - * rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT - is large, and the system doesn't provide atoll or atoq. - (atoll): New. - - * alpha/xm-vms.h (HAVE_ATOLL): Define. - Reported by Klaus Kaempf <kkaempf@progis.de>. - -Wed Mar 18 09:56:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-lang.c (finish_file): Wrap variable `void_list_node' with macro - test !ASM_OUTPUT_CONSTRUCTOR || !ASM_OUTPUT_DESTRUCTOR. - - * calls.c (emit_call_1): Wrap variable `already_popped' with macro - test !ACCUMULATE_OUTGOING_ARGS. - - * collect2.c (write_c_file_glob): Wrap function definition in - macro test !LD_INIT_SWITCH. - - * combine.c (try_combine): Wrap variables `cc_use' and - `compare_mode' in macro test EXTRA_CC_MODES. - - * cpplib.c (do_ident): Remove unused variable `len'. - (skip_if_group): Remove unused variables `at_beg_of_line' and - `after_ident'. - (cpp_get_token): Remove unused variable `dummy'. - - * dbxout.c (scope_labelno): Move static variable definition inside - the one function scope where it is used. - (dbxout_function_end): Wrap prototype and definition in - macro test !NO_DBX_FUNCTION_END. - - * dwarf2out.c (add_subscript_info): Wrap variable `dimension_number' - in macro test !MIPS_DEBUGGING_INFO. - - * expr.c (expand_builtin_setjmp): Move declaration of variable `i' - into the scope where it is used. Wrap empty else-statement body - in braces. - - * fix-header.c: Fix typo in comment. - (inf_skip_spaces): Cast results of INF_UNGET to (void). - (check_protection, main): Likewise. - - * flow.c (find_basic_blocks_1): Remove dangling comment text. - - * function.c (contains): Wrap prototype and definition in macro - test HAVE_prologue || HAVE_epilogue. - (fixup_var_refs_1): Remove unused variable `width'. - - * gen-protos.c (main): Remove unused variable `optr'. - - * haifa-sched.c (debug_control_flow): Remove unused variable `j'. - - * libgcc2.c (__udiv_w_sdiv): Provide dummy return value of 0. - (__sjpopnthrow): Remove unused variable `jmpbuf'. - (__throw): Remove unused variable `val'. - - * protoize.c: Check for a previously existing definition before - defining *_OK macros. - - * scan-decls.c (scan_decls): Remove unused variable `old_written'. - -Tue Mar 17 00:45:48 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * vax.h (ADDR_VEC_ALIGN): Define. - -Mon Mar 16 15:57:17 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (default_arg): Don't wander off the end of allocated - memory. - - (From Geoffrey Keating <geoffk@ozemail.com.au>) - * rs6000.c (small_data_operand): Ensure that any address - referenced relative to the small data area is inside the SDA. - -Mon Mar 16 12:55:15 1998 Jim Wilson <wilson@cygnus.com> - - * config/m68k/netbsd.h (ASM_SPEC): Add %{m68060}. - -Mon Mar 16 15:50:20 EST 1998 Andrew MacLeod <amacleod@cygnus.com> - - * except.h (in_same_eh_region): New prototype. - (free_insn_eh_region, init_insn_eh_region): New prototypes. - * except.c (insn_eh_region, maximum_uid): New static variables. - (set_insn_eh_region): New static function to set region numbers. - (free_insn_eh_region): New function to free EH region table. - (init_insn_eh_region): New function to initialize EH region table. - (in_same_eh_region): New function used to determine if two rtl - instructions are in the same exception region or not. - * final.c (final): Initialize the table indicating which instructions - belong in which exception region. - * genpeep.c (main): Add "except.h" to include file list in generated - file insn-peep.c. - * config/sparc/sparc.md: Add calls to 'in_same_eh_region' in 4 - peepholes involving calls and unconditional branches. - -Mon Mar 16 11:16:50 1998 Jim Wilson <wilson@cygnus.com> - - * README.gnat: New file. - -Mon Mar 16 11:14:20 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.c: Include <stdlib.h> for atoi. Include - "recog.h" for offsettable_memref_p. - (legitimize_pic_address): Remove unused variable `offset'. - (notice_update_cc): Change return type to void. Add default label - to switch. - (standard_68881_constant_p): Remove unused variable mode. - (print_operand): Define local variable i only if SUPPORT_SUN_FPA. - (const_int_cost): Explicitly declare as returning int. - (output_dbcc_and_branch): Change return type to void. - - * config/m68k/linux.h, config/m68k/m68k.md, config/m68k/m68k.c, - config/m68k/m68k.h: Replace gen_rtx (XXX, ...) with gen_rtx_XXX - (...). Use GEN_INT instead of gen_rtx_CONST_INT. - -Sun Mar 15 22:30:44 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Fri Mar 13 11:30:12 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Fix logic in range - check for 'M' constraint. - -Thu Mar 12 14:47:14 1998 Jim Wilson <wilson@cygnus.com> - - * cccp.c (create_definition): If pedantic, call pedwarn for macro - varargs feature. - -Thu Mar 12 13:43:25 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * i386.c (ix86_logical_operator): New function. - (split_di): Ensure that when a MEM is split, the resulting MEMs have - SImode. - * i386.md (anddi3, xordi3, iordi3): New patterns. Add a define_split - to implement them. - -Thu Mar 12 15:13:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - Richard Earnshaw <rearnsha@arm.com> - Nick Clifton <nickc@cygnus.com> - - * tm.texi (DEFAULT_RTX_COSTS): Document new macro. - - * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS. - - * cse.c (rtx_cost): Provide a default case in an enumeration - switch, and call DEFAULT_RTX_COSTS if it's defined. - -Thu Mar 12 10:02:38 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * basic-block.h (compute_preds_succs): Change return type in - prototype to void. - * flow.c (compute_preds_succs): Likewise in function definition. - - * regmove.c (find_matches): Cast char used as array index to unsigned char - to supress warning. - -Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * i386.h (RTX_COSTS): Insert braces around nested if. - (ADDITIONAL_REGISTER_NAMES): Insert braces around structured - elements. - - * gcc.c (default_compilers): Properly put brackets around array elements in - initializer. - - * getopt.c (_getopt_internal): Add explicit braces around nested if; - reformatted. - - * reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's. - (record_reg_life_pat): Add explicit parens around && and || in expression. - (stack_reg_life_analysis): Add parens around assignment used as expression. - (convert_regs): Likewise. - -Thu Mar 12 09:25:29 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * bitmap.c (bitmap_element_allocate): Remove unused parameter; - change callers accordingly. - - * cplus-dem.c (arm_special): Remove unused parameter work in prototype - and definition; change all callers accordingly. - - * except.c (init_eh): Avoid assignment of unused return value of - build_pointer_type; cast it to void, instead, and remove unused - variable type. - - * gcc.c (lang_specific_driver): Define prototype only #ifdef - LANG_SPECIFIC_DRIVER. - (temp_names): Define only #ifdef MKTEMP_EACH_FILE. - - * genoutput.c (output_epilogue): Initialize next_name to 0. - - * real.c (efrexp): #if 0 prototype and function definition. - (eremain): Likewise. - (uditoe): Likewise. - (ditoe): Likewise. - (etoudi): Likewise. - (etodi): Likewise. - (esqrt): Likewise. - - * reload.c (push_secondary_reload): Define prototype only - #ifdef HAVE_SECONDARY_RELOADS. - - * varasm.c (assemble_static_space): Define rounded only - #ifndef ASM_OUTPUT_ALIGNED_LOCAL. - -Thu Mar 12 09:11:35 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * i386.md (andsi): Add default case in enumeration switch. - (iorsi3): Likewise. - (iorhi3): Likewise. - (xorsi3): Likewise. - -Thu Mar 12 08:37:02 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * c-decl (finish_struct): Change type of min_align to unsigned. - - * cplus-dem.c (demangle_function_name): Change type of variable i to size_t; - remove unused variable len. - - * dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a - comment indicating this is proper behaviour. - (reg_loc_descriptor): Remove redundant comparison of unsigned variable - reg >= 0. - (based_loc_descr): Likewise. - - * enquire.c (bitpattern): Change type of variable i to unsigned. - - * final.c (output_asm_insn): Don't cast insn_noperands to unsigned. - - * flow.c (life_analysis): Change type of variable i to size_t; - remove unused variable insn. - - * gcc.c (translate_options): Change type of variables optlen, arglen and - complen to size_t. - (input_filename_length): Change type to size_t. - (do_spec_1): Change type of variable bufsize to size_t. - (main): Change type of variables i and j to size_t; - remove subblock local definition of variable i. - (lookup_compiler): Change type of second argument to size_t; - change type of variable i to size_t. - - * genemit.c (output_init_mov_optab): Change type of variable i to size_t. - - * genopinit.c (get_insn): Change type of variable pindex to size_t. - - * genrecog.c (add_to_sequence): Change type of variable i to size_t. - - * global.c (global_alloc): Change type of variable i to size_t. - - * regclass.c (init_reg_sets): Change type of variables i and j to unsigned. - - * stmt.c (expand_end_bindings): Change type of variable i to size_t. - (expand_end_case): Change type of variable count to size_t. - - * toplev.c (main): Change type of variable j to size_t. - (set_target_switch): Change type of variable j to size_t. - (print_switch_values): Change type of variable j to size_t; - remove unused variable flags. - - * varasm.c (assemble_variable): Change type of variable align to size_t. - (const_hash_rtx): Change type of variable i to size_t. - -1998-03-11 Mark Mitchell <mmitchell@usa.net> - - * dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a - TREE_VEC if that's what it really is. - -Wed Mar 11 15:16:01 1998 Michael Meissner <meissner@cygnus.com> - - * {haifa-,}sched.c (rank_for_schedule): Only take void * arguments - as per ISO C spec. - -Wed Mar 11 12:05:20 1998 Teemu Torma <tot@trema.com> - - * gthr.h: Changed the comment about return values. - * gthr-solaris.h (__gthread_once): Do not use errno; return the - error number instead of -1. - (__gthread_key_create): Any non-zero return value is an error. - * libgcc2.c (eh_context_initialize): Check for non-zero return - value from __gthread_once. - Check that the value of get_eh_context was really changed. - -Wed Mar 11 18:26:25 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (LOOP_ALIGN): Only align when optimizing. - * sh.c (find_barrier): Clear inc for CODE_LABELs. - When not optimizing, calculate alignment for BARRIERs directly. - -Wed Mar 11 15:07:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Remove conditionalizing on - SHORTEN_WITH_ADJUST_INSN_LENGTH - * sh.h, pa.h (SHORTEN_WITH_ADJUST_INSN_LENGTH): Remove. - -Wed Mar 11 02:37:41 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks_1): Keep the cfg accurate when removing - an unconditional jump around deleted blocks. - -Mon Mar 9 12:02:23 1998 Jim Wilson <wilson@cygnus.com> - - * profile.c (branch_prob): If see computed goto, call fatal instead of - abort. - - * config/mips/sni-svr4.h (CPP_PREDEFINE): Add -DSNI and -Dsinix. - - * configure.in (alpha-dec-osf): Add default case for osf* to switch. - Patch from Bruno Haible. - - * function.c (put_reg_into_stack): Copy MEM_IN_STRUCT_P from new. - (assign_parms): Set aggregate if hide_last_arg and last_named. - -Mon Mar 9 19:57:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Initialize insn_addresses. - -Mon Mar 9 14:10:23 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (MUST_PASS_IN_STACK): Define. - -Sun Mar 8 13:01:56 1998 Jeffrey A Law (law@cygnus.com) - - * final.c (shorten_branches): Fix minor logic error in - ADDR_DIFF_VEC shortening support. - -Sun Mar 8 02:17:42 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Mar 7 00:54:15 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (is_cfg_nonregular): Change return type to - an int. No longer compute "estimated" number of edges. Use - computed_jump_p instead of duplicating the code. Fixup/add - some comments. - (build_control_flow): Returns a value indicating an irregularity - in the cfg was detected. Count the number of edges in the cfg. - allocate various edge tables. - (find_rgns): No longer look for unreachable blocks. - (schedule_insns): Do not allocate memory for edge tables here. - Free memory for edge tables before returning. Do not perform - cross block scheduling if build_control_flow returns nonzero. - * flow.c (compute_preds_succs): More accurately determine when - a block drops in. - - * basic-block.h (free_basic_block_vargs): Provide prototype. - - * cccp.c (main): Fix dumb mistakes in last change. - -Fri Mar 6 21:28:45 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (addr_diff_vec_flags): New typedef. - (union rtunion_def): New member rt_addr_diff_vec_flags. - (ADDR_DIFF_VEC_FLAGS): New macro. - - * sh.c (output_branch): Fix offset overflow problems. - - * final.c (shorten_branches): Implement CASE_VECTOR_SHORTEN_MODE. - (final_scan_insn): New argument BODY for ASM_OUTPUT_ADDR_DIFF_ELT. - * rtl.def (ADDR_DIFF_VEC): Three new fields (min, max and flags). - * stmt.c (expand_end_case): Supply new arguments to - gen_rtx_ADDR_DIFF_VEC. - * 1750a.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY. - * alpha.h, arc.h, clipper.h, convex.h : Likewise. - * dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h : Likewise. - * i370.h, i386.h, i860.h, i960.h, m32r.h, m68k.h, m88k.h : Likewise. - * mips.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pyr.h : Likewise. - * rs6000.h, sh.h, sparc.h, spur.h, tahoe.h, v850.h : Likewise. - * vax.h, we32k.h, alpha/vms.h, arm/aof.h, arm/aout.h : Likewise. - * i386/386bsd.h, i386/freebsd-elf.h : Likewise. - * i386/freebsd.h, i386/linux.h : Likewise. - * i386/netbsd.h, i386/osfrose.h, i386/ptx4-i.h, i386/sco5.h : Likewise. - * i386/sysv4.h, m68k/3b1.h, m68k/dpx2.h, m68k/hp320.h : Likewise. - * m68k/mot3300.h, m68k/sgs.h : Likewise. - * m68k/tower-as.h, ns32k/encore.h, sparc/pbd.h : Likewise. - * sh.h (INSN_ALIGN, INSN_LENGTH_ALIGNMENT): Define. - (CASE_VECTOR_SHORTEN_MODE): Define. - (short_cbranch_p, align_length, addr_diff_vec_adjust): Don't declare. - (med_branch_p, braf_branch_p): Don't declare. - (mdep_reorg_phase, barrier_align): Declare. - (ADJUST_INSN_LENGTH): Remove alignment handling. - * sh.c (uid_align, uid_align_max): Deleted. - (max_uid_before_fixup_addr_diff_vecs, branch_offset): Deleted. - (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Deleted. - (cache_align_p, fixup_aligns, addr_diff_vec_adjust): Deleted. - (output_far_jump): Don't use braf_branch_p. - (output_branchy_insn): Don't use branch_offset. - (find_barrier): Remove checks for max_uid_before_fixup_addr_diff_vecs. - Remove paired barrier stuff. - Don't use cache_align_p. - Take alignment insns into account. - (fixup_addr_diff_vecs): Reduce to only fixing up the base label of - the addr_diff_vec. - (barrier_align, branch_dest): New function. - (machine_dependent_reorg, split_branches): Remove infrastructure - for branch shortening that is now provided in the backend. - * sh.md (short_cbranch_p, med_branch_p, med_cbranch_p): New attributes. - (braf_branch_p, braf_cbranch_p): Likewise. - (attribute length): Use new attributes. - (casesi_worker): Get mode and unsignednedd from ADDR_DIFF_VEC. - (addr_diff_vec_adjust): Delete. - (align_2): Now a define_expand. - (align_log): Now length 0. - -Fri Mar 6 14:41:33 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.md (right): Correctly check for length == 2, not 1. - -Fri Mar 6 14:00:04 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips/mips.h: Prototype `machine_dependent_reorg'. - (ASM_OUTPUT_ALIGN): Remove unused variable `mask'. - -Fri Mar 6 11:43:35 1998 Joern Rennecke (amylaar@cygnus.co.uk) - - * final.c (shorten_branches): Restore accidentally removed code. - -Fri Mar 6 11:00:49 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * configure.in: Remove duplicate uses of AC_PROG_CC and - AC_PROG_MAKE_SET. - -Fri Mar 6 00:59:30 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (target_cpu_default2): Correct typo for alphapca56. - -Thu Mar 5 23:24:50 1998 Jeffrey A Law (law@cygnus.com) - Doug Evans (devans@cygnus.com) - - * haifa-sched.c (build_jmp_edges): Delete dead function. - (build_control_flow): Use cfg routines from flow.c - (schedule_insns): Remove debugging code accidentally checked - in earlier today. - - * basic-block.h: Add external integer list structures, typdefs, - accessor macros and function declarations. Simlarly for - basic block pred/succ support and simple bitmap stuff. - * flow.c: Add functions for integer list, basic block pred/succ - support and simple bitmap support. - (compute_dominators): New function to compute dominators and - post dominators. - (find_basic_blocks): Split into two functions. - (life_analysis): Likewise. - (flow_analysis): Removed. Now handled by calling find_basic_blocks, - the life_analysis from toplev.c - * toplev.c (rest_of_compilation): Call find_basic_blocks, then - life_analysis instead of flow_analysis. - -Thu Mar 5 23:06:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * jump.c (jump_optimize): Call mark_jump_label also for deleted - insns. - (mark_jump_label): Don't increment ref counts for deleted insns. - -Thu Mar 5 09:55:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips/iris6.h (TARGET_DEFAULT): Parenthesize macro definition. - - * mips/mips.c: Include stdlib.h and unistd.h. - (mips_asm_file_end): Add braces around empty body in an if-statement. - (function_prologue): Wrap variable `fnname' in - !FUNCTION_NAME_ALREADY_DECLARED. Correct format specifier in fprintf. - (mips_select_rtx_section, mips_select_section): Declare as void. - - * mips/mips.h: Add prototypes for extern functions in mips.c. - (FUNCTION_ARG_REGNO_P): Add parentheses around && within ||. - (ENCODE_SECTION_INFO): Add braces around empty body in an - if-statement. - - * mips/mips.md (movdi): Add parentheses around && within ||. - (movsf, movdf): Likewise. - (branch_zero, branch_zero_di): Add default case in - enumeration switch. - - -Thu Mar 5 02:45:48 1998 Richard Henderson <rth@cygnus.com> - - * alpha/alpha.h (TARGET_WINDOWS_NT, TARGET_OPEN_VMS): Just make them - real constants, since they can't be changed. - (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/alpha.md (builtin_setjmp_receiver): Use it. - * alpha/osf.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/osf2or3.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/vms.h (TARGET_OPEN_VMS): New. - * alpha/win-nt.h (TARGET_WINDOWS_NT): New. - -Thu Mar 5 02:41:27 1998 Richard Henderson <rth@cygnus.com> - - * reload.c (find_reloads): Always force (subreg (mem)) to be - reloaded if WORD_REGISTER_OPERATIONS. - -Thu Mar 5 02:14:44 1998 Richard Henderson <rth@cygnus.com> - - * haifa-sched.c (free_list): Rename from free_pnd_lst. - (free_pending_lists): Rename free_pnd_lst uses. - (remove_dependence): Place expunged element on unused_insn_list. - (alloc_INSN_LIST, alloc_EXPR_LIST): New. Change all callers of - gen_rtx_*_LIST and alloc_rtx to use them. - (compute_block_backward_dependences): Free the reg_last_* lists. - -Thu Mar 5 00:05:40 1998 Jeffrey A Law (law@cygnus.com) - - * cccp.c (main): Avoid undefined behavior when setting pend_includes - and pend_files. - -Wed Mar 4 21:58:25 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> - - * rs6000/linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if - USE_GNULIBC_1 is defined - * configure.in: add a new case powerpc-*-linux-gnulibc1 which - includes the t-linux-gnulibc1 fragment - -Wed Mar 4 12:11:36 1998 Jim Wilson <wilson@cygnus.com> - - * mips.md (movdf_internal1a): Fix misplaced parenthesis in condition. - -Wed Mar 4 18:47:48 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (final_scan_insn, case CODE_LABEL: Cleanup. - -Wed Mar 4 15:51:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Tag the loop alignment onto the - first label after NOTE_INSN_LOOP_BEG even if there is an - intervening insn. - -Tue Mar 3 21:48:35 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (insn_current_reference_address): - Use SEQ instead of BRANCH as argument to align_fuzz, to get a - proper alignment chain. - - * final.c (max_labelno): New static variable. - (final_scan_insn): Check max_labelno before outputting an - alignment for a label. - (shorten_branches): Remove unused variable length_align. - -Tue Mar 3 14:27:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc.c (ultrasparc_adjust_cost): Add default case in - enumeration switch. - - * sparc.h: Add prototypes for extern functions defined in - sparc.c. - -Tue Mar 3 10:00:11 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c: Only generate <name>.dbr file when dumping RTL if - DEALY_SLOTS is defined. - -Tue Mar 3 07:36:37 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * reorg.c (fill_eager_delay_slots): Add new argument delay_list - in call to fill_slots_from_thread. - -Mon Mar 2 13:45:03 1998 Richard Henderson <rth@cygnus.com> - - * alpha/linux.h (CPP_PREDEFINES): Correct connecting whitespace - to SUB_CPP_PREDEFINES. Reported by asun@saul4.u.washington.edu. - -Mon Mar 2 22:59:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (insn_last_address, insn_current_align, uid_align): - New variables. - (in_align_chain, align_fuzz, align_shrink_fuzz): New functions. - (insn_current_reference_address): Likewise. - (shorten_branches, final_scan_insn): Implement LABEL_ALIGN, - LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros. - (label_to_alignment): New function. - * genattrtab.c (write_test_expr): If one of LABEL_ALIGN, - LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call - insn_current_reference_address instead of insn_current_address. - (or_attr_value, write_length_unit_log): New functions. - (main): Call write_length_unit_log. - (write_const_num_delay_slots): Output extra '\n'. - * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): - replace with: - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER). - * i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise. - * arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): replace with: - (LOOP_ALIGN). - * i960.h, m88k.h: (ASM_OUTPUT_ALIGN_CODE): Replace with: - (LABEL_ALIGN_AFTER_BARRIER). - * ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise. - * ns32k/tek6000.h: Likewise. - * i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete. - * i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of - ASM_OUTPUT_ALIGN_CODE. - -Mon Mar 2 01:05:50 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Mar 2 00:52:18 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Mar 1 18:25:49 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. - - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. - -Sun Mar 1 18:26:21 1998 Ken Rose (rose@acm.org) - - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. - -Sun Mar 1 18:25:37 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * frame.c (start_fde_sort, fde_split, heapsort, fde_merge, - end_fde_sort): New functions for fast sorting of an FDE array. - (fde_insert): Simplified. - (add_fdes): Change argument list. - (frame_init): Use the new functions. - -Sun Mar 1 18:06:21 1998 Jeffrey A Law (law@cygnus.com) - - * ginclude/va-ppc.h (va_arg): Fix typo in long long support. - - * i386.c (reg_mentioned_in_mem): Fix dangling else statement. - - * fold-const.c (fold_range_test): Always return a value. - -Sun Mar 1 17:57:34 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * config/i386/winnt.c (i386_pe_unique_section): Put read-only - data in the text section unless READONLY_DATA_SECTION is defined. - -Sun Mar 1 17:48:46 1998 Jeffrey A Law (law@cygnus.com) - - * c-parse.in (undeclared variable error): Tweak error message to - be clearer. - -Sun Mar 1 10:22:36 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1998-02-28 Mark Mitchell <mmitchell@usa.net> - - * final.c (final_scan_insn): Undo overzealous removal of `set'. - -Sat Feb 28 07:54:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * pa.h (CONST_COSTS): When checking the CONST_DOUBLE enumerated - case, add parentheses to specify the proper order of precedence in - the if-statement. - - - * c-aux-info.c: Include string.h/strings.h. - - * pa.c: Include stdlib.h. - (pa_combine_instructions): Prototype the function. - (pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise. - (reloc_needed): Add default case for enumeration switch. - (remove_useless_addtr_insns): Remove unused variable `all'. - (hppa_expand_prologue): Add explicit braces to avoid - ambiguous `else'. - (output_function_epilogue): Remove unused variable `i'. - (output_millicode_call): Remove unused variable `link'. - (shadd_constant_p, forward_branch_p): Make the function static. - (following_call): Explicitly declare to return int. - (pa_reorg): Declare as void. - (pa_combine_instructions): Declare as static void. Add - parentheses around && within ||. - - * pa.h: Add prototypes for pa_reorg, symbolic_operand, - following_call, function_label_operand, lhs_lshift_cint_operand - and zdepi_cint_p. - - * pa.md: Add parentheses around && within ||. - - * cppalloc.c: Include stdlib.h. - - * cpperror.c (cpp_print_containing_files): Remove unused variable - `i'. Fix format specifier in fprintf. - - * cse.c (cse_around_loop): Add explicit braces to avoid - ambiguous `else'. - (delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0. - - * expr.c (expand_expr): Add parentheses around && within ||. - - * final.c (app_enable): Replace fprintf with fputs where there are - no format specifiers and no trailing argument after the string. - Eg, when printing ASM_APP_ON/ASM_APP_OFF. - (app_disable): Likewise. - (final_end_function): Likewise. - (final_scan_insn): Likewise. Remove unused variable `set'. - (profile_function): Wrap empty if-statement body in {} brackets. - - * function.c: Include stdlib.h. - (pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD. - (reposition_prologue_and_epilogue_notes): Add parentheses - around assignment used as truth value. - - * integrate.c (expand_inline_function): Wrap variable - `cc0_insn' in macro HAVE_cc0. - - * jump.c (jump_optimize): Wrap variable `q' in macro - HAVE_cc0. Remove unused variable `prev1'. - - * libgcc2.c (__bb_exit_trace_func): Add parentheses around && - within ||. Fix format specifier in fprintf. - (__bb_init_prg): Add parentheses around assignment used as - truth value. - - * local-alloc.c: Include stdlib.h. - (requires_inout): Add parentheses around assignment used - as truth value. - - * loop.c (analyze_loop_iterations): Wrap prototype and definition - in macro HAVE_decrement_and_branch_on_count. - (insert_bct, instrument_loop_bct): Likewise. - (move_movables): Add parentheses around assignment used as - truth value. - (consec_sets_invariant_p): Likewise. - (maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0. - - * objc/objc-act.c: Include stdlib.h. - (lookup_method_in_protocol_list): Wrap empty else-statement body - in braces. - (lookup_protocol_in_reflist): Likewise. - (objc_add_static_instance): Remove unused variables `decl_expr' - and `decl_spec'. - (get_objc_string_decl): Remove unused variable `decl'. - (generate_static_references): Remove unused variables `idecl' and - `instance'. - (check_protocols): Wrap empty else-statement body in braces. - - * protoize.c: Include stdlib.h. - (substr): Add parentheses around assignment used as truth value. - (abspath): Likewise. - (shortpath): Likewise. - - * regmove.c (fixup_match_1): Add parentheses around assignment - used as truth value. - - * reload.c (push_secondary_reload): Remove unused variable `i'. - (find_reloads): Add parentheses around assignment used as truth - value. - - * reload1.c: Include stdlib.h. - - * rtl.h: Correct typo in prototype of offsettable_memref_p. - - * stmt.c (add_case_node): Add parentheses around assignment used - as truth value. - (case_tree2list): Likewise. - - * tree.c (valid_machine_attribute): Wrap variable `decl_attr_list' - in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable - `type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE. - (merge_attributes): Add explicit braces to avoid ambiguous - `else'. - - * unroll.c (copy_loop_body): Wrap variable `cc0_insn' in - macro HAVE_cc0. - - * varasm.c: Include stdlib.h. - - - * system.h: Remove sys/stat.h. - * gcc.c: Add sys/stat.h. - - * genattr.c: Wrap prototype of `free' in NEED_DECLARATION_FREE. - * genattrtab.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * tlink.c: Likewise. Also wrap `getenv' in NEED_DECLARATION_GETENV. - -Fri Feb 27 11:02:47 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * invoke.texi: Use @itemx for a secondary item in a @table. - - * config/m68k/m68k.md (movsf+1): Optimize moving a CONST_DOUBLE - zero. - -Thu Feb 26 00:13:21 1998 Ian Lance Taylor <ian@cygnus.com> - - * choose-temp.c: Fix handling of sys/file.h to work in libiberty. - -Wed Feb 25 23:40:54 1998 Jeffrey A Law (law@cygnus.com) - - * i386.c (struct machine_function): Add new fields for PIC stuff. - (save_386_machine_status): Fix argument to xmalloc. Save pic_label_rtx - and pic_label_name. - (restore_386_machine_status): Corresponding changes. - (clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name. - -Wed Feb 25 01:31:40 1998 Jeffrey A Law (law@cygnus.com) - - * c-parse.y (undeclared variable error): Tweak error message - to be clearer. - -Tue Feb 24 23:54:07 1998 Richard Henderson <rth@cygnus.com> - - * flags.h (g_switch_value, g_switch_set): Declare. - * alpha.c (override_options): Set g_switch_value=8 if not set. - * alpha/elf.h (CC1_SPEC): New. - (ASM_SPEC): New. - (LINK_SPEC): Pass along the -G value we were given. - (LOCAL_ASM_OP): Remove. - (ASM_OUTPUT_ALIGNED_LOCAL): Output to .bss or .sbss by size. - (MAX_OFILE_ALIGNMENT): New. - (BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP): New. - (EXTRA_SECTIONS): Add sbss and sdata. - (SECTION_FUNCTION_TEMPLATE): New. - (EXTRA_SECTION_FUNCTIONS): Use it. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. - (SELECT_SECTION): Use sdata when small enough. - * alpha/linux.h (ASM_SPEC): Remove. - - -Mon Feb 23 15:09:18 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - * config.sub (sco5): Fix typo. - -Mon Feb 23 18:19:31 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * config/t-linux (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Add macros and - set to empty. - * config/t-linux-aout (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Likewise. - * config/alpha/t-linux: Remove file. - * config/sparc/t-linux: Remove file. - * config/m68k/t-linux (LIBGCC1, CROSS_LIBGCC1): Remove. - * config/m68k/t-linux-aout (LIBGCC1, CROSS_LIBGCC1): Likewise. - * configure.in (alpha*-*-linux-gnulibc1*): Use t-linux instead of alpha/t-linux - for tmake_file. - (alpha*-*-linux-gnu*): Likewise. - (sparc-*-linux-gnulibc1*): Use t-linux instead of sparc/t-linux for tmake_file. - (sparc-*-linux-gnu*): Likewise. - -Mon Feb 23 10:47:39 1998 Robert Lipe <robertl@dgii.com> - * collect2.c (ldd_file_name): Bracket declaration with same - manifests as use. - (full_real_ld_suffix): Deleted. Variable was calloced and - written into, but never read. - -1998-02-23 Mike Stump <mrs@wrs.com> - - * configure.in: Add support for i386-wrs-vxworks configuration. - * i386/vxi386.h: New file. - -Sun Feb 22 21:16:51 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * tree.c (contains_placeholder_p): Ensure function always returns - a value. - * sparc.md (movdi_sp64_insn): Add default case in enumeration switch. - (movsf_const_insn, movdf_const_insn, movtf_const_insn): Likewise. - -Sun Feb 22 20:58:19 1998 Jeffrey A Law (law@cygnus.com) - - * vms.h (SELECT_SECTION): Use TREE_CODE_CLASS correctly. - -1998-02-22 Paul Eggert <eggert@twinsun.com> - - * config/sparc/sol2-sld.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): - Define this new symbol. - (DWARF2_DEBUGGING_INFO, DWARF_DEBUGGING_INFO): Do not #undef. - * toplev.c (main): Do not default to DWARF2_DEBUG with -ggdb if - LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. - -Sun Feb 22 20:07:32 1998 Jim Wilson <wilson@cygnus.com> - - * iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. - -Sun Feb 22 15:29:48 1998 Richard Henderson <rth@cygnus.com> - - * objc/Object.m (-error): Call objc_verror with our va_list. - -Sun Feb 22 09:45:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * collect2.c (scan_prog_file): Completely cover uses of variable - `exports' with macro COLLECT_EXPORT_LIST. - -Sat Feb 21 20:36:23 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Fri Feb 20 16:22:13 1998 Michael Meissner <meissner@cygnus.com> - - * sched.c (schedule_block): Remove code to get arguments from hard - regs into pseudos early. Same as Aug 25, 1997 change to - haifa-sched.c. - -1998-02-20 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c (main): Still handle !do_collecting for non-AIX targets. - -1998-02-16 Mark Mitchell <mmitchell@usa.net> - - * toplev.c (rest_of_compilation): Do not defer the output of a - nested function. - -Fri Feb 20 10:39:47 1998 Michael Tiemann <michael@impact.tiemann.org> - - * ginclude/va-mips.h (va_arg): Remove trailing space after '\' - continuation character (line 243). - -Fri Feb 20 12:10:26 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * genrecog.c (main): Remove duplicated sentence in emitted comment. - -Thu Feb 19 22:36:53 1998 Andrey Slepuhin <pooh@msu.net> - David Edelsohn <edelsohn@mhpcc.edu> - - * collect2.c (XCOFF_SCAN_LIBS): Remove. - (export_flag): New variable. - (export_file): #ifdef COLLECT_EXPORT_LIST. - (import_file, exports, imports, undefined): New variables. - (libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same. - (dump_list, dump_prefix_list, is_in_list): New functions. - (write_export_file): $ifdef COLLECT_EXPORT_LIST. - (write_import_file, resolve_lib_name): New functions. - (use_import_list, ignore_library): Same. - (collect_exit): maybe_unlink import_file and #ifdef. - (handler): Same. - (main): New variable importf, #ifdef exportf. Move parsing of - -shared before general argument parsing. Resolve AIX library - paths and import libgcc.a symbols. Treat .so shared libraries the - same as objects and .a libraries. Create alias for object_lst and - increment it instead of original pointer. Scan AIX libraries as - objects earlier instead of using scan_libraries. Perform AIX - tlink later to resolve templates instead of forking ld. - (GCC_OK_SYMBOL): Ensure symbol not in undef section. - (GCC_UNDEF_SYMBOL): New macro. - (scan_prog_file): Loop for members of AIX libraries. Handle - export/import of ctors/dtors. - (aix_std_libs): New variable. - (scan_libraries, XCOFF): Delete. - -Thu Feb 19 22:36:52 1998 Robert Lipe <robertl@dgii.com> - - * collect2.c (full_real_ld_suffix): #ifdef CROSS_COMPILE. - -1998-02-19 Mike Stump <mrs@wrs.com> - - * Makefile.in: Use $tooldir for sys-include to match toplevel - configure. - -Thu Feb 19 01:32:37 1998 Jeffrey A Law (law@cygnus.com) - Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__. - - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. - - * combine.c: Revert previous patch. - -1998-02-19 Paul Eggert <eggert@twinsun.com> - - * config/sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using the - system linker. - -Thu Feb 19 00:46:59 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (force_movables): Fix typo. - -Thu Feb 19 08:26:30 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * m88k.h: Change file pattern to match reality. - -Wed Feb 18 23:19:52 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (output_constant_pool): Fix dumb thinko in last - change. - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Correctly translate from - a function name to a section name. - -1998-02-18 Doug Evans <devans@cygnus.com> - - * tree.h (merge_machine_{type,decl}_attributes): Declare. - (split_specs_attrs, strip_attrs): Add prototypes. - * tree.c (merge_machine_{type,decl}_attributes): New functions. - * c-decl.c (duplicate_decls): Call merge_machine_decl_attributes. - Update olddecl's attributes too. - * c-common.c (strip_attrs): New function. - * c-typeck.c (common_type): Call merge_machine_type_attributes. - * varasm.c (make_function_rtl): New target macro REDO_SECTION_INFO_P. - (make_decl_rtl): Likewise. - -1998-02-18 Jim Wilson <wilson@cygnus.com> - - * c-decl.c (shadow_tag_warned): Call split_specs_attrs. - -Wed Feb 18 09:09:50 1998 Jeffrey A Law (law@cygnus.com) - - Remove this change until we can fix it correctly. - * collect2.c: Bracket declaration of 'exportf' and - 'full_real_ld_suffix'. - -Wed Feb 18 08:44:25 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> - - * Makefile.in (STAGESTUFF): Add genrtl.c, genrtl.h and gengenrtl. - -Tue Feb 17 23:30:20 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> - - * c-common.c (c_expand_start_cond, c_expand_end_cond, - c_expand_start_else): Don't warn about non-ambiguous else even if - braces are missing. - -Tue Feb 17 23:56:50 1998 Robert Lipe <robertl@dgii.com> - - * sco5.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_LONG_DOUBLE): Delete. Use the ones from i386.h - instead. - -Tue Feb 17 22:56:14 1998 Richard Henderson <rth@cygnus.com> - - * combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when - simplifying a subreg of a hard reg. - (expand_compound_operation): Likewise. - (force_to_mode): Likewise. - -Tue Feb 17 22:37:22 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fold-const.c: Include "system.h" to get stdlib.h and stdio.h. - (lshift_double): Add parentheses around + or - inside shift. - (rshift_double): Likewise. - (size_int_wide): Explicitly set type of `bit_p' to `int'. - - * Makefile.in (fold-const.o): Depend on system.h. - - * Makefile.in (gcc.o): Depend on system.h, in accordance with last - change to gcc.c. - - * haifa-sched.c: Include "system.h" to get <stdlib.h> and <stdio.h>. - (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. - (sched_note_set): Remove unused parameter `b', all callers changed. - (schedule_block): Likewise for `rgn'. - (split_hard_reg_notes): Likewise for `orig_insn'. - (check_live): Likewise for `trg'. - (update_live): Likewise. - (check_live_1): Explcitly declare variable `i' as int. - (update_live_1): Likewise. - (insn_issue_delay): Remove unused variable `link'. - (sched_analyze_2): Add default case in enumeration switch. - (schedule_insns): Remove unused variable `i'. - - * Makefile.in ($(SCHED_PREFIX)sched.o): Depend on system.h. - -Tue Feb 17 22:31:04 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (rtx_equal_for_loop_p): Add some braces to disambiguate - a dangling else clause. - -Tue Feb 17 21:28:12 1998 Gavin Koch <gavin@cygnus.com> - - * mips/mips.h (CAN_ELIMINATE): Don't eliminate the frame - pointer for the stack pointer in MIPS16 and 64BIT. - -Tue Feb 17 21:17:30 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (force_line_numbers, restore_line_number_status): Declare. - * emit-rtl.c (force_line_numbers, restore_line_number_status): - New functions. - * stmt.c (struct nesting): Replace seenlabel with line_number_status. - (expand_start_case): Adjust to this change. - (check_seenlabel): New function. - (pushcase, pushcase_range, expand_endcase): Use it. - -Tue Feb 17 10:14:32 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * i386.md (adddi3): Add =!r,0,0,X alternative. - -Mon Feb 16 16:13:43 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (MY_ISCOFF): Add numeric value of U803XTOCMAGIC. - * x-aix31 (INSTALL): Delete. - -Mon Feb 16 09:24:32 1998 Gavin Koch <gavin@cygnus.com> - - * mips/mips.c (mips_expand_epilogue): Update tsize_rtx if - tsize changes to something other than zero. - -Mon Feb 16 09:11:48 1998 Gavin Koch <gavin@cygnus.com> - - * ginclude/va-mips.h: Replace casts of pointers to int with - casts of pointers to __PTRDIFF_TYPE__. - -Mon Feb 16 08:17:14 1998 John Carr <jfc@mit.edu> - - * loop.c (strength_reduce, record_biv, record_giv): Use - HOST_WIDE_INT_PRINT_DEC to print CONST_INT values. - -1998-02-16 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (first_rtl_op): New fn. - (unsave_expr_now): Use it. - * print-tree.c (print_node): Likewise. - * tree.c (has_cleanups): New fn. - * fold-const.c (fold, case CLEANUP_POINT_EXPR): Use it. Be more - conservative about pushing the cleanup point down. - * tree.h: Declare them. - -Sun Feb 15 23:28:44 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (flag_schedule_reverse_before_reload): Delete variable. - (flag_schedule_reverse_after_reload): Likewise. - (f_options): Remove reverse scheduling support. - * flags.h (flag_schedule_reverse_before_reload): Delete declaration. - (flag_schedule_reverse_after_reload): Likewise. - * haifa-sched.c (rank_for_schedule): Remove support for reverse - scheduling. - -Sun Feb 15 21:33:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gcc.c: Get system includes, prototypes and macros via "system.h" - instead of doing it manually. Change all calls of the ctype - macros to custom versions defined in "system.h". - - * system.h: Fix return type of bcmp prototype from `void' to `int'. - Make bcopy, bcmp and bzero prototypes explicitly `extern'. - Add a prototype for getenv. - -Sun Feb 15 17:05:41 1998 Jim Wilson <wilson@cygnus.com> - - * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. - -Sun Feb 15 15:23:15 1998 John Carr <jfc@mit.edu> - - * alias.c: Include <stdlib.h> and <string.h>. - (init_alias_analysis): Pass NULL_RTX instead of 0 to record_set. - -Sat Feb 14 11:23:09 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Feb 14 05:08:21 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] when compiling hard - float. - (movdfcc): Only accept fpu_add_operand for operands[3]. - - * arm/t-semi (STMP_FIXPROTO): Define to nothing. - * arm/t-semiaof (STMP_FIXPROTO): Likewise. - -Sat Feb 14 02:02:41 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (output_constant_pool): Bring back 'done' label inside - an appropriate #ifdef. - - * bitmap.c (bitmap_element_allocate): Wrap variable 'i' in an - appropriate #ifdef. - (bitmap_copy, bitmap_operation): Likewise. - * combine.c (combinable_i3pat): Similarly for 'src'. - * function.c (fixup_var_refs_1): Similarly for 'outerdest'. - (locate_and_pad_parm): Similarly for 'reg_parm_stack_space'. - * regclass.c (copy_cost): Similarly for 'secondary_class'. - * reload.c (make_memloc): Simliarly for 'i'. - (find_reloads_address_1): Similarly for 'link'. - * reload1.c (reload): Similarly for 'previous_frame_pointer_needed'. - (emit_reload_insns): Similarly for 'second_reloadreg'. - * unroll.c (iteration_info): Similarly for 'v'. - - * caller-save.c (insert_save_restore): Remove unused variable 'i'. - * calls.c (expand_call): Similarly for 'i'. - (emit_library_call, emit_library_call_value): Similarly for 'mode'. - * fold-const.c (strip_compund_expr): Similarly for 'type'. - * function.c (fixup_var_refs_1): Similarly for 'width'. - (fixup_memory_subreg): Similarly for 'saved'. - (locate_and_pad_parm): Similarly for 'boundary_in_bytes.' - (setjmp_protect): Similarly for 'sub'. - (thread_prologue_and_epilogue_insns): Similarly for 'insn'. - * loop.c (record_giv): Similarly for 'p'. - (combine_givs): Similarly for 'temp_iv'. - (indirect_jump_in_function_p): Similarly for 'is_indirect_jump'. - * recog.c (validate_replace_rtx_1): Similarly for 'width'. - * tree.c (get_set_constructor_bytes): Similarly for 'vals'. - * unroll.c (unroll_loop): Similarly for 'copy'. - (iteration_info): Similarly for 'b'. - * varasm.c (assemble_string): Similarly for 'i'. - * i386.h (LEGITIMIZE_ADDRESS): Similarly for 'orig_x'. - -1998-02-13 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * c-lang.c (lang_print_xnode): New function. - * objc/objc-act.c (lang_print_xnode): Likewise. - * print-tree.c (print_node): Call it - -Fri Feb 13 14:38:34 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (decl_scope_node): New type. - (decl_scope_table): Change type to use it. - (decl_scope_table_allocated, decl_scope_depth): Change type to int. - (push_decl_scope): Use new type. New locals containing_scope, i. - Add code to handle setting previous field. - (scope_die_for): Change type of local i to int. Add code to use - previous field. - (dwarf2out_init): Use new type. - -1998-02-13 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (emit_throw): Lose throw_used. - -Fri Feb 13 20:36:05 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sched.c (update_flow_info, REG_WAS_0): Ignore if setting insn - was deleted. - * haifa-sched.c (update_flow_info, REG_WAS_0): Likewise. - -Fri Feb 13 12:18:40 1998 Jeffrey A Law (law@cygnus.com) - - * genextract.c (main): Fix typo. - -Fri Feb 13 08:41:49 1998 Robert Lipe <robertl@dgii.com> - - * c-lang.c (finish_file): Bracket declaration of static_ctors, - static_dtors. - - * calls.c (expand_call): Bracket declaration of 'rtx_before_call', - 'old_stack_arg_under_construction' - (emit_library_call): Bracket declaration of 'upper_bound', - 'lower_bound', 'i', 'reg_parm_stack_space' - (emit_library_call_value): Likewise. - (store_one_arg): - - * collect2.c: include <unistd.h> when appropriate. - Bracket declaration of 'exportf' and 'full_real_ld_suffix'. - - * emit-rtl.c (prev_cc0_setter): Remove unused variable 'link'. - - * explow.c (plus_constant_for_output_wide): Remove unused variable - 'code'. - (memory_address): Remove unused variable 'orig_x'. - - * genattrtab.c (make_canonical): Remove unreferenced label 'cond:'. - (write_const_num_delay_slots): Remove unused variable 'i'. - - * genopinit.c (main): Remove unused variables 'dummy', 'insn_ptr'. - (gen_insn): Remove unused variable 'obstack_ptr'. - - * libgcc2.c (__bb_exit_func): Remove unused variables 'ret', - 'j', 'tmp', 'i'. - (__bb_exit_trace_func): Remove unused variable 'e'. - - * optabs.c (expand_binop): remove unused variables 'lhs', 'rhs', - 'funexp'. - (expand_unop): Remove unused variable 'funexp'. - (expand_complex_abs): Remove unused variable 'funexp'. - (init_optabs): Bracket declaration of 'j'. - (init_complex_libfuncs): Deleted. Dead static function. - - * profile.c (branch_prob): Remove unused variables 'insn', 'dest'. - - * reg-stack.c: Fix typo in proto for 'get_asm_operand_lengths' - (reg_to_stack): 'initialized', 'before_function_beg' - explictly type as ints instead of defaulting. - (emit_swap_insn): Remove unused variable 'i2'. - (compare_for_stack_reg): Remove unused variable 'src_note'. - - * rtlanal.c (computed_jump_p): Remove unused variable 'computed_jump'. - - * sched.c (actual_hazard): Bracket declaration of 'this_cost'. - - * stmt.c (add_case_node): Add parens for assignment used as truth. - (all_cases_count): Remove unused variable 'count_high'. - (mark_seen_cases): Remove unused variable 'i'. - (check_for_full_enumeration_handling): Remove unused variable 't'. - Bracket declaration of 'all_values', 'l'. - - * tlink.c: Include <stdlib.h>, <unistd.h>, <string.h>/<strings.h>. - - * varasm.c (assemble_string): Remove unused variable 'i'. - (immed_double_const): Remove unused variable 'in_current_obstack'. - (immed_real_const_1): Likewise. - (output_constant_pool): Remove unreferenced label 'done'. - (output_constant): Remove unused variable 'x'. - - * i386/i386.h (ENCODE_SECTION_INFO): TREE_PUBLIC is an int, not - a string. - - * i386/sco5.h (ASM_OUTPUT_ASCII): Add parens for assignment used - as truth. - -Fri Feb 13 10:21:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (can_combine_p): Handle USEs in PARALLELs. - -Fri Feb 13 01:34:14 1998 H.J. Lu (hjl@gnu.org) - - * config/linux.h (LIB_SPEC): Add -lc for -shared if - USE_GNULIBC_1 is not defined. - * config/sparc/linux.h; Ditto. - - * config/sparc/linux64.h (LIB_SPEC): Add -lc for -shared. - - * config/alpha/linux-elf.h (LIB_SPEC): New. Defined if - USE_GNULIBC_1 is not defined. - -Fri Feb 13 01:29:29 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> - - * rs6000/sysv4.h (ENDFILE_SPEC): add missing %(endfile_linux) - for -mcall-linux - -Fri Feb 13 01:23:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h: New file to get common systems includes and various - definitions and declarations based on autoconf macros. - -Fri Feb 13 00:46:19 1998 Jeffrey A Law (law@cygnus.com) - - * cccp.c (new_include_prefix): Correctly handle -I./. - -Thu Feb 12 20:16:35 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. - -Thu Feb 12 16:45:17 1998 Robert Lipe <robertl@dgii.com> - - * expr.c (expand_assignment): Correct typo exposed by -Wall. - offset should have been a truth value, not an assignment. - -Thu Feb 12 15:26:50 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (delete_dead_from_cse): If a libcall produces a constant - result and that result can be substituted into SET_SRC of the - insn with the REG_RETVAL note, then perform the substitution - and delete the libcall. - -Thu Feb 12 14:04:09 1998 Gavin Koch <gavin@cygnus.com> - - * mips.md (trucndihi2,truncdiqi2): Change these to support - mips16. - -Thu Feb 12 11:34:55 1998 Gavin Koch <gavin@cygnus.com> - - * mips/mips.c (movdi_operand): Direct referances to symbols - that arn't mips16 consts in mips16 mode arn't valid operands. - - * mips/mips.c (mips_move_2words): Add gprel handling. - -Thu Feb 12 11:18:37 1998 Gavin Koch <gavin@cygnus.com> - - * mips.md (extendsidi2): Allow extension to/from a non-mips16 - register. - -Thu Feb 12 00:04:16 1998 Marc Lehmann <pcg@goof.com> - - * i386.c: Conditionally include <stdlib.h>, <string.h>, and - <strings.h>. - -Wed Feb 11 11:43:34 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (WARN_CFLAGS): New variable. - (bootstrap, bootstrap2, bootstrap3, bootstrap4): Use it. - -1998-02-11 Mark Mitchell <mmitchell@usa.net> - - * config/i386/i386.c (reg_mentioned_in_mem): Don't abort when - falling through default case in switch. - (i386_aligned_p): Likewise. - -Wed Feb 11 12:59:56 1998 Lee Iverson <leei@Canada.AI.SRI.COM> - - * mips/mips.h (mips_abi_string): Correct typo in comment. - -Wed Feb 11 08:29:56 1998 Gavin Koch <gavin@cygnus.com> - - * mips/mips.md (movdi): These PLUS's need to be Pmode. - -Wed Feb 11 01:47:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (dwarf2out.o, emit-rtl.o, jump.o, cse.o, unroll.o, - reorg.o, regmove.o): Depend on insn-codes.h, it gets included - indirectly via expr.h. - -Wed Feb 11 01:44:13 1998 Richard Henderson <rth@cygnus.com> - - * stor-layout.c (layout_type): Do upper - lower in the native type, - so as to properly handle negative indices. - -Wed Feb 11 01:35:55 1998 Robert Lipe <robertl@dgii.com> - - * except.c (start_dynamic_cleanup): Remove unused variable 'dhc'. - (expand_eh_region_start_tree): Remove unused variable 'note'. - (exception_optimize): Remove unused variable 'regions'. - (expand_builtin_eh_stub): Remove unused variable 'temp'. - (copy_eh_entry): Deleted. Dead function. - - * expr.c (move_block_to_reg) Bracket declaration of 'pat' and - 'last' with same #if HAVE_load_multiple as use of it. - (move_block_from_reg): Likewise. - (emit_move_insn_1): Remove unused variable 'insns'. - (store_constructor): Bracket declaration of startb, endb with - #if TARGET_MEMFUNCTIONS. Remove unused variables 'set_word_size' - 'target', and 'xtarget'. - (expand_builtin_setjmp): Remove unused variables 'op0', - 'next_arg_reg', 'old_inhibit_defer_pop'. - (expand_builtin): Remove unused variable 'offset'. - (do_store_flag): Remove unused variables 'pattern', 'jump_pat'. - (emit_queue): Add parens for assignment used as conditional. - (expand_expr): case TARGET_EXPR: Remove unused variable 'temp'. - -Wed Feb 11 01:30:49 1998 Marc Lehmann <pcg@goof.com> - - * i386.c: Added include for recog.h. - (override_options): Removed unused variable p. Initialized regno to - avoid warning. - (order_regs_for_local_alloc): Initialized regno to avoid warning. - (legitimize_address): Likewise for 'other'. - (i386_aligned_reg_p): Added default case with abort (). - (print_operand): Likewise. - (reg_mentioned_in_mem): Likewise. - (ix86_expand_binary_operator): Removed unused variables i & insn. - (ix86_expand_unary_operator): Removed unused variable insn. - (output_fp_cc0_set): Removed unused variable unordered_label. - -Wed Feb 11 01:23:03 1998 John F. Carr <jfc@mit.edu> - - * i386.c, i386.h, i386.md: Change gen_rtx (X, ...) to gen_rtx_X (...). - Use GEN_INT instead of gen_rtx (CONST_INT). Make printf arguments - and format string match. - -Wed Feb 11 01:17:39 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis): Do not conside the stack pointer live at - the end of a function if the fucntio ncalls alloca. - (mark_used_regs): Similarly. - -1998-02-10 John F Carr <jfc@mit.edu> - - * config/sparc/sparc.md (movdi_v8plus): Output stx on alternative - 1, fzero on alternative 8. - -Tue Feb 10 09:02:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. - -Tue Feb 10 03:35:43 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (find_reloads_toplev): Handle arbitrary non-paradoxical - SUBREGs of CONST_INTs. - -Mon Feb 9 17:52:36 1998 John Carr <jfc@mit.edu> - - * mips.c (print_operand, function_prologue): Make printf format - match argument type. - -Mon Feb 9 02:37:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alpha.c (alpha_return_addr): Remove unused variable `first'. - (alpha_ra_ever_killed): Remove unused variables `ra' and `i'. - (output_epilog): Remove unused variable `frame_size_from_reg_save'. - -Sun Feb 8 14:56:03 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. - -Sun Feb 8 13:21:38 1998 John Carr <jfc@mit.edu> - - * bitmap.c (bitmap_debug_file): HOST_PTR_PRINTF converts a pointer, - not a HOST_WIDE_INT. - - * calls.c (expand_call): Change test of expand_inline_function - return value to stop compiler warning. - - * genattrtab.c (RTL_HASH): Cast pointer to long, not HOST_WIDE_INT. - -Sun Feb 8 12:04:24 1998 Jim Wilson (wilson@cygnus.com) - Jeff Law (law@cygnus.com) - - * regmove.c: Fix various minor formatting problems. - (optimize_reg_copy_1): Stop search at CALL_INSNs if flag_exceptions - is true. Make end of basic block tests consistent through regmove.c. - (optimize_reg_copy_2, optimize_reg_copy_3): Likewise. - (fixup_match_2, fixup_match_1, regmove_optimize): Likewise. - -Sun Feb 8 01:49:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gansidecl.h: Check for a conflicting macro definition before - attempting to prototype bcopy, bcmp or bzero. - -Sun Feb 8 00:09:59 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (clear_pending_stack_adjust): Handle case where a function - calls alloca, but the user has specified -fomit-fframe-pointer. - - * function.c (assign_parms): Fix typo in last change. - -Sat Feb 7 23:54:29 1998 Robert Lipe <robertl@dgii.com> - - * gcc.c: Include <strings.h>/<string.h>, <stdlib.h>, <unistd.h>, - <fcntl.h>. - (free_path_suffix): Remove unreferenced static function. - (process_command): Remove unused variable temp. - (default_arg): Remove unused variable i. - (do_spec_1): Add parens for assignment used as truth value. - (main): Likewise. - (validate_all_switches): Likewise. - (main): Remove unused variables i, first_time> - - * c-common.c: Include <stdlib.h> and <string.h>/<strings.h>. - - * calls.c (expand_call): Remove unused variables funtree, - n_regs, and tmpmode. - - * dbxout.c, except.c: Include <string.h>/<strings.h>. - - * explow.c: (plus_constant_for_output_wide) Removed unused - variable all_constant. - - * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c - genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c, - genrecog.c, global.c, integrate.c , stupid.c : Include - <stdlib.h>. - - * genextract.c: (walk_rtx) Remove unused variable link. - - * genrecog.c: (concat) Remove unreferenced static function. - - * prefix.c: Include <string.h>/<strings.h>, <stdlib.h> - - * stmt.c: Include <stdlib.h>. - (expand_asm_operands): Remove unused variable val1. - (expand_return): Remove unused variable block. - (pushcase): Remove unused variables l and n. - (pushcaserange): Likewise. - - * unroll.c (unroll_loop): Remove unused variable temp. - -Sat Feb 7 23:46:09 1998 Greg McGary <gkm@gnu.org> - - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. - -Sat Feb 7 15:11:28 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_FUNC_PRINTF_PTR): New macro to test the printf - functions for whether they support the %p format specifier. - * acconfig.h (HOST_PTR_PRINTF): Insert stub for autoconf. - * configure.in (GCC_FUNC_PRINTF_PTR): Use it. - * configure, config.in: Rebuild. - -Fri Feb 6 14:20:16 1998 Jim Wilson <wilson@cygnus.com> - - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. - -Fri Feb 6 14:34:28 1998 Gavin Koch <gavin@cygnus.com> - - * mips/t-r3900: New - same as t-ecoff but eliminate - multilibs: mips1 and mips3. - * configure.in (tx39*): Use new mips/t-r3900. - * configure: Rebuild. - * mips/r3900.h (MULTILIB_DEFAULTS): Eliminate mips1. - -1998-02-06 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: Add old_args_size. - (dwarf2out_args_size): Use it. - (dwarf2out_begin_prologue): Initialize it. - (dwarf2out_stack_adjust): If !asynchronous_exceptions, save up - pushed args until we see a call. - * final.c (final_scan_insn): Hand CALL_INSNs off to the dwarf2 code - before outputting them. - -1998-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> - - * cplus-dem.c (demangle_template_template_parm): New function. - (demangle_template): Handle template template parameters. - -1998-02-02 Mark Mitchell <mmitchell@usa.net> - - * calls.c (expand_call): Don't confuse member functions named - realloc, setjmp, and so forth with the standard library - functions of the same names. - -Thu Feb 5 21:59:49 1998 Jeffrey A Law (law@cygnus.com) - - * stmt.c (expand_asm_operands): Correctly identify asm statements - no output operands. - -Thu Feb 5 21:56:06 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * c-common.c (decl_attributes): Flag unrecognized attribute - functions as warnings instead of as errors. - -1998-02-05 Marc Lehmann <pcg@goof.com> - - * integrate.c (INTEGRATE_THRESHOLD): Inline only small functions - when -Os is specified. - * toplev.c (main): Don't disable flag_inline_functions anymore when - -Os is in effect. - -Fri Feb 6 00:27:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c: Update. - * flags.h (flag_regmove): Declare. - * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Don't declare. - * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): - Moved into regmove; changed caller. - * toplev.c (rest_of_compilation): Call regmove_optimize also for - expensive_optimizations. - -Thu Feb 5 13:38:42 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Feb 5 01:45:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - Undo this change (the problem was actually in reload): - Fri Jan 23 23:28:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (movqi_i+1): New peephole. - -Tue Feb 3 01:11:12 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize): Lose calls to modified_in_p they are - not needed anymore due to changes elsewhere in jump.c. - - * jump.c (jump_optimize): Fix first arg to modified_in_p in - previous change. - -Mon Feb 2 19:18:14 1998 Richard Henderson <rth@cygnus.com> - - * expr.c (expand_builtin_setjmp): Accept two new arguments for - the labels to branch to on first and subsequent executions. Don't - play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup', - and provide it with the jmp_buf. Use only one of - `builtin_setjmp_receiver' or `nonlocal_goto_receiver', - and provide the former with the target label. - (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp. - (expand_builtin) [BUILTIN_LONGJMP]: Split out to ... - (expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp' - insn to replace all of the normal nonlocal_goto code. Don't play - with __dummy. Correct arguments to nonlocal_goto. - * expr.h (expand_builtin_setjmp): Update prototype. - * except.c (start_dynamic_handler): When using builtin_setjmp, - generate more accurate flow information. - - * alpha.md (nonlocal_goto_receiver_osf): Delete. - (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver. - (builtin_longjmp, builtin_setjmp_receiver): New. - * sparc.md (update_return): Disambiguate unspec number. - (nonlocal_goto): Rearrange arguments to match caller in except.c. - (builtin_setjmp_setup): Rename from setjmp. Match and ignore the - jmp_buf operand. - * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove. - (builtin_setjmp_setup*, builtin_longjmp): New. - -Mon Feb 2 16:43:10 1998 John Carr <jfc@mit.edu> - - * mips.md: Change gen_rtx (CONST_INT) to GEN_INT. - -Mon Feb 2 13:06:47 1998 Jim Wilson <wilson@cygnus.com> - - * vmsconfig.com: Remove bytecode references. - -1998-01-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * dwarf2out.c (dwarf2out_frame_init): Undo last change, so that - -fno-sjlj-exceptions works for a target that defines - DWARF2_UNWIND_INFO as zero. - - * regmove.c (fixup_match_1): Undo last change which removed some - "useless" code, and add a comment explaining this. - -Mon Feb 2 10:47:14 1998 Gavin Koch (gavin@cygnus.com) - - * mips.c (mips_expand_prologue): Change uses of TARGET_64BIT - to TARGET_LONG64. - -Mon Feb 2 10:38:41 1998 Klaus Kaempf <kkaempf@progis.de> - - * makefile.vms: Remove bytecode references. - Create genrtl files. - -Mon Feb 2 02:08:04 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * jump.c (jump_optimize): Allow conditional loading of floating point - constants and constants from memory. Reinstalled modified_in_p tests. - -Mon Feb 2 01:38:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (get_condition): Handle sign-extended constants. - -Mon Feb 2 01:22:46 1998 Hans-Peter Nilsson <hp@axis.se> - - * expr.c (emit_push_insn): Add code to use movstrti if present. - - * expr.c (emit_push_insn): Use same max-move-amount for movstrhi - and movstrqi as in emit_block_move (). - -Mon Feb 2 00:09:52 1998 Toon Moene <toon@moene.indiv.nluug.nl> - - * config/m68k/x-next: Remove /NextDeveloper/Headers from - the directories to fixinclude - /usr/include is a link - to it and hence its contents are fixed by default. - -Sun Feb 1 14:15:33 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> - - * rs6000/linux.h: define JUMP_TABLES_IN_TEXT_SECTION - -Sun Feb 1 13:01:15 1998 Klaus Kaempf <kkaempf@progis.de> - - * cccp.c (main): Predefine __VMS_VER on VMS. - -Sun Feb 1 12:39:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (get_inner_reference): Use sbitsizetype for type sizes. - * fold-const.c (size_int): Replace with - (size_int_wide). - (make_bit_field_ref): Use bitsize_int for bit position. - * stor-layout.c (sizetype): Delete. - (sizetype_tab, sbitsizetype, ubitsizetype): Declare. - (layout_record, layout_union, layout_type): - Use bitsize_int for bit size. - (set_sizetype): New function. - (make_signed_type, make_unsigned_type): Use it. - * c-decl.c (init_decl_processing): Likewise. - * tree.h (size_int): Don't delcare, #define. - (size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare. - (set_sizetype): Declare. - (bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype): - Define. - * c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes): - Convert result to sizetype. - (really_start_incremental_init, push_init_level): - Set type of constructor_bit_index to sbitsizetype. - (push_init_level): Use unsigned arithmetic to determine padding. - (output_init_element): Likewise. - -Sun Feb 1 03:32:07 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_shift_const): Fix typo in last change. - -Sun Feb 1 02:50:46 1998 John Carr <jfc@mit.edu> - - * combine.c (simplify_shift_const): (lshiftrt (truncate (lshiftrt))) - is (truncate (lshiftrt)). - -Sun Feb 1 01:06:53 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_unaligned_load): Use expand_binop properly. - Make sure result winds up in TGT. - (alpha_expand_unaligned_store): Use expand_binop properly. Allow - src to be other than DImode. - (alpha_expand_unaligned_load_words): Tidy. Take an offset argument. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_move): Use REGNO_POINTER_ALIGN. Restructure so - that source and destination are separately optimized for alignment. - (alpha_expand_block_clear): Use REGNO_POINTER_ALIGN. - -Sun Feb 1 01:55:09 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (adddi3_internal_2): Be consistent with adddi3 expander - with handling of -32768. - -Sun Feb 1 01:48:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a - shell variable argument instead of only hard coded functions. - (GCC_NEED_DECLARATIONS): New macro to accept multiple functions. - - * configure.in: Collapse multiple calls to AC_CHECK_FUNCS into one - call. Collapse multiple calls to GCC_NEED_DECLARATION into one - call to GCC_NEED_DECLARATIONS (new macro.) Check if we need - declarations for bcopy, bcmp and bzero. - - * acconfig.h: Add stubs for bcopy, bcmp and bzero declarations. - - * gansidecl.h: If we have bcopy but don't declare it, then do so. - Likewise for bcmp and bzero. Only define macros for bcopy, bcmp, - bzero, index and rindex if they aren't already present. - -Sat Jan 31 11:26:58 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (close_dump_file): Wrap function prototype for - argument "func" in PROTO. - (dump_rtl): Likewise. - -Fri Jan 30 22:30:39 1998 John Carr <jfc@mit.edu> - - * sparc.c (sparc_override_options): Make v8plus and ultrasparc set - MASK_V8PLUS. - (output_function_epilogue): Omit epilogue if nothing drops through. - (output_move_double): Supress int ldd usage on ultrasparc and v9. - (registers_ok_for_ldd_peep): Likewise. - (print_operand): Supress b,a on ultrasparc. Let Y accept a constant. - (ultrasparc_adjust_cost): New function. - (sparc_issue_rate): New function. - * sparc.h (MASK_VIS, TARGET_VIS): New - (MASK_V8PLUS, TARGET_V8PLUS): New. - (TARGET_HARD_MUL32, TARGET_HARD_MUL): New. - (TARGET_SWITCHES): Add vis and v8plus. - (REG_CLASS_FROM_LETTER): Accept d and b for VIS. - (REGISTER_MOVE_COST): FP<->INT move cost 12 for ultrasparc. - (RTX_COSTS): Use TARGET_HARD_MUL - (ADJUST_COST): Call ultrasparc_adjust_cost. - (ISSUE_RATE): New. - * sparc.md (attr type): Add sload, fpmove, fpcmove. Adjust users - of load & fp appropritely. - (supersparc function units): Adjust for Haifa. - (ultrasparc function units): Likewise. - (get_pc_via_rdpc): All v9, not just arch64. - (movdi_v8plus, movdi_v8plus+1): New. - (adddi3_sp32+1): New. - (subdi3_sp32+1): New. - (movsi_insn, movsf_const_insn, movdf_const_insn): Know VIS. - (addsi3, subsi3, anddi3_sp32, andsi3, and_not_di_sp32): Likewise. - (and_not_si, iordi3_sp32, iorsi3, or_not_di_sp32, or_not_si): Likewise. - (xorsi3_sp32, xorsi3, xor_not_di_sp32, xor_not_si): Likewise. - (one_cmpldi2_sp32, one_cmplsi2): Likewise. - (ldd peepholes): Suppress for v9. - (return_adddi): Kill redundant test. Arg1 may be arith_operand. - (return_subsi): Revmove. - -Fri Jan 30 18:30:03 1998 John F Carr <jfc@mit.edu> - - * mips.c (save_restore_insns): Set RTX_UNCHANGING_P in register - save/restore MEM rtl. - -Fri Jan 30 09:08:16 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for declaration of abort. - * acconfig.h: Corresponding changes. - * toplev.c: Use NEED_DECLARATION_ABORT to determine if abort should - be declared. - -Thu Jan 29 20:26:12 1998 Jeffrey A Law (law@cygnus.com) - - * genattrtab.c (optimize): Define in case PRESERVE_DEATH_INFO_REGNO_P - uses it. - -Thu Jan 29 09:27:56 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Jan 29 10:12:27 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for atoq and atoll. - * rtl.c (read_rtx): Use HAVE_ATOLL and HAVE_ATOQ to select the - proper routine for converting ascii into long long values. - -Thu Jan 29 01:28:14 1998 Klaus Kaempf <kkaempf@progis.de> - - * cccp.c (SYS$SEARCH, SYS$PARSE): Write as upper-case. - - * vmsconfig.com: Remove bytecode references. - - * alpha/vms.h (PREFIX): Define. - - * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Remove. - - * am-alpha.h: Don't include alloca for OPEN_VMS. - - * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Define. - - * alpha/xm-vms.h (INCLUDE_DEFAULTS): Define. - (GCC_INCLUDE_DIR): Define - - * make-cc.com, make-cccp.com, make-cc1.com: Removed. - * makefile.vms: New file. - - * alpha/vms.h (CPP_PREDEFINES): Remove -Dalpha. - - * alpha.c (output_prolog): Output '.name' directive - for minimal traceback information. - - * alpha.c (output_prolog): Don't prepend entry point symbols - with '$' on OPEN_VMS. - -Thu Jan 29 00:25:35 1998 David S. Miller <davem@tanya.rutgers.edu> - Jeffrey A Law (law@cygnus.com) - - * rtl.c (read_rtx): Use atol/atoq based upon disposition of - HOST_WIDE_INT. - - * genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC - as needed. - * genemit.c (gen_exp): Likewise. - * genpeep.c (match_rtx): Likewise. - * genrecog.c (write_tree_1): Likewise. - - * c-lex.c (yyprint): Use proper format string based upon - disposition of HOST_BITS_PER_WIDE_INT. - (yylex): Put casts in right place for args to build_int_2. - -Thu Jan 29 00:24:29 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c: Fix typos in Jan27 changes. - -Thu Jan 29 00:07:49 1998 Ollivier Robert <roberto@keltia.freenix.fr> - - * i386/freebsd.h (LIB_SPEC): Correctly handle -shared, -p and friends. - (LINK_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - -1998-01-28 Mike Stump <mrs@wrs.com> - - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after - reload completes. - * genattrtab.c (reload_completed): Define. - - * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Remove obsolete - comments. - -Wed Jan 28 20:11:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the - SUBREG_REG if the word count is unchanged, also in the input reload - case. Disable non-applicable sanity checks. - -Wed Jan 28 20:08:26 1998 Jeffrey A Law (law@cygnus.com) - - * config/t-svr4 (TARGET_LIBGCC2_CFLAGS): Add -fPIC. - -Wed Jan 28 20:04:43 1998 Ian Lance Taylor <ian@cygnus.com> - - * i386/t-cygwin32 (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. - -Wed Jan 28 11:45:27 1998 Per Bothner <bothner@cygnus.com> - - * dbxout.c (dbxout_type): For a RECORD_TYPE, check that TYPE_BINFO - is a TREE_VEC before trying to use it for baseclasses. - (Chill uses the same field for a different purpose.) - - * toplev.c (strip_off_ending): Generalize to endings up to 5 chars. - -Tue Jan 27 23:15:55 1998 Lassi A. Tuura <lat@iki.fi> - - * config.sub: More accurate determination of HP processor types. - -Tue Jan 27 23:11:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. Add - prototype for `handle_sysv_pragma', and make it static. Add - parentheses around assignment used as truth value. - - * combine.c (combine_instructions): Protect variable `prev' with - macro HAVE_cc0. - (can_combine_p): Protect variable `link' with AUTO_INC_DEC. - (extract_left_shift): Add parentheses around operand of &. - (merge_outer_ops): Avoid an empty body in an else-statement. - (gen_rtx_combine): Remove unused variable `i'. - - * sparc/gmon-sol2.c: Include <fcntl.h>. Make return type of - function monstartup `void'. Likewise for internal_mcount. Add - `static void' prototype for moncontrol. Reconcile sprintf format - vs. args. - - * sparc/sparc.c: Include <stdlib.h> and <string.h>/<strings.h>. - Make return type of function_arg_slotno explicitly `int'. - (reg_unused_after): Add parentheses around assignment used as - truth value. - (save_regs): Add explicit braces to avoid ambiguous `else'. - (function_arg_slotno): Add parentheses around && within ||. - (function_arg_pass_by_reference): Likewise. - (sparc_flat_output_function_prologue): Reconcile fprintf format - vs. args. - - * svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around - assignment used as truth value. - - * cplus-dem.c: Include <stdlib.h>. - (demangle_signature): Avoid an empty body in an else-statement. - (do_type): Remove unused variable `lvl'. - - * cppexp.c: Don't have <stdlib.h> depend on MULTIBYTE_CHARS. - Include <string.h>/<strings.h>. - (cpp_lex): Remove unused variable `namelen'. - (cpp_lex): Explicitly declare `num_chars' as an int. - - * cpplib.c: Avoid duplicate inclusion of <stdlib.h>, include - <unistd.h> instead. Explicitly declare is_system_include - returning int. - (make_assertion): Remove unused variable `kt'. - (cpp_expand_to_buffer): Hide variable `obuf'. - (output_line_command): Remove unused variables, `line_end', - `line_cmd_buf' and `len'. - (macarg): Remove unused variable `arg_start'. - (special_symbol): Remove unused variable `i'. Add parentheses - around assignment used as truth value. - (do_include): Remove unused variables `pcfname' and `retried', - hide `pcf' and `pcfbuflimit'. - (do_line): Remove unused variable `i'. - (finclude): Hide variable `missing_newline'. - (cpp_handle_options): Remove unused variable `j'. - (read_token_list): Remove unused variable `eofp'. - (cpp_error_with_line): Remove unused variable `i'. - (cpp_warning_with_line): Likewise. - (cpp_pedwarn_with_line): Explicitly declare `column' as int. - (cpp_error_from_errno): Remove unused variable `i'. - - * cse.c (invalidate): Add parentheses around assignment used as - truth value. - (find_best_addr): Move declaration of variable `our_cost' inside - the conditional macro where its used. - (fold_rtx): Avoid an empty body in an if-statement. - (cse_insn): Wrap variables `this_insn_cc0_mode' and - `this_insn_cc0' in macro HAVE_cc0. - - * dwarf2out.c: Include <stdlib.h> and <string.h>/<string.h>. - (ASM_OUTPUT_DWARF_DATA8): Reconcile format vs. args in fprintf's. - (output_uleb128): Likewise. - (output_sleb128): Likewise. - (output_cfi): Likewise. - (output_call_frame_info): Remove unused variables `j', `fde_size' - and `fde_pad'. - (comp_unit_has_inlines): Hide declaration as per rest of file. - (size_of_line_prolog): Correct typo in prototype. - (add_arange): Likewise. - (output_aranges): Likewise. - (add_name_and_src_coords_attributes): Likewise. - (gen_array_type_die): Likewise. - (gen_inlined_subroutine_die): Likewise. - (equate_decl_number_to_die): Remove unused variable `i'. - (print_die): Reconcile format vs. args in fprintf's. - (print_dwarf_line_table): Likewise. - (output_die): Likewise. - (output_line_info): Likewise. - (add_subscript_info): Avoid an empty body in an else-statement. - (gen_subprogram_die): Remove unused variable `fp_loc'. - - * dwarfout.c: Explicitly declare `next_pubname_number' as int. - Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE - macro. Protect `src_coords_attribute' prototype with - DWARF_DECL_COORDINATES macro. Hide `output_entry_point_die' - prototype as in the rest of the file. Likewise for - `output_pointer_type_die' and `output_reference_type_die'. Remove - prototype for `type_of_for_scope'. - (output_unsigned_leb128): Reconcile format vs. args in fprintf. - (type_attribute): Add explicit braces to avoid ambiguous `else'. - - * final.c: Include <stdlib.h> and <string.h>/<strings.h>. - (shorten_branches): Protect declaration of tmp_length with - SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros. - (profile_function): Protect declaration of `sval' and `cxt' - variables with appropriate macros. - (final_scan_insn): Likewise for `note' variable. Add explicit - braces to avoid empty body in an if-statement. - (output_asm_insn): Move variable `i' inside macro conditional - where it is used. Add parentheses around assignment used as truth - value. - (asm_fprintf) Likewise, likewise. - - * fix-header.c (main): Remove unused variable `done'. Protect - declaration of `i' with FIXPROTO_IGNORE_LIST. - - * pexecute.c: Include <unistd.h>. Prototype `my_strerror'. - - * print-rtl.c (print_inline_rtx): Explicitly declare the parameter - `ind'. - - * profile.c: Include <string.h>/<strings.h>. - (instrument_arcs): Remove unused variables `note', `inverted', - `zero' and `neg_one'. - (branch_prob): Avoid empty body in an if-statement. - - * regclass.c: Include <stdlib.h>. - (reg_alternate_class): Explicitly declare parameter `regno'. - - * regmove.c (regmove_optimize): Remove unused variable `p'. Add - parentheses around assignment used as truth value. - (find_matches): Remove unused variables `output_operand' and - `matching_operand'. - (fixup_match_1): Remove statement with no effect: "if (0) ;". - - * scan.c (sstring_append): Explicitly declare `count' as int. - (scan_string): Explicitly declare parameter `init' as int. - - * sched.c: Include <stdlib.h>. - (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. - (rank_for_schedule): Add parentheses around assignment used as - truth value. - (schedule_block): Likewise. - (regno_use_in): Likewise. - (schedule_insns): Remove unused variable `i'. - - * toplev.c: Include <stdlib.h> and <string.h>/<strings.h>. - (v_message_with_decl): Remove unused variable `n'. - (botch): Explicitly declare parameter `s' as char *. - (main): Add parentheses around assignment used as truth value. - - * tree.c (make_node): Protect the variable `kind' with the - GATHER_STATISTICS macro. - (real_value_from_int_cst): Move variable `e' inside conditional - macro area where it is used. - (tree_last): Add parentheses around assignment used as truth value. - (build1): Protect the variable `kind' with the GATHER_STATISTICS - macro. - (print_obstack_statistics): Reconcile format vs. args in fprintf. - Protect variables `i', `total_nodes', and `total_bytes' with the - GATHER_STATISTICS macro. - -Tue Jan 27 23:01:55 1998 Mike Stump (mrs@wrs.com) - - * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Add - some comments regarding use of dead_or_set_p. - -Tue Jan 27 22:14:48 1998 Todd Vierling <tv@pobox.com> - - * fixincludes: Tweak fix for struct exception in math.h - -Tue Jan 27 17:21:09 1998 Gavin Koch (gavin@cygnus.com) - - * mips/mips.c (mips_expand_prologue,mips_expand_epilogue): - Change mode of registers used to add/sub from - hard_frame_pointer_rtx from word_mode to Pmode. - -Tue Jan 27 11:02:04 1998 Nick Clifton <nickc@cygnus.com> - - * v850.h (ASM_OUTPUT_ALIGNED_BSS): Use - asm_output_aligned_bss() instead of asm_output_bss(). - - * toplev.c (rest_of_compilation): Replace references to - stack_reg_dump_file and dbr_sched_dump_file with references to - rtl_dump_file. - -Tue Jan 27 10:22:13 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * tlink.c (scan_linker_output): Call fclose() for opened files. - -Tue Jan 27 05:05:26 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (output_epilog [!VMS]): Don't tag global functions if - compiling with -fpic -- we want to be able to override symbols - properly. - (alpha_expand_block_move): Fix thinko in last change. - - * alpha.h (ASM_OUTPUT_MI_THUNK): New define. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): New define. - * config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): New undef. - -Tue Jan 27 03:21:23 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (abssf, absdf): Revert last change. - -Tue Jan 27 00:26:50 1998 John Carr <jfc@mit.edu> - - * dwarf2out.c (dwarf2out_frame_init): Test value of DWARF2_UNWIND_INFO. - * mips/sni-svr4.h: Define DWARF2_UNWIND_INFO as 0. - -Tue Jan 27 00:07:02 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (gen_lowpart_common): Handle more case where converting - a CONST_INT into SFmode. - -Tue Jan 20 16:01:03 1998 Anthony Green <green@cygnus.com> - - * flags.h: New flag (optimize_size). - * toplev.c (main): Parse -Os option and set optimize_space - accordingly. - * gcc.c (default_compilers), cp/lang-specs.h, f/lang-specs.h: Define - __OPTIMIZE_SIZE__ when compiling with -Os. - * config/dsp16xx/dsp16xx.h, config/i386/i386.h, - config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h, - config/v850/v850.h (OPTIMIZATION_OPTIONS): New SIZE argument - to macro. - * config/i386/i386.c (optimization_options): Accept new SIZE argument. - -Mon Jan 26 23:57:39 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. - -Mon Jan 26 23:52:51 1998 Markus F.X.J. Oberhumer <k3040e4@c210.edvz.uni-linz.ac.at> - - * configure.in (i*86-pc-msdosdjgpp): Treat like msdos & go32 - configurations. - -Fri Jan 23 09:39:36 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c: Add -dM command line option to dump RTL after the - machine dependent reorganisation pass, if there is one. - Reorganise RTL dump code, so that only one file handle is - needed. - -Mon Jan 26 12:09:42 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> - - * except.c (check_exception_handler_labels): Disable warning when - flag_syntax_only. - -Mon Jan 26 18:17:32 1998 Jim Wilson <wilson@cygnus.com> - - * sparc.c (pic_setup_code): Don't set LABEL_PRESERVE_P. - -Mon Jan 26 18:11:30 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * c-decl.c (grokdeclarator): Get parameter tags from - last_function_parm_tags. - * dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before - traversing the parameter types. - (output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context. - -Mon Jan 26 01:44:12 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.c (print_operand): Handle CONST_DOUBLE for 'e', 'f', and - the default case. - (get_shift_alg): Fix typo. - -Sun Jan 25 22:22:04 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_block_move): Copy ADDRESSOF to reg. - -Sun Jan 25 22:14:28 1998 Richard Henderson <rth@cygnus.com> - - * toplev.c (get_run_time): Make sure each case gets its variables. - -Sun Jan 25 22:10:21 1998 Richard Henderson <rth@cygnus.com> - - * configure.in (build_xm_file): Add auto-config.h if host=build. - (host_xm_file_list): Don't add $(srcdir) to auto-config.h. - (build_xm_file_list): Likewise. - * configure: Rebuild. - -Sun Jan 25 22:00:25 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk> - - * recog.c (validate_replace_rtx_1): Only perform substitutions - of arguments to commutative and comparison operators once. - -Sun Jan 25 12:30:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc.c (output_cbranch): Add default case in - enumeration switch. - - * reorg.c (insn_sets_resource_p): Correct typo in prototype. - (emit_delay_sequence): Eliminate unused parameter, all callers - changed. - (fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - (fill_eager_delay_slots): Likewise. - (mark_referenced_resources): Add default case in enumeration switch. - (mark_set_resources): Likewise. - (rare_destination): Likewise. - (mostly_true_jump): Likewise. - (find_dead_or_set_registers): Likewise. - (redirect_with_delay_slots_safe_p): Remove unused variable `slots'. - (update_reg_unused_notes): Remove unused variable `p'. - (mark_target_live_regs): Remove unused variables `next' and - `jump_count'. - (fill_simple_delay_slots): Remove unused variable `j'. - (fill_slots_from_thread): Add parentheses around assignment used - as truth value. - (dbr_schedule): Likewise. - - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise. - -Sun Jan 25 12:13:47 1998 Michael Tiemann <michael@tiemann.org> - - * cse.c (simplify_ternary_operation): Don't try to simplify - IF_THEN_ELSE expressions (created by combine) that don't use - relational operators. - -Fri Jan 23 22:48:24 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE - simplifications. - - * crtstuff.c (init_dummy): Keep the epilogue in the init - section for non-ELF systems. - -Fri Jan 23 23:28:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (movqi_i+1): New peephole. - -Fri Jan 23 15:39:42 1998 Jim Wilson <wilson@cygnus.com> - - * Makefile.in: Remove remaining bytecode stuff. - * emit-rtl.c, expr.c: Likewise. - -Fri Jan 23 12:41:10 1998 Nick Clifton (nickc@cygnus.com) - - * toplev.c (lang_options): Add unknown-pragma options. - -Thu Jan 22 23:43:38 1998 Per Bothner <bothner@cygnus.com> - - * dwarfout.c (byte_size_attribute): Simplify and fix - don't need - special (and incomplete) handling for Chill arrays. - -Fri Jan 23 00:27:23 1998 John Carr <jfc@mit.edu> - - * toplev.c (get_run_time): Call sysconf(_SC_CLK_TCK), when available, - to get clock rate. - -Fri Jan 23 00:19:36 1998 Gavin Koch (gavin@cygnus.com) - - * mips.md (muldi3_internal2): Reverse test for TARGET_MIPS16. - -1998-01-22 scott snyder <snyder@d0sgif.fnal.gov> - - * mips.c (function_prologue): Use HARD_FRAME_POINTER_REGNUM in - .frame directive instead of FRAME_POINTER_REGNUM. - -Fri Jan 23 00:08:55 1998 Robin Kirkham <rjk@mlb.dmt.csiro.au> - - * m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881. - (MACHINE_STATE_m68010_up): Replaced __mc68332__ with __mcpu32__. - * m68k/m68k-none.h(CPP_FPU_SPEC): Update relative to TARGET_SWITCHES. - (CPP_SPEC, ASM_SPEC, CC1_SPEC): Likewise. - (CPP_SPEC): -m68332 defines both __mc68332 and __mcpu32__. - * m68k/t-m68kbare (MULTILIB_OPTIONS): Add mcpu32. - (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. - (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, - mcpu32 or m5200. - * longlong.h: Replace __mc68332__ with __mcpu32__. - -Thu Jan 22 19:55:40 PST 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Jan 22 14:47:31 1998 Jim Wilson <wilson@cygnus.com> - - * reload.c (push_reload): In WORD_REGISTER_OPERATIONS code, add test - to require the SUBREG mode to be smaller than the SUBREG_REG mode. - * reload1.c (eliminate_regs): Likewise. - -Thu Jan 22 14:49:14 1998 Jeffrey A Law (law@cygnus.com) - - * regmove.c (find_matches): Initialize matches->earlyclobber too. - -Thu Jan 22 01:40:52 1998 Richard Henderson <rth@cygnus.com> - - * alpha.md (abssf2, absdf2): Disable in IEEE mode. - (negsf2, negdf2): Use proper subtract in IEEE mode. - -Tue Jan 20 09:29:09 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in: Remove more bytecode stuff. - * expr.c, stmt.c, config/msdos/top.sed: Likewise. - * vax/xm-vms.h, winnt/config-nt.sed: Likewise. - * f/install.texi, objc/Make-lang.in: Likewise. - - * Makefile.in: Remove all bytecode support. - (OBJS): Make sure last entry is a real object file, not EXTRA_OBJS. - * emit-rtl.c: Remove all bytecode support. - * expr.c, expr.h function.c, integrate.c: Likewise. - * output.h, regclass.c, rtl.h, stmt.c, toplev.c: Likewise. - * tree.h, varasm.c: Likewise. - * config/m68k/m68k.h: Likewise. - * bi-*, bc-*, bytecode*: Delete bytecode related files. - * modemap.def: Likewise. - -Tue Jan 20 09:02:31 1998 Gavin Koch (gavin@cygnus.com) - - * mips/mips.md (divsi3,divdi3,modsi3,moddi3,udivsi3,udivdi3, - umodsi3,umoddi3): Handle mips16 div/mod by a constant. - -Mon Jan 19 21:57:00 1998 Richard Henderson <rth@cygnus.com> - - * i386.md (push): Prohibit symbolic constants if flag_pic. - (movsi+1): Likewise for move to non-register. - -Mon Jan 19 11:15:38 1998 Jim Wilson <wilson@cygnus.com> - - * alpha.c (mode_mask_operand): Accept 0xffffffff on 32 bit host. - (print_operand): Handle 0xffffffff on 32 bit host. - - * configure.in (thread_file): Rename uses before main loop to - target_thread_file. Initialize to empty in main loop. Set thread_file - to target_thread_file after main loop if not set. - * configure: Rebuild. - - * genattrtab.c (find_and_mark_used_attributes): Handle CONST_INT. - (add_values_to_cover): Revert last change (which had no ChangeLog - entry). - (simplify_with_current_value_aux): Handle CONST_INT. - -Mon Jan 19 10:14:55 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * unprotoize.c: Define UNPROTOIZE first, to actually take effect. - -Mon Jan 19 10:11:52 1998 Richard Henderson <rth@cygnus.com> - - * configure.in: Add cpp stringify test. - * acconfig.h (HAVE_CPP_STRINGIFY): New tag. - * gengenrtl.c: Use it. - * configure, config.in: Rebuild. - -Mon Jan 19 09:43:15 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * Makefile.in (genrtl.c genrtl.h): Add dummy command for GNU make. - -Mon Jan 19 09:38:18 1998 Richard Henderson <rth@cygnus.com> - - * configure.in: Find declaration for sbrk. - * acconfig.h (NEED_DECLARATION_SBRK): New tag. - * config.in, configure: Rebuild. - * mips-tfile.c: Properly protect declaration of sbrk and free. - * toplev.c: Properly protect declaration of sbrk. - -Sun Jan 18 20:18:01 1998 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_handle_trap_shadows): Ignore CLOBBERs. - -Sun Jan 18 01:54:27 1998 Jeffrey A Law (law@cygnus.com) - - * alpha/xm-winnt.h (HAS_INIT_SECTION): Undefine. - -Sun Jan 18 00:57:35 1998 Mike Stump (mrs@wrs.com) - - * configure.in (i960-wrs-vxworks): Default to latest vxworks release. - -Sat Jan 17 23:41:36 1998 David S. Miller <davem@tanya.rutgers.edu> - - * combine.c (force_to_mode, nonzero_bits): Correctly optimize - constant offset computations from objects with known alignment in - the presence of STACK_BIAS. - - * varasm.c (immed_double_const): Add casts to HOST_WIDE_INT where - necessary. - (const_hash): Hash val is unsigned long. - (SYMHASH): Likewise. - - * tree.c (TYPE_HASH): Type of hash val is unsigned long. - - * print-tree.c (print_node_brief): HOST_PTR_PRINTF format wants a - char pointer, not HOST_WIDE_INT. - (print_node): Likewise. Also hash is unsigned long not - HOST_WIDE_INT. - - * cse.c (canon_hash): Hash is unsigned long not HOST_WIDE_INT. - - * explow.c (optimize_save_area_alloca): New function for targets - where SETJMP_VIA_SAVE_AREA is true. - (allocate_dynamic_stack_space): On SETJMP_VIA_SAVE_AREA targets, - compute the amount of stack space needed should we find later that - setjmp is never called by this function, stuff rtl for this inside - a REG_NOTE of the final SET of stack_pointer_rtx. - * toplev.c (rest_of_compilation): If SETJMP_VIA_SAVE_AREA and - current_function_calls_alloca, call optimize_save_area_alloca. - -Sat Jan 17 23:22:59 1998 John Wehle (john@feith.com) - - * i386.md: Remove redundant integer push patterns. - Don't bother checking for TARGET_PUSH_MEMORY when - pushing constants or registers. - -Sat Jan 17 22:35:39 1998 Mumit Khan <khan@xraylith.wisc.edu> - J.J VanderHeijden <J.J.vanderHeijden@student.utwente.nl> - - * pexecute.c (pexecute): New function for mingw32. Supports pipes. - (pwait): New function for mingw32. - - * gcc.c (execute): Mingw32 pexecute() supports pipes, but cygwin32 - pipe support is broken for now. - -1998-01-17 Lee Iverson <leei@Canada.AI.SRI.COM> - - * emit_rtl.c (init_emit_once): Ensure that potential aliasing - between frame_pointer_rtx, hard_frame_pointer_rtx, and - arg_pointer_rtx is respected in initialization. - (init_emit_once): Use gen_rtx_raw_REG() to create - return_address_pointer_rtx. - - * reorg.c: #include "expr.h" for rtx prototypes. - * Makefile.in (reorg.o): Depend on expr.h - -Sat Jan 17 21:28:08 1998 Pieter Nagel <pnagel@epiuse.co.za> - - * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and - local_prefix to sub-make invocations. - -Sat Jan 17 21:24:16 1998 David T. McWherter <dtm@waterw.com> - - * objc-parse.c: Recognize protocol qualifiers in class definitions. - -Sat Jan 17 21:16:19 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h: Fix typos. - - * acconfig.h (NEED_DECLARATION_ATOL): New declaration to check for. - * configure.in: Check for atol. - * rtl.c (atol): Only provide the declaration if NEED_DECLARATION_ATOL. - - * rtl.c (read_rtx): Initialize list_rtx to NULL, not NULL_RTX. - - * loop.c (find_and_verify_loops): When attempting to move insns from - inside the loop outside the loop, create a BARRIER if no suitable - one was found. - - * jump.c (jump_optimize): Remove Dec 17, 1997 chance in - favor of an equivalent change from gcc-2.8. - - * i386/x-sco5 (CC): Remove trailing whitespace. - -Sat Jan 17 21:09:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gengenrtl.c (type_from_format): De-ANSIfy function signature. - (accessor_from_format): Likewise. - (xmalloc): New function for use when linking with alloca.o. - -Mon Jan 5 02:53:01 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * frame.c (find_fde): Correct FDE's upper bound. - -Fri Jan 16 16:23:52 1998 Richard Henderson <rth@cygnus.com> - - * gengenrtl.c (DEF_RTL_EXPR): Provide a K&R compliant version. - -Fri Jan 16 10:16:10 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Move #ifdef code out of macro argument - lists. - (emit_library_call, emit_library_call_value): Likewise. - -Fri Jan 16 00:46:40 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.def (INLINE_HEADER): Fix bug exposed by gen_rtx_FOO changes. - -Thu Jan 15 01:02:30 1998 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Jan 14 22:49:17 1998 Richard Henderson <rth@cygnus.com> - - * alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO; - change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...). - * caller-save.c, calls.c, combine.c, cse.c: Likewise. - * dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise. - * final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise. - * halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise. - * profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise. - * reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise. - * unroll.c, varasm.c: Likewise. - * config/alpha/alpha.c, config/alpha/alpha.md: Likewise. - -Wed Jan 14 19:36:08 1998 Gavin Koch (gavin@cygnus.com) - - * mips.h: Fix some type-o's from a previous change. - -Wed Jan 14 01:26:05 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): Make sure initial value is a - CONST_INT before trying to normalize it. - -Tue Jan 13 23:27:54 1998 Robert Lipe (robertl@dgii.com) - - * sco5.h (ASM_OUTPUT_SECTION_NAME): Refresh from ../svr4.h. - -Tue Jan 13 22:47:02 1998 Herman ten Brugge <herman@htbrug.net.HCC.nl> - - * cppexp.c: Include gansidecl.h - -Tue Jan 13 22:43:35 1998 Ian Lance Taylor <ian@cygnus.com> - - * svr4.h (LINK_SPEC): Never specify -h. - * ptx4.h (LINK_SPEC): Likewise. - * rs6000/sysv4.h (LINK_SPEC): Likewise. - * sparc/sol2.h (LINK_SPEC): Likewise. - -Tue Jan 13 22:39:40 1998 Richard Henderson (rth@cygnus.com) - - * c-typeck.c (comptypes): Exit early on NULL input. - - * haifa-sched.c (schedule_insns): Correctly remove inter-block - dependencies after reload. - -Tue Jan 13 22:22:31 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com> - - * rs6000/linux.h (CPP_PREDEFINES): Add -D__ELF__. - -Tue Jan 13 22:14:57 1998 Klaus Kaempf <kkaempf@progis.de> - - * alpha/vms.h (DIR_SEPARATOR): define - -Tue Jan 13 22:13:04 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * Makefile.in (stamp-proto): Remove. - (protoize.o, unprotoize.o): Straightforward compile. - * unprotoize.c: Define UNPROTOIZE here, not in the Makefile. - -Tue Jan 13 21:59:39 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (STRIP_NAME_ENCODING): Define for Win32 to strip - off the trailing @[NUM] added by ENCODE_SECTION_INFO. - -Tue Jan 13 21:55:06 1998 Jeffrey A Law (law@cygnus.com) - - * arm/netbsd.h (DWARF2_UNWIND_INFO): Define as zero for now. - * i386/netbsd.h, m68k/netbsd.h, ns32k/netbsd.h: Likewise. - * sparc/netbsd.h, vax/netbsd.h: Likewise. - -Tue Jan 13 21:37:07 1998 Shigeya Suzuki <shigeya@foretune.co.jp> - - * i386/bsd386.h (DWARF2_UNWIND_INFO): Define as zero for now. - -Tue Jan 13 17:50:55 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in (target_cpu_default, target_cpu_default2): Use double - quotes around them when testing their value. - * configure: Rebuilt. - -Tue Jan 13 09:07:44 1998 John Carr <jfc@mit.edu> - - * gengenrtl.c (gencode): Emit new function obstack_alloc_rtx - to allocate rtx. - (gendef): Call obstack_alloc_rtx. - -Tue Jan 13 01:16:36 1998 Robert Lipe (robertl@dgii.com) - - * configure.in: (i[3456]86-UnixWare7-sysv5): Treat much like SVR4 - for now. - -Thu Dec 18 18:40:17 1997 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/mingw32.h (INCOMING_RETURN_ADDR_RTX): Delete. Use the value - of DWARF2_UNWIND_INFO, if any, from i386/cygwin32.h instead. - (STANDARD_INCLUDE_DIR): Change to /usr/local/i386-mingw32/include. - -Tue Jan 13 00:44:02 1998 Jim Wilson <wilson@cygnus.com> - - * mips.md (return_internal): Change mode from SImode to VOIDmode. - -Sat Jan 10 22:11:39 1998 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h (STARTFILE_SPEC, ENDFILE_SPEC): Correctly handle - "-static". - -Sat Jan 10 22:04:15 1998 Stan Cox <scox@equinox.cygnus.com> - - * i386.md: (movsicc_1, movhicc_1): For alternate 3 set the opcode - suffix from operand 3. - -Sat Jan 10 21:50:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - Jeffrey A Law (law@cygnus.com) - - * regmove.c: New implementation of regmove pass. - * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): Remove - decls, make them have external linkage. Return a value from - optimize_reg_copy_1. - * reload.h (count_occurrences): Add decl. - * reload1.c (count_occurrences): Delete decl, make it have external - linkage. - * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Declare. - -Sat Jan 10 20:30:12 1998 Jeffrey A Law (law@cygnus.com) - - * regclass.c (record_address_regs): Don't use REG_OK_FOR_BASE_P - if it is not defined. - -Thu Jan 8 21:06:54 1998 Richard Henderson <rth@cygnus.com> - - * Makefile.in (OBJ, GEN, RTL_H): Add genrtl.[oh] bits. - * emit-rtl.c (gen_rtx): Move special code to ... - (gen_rtx_CONST_INT): New function. - (gen_rtx_REG): New function. - (*): Update all calls to gen_rtx. - * genemit.c (gen_exp): Emit calls to gen_rtx_FOO for constant FOO. - * rtl.h: Include genrtl.h; prototype CONST_INT & REG generators. - (GEN_INT): Call gen_rtx_CONST_INT. - * gengenrtl.c: New file. - -Mon Jan 5 13:00:18 1998 John F. Carr <jfc@mit.edu> - - * alias.c (*_dependence): Call base_alias_check before canon_rtx. - (base_alias_check): If no base found for address call canon_rtx and - try again. - -Mon Jan 5 11:39:49 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (mips_expand_prologue): Handle large frame with no outgoing - arguments for mips16. - (mips_expand_epilogue): Pass "orig_tsize" to save_restore_insns. - Don't lose if tsize is zero after handling large stack for mips16. - * mips.md (return): For trivial return, return address is in $31. - -Sun Jan 4 20:24:00 1998 Nigel Stephens <nigel@algor.co.uk> - - * mips/mips16.S: Various changes to make it work with -msingle-float - and -EL. - -Sun Jan 4 14:25:18 1998 Gavin Koch <gavin@cygnus.com> - Ian Lance Taylor <ian@cygnus.com> - Jeff Law <law@cygnus.com> - - * mips.c, mips.h, mips.md: First cut at merging in mips16 - support. Major modifications throughout all three files. - -Sun Jan 4 01:01:50 1998 scott snyder <snyder@d0sgif.fnal.gov> - - * configure.in: Make gthr-default.h a forwarding header instead of - a symlink. - -Sat Jan 3 12:08:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gcov-io.h: Include sys/types.h to ensure we get size_t. - - * pa.h (ASM_OUTPUT_MI_THUNK): Add missing % in fprintf. - -Fri Jan 2 23:40:09 1998 Jim Wilson (wilson@cygnus.com) - Jeffrey A Law (law@cygnus.com) - - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * iris6.h (LINK_SPEC): Hide __frame_dummy too. - -Fri Jan 2 04:57:57 1998 Weiwen Liu <liu@hepmail.physics.yale.edu> - - * alpha.c (vms_valid_decl_attribute_p): Move within #if OPEN_VMS. - -Fri Jan 2 04:34:14 1998 Richard Henderson <rth@cygnus.com> - - * c-decl.c (init_decl_processing): Provide proper fallback symbol - for __builtin_memset. - * expr.c (expand_builtin) [MEMSET]: Arg 3 type code is INTEGER_TYPE - not INTEGER_CST. Assert arg 3 is a constant. - - * alpha.c (mode_width_operand): Accept 64-bit modes. - (mode_mask_operand): Likewise. - (print_operand): Likewise for 'M' and 'U' codes. - (alpha_expand_unaligned_load): New function. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_move): Likewise. - (alpha_expand_block_clear): Likewise. - * alpha.h (MOVE_RATIO): New define. - * alpha.md (extxl, ext*h, ins*l, mskxl): Name them. - (insql, insxh, mskxh, extv, extzv, insv, movstrqi, clrstrqi): New. - - * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Set to 3. - (CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Disable. - -Thu Jan 1 15:40:15 1998 Richard Henderson <rth@cygnus.com> - - * configure.in: Put parenthesis around TARGET_CPU_DEFAULT's value. - * configure: Update. - -Thu Jan 1 10:49:12 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Correctly handle extracting a word - from a CONST_DOUBLE for 16bit targets with !WORDS_BIG_ENDIAN. - - * mn10200.md (tstxx, cmpxx): Use "nonimmediate_operand" as predicate - for first argument. - -Wed Dec 31 14:42:18 1997 Ian Lance Taylor <ian@cygnus.com> - - * configure.in: Set and subsitute host_exeext. Use it when creating - the assembler and linker symlinks. - * configure: Rebuild. - * Makefile.in (exeext): Set to @host_exeext@. - (build_exeext): New variable, set to @build_exeext@. - (FLAGS_TO_PASS): Pass down build_exeext. - (STAGESTUFF): Use build_exeext, not exeext, for gen* and bi* - programs. - -Wed Dec 31 10:05:44 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (addsi3, subsi3): Fix thinkos. - -Tue Dec 30 00:04:49 1997 Richard Henderson <rth@cygnus.com> - - * sparc.h (ASM_OUTPUT_MI_THUNK): Move %o7 through %g1 instead of - save+restore. Fix pic+big_offset delay slot. Use "pic" case for - unix always, since we want to be able to thunk to functions in a - shared library from an application. - -Mon Dec 29 14:37:31 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips/t-ecoff (CROSS_LIBGCC1): Define to libgcc1-asm.a. - (LIB1ASMSRC, LIB1ASMFUNCS): Define. - -Mon Dec 29 14:03:38 1997 Jeffrey A Law (law@cygnus.com) - - * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the - offset's mode is not ptr_mode, convert it. - -Mon Dec 29 15:58:18 1997 Michael Meissner <meissner@cygnus.com> - - * libgcc2.c (inhibit_libc): Don't define inhibit_libc when cross - compiling if it was already defined. - -Sun Dec 28 00:32:16 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): Don't create a new basic block - for calls in a LIBCALL block. - -Sun Dec 28 00:30:24 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * config/fp-bit.c (L_df_to_sf): Fix typo in last change. - -Sat Dec 27 22:43:12 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (rtx_cost): Remove conflicting default case. - -Sat Dec 27 21:20:02 1997 Richard Henderson <rth@cygnus.com> - - * configure.in: Move default enabling of Haifa out of for loop. - * configure: Rebuild. - -Thu Dec 25 01:02:54 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1997-12-25 Teemu Torma <tot@trema.com> - - * Makefile.in (GTHREAD_FLAGS): New var. - (LIBGCC2_CFLAGS): Added $(GTHREAD_FLAGS). - (distclean): Remove gthr-default.h. - - * configure.in: Accept dce as a thread package. - Check for thread.h and pthread.h. - Link gthr-default.h to appropriate thread file and set - gthread_flags. - (hppa1.1-*-hpux10*): If --enable-threads, use dce threads and - include multilib definitions from pa/t-dce-thr. - (sparc-*-solaris2*): Enable threads by default, if thread.h or - pthread.h is found, preferring posix threads over solaris ones. - - * config/pa/t-dce-thr: New file. - * config/pa/t-pa: Removed multilibs. - * config/sparc/t-sol2: Ditto. - - * gthr.h: New file. - * gthr-single.h: New file. - * gthr-posix.h: New file. - * gthr-solaris.h: New file. - * gthr-dce.h: New file. - * libgcc-thr.h: Removed. - * objc/thr-dce.c: New file copied from thr-decosf1.c. - - * frame.c: Include gthr.h instead of libgcc-thr.h. - * libgcc2.c: Include gthr.h instead of libgcc-thr.h. - (eh_context_initialize): If __gthread_once fails, use static eh - context. - (eh_context_free): Call __gthread_key_dtor. - -Wed Dec 24 23:33:17 1997 Jeffrey A Law (law@cygnus.com) - - * expr.h (MUST_PASS_IN_STACK): Allow target port to override. - -Wed Dec 24 23:12:14 1997 Jim Wilson <wilson@cygnus.com> - - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use max_insn_uid. - (cse_main): Set max_insn_uid. - - * abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, - and define __LONG_MAX__ appropriately. Add support for -mabi=X, - -mlong64, and -mgp{32,64} options. - * mips.c (mips_abi): Change type to int. - * mips.h (enum mips_abi_type): Delete. - (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. - (mips_abi): Change type to int. - -Wed Dec 24 22:38:34 1997 John Carr <jfc@mit.edu> - - * flags.h, toplev.c, calls.c, alias.c: Remove flag_alias_check; - optimization is now always enabled. - - * calls.c (expand_call): Recognize C++ operator new as malloc-like - function. - - * alias.c (memrefs_conflict_p): Eliminate tests now done by - base_alias_check. - (*_dependence): Call canon_rtx before base_alias_check. - (init_alias_once): New function to precompute set of registers which - can hold Pmode function arguments. - - * rtl.h: Declare init_alias_once. - - * toplev.c (compile_file): Call init_alias_once. - -Wed Dec 24 22:34:55 1997 Jeffrey A Law (law@cygnus.com) - - * tree.c (restore_tree_status): Do not dereference a null pointer. - -Tue Dec 23 12:56:46 1997 Paul Eggert <eggert@twinsun.com>: - - * genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT in addition to - RLIMIT_STACK. This maintains consistency with the recent, similar - patch to cccp.c and toplev.c. - -Tue Dec 23 05:17:28 1997 Richard Henderson <rth@cygnus.com> - - * genattrtab.c (expand_units): For large nr opclasses, expand - function_units_used with ORX to prevent blowups. Tag with FFS. - (num_unit_opclasses): New variable. - (gen_unit): Update it. - (enum operator): Add ORX_OP. - (operate_exp): Treat ORX as or, except don't expand across an if. - Reuse number rtx's after operating on them. - (check_attr_value): Accept IOR, AND, & FFS. - (write_test_expr): Transmute `in_comparison' to `flags'. Allow - for attribute value caching. Handle CONST_STRING, IF_THEN_ELSE. - (write_expr_attr_cache, write_toplevel_expr): New functions. - (write_attr_get): Handle FFS-tagged expressions. - (make_canonical): Don't expand const attributes. - (convert_const_symbol_ref): Dike out. - (evaluate_eq_attr): Handle SYMBOL_REF. - (main): Don't emit get_attr_foo for const attributes. - - * alpha.c (override_options): Reinstate PROCESSOR_EV6. - (alpha_adjust_cost): Add EV6 tuning; streamline EV5 tests. - * alpha.h (REGISTER_MOVE_COST): Increase ftoi/itof cost slightly. - * alpha.md: Redo all of the scheduling, adding EV6 support, and - combining function units where possible. - (attr "type"): Split loads, stores, cmov into int/fp. Combine - multiplies and divides. Add EV6 sqrt, ftoi, itof. - (attr "opsize"): New attribute. - (sqrtsf2-1, sqrtdf2-1): Provide proper TP_INSN patterns. - (movsf2-[12], movdf2-[12]): Provide CIX varients; don't allow CIX - to control register allocation. - (movsi2-1, movdi2-1): Likewise. - -Tue Dec 23 03:53:21 1997 Richard Henderson <rth@cygnus.com> - - * alpha.h (CPP_PREDEFINES, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, - MD_STARTFILE_PREFIX, ASM_FILE_START, ASM_SPEC, ASM_FINAL_SPEC): - Move OSF/1 specific defines out. - * alpha/elf.h (TARGET_VERSION, CPP_PREDEFINES, DEFAULT_VTABLE_THUNKS): - Move Linux specific defines out. - (LINK_SPEC): Genericize. - (ASM_FILE_START): Emit .arch if using more than the base insn set. - (ASM_OUTPUT_SOURCE_LINE): Remove; identical to alpha.h version. - (SDB_DEBUGGING_INFO): Remove; gas can't handle it. - (HANDLE_SYSV_PRAGMA): Define. - * alpha/osf.h: New file. - * alpha/linux.h: Split. Retain file-format independant defines. - Import Linux bits from elf.h. - (CPP_PREDEFINES): Take a file-format specific SUB_CPP_PREDEFINES - (FUNCTION_PROFILER): _mcount takes its address in $28. - (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Remove undef. - * alpha/linux-ecoff.h: New file. - * alpha/linux-elf.h: New file. - * alpha/vms.h (LIB_SPEC, LINK_SPEC): Copy from osf.h. - * alpha/win-nt.h (TARGET_DEFAULT): Define. - * configure.in (alpha*-*-osf*, alpha*-*-linux*) [tm_file]: - Add new headers as appropriate. - - * configure.in (alpha*): Enable Haifa by default. - (*-*-winnt3*): Change to winnt*, since we're not v3 specific. - * configure: Rebuild. - -Tue Dec 23 03:14:54 1997 Richard Henderson <rth@cygnus.com> - - * Makefile.in (clean): Remove the stages with their objects here ... - (distclean): ... instead of here. - -Mon Dec 22 11:24:01 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cse.c (rtx_cost): Add default case in enumeration switch. - * fix-header.c (recognized_macro): Likewise. - (recognized_extern): Likewise. - (write_rbrac): Likewise. - * objc/objc-act.c (encode_aggregate): Likewise. - (gen_declarator): Likewise. - (gen_declspecs): Likewise. - -Mon Dec 22 09:58:51 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (create_reg_dead_note): Detect and handle another - case where we kill more regs after sched than were killed before - sched. - * sched.c (create_reg_dead_note): Similarly. - -Mon Dec 22 09:18:37 1997 Jeffrey A Law (law@cygnus.com) - - * c-pragma.c: Include flags.h. - -Sun Dec 21 22:10:59 1997 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Don't assume anything - about system headers. - (LIB_SPEC): Add -ladvapi32 -lshell32 to be consistent with mingw32 - and also to resolve symbols in prefix.c. - - * i386/xm-cygwin32.h (HAVE_BCOPY): Define. This avoids a conflict - between gansidecl.h and newlib's _ansi.h when building libgcc2.a, - when the definitions in auto-config.h is not visible. - (HAVE_BZERO): Likewise. - (HAVE_BCMP): Likewise. - (HAVE_RINDEX): Likewise. - (HAVE_INDEX): Likewise. - -Sun Dec 21 21:54:22 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (emit_move_sequence): Handle a function label source - operand. - -Sun Dec 21 16:13:55 1997 Nick Clifton <nickc@cygnus.com - - * c-pragma.c (handle_pragma_token): Generate warning messages - about unknown pragmas if warn_unknown_pragmas is set. - - * c-decl.c (c_decode_option): Parse -Wunknown-pragmas command - line option to set variable: warn_unknown_pragmas. - -Sun Dec 21 15:51:10 1997 Manfred Hollstein <manfred@lts.sel.alcatel.de> - - * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in the - definition. - (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. - -Sun Dec 21 13:58:39 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Define. - (libgcc2.a): Depend on $(DPBIT) and $(FPBIT). Add rules to - generate more fine grained floating point emulation libraries. - * config/fp-bit.c: Add protecting #ifdef to all functions so - that they can be compiled separately. If !FINE_GRAINED_LIBRARIES, - then compile all suitable functions. - (pack_d, unpack_d, fpcmp_parts): Add declarations, define with two - underscores to avoid namespace pollution. - * t-mn10200 (LIB2FUNCS_EXTRA): Remove fp-bit.c - (FPBIT): Define. - * t-mn10300 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c - (FPBIT): Define. - (DPBIT): Define. - -Sat Dec 20 11:26:47 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - Jeff Law <law@cygnus.com> - - * bitmap.c (bitmap_clear): Ensure `inline' is at the beginning - of the declaration. - * c-decl.c (finish_decl): Use parentheses around && within ||. - * rtl.c: Include stdlib.h. - (read_skip_spaces): Add parentheses around assignments used as - truth values. - (read_rtx): Initialize list_rtx. - * cppexp.c (parse_number): Use || when operands are truth values. - * alias.c (find_base_value): Add default case. - (memrefs_conflict): Likewise. - * combine.c (sets_function_arg_p): Likewise. - * genemit.c (gen_exp): Likewise. - * local-alloc.c (contains_replace_regs): Likewise. - * rtlanal.c (jmp_uses_reg_or_mem): Likewise. - * fold-const.c (fold_convert): Use "&&" for truth values. - (fold): Add default case. - * sdbout.c (sdbout_field_types): Fix typo in declaration. - (sdbout_one_type): Add default case. - * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS. - (some_operand): Add default case. - (input_operand): Likewise. - (signed_comparison_operator): Likewise. - (divmod_operator): Likewise. - (alpha_set_memflags_1): Likewise. - * reload1.c (reload_cse_simplify_operands): Ensure function - always returns a value. - * scan-decls.c (scan_decls): Likewise. - * c-lex.c (skip_white_space): Fix typo in declaraion. - * c-typeck.c (comp_target_types): Add parentheses around assignment - used as truth value. - (print_spelling): Likewise. - (constructor_implicit, constructor_result): Remove unused variables. - * collect2.c (scan_library): Protect prototype with - #ifdef SCAN_LIBRARIES. - * emit-rtl.c (find_line_note): Fix typo in declaration. - * final.c (asm_insn_count): Protect prototype with - #ifdef HAVE_ATTR_length. - * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC. - (try_pre_increment_1, try_pre_increment): Likewise. - * regclass.c (auto_inc_dec_reg_p): Protect prototype with - #ifdef FORBIDDEN_INC_DEC_CLASSES. Make return type explicit. - * gcov-io.h (__store_long, __write_long, __read_long): Fix - unsigned/signed comparisons. - * gcov.c (read_files): Remove unused "first_type" variable. - (scan _for_source_files): Initialize s_ptr. - (function_summary): Eliminate "%lf" formatting, use %ld for - longs. - (output_data): Initialize branch_probs and last_line_num. - Eliminate "%lf" formatting, use "%ld" for longs. - -Fri Dec 19 17:31:11 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips16.S: New file. - - * libgcc2.c (varargs): Handle mips16. - - * expr.c (do_tablejump): Let CASE_VECTOR_PC_RELATIVE be an - expression. - * stmt.c (expand_end_case): Likewise. - * alpha.h (CASE_VECTOR_PC_RELATIVE): Update. - * fx80.h, gmicro.h, m68k.h, m88k.h, ns32k.h: Likewise. - * rs6000.h, sh.h, tahoe.h, v850.h, vax.h: Likewise. - -Tue Dec 16 15:14:09 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * objc/Make-lang.in: Create runtime-info.h and libobjc_entry.o in - the build directory. - (libobjc.a): Update dependency list. - (libobjc.dll): Likewise. Use libobjc_entry.o from the build - directory. - (objc/sendmsg.o): Add -Iobjc to find runtime-info.h. - (objc.mostlyclean): Remove runtime-info.h. - -Fri Dec 19 00:19:42 1997 Richard Henderson <rth@cygnus.com> - - * tree.c (build_range_type): Allow creation of ranges with no maximum. - * dbxout.c (dbxout_range_type): Handle missing TYPE_MAX_VALUE. - * dwarf2out.c (add_subscript_info): Likewise. - * dwarfout.c (subscript_data_attribute, byte_size_attribute): Likewise. - * sdbout.c (plain_type_1): Likewise. - * stmt.c (pushcase_range, all_cases_count, node_has_high_bound): - Likewise. - * fold-const.c (int_const_binop, fold_convert, make_range, fold): - Likewise. - -Thu Dec 18 17:05:10 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips.c (fatal): Remove declaration. - -1997-12-18 Mark Mitchell <mmitchell@usa.net> - - * integrate.c (get_label_from_map): New function. - (expand_inline_function): Use it. Initialize the label_map to - NULL_RTX instead of gen_label_rtx. - (copy_rtx_and_substitute): Use get_label_from_map. - * integrate.h (get_label_from_map): New function. - (set_label_from_map): New macro. - * unroll.c (unroll_loop): Use them. - (copy_loop_body): Ditto. - -Thu Dec 18 19:19:57 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips/mips.h (INIT_SUBTARGET_OPTABS): Define if not defined. - (INIT_TARGET_OPTABS): Define. - * mips/ecoff.h: Include gofast.h before mips.h. - (INIT_SUBTARGET_OPTABS): Define instead of INIT_TARGET_OPTABS. - * mips/elf64.h: Likewise. - * mips/elf.h (ASM_OUTPUT_SECTION_NAME): Define. - -Thu Dec 18 14:51:12 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.c: Remove register_exception_table{,_p}. - -Thu Dec 18 14:57:29 1997 Gavin Koch <gavin@cygnus.com> - - * unroll.c (calculate_giv_inc): Handle constant increment found in - a MEM with an appropriate REG_EQUAL note. - - * calls.c (expand_call): Implement LOAD_ARGS_REVERSED. - - * dwarf2out.c (dwarf2out_frame_debug): Handle adjustments of the - frame pointer in the prologue. - -Thu Dec 18 00:19:38 1997 Robert Lipe <robertl@dgii.com> - - * i386/x-sco5 (CLIB) Deleted. (ALLOCA) Added. - * i386/xm-sco5.h (USE_C_ALLOCA) Added. - -Tue Dec 16 18:51:00 1997 Bill Moyer <billm@cygnus.com> - - * config/m68k/m68k.c (output_function_prologue): Typecast - dwarf2out_cfi_label to (char *). - * config/m68k/m68kemb.h (STARTFILE_SPEC): Redefined to "". - -Wed Dec 17 15:06:04 1997 Richard Henderson <rth@cygnus.com> - - * sparc.md (jump): Don't use the annul bit around an empty loop. - Patch from Kevin.Kelly@East.Sun.COM. - -Wed Dec 17 00:51:36 1997 Stan Cox (scox@cygnus.com) - - * jump.c: (jump_optimize): Don't use the return register as a - source1 of a conditional move. - -Tue Dec 16 23:45:40 1997 Richard Henderson <rth@cygnus.com> - - * sparc.c (DF_MODES): Or the mask not the bit number. - (function_arg) [ARCH64]: Send unprototyped arg to fp reg first. - -Wed Dec 17 00:13:48 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * combine.c (force_to_mode): return immediately if operand is a CLOBBER. - -Tue Dec 16 23:44:54 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * fixincludes (size_t): Add support for Motorola's stdlib.h - which fails to provide a definition for size_t. - (fabs/hypot): Provide a prototype for fabs on m88k-motorola-sysv3. - (strlen,strspn,strcspn return value): Handle different layout on sysV88. - (hypot): Provide a fake for hypot for m88k-motorola-sysv3. - - * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to - prevent unresolved externals in libio. - * m88k/xm-sysv3.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Likewise. - -Tue Dec 16 23:25:45 1997 H.J. Lu (hjl@gnu.org) - - * config/sparc/linux64.h (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - (LIB_SPEC): Updated for glibc 2. - -Tue Dec 16 20:11:36 1997 Jeffrey A Law (law@cygnus.com) - - * ginclude/stdarg.h: Undo BeOS changes, they break hpux. - * ginclude/varargs.h: Likewise. - -Tue Dec 16 00:32:01 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Dec 16 00:14:29 1997 H.J. Lu (hjl@gnu.org) - - * frame.h (__register_frame, __register_frame_table, - __deregister_frame): New. - * frame.c (__register_frame, __register_frame_table, - __deregister_frame): New. - * frame.c (__deregister_frame_info): Return void *. - * frame.h (__deregister_frame_info): Ditto. - * collect2.c (__deregister_frame_info): Ditto. - -Mon Dec 15 18:40:08 1997 Richard Henderson <rth@cygnus.com> - - * expmed.c (expand_shift): If SHIFT_COUNT_TRUNCATED, drop a SUBREG. - -Mon Dec 15 18:31:43 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_cpu_name): New variable. - (alpha_mlat_string): Likewise. - (alpha_memory_latency): Likewise. - (override_options): Handle -mmemory-latency. - (alpha_adjust_cost): Adjust load cost for latency. - * alpha.h (TARGET_OPTIONS): Add meory-latency. - (REGISTER_MOVE_COST): Define in terms of memory_latency. Take - TARGET_CIX into account. - (MEMORY_MOVE_COST): Define in terms of memory_latency. - * invoke.texi (DEC Alpha Options): Document -mmemory-latency. - - * alpha.h (ASM_COMMENT_START): New macro. - -Mon Dec 15 17:48:05 1997 Richard Henderson <rth@cygnus.com> - - * reload.h, reload1.c (eliminate_regs), caller-save.c, dbxout.c, - dwarfout.c, dwarf2out.c, reload.c, sdbout.c: Revert March 15 change. - - * reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the - SUBREG_REG if the word count is unchanged. - * reload1.c (eliminate_regs) [case SET]: If W_R_O, preserve - subregs of identical word size for push_reload. - -Mon Dec 15 Mark Mitchell <mmitchell@usa.net> 11:41:32 1997 - - * toplev.c (rest_of_compilation): Don't call save_for_inline_copy - if all we're doing is dealing with -Wreturn-type. - -Mon Dec 15 09:44:39 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (zero_extendqihi2, zero_extendqisi2, zero_extendqidi2): - Use and 255 instead of zapnot 1, since it schedules better. - -Mon Dec 15 08:48:24 1997 Jeffrey A Law (law@cygnus.com) - - * stmt.c (expand_asm_operands): If an ASM has no outputs, then treat - it as volatile. - -Mon Dec 15 00:04:48 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (remove_dependencies): Set RTX_INTEGRATED_P on - dependency we delete. Properly update prev for multiple consecutive - deletions. - (priority): Skip deleted dependence. - -Fri Dec 12 18:54:23 1997 Per Bothner <bothner@cygnus.com> - - * expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod. - -Fri Dec 12 01:19:48 1997 Jason Merrill <jason@yorick.cygnus.com> - - * flow.c (flow_analysis): Be consistent with find_basic_blocks in - determining when a new basic block starts. - - * alpha/osf2or3.h (LIB_SPEC): Restore missing defn. - - * pa.h (TEXT_SPACE_P): Use TREE_CODE_CLASS. - * pa.md (iorsi3): Add missing args to *_operand calls. - - * except.c (call_get_eh_context): Don't mess with sequences. - (emit_eh_context): Include the call in the sequence here. - -1997-12-11 Paul Eggert <eggert@twinsun.com> - - * collect2.c (write_c_file_glob): Allocate initial frame object - in static storage and pass its address. - -Thu Dec 11 23:33:48 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (call_get_eh_context): Don't take a parm. - Put the call at the top of the function. - (emit_eh_context): Adjust. - (get_eh_context): Replace with former use_eh_context. - (get_eh_context_once, get_saved_pc_ref): Remove. - (start_eh_unwinder, end_eh_unwinder, emit_unwinder): Remove. - * except.h: Adjust. - * integrate.c (expand_inline_function): Adjust. - * toplev.c (rest_of_compilation): Don't call emit_unwinder. - -Fri Oct 10 17:58:31 CEST 1997 Marc Lehmann <pcg@goof.com> - - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - (DIR_SEPARATOR, NO_SYS_SIGLIST): Likewise. - -Thu Dec 11 23:55:17 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * fixincludes (strlen,strspn,strcspn return value): Handle different - layout on sysV88. - (hypot): Provide a fake for hypot which is broken on - m88k-motorola-sysv3. - -Thu Dec 11 23:50:17 1997 John F. Carr <jfc@mit.edu> - - * tree.c, tree.h: Change tree_code_type, tree_code_length, and - tree_code_name from pointers to arrays. - * tree.c: Remove standard_tree_code_* variables, no longer used. - * print-tree.c: Remove declaration of tree_code_name. - - * cp/lex.c (init_lex): Update for tree_code_* changes. - * objc/objc-act.c (init_objc): Likewise. - - * tree.def, cp/cp-tree.def, objc/objc-tree.def: Update for tree_code - changes. - -Thu Dec 11 23:34:54 1997 Fred Fish <fnf@ninemoons.com> - - * config.sub: Add support for BeOS target. - * configure.in: Likewise. - * ginclude/stdarg.h: Likewise. - * ginclude/stddef.h: Likewise. - * ginclude/varargs.h: Likewise. - * rs6000/beos.h: New file for BeOS. - * rs6000/t-beos: Likewise. - * rs6000/x-beos: Likewise. - * rs6000/xm-beos.h: Likewise. - * toplev.c (get_run_time): Just return 0 on BeOS. - -Thu Dec 11 23:25:23 1997 Jeffrey A Law (law@cygnus.com) - Toon Moene (toon@moene.indiv.nluug.nl) - - * m68k.h (GO_IF_LEGITIMATE_ADDRESS): No longer cater to horribly - old and broken Sun3 assemblers. Newer versions handle large - offsets correctly as does the GNU assembler. - -Thu Dec 11 23:06:48 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * objc/objc-act.c (lang_report_error_function): Disable. - * objc/objc-parse.y: Include "output.h". - (yyerror): Remove redundant decl. - (yyprint): Fix prototype. - (apply_args_register_offset): Remove redundant decl. - (get_file_function_name): Likewise. - -Thu Dec 11 22:02:10 1997 Jason Merrill <jason@yorick.cygnus.com> - - * flow.c (find_basic_blocks): A CALL_INSN that can throw starts - a new basic block. - (find_basic_blocks_1): Likewise. - -Thu Dec 11 21:08:48 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (use_eh_context): Don't copy_rtx a REG. - (emit_throw): Lose old unwinder support. - (expand_internal_throw): Likewise. - * libgcc2.c (struct eh_context): Likewise. - (new_eh_context): Likewise. - (__get_eh_info): Lose redundant cast. - (__get_dynamic_handler_chain): Likewise. - (__get_saved_pc): Lose. - Lose all old unwinder support code. - -Thu Dec 11 20:42:18 1997 Teemu Torma <tot@trema.com> - - Thread-safe EH support for pthreads, DCE threads and Solaris threads. - - * integrate.c (expand_inline_function): If the inline fn uses eh - context, make sure that the current fn has one. - * toplev.c (rest_of_compilation): Call emit_eh_context. - * except.c (use_eh_context): New fn. - (get_eh_context_once): New fn. - (call_get_eh_context): New fn. - (emit_eh_context): New fn. - (get_eh_context): Call either get_eh_context_once or - call_get_eh_context, depending on what we have. - (get_dynamic_handler_chain): Call get_eh_context_once. - * except.h: Prototypes for fns above. - * optabs.c (get_eh_context_libfunc): Removed. - (init_optabs): Don't initialize it. - * expr.h (get_eh_context_libfunc): Removed. - * rtl.h, rtl.c: New reg_note REG_EH_CONTEXT. - * config/pa/pa.h (CPP_SPEC): Support for -threads. - * config/pa/pa-hpux10.h (LIB_SPEC): Ditto. - * config/pa/t-pa (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - New multilib for -threads. - * config/sparc/t-sol2: Added multilibs for -threads and - made -pthreads alias to it. - * config/sparc/sol2.h (CPP_SPEC, LIB_SPEC): - Added -threads and -pthreads options. - * libgcc-thr.h: New file. - * libgcc2.c: (__get_cpp_eh_context): Removed. - (struct cpp_eh_context): Removed. - (struct eh_context): Replaced cpp_eh_context with generic language - specific pointer. - (__get_eh_info): New function. - (__throw): Check eh_context::info. - (__sjthrow): Ditto. - * libgcc2.c: Include libgcc-thr.h. - (new_eh_context, __get_eh_context, - eh_pthread_initialize, eh_context_initialize, eh_context_static, - eh_context_specific, eh_context_free): New functions. - (get_eh_context, eh_context_key): New variables. - (__sjthrow, __sjpopnthrow, __eh_pcnthrow, __throw): Use - get_eh_context to get the context. - (longjmp): Move the declaration inside - #ifdef DONT_USE_BUILTIN_SETJMP. - * frame.c: Include libgcc-thr.h. - (object_mutex): Mutex to protect the object list. - (find_fde, __register_frame, __register_frame_table, - __deregister_frame): Hold the lock while accessing objects. - * except.h (get_eh_context): Declare. - * except.c (current_function_ehc): Define. - (current_function_dhc, current_function_dcc): Removed. - (get_eh_context): New function. - (get_dynamic_handler_chain): Use get_eh_context. - (get_saved_pc_ref): Ditto. - (get_dynamic_cleanup_chain): Removed references to - current_function_dcc. - (save_eh_status, restore_eh_status): Save and restore - current_function_ehc instead. - * optabs.c (get_eh_context_libfunc): New variable. - (init_optabs): Initialize it. - * expr.h: Declare get_eh_context_libfunc. - * function.h (struct function): Replaced dhc and dcc with ehc. - * except.c (get_saved_pc_ref): New functions. - (eh_saved_pc_rtx, eh_saved_pc): Deleted. - (expand_internal_throw_indirect): Use get_saved_pc_ref() instead - of eh_saved_pc. - (end_eh_unwinder): Likewise. - (init_eh): Remove initialization of eh_saved_pc. - * optabs.c (get_saved_pc_libfunc): New variable. - (init_optabs): Initialize it. - * expr.h: Declare get_saved_pc_libfunc. - * except.h (eh_saved_pc_rtx): Deleted. - (get_saved_pc_ref): Declared. - - From Scott Snyder <snyder@d0sgif.fnal.gov>: - * libgcc2.c (__get_saved_pc): New. - (__eh_type, __eh_pc): Deleted. - (__eh_pcnthrow): Use __get_saved_pc() instead of __eh_pc. - (__get_dynamic_handler_chain): Move __dynamic_handler_chain inside - this fcn. - -Thu Dec 11 17:23:48 1997 John F. Carr <jfc@mit.edu> - - * sparc/sol2.h: Use 64 bit multiply and divide functions in - Solaris libc. Define TARGET_LIVE_G0 and TARGET_BROKEN_SAVERESTORE - as 0. - - * rtl.h (global_rtl): New variable, replacing separate variables for - commonly used rtl. - (const_int_rtx): Now array of rtx_def, not rtx. - * emit-rtl.c: Update for new rtl data structures. - * genattrtab.c: Define global_rtl. - -Thu Dec 11 15:50:29 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * configure.in ({rs6000,powerpc}-*-*): Enable Haifa scheduler by - default. - -Wed Dec 10 12:30:18 1997 Anthony Green <green@cygnus.com> - - * crtstuff.c (__do_global_ctors): Fix typo. - -Tue Dec 9 09:43:59 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * toplev.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition - to RLIMIT_STACK to see if we can call getrlimit and setrlimit. - -Tue Dec 9 09:38:58 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (FUNCTION_ARG_PADDING): Define. - * rs6000.c (function_arg_padding): New function. - -Tue Dec 9 10:34:21 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * m68k.c: Include tree.h only once. - -Tue Dec 9 09:32:33 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. - -Tue Dec 9 01:16:06 1997 Jeffrey A Law (law@cygnus.com) - - * Partially cleaned up prototyping code from HJ. - * tree.h: Add many prototypes. - * haifa-sched.c (haifa_classify_insn): Renamed from classify_insn. - All references changed. - * rtl.h: Protect from multiple inclusions. Add many prototypes. - -Tue Dec 9 01:15:15 1997 Fred Fish <fnf@ninemoons.com> - - * libgcc2.c (string.h): Hoist inclusion to occur before first use of - string functions like strlen. - -Tue Dec 9 00:57:38 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * configure.in: Check for functions getrlimit and setrlimit. - * cccp.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition - to RLIMIT_STACK to see if we can call getrlimit and setrlimit. - -Mon Dec 8 23:53:26 1997 Jay Sachs <sachs@bull.cs.williams.edu> - - * Makefile.in (compare*): Handle losing behavior from 4.4bsd make. - -Mon Dec 8 21:03:28 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (REG_RA, alpha_return_addr, output_epilog): - Fix merge problems. - - * alpha.c (override_options): Don't know about scheduling for EV6. - * alpha.md (ev5 function units): Don't overload as ev6. - - * alpha.c (alpha_adjust_cost): Simplify. Fix typo in ev5 mult case. - * alpha.md (define_attr type): Add mvi. - (ev5_e0): Define sceduling parameters for it. - (TARGET_MAX insns): Type is mvi not shift. - -Mon Dec 8 18:15:00 1997 Richard Henderson <rth@cygnus.com> - - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix backported gcc-2.8 bug. - -Mon Dec 8 21:17:28 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * cstamp-h, auto-config.h: Delete. - -Sun Dec 7 19:19:03 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 6 22:22:22 1997 Jeffrey A Law (law@cygnus.com) - - * cccp.c: Fix typo brought over in merge. - - * Merge in changes from gcc-2.8. - -Mon Nov 3 05:45:32 1997 Philippe De Muyter <phdm@macqel.be> - - * m68k.c: Include tree.h for dwarf2out_cfi_label. - - * gcc.c (process_command): Do not take address of function fatal when - calling lang_specific_driver. - -Sat Dec 6 01:02:38 1997 Mumit Khan <khan@xraylith.wisc.edu> - - * config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling - doesn't work with it yet, so set it to 0. - * config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define. - -Sat Dec 6 01:01:02 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * cse.c (cse_insn): Check for invalid entries when taking references. - -Fri Dec 5 18:26:25 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (invariant_p): Don't test flag_rerun_loop_opt. - (loop_optimize, scan_loop, strength_reduce): New argument unroll_p. - * toplev.c (rest_of_compilation): Pass it. Remove code to - save / clear / restore flag_unroll_{,all_}loops. - -Fri Dec 5 16:26:03 1997 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> - - * i386.c (notice_update_cc): Remove bogus pentium GCC code. - -Fri Dec 5 16:25:14 1997 Jeffrey A Law (law@cygnus.com) - - * stmt.c (warn_if_unused_value): Don't warn for TRY_CATCH_EXPR. - -Thu Dec 4 11:51:00 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (get_dynamic_handler_chain): Only make the call once per - function. - - * except.c (expand_end_all_catch): Fix for sjlj exceptions. - -Thu Dec 4 12:30:40 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (final_prescan_insn): Use local label prefix - when emitting .uses pseudo-ops. - -Wed Dec 3 12:01:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (__throw): Use __builtin_return_addr instead of __eh_pc. - * except.c: Lose outer_context_label_stack. - (expand_eh_region_end): Rethrow from outer_context here. - (expand_fixup_region_end): Let expand_eh_region_end do the rethrow. - (expand_internal_throw): Take no args. - (expand_internal_throw_indirect): Lose. - (expand_leftover_cleanups, expand_start_all_catch): Use expand_rethrow. - (expand_start_all_catch): Start a rethrow region. - (expand_end_all_catch): End it. - (expand_rethrow): New fn. - * except.h: Reflect above changes. - * flow.c: Revert change of Nov 27. - -Thu Dec 4 00:24:09 1997 Jeffrey A Law (law@cygnus.com) - - * i386/t-sol2 (CRTSTUFF_T_CFLAGS): Turn on the optimizer. - -Wed Dec 3 12:01:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (expand_fixup_region_end): New fn. - (expand_fixup_region_start): Likewise. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use them to protect fixups. - -Wed Dec 3 11:41:13 1997 Gavin Koch <gavin@cygnus.com> - - * mips/mips.md (muldi3_r4000): Broaden the output template - and attribute assignments to handle three operand dmult; - rename to muldi3_internal2. - (muldi3): Call the new muldi3_internal2 for R4000, and - any GENERATE_MULT3 chip. - -Tue Dec 2 19:40:43 1997 Jason Merrill <jason@yorick.cygnus.com> - - * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. - -Tue Dec 2 12:54:33 1997 Jim Wilson <wilson@cygnus.com> - - * unroll.c (find_splittable_givs): Remove last change. Handle givs - with a dest_reg that was created by loop. - -Sat Nov 29 12:44:57 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (function_arg_partial_nregs): Undo Nov. 26 patch. - - * rs6000/aix41.h (ASM_CPU_SPEC): Define. - -Fri Nov 28 10:00:27 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in: Fix NCR entries. - -Thu Nov 27 12:20:19 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): Handle cfg issues for rethrows and - nested exceptions correctly. - - * unroll.c (find_splittable_givs): Don't split givs with a dest_reg - that was created by loop. - -Thu Nov 27 09:34:58 1997 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. - - * except.c (expand_start_all_catch): One more do_pending_stack_adjust. - -Wed Nov 26 15:47:30 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. - (print_operand): Use SMALL_DATA_REG for the register involved in - small data relocations. - (print_operand_address): Ditto. - - * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if - -dynamic linker is not used. - - * rs6000.md (call insns): For local calls, use @local suffix under - System V. Don't use @plt under Solaris. - - * rs6000.c (output_function_profiler): Put label address in r0, and - store LR in 4(sp) for System V/eabi. - - * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 - byte boundary, and maintain stack backchain. - -Tue Nov 25 14:08:12 1997 Jim Wilson <wilson@cygnus.com> - - * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, - fix_truncsfdi2): Change *. - -Wed Nov 26 11:12:26 1997 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (main): Complain about -gdwarfn. - -Tue Nov 25 22:43:30 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarfout.c (output_type): If finalizing, write out nested types - of types we've already written. - -Tue Nov 25 20:32:24 1997 Michael Meissner <meissner@cygnus.com> - - (patches originally from Geoffrey Keating) - * rs6000.c (function_arg): Excess floating point arguments don't - go into GPR registers after exhausting FP registers under the - System V.4 ABI. - (function_arg_partial_nregs): Ditto. - - * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt - suffix to calls. - -Tue Nov 25 23:37:27 1997 Jason Merrill <jason@yorick.cygnus.com> - - * integrate.c (output_inline_function): Just unset DECL_INLINE. - -Tue Nov 25 23:33:29 1997 scott snyder <snyder@d0sgif.fnal.gov> - - * dwarf2out.c (outout_call_frame_info): Ensure that the info has - proper alignment. - - * libgcc2.c (__throw): Initialize HANDLER. - -Tue Nov 25 14:08:12 1997 Jim Wilson <wilson@cygnus.com> - - * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, - fix_truncsfdi2): Change *X to ?*X. - -Tue Nov 25 10:00:42 1997 Richard Henderson (rth@cygnus.com) - - * alpha.h (CONST_OK_FOR_LETTER): Fix 'L' handling. - -Tue Nov 25 10:00:42 1997 Jeffrey A Law (law@cygnus.com) - - * crtstuff.c (do_global_dtors_aux): Handle multiple calls better. - -Tue Nov 25 01:26:55 1997 Bruno Haible <haible@ilog.fr>: - - * dwarf2out.c (ASM_OUTPUT_DWARF_DELTA1): Implement. - -Mon Nov 24 22:41:55 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc. - * expr.h: Likewise. - -Sat Nov 22 18:58:20 1997 Jeffrey A Law (law@cygnus.com) - - * pa-hpux10.h (NEW_HP_ASSEMBLER): Define. - * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using - gas and not using the new HP assembler. - -Fri Nov 21 15:20:05 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (program_transform_cross_name): Clean up "-e" confusion. - (GCC_INSTALL_NAME, GCC_CROSS_NAME): Likewise. - -Fri Nov 21 19:37:40 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * config/mips/elf64.h (MULTILIB_DEFAULTS): Test for - TARGET_ENDIAN_DEFAULT == zero instead of testing for macro - definition. - -Fri Nov 21 12:49:56 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * stmt.c (expand_end_bindings): Allow jump into block with cleanups. - -Fri Nov 21 12:18:51 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.h: Add outer_context_label_stack. - * except.c: Likewise. - (expand_start_all_catch): Push the outer_context for the try block - onto outer_context_label_stack. - (expand_end_all_catch): Use it and pop it. - -Fri Nov 21 10:13:11 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (HAVE_ATEXIT): Revert last change. - -Thu Nov 20 16:11:50 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_set_const_1): Handle narrow hosts better. - -Thu Nov 20 16:11:50 1997 Klaus Kaempf <kkaempf@progis.de> - - * alpha/vms.h (ASM_OUTPUT_ADDR_VEC_ELT): Add an L for the local label - to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. - -Thu Nov 20 14:42:15 1997 Jason Merrill <jason@yorick.cygnus.com> - - * Makefile.in (LIB2FUNCS): Remove C++ memory management support. - * libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler, - __builtin_delete, and __builtin_vec_delete. - - * except.c (output_exception_table): Don't bother with - __EXCEPTION_END__. - -Thu Nov 20 16:11:50 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (pre_stwm, post_stwm, pre_ldwm, post_ldwm): Base register - is an in/out operand. - (zero extended variants of stwm/stwm patterns): Similarly. - - * mips/x-iris (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. - -Thu Nov 20 13:19:32 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4. - Use assemble_name. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Use assemble_name. - (output_call_frame_info): Emit a \n after using it. - -Thu Nov 20 00:38:46 1997 Dave Love <d.love@dl.ac.uk> - - * configure.in: Add AC_ARG_ENABLE for Haifa as documentation. - -Wed Nov 19 12:03:04 1997 Philippe De Muyter <phdm@macqel.be> - - * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. - (ASM_OUTPUT_DWARF_VALUE4): New macro. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is - defined. - (output_call_frame_info): Do not output forward label differences - if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. - * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. - -Tue Nov 18 23:03:30 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (attribute "type"): Add nil. - (movsi_ie): y/y alternative is type nil. - (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X - alternatives. - (movsf_ie+1): Delete. - -Tue Nov 18 15:39:59 1997 Jim Wilson <wilson@cygnus.com> - - * mips/mips.c (save_restore_insns): If gp_offset or fp_offset are - large_int, emit two insns instead of one splitable insn. - * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset - from cfa_temp_value, use cfa_offset. Add assert checking that - cfa_reg is SP. - -Mon Nov 17 15:35:38 1997 Tom Tromey <tromey@cygnus.com> - - * cccp.c (deps_output): Properly quote file names for make. - -Mon Nov 17 13:21:40 1997 Jeffrey A Law (law@cygnus.com) - - * t-h8300 (MULTILIB_EXCEPTIONS): Define. - -Fri Nov 7 15:33:11 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (HAVE_ATEXIT): Delete definition. - -Sun Nov 16 23:52:48 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionl - return. - (cse_end_of_basic_block): Similarly. - -Sun Nov 16 23:01:40 1997 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define. - (SELECT_RTX_SECTION): Define. - (LIBGCC_SPEC, LIB_SPEC): Do the right thing for PIC. - -Sun Nov 16 22:47:03 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (compare, compare-lean): Define $stage for each - shell command. - (gnucompare, gnucompare-lean): Likewise. - -Sun Nov 16 22:02:16 1997 Richard Henderson (rth@cygnus.com) - - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix offsets. - - * alpha.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add an L for the local label - to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. - -Fri Nov 14 09:09:20 1997 Fred Fish (fnf@cygnus.com) - - * dwarfout.c (byte_size_attribute): Add local var upper_bound - and add case to handle STRING_TYPE. - * dwarfout.c (output_string_type_die): Fix code to generate - correct string length attribute for fixed length strings. - Still needs support for varying length strings. - -Fri Nov 14 08:46:56 1997 Jeffrey A Law (law@cygnus.com) - - * toplev.c (get_run_time): Do something sensible for cygwin32. - -Fri Nov 14 07:24:20 1997 Richard Henderson <rth@cygnus.com> - - * expr.c (expand_builtin_setjmp): Set - current_function_has_nonlocal_label. - * stupid.c (stupid_life_analysis): If has_nonlocal_label, kill - call-saved registers across calls. - - * alpha.md (exception_receiver): Remove. - (nonlocal_goto_receiver_osf): New - (nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver. - (nonlocal_goto_receiver): New, select _osf or _vms. - - * alpha.c (output_prolog [*]): Prefix entry labels with '$' to - keep them from being propogated to the object file. - (alpha_write_linkage): Likewise. - * alpha.md (call_vms): Likewise. - (call_value_vms): Likewise. - (unnamed osf call insns): Likewise. - - * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - - * alpha.c (call_operand): Any reg is valid for WinNT. - * alpha.md (call_nt, call_value_nt): Don't force address into $27. - (anon nt calls): Add 'R' alternative. - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, - INITIALIZE_TRAMPOLINE): Handle lack of original $27 and 32-bit ptrs. - -Fri Nov 14 06:59:33 1997 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Handle pcc_struct_value correctly for C++. - - * i386/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Delete defines. - * i386/xm-mingw32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. - * rs6000/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. - -Thu Nov 13 20:37:33 1997 Michael Meissner <meissner@tiktok.cygnus.com> - - * reload1.c (new_spill_reg): Improve fixed or forbidden register - spill error message. - -Thu Nov 13 20:29:08 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, - use varargs.h. Wrap header with <>, not "". - -Thu Nov 13 20:21:17 1997 Jeffrey A Law (law@cygnus.com) - - * integrate.c (save_for_inline_copying): Add return value from - savealloc. - -Thu Nov 13 19:12:33 1997 Brendan Kehoe <brendan@cygnus.com> - - * fixincludes: Be a little more restrictive on what we will - substitute to replace definitions of MAXINT for HPUX. - -Thu Nov 13 18:41:02 1997 Michael Meissner <meissner@cygnus.com> - - * dbxout.c (dbxout_symbol_location): Don't assume that variables - whose address is the stack or argument pointers are indirect - pointers. - -1997-11-13 Paul Eggert <eggert@twinsun.com> - - * cccp.c, cpplib.c (compare_defs): - Don't complain about arg name respellings unless pedantic. - * cpplib.c (compare_defs): Accept pfile as new arg. - All callers changed. - -Thu Nov 13 23:33:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * fold-const.c (fold_truthop): Fix bug in last change. - -1997-11-13 Paul Eggert <eggert@twinsun.com> - - Fix some confusion with IEEE minus zero. - - * real.h (REAL_VALUES_IDENTICAL): New macro. - - * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. - * fold-const.c (operand_equal_p): Don't consider -0.0 to be - identical to 0.0. - * tree.c (simple_cst_equal): Don't consider -0.0 to have the - same tree structure as 0.0. - - * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL - macro instead of doing it by hand. - -Thu Nov 13 16:56:14 1997 Jeffrey A Law (law@cygnus.com) - - * v850/lib1funcs.asm: Minor whitespace changes. - * v850.c: Fix minor formatting problems in many places. - (construct_restore_jr, construct_save_jarl): Remove unwanted aborts. - -Thu Nov 13 12:53:44 1997 Jim Wilson <wilson@cygnus.com> - - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete code swapping xplus0 and - xplus1 when xplus0 is not a register. - -Thu Nov 13 11:41:42 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): During marking phase, if we encounter - an insn with a REG_LABEL note, make the target block live and - create an edge from the insn to the target block. Do not make - edges from all blocks to the target block. - - * m68k/x-next (OTHER_FIXINCLUDES_DIRS): Include /NextDeveloper/Headers. - - * confiugre.in: Tweak NCR entries. - * configure: Rebuilt. - -Thu Nov 13 11:07:41 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to - pick apart floating point values, instead of using CONST_DOUBLE_LOW - and CONST_DOUBLE_HIGH. - - * rs6000.md (define_splits for DF constants): Use the appropriate - REAL_VALUE_* interface to pick apart DF floating point constants in - a machine independent fashion. - -Thu Nov 13 00:06:58 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * fold-const.c (fold_truthop): When changing a one-bit comparison - against zero into a comparison against mask, do a proper sign - extension. - -Wed Nov 12 09:37:01 1997 Jeffrey A Law (law@cygnus.com) - - * except.c: Do not include "assert.h". - (save_eh_status): Turn asserts into conditional aborts. - (restore_eh_status, scan_region): Likewise. - * dwarfout.c: Do not include "assert.h". - (bit_offset_attribute): Turn asserts into conditional aborts. - (bit_size_attribute, output_inlined_enumeration_type_die): Likewise. - (output_inlined_structure_type_die): Likewise. - (output_inlined_union_type_die): Likewise - (output_tagged_type_instantiation): Likewise. - (dwarfout_file_scope_decl): Likewise. - * dwarf2out.c: Do not include "assert.h" - (expand_builtin_dwarf_reg_size): Turn asserts into conditional aborts. - (reg_save, initial_return_save, dwarf2out_frame_debug): Likewise. - (add_child_die, modified_type_die, add_bit_offset_attribute): Likewise. - (add_bit_size_attribute, scope_die_for): Likewise. - (output_pending_types_for_scope): Likewise. - (get_inlined_enumeration_type_die): Likewise. - (get_inlined_structure_type_die): Likewise. - (get_inlined_union_type_die, gen_subprogram_die): Likewise. - (gen_tagged_type_instantiation_die): Likewise. - - * flow.c (find_basic_blocks): Refine further to get a more correct - cfg, especially in the presense of exception handling, computed - gotos, and other non-trivial cases. Call abort if an inaccuracy - is detected in the cfg. - -Tue Nov 11 21:47:27 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts. - - * c-lex.c (whitespace_cr, skip_white_space_on_line): New functions. - (skip_white_space): Use whitespace_cr. - (check_newline): Handle whitespace more consistently. - -Tue Nov 11 16:25:49 1997 Jim Wilson <wilson@cygnus.com> - - * i386/cygwin32.h (CPP_PREDEFINES): Delete -DPOSIX. - * i386/xm-cygwin32.h (POSIX): Define. - -Mon Nov 10 20:53:11 1997 Gavin Koch <gavin@cygnus.com> - - * config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit - is available elsewhere. - -Mon Nov 10 16:21:58 1997 Doug Evans <devans@canuck.cygnus.com> - - * sparc/sparc.md (mov[sdt]f_const_insn): Fix condition to match - what the instruction can handle. - -Mon Nov 10 03:02:19 1997 Jason Merrill <jason@yorick.cygnus.com> - - * stmt.c (expand_decl_cleanup_no_eh): New fn. - - * except.c (expand_leftover_cleanups): do_pending_stack_adjust. - -Mon Nov 10 00:05:56 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (MAX_ALIAS_LOOP_PASSES): Define. - (init_alias_analysis): Break out of loops after MAX_ALIAS_LOOP_PASSES. - -Sun Nov 9 14:34:47 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (lshrdi3_power): Delete '&' from first alternative and - swap instruction order. - -Sun Nov 9 02:07:16 1997 Jeffrey A Law (law@cygnus.com) - - * fixinc.svr4 (__STDC__): Add another case. - -Sun Nov 9 02:00:29 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid loads from varying - addresses in the epilogue delay slot. - -Sun Nov 9 01:40:40 1997 Manfred Hollstein (manfred@s-direktnet.de) - - * m88k/dgux.h (ASM_CPU_SPEC): Reformatted to suppress wrong whitespace - in generated `specs' file. - -Sun Nov 9 01:37:11 1997 Jim Wilson (wilson@cygnus.com) - - * flags.h (flag_rerun_loop_opt): Declare. - * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. - * toplev.c (flag_rerum_loop_opt): Delete static. - -Sat Nov 8 18:20:21 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - Bring over from FSF: - - Thu Oct 30 12:21:06 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * va-sh.h (__va_arg_sh1): Define. - (va_arg): Use it. - SH3E doesn't use any integer registers for subsequent arguments - once a non-float value was passed in the stack. - * sh.c (machine_dependent_reorg): If optimizing, put explicit - alignment in front label for ADDR_DIFF_VEC. - * sh.h (PASS_IN_REG_P): Fix SH3E case. - (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. - - Tue Oct 28 15:06:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including - svr4.h. - - Mon Oct 27 16:11:52 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (machine_dependent_reorg): When -flag_delayed_branches, - put an use_sfunc_addr before each sfunc. - * sh.md (use_sfunc_addr, dummy_jump): New insns. - (casesi): For TARGET_SH2, emit a dummy_jump after LAB. - - Tue Oct 21 07:12:28 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. - -Fri Nov 7 10:22:24 1997 Jason Merrill <jason@yorick.cygnus.com> - - * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for - linked once FDEs. - -Wed Nov 5 14:26:05 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (find_base_value): Only return the known base value for - pseudo registers. - -Wed Nov 5 11:27:14 1997 Jim Wilson <wilson@cygnus.com> - - * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. - * i386.md (prologue_set_got, prologue_get_pc): Add UNSPEC_VOLATILE - to pattern. - (prologue_get_pc_and_set_got): New pattern. - -Tue Nov 4 20:36:50 1997 Richard Henderson (rth@cygnus.com) - - * alpha.c (summarize_insn): Handle ASM_OPERANDS. Don't recurse - for SUBREG, just fall through. - - * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero. - - * alpha.md (attr trap): Make TRAP_YES non-zero for sanity's sake. - -Tue Nov 4 18:49:42 1997 Jeffrey A Law (law@cygnus.com) - - * fixincludes: Fix "hypot" prototype in NeXT math.h. - - * Makefile.in (USE_ALLOCA): Always include alloca.o. - (USE_HOST_ALLOCA): Likewise. - - * rtl.def (CODE_LABEL): Use separate fields for LABEL_NUSES - and LABEL_REFS fields. - * rtl.h (LABEL_REFS): Update. - -Tue Nov 4 16:55:11 1997 Jim Wilson <wilson@cygnus.com> - - * combine.c (try_combine): When setting elim_i2, check whether newi2pat - sets i2dest. When calling distribute_notes for i3dest_killed, pass - elim_i2 and elim_i1. When setting elim_i1, check if newi2pat - sets i1dest. - - * mips.md (insv, extzv, extv): Add change_address call. - (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. - - * integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc. - - * reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants. - - * mips.c (mips_expand_epilogue): Emit blockage insn before call to - save_restore_insns if no FP and GP will be restored. - - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. - - * acconfig.h (HAVE_INTTYPES_H): Undef. - * configure.in (inttypes.h): Check for conflicts between sys/types.h - and inttypes.h, and verify that intmax_t is defined. - * config/mips/x-iris (CC, OPT, OLDCC): Comment out. - * config/mips/x-iris3: Likewise. - -Tue Nov 4 16:07:15 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (find_base_value): When copying arguments, return the - tenative value for a hard register. - -Tue Nov 4 13:40:35 1997 Doug Evans <devans@canuck.cygnus.com> - - * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. - (yylex): Record wide strings using target endianness, not host. - -Tue Nov 4 13:13:12 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro - * mn10300.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. - * v850.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. - -Tue Nov 4 00:55:48 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * profile.c (branch_prob): Insert an insn after a NOTE_INSN_SETJMP. - -Mon Nov 3 14:36:50 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in (sco5): Use cpio to install header files. - -Sun Nov 2 23:31:43 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * aclocal.m4 (conftestdata_from, conftestdata_to): Names shortened to - 14 char length. - * configure: Rebuild. - -Sun Nov 2 19:44:00 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h: enable -gstabs once again. - -Sun Nov 2 19:27:21 1997 Jeffrey A Law (law@cygnus.com) - - * arm.c (output_move_double): Allocate 3 entries in otherops array. - -Sat Nov 1 21:43:00 1997 Mike Stump (mrs@wrs.com) - - * except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG - notes for sjlj exceptions too. - (expand_eh_region_end): Similarly for EH_REGION_END notes. - (exception_optimize): Optimize EH regions for sjlj exceptions too. - * final.c (final_scan_insn): Don't output labels for EH REGION - notes if doing sjlj exceptions. - -Sat Nov 1 19:15:28 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (init_alias_analysis): Handle -fno-alias-check when - optimizing correctly. - - * expr.c (expand_builtin_setjmp): Don't emit a SETJMP note - or set current_function_calls_setjmp anymore. - - * flow.c (find_basic_blocks): If we delete the label for an - exception handler, remove it from the EH label list and remove - the EH_BEGIN/EH_END notes for that EH region. - -Sat Nov 1 16:44:49 1997 Jason Merrill (jason@cygnus.com) - - * flow.c (find_basic_blocks): Generate correct flow control - information when exception handling notes are present. - -Sat Nov 1 13:42:19 1997 Jeffrey A Law (law@cygnus.com) - - * dwarf2out.c (output_call_frame_info): Fix length argument - to ASM_OUTPUT_ASCII. - (output_die, output_pubnames, output_line_info): Likewise. - -Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - - * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to - output ASCII by default. Only use ASM_OUTPUT_DWARF_STRING if - flag_debug_asm is on. - (output_die, output_pubnames, output_line_info): Likewise. - - * alias.c (init_alias_analysis): Add struct_value_incoming_rtx - and static_chain_rtx into the potential base values array if - they are registers. - - * alias.c (new_reg_base_value): New array of potential base values. - (unique_id): Now file scoped static. - (find_base_value, case REG): Return the value in reg_base_value - array for the REG if it exists. Else, return the value from - new_reg_base_value if copying args and REG is a hard register. - (find_base_value, case PLUS): If either operand of the PLUS is - a REG, try to get its base value. Handle base + index and - index + base. - (record_set): Use new_reg_base_value instead of reg_base_value. - (init_alias_analysis): Allocate space for new_reg_base_value too. - Rework code to iterate over the insns propagating base value - information until nothing changes. - - * global.c (global_alloc): Free the conflict matrix after - reload has finished. - -Fri Oct 31 01:45:31 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (L_eh): Define __eh_pc. - Replace __eh_type with generic pointer __eh_info. - -Fri Oct 31 00:34:55 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (expand_increment): When enqueing a postincrement for a MEM, - use copy_to_reg if address is not a general_operand. - -Fri Oct 31 00:16:55 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * profile.c (output_func_start_profiler): Clear flag_inline_functions - for the duration of the call to rest_of_compilation. - -Thu Oct 30 14:40:10 1997 Doug Evans <devans@canuck.cygnus.com> - - * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. - Set extra_parts. - (sparc*-*-*): Recognize --with-cpu=v9. - * sparc/elf.h: New file. - * sparc/t-elf: New file. - -Thu Oct 30 13:26:12 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (const_8bit_operand): New function. - (mask_ok_for_mem_btst): New funtion. - * mn10300.md (btst patterns with mem operands): Use new functions - to avoid creating btst instructions with invalid operands. - -Wed Oct 29 16:57:19 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000/xm-sysv4.h: Include xm-linux.h instead of xm-svr4.h if we - are running on PowerPC Linux. - -Wed Oct 29 13:10:11 1997 Gavin Koch <gavin@cygnus.com> - - * config/mips/elf64.h (PREFERRED_DEBUGGING_TYPE): Only define - if not previously defined. - -Tue Oct 28 23:55:27 1997 Doug Evans (devans@cygnus.com) - - * function.c (assign_parms): Correct mode of stack_parm if - entry_parm underwent a mode conversion. - -1997-10-28 Brendan Kehoe <brendan@lisa.cygnus.com> - - * global.c (global_alloc): Use xmalloc instead of alloca for - CONFLICTS, since max_allocno * allocno_row_words alone can be more - than 2.5Mb sometimes. - -Tue Oct 28 15:29:15 1997 Richard Henderson <rth@cygnus.com> - - * reload1.c (eliminate_regs [SET]): If [SUBREG] widened the mode of - DEST for the spill, adjust mode of SRC to compensate. - -Tue Oct 28 14:36:45 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (reload_inqi): Check for MEM before strict_memory_address_p, - since any_memory_operand() allows pseudos during reload. - (reload_inhi, reload_outqi, reload_outhi): Likewise. - -Tue Oct 28 11:53:14 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.md (btst patterns): Add 5200 support. - -Tue Oct 28 11:58:40 1997 Toon Moene <toon@moene.indiv.nluug.nl> - - * fold-const.c (fold): For ((a * C1) / C3) or (((a * C1) + C2) / C3) - optimizations, look inside dividend to determine if the expression - can be simplified by using EXACT_DIV_EXPR. - -Tue Oct 28 10:19:01 1997 Jason Merrill <jason@yorick.cygnus.com> - - From Brendan: - * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". - -Tue Oct 28 00:32:14 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (summarize_insn [SUBREG]): Propogate SET. - -Mon Oct 27 23:59:26 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_handle_trap_shadows): Don't call get_attr_trap - on a CLOBBER. - -Mon Oct 27 21:25:20 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (movqi, movhi): Make sure new insns created during reload - won't need reloading themselves. - (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Likewise. - -Mon Oct 27 16:11:10 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. - -Sun Oct 26 13:50:44 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_sa_mask [VMS]): Don't include $26 in the mask. - Patch from Klaus Kaempf <kkaempf@progis.de>. - -Sun Oct 26 13:31:47 1997 Jim Wilson (wilson@cygnus.com) - - * expr.c (expand_expr, case INDIRECT_REF): Optimize a reference - to an element in a constant string. - -Sun Oct 26 11:41:49 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 - bit PC-relative offset. The exception range table pointer is now in - the CIE. - * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. - (count_fdes, add_fdes, get_cie): Adjust. - (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. - - From H.J. Lu: - * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. - -Sun Oct 26 11:52:01 1997 Richard Henderson <rth@cygnus.com> - - * alias.c (memrefs_conflict_p): Treat arg_pointer_rtx just - like stack_pointer_rtx. - -Sun Oct 26 11:32:16 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (bootstrap-lean): Combined with `normal' bootstrap - targets using "$@" to provide support for similar but not identical - targets without having to duplicate code. - (bootstrap4): New goal. - - * Makefile.in (compare, compare-lean, compare3): Combined to one - ruleset determining actions to be performed via $@. - (compare4, compare4-lean): New targets. - (gnucompare, gnucompare3): Combined to one ruleset determining - actions to be performed via $@. Also, note which files failed - the comparison test in .bad_compare. - (gnucompare-lean, gnucompare3-lean, gnucompare4-lean): New targets. - -Sun Oct 26 10:06:11 1997 Toon Moene <toon@moene.indiv.nluug.nl> - - * fold-const (fold): Also simplify FLOOR_DIV_EXPR to EXACT_DIV_EXPR - if the dividend is a multiple of the divisor. - -Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. - - * alias.c (find_base_term): Handle PRE_INC, PRE_DEC, POST_INC, - and POS_DEC. - - * alias.c (true_dependence): Fix typo. - - * toplev.c (flag_rerun_loop_opt): New variable. - (f_options): Handle -frerun-loop-opt. - (rest_of_compilation): If -frerun-loop-opt, then run the loop - optimizer twice. - (main): Enable -frerun-loop-opt by default for -O2 or greater. - - * loop.c (simplify_giv_expr): Adding two invariants results - in an invariant. - -Sun Oct 26 09:15:15 1997 Richard Henderson <rth@cygnus.com> - - * expr.c (get_inner_reference): Remove the array bias after - converting the index to Pmode. - -Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. - (TARGET_MULT_BUG): Define. - (TARGET_DEFAULT): Default to TARGET_MULT_BUG. - * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. - -Fri Oct 24 17:40:34 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.c (indirect_memory_operand): Delete unused function. - * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. - * mn10200.md (bset, bclr insns): Handle output in a reg too. - -Fri Oct 24 15:54:57 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (call patterns): Revert Oct 16 change; if we are to elide - the callee's ldgp, we must do it ourselves, and we use the jsr tag - for more than scheduling. - -Fri Oct 24 13:23:04 1997 Doug Evans <devans@canuck.cygnus.com> - - * sparc/sparc.h (ASM_SPEC): Delete asm_arch. - -Fri Oct 24 13:19:40 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (symbolic_operand, legitimize_address): New functions. - * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. - -Thu Oct 23 09:35:12 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Oct 23 08:03:59 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string - for FILENAME. - -Wed Oct 22 00:34:12 1997 Jeffrey A Law (law@cygnus.com) - - * toplev.c (flag_exceptions): Default value is 2. - (compile_file): If flag_exceptions still has the value 2, then - set it to 0. - - * rs6000.c (struct machine_function): Add pic_offset_table_rtx. - (rs6000_save_machine_status): Save pic_offset_table_rtx. - (rs6000_restore_machine_status: Restore pic_offset_table_rtx. - - * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions - are shared. - - * rs6000.md (*movsi_got_internal_mem): New pattern. - (*movsi_got_internal_mem splitter): New define_split. - -Tue Oct 21 18:14:03 1997 Jim Wilson <wilson@cygnus.com> - - * obstack.h (obstack_empty_p): Fix spurious space after backslash. - -Tue Oct 21 18:34:01 1997 Geoffrey KEATING <geoffk@ozemail.com.au> - - * rs6000.c: Avoid creating a stack frame under SYSV ABI if we - only need to save LR. - -Tue Oct 21 10:06:40 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi): Avoid using address registers as - destinations unless absolutely necessary. - - * mn10200.c (expand_prologue): Fix typo. - - * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed - addresses. - * mn10200.md (neghi2): Provide an alternative which works if - the input and output register are the same. - - * mn10300.c (print_operand): Handle 'S'. - * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for - shift amount in last alternative - - * mn10300.c (expand_epilogue): Rework to handle register restores - in "ret" and "retf" instructions correctly. - -Mon Oct 20 16:47:08 1997 Jim Wilson <wilson@cygnus.com> - - * expmed.c (extract_bit_field): Don't make flag_force_mem disable - extzv for memory operands. - - * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse - redundant conditional moves to single operand. - -Mon Oct 20 15:30:26 1997 Nick Clifton <nickc@cygnus.com> - - * v850.h: Move define of __v850__ from CPP_PREDEFINES - to CPP_SPEC. - - * xm-v850.h: Use __v850 rather than __v850__ to - identify v850 port. - -Mon Oct 20 14:15:02 1997 Jim Wilson <wilson@cygnus.com> - - * mips/mips.c (compute_frame_size): Not a leaf function if - profile_flag set. - -Mon Oct 20 14:16:38 1997 Geoffrey KEATING <geoffk@ozemail.com.au> - - * rs6000/t-ppccomm: Use -msdata=none for crtstuff. - -Mon Oct 20 12:28:17 1997 Doug Evans <devans@canuck.cygnus.com> - - * sparc/sparc.h (SPARC_V9,SPARC_ARCH64): Delete. - (DEFAULT_ARCH32_P): New macro. - (TARGET_ARCH{32,64}): Allow compile time or runtime selection. - (enum cmodel): Declare. - (sparc_cmodel_string,sparc_cmodel): Declare. - (SPARC_DEFAULT_CMODEL): Provide default. - (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. - (TARGET_FULLANY): Deleted. - (TARGET_CM_MEDMID): New macro. - (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). - (CPP_SPEC): Rewrite. - (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. - (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (ASM_SPEC): Add %(asm_arch). - (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. - Rename asm_default to asm_cpu_default. - Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, - cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. - (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. - ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. - (MASK_INT64,MASK_LONG64): Delete. - (MASK_ARCH64): Renamed to MASK_64BIT. - (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. - (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. - (TARGET_SWITCHES): Always provide 64 bit options. - (ARCH64_SWITCHES): Delete. - (TARGET_OPTIONS): New option -mcmodel=. - (INT_TYPE_SIZE): Always 32. - (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. - (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... - (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. - (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. - * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by - CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - * sparc/linux.h: Likewise. - * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (LONG_DOUBLE_TYPE_SIZE): Define. - (ASM_SPEC): Add %(asm_arch). - * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (TARGET_CPU_DEFAULT): Add ultrasparc case. - * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete - MASK_LONG64, MASK_MEDANY. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Delete. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (ASM_SPEC): Add %(asm_arch). - (LONG_DOUBLE_TYPE_SIZE): Define. - (DWARF2_DEBUGGING_INFO): Define. - * sparc/splet.h (CPP_SPEC): Delete. - * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. - (BLOCK_PROFILER): Likewise. - * sparc/sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. - (sparc_override_options): Handle code model selection. - (sparc_init_expanders): Renamed from sparc64_init_expanders. - * sparc/sparc.md: TARGET_<code_model> renamed to TARGET_CM_.... - TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. - (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... - (sethi_di_fullany): Delete. - -Mon Oct 20 02:00:18 1997 Klaus Kaempf <kkaempf@progis.de> - Jeff Law <law@cygnus.com> - Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha/vms.h (DIVSI3_LIBCALL): OTS$ functions are upper case. - (DIVDI3_LIBCALL, UDIVSI3_LIBCALL, UDIVDI3_LIBVALL): Likewise. - (MODSI3_LIBCALL, MODDI3_LIBCALL): Likewise. - (UMODSI3_LIBCALL, UMODDI3_LIBCALL): Likewise. - * alpha/alpha.md (arg_home): Likewise. - - * alpha/alpha.c (vmskrunch): Delete - * alpha/vms.h (ENCODE_SECTION_INFO, ASM_DECLARE_FUNCTION_NAME): Delete. - * alpha.c (output_prolog, VMS): Use alloca for entry_label and don't - truncate to 64 characters. - - * make-l2.com: Support openVMS/Alpha. - - * vmsconfig.com: Fix to work on openVMS/Alpha and openVMS/VAX. - -Sun Oct 19 19:00:35 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * longlong.h (count_leading_zeros): Add missing casts to USItype. - -Sun Oct 19 18:44:06 1997 Jeffrey A Law (law@cygnus.com) - - * i386/bsd386.h (ASM_COMMENT_START): Define. - -Sat Oct 18 13:47:15 1997 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (restore_tree_status): Also free up temporary storage - when we finish a toplevel function. - (dump_tree_statistics): Print stats for backend obstacks. - -Sat Oct 18 12:47:31 1997 Doug Evans <dje@canuck.cygnus.com> - - * expr.c (use_group_regs): Don't call use_reg for MEMs. - -Sat Oct 18 09:49:46 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (__throw): Don't copy the return address. - * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. - - * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). - * toplev.c (main): Initialize exceptions_via_longjmp. - - * tree.c: Add extra_inline_obstacks. - (save_tree_status): Use it. - (restore_tree_status): If this is a toplevel inline obstack and we - didn't want to save anything on it, recycle it. - (print_inline_obstack_statistics): New fn. - * function.c (pop_function_context_from): Pass context to - restore_tree_status. - * obstack.h (obstack_empty_p): New macro. - -Sat Oct 18 00:43:59 1997 Jeffrey A Law (law@cygnus.com) - - * i386/freebsd.h (ASM_COMMENT_START): Fix. - -Fri Oct 17 23:48:52 1997 Jim Wilson (wilson@cygnus.com) - - * v850.c (ep_memory_offset): New function. - (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. - - * v850.h (CONST_OK_FOR_*): Add and correct comments. - (CONSTANT_ADDRESS_P): Add comment. - (EXTRA_CONSTRAINT): Define 'U'. - * v850.md: Add comments on bit field instructions. - (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. - (lshrsi3): Use N not J constraint. - - * v850.md (v850_tst1+1): New define_split for tst1 instruction. - - * v850.c (reg_or_0_operand): Call register_operand. - (reg_or_int5_operand): Likewise. - * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. - (TARGET_SWITCHES): Add "big-switch". - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, - ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. - (CASE_DROPS_THROUGH): Comment out. - (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. - * v850.md (cmpsi): Delete compare mode. - (casesi): New pattern. - - * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. - * v850.md (ashlsi3): Use SImode not QImode for shift count. - (lshrsi3): Likewise. - - * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete - unreachable switch statement after 'b' support. Remove "b" from - strings for 'b' support. - * v850.md (branch_normal, branch_invert): Change %b to b%b. - -Fri Oct 17 23:33:20 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an - empty line if @inhibit_libc@ is empty. - -Fri Oct 17 23:24:40 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h: Let ELF use dwarf2 unwinding. COFF uses sjlj. - (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Defined. - (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. - (DWARF2_UNWIND_INFO): Let this track object file format. - (EXTRA_SECTIONS): Add in_eh. - (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Define. - (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. - -Fri Oct 17 17:13:42 1997 David S. Miller <davem@tanya.rutgers.edu> - - * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. - * sparc/sparc.h (FUNCTION_PROFILER): Fix format string when - TARGET_MEDANY. - * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed. - (output_double_int): Output DI mode values correctly when - HOST_BITS_PER_WIDE_INT is 64. - (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use - fmovd so it works if a quad float ends up in one of the upper 32 - float regs. - * sparc/sparc.md (pic_{lo_sum,sethi}_di): New patterns - necessary for PIC support on sparc64. - -Fri Oct 17 13:39:56 1997 Doug Evans <dje@canuck.cygnus.com> - - * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. - * sparc/sparc.h (PROMOTE_MODE): Promote small ints if arch64. - (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. - (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. - (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. - (SPARC_FP_ARG_FIRST): New macro. - (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. - (NPARM_REGS): There are 32 fp argument registers now. - (FUNCTION_ARG_REGNO_P): Likewise. - (FIRST_PARM_OFFSET): Update to new v9 abi. - (REG_PARM_STACK_SPACE): Define for arch64. - (enum sparc_arg_class): Delete. - (sparc_arg_count,sparc_n_named_args): Delete. - (struct sparc_args): Redefine and use for arch32 as well as arch64. - (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. - (FUNCTION_ARG_ADVANCE): Rewrite. - (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. - (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. - (FUNCTION_ARG_CALLEE_COPIES): Delete. - (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. - (STRICT_ARGUMENT_NAMING): Define. - (doublemove_string): Declare. - * sparc/sparc.c (sparc_arg_count,sparc_n_named_args): Delete. - (single_move_string): Use GEN_INT, and HOST_WIDE_INT. - (doublemove_string): New function. - (output_move_quad): Clean up some of the arch64 support. - (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. - Don't add 8 bytes of reserved space if arch64. - (sparc_builtin_saveregs): Combine arch32/arch64 versions. - (init_cumulative_args): New function. - (function_arg_slotno): New static function. - (function_arg,function_arg_partial_nregs): New functions. - (function_arg_{pass_by_reference,advance}): New functions. - (function_arg_padding): New function. - * ginclude/va-sparc.h: Rewrite v9 support. - -Fri Oct 17 12:29:48 1997 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P - for hard regs to determine base and index registers. - - * reload.c (debug_reload_to_stream): New function. Specify stream - into which to write debug info. - (debug_reload): Modify to call debug_reload_to_stream with stderr. - -Thu Oct 16 15:07:51 1997 Richard Henderson <rth@cygnus.com> - - * combine.c (can_combine_p): Don't combine with an asm whose - output is a hard register. - -Thu Oct 16 15:43:26 1997 Mike Stump (mrs@wrs.com) - - * c-decl.c (start_struct): Ensure that structs with forward - declarations are in fact packed when -fpack-struct is given. - - * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if - we are packing a structure. This allows a structure with only - bytes to be aligned on a byte boundary and have no padding on a - m68k. - -Thu Oct 16 15:17:54 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. - -Thu Oct 16 11:20:30 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_return_addr_rtx): New variable. - (alpha_save_machine_status): New; save it. - (alpha_restore_machine_status): New; restore it. - (alpha_init_expanders): New; clear it. - (alpha_return_addr): New; set it. - (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live - is overly conservative, so search the insns explicitly. - (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed. - (alpha_sa_size [VMS && !VMS]): Likewise. - * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. - (INIT_EXPANDERS): New definition. - - * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file. - (output_prolog [!VMS]): Use them. - - * alpha.c (output_prolog [!VMS]): Move gp detection to ... - (alpha_does_function_need_gp): ... a new function. Refine the - CALL_INSN test to just TYPE_JSR. - * alpha.md (most call insns): Fix some jsr/ibr type transpositions. - -Thu Oct 16 09:36:47 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Oct 15 21:38:18 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * pa.c (move_operand): Respect -mdisable-indexing. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. - -Wed Oct 15 21:34:45 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for - PPC601. - (umulsidi3,umulsi3_highpart): Ditto. - (smulsi3_highpart_no_mq): Add !TARGET_POWER. - -Wed Oct 15 18:21:46 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (final_prescan_insn): Gut, remove and transform to ... - (alpha_handle_trap_shadows): ... a new function. Handle the entire - function in one go. Emit RTL for trapb, instead of printf directly. - (alpha_reorg): New function. Call alpha_handle_trap_shadows. - (trap_pending): Kill global variable. - (output_epilog): Don't call final_prescan_insn. - (struct shadow_summary): Elide $31 and $f31; now it fits in a word. - * alpha.h (FINAL_PRESCAN_INSN): Remove. - (MACHINE_DEPENENT_REORG): Define. - * alpha.md (jsr patterns with trapb): Stupid and useless. Kill. - (trapb): New insn. - -Wed Oct 15 18:16:05 1997 Richard Henderson <rth@cygnus.com> - - Tune Haifa scheduler for Alpha: - * alpha.h (ISSUE_RATE): Define. - * alpha.c (alpha_adjust_cost): Handle EV5 mult delay; don't apply - EV4 adjustments to EV5. - * alpha.md: Remove all scaling from function unit delays. Rework - EV5 function units to match the CPU. - (umuldi3_highpart): EV5 added the IMULH insn class. - -Wed Oct 15 17:42:41 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (following_call): Fail if the CALL_INSN is an indirect - call. - -Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> - - * cplus-dem.c (demangle_signature): Don't look for return types on - constructors. Handle member template constructors. - -Tue Oct 14 11:30:29 1997 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. - * tree.h: Declare them. - -Fri Oct 10 13:46:56 1997 Doug Evans <dje@canuck.cygnus.com> - - * configure.in: Handle --with-newlib. - * Makefile.in (LIBGCC2_CFLAGS): Add @inhibit_libc@. - - * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. - -Wed Oct 8 14:37:44 1997 Jeffrey A Law (law@cygnus.com) - - * config/ptx4.h: Fix typo. - -Wed Oct 8 08:57:20 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Oct 7 16:27:34 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * aclocal.m4: Substitute INSTALL. - * configure: Re-built. - -Tue Oct 7 15:37:35 1997 Jeffrey A Law (law@cygnus.com) - - * integrate.c (save_for_inline_copying): Avoid undefined pointer - operations. - (expand_inline_function): Likewise. - - * dwarf2out.c (output_call_frame_info): Reinstate last change - using flag_debug_asm check instead of flag_verbose_asm. - -Tue Oct 7 12:57:26 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (output_call_frame_info): Remove last change. - -1997-10-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * frame.c (__frame_state_for): Execute the FDE insns until the - current pc value is strictly bigger than the target pc value. - -Tue Oct 7 11:00:42 1997 Jason Merrill <jason@yorick.cygnus.com> - - * regclass.c (init_reg_modes): If we can't find a mode for the - register, use the previous one. - -Tue Oct 7 10:55:34 1997 Richard Henderson <rth@cygnus.com> - - * haifa-sched.c (print_block_visualization): Call fprintf directly, - don't sprintf through an alloca'ed buffer. - -Tue Oct 7 10:52:29 1997 Thomas Koenig (ig25@rz.uni-karlsruhe.de) - - * reload.c (decompose): Always initialize val.base. - -Tue Oct 7 10:19:26 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) - - * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment - instead of aborting. - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable to let GNU as accept the generated comments. - -Tue Oct 7 11:41:21 1997 Michael Meissner <meissner@cygnus.com> - - * tree.h (get_file_function_name): Add declaration. - * dwarf2out.c (output_call_frame_info): No need to cast - get_file_function_name call anymore. - * profile.c (toplevel): Remove get_file_function_name - declaration. - * c-lang.c (finish_file): Ditto. - -Tue Oct 7 10:01:45 1997 Chip Salzenberg <chip@rio.atlantic.net> - - * Makefile.in (program_transform_name): Let autoconf substitute - the correct value. - -Tue Oct 7 09:54:35 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_block): If the first real insn in a - block has any special notes attached to it, remove them. - -Tue Oct 7 09:48:51 1997 Richard Henderson <rth@cygnus.com> - - * alpha.h (FLOAT_STORE_FLAG_VALUE): It's 2.0 not 0.5. - -Mon Oct 6 12:47:32 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) - - * m88k.c (m88k_begin_prologue): Remove superfluous backslash. - -Mon Oct 6 12:04:24 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (check-g77): New test target. - (CHECK-TARGETS): Add check-g77. - -Fri Oct 3 11:56:36 1997 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_compilation): Defer all non-nested inlines. - -Fri Oct 3 15:49:27 1997 Michael Meissner <meissner@cygnus.com> - - * flow.c (print_rtl_with_bb): Cast alloca return value for - in_bb_p. - -Thu Oct 2 21:15:03 1997 Richard Henderson <rth@cygnus.com> - - * i386.h (RETURN_ADDR_RTX): New definition that works for - __builtin_return_address(0) and -fomit-frame-pointer. - -Wed Oct 1 13:43:53 1997 Jim Wilson <wilson@cygnus.com> - - Bring over from FSF. - Tue Aug 5 16:10:45 1997 Jason Merrill <jason@yorick.cygnus.com> - - * mips.c (function_arg): Handle passing a struct - containing a double in a DFmode register without the PARALLEL. - -Wed Oct 1 11:13:25 1997 Ian Lance Taylor <ian@cygnus.com> - - * pexecute.c: Use spawn if __CYGWIN32__. - - * pexecute.c: Include "config.h" first, as per autoconf manual - (from Paul Eggert <eggert@twinsun.com>). - -Wed Oct 1 01:44:36 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k/x-mot3300 (XCFLAGS): Disable as's long/short jump - optimisation for f/expr.o and f/stb.o. - -Tue Sep 30 23:48:57 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (this_insn_cc0_mode): Initialize. - -Tue Sep 30 23:09:40 1997 Thomas Koenig <ig25@mvmap66.ciw.uni-karlsruhe.de> - - * cccp.c (expand_to_temp_buffer): Initialize all members of obuf. - - * haifa-sched.c (get_block_head_tail): Remove unneeded initialization. - -Tue Sep 30 23:06:43 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne, since - that pair will dual-issue on the 21164 and plus+beq won't. - (bne): Likewise for cmpeq+beq. - -Tue Sep 30 16:07:58 1997 Jim Wilson <wilson@cygnus.com> - - * except.c (find_exception_handler_labels): Correct argument to free. - -Tue Sep 30 11:00:00 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * except.c (find_exception_handler_labels): Free LABELS when we're - done. - -Mon Sep 29 14:04:35 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 29 10:51:53 1997 Jason Merrill <jason@yorick.cygnus.com> - - * flow.c (find_basic_blocks): Mark calls as potentially jumping - to the EH labels. - -Mon Sep 29 09:58:06 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in: Substitute for "install" too. - * configure: Rebuilt. - -Mon Sep 29 00:38:42 1997 Aaron Jackson <jackson@negril.msrce.howard.edu> - - * Makefile.in (bootstrap-lean, compare-lean): New targets. - -Mon Sep 29 00:18:16 1997 Richard Henderson (rth@cygnus.com) - - * alias.c (base_alias_check): Two symbols can conflict if they - are accessed via AND. - (memrefs_conflict_p): Likewise. - - * alpha.h (SETUP_INCOMING_VARARGS): Emit a blockage insn - after flushing argument registers to the stack. - - * Makefile.in (mostlyclean): Remove .regmove files. - -Sun Sep 28 18:59:58 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (__throw): Fix thinko. - -Sun Sep 28 12:00:52 1997 Mark Mitchell <mmitchell@usa.net> - - * cplus-dem.c (demangle_template): Add new parameter. Handle new - template-function mangling. - (consume_count_with_underscores): New function. - (demangle_signature): Handle new name-mangling scheme. - -Sun Sep 28 01:55:04 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * flow.c (print_rtl_with_bb): Cast alloca return values for variables - start and end. - -Sun Sep 28 01:05:16 1997 Jeffrey A Law (law@cygnus.com) - - * frame.c: Remove last change. - * dwarf2.h: Remove last change. - * tree.h: Add declarations of DWARF2 unwind info support - functions. - -Sat Sep 27 11:02:38 1997 Jason Merrill <jason@yorick.cygnus.com> - - * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. - * tree.h (built_in_function): Likewise. - * expr.c (expand_builtin): Likewise. - * except.h: Likewise. - * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. - * libgcc2.c (copy_reg): New fn. - (__throw): Use it. - -Fri Sep 26 08:54:59 1997 Paul Eggert <eggert@twinsun.com> - - * c-typeck.c (build_binary_op): Warn about comparing signed vs - unsigned if -W is specified and -Wno-sign-compare is not. - * c-decl.c (warn_sign_compare): Initialize to -1. - (c_decode_option): -Wall no longer implies -Wsign-compare. - -Fri Sep 26 09:00:13 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * frame.c: Include gansidecl.h for PROTO. - * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is - defined. Don't declare dwarf2out_cfi_label here. - * dwarf2.h: Add declarations of DWARF2 unwind info support - functions. - * m68k.c: Include dwarf2.h. - (output_function_prologue): Add dwarf2 support. - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. - (INCOMING_FRAME_SP_OFFSET): Likewise. - - * integrate.c (expand_inline_function): Make sure there is at - least one insn that can be used as an insertion point. - -Wed Sep 24 21:34:06 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ - -Wed Sep 24 22:05:30 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Sep 24 17:36:23 1997 Doug Evans <dje@canuck.cygnus.com> - - Bring over from FSF. - - Wed Sep 24 19:17:08 1997 Doug Evans <dje@cygnus.com> - - * sparc/sparc.md (get_pc_via_call): Renamed from get_pc_sp32. - (get_pc_via_rdpc): Renamed from get_pc_sp64. - * sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call. - - Wed Sep 24 18:38:22 1997 David S. Miller <davem@tanya.rutgers.edu> - - * sparc/sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. - (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, - -malign-functions=. - (sparc_align_{loops,jumps,funcs}_string): Declare. - (sparc_align_{loops,jumps,funcs}): Declare. - (DEFAULT_SPARC_ALIGN_FUNCS): New macro. - (FUNCTION_BOUNDARY): Use sparc_align_funcs. - (STACK_BIAS): Define. - (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT first, then perform - test. - (SPARC_SETHI_P): New macro. - (CONST_OK_FOR_LETTER_P): Use it. - (ASM_OUTPUT_ALIGN_CODE): Define. - (ASM_OUTPUT_LOOP_ALIGN): Define. - * sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. - (sparc_align_{loops,jumps,funcs}): New globals. - (sparc_override_options): Handle -malign-loops=, -malign-jumps=, - -malign-functions=. - (move_operand): Use SPARC_SETHI_P. - (arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then - perform test. - (arith11_double_operand): Likewise. - (arith10_double_operand): Likewise. - (finalize_pic): Finish sparc64 support. - (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of - 64 bit constants if able. - (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. - (sparc_builtin_saveregs, sparc64 case): Don't save fp regs if - ! TARGET_FPU. - * sparc/sparc.md (*): Use GEN_INT instead of gen_rtx. - (get_pc_sp32): Use for sparc64 as well. - (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. - (sethi_di_sp64_const): Likewise. - (movtf_cc_sp64): Check TARGET_HARD_QUAD. - (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. - (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. - - Tue Sep 23 19:02:46 1997 Doug Evans <dje@cygnus.com> - - * sparc/linux-aout.h (COMMENT_BEGIN): Delete. - * sparc/linux.h (COMMENT_BEGIN): Likewise. - * sparc/linux64.h (COMMENT_BEGIN): Likewise. - - Tue Sep 23 14:48:18 1997 David S. Miller <davem@tanya.rutgers.edu> - - Add sparc64 linux support. - * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h - to xm_file list on 32-bit sparc-linux. - * sparc/xm-sp64.h: New file. - * sparc/linux64.h: New file. - * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. - Don't include xm-sparc.h. - * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. - * glimits.h (LONG_MAX): Handle sparc64. - - Sat Sep 20 03:07:54 1997 Doug Evans <dje@cygnus.com> - - * sparc/sysv4.h (ASM_COMMENT_START): Delete. - * sparc.h (ASM_COMMENT_START): Define. - * sparc.c (output_function_prologue): Use it. - (sparc_flat_output_function_{epi,pro}logue): Likewise. - - Wed Sep 17 15:04:19 1997 Doug Evans <dje@cygnus.com> - - * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, - use sparc.h's copies. - * sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print - ascii form as well. - - Mon Sep 8 08:45:19 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * sparc.c (dwarf2out_cfi_label): Add declaration. - (save_regs, output_function_prologue): Remove cast for it. - (sparc_flat_{save_restore,output_function_prologue): Likewise. - ({save,restore}_regs): No longer inline. - -Tue Sep 23 12:34:51 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (make_range): Correctly handle cases of converting - from unsigned to signed type. - -Tue Sep 23 12:34:51 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * fold-const.c (merge_ranges): Make sure that if one range is subset - of another, it will always be the second range. Correct (+,-) case to - account for this. - -Tue Sep 23 08:32:51 1997 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_end_function): Also do dwarf2 thing if - DWARF2_DEBUGGING_INFO. - (final_start_function): Likewise. - -Tue Sep 23 01:15:50 1997 David S. Miller <davem@tanya.rutgers.edu> - - * expmed.c (expand_divmod): If compute_mode is not the same as - mode, handle the case where convert_modes() causes op1 to no - longer be a CONST_INT. - - * reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED - note holding get_jump_flags() calculation to all JUMP_INSNs. - * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA. - * rtl.c (reg_note_name): Add new note types. - -Tue Sep 23 00:59:54 1997 Jeffrey A Law (law@cygnus.com) - - * rtlanal.c (computed_jump_p): Fix typo in last change. - -Tue Sep 23 00:42:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * loop.c (indirect_jump_in_function_p): Return 0 - by default. - -Tue Sep 23 00:33:55 1997 Jeffrey A Law (law@cygnus.com) - - * rs6000/xm-rs6000.h: Fix thinko in last change. - * rs6000/xm-sysv4.h: Likewise. - -Mon Sep 22 19:33:53 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. - -Mon Sep 22 14:41:00 1997 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (find_blocks): Fix thinko in last change. - -1997-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (output_function_prologue): Add dwarf2 support. - - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM, - INCOMING_FRAME_SP_OFFSET): New definitions. - -Mon Sep 22 11:36:42 1997 David S. Miller <davem@tanya.rutgers.edu> - - * combine.c (try_combine): Use NULL_RTX instead of '0' where - appropriate in calls to gen_rtx(). - * cse.c (cse_main): Likewise. - * emit-rtl.c (gen_label_rtx): Likewise. - * expr.c (init_expr_once): Likewise. - * haifa-sched.c (flush_pending_lists, sched_analyze_insn, - sched_analyze, init_rgn_data_dependences, - compute_block_backward_dependences): Likewise. - * sched.c (schedule_insns): Likewise. - * varasm.c (immed_double_const): Likewise. - - * sparc.h (INCOMING_FRAME_SP_OFFSET): Define to - SPARC_STACK_BIAS for sake of dwarf2 on sparc64. - -Mon Sep 22 11:21:33 1997 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. - (MULTILIB_DEFAULTS): Define. - (ASM_SPEC, CPP_SPEC): Handle -mcoff. - (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. - (LIBGCC_SPEC): Likewise. - (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. - (SUBTARGET_SWITCHES): Add -mcoff and -melf. - * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. - (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. - (EXTRA_PARTS, TAROUTOPTS): Delete. - (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. - (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. - (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. - -Mon Sep 22 02:10:43 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 21 17:45:45 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (loop_number): Delete function. Change all references - to use uid_loop_num array. - * loop.h (loop_number): Delete declaration. - * unroll.c (unroll_loop): Change "loop_number" references to - use uid_loop_num instead. - - * loop.c (loop_unroll_factor): Move outside #ifdef HAIFA - conditional. - (loop_unroll_iter): Remove unused variable and all references. - (loop_optimize): Always allocate and clear space for loop_unroll_factor. - (insert_bct): Fix minor formatting problems. - * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA. - (loop_unroll_iter): Removed unused decl. - * unroll.c (unroll_loop): Remove code to set loop_unroll_iter. - Always record the unrolling factor. - - * cse.c (simplify_relational_operation): Set h0u just like h0s. - Similarly for h1u and h1s. - - * flow.c (jmp_uses_reg_or_mem): Deleted unused function. - (find_basic_blocks): Use computed_jump_p to determine if a - particular JUMP_INSN is a computed jump. - * reg-stack.c (find_blocks): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - * rtlanal.c (jmp_uses_reg_or_mem): New function. - (computed_jump_p): Likewise. - * rtl.h (computed_jump_p): Declare. - * genattrtab.c (pc_rtx): Define and initialize. - * loop.c (loop_optimize): Always determine if the current - function has a computed jump. - (indirect_jump_in_function_p): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - - * loop.c (fix_bct_param): Delete unused function. - (check_bct_param): Likewise. - -Sat Sep 20 16:22:06 1997 Jason Merrill <jason@yorick.cygnus.com> - - * frame.c (__deregister_frame): Check properly for initialized object. - -Fri Sep 19 20:51:03 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * alpha/linux.h (HANDLE_SYSV_PRAGMA): Defined. - -Fri Sep 19 18:53:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * jump.c (thread_jumps): check can_reverse_comparison_p before - threading a reversed-condition jump. - - * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. - * haifa-sched.c (update_flow_info): Likewise. - -Thu Sep 18 21:13:40 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (BOOT_CFLAGS): Use -O2. - - * configure.in (strtoul, bsearch): Have autoconf check for these - functions. - * configure, config.in: Rebuilt. - - * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. - * mips/mips.h (alloca): Likewise. - * rs6000/xm-rs6000.h (alloca): Likewise. - * rs6000/xm-sysv4.h: Likewise. - -Thu Sep 18 14:22:22 1997 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code. - * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. - (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. - - * except.c (end_eh_unwinder): Subtract 1 from return address. - * libgcc2.c (__throw): Likewise. - (find_exception_handler): Don't change PC here. Compare end with >. - -Thu Sep 18 10:43:07 1997 Nick Clifton <nickc@cygnus.com> - - * v850.c (compute_register_save_size): Correct register - number. - * v850.md (save_interrupt, return_interrupt): Correct - register number. - * v850/lib1funcs.asm (save_interrupt): Correct register number. - (return_interrupt): Use stack pointer, not element pointer. - -1997-09-18 Brendan Kehoe <brendan@lisa.cygnus.com> - - * configure.in, configure: Make sure to create the stage* and include - symbolic links in each subdirectory. - -Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_peepholes): Don't allow addresses with side - effects for the memory operand. - -Wed Sep 17 18:19:53 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (find_exception_handler): Subtract one from our PC when - looking for a handler, to avoid hitting the beginning of the next - region. - - * except.c (expand_builtin_set_return_addr_reg): Use force_operand. - -Wed Sep 17 18:33:59 1997 Jeffrey A Law (law@cygnus.com) - - * mips/abi64.h (LONG_MAX_SPEC): Define. - * mips.h (LONG_MAX_SPEC): Define. - (CPP_SPEC): Include long_max_spec. - (EXTRA_SPECS): Include long_max_spec. - -Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) - - * v850.c (construct_save_jarl): Fix thinko in last change. - -Wed Sep 17 09:53:07 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Sep 16 14:22:36 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (find_exception_handler): Not found is -1. - - * integrate.c (expand_inline_function): Move expand_start_bindings - after expanding the arguments. - -Tue Sep 16 11:13:46 1997 Jim Wilson <wilson@cygnus.com> - - * expr.c (expand_expr): Remove previous incorrect change. - If target and slot has no DECL_RTL, then call mark_addressable - again for the slot after we give it RTL. - -Tue Sep 16 09:18:52 1997 Jason Merrill (jason@cygnus.com) - - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. - -Tue Sep 16 00:13:20 1997 Nick Clifton <nickc@cygnus.com> - - * v850.c (register_is_ok_for_epilogue, - pattern_is_ok_for_epilogue, construct_restore_jr, - pattern_is_ok_for_prologue, construct_save_jarl): New functions. - - * v850.h (pattern_is_ok_for_prologue, - pattern_is_ok_for_epilogue, register_is_ok_for_epilogue): New - predicates. - - * v850.md: Replace prologue and epilogue patterns with a - match_parallel pattern. - -Mon Sep 15 22:53:01 1997 Jeffrey A Law (law@cygnus.com) - - * aclocal.m4: Add replacement for AC_PROG_INSTALL. - * configure.in: Use EGCS_PROG_INSTALL. - -Mon Sep 15 22:40:55 1997 Jim Wilson (wilson@cygnus.com) - - * dwarf2out.c (gen_subprogram_die): Handle redefinition of an - extern inline function. - -Mon Sep 15 22:40:55 1997 Richard Henderson (rth@cygnus.com) - - * dwarf2out.c (reg_loc_descriptor): Fix prototype. - (concat_loc_descriptor): New function. - (loc_descriptor): Call it. - (add_AT_location_description): Also elide the descriptor if both - halves of a CONCAT are pseudos. - (add_location_or_const_value_attribute): Recognize CONCAT too. - -Mon Sep 15 15:24:00 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (movdi): Handle CONST_DOUBLE for TARGET_BUILD_CONSTANTS. - - * alpha/alpha.c (output_prolog): New variable sa_reg. Use it for - out-or-range reg_offset. - (output_epilog): Likewise. - -Mon Sep 15 15:39:26 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (simplify_relational_operation): If MODE specifies a - mode wider than HOST_WIDE_INT, then the high word of a CONST_INT - is derived from the sign bit of the low word. - -Mon Sep 15 11:43:38 1997 Jason Merrill <jason@yorick.cygnus.com> - - Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. - - * dwarf2.h: Add DW_CFA_GNU_args_size. - * frame.c (execute_cfa_insn): Likewise. - * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. - (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. - (dwarf2out_frame_debug): If this isn't a prologue or epilogue - insn, hand it off to dwarf2out_stack_adjust. - (dwarf2out_begin_prologue): Initialize args_size. - * frame.h (struct frame_state): Add args_size. - * libgcc2.c (__throw): Use args_size. - * final.c (final_scan_insn): If we push args, hand off all insns - to dwarf2out_frame_debug. - * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. - - * dwarf2out.c dwarf2out_frame_debug): Fix typo. - Handle epilogue restore of SP from FP. - * emit-rtl.c (gen_sequence): Still generate a sequence if the - lone insn has RTX_FRAME_RELATED_P set. - - * frame.c (extract_cie_info): Handle "e" augmentation. - * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the - absence of UNALIGNED_*_ASM_OP. - (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. - (output_call_frame_info): Use "e" instead of "z" for augmentation. - Don't emit augmentation fields length. - (dwarf2out_do_frame): Move outside of #ifdefs. - * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data - opcodes. - - * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. - * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. - * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. - * sparc/sun4gas.h: New file. - * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. - - * collect2.c (write_c_file_stat, write_c_file_glob): Declare - __register_frame_table and __deregister_frame. - -1997-09-15 Brendan Kehoe <brendan@cygnus.com> - - * except.c (find_exception_handler_labels): Use xmalloc instead of - alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million - in some cases. - -Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in: Various changes to build info files - in the object tree rather than the source tree. - -Sun Sep 14 12:24:30 1997 Jeffrey A Law (law@cygnus.com) - - * fixinc.math: New file to fix math.h on some systems. - * configure.in (freebsd, netbsd): Use fixinc.math on these - systems. - * configure: Rebuilt. - -Sun Sep 14 11:11:05 1997 Jeffrey A Law (law@cygnus.com) - - * regmove.c (regmove_optimize): If we end up moving the - original insn due to lifetime overlaps, make sure to move - REG_NOTES too. - -Sat Sep 13 15:51:11 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (INSTALL_{PROGRAM,DATA}): Use value found by configure. - -Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (add_branch_dependences): Make each insn in - a SCHED_GROUP_P block explicitly depend on the previous insn. - -Fri Sep 12 13:49:58 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.h: Prototype dwarf2 hooks. - * expr.c: Adjust. - -Thu Sep 11 17:43:55 1997 Jim Wilson <wilson@cygnus.com> - - * configure.in (native_prefix): Delete. - (mips-dec-netbsd): Don't set prefix. - (*linux*): Don't set prefix. - -Thu Sep 11 15:48:32 1997 Fred Fish <fnf@ninemoons.com> - - * protoize.c: Include <varargs.h> only if HAVE_VARARGS_H is - defined. If not defined, include <sys/varargs.h> if - HAVE_SYS_VARARGS_H is defined. - * configure.in: Test for varargs.h and sys/varargs.h. - * configure: Regenerate with autoconf. - * config.in: Regenerate with autoheader. - - * cpplib.c (quote_string): Cast first arg of sprintf call - from "unsigned char *" to "char *". - (output_line_command): Ditto. - (macroexpand): Ditto. - (do_line): Cast atoi arg from "unsigned char *" to "char *". - -Wed Sep 10 21:37:30 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - - * Makefile.in (compare): Exit with nonzero status if there - are comparison failures. Note which files failed the - comparison test in .bad_compare. - -Wed Sep 10 17:05:46 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/alpha/elf.h (CPP_PREDEFINES): Remove -D__PIC__ -D__pic__. - -Wed Sep 10 16:37:28 1997 Fred Fish <fnf@ninemoons.com> - - * Makefile.in (LN, LN_S): New macros, use where appropriate. - * aclocal.m4 (GCC_PROG_LN_S, GCC_PROG_LN): New tests. - * configure.in: Use GCC_PROG_LN_S and GCC_PROG_LN. - * configure: Regenerated. - -Thu Sep 11 11:09:43 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Fix typo. - -Wed Sep 10 16:01:15 1997 Jim Wilson <wilson@cygnus.com> - - * m88k/m88k.c (struct option): Rename to struct options. - * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Delete ifdef and comments. - * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not - __DOLPHIN__ or sysV88. - -Wed Sep 10 14:58:40 1997 Jim Wilson <wilson@cygnus.com> - - * emit-rtl.c (gen_lowpart_common): For a SUBREG, add in word when - create new subreg. - -Wed Sep 10 15:19:22 1997 Jeffrey A Law (law@cygnus.com) - - * config.sub: Accept 'amigados' for backward compatability. - -Wed Sep 10 14:05:08 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (testsuite/site.exp): New target. - (check-gcc, check-g++): Depend on testsuite/site.exp. - Don't stop for failure. - -Wed Sep 10 12:59:57 1997 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() - if DWARF2_UNWIND_INFO. - -Wed Sep 10 11:49:20 1997 Jason Merrill <jason@yorick.cygnus.com> - - Add support for exception handling using DWARF 2 frame unwind info. - Currently works on SPARC and MIPS, and almost on x86. - - * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, - next_stack_level, in_reg_window): Helper fns. - (__throw): Implement for DWARF2_UNWIND_INFO. - - * expr.c (expand_builtin): Handle builtins used by __throw. - * tree.h (enum built_in_function): Add builtins used by __throw. - * c-decl.c (init_decl_processing): Declare builtins used by __throw. - * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. - * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. - (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_frob_return_addr): Likewise. - (expand_builtin_set_return_addr_reg): Likewise. - (expand_builtin_eh_stub): Likewise. - (expand_builtin_set_eh_regs): Likewise. - (eh_regs): Choose two call-clobbered registers for passing back values. - - * frame.c, frame.h: New files for parsing dwarf 2 frame info. - * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. - (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) - (stmp-multilib): Likewise. - ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. - - * except.c: #include "defaults.h". - (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. - (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. - (register_exception_table_p): New fn. - (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. - (end_eh_unwinder): Likewise. - - * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, - call __register_frame and __deregister_frame as needed. - * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. - * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check - EH_FRAME_SECTION_ASM_OP. - * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. - * mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. - - * dwarf2out.c (output_call_frame_info): If no support for - EXCEPTION_SECTION, mark the start of the frame info with a - collectable tag. - * collect2.c (frame_tables): New list. - (is_ctor_dtor): Recognise frame entries. - (scan_prog_file): Likewise. - (main): Pass -fno-exceptions to sub-compile. Also do collection - if there are any frame entries. - (write_c_file_stat): Call __register_frame_table and - __deregister_frame as needed. - (write_c_file_glob): Likewise. - - * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. - Also require unaligned reloc support. - * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Define here. - * sparc/sysv4.h: Not here. - - * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. - * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. - (dwarf2out_finish): Don't call dwarf2out_frame_finish. - - * libgcc2.c (L_eh): Reorganize, moving code shared by different - EH implementations to the top. - (find_exception_handler): Split out. Start from 0. Compare against - end with >=. - (__find_first_exception_table_match): Use it. - * except.c (output_exception_table): Don't do anything if there's - no table. Don't output a first entry of zeroes. - (eh_outer_context): Adjust properly. - (add_eh_table_entry): Use xrealloc. - * toplev.c (compile_file): Just call output_exception_table. - -Wed Sep 10 11:30:36 1997 Jason Merrill <jason@cygnus.com> - - * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. - -Wed Sep 10 08:17:10 1997 Torbjorn Granlund <tege@pdc.kth..se> - - * except.c (eh_outer_context): Do masking using expand_and. - -Wed Sep 10 01:38:30 1997 Doug Evans <dje@cygnus.com> - - Add port done awhile ago for the ARC cpu. - * arc/arc.h: New file. - * arc/arc.c: New file. - * arc/arc.md: New file. - * arc/initfini.c: New file. - * arc/lib1funcs.asm: New file. - * arc/t-arc: New file. - * arc/xm-arc.h: New file. - * ginclude/va-arc.h: New file. - * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. - * ginclude/varargs.h: Likewise. - * Makefile.in (USER_H): Add va-arc.h. - * configure.in (arc-*-elf*): Recognize. - * longlong.h: Add ARC support. - -Wed Sep 10 01:32:54 1997 Jeffrey A Law (law@cygnus.com) - - * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. - when clearing non-BLKmode data. - -Wed Sep 10 00:29:29 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE) Define. - * libgcc2.c (__enable_execute_stack): Provide for sysV88 too. - - * xm-m88k.h (USG): Only define if it hasn't already been defined. - - * Makefile.in (risky-stage1): Delete gratutious whitespace. - - * Makefile.in (clean): Delete libgcc1-test. - - * Makefile.in (INSTALL): cd to $(srcdir) before running texinfo. - -Tue Sep 9 17:07:36 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list - template. - -Tue Sep 9 09:50:02 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * dwarf2out.c (output_call_frame_info): Call named_section. - -Tue Sep 9 09:12:17 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (print_value): Fix last change. - -Tue Sep 9 01:30:37 1997 Jason Merrill <jason@yorick.cygnus.com> - - * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of - write_symbols. - -Mon Sep 8 16:32:43 1997 Jason Merrill <jason@yorick.cygnus.com> - - * mips.c (function_prologue): Set up the CFA when ABI_32. - - * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG - for dwarf2 unwind info. - (output_function_prologue, sparc_flat_output_function_prologue): Same. - - * final.c (final_end_function): Check dwarf2out_do_frame instead - of DWARF2_DEBUG for dwarf2 unwind info. - (final_scan_insn): Likewise. - (final_start_function): Likewise. Initialize dwarf2 frame debug here. - (final): Not here. - - * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if - count > 0. - - * varasm.c (exception_section): Check EXCEPTION_SECTION first. - -Mon Sep 8 15:15:11 1997 Nick Clifton <nickc@cygnus.com> - - * v850.h (ASM_SPEC): Pass on target processor. - (CPP_PREDEFINES): Only define if not already specified. - (TARGET_VERSION): Only define if not already specified. - (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target - processor. - (EXTRA_SWITCHES): Extra entries in the switches array. - (TARGET_DEFAULT): Set default target processor. - -Mon Sep 8 18:26:35 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): In MOTOROLA - cases, add %# and %/, and add : to make them into extended asms. - -Sun Sep 7 23:57:50 1997 Weiwen Liu <liu@hepunix.physics.yale.edu> - - * alias.c (init_alias_analysis): Clean up incompatible pointer - type warning in bzero. - * regmove.c (regmove_optimize): Ditto. - * haifa-sched.c (find_rgns): Ditto. - - * haifa-sched.c (print_value): Clean up ptr->int cast - warnings. - -Sun Sep 7 23:18:32 1997 Fred Fish <fnf@ninemoons.com> - - * INSTALL: Change 'amigados' to 'amigaos' to match current usage. - * install.texi (Configurations): Ditto. - * config.sub: Ditto. - -Sun Sep 7 22:56:56 1997 Weiwen Liu (liu@hepvms.physics.yale.edu) - - * Makefile.in (sdbout.o): Depend on insn-config.h. - -Sun Sep 7 18:44:50 1997 Jim Wilson <wilson@cygnus.com> - - * m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. - -Sun Sep 7 18:30:46 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL - prologue insn, only the first elt is significant. - (output_call_frame_info): For exception handling, always use 4-byte - fields as specified by the dwarf2 spec. - Don't skip trivial FDEs. - -Sun Sep 7 14:19:39 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 7 14:17:36 1997 Torbjorn Granlund (tege@pdc.kth.se) - - * expmed.c (expand_divmod): Make op1_is_pow2 depend on unsignedp - for negative constants. Promote EXACT_DIV_EXPR to TRUNC_DIV_EXPR - when op1_is_pow2. - -Sun Sep 7 13:46:46 1997 Jeffrey A Law (law@cygnus.com) - - * final.c (shorten_branches): During first pass, assume worst - possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. - - * Makefile.in (distclean): Remove various things left around - by running the testsuite. - -Sun Sep 7 13:16:06 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * configure.in (out_file): Emit definition to config.status in order - to have a defined value for configure.lang. - * configure: Re-built. - -Sun Sep 7 09:59:08 1997 Jan-Jaap van der Heijden (J.J.vanderHeijden@student.utwente.nl) - - * configure.in: Make symlink to as-new rather than as.new. Similarly - for ld-new. - * configure: Rebuilt. - -Fri Sep 5 16:54:55 1997 Jim Wilson <wilson@cygnus.com> - - * profile.c (output_func_start_profiler): Set DECL_EXTERNAL to zero. - -Fri Sep 5 16:16:44 1997 Christian Kuehnke <Christian.Kuehnke@arbi.Informatik.Uni-Oldenburg.DE> - - * sparc/sparc.md: Add ultrasparc scheduling support. - * sparc/sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. - -Fri Sep 5 14:04:59 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, - as initial value for real_label_map. - (copy_for_inline): Likewise. - -Fri Sep 5 13:36:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sched.c (update_flow_info) When looking if to set found_split_dest - or found_orig_dest, look at all parts of a PARALLEL. - * haifa-sched.c (update_flow_info): Likewise. - -Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) - - * v850: New directory for v850 port. - * v850/lib1funcs.asm: New file. - * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. - * ginclude/va-v850.h: New file. - * ginclude/varargs.h, ginclude/stdarg.h: Include va-mn10200.h. - * configure.in (mn10200-*-*): New target. - * configure: Rebuilt. - * config.sub: Handle v850-elf. - * Makefile.in (USER_H): Add va-mn10200.h. - * invoke.texi: Document v850 stuff. - -Fri Sep 5 09:37:50 1997 Jim Wilson (wilson@cygnus.com) - - * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN - has integer TYPE_{MAX,MIN}_VALUE before using them. - - * m68k/m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add - __HPUX_ASM__ versions. - -Fri Sep 5 09:08:44 1997 Jeffrey A Law (law@cygnus.com) - - * install.sh: Delete duplicate install script. - -Thu Sep 4 23:14:27 1997 Stan Cox (coxs@dg-rtp.dg.com) - - * reg-stack.c (subst_stack_regs): Pop the stack register for a - computed goto which sets the same stack register. - - * reg-stack.c (compare_for_stack_reg): Swap only if the source and - destination are both on the regstack. - (subst_stack_regs_pat): Put the destination at the top of the regstack. - -Thu Sep 4 15:02:27 1997 Jim Wilson <wilson@cygnus.com> - - * mips.md (nonlocal_goto_receiver): Define. - - * profile.c (output_arc_profiler): Check next_insert_after for non - NULL before deferencing it. - - * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. - -Thu Sep 4 14:51:57 1997 Jeffrey A Law (law@cygnus.com) - - * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. - -Thu Sep 4 15:01:49 1997 Michael Meissner <meissner@cygnus.com> - - * toplev.c (rest_of_compilation): For passes starting with - flow_analysis, use print_rtl_with_bb instead of print_rtl. - - * print-rtl.c (print_rtl_single): Print a single rtl value to a - file. - - * flow.c (print_rtl_with_bb): Print which insns start and end - basic blocks. For the start of a basic block, also print the live - information. - -Thu Sep 4 11:51:43 1997 Jim Wilson <wilson@cygnus.com> - - * toplev.c (main): Change #elif to #else/#ifdef - - * tlink.c: Include ctype.h. - * ginclude/va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. - -Thu Sep 4 11:17:16 1997 Mikeael Meissner (meissner@cygnus.com) - - * bitmap.c: Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - -Thu Sep 4 09:58:53 1997 Joel Sherrill (joel@OARcorp.com) - - * i960/i960.h: Added default for SUBTARGET_SWITCHES macro. - -Thu Sep 4 09:53:20 1997 Jim Wilson (wilson@cygnus.com) - - * profile.c (output_arc_profiler): Verify next_insert_after is an - INSN before and after skipping a stack pop. - -Thu Sep 4 07:39:19 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Don't count the lengths of deleted - instructions. - -Thu Sep 4 09:43:01 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Sep 4 11:04:21 1997 Michael Meissner <meissner@cygnus.com> - - * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over - two bitmaps ANDed together. - (bitmap_print): Declare. - - * bitmap.c (function_obstack): Don't declare any more. - (bitmap_obstack): Obstack for allocating links from. - (bitmap_obstack_init): New static to say whether to initialize - bitmap_obstack. - (bitmap_element_allocate): Use bitmap_obstack to allocate from. - (bitmap_release_memory): Free all memory allocated from - bitmap_obstack. - - * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke - EXECUTE_IF_AND_IN_BITMAP. - -Wed Sep 3 10:39:42 1997 Jim Wilson <wilson@cygnus.com> - - * alias.c (true_dependence): Address with AND can alias scalars. - (anti_dependence, output_dependence): Likewise. - - * alias.c (true_dependence): Test x for BLKmode, in addition to mem. - -Wed Sep 3 09:28:50 CDT 1997 Joel Sherrill (joel@OARcorp.com) - - * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, m68k/rtems.h, - mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, sh/rtems.h, - sparc/rtems.h (subtarget_switches): Removed SUBTARGET_SWITCHES - definitions. Use -qrtems instead of -mrtems. - -Wed Sep 3 09:05:41 1997 Robert Lipe (robert@dgii.com) - - * xm-sco5.h (sys_siglist): Define. - (SYS_SIGLIST_DECLARED): Likewise. - -Tue Sep 2 23:33:33 1997 Jeffrey A Law (law@cygnus.com) - - * expr.c (convert_move): Handle truncation from TQFmode to QFmode. - -Wed Sep 3 02:09:30 1997 Torbjorn Granlund <tege@pdc.kth..se> - - * except.c (eh_outer_context): Expand masking operation using - expand_binop. - -Tue Sep 2 18:09:39 1997 Jim Wilson <wilson@cygnus.com> - - * alpha.md (floatdisf2-1): New pattern. - -Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) - - * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. - * xm-news.h (SYS_SIGLIST_DECLARED): Likewise. - * xm-sysv4.h (SYS_SIGLIST_DECLARED): Likewise. - * gcc.texi: Note that if you define sys_siglist that you should - also define SYS_SIGLIST_DECLARED. - - * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions - are relative to the next instruction, not the current instruction. - -Tue Sep 2 14:22:43 1997 Jim Wilson <wilson@cygnus.com> - - * local-alloc.c (contains_replace_regs): New function. - (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, - verify that there is no existing REG_EQUIV note, and add a call to - contains_place_regs. - -Tue Sep 2 12:48:11 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/alpha/elf.h (CPP_PREDEFINES): Add -D__PIC__ -D__pic__. - (STARTFILE_SPEC): Always use crtbegin.o%s - (ENDFILE_SPEC): Always use crtend.o%s. - -Tue Sep 2 12:00:36 1997 Jim Wilson <wilson@cygnus.com> - - * alpha/alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS - is passed in. - * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to - SFmode for 64 bit hosts. - -Tue Sep 2 13:42:38 1997 Paul N. Hilfinger <hilfingr@CS.Berkeley.EDU> - - * fixincludes: Permits spaces between # and define. Discard C++ - comments in sys/pci.h on HP/UX 10.20. - -Mon Sep 1 22:13:18 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - - * pa.c (restore_unscaled_index_insn_codes): New function. - (record_unscaled_index_insn_codes): Likewise. - (output_function_prologue): Call restore_unscaled_index_insn_codes. - (output_function_epilogue): Free memory for unscaled_index_insn_codes. - (pa_reorg): Call record_unscaled_index_insn_codes. - - * haifa-sched.c (move_insn): Handle notes correctly for insns - with SCHED_GROUP_P set. - -Mon Sep 1 16:58:57 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * alpha/xm-linux.h (USE_BFD): Undef before define. - -Mon Sep 1 16:25:34 1997 Jim Wilson <wilson@cygnus.com> - - * cse.c (cse_insn): Don't record BLKmode values. - -Mon Sep 1 11:25:47 1997 Stephen Williams (steve@icarus.icarus.com) - - * i960.h (LINK_SPEC): Handle "-mjX" and "-mrp" switches. - -Mon Sep 1 08:29:46 1997 Jeffrey A Law (law@cygnus.com) - - * cccp.c (sys_errlist): Remove special 4.4bsd declaration. - * collect2.c (sys_errlist): Likewise. - * cpplib.c (sys_errlist): Likewise. - * gcc.c (sys_errlist): Likewise. - * protoize (sys_errlist): Likewise. - * configure.in: Check for strerror. - * xm-freebsd.h (HAVE_STRERROR): Remove definition. - * xm-gnu.h (HAVE_STRERROR): Likewise. - * xm-linux.h (HAVE_STRERROR): Likewise. - * xm-netbsd.h (HAVE_STRERROR): Likewise. - * xm-bsd386.h (HAVE_STRERROR): Likewise. - * xm-cygwin32.h (HAVE_STRERROR): Likewise. - * xm-dos.h (HAVE_STRERROR): Likewise. - * xm-mingw32.h (HAVE_STRERROR): Likewise. - * xm-pa.h (HAVE_STRERROR): Likewise. - * xm-papro.h (HAVE_STRERROR): Likewise. - * xm-sysv4.h (HAVE_STRERROR): Likewise. - * configure, config.in: Rebuilt. - - * Makefile.in: Add several missing "else true" clauses. - - * collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED. - * mips-tfile.c: Likewise. - * gcc.texi: DONT_DECLARE_SYS_SIGLIST: Remove docs. - * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * xm-freebsd.h, xm-bsd386.h, xm-sysv4.h, xm-sol2.h: Likewise. - * configure.in: Check for sys_siglist declaration. - * configure, config.in: Rebuilt. - -Mon Sep 1 08:04:07 1997 Joel Sherrill (joel@OARcorp.com) - - * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, - m68k/rtems.h, mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, - sparc/rtems.h (subtarget_switches): Added -mrtems as a switch. - * i960/i960.h: Added SUBTARGET_SWITCHES macro. - * rs6000/sysv4.h (extra_subtarget_switches): Added new - macro EXTRA_SUBTARGET_SWITCHES. - * configure.in (sh*-*-rtems*): New target. - * sh/rtems.h: New file. - * sh/sh.h: Added SUBTARGET_SWITCHES macro. - * configure: Rebuilt. - -Sat Aug 30 22:54:26 1997 Jim Wilson <wilson@cygnus.com> - - * unroll.c (calculate_giv_inc): Handle increment with code PLUS. - -Sat Aug 30 10:49:46 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md: Make DF fused-add operations pay attention to - -mno-fused-add. - -Fri Aug 29 19:19:54 1997 Jim Wilson <wilson@cygnus.com> - - * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Define. - -Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_peepholes): Make sure operand is a REG before - examining REGNO. Allow general registers too. - -Fri Aug 29 11:42:04 1997 Jim Wilson <wilson@cygnus.com> - - * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. - -Fri Aug 29 09:33:20 1997 Philipp Thomas (kthomas@lxi165.gwdg.de) - - * dwarf2out.c (build_abbrev_table): Use xrealloc, not xmalloc - to reallocate abbrev_die_table. - -Thu Aug 28 15:14:46 1997 Jim Wilson <wilson@cygnus.com> - - * m68k/m68k.md (iorsi_zexthi_ashl16): Disable. - -1997-08-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * Makefile.in (config.status): Depend on version.c - - * expr.h (insn_gen_function): Reenable prototype. - - * expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of - first parameter. - -Thu Aug 28 13:01:43 1997 Jim Wilson <wilson@cygnus.com> - - * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. - -Thu Aug 28 07:03:15 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for latest snapshot. - - * bc-optab.c: Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - * tree.c (free): Provide a declaration if NEED_DECLARATION_FREE. - * rtl.h (free): Remove declaration. - * tree.h (free): Remvoe declaration. - - * configure: Rebuilt. - -Wed Aug 27 21:32:20 1997 Jeffrey A Law (law@cygnus.com) - - * flags.h (flag_move_all_movables): Declare. - (flag_reduce_all_givs): Likewise. - * loop.c (move_movables): Handle flag_move_all_movables. - (strength_reduce): Handle flag_reduce_all_givs. - * toplev.c (flag_move_all_movables): Define. - (flag_reduce_all_givs): Likewise. - (f_options): Add -fmove-all-movables and -freduce-all-givs. - * invoke.texi: Document new options, including alias stuff that - wasn't included last time. - -Wed Aug 27 18:08:51 1997 Bob Manson (manson@cygnus.com) - - * t-h8300: Use TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS. - * t-mn10200: Ditto. - * t-vxsparc: Ditto. - * t-vxworks68: Ditto. - * t-vxworks960: Ditto. - * t-vx29k: Ditto. - -Wed Aug 27 16:35:29 1997 Richard Henderson <rth@cygnus.com> - - * alpha/xm-alpha.h (alloca): Define alloca to builtin_alloca for GNUC - if not already defined, and USE_C_ALLOCA not defined. - -Wed Aug 27 16:08:43 1997 Jim Wilson <wilson@cygnus.com> - - * config.guess: Replace with script that uses ../config.guess. - - * config/alpha/elf.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 - if USE_GNULIBC_1 is not defined. - -Wed Aug 27 15:49:12 1997 Richard Henderson <rth@cygnus.com> - - * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. - * config.guess: Recognize alpha-linux-gnulibc1. - * configure.in (alpha-*-linux-gnulibc1): New target. - (alpha-*-linux-gnu*): Don't build crtbegin/end. - -Wed Aug 27 11:52:58 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in - last change. - -Wed Aug 27 01:56:18 1997 Doug Evans <dje@seba.cygnus.com> - - * loop.c (combine_movables): Earlier insns don't match later ones. - -Wed Aug 27 01:24:25 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/linux.h (CC1_SPEC): Define it only if not defined. - - * config/m68k/linux.h (CC1_SPEC): Undefine it before include - <linux.h> - - * config/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 if - USE_GNULIBC_1 is not defined. - - * config/rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1. - - * config/sparc/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined - as 1 if USE_GNULIBC_1 is not defined. - -Wed Aug 27 00:49:14 1997 Jeffrey A Law (law@cygnus.com) - - * reorg.c (dbr_schedule): Allow current_function_return_rtx - to be something other than a REG. - * function.c (expand_function_end): Fix current_function_return_rtx - if it was a pseudo. - - * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. - * x-netbsd: Likewise - * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS - (INSTALL_HEADERS): Delete. - * x-dguxbcs: Likewise. - * x-hp3bsd44: Likewise - * x-pa: Likewise. - -Wed Aug 27 00:30:00 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * i386.md (pop): pop increments the stack pointer. - (prologue_set_stack_ptr): New pattern. - * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr - instead of subsi3. - -Tue Aug 26 18:50:32 1997 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads, case '0'): Reject matching a non-offsettable - address where an offsettable address is required. - -Tue Aug 26 17:54:56 1997 Michael P. Hayes (michaelh@ongaonga.chch.cri.nz> - - * loop.c (check_final_value): Don't miss a biv increment in a - parallel. - -Tue Aug 26 12:03:49 1997 Jim Wilson (wilson@cygnus.com) - - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check - TYPE_DECL_IS_STUB instead of DECL_NAME. - -Mon Aug 25 23:27:10 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * objc/Make-lang.in ($(OBJC_O)): Also depend on cc1obj. - -Mon Aug 25 23:27:10 1997 Jim Meyering <meyering@eng.ascend.com> - - * objc/Make-lang.in ($(OBJC_O)): Also depend on $(GCC_PASSES). - -Mon Aug 25 13:12:24 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (find_pre_sched_live): Remove #if 0 code. - (find_post_sched_live): Likewise. - - * haifa-sched.c (schedule_block): Remove old code to get arguments - from hard regs into pseudos early. - -Mon Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for new snapshot. - - * local-alloc.c (update_equiv_regs): All the target to reject - promotion of some REG_EQUAL to REG_EQUIV notes. - * pa.h (DONT_RECORD_EQUIVALENCE): Define. - - * pa.c (secondary_reload_class): (mem (mem ... )) does not need - secondary reloads. - - * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the - store of the argument registers. - -Mon Aug 25 08:39:02 1997 Craig Burley (burley@gnu.ai.mit.edu) - - * fold-const.c (multiple_of_p): New function. - (fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR. - -Mon Aug 25 01:47:41 1997 Jeffrey A Law (law@cygnus.com) - - * expr.h (insn_gen_function): Temporarily remove prototype. - -Sun Aug 24 17:22:21 1997 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to - filenames. Use sed to extract base filename for install. - -Sat Aug 23 18:19:40 1997 John F. Carr <jfc@mit.edu> - - * unroll.c (find_splittable_givs): Only share if two givs have the - same add and multiply values. - -Sat Aug 23 14:36:27 1997 Jim Wilson <wilson@cygnus.com> - - * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. - * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. - -Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns - around branch tables. - * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab - and .end_brtab directives if TARGET_GAS. - -Fri Aug 22 14:05:55 1997 Jim Wilson <wilson@cygnus.com> - - * alias.c (true_dependence): Pass x_addr not x to varies. - - * acconfig.h (NEED_DECLARATION_CALLOC): Add. - * configure.in: Add GCC_NEED_DECLARATION call for calloc. - * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete - declarations. - * config.in, configure: Regenerate. - -Thu Aug 21 23:52:16 1997 John F. Carr <jfc@mit.edu> - - * alias.c (find_base_value): Improve handling of PLUS, MINUS, and - LO_SUM. - (record_set): Handle LO_SUM like PLUS. - (init_alias_analysis): When following chains of base addresses, - do not stop on reaching a hard register. - -Thu Aug 21 20:17:37 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for new snapshot. - -Thu Aug 21 17:28:00 1997 Jim Wilson <wilson@cygnus.com> - - * alpha.h (ARCH_ASM_FILE_START): Define. - (ASM_FILE_START): Use ARCH_ASM_FILE_START. - * osf12.h, osf2or3.h (ARCH_ASM_FILE_START): Redefine to null string. - -Thu Aug 21 10:22:19 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (install-common): Put gcov comment at start of line. - -Wed Aug 20 22:47:33 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (init_alias_analysis): When simplifying the reg_base_value - array, simplify entries for hard registers too. - -Wed Aug 20 12:35:47 1997 Dave Love <d.love@dl.ac.uk> - - * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from - list. - -Wed Aug 20 11:58:33 1997 Jim Wilson <wilson@cygnus.com> - - * stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test - block_stack before dereferencing it. - -Wed Aug 20 11:57:11 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. - -Tue Aug 19 17:10:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c: Add 'extern' to prepends_underscore. - -Tue Aug 19 09:34:57 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate. - (get_issue_rate): Delete. - * pa.h (ISSUE_RATE): Define. - - * configure.in: Turn on haifa by default for the PA. - * configure: Rebuilt. - * pa.c (override_options): Accept -mschedule=7200 option. - (pa_adjust_cost): No longer need to scale costs for newer - processors. - * pa.h (enum processor_type): Add PROCESSOR_7200. - * pa.md: Revamp scheduling parameters to work better with - haifa. Add scheduling parameters for the 7200. - - * haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P - insns too. - (schedule_block): When adjusting basic_block_{head,end}, account - for movement of SCHED_GROUP_P insns too. - - * haifa-sched.c (debug_dependencies): Fix thinko. - - * Makefile.in (EXPECT, RUNTEST, RUNTESTFLAGS): Define. - (site.exp, check, check-g++, check-gcc): New targets. - - * haifa-sched.c: Make lots of variables static. - -Tue Aug 19 07:18:34 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * expr.h, real.h: Finish prototyping. - -Mon Aug 18 21:49:02 1997 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR - reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. - * reload1.c: Undo bugfix from Aug 11. - -Mon Aug 18 17:39:02 1997 Mike Meissner <meissner@cygnus.com> - - * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single - quotes around the name. - * configure: Regenerate. - -Mon Aug 18 13:46:47 1997 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (stmp-multilib-sub): Fix typo in last change. - -Thu Aug 7 10:33:13 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (sub-makes): Pass the current value of LANGUAGES down - to sub-makes to avoid building more passes than the user might have - requested on the command line. - -Sun Aug 17 15:42:17 1997 Dave Love (d.love@dl.ac.uk) - - * configure.in: Expurgate `broken_install' (install is - autoconfed). - - * configure.lang: Substitute autoconfed ${INSTALL} (not currently - relevant). - -Sat Aug 16 01:08:12 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (is_power_of_2, is_conditional_branch): Delete unused - functions and declarations. - (analyze_loop_iterations): Use condjump_p. - (insert_bct): Likewise. Use exact_log2. - -Fri Aug 15 23:48:32 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed. - (schedule_region): Likewise. - (schedule_insns): Likewise. - - * PROJECTS: Update with Haifa stuff. - -Fri Aug 15 12:49:56 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Change the version string to look like: - egcs-2.90.00 970814 (gcc2-970802 experimental). - - * loop.c (is_conditional_branch): Make definition match declaration. - - * gcc.c: Take out experimental snapshot warning message. - -Fri Aug 15 13:43:39 1997 Michael Meissner <meissner@cygnus.com> - - * haifa-sched.c (debug_dependencies): Use GET_NOTE_INSN_NAME to - print out the names of the notes. Print out the name of the insn - that is not a note, and not an {,CALL_,JUMP_}INSN. - -Wed Aug 13 17:32:38 1997 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. - -Wed Aug 13 01:03:37 1997 Doug Evans <dje@canuck.cygnus.com> - - * configure.in (haifa configury): Fix typo. - * configure: Regenerate. - -Tue Aug 12 10:20:36 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump version to "gcc-3.0.0 970802 experimental". - - * gcc.info*: Rebuilt. - - * COPYING.g77, README.g77: New files. - * real.c (ereal_unto_float, ereal_unto_double): New functions. - * real.h (ereal_unto_float, ereal_unto_double): Declare them. - (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define. - -Mon Aug 11 14:50:55 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate Haifa instruction scheduler. - * Makefile.in (ALL_CFLAGS): Add SCHED_CFLAGS. Prefix all references - to sched with $(SCHED_CFLAGS. - * configure.in: Handle --enable-haifa. - * configure: Rebuilt. - * flags.h: Add new flags for haifa instruction scheduler. - * genattrtab.c (expand_units): For haifa, don't subtract one - when computing blockage. - * toplev.h (flag_schedule_interblock): Haifa scheduler flag. - (flag_schedule_speculative): Ditto. - (flag_schedule_speculative_load): Ditto. - (flag_schedule_speculative_load_dangerous): Ditto. - (flag_schedule_reverse_before_reload): Ditto. - (flag_schedule_reverse_after_reload): Ditto. - (flag_branch_on_count_reg): Ditto. - (f_options): Add Haifa switches. - (main): Turn off some Haifa options if appropriate macro is - defined. Process Haifa switches. - * unroll.c (iteration_info): No longer static, since Haifa - scheduler uses it. - (unroll_loop): Inform HAIFA scheduler about loop unrolling factor. - * unroll.c (unroll_loop): Set loop_unroll_iter, loop_start_value. - * loop.h (loop_unroll_factor, loop_number): Add HAIFA decls. - * loop.h (loop_initial_value,loop_unroll_iter): New globals. - * loop.c (loop_optimize): If HAIFA is defined, allocate additional - storage for the Haifa scheduler. - (mark_loop_jump): If HAIFA defined, set LABEL_OUTSIDE_LOOP_P and - LABEL_NEXTREF. - (strength_reduce): If HAIFA and HAVE_decrement_and_branch_on_count - are defined, call analyze_loop_iterations and insert_bct to use - countdown loops. - (record_giv): Refine test for jumps out of loops if HAIFA is - defined. - (analyze_loop_iterations): New function to identify if we can use - a countdown loop. - (insert_bct): Insert countdown loop. - (instrument_loop_bct): Low level code to insert countdown loop. - (loop_number): Calculate UID of loop. - (indirect_jump_in_function_p): Return true if an indirect jump is - in the function. - (is_power_of_2): Return true if value is a power of 2. - (is_conditional_branch): Return true if insn is a conditional - jump. - (fix_bct_param): Process -fbct-{min,max}-N switches. - (check_bct_param): Return true if loop should be instrumented. - * loop.c (loop_initial_value,loop_unroll_iter): New globals. - (loop_optimize): Initialize. - (get_condition_for_loop): Ditto. - * loop.c (strength_reduce): Inside of code that uses #ifdef - HAVE_decrement_and_branch_on_count code, test it to make sure the - condition is true. - (instrument_loop_bct): Ditto. - * haifa-sched.c: New file. - - - * Integrate regmove pass. - * Makefile.in (OBJS): Add regmove.o - (regmove.o): Add dependencies. - * flow.c (find_use_as_address): No longer static. - * rtl.h (find_use_as_address): Declare. - * toplev.c (regmove_dump, flag_regmove): Define. - (f_options): Add -fregmove. - (regmove_dump_file, regmove_time): Define. - (fatal_insn): Close the regmove dump file. - (compile_file): Initialize regmove_time; open/close the regmove dump - file as needed. Print regmove time as needed. - (rest_of_compilation): Run regmove pass if requested, dump - RTL after regmove if requested. - (main): If -O2 or more, turn on regmove. Handle dump switches. - * regmove.c: New file. - -Mon Aug 11 14:15:02 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate tlink patch from jason@cygnus.com - * gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'. - (process_command): Increment n_switches for them. Don't discard - their args. Validate them. - (main): Escape " marks when creating COLLECT_GCC_OPTIONS. - From Rohan Lenard. - (process_command): Set include_prefixes from COMPILER_PATH. - (main): Set COLLECT_GCC_OPTIONS sooner. - * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld. - * tlink.c, hash.c, hash.h: New files. - * Makefile.in (USE_COLLECT2): Always use collect2. - (collect2): Depend on and link in hash.o and tlink.o. - (tlink.o, hash.o): Add dependencies. - -Mon Aug 11 10:04:49 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate alias analysis changes from jfc@mit.edu - * Makefile.in (OBJS): Add alias.o - (alias.o): Add dependencies. - * alias.c: New file. - * sched.c: Remove alias analysis code. It lives in alias.c now. - (sched_analyze_2): Add new arguments to true_dependence. - (schedule_insns): Always call init_alias_analysis. - * calls.c (expand_call): Note calls to malloc, calloc, and realloc; - mark return value from such functions as a pointer and keep track of - them for alias analysis. If a return value from a function is a - pointer, mark it as such. - * combine.c (distribute_notes): Handle REG_NOALIAS. - * cse.c (struct write_data): Delete. No longer needed. - (invalidate): Don't call set_nonvarying_address_components anymore. - Use true_dependence to decide if an entry should be removed from - the hash table. - (invalidate_memory): Remove WRITES argument, simplify appropriately. - Fix all callers. - (note_mem_written): Similarly for WRITE_PTR argument. - (invalidate_from_clobbers): Similarly for W argument. - (invalidate_for_call): Remove memory elements from the hash table. - (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted. - (cse_rtx_varies_p): New function. Derived from old - cse_rtx_addr_varies_p. - (cse_insn): Remove WRITES_MEMORY and INIT variables and all references. - Don't call note_mem_written anymore. Stack pushes invalidate the stack - pointer if PUSH_ROUNDING is defined. No longer need to call - cse_rtx_addr_varies_p to decide if a MEM should be invalidated. - (skipped_writes_memory): Remove variable. - (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory. - (invalidate_skipped_block): Simplify for new alias analysis code. - (cse_set_around_loop): Likewise. - (cse_main): Call init_alias_analysis. - * flags.h (flag_alias_check, flag_argument_noalias): Declare. - * toplev.c (flag_alias_check, flag_argument_noalias): Define. - (f_options): Add new alias checking arguments. - (main): Set flag_alias_check when optimizing. - * local_alloc (validate_equiv_mem_from_store): Add new arguments - to true_dependence. - (memref_referenced_p): Likewise. - * loop.c (NUM_STORES): Increase to 30. - (prescan_loop): Only non-constant calls set unknown_address_altered. - (invariant_p): Add new arguments to true_dependence. - (record_giv): Initialize unrolled and shared fields. - (emit_iv_add_mult): Call record_base_value as needed. - * loop.h (struct induction): Add unrolled and shared fields. - * unroll.c (unroll_loop): Call record_base_value as needed. - (copy_loop_body): Likewise. - (final_biv_value): Likewise. - (final_giv_value): Likewise. - (find_splittable_regs): Likewise. Only create one new pseudo - if we have multiple address GIVs that were combined with the same - dst_reg GIV. Note when a new register is created due to unrolling. - * rtl.c (reg_note_name): Add REG_NOALIAS. - * rtl.h (enum reg_note): Similarly. - (rtx_varies_p, may_trap_p, side_effects_p): Declare. - (volatile_refs_p, volatile_insn_p, remove_note): Likewise. - (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. - (true_dependence, read_dependence, anti_dependence): Likewise. - (output_dependence, init_alias_analysis, end_alias_analysis): Likewise. - (mark_user_reg, mark_reg_pointer): Likewise. - - - * Integrate reload bugfix from Wilon which enables the PA port - to bootstrap again. - * reload1.c (reload): Sum needs for both OPADDR_ADDR and - OPERAND_ADDRESS when computing how many registers an insn needs. - (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do - conflict. - (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like - OPADDR_ADDR reload. - (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers - in reload_reg_use_in_op_addr do not reach the end. - do not reach the end. - (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with - RELOAD_FOR_OPERAND_ADDRESS. - -Sun Aug 10 12:00:20 1997 Jeffrey A Law (law@cygnus.com) - - * egcs project officially starts. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/ChangeLog.Cygnus b/gcc/ChangeLog.Cygnus deleted file mode 100755 index 212eb15..0000000 --- a/gcc/ChangeLog.Cygnus +++ /dev/null @@ -1,3393 +0,0 @@ -Mon Oct 18 23:25:10 1999 Jonathan Larmour <jlarmour@cygnus.co.uk> - - * config/arm/t-thumb-elf (EXTRA_MULTILIB_PARTS): Ensure crtbegin.o - and crtend.o are multilibbed. - -Wed Mar 10 19:56:20 1999 Jeff Johnston <jjohnstn@cygnus.com> - - * config/d10v/d10v.h (LIB_SPEC): Added -lnosys to default libraries - to include stubs for OS routines not provided by newlib. - -1999-02-25 Jim Lemke <jlemke@cygnus.com> - - * config/rs6000/sysv4.h: Add -mmpc860c0[=num] option. - * invoke.texi: Add -mmpc860c0[=num] option. - -Mon Mar 1 17:14:25 1999 Jim Wilson <wilson@cygnus.com> - - * flow.c (merge_blocks): Disable when flag_exceptions is true. - -Wed Feb 10 18:22:55 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/rs6000/rs6000_output_load_toc_table: Fix the bug (comma - usage). - -Fri Feb 5 16:21:01 1999 Michael Meissner <meissner@cygnus.com> - - * system.h (abort): Add missing comma to error message so filename - is not part of the format string. - - * rs6000.md (movdf_hardfloat32): Add support for non offsetable - load of fp value into integer register support. - -Fri Feb 5 14:26:48 1999 Michael Meissner <meissner@cygnus.com> - - * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mbranch-cost=n - support. - (BRANCH_COST): Ditto. - (rs6000_branch_cost{,_string}): New externals for altering branch - costs. - - * config/rs6000/rs6000.c (rs6000_branch_cost{,_string}): New - externals for altering branch costs. - (rs6000_override_options): Add support for -mbranch-cost=n. - - * invoke.texi (-mbranch-cost=n): New option description. - -Fri Feb 5 13:28:55 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * invoke.texi (-m{no-}sched-{epilog,prolog}): New options - documentations - - * config/rs6000/rs6000.md (prologue, epilogue, - move{si,di}_{from,to}_cr, load{si,di}_svr4_relocatable_toc, - loadsi_svr4_toc, load{si,di}_nonsvr4_toc): New define_expand and - define_insn for scheduling prologue/epilogue. - - * config/rs6000/rs6000.h (MASK_SCHED_PROLOG, - MASK_SCHED_EPILOG, TARGET_SCHED_PROLOG, TARGET_SCHED_EPILOG): - New macros for new options. - (TARGET_SWITCHES): Add new options description for scheduling - prologue/epilogue. - (rs6000_expand_prologue, rs6000_expand_epilogue): New - functions defintion. - - * config/rs6000/rs6000.c (rs6000_expand_prologue, - rs6000_expand_epilogue, rs6000_output_prolog, - rs6000_output_epilog): New functions for scheduling - prologue/epilogue. - - (rs6000_output_load_toc_table, rs6000_allocate_stack_space, - output_prolog, output_epilog): New cygnus local function - implementations. - -Fri Feb 5 13:12:13 1999 Vladimir N. Makarov <vmakarov@cygnus.com> - - * Makefile.in (check-consistency): New makefile entry for - GCC compilers consistency testing. - -Thu Feb 4 10:08:11 1999 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (CPP_SPEC): Define __AM33__ when in am33 mode. - -Wed Feb 3 13:22:11 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (height reduction patterns): Add missing earlyclobbers for - case where the pattern is not split before regalloc. - -Tue Feb 2 20:29:34 1999 Catherine Moore <clm@cygnus.com> - - * configure.in (arm-*-oabi): Support. - (thumb-*-oabi): Support. - * configure: Regenerate. - * config/arm/telf-oabi.h: New file. - * config/arm/telf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): - Don't use user_label_prefix. - * config/arm/thumb.h (ASM_SPEC): Conditionally define. - * config/arm/unknown-elf-oabi.h: New file. - -Mon Feb 1 15:05:57 1999 Dave Brolley <brolley@cygnus.com> - - * cppfiles.c (find_include_file): Use open_include_file_name instead - of calling open directly. - -Mon Feb 1 11:39:25 1999 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md: Add attribute 'delay_type'. - Add delay slot specification. - Add delay_type attributes to insns with non default type. - Enable multiplication patterns: mulsidi3 umulsidi3 mulsihi3 - umulsihi3 mulsi3 - Add delayed branch print operands. - - * config/fr30/fr30.c (fr30_print_operand): Add codes '#' and 'p' - to handle delayed branched and hi/lo register pair respectively. - - * config/fr30/fr30.h (PRINT_OPERAND_PUNCT_VALID_P): Define for - '#'. - (DWARF_LINE_MIN_INSTR_LENGTH): Set to 2. - - * config/fr30/t-fr30 (LIB1ASMFUNCS): Remove _mulsi3. - * config/fr30/lib1funcs.asm: Remove mulsi3 function. - -1999-01-31 Michael Meissner <meissner@cygnus.com> - - * config/rs6000/t-vxworks: New file to suppress building libc - routines under VxWorks. - - * configure (powerpcle-wrs-vxworks): Add new configuration. - (powerpc{,le}-*-vxworks*): Include rs6000/t-vxworks. - - * config/rs6000/vxppc.h ({CPP,LIB,LINK,STARTFILE,ENDFILE}_SPEC, - CPP_PREDEFINES): Remove definitions. - ({CPP_OS_DEFAULT,LIB_DEFAULT,STARTFILE_DEFAULT,ENDFILE_DEFAULT, - LINK_START_DEFAULT,LINK_OS_DEFAULT,CPP_ENDIAN_BIG, - CPP_ENDIAN_LITTLE}_SPEC, CPP_PREDEFINES): Define. - - * config/rs6000/vxppcle.h: New little endian VxWorks support file. - - * invoke.texi (-mvxworks): Document. - - * config/rs6000/sysv4.h (CPP_OS_VXWORKS_SPEC): Define CPU_FAMILY - as PPC and define CPU. - (TARGET_SWITCHES): Add -mvxworks switch to control whether or not - the target is VxWorks. If EXTRA_SUBTARGET_SWITCHES is defined, it - provides additional switches from a subtarget that includes - sysv4.h. - (SUBTARGET_EXTRA_SPECS, *_SPEC): Add -mvxwork support. - (USER_LABEL_PREFIX): Undef before including svr4.h. - (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf to get the current - user prefix in front of the name. - (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf to get the - current internal label prefix in front of the name. - (ASM_OUTPUT_LABELREF): Ditto. - ({USER_LABEL,LOCAL_LABEL,REGISTER,IMMEDIATE}_PREFIX): Define. - (SUBTARGET_OVERRIDE_OPTIONS): Don't set rs6000_wchar_type{,_size}. - (RELATIVE_PREFIX_NOT_LINKDIR): Disable AIX specific support. - (WCHAR_*): Set wchar_t to be an int as per standard, not unsigned - short. - (CPP_SYSV_SPEC): Define _SOFT_FLOAT on machines that use software - floating point. - (CC1_SPEC, LINK_TARGET_SPEC): Fix typos. - - * config/rs6000/eabi-ci.asm (___{C,D}TOR_LIST__): Add - -fleading-underscore support. - - * config/rs6000/eabi-cn.asm (___{C,D}TOR_END__): Ditto. - - * config/rs6000/eabi.asm (__eabi): Don't use FUNC_START/FUNC_END, - always use __eabi, even for libraries compiled with - -fleading-underscore. - - * ginclude/ppc-asm.h (FUNC_START): Make sure label for function - start uses FUNC_NAME. - (FUNC_{START,END,NAME}): Prepend the macro __USER_LABEL_PREFIX__ - into function names. - - * config/rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Add new - multilibs that use -fleading-underscore. - - * config/rs6000/rs6000.c (rs6000_wchar_type{,_size}): Remove, - variables are no longer used. - - * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Explicitly pass - -oformat elf32-powerpcle if -mcall-i960-old. - -1999-01-31 Michael Meissner <meissner@cygnus.com> - - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Add - support for -mcall-i960-old. The -mcall-i960-old option now sets - -mno-bit-word. If -mcall-i960-old, make wchar_t be an int. - (WCHAR_TYPE{,_SIZE}): If -mcall-i960-old, make wchar_t be an int. - (CPP_SYSV_SPEC): Ditto - (NO_BUILTIN_WCHAR_TYPE): Define, wchar_t is a variable type. - (rs6000_wchar_type{,_size}): New globals to hold type string and - size for wchar_t. - (ASM_SPEC): If -mcall-i960-old, pass -mlittle. - (TARGET_FLAGS): Add -m{,no-}bit-word to control whether bitfields - can cross word boundaries or not, independent of whether they - cause the structure to take on the base type's alignment. - (BITFIELD_NBYTES_LIMITED): Depend on whether -m{,no-}bit-word was - passed. - - * config/rs6000/rs6000.c (rs6000_wchar_type{,_size}): Provide - externals if NO_BUILTIN_WCHAR_TYPE is defined. - - * cccp.c (toplevel): If NO_BUILTIN_WCHAR_TYPE is defined, do not - define wide char support. - (main): Ditto. - (special_symbol): Ditto. - (initialize_builtins): Ditto. - - * cpplib.c (toplevel): If NO_BUILTIN_WCHAR_TYPE is defined, do not - define wide char support. - (special_symbol): Ditto. - (initialize_builtins): Ditto. - - * config/rs6000/t-ppcgas (MULTILIB_*): Add multilib for - -mcall-i960-old. - - * invoke.texi (-mcall-960-old, -m(no-)bit-word): New options - description. - -Sat Jan 30 19:40:16 1999 Jim Wilson <wilson@cygnus.com> - - * fold-const.c (fold): Don't pass MINUS_EXPR to - reduce_expression_tree_depth. - -Thu Jan 28 01:08:31 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (find_related): Check if a register belonging to a set - of related values is clobbered in an insn where it is also used. - (optimize_related_values_1): Handle REG_UNUSED notes. - (optimize_related_values): Likewise. - -Tue Jan 26 12:42:06 1999 Jim Wilson <wilson@cygnus.com> - - * flow.c (merge_blocks): Don't call squeeze_notes if start == end. - -1999-01-25 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.md: Add description of backend's - responsibility to fill unfilled delay slots with NOPs. - -Fri Jan 22 07:50:33 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (DRIVER_DEFINES): Fix accidental breakage of - TOOLDIR_BASE_PREFIX. - -Thu Jan 21 18:11:27 1999 Richard Henderson <rth@cygnus.com> - - * expr.c (emit_push_insn): Fix typo. - -Thu Jan 21 02:54:27 1999 Jeffrey A Law (law@cygnus.com) - - * lcm.c (pre_lcm, pre_rev_lcm): Update comments to reflect reality. - - * flow.c (merge_blocks): When searching for EH notes in a block, - quit when we hit the end of the block. Don't merge with the - exit block if the predecessor has an EH note. Also leave any - CODE_LABEL in its original position when merging with the exit - block. - -Wed Jan 20 15:30:00 1999 Dave Brolley <brolley@cygnus.com> - - * configure.in: Turn on --enable-c-mchar by default. - * configure: Regenerate. - -Tue Jan 19 05:40:26 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (merge_blocks): Don't merge a block with the epilogue if - the block consists of just a JUMP_INSN. - - * flow.c (merge_blocks): Allow limited merging with the last basic - block. - - * Makefile.in (libgcc2.a, LIB2FUNCS_EH): Remove -O0. Resyncs code - with net version. - -Sat Jan 16 01:06:16 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (mem_set_in_block): Deleted. - (mem_first_set, mem_last_set): Deleted. - (modify_mem_list): New variable. - (mems_conflict_for_gcse_p): New function. - (gcse_mems_conflict_p, gcse_mem_operand): New variables. - (load_killed_in_block_p): New function. - (oprs_unchanged_p): Use load_killed_in_block_p. - (oprs_not_set_p, expr_killed_p): Likewise. - (compute_transp): Do not pessimize memory references. - (record_last_mem_set_info): Keep a list of all instructions which - can modify memory for each basic block. - (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info. - (gcse_main): Initialize & finalize alias analysis. - (alloc_gcse_mem): Allocate space for modify_mem_list array. - (free_gcse_mem): Free the modify_mem_list array. - (compute_hash_table): Clear modify_mem_list. - (reset_opr_set_tables): Likewise. - - * gcse.c (invalidate_nonnull_info): Remove unused variables. - - * pa.h (EXTRA_CONSTRAINT): Handle 'S'. - - * pa.md (fused multiply): Add variants which reduce height for the - fused multiply, but which still generate 2 insns. - (fnegabs): Similarly. - - * pa.md (return, return_internal): Use bve for PA2.0. - - * pa.md (subsi3): Turn into an expander. Create two anonymous - patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. - -1999-01-15 Brendan Kehoe <brendan@cygnus.com> - - * system.h (abort): Adjust where to report bugs as a cygnus-local - change. - -Fri Jan 15 10:40:37 1999 Nick Clifton <nickc@cygnus.com> - - * configure.in: Remove inclusion of libgloss.h from fr30 target as - it is no longer needed. - * configure: Regenerate. - -1999-01-14 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/i960/i960.h (TARGET_FLAG_MOVE_COALESCENCE, - TARGET_MOVE_COALESCENCE, and TARGET_SWITCHES): Definitions for new - options `-mmove-coalescence' and `-mno-move-coalescence'. - (INIT_EXPANDERS, init_expanders): Definitions for i960 insn - expanders. - - * config/i960/i960.c (i960_const0_r12r13, i960_const0_r12r15): New - static variables for making move coalescence. - (machine_function): New structure describing machine status for - expanders. - (i960_save_machine_status, i960_restore_machine_status, - i960_init_expanders): New functions for work with machine status. - (emit_move_sequence, i960_output_move_double_zero, - i960_output_move_quad_zero): New code for coalescing move - instructions. - - * invoke.texi (-mmove-coalescence, -mno-move-coalescence): New - options description. - -1999-01-13 Nick Clifton <nickc@cygnus.com> - - * ginclude/va-fr30.h (va_arg): Handle structures specially. - (va_aggregate_p): New macro: Detect structures based on their - type. - - * config/fr30/fr30.h: (MUST_PASS_IN_STACK): Define: All - structures must now be passed on the stack. - (DEFAULT_PCC_STRUCT_RETUR): Define. - -Mon Jan 11 11:42:07 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md: Add real PA8000 scheduling information. - - * pa.c (adjust_cost): No cost adjustments needed for PA8000. - (following_call): Always return zero for the PA8000. - - * pa.h (REG_ALLOC_ORDER): Rework. - -1999-01-11 Nick Clifton <nickc@cygnus.com> - - * configure.in: Add extra_parts for FR30 target to build C++ - contructor and destructor code. - * configure: Regenerate. - * config/fr30/t-fr30: Add rules to build crti.o and crtn.o. - * config/fr30/fr30.h (STARTFILE_SPEC): Add crti.o and crtbegin.o. - (ENDFILE_SPEC): Add crtend.o and crtn.o. - * config/fr30/crti.asm: New file: Stack frame creation code for - .init amd .fini sections. - * config/fr30/crtn.asm: New file: Stack frame removal code for - .init and .fini sections. - -Sun Jan 10 16:58:23 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (HAVE_PRE_INCREMENT): Disable on the PA8000, except for - prologue/epilogue sequences. - (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise. - HAVE_POST_DECREMENT): Likewise. - - * pa-hpux10.h, pa-hpux11.h (ASM_FILE_START): Fix minor logic error. - - * pa.h (ISSUE_RATE): Refine for the PA8000. - -Thu Dec 31 16:03:59 1998 Michael Meissner <meissner@cygnus.com> - - * d10v.c ({gpr,accum}_operand): Rewrite December 17th change to - work better during the reload phase if we have run out of - registers. - (reg_or_0_operand): Call gpr_operand for non-integer constants. - (arith16_operand): Ditto. - (arith_4bit_operand): Ditto. - (arith_nonnegative_operand): Ditto. - (arith32_operand): Ditto. - (arith64_operand): Ditto. - (arith_lower0_operand): Ditto. - -1998-12-24 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.c (override_options): For TARGET_MIPS16 force - mips_align_loops to 0. - -1998-12-23 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.h (FUNCTION_PROFILER): Define. - - * config/arm/arm.c (arm_asm_output_label): Use variable - 'user_label_prefix' rather than macro USER_LABEL_PREFIX. - - * config/arm/t-thumb-elf: Add multilib option for leading - underscores. - - * config/arm/telf.h (USER_LABEL_PREFIX): Default to no leading - underscore. - (ASM_OUTPUT_DWARF2_ADDR_CONST): Use variable 'user_label_prefix' - rather than macro USER_LABEL_PREFIX. - -Wed Dec 23 10:03:26 1998 Michael Tiemann <tiemann@holodeck.cygnus.com> - - * config/generic/generic.h: Remove space before paren in - LOAD_EXTEND_OP macro. - -1998-12-18 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.md: Remove contraints from the - define_expand versions of negsi and one_cmpl. - -Fri Dec 18 12:09:17 1998 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md: Fix define_expands that were using - constraints to work without constraints, since they are not - supported. - -1998-12-18 Nick Clifton <nickc@cygnus.com> - - * config/fr30/lib1funcs.asm: Only use 32 division operations, not 33. - -1998-12-17 Nick Clifton <nickc@cygnus.com> - - * config/fr30/lib1funcs.asm: Use macro to generate body of divide - and modulo functions. - -1998-12-17 Michael Meissner <meissner@cygnus.com> - - * d10v.c ({gpr,accum}_operand): Always check whether a hard - register is valid, instead of just passing the buck to - register_operand before the reload pass. - -1998-12-17 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/abi64.h (LONG_MAX_SPEC): Handle -mabi=eabi. - -1998-12-16 Nick Clifton <nickc@cygnus.com> - - * ginclude/va-fr30.h (va_arg): Fix definition to work with small - types and irregularly sized types. - - * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Use a frame pointer - for varags functions. - (FUNCTION_ARGS): Also check MUST_PASS_IN_STACK(). - (FUNCTION_ARGS_PASS_BY_REFERENCE): Define. - - * config/fr30/fr30.c (fr30_num_arg_regs): Return 0 if the type - satisifies MUST_PASS_IN_STACK(). - - * config/fr30/fr30.md (enter_func): Fix pattern to match real - behaviour of the insn. - -Tue Dec 15 14:09:40 1998 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.md: Add comments for required patterns - plus how to use a fixed condition code register. - -1998-12-15 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.h (GAS_ASM_SPEC): Pass mabi to gas. - (ABI_GAS_ASM_SPEC,abi_gas_asm_spec): New. - (EXTRA_SPECS): Added ABI_GAS_ASM_SPEC,abi_gas_asm_spec. - -Mon Dec 14 19:22:58 1998 Jim Wilson <wilson@cygnus.com> - - * d30v/d30v.c (move_input_operand, move_output_operand): Accept - ADDRESSOF as valid memory operand address. - -1998-12-14 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.c (print_operand): Fix LTU and GEU opcodes. - (print_operand): Add 'A' operator to print a signed byte value as - an unsigned byte value. - (fr30_notice_update_cc): Function removed. - - * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Define. - (TRAMPOLINE_SIZE): Define. - (INITIALIZE_TRAMPOLINE): Define. - (NOTICE_UPDATE_CC): Undefine. - - * config/fr30/fr30.md: Switch over from using cc0 to using reg 16 - as a fixed condition code register. - Remove the "cc" attribute. - (movqi_internal): Use 'A' operator to get an unsigned version of a - signed byte value. - -Mon Dec 14 17:08:17 1998 Jim Wilson <wilson@cygnus.com> - - * regmove.c (REL_USE_HASH): Use unsigned HOST_WIDE_INT instead of - unsigned. - -1998-12-13 Nick Clifton <nickc@cygnus.com> - - * configure.in: Add inclusion of libgloss.h - - * config/generic/generic.md (movsi_internal): Improve defintion to - include multiple alternatives and add comment explaining why this - is desireable. - - * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Change value to 0. - - * config/fr30/fr30.md (movqi_internal): Accept any integer value, - not just QI values. - (call): Only allows MEMs in REGs. - - * config/fr30/fr30.c (fr30_function_args_partial_nregs): Fix to - work properly. - -1998-12-12 Nick Clifton <nickc@cygnus.com> - - * config/fr30/lib1funcs.asm: Fix divide routines. - * config/fr30/fr30.h: Rework frame pointer elimination. - * config/fr30/fr30.c: Rework frame pointer elimination. - * config/fr30/fr30.md: Rework use of cc0. - -1998-12-11 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.md: Do not use memory_operand() to test - for memory references when performing a define_expand() as it will - miss invalid memory constructs. - - * config/fr30/fr30.md: Force MEMs for Qi and HI mode moves to be - loaded into a reg. - Check peephole conversions of push and pop sequences to make sure - that the registers are in ascending order. - - * config/fr30/fr30.c (fr30_check_multiple_regs): New function - - Check registers are in ascending order. - - * config/fr30/fr30.h (ENDFILE_SPEC): Add link with simulator library. - Add prototype for fr30_check_multiple_regs(). - - * config/fr30/lib1funcs.asm: Basic implemenation of divide and - modulo funcitons. - -1998-12-10 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md: Add pattern for "enter" insn. - * config/fr30/fr30.c: Use enter insns as part of function - prologue. - - * config/generic/generic.c (generic_setup_incoming_varargs): New - stub function. - * config/generic/generic.h: (SETUP_INCOMING_VARARGS): Define. - - * config/fr30/t-fr30: Remove _negsi2 and _one_cmplsi2 functions. - * config/fr30/lib1funcs.asm: Remove stubs for negsi2 and - one_cmplsi2. Make other stubs generate an abort. - - * config/fr30/fr30.h: Create a new fake hard register for the - argument pointer. - (INITIAL_ELIMINATION_OFFSET): Fix to cope with Fr30 frame layout. - (SETUP_INCOMING_VARARGS): Define to call fr30_steup_incoming_varargs(). - (STRICT_ARGUMENT_NAMING); Define as false. - (PREDICATE_CODES): Add low_register_operand(). - - * config/fr30/fr30.md: Add peephole for va_arg() load insns. Not - working yet. - Add peepholes for pushing low registers. - Add patterns for: negsi2 and one_cmplsi2 - Add grunge reload pattern for computing stack addresses. - - * config/fr30/fr30.c: Improve stack layout comment. - (MUST_SAVE_FRAME_POINTER): Also save FP if frame_pointer_needed is - true. - (fr30_expand_prologue): Push arguments into pretend argument area. - (fr30_setup_incoming_varags): New function: compute size of - pretend argument area. - (low_register_operand): New predicate: Return true if argument is - a hard register in the range 0 to 7. - - * Makefile.in: Export va-fr30.h to gcc's include directory. - * ginclude/varargs.h: Include va-fr30.h if __fr320__ is defined. - * ginclude/stdarg.h: Include va-fr30.h if __fr320__ is defined. - * ginclude/va-fr30.h: Varargs implemenation for the FR30. - - * config/arm/arm.h (TARGET_OPTIONS): Fixup egcs merge problem. - -1998-12-08 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md: Add missing (MEM:SI ...) around memory - references! - (reload_frame_pointer_add): New pattern to cope with implicit - assumption built into reload. - (stack_pointer_store, frame_pointer_store): swap order of operands. - - * config/fr30/fr30.c (fr30_expand_epilogue): Pop frame pointer if - it was pushed during the prologue. - -Sun Dec 6 03:40:07 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (reduce_expression_tree_depth): Set TREE_CONSTANT on - new expressions we create, if applicable. - -Fri Dec 4 23:10:36 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Call reduce_expression_tree_depth for - simple associative operators. - (reduce_expression_tree_depth): New function. - -1998-12-04 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md: Improve support for small memory model. - - * Fixed branch length calculations. - -1998-12-03 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.h: Add -msmall-model command line switch. - - Define r0 as a fixed register for use by the .md patterns. - - Undefine MACHINE_DEPENDENT_REORD. - - * config/fr30/fr30.md: Use r0 as a scratch register for branches and - jumps. - - Use LDI:20 instead of LDI:32 to load addresses if TARGET_SMALL_MODEL - is enabled. - - * config/fr30/fr30.c: Delete fr30_reorg() function. - -1998-12-02 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.h: Undefine STARTFILE_SPEC and ENDFILE_SPEC. - * config/fr30/fr30.md: Enable the generation of the LDI:20 - instruction. - -Wed Dec 2 01:18:53 1998 Richard Henderson <rth@cygnus.com> - - * flow.c (merge_blocks): Call squeeze_notes. - -Tue Dec 1 15:29:17 1998 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md (movsi_register_store): Allow ADDRESSOF - stores. - (branch_true, branch_false): Use comparision_operator to ensure - that an operator is actually present in the RTL. - (jump, branch): Reduce distance calculation to cope with - inaccuracies in insn length calculations. - - * config/fr30/fr30.c (fr30_print_operand): Add 'R' operand to - print a MEM as if it were a REG. - Add folding to the file. - - * config/fr30/fr30.h: Add folding to the file. - -Tue Dec 1 11:59:12 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (trap_if): Another typo in !GENERATE_BRANCHLIKELY case. - -Mon Nov 30 17:05:59 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (trap_if): Fix typo in !GENERATE_BRANCHLIKELY case. - -Fri Nov 27 18:40:10 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (mulsidi3_i, umulsidi3_i): Make rtl describe operation - correctly independent of endianness. - (mulsidi3, umulsidi3): Now define_insn. Hide details that - confuse the optimizers. - (mulsidi3+1, umulsidi3+1): New define_split. - -1998-11-25 Nick Clifton <nickc@cygnus.com> - - * config/fr30/t-fr30 (LIB1ASMFUNCS): Add _one_cmplsi2. - - * config/fr30/lib1funcs.asm (__one_cmplsi2): New function stub. - - * config/fr30/fr30.h (MACHINE_DEPENDENT_REORG): Define and set to - fr30_reorg(). - - * config/fr30/fr30.c (fr30_reorg): New function - detect illegal - jump insns created by jump2 pass of gcc and correct them. - -Thu Nov 26 00:49:47 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name. - (smulsi3_highpart_i): Name. - (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes. - (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise. - (smulsi3_highpart, umulsi3_highpart): Likewise. - -Tue Nov 24 17:58:29 1998 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md (jump): Support jumps to code outside +/- - 255 byte range. - -Tue Nov 24 14:03:17 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (TARGET_OPTIONS): Fix merge problem. - -Tue Nov 24 00:34:17 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (hoist_expr_reaches_here_p): Make sure to check all paths. - -Mon Nov 23 17:24:24 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (override_options): Use tilde, not minus to - invert a bitfield! - -Sun Nov 22 20:33:20 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (DImode div and mod insns):Fix typos. - - * z8k.c (struct option): Add new "description field". - - * z8k.h (EXTRA_CONSTRAINT): Do not call abort. - (REG_OK_FOR_INDEX_P): Define with a value. - (OPTIMIZATION_OPTIONS): Add new parameter. - - * mips.md (moddi3): Fix typo. - -Fri Nov 20 14:51:42 1998 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.h: Make MDL and MDH be fixed until the multiply - patterns can be fixed. - - * config/fr30/fr30.c (sp_displacement_operand): Fix range to be - 0 -> 60 not 0 -> 64. - Add %b and %B output operand operators to generate condition - codes. - - * config/fr30/fr30.md: Fix branch patterns to use correct - condition mnemonics. - Rewrite conditional branches to support both long branches and - short branches. - - * config/fr30/t-fr30: Define mutlipy and divide functions for - libgcc1-asm.a - - * config/fr30/lib1funcs.asm: Assembler code for multiply and - divide functions. - -Thu Nov 19 13:33:07 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/pe.h: Define USER_LABEL_PREFIX as "_" - -Wed Nov 18 14:40:34 1998 Jim Wilson <wilson@cygnus.com> - - * configure.in: Add configury for mips-lsi-elf. - * configure: Regenerate. - * config/mips/t-lsi: New file. - - * range.c (live_range): Fix size arg to insn_ruid bzero call. - Check INSN_UID before storing into insn_ruid array. - -Wed Nov 18 10:57:49 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.md: Fix define_split for sasf insns, so that it - will not generate bad code if the source and destination registers - are the same. - -Mon Nov 16 09:46:46 1998 Nick Clifton <nickc@cygnus.com> - - * config/d10v/d10v.c (print_operand_memory_reference): Surround - user symbols with parentheses in order to distinguish them from - register names. - - * config/generic/generic.md (movdf, movdf_internal): Commented out - these patterns since they are optional. - -Fri Nov 13 10:14:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (optimize_related_values_1): Reject optimization if - offset for rel_base_reg_user would be to large. - -Fri Nov 13 04:36:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (rel_record_mem): Don't do anything if the register - already has an invalidate_luid. - -Thu Nov 12 16:44:23 1998 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.md: Fix comment describing epilogue - pattern. - - * config/generic/generic.h: Add required definitions of - ASM_OUTPUT_CHAR, ASM_OUTPUT_SHORT and ASM_OUTPUT_INT. - -Thu Nov 12 23:02:32 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (invalidate_related): Don't do anything if the register - already has an invalidate_luid. - (optimize_related_values): Don't update death field if - invalidate_luid field is set. - -Sat Oct 31 18:10:40 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (secondary_reload_class): No secondary register is needed - when copying sp+X into any of extended registers. - -Fri Oct 30 14:51:26 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (languages): Add missing ";;" in case statement. - -Thu Oct 29 19:08:12 1998 Jim Wilson <wilson@cygnus.com> - - * d10v/d10v.c (d10v_split_logical_op): If reload_completed, create - REGs instead of SUBREGS. - -Wed Oct 28 23:05:17 1998 Jeffrey A Law (law@cygnus.com) - - * invoke.texi: Add new alignment options for MIPS targets. - * tm.texi (FUNCTION_BOUNDARY_MAX_SKIP): Document new target macro. - * varasm.c (FUNCTION_BOUNDARY_MAX_SKIP): Provide a default value. - (assemble_start_function): Use ASM_OUTPUT_MAX_SKIP_ALIGN if defined. - * mips.c: Add new variables for alignment and maximum skip support. - (override_options): Handle alignment and maximum skip arguments. - * mips.h (SUBTARGET_TARGET_OPTIONS): Add new alignment and maximum - skip options. - (FUNCTION_BOUNDARY, LOOP_ALIGN, LABEL_ALIGN_AFTER_BARRIER): Use - alignment and maximum skip values computed in override_options. - (FUNCTION_BOUNDARY_MAX_SKIP): Define. - (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - -Wed Oct 28 15:29:56 1998 Jim Wilson <wilson@cygnus.com> - - * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field. - -Tue Oct 27 17:02:21 1998 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.md: Commented out some unecessary patterns. - -Tue Oct 27 15:09:42 1998 Nick Clifton (nickc@cygnus.com) - - Merge in arm-elf related changes from EGCS: - - * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf - targets. - - * configure: Regenerated. - - * config/arm/aout.h: Add default definitions of REGISTER_PREFIX, - USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro - definitions conditional on their not having been already defined. - - * config/arm/lin1funcs.asm: Add ELF only macros to generate .size - and .type directives, and add "(PLT)" qualification to function - calls. - - * config/arm/linux.h: Deleted. This file is now superceeded by - either linux-elf.h or linux-aout.h. - - * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling. - (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel - support). - Move definitions from old linux.h file here. - - * config/arm/elf.h: Now contains only generic ARM/ELF support. - - * config/arm/linux-aout.h: Support for Linux with a.out. - - * config/arm/linux-elf.h: New file. Support for Linux with ELF. - - * config/arm/linux-elf26.h: New file. Support for Linux with ELF - using the 26bit APCS. - - * config/arm/unknown-elf.h: New file. Support for OS'es other - than Linux with ELF. - - * config/arm/coff.h: Include aout.h for basic assembler macros. - - * config/arm/arm.h: Make macro definitions conditional on their - not having been already defined. - -Thu Oct 22 16:28:42 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c reload.c reload.h: Install Bernd's reload patches on - this branch for testing. - -Wed Oct 21 15:14:35 1998 Nick Clifton <nickc@cygnus.com> - - * config/generic/t-generic: Add definitions of CROSS_LIBGCC1 and - LIB2FUNCS_EXTRA. - Add (commented out) MULTILIB support. - - * config/generic/generic.c (generic_compute_frame_size): New function stub. - (generic_print_operand_address): New function stub. - (generic_print_operand): New function stub. - - * config/generic/generic.h: Add forward declarations of structure types - for use in exported function prototypes. - Remove *note constructs. - Document --help strings. - Fix conflicts between names of args to macros and references to those - names in the accompanying text. - REG_CLASS_CONTENTS: Define ALL_REGS class in terms of FIRST_PSEUDO_REGISTER. - Uncomment definitions which must be present oin order for cc1 to build. - RETURN_VALUE_REGNUM: New register macro - the number of a register - that holds a scalar function's return value. - -Wed Oct 21 11:43:46 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850ea.h (MASK_US_BIT_SET): Change value to 0x1000 - to avoid clash with MASK_NO_APP_REGS. - (MASK_US_BIT_SET): Change value to 0x2000 to avoid clash with - MASK_NO_DISABLE_CALLT. - - * config/v850/v850.c (construct_dispose_instruction): Obey setting - of TARGET_DISABLE_CALLT. - (construct_prepare_instruction): Obey setting of TARGET_DISABLE_CALLT. - -Mon Oct 19 14:31:56 1998 Nick Clifton <nickc@cygnus.com> - - * configure.in: Add FR30 target. - * configure: Add FR30 target. - * config.sub: Add FR30 target. - * config/fr30: New directory. - * config/fr30/fr30.c: New target specific C source. - * config/fr30/fr30.h: New target specific header file. - * config/fr30/fr30.md: New target specific machine description. - * config/fr30/xm-fr30.h: New target specific cross make header. - * config/fr30/t-fr30: New target specific makefile fragment. - - * config/m32r/m32r.h (TARGET_SWITCHES, TARGET_OPTIONS): Document m32r - specific command line switches. - -Mon Oct 19 14:05:30 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (nonnull_local, nonnull_killed): New file static variables. - (invalidate_nonnull_info): New functions - (delete_null_pointer_checks): Likewise. - * toplev.c (rest_of_compilation): Call delete_null_pointer_checks - immediately before and after the first CSE pass. - -Mon Oct 19 07:33:00 1998 Catherine Moore <clm@cygnus.com> - - * config/rs6000/sysv4.h (CPP_SPEC): Define _SOFT_FLOAT - if -msoft-float. - -Sun Oct 18 14:57:03 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (compute_transpout): New function. - (insert_insn_end_bb): New argument PRE. All callers changed. Make - some sanity checks conditional on value of PRE. - (transp, comp, antloc): Renamed from pre_transp, pre_comp, pre_antloc. - Replace all references. - (hoist_transp, hoist_comp, hoist_antloc): Delete. Change all references - to transp, comp and antloc respectively. - (transpout): New bitmap. - (alloc_pre_mem, alloc_hoist_mem): Allocate transpout. - (free_pre_mem, free_hoist_mem): Deallocate transpout. - (compute_pre_data): Compute pre_transpout. - (compute_code_hoist_data): Likewise. - (hoist_code): We can not hoist an expression into a block if the - expression is not in tranpout for the block. - -Fri Oct 16 10:47:53 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation. - (TARGET_OPTIONS): Add --help documentation. - -Thu Oct 15 13:44:30 1998 Jim Wilson <wilson@cygnus.com> - - * d30v/d30v.c (d30v_eh_epilogue_sp_ofs): New variable. - (d30v_stack_info): Correct calculation for link_offset. - (d30v_function_epilogue): Don't clear d30v_return_addr_rtx here. - (d30v_expand_epilogue): Use d30v_epilogue_sp_ofs. - (struct machine_function): New type. - (d30v_save_machine_status, d30v_restore_machine_status, - d30v_init_expanders): New functions. - (d30v_return_addr): Call push_topmost_sequence, pop_topmost_sequence. - * d30v/d30v.h (INCOMING_RETURN_ADDR_RTX): Change VOIDmode to Pmode. - (INIT_EXPANDERS): New macro. - (d30v_init_expanders, d30v_eh_epilogue_sp_ofs): Add declarations. - * d30/d30v.md (eh_epilogue): New. Set d30v_eh_epilogue_sp_ofs. - -Wed Oct 14 21:38:11 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (optimize_related_values): Check if cc0 is set. - - * regmove.c (optimize_related_values): Fix problem with multiple - related values in single insn. - -Tue Oct 13 12:25:24 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c: Synchronised with egcs. - - * config/v850/v850.md: Synchronised with egcs. - - * config/m32r/m32r.md (sne): Only accept unsigned 16bit integers. - -Tue Oct 13 07:55:04 1998 Catherine Moore <clm@cygnus.com> - - * config/arm/elf.h: Fix typo. - * config/arm/telf.h: Ditto. - -Mon Oct 12 22:57:24 1998 Jeffrey A Law (law@cygnus.com) - - * sparc.h: Fix minor merge lossage in 64bit sparc support. - -Mon Oct 12 14:10:48 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c: Fix CYGNUS LOCAL markers. - - * config/arm/arm.c (arm_override_options): Add initialisation of - arm_ld_sched boolean. - - Fix CYGNUS LOCAL markers. - - * config/arm/arm.md: Add ldsched attribute and use in computing - functional units. - - Fix CYGNUS LOCAL markers. - - Replace (reg 24) with (reg:CC 24). - - * config/arm/arm.h: Add export of arm_ld_sched. - -Mon Oct 12 09:21:32 1998 Catherine Moore <clm@cygnus.com> - - * config/arm/elf.h (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P): Define. - (UNIQUE_SECTION): Define. - * config/v850/v850.c (print_operand): Extend meaning - of 'c' operands to support .vtinherit. - -Sun Oct 11 03:20:26 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0 - FP loads and stores. - * pa.h (TARGET_PARISC_2_0): Define. - (TARGET_SWITCHES): Add -mpa-risc-2-0, -mno-pa-risc-2-0. - (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0 FP loads - and stores. - (LEGITIMIZE_RELOAD_ADDRESS): Similarly. - * pa.md: Add several new PA2.0 patterns. Split a few of the - fix/float patterns into define_expands and define_insns. - * pa-hpux10.h (ASM_FILE_START): Emit .level pa2.0 if generating - PA2.0 opcodes. - * pa-hpux11.h (ASM_FILE_START): Likewise. - -Thu Oct 8 17:06:15 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/elf.h (DWARF_DEBUGGING_INFO): Define. - (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - (ASM_OUTPUT_DWARF_ADDR_CONST): Redfeine to work for Dwarf-1. - - * config/arm/telf.h (DWARF_DEBUGGING_INFO): Define. - (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - (ASM_OUTPUT_DWARF_ADDR_CONST): Redfeine to work for Dwarf-1. - (ASM_OUTPUT_DEF): Define. - -Thu Oct 8 11:02:06 1998 Jim Wilson <wilson@cygnus.com> - - * d30v.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): - Add (eq:SI ... (const_int 1)) around operand 1. - (setcc_internal): Likewise. - (decscc): Likewise for operand 2. - (incscc): Switch operands 1 and 2, then likewise for operand 1. - -Thu Oct 8 10:59:42 1998 Nick Clifton <nickc@cygnus.com> - - * d30v.c (d30v_emit_cond_move): Generate pattern that can be - matched by the new setcc_internal pattern. - - * tree.h: Remove (unused) data_area field of struct - tree_decl. - - * c-decl.c (duplicate_decls): Remove code to copy data_area - field of struct tree_decl. - (start_decl): Remove invocation of SET_DEFAULT_SECTION_NAME. - (start_function): Add invocation of SET_DEFAULT_DECL_ATTRIBUTES. - - * tm.texi (SET_DEFAULT_SECTION_NAME): Remove definition of - this unused macro. - -Wed Oct 7 02:39:12 1998 Richard Henderson <rth@cygnus.com> - - * gcse.c (insert_insn_end_bb): When a call ends a bb, insert - the new insns before the argument regs are loaded. - -Tue Oct 6 10:59:15 1998 Catherine Moore <clm@cygnus.com> - - * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't - check for flag_function_sections. - -Mon Oct 5 09:59:40 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in: Remove CYGNUS LOCAL markers for unlibsubdir changes. - -Fri Oct 2 16:58:37 1998 Nick Clifton <nickc@cygnus.com> - - * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't - call abort if the function is already defined. - -Thu Oct 1 17:59:03 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c: Import changes from egcs. - -Wed Sep 30 10:41:21 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.md: Replace 'memory_operand' with - 'indirect_operand' in set1, not1 and clr1 patterns. - - * config/v850/v850.c (compute_register_save_size): Detect when - out-of-line helper functions will be used to create function - prologues, and allow for their affect on the frame size. - - * config/v850/v850.h (EXTRA_SWITCHES): Default the contents of this - macro to empty. - - * config/v850/lib1funcs.asm: Add type attributes for callt - functions. - -Tue Sep 29 09:36:33 1998 Nick Clifton <nickc@cygnus.com> - - * config/d30v/libgcc1.asm: Fixinstruction ordering conflicts - detected by recent changes in the assembler. - -Mon Sep 28 13:20:44 1998 Catherine Moore <clm@cygnus.com> - - * configure.in: Add CYGNUS LOCAL markers. - * config/arm/aout.h: Ditto. - * config/arm/arm.h: Ditto. - * config/arm/t-arm-elf: Ditto. - * config/arm/t-thumb-elf: Ditto. - -Fri Sep 15 16:00:00 1998 Jim Wilson <wilson@cygnus.com> - - * reload1.c (reload): Use reload_address_index_reg_class and - reload_address_base_reg_class when setting caller_save_spill_class. - * config/arm/arm.md (insv): Add comment. In CONST_INT case, and - operand3 with mask before using it. - -Wed Sep 23 16:35:17 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (enum reg_class): Add NONARG_LO_REGS - support. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, - PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload - completes. Re-enable HImode REG+OFFSET addresses. - (LEGITIMIZE_RELOAD_ADDRESS): Define. - -Wed Sep 23 20:42:54 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (optimize_related_values_1): Set use->insn when emitting - the linking insn before the final 'use' for a register that does not - die within the scope of the optimization. - -Tue Sep 22 10:01:21 1998 Nick Clifton <nickc@cygnus.com> - - * config/generic/generic.h: Update description of HANDLE_PRAGMA - and add description of HANDLE_PRAGMA_PACK_PUSH_POP. - -Mon Sep 21 15:04:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (count_sets): New function. - (gen_add3_insn): If single instruction add fails and source and - destination register are different, try a move / add sequence. - (rel_use_chain): New member match_offset. - (optimize_related_values_1): Set it, and use it to avoid linking - chains when this requires more than one instruction for the add. - (add_limits): New file scope array. - (optimize_related_values): Initialize it. - -Mon Sep 21 14:55:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * regmove.c (optimize_related_values_1): Don't use rel_base->reg - for a chain that needs an out-of-range offset. - Take setting of rel_base_reg_user into account when deciding - if there are enough registers available. - -Fri Sep 18 11:54:03 1998 Catherine Moore <clm@cygnus.com> - - * config/elfos.h: Modify prefixes for UNIQUE_SECTION_NAME. - * config/svr4.h: Likewise. - * config/mips/elf.h: Likewise. - * config/mips/elf64.h: Likewise. - -Fri Sep 18 09:44:55 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h (m32r_block_immediate_operand): Add to - PREDICATE_CODES. - - * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" - patterns. - - * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p' - operators. - (block_move_call): New function: Call a library routine to copy a - block of memory. - (m32r_expand_block_move): New function: Expand a "movstrsi" - pattern into a sequence of insns. - (m32r_output_block_move): New function: Expand a - "movstrsi_internal" pattern into a sequence of assembler opcodes. - -Wed Sep 16 14:13:38 1998 Stan Cox <scox@cygnus.com> - - * i386-coff.h (DBX_DEBUGGING_INFO): Added. - -Wed Sep 16 12:09:12 1998 Catherine Moore <clm@cygnus.com> - - * flags.h: Add flag_data_sections. - * toplev.c: Add option -fdata-sections. Add flag_data_sections. - (compile_file): Error if flag_data_sections not supported. - * varasm.c (assemble_variable): Handle flag_data_sections. - -Tue Sep 15 16:41:00 1998 Michael Tiemann <michael@impact.tiemann.org> - - * fold-const.c (fold): Fix typo in COND_EXPR handling code. - (invert_truthvalue): Enable truthvalue inversion for - floating-point operands if -ffast-math. - - * regmove.c (find_related): We also have to track expressions that - are just naked registers. Otherwise, we burn one register to - prime the related values, and we'll also miss the second (but not - subsequent) opportunities to use related values. - - * lcm.c (compute_antinout): Start by setting all bits in - OLD_CHANGED, not NEW_CHANGED. - (compute_earlyinout): Ditto. - - * lcm.c (compute_redundant): Free temp_bitmap when we're done with - it. - - * libgcc1.c (__abssf2, __absdf2): New libcalls. - * Makefile.in (LIB1FUNCS): Add code for new ABS libcalls. - * optabs.c (init_optabs): Intialize abs_optabs to use ABS - libcalls. - -Tue Sep 15 17:09:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Add special case for FPSCR. - (GO_IF_LEGITIMATE_ADDRESS): Allow indexed addressing for PSImode - after reload. - (LEGITIMIZE_RELOAD_ADDRESS): Don't operate on - RELOAD_FOR_INPUT_ADDRESS for PSImode. - * sh.md (movpsi): New expander. - (fpu_switch): Add r/r and m/r alternatives. Move r/m before - c/m. Add insn predicate. - -Tue Sep 15 09:47:50 1998 Catherine Moore <clm@cygnus.com> - - * config/arm/aout.h: Check if ASM_DECLARE_FUNCTION_NAME - already declared. - * config/arm/elf.h (TYPE_ASM_OP): Define. - (SIZE_ASM_OP): Define. - (TYPE_OPERAND_FMT): Define. - (ASM_DECLARE_RESULT): Define. - (ASM_DECLARE_FUNCTION_NAME): Define. - (ASM_DECLARE_OBJECT_NAME): Define. - (ASM_FINISH_DECLARE_OBJECT): Define. - (ASM_DECLARE_FUNCTION_SIZE): Define. - (ASM_OUTPUT_SECTION_NAME): Change default to "ax". - * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Change - default to "ax". - -Mon Sep 14 09:39:28 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (compute_preds_succs): Only split edges when the last insn - in the basic block is a conditional branch. - (merge_blocks): Do not merge a block with a tablejump with anything. - -Tue Sep 8 21:36:59 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (pre_insert): Fix thinko. - -Mon Sep 7 23:50:56 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): Add -mcpu=740 as a place - holder. - -Thu Sep 3 18:16:16 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): Add -mcpu=750 as a place - holder. - -Thu Sep 3 23:33:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (push_obstacks_nochange, end_temporary_allocation): Declare. - * regmove.c (obstack.h): Include. - (REL_USE_HASH_SIZE, REL_USE_HASH, rel_alloc, rel_new): Define. - (struct related, struct related_baseinfo, struct update): New structs. - (struct rel_use_chain, struct rel_use): Likewise. - (regno_related, rel_base_list, unrelatedly_used): New variables. - (related_obstack): Likewise. - (regclass_compatible_p, lookup_related): New functions. - (rel_build_chain, rel_record_mem, invalidate_related): Likewise. - (find_related, chain_starts_earlier, chain_ends_later): Likewise. - (optimize_related_values_1, optimize_related_values_0): Likewise. - (optimize_related_values): Likewise. - (regmove_optimize): Use regclass_compatible_p. - Call optimize_related_values. - -Wed Sep 2 19:00:17 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (pre_insert): Do not insert an expression into the same - block more than once. - * lcm.c (compute_antinout): Avoid useless computations when the - global properties of the current block's successors have not changed. - (compute_earlyinout): Similarly. - -Tue Sep 1 11:30:33 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17). - * config/m32r/m32r.h: Make register 17 be fixed. - -Mon Aug 31 11:29:15 1998 Catherine Moore <clm@cygnus.com> - - * config/arm/elf.h: Rework constructor/destructor support. - * config/arm/telf.h: Likewise. - * config/arm/t-arm-elf: New file. - * config/arm/t-thumb-elf: New file. - * configure.in: Change tmake_file to t-arm-elf for - arm-elf and to t-thumb-elf for thumb-elf. - * configure: Rebuild. - -Mon Aug 31 09:53:24 1998 Jeffrey A Law (law@cygnus.com) - - * range.c (live_range): Do not perform LRS on phony loops. - - * mn10300.md (widening multiplies): Fix order of output operands - in assembler template. - - * range.c (range_finish): Start block 0 at the first CODE_LABEL or - real insn. - -Wed Aug 26 17:13:37 1998 Tom Tromey <tromey@cygnus.com> - - * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION. - * gthr-qt.h: New file. - * frame.c (init_object_mutex): New function. - (init_object_mutex_once): Likewise. - (find_fde): Call it. - (__register_frame_info): Likewise. - (__register_frame_info_table): Likewise. - (__deregister_frame_info): Likewise. - * configure.in: Recognize `qt' as a thread package. Add - appropriate -I option to gthread_flags when using qt. - * configure: Rebuilt. - -Wed Aug 26 16:22:51 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): Enable LRS at -O2 and higher for - systems which prefer stabs debug symbols. - * invoke.texi: Restore lost LRS docs. Note LRS is enabled at -O2 - and higher for some systems. - - * toplev.c (rest_of_compilation): Run recompute_reg_usage before - LRS, not after. - -Wed Aug 26 09:30:59 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it - already contains the return address. - - * cse.c (equiv_constant): Cope with gen_lowpart_if_possible() - returning 0. - -Wed Aug 26 11:18:57 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * mips.md (lshrsi3_internal2+2): Fix type-o. - -Tue Aug 25 11:38:21 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX - as an ordinary operand. - -Sat Aug 22 00:11:51 1998 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (movdf_softfloat32): Accept any valid memory - address. - -Fri Aug 21 14:19:52 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movdi, movdf): When using movu to load the high half - of a DImode/DFmode value, do not forget to also load the load half. - -Thu Aug 20 15:04:28 1998 Michael Meissner <meissner@cygnus.com> - - * d30v.h (ASM_GENERATE_INTERNAL_LABEL): Remove definition, svr4.h - supplies an appropriate one. - - * d10v.c: Include system.h, not stdio.h to get sys/param.h pulled - in before rtl.h in case the system defines MIN and MAX. - * d30v.h: Ditto. - -Wed Aug 19 11:57:57 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Define. - -Tue Aug 18 10:02:53 1998 Catherine Moore <clm@cygnus.com> - - * config/arm/elf.h: Define ASM_SPEC and LINK_SPEC. - -Wed Aug 12 14:12:40 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.md (extendqisi2_insn): Cope with REG + - OFFSET addressing. - - * config/arm/m32r.md (sne): Only generate xor insns when the - constant is unsigned. - -Wed Aug 12 12:09:54 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (hpux11 support): Move it before the default hpux - case to avoid using the generic hpux config files for hpux11. - * configure: Rebuilt. - -Wed Aug 12 12:47:50 1998 Gavin Romig-Koch <gavin@cygnus.com> - - * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for - VAR_DECL's in gp addressable sections. - -Wed Aug 12 09:02:55 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.c (m32r_not_same_reg): New function. Returns - true iff its two arguments are rtx's that refer to different - registers. - - * config/m32r/m32r.h (PREDICATE_CODES): Add m32r_not_same_reg(). - - * config/m32r/m32r.md (andsi3, iorsi3, xorsi3): Use - m32r_not_same_reg() rather than rtx_equal_p(). - -Tue Aug 11 09:15:23 1998 Nick Clifton <nickc@cygnus.com> - - * tm.texi (SET_DEFAULT_SECTION_NAME): Add CYGNUS LOCAL markers. - -Mon Aug 10 11:36:04 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.h: Add prototypes for some exported functions. - - Remove spurious CYGNUS LOCAL markers, and add required CYGNUS - LOCAL markers. - - Define HANDLE_PRAGMA and SET_DEFAULT_SECTION_NAME macros and the - enums used by the code in v850.c that implements them. - New enums: v850_pragma_state, v850_pragma_type, GHS_section_kind. - - * config/v850/v850.c: Add prototypes for functions not prototypes - in v850.h. - - Add default cases to some switch statements, in order to eliminate - warning messages when compiled with -Wall. - - Add support for sda, tda and zda attributes. Moved here from - c-decl.c. Add code to implement some GHS pragmas. - New functions: push_data_area, pop_data_area, v850_handle_pragma, - mark_current_function_as_interrupt, parse_ghs_pragma_token, - v850_set_default_section_name. - -Fri Aug 7 17:25:29 1998 Nick Clifton <nickc@cygnus.com> - - * c-decl.c (duplicate_decls): Copy data area from old decl into - new decl. - (start_decl): Add use of SET_DEFAULT_SECTION_NAME, if defined. - (start_function): Add use of SET_DEFAULT_SECTION_NAME, if defined. - - * c-lex.c (check_newline): Call HANDLE_PRAGMA before - HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages - if unknown pragmas are encountered. - (handle_sysv_pragma): Interpret return code from - handle_pragma_token (). Return success/failure indication rather - than next unprocessed character. - - * c-pragma.c (handle_pragma_token): Return success/failure status - of the parse. - - * c-pragma.h: Change prototype of handle_pragma_token(). - - * tm.texi (HANDLE_PRAGMA): Document the use of HANDLE_PRAGMA when - USE_CPPLIB is enabled. - (SET_DEFAULT_SECTION_NAME): New macro. Allows backend to setup - the section name of a decl when it is created. - - * tree.h (DECL_DATA_AREA): New macro. Accesses data_area field of - a decl - (struct tree_decl): Add new field 'data_area'. - - * varasm.c: (handle_pragma_weak): Only create this function if - HANDLE_PRAGMA_WEAK is defined. - -Mon Aug 3 08:00:00 1998 Catherine Moore <clm@cygnus.com> - - * configure.in: Support arm-*-elf and thumb-*-elf. - * configure: Regenerate. - -Fri Jul 31 16:13:04 1998 Catherine Moore <clm@cygnus.com> - - * config/arm/elf.h: New file. - * config/arm/telf.h: New file. - * config/arm/aout.h: Check if ASM_FILE_START previously - defined. - * config/arm/arm.h: Check if STRUCTURE_SIZE_BOUNDARY - previously defined. - -Fri Jul 31 16:00:41 1998 Ken Raeburn <raeburn@cygnus.com> - - * mips.md (mulsi3_mult3): Add TARGET_MIPS5400 to condition. - (muls_r5400, msac_r5400): Don't disparage output-LO alternative. - (msac_r5400): Use "*d" for accumulator, to give preference to LO - initially but not during reload. - (muls_r5400_di, msac_r5400_di, xmulsi3_highpart_5400, - xmulsi3_neg_highpart_5400): Fix typo, SIGN_EXTRACT for - SIGN_EXTEND. - (macc_r5400_di): Absorb into mul_acc_64bit_di. - (mul_acc_64bit_di): Don't use match_dup for accumulator, use "0" - constraint. - * t-vr5000 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add VR5400 - options. - -Fri Jul 31 10:23:55 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number - labels with .debugsym if no parallel insns. - -Fri Jul 31 09:45:07 1998 Nick Clifton <nickc@cygnus.com> - - * reload1.c (init_reload): On SMALL_REGISTER_CLASSES machines, - when searching for a reload_address_reg_class, avoid fixed - registers as well as argument registers. - -Wed Jul 29 11:47:10 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber - constraint from second alternative. - -Tue Jul 28 18:54:28 1998 Stan Cox <scox@cygnus.com> - - * sp86x-aout.h (HAVE_ATEXIT): New macro. - -Tue Jul 28 11:12:46 1998 Vladimir N. Makarov <vmakarov@cygnus.com> - - * cse.c (cse_insn): Enable subsitution inside libcall only for REG, - SUBREG, MEM. - * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. - -Fri Jul 24 14:22:39 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (am33 movqi, movhi, movsi, movsf): Handle CONST_DOUBLE. - -Fri Jul 24 11:17:04 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm - strings as the insertion of USER_LABEL_PREFIX. - * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a - valid code. - * config/arm/thumb.md: Use %_ as a prefix to gcc library function - calls. - -Thu Jul 23 13:16:29 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. - -Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * expr.c (expand_expr): Expand RETURN_EXPR. - -Wed Jul 22 21:43:54 1998 Stan Cox <scox@cygnus.com> - - * longlong.h (count_leading_zeros): Sparclite scan instruction was - being invoked incorrectly. - - * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation. - * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): - Add -pg support. - * i386/win32.h: New file. Hybrid mingw32.h/cygwin32.h configuration. - -Wed Jul 22 18:40:00 1998 Catherine Moore <clm@cygnus.com> - - * dwarf2out.c (output_aranges): Call stripattributes - for TEXT_SECTION references. - (output_line_info): Likewise. - -Tue Jul 21 23:42:34 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (print_operand_address): Handle POST_INC. - * mn10300.h (HAVE_POST_INCREMENT): Define. - (GO_IF_LEGITIMATE_ADDRESS): Handle POST_INC for the am33. - (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is mode dependent. - -Mon Jul 20 16:40:31 1998 Dave Brolley <brolley@cygnus.com> - - * cpplib.c (cpp_handle_option): More fixes for cplusplus_comments. - -Mon Jul 20 15:09:54 1998 Ken Raeburn <raeburn@cygnus.com> - - * mips.md (attribute "type"): Add new value "frsqrt". - (function unit specs): Handle frsqrt like fsqrt, except if r5400. - (sqrtsf2+1 et al): Use frsqrt type for rsqrt.FMT instructions. - (function unit "memory"): Treat r5400 like r5000. - (function unit "imuldiv"): Set costs for r5400. Delete a - duplicated entry. - (function units "adder", "divide"): Don't use for r5400. - (function unit "alu_5400"): Don't use for imul or idiv - instructions; do use for arith, darith, move, icmp, nop. Adjust - issue delay. - -Fri Jul 17 11:16:19 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (LIMIT_RELOAD_CLASS): Refine for the am33. - - * mn10300.h (zero_ereg): Delete declaration for unused variable. - (MODES_TIEABLE_P): Provide am33 aware version. - - * mn10300.md (movqi, movhi): Provide am33 versions which allow - ADDRESS_REGS to be used as destinations. - (umulsidi3, mulsidi3): Do not accept immediate operands. - - * mn10300.h (HARD_REGNO_MODE_OK): Address registers can hold HImode - and QImode objects on the am33. - -Thu Jul 16 14:50:58 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movXX): Use movu when profitable. - - * mn10300.c (expand_epilogue): Fix thinko in previous change. - - * mn10300.md (umulsidi3, mulsidi3): New am33 patterns. - - * mn10300.c (count_tst_insns): Count tst insns for EXTENDED_REGS - as well as clearing an EXTENDED_REGS register. - (expand_prologue): Set up zero_areg and zero_dreg if we can optimzie - comparisons or sets of EXTENDED_REGS against zero. - (output_tst): Heandle optimizing for extended regs. - - * mn10300.h (REGISTER_MOVE_COST): Define appropriately for the am33. - - * mn10300.md (am33 logicals): New patterns. - (am33 zero and sign extension): New patterns. - (am33 shifts): New patterns. - -Tue Jul 14 14:15:30 1998 Nick Clifton <nickc@cygnus.com> - - * gcc.c: Remove ANSI-C ism from --help code. - - * toplev.c: Support --help with USE_CPPLIB. - -Tue Jul 14 10:57:43 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (am33 mulsi): New pattern. - (am33 tstqi, tsthi): New patterns. - - * mn10300.md (movXX patterns): Optimize loading zero into an - extended register if we know a data or address register already - has the value zero in it. - - * mn10300.h (TARGET_SWITCHES): Turn off -mmult-bug for the am33. - - * mn10300.md (subsi3, am33 version): Fix code generation when - operands0 and operands2 are the same register. - -Mon Jul 13 21:45:17 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (expand_builtin): Do not warn for targets which do not - support CONSTANT_P_RTX. Temporary patch until next merge - -Mon Jul 13 11:10:15 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850ea.h (EXTRA_SWITCHES): Document these switches. - * config/v850/v850e.h (EXTRA_SWITCHES): Document these switches. - * config/v850/v850.h (TARGET_OPTIONS, TARGET_SWITCHES, - EXTRA_SWITCHES): Document these switches. - - * cccp.c (main): Add support for parsing --help. - (display_help): New function: display command line switches. - - * cpplib.c (cpp_handle_option): Add support for parsing --help. - (display_help): New function: display command line switches. - - * gcc.c (main): Add support for parsing --help, and passing it on - to the sub-processes invoked by gcc. - (display_help): New function: display comman line switches. - - * tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document - 'description' field added to structure. - - * toplev.c: Add support for parsing --help. - Add documentation strings to command line option tables. - (display_help): New function: display comman line switches. - -Mon Jul 13 11:18:58 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c: Add rough am33 support. - * mn10300.md: Likewise. - * mn10300.h: Likewise. - * t-mn10300: Likewise. -Mon Jul 13 11:10:15 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/semi.h (USER_LABEL_PREFIX): Change to "" to match - FSF sources. - - * config/arm/tcoff.h (USER_LABEL_PREFIX): Change to "" to match - change to semi.h - -Sun Jul 12 13:34:23 1998 Michael Meissner <meissner@cygnus.com> - - * jump.c (duplicate_loop_exit_test): Fix typo in last change. - -Sat Jul 11 02:59:08 1998 Richard Earnshaw <rearnsha@arm.com> - - * arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile - and structure attribute flags to MEMs generated. - (splits for sign-extended HI & QI mode from memory): Also propagate - the volatile flag. - -Sat Jul 11 01:18:33 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (duplicate_loop_exit_test): Avoid out of bounds access - to the reg info virtual array. - -Thu Jul 9 10:49:08 1998 Jeffrey A Law (law@cygnus.com) - - * arm/tpe.h (JUMP_TABLES_IN_TEXT_SECTION): Define with a value. - * i386/i386elf.h: Likewise. - * i386/rtemself.h: Likewise. - * z8k/z8k.h: Likewise. - - * Makefile.in: Fix minor merge lossage which caused incorrect - dependencies. - -Wed Jul 8 23:37:59 1998 Jeffrey A Law (law@cygnus.com) - - * d30v.h (STDIO_PROTO): Likewise. - -Wed Jul 8 16:53:37 1998 Jim Wilson <wilson@cygnus.com> - - * range.c (range_print_flags): Add static to definition. - -1998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com> - - * config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function - stubs. - - * toplev.c (lang_options): Add -Wlong-long, -Wno-long-long - options. - * c-decl.c (warn_long_long): Define. - (c_decode_option): Parse -Wlong-long, -Wno-long-long options. - (grokdeclarator): Add flag `warn_long_long' as guard for - warning "ANSI C does not support `long long'". - * invoke.texi: Add description of options -Wlong-long, - -Wno-long-long. - * gcc.1: The same as above. - -Wed Jul 8 09:45:22 1998 Nick Clifton <nickc@cygnus.com> - - * haifa-sched.c (debug_ready_list): Remove static qualifier, so - that it can be called from machine back ends. - - * libgcc1-test.c: Remove duplicate prototype for memcpy(). - - * config/arm/arm.c (arm_override_options): Reference 'flags' - rather than 'tune_flags'. - -Wed Jul 8 03:22:22 1998 Jeffrey A Law (law@cygnus.com) - - * Merge from egcs snapshot 19980707. - -Mon Jul 6 09:32:14 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/tpe.h (REDO_SECTION_INFO_P): Define. - - * config/arm/thumb.c (thumb_override_options): Warn about and - ignore '-fpic'. - - * config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default - version. - -Thu Jul 2 08:11:00 1998 Catherine Moore <clm@cygnus.com> - - * haifa-sched.c (alloc_EXPR_LIST): Change to use - unused_expr_list. - -Mon Jun 29 12:15:00 Catherine Moore <clm@cygnus.com> - - * config/sparc/lb1spc.asm (.udiv, .div) Replace routines. - -1998-06-26 Michael Meissner <meissner@cygnus.com> - - * m32r.h (LOOP_TEST_THRESHOLD): If loop unrolling and saving - space, don't suppress moving the loop test from top to the bottom. - -Thu Jun 25 09:53:24 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM, - noticed by grahams@rcp.co.uk. - -Wed Jun 24 10:39:32 1998 Stan Cox <scox@cygnus.com> - - * sparc.md (sethi_di_sp32): Swap registers if we are - compiling in little endian mode. - - * sparc.h (CPP_ENDIAN_SPEC, LIBGCC2_WORDS_BIG_ENDIAN): Check for - mlittle-endian-data in addition to mlittle-endian. - - * sp86x-aout.h (ASM_SPEC, SUBTARGET_SWITCHES): -mlittle-endian-data - - * ginclude/va-d30v.h (va_arg): struct args < 4 bytes must be offset. - -Tue Jun 23 21:27:27 1998 Ken Raeburn <raeburn@cygnus.com> - - * reload.c (find_reloads): Fix check for failure to match any - alternative, to account for Mar 26 change in initial "best" cost. - -Tue Jun 23 14:20:57 1998 Nick Clifton <nickc@cygnus.com> - - * config/d30v/d30v.h (FIXED_REGISTERS): Remove reference to return - address register. - (CALL_USED_REGISTERS): Ditto. - -Tue Jun 23 16:42:29 1998 Dave Brolley <brolley@cygnus.com> - - * cpplib.c (open_include_file_name): Mark as local change. - -Mon Jun 22 10:30:00 1998 Catherine Moore <clm@cygnus.com> - - * varasm.c (assemble_variable): Emit alignment warning. - -Sat Jun 20 04:10:50 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (MD_SCHED_{VARIABLE_ISSUE,INIT,REORDER}): Define. - (m32r_sched_{variable_issue,init,reorder}): Add declarations. - - * m32r.c (m32r_sched_odd_word_p): New global to keep track of - whether we are on an odd word or even word. - (m32r_adjust_priority): Optimize slightly. - (m32r_sched_init): New function to zero m32r_sched_odd_word_p. - (m32r_sched_reorder): New function to reorder the ready list based - the instruction sizes. Move long instructions before short ones, - except if we are on an odd word boundary. - (m32r_sched_variable_issue): New function to keep track of whether - we are on an odd byte boundary. - -Fri Jun 19 21:33:21 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (whole file): Align \'s to column 72. - (*_SPEC): Use EXTRA_SPECS to move cpu dependent stuff down into - {ASM,CPP,CC1,LINK,STARTFILE,ENDFILE}_CPU_SPEC. - (TARGET_SWITCHES): Add support for new debug switches - -missue-rate={1,2} and -mbranch-cost={1,2}. Add - SUBTARGET_SWITCHES for cpu dependent switches. - (TARGET_OPTIONS): Add support cpu dependent switches. - (MULTILIB_DEFAULTS): Ditto. - (OVERRIDE_OPTIONS): Ditto. - (OPTIMIZATION_OPTIONS): Ditto. - ({FIXED,CALL_USED}_REGISTERS): Ditto. - (REG_ALLOC_ORDER): Ditto. - (CONDITIONAL_REGISTER_USAGE): Ditto. - (REG_CLASS_CONTENTS): Ditto. - (GPR_P): Ditto. - ({,ADDITIONAL_}REGISTER_NAMES): Ditto. - (M32R_MODEL_DEFAULT): Wrap inside #ifndef/#endif. - (SDATA_DEFAULT_SIZE): Ditto. - (IN_RANGE_P): New macro to test if something is in a range of - values. - (INT8_P): Recode to use IN_RANGE_P. - ({,CMP_,U}INT16_P): Ditto. - (UPPER16_P): Ditto. - (UINT{24,5}_P): Ditto. - (INT32_P): Ditto. - (INVERTED_SIGNED_8BIT): Ditto. - ({ACCUM,CARRY}_P): New macros for accumulator and carry. - (BRANCH_COST): Set to 1/2 depending on -mbranch-cost={1,2}. - (ENABLE_REGMOVE_PASS): Delete, no longer used. - (ASM_OUTPUT_ALIGNED_LOCAL): Ditto. - (ISSUE_RATE): Set to 1/2 depending on -missue-rate={1,2}. - (DWARF2_DEBUGGING_INFO): Define. - (whole file): Group most of the m32rx specific stuff together - using the subtarget support. Define the various specs - {ASM,CPP,CC1,LINK,STARTFILE,ENDFILE}_CPU_SPEC. - -Thu Jun 18 09:03:31 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c ({internal_,}reg_or_eq_int16_operand): New functions to - return whether an operand is suitable for == operations. - (gen_compare): Remove support for handling S<op> operations, just - handle branches. - - * m32r.h (PREDICATE_CODES): Add new predicate functions. - ({internal_,}reg_or_eq_int16_operand ): Add declarations. - (gen_compare): Remove argument saying to produce S<op> operations - instead of a branch. - - * m32r.md (b{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Update - gen_compare calls. - (s{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Recode to present the - operation as a distinct RTL until splitting so that the - optimization passes generate better code. - (abs{df,sf}2): Define, so that we can make fabs(-0.0) return 0.0. - -Wed Jun 17 15:12:00 1998 Catherine Moore <clm@cygnus.com> - - * reload1.c (spill_hard_reg): Check mode of register when - spilling from scratch_list. - -Wed Jun 17 14:55:50 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG - addressing when one register is the frame pointer or stack - pointer. Disallow REG+CONST addressing in HI mode. - - * config/arm/arm.h (CANONICALIZE_COMPARISON): Preserve OP1. - -Tue Jun 16 20:50:37 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (m32r_adjust_{cost,priority}): New functions to adjust - scheduler cost and priority information. - (direct_return): Don't test -mdebug any more. - - * m32r.h (m32r_adjust_{cost,priority}): Declare. - (m32r_address_cost): Correctly spell function in prototype. - (ADJUST_{COST,PRIORITY}): Define to call the appropriate function. - -Tue Jun 16 17:36:35 1998 Dave Brolley <brolley@cygnus.com> - - * cpplib.h (__GCC_CPPLIB__): Add header guard. - * cpplib.c (open_include_file_name): New function. - (open_include_file): Call open_include_file_name instead of open. -Fri Jun 12 00:03:23 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (OPTIMIZATION_OPTIONS): Turn on -fregmove if -O1. If - -Os, turn on -fomit-frame-pointer and -fno-strength-reduce. - (CAN_DEBUG_WITHOUT_FP): No longer define, so we don't confuse the - debugger. - (TARGET_FLAGS): Remove -mold-compare support. - - * m32r.c (gen_compare): Rewrite to be more general. Take an - extra argument to give the output register for scc operations or - the label to jump to for bcc operations. Fix typo for LEU & GTU - of constants. - (internal_reg_or_{cmp_int16,uint16}_operand): Same as the function - without the internal_ prefix, except mode argument is an enum. - (internal_reg_or_zero_operand): Ditto. - - * m32r.h (gen_compare): Add new argument to prototype. - (PRESERVE_DEATH_INFO_REGNO_P): Delete, no longer needed after - June 11 regmove.c change. - - * m32r.md (cmp_eqsi_insn): Make a define_expand instead of a - define_insn. - (cmp_ne_small_const_insn): Delete, no longer used. - (b{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Rework for gen_compare - changes. - (s{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Define patterns. - (movsicc): Delete, no longer used. - (peephole): Delete, no longer needed after June 11 regmove.c - change. - -Tue Jun 9 21:05:45 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (override_options): Handle -mschedule=8000. - (pa_reorg): Do not try to combine independent instructions into - a single instruction for the PA8000. - * pa.h (processor_type): Add PROCESSOR_8000. - * pa.md: Add "8000" cpu attribute. Treat the PA8000 like the - PA7100 temporarily. - -Tue Jun 9 14:13:37 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/t-v850 (TCFLAGS): Add assembler options to catch - signed and unsigned overflows. - - * config/v850/lib1funcs.asm (__callt_save_interrupt): Use 'addi - 16,sp,sp' instead of 'add 16,sp'. Patch cpurtesy of: Biomedin - <glctr@abc.it> - -Thu Jun 4 15:14:04 1998 Michael Meissner <meissner@cygnus.com> - - * jump.c (duplicate_loop_exit_test): Remove May 19th code not - duplicating the loop exit test at the bottom, but keep the part - about testing LOOP_TEST_THRESHOLD. - - * m32r.h (LOOP_TEST_THRESHOLD): If -Os, use 2 instead of 30. - (PREDICATE_CODES): Add extend_operand. - (extend_operand): Declare. - - * m32r.c (extend_operand): New function to return true if an - operand can be used in a sign/zero_extend operation. - - * m32r.md (zero_extend*): Use extend_operand. - (sign_extend{qisi,qihi,hisi}2): Rewrite so sign_extend is - available until after reload is done. - -Tue Jun 2 00:54:38 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): Only perform block merging for - -O2 and above. - -Mon Jun 1 03:44:03 1998 Catherine Moore <clm@cygnus.com> - - * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define. - - * varasm.c (assemble_variable): Augment alignment warning. - -Sun May 31 01:02:05 1998 Jeffrey A Law (law@cygnus.com) - - * gcc.c (process_command): Use concat instead of effectively - open-coding it. - -Sun May 31 10:37:49 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (gen_compare): Fix last change to swap GT/GTU/LE/LEU - arguments if both are registers. Don't convert GTU/LEU of a - negative value into GEU/LTU. - -Fri May 29 14:31:39 1998 Ken Raeburn <raeburn@cygnus.com> - Jeff Law <law@cygnus.com> - - (mulsi_r5400, macc_r5400): Delete patterns. - (muls_r5400, msac_r5400, muls_r5400_di): Rewrite. - (macc_r5400_di, msac_r5400_di): Likewise. - (xmulsi3_highpart_5400): Likewise. - (xmulsi3_neg_highpart_5400): Likewise. - -Fri May 29 13:36:17 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (gen_compare): Cmpui takes a signed 16 bit value, not - unsigned. - * m32r.md (cmp_ltusi_insn): Ditto. - - * m32r.c (gen_compare): If the first compare value is not a - register, force it into a register. If the second compare value - is not a register or a constant integer, force it into a - register. - - * m32r.md (cmpsi): Only allow registers or signed 16 bit values - for the second argument. - -Thu May 28 13:20:25 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (pre_delete): Fix code to determine the mode of - the reaching pseudo register. - (hoist_code): Likewise. - - * Simple block merging optimization pass. - * flow.c (merge_blocks): New function. - * toplev.c (rest_of_compilation): Call merge_blocks after each - jump optimization pass, except for the last one. - -Thu May 28 13:47:18 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (gen_compare): Convert LE/LEU/GT/GTU of a constant into - LT/LTU/GE/GEU with the constant+1. - -Wed May 27 09:04:36 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon. - -Tue May 26 20:38:27 1998 Stan Cox <scox@equinox.cygnus.com> - - * config/sparc/sp86x-elf.h (TARGET_LITTLE_ENDIAN_DATA): New. - (INIT_SECTION_ASM_OP): Undef so __main constructor invocation is used. - -Tue May 26 14:48:50 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (v850_output_aligned_bss): use - ASM_DECALRE_OBJECT_NAME if it is available. - -Tue May 26 09:28:07 1998 Catherine Moore <clm@cygnus.com> - - * config/sparc/lb1spc.asm (.urem, .rem) Replace routines. - -Fri May 22 23:46:37 1998 Jim Wilson <wilson@cygnus.com> - - * gcc.c (make_relative_prefix): Call obstack_1grow with '\0'. - -Thu May 21 14:37:15 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/README-interworking: Add note about ignoring linker - warning message when --support-old-code is used. - -Tue May 19 18:28:47 1998 Jim Wilson <wilson@cygnus.com> - - * config/generic/xm-generic (NO_STAB_H): Delete reference. - * config/d30v/xm-d30v.h (NO_STAB_H): Delete reference. - -Tue May 19 15:38:48 1998 Michael Meissner <meissner@cygnus.com> - - * stmt.c (expand_end_loop): Instead of using a hard-coded 30 for - the number of insns, use LOOP_TEST_THRESHOLD. - - * jump.c (duplicate_loop_exit_test): Use LOOP_TEST_THRESHOLD for - decided how many instructions to duplicate. If optimizing for - space, don't duplicate the loop exit test at the top. - - * expr.h (LOOP_TEST_THRESHOLD): Define if not defined. - - * tm.texi (LOOP_TEST_THRESHOLD): Document. - -Tue May 19 10:27:15 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (compute_preds_succs): Do not split more than one edge - into any basic block. - -Mon May 18 15:28:26 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/lib1funcs.asm: Add .text pseudo op to start of - ___udivsi3. - - * config/v850/lib1funcs.asm: Fix .size pseudo ops to use three - underscores for the prefixes to the names of the maths functions. - - * dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE for - parameters passed in memory. Add a comment explaining why. - -Mon May 18 00:21:53 1998 Jeffrey A Law (law@cygnus.com) - - * c-lex.c (check_newline): Remove old CYGNUS LOCAL code that - is no longer needed. - -Sun May 17 20:57:01 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (PREDICATE_CODES): Add seth_add3_operand, int8_operand, - and uint16_operand. - (int8_operand): Add declaration. - - * m32r.c (int8_operand): Return true if value is a signed 8 bit - constant int. - (m32r_expand_prologue): Remove duplicate setting of gmask. - (direct_return): Return true if we have no stack to allow jmp lr - to be used as a return. - - * m32r.md ({and,ior,xor}si3): If -Os and we have a 8 bit immediate - constant and different registers, emit two short instructions - instead of a long instruction. Also don't accept integer - arguments greater than 16 bits initially, to give those values a - chance at CSE. - (return): Add return pattern. - -Fri May 15 19:30:29 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.md (mov{si,sf}_insn): Correct attributes for load/store - with inc/dec. - -Fri May 15 14:55:45 1998 Nick Clifton <nickc@cygnus.com> - - * dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a - function parameter passed in memory. - -Thu May 14 14:37:26 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/README-interworking: Document dlltool support for - interworking. - - * config/arm/lib1thumb.asm: Add labels to help disassembler - distinguish between ARM and Thumb code. - Fix _interwork_call_via_ip. - * config/arm/lib1funcs.asm: Ditto. - -Thu May 14 13:27:07 1998 Jim Wilson <wilson@cygnus.com> - - * global.c (undo_live_range): Use PUT_REG_NOTE_KIND instead of - REG_NOTE_KIND. - -Wed May 13 22:45:53 1998 Michael Meissner <meissner@cygnus.com> - Jeff Law <law@cygnus.com. - - * Makefile.in (OBJS): Add range.o - (clean rules): Delete *.range. - (toplev.o): Depend on range.h. - (dbxout.o, global.o): Likewise. - (final.o): Depend on bitmap.h, range.h, except.h, and function.h. - (range.o): Add dependencies. - * range.c, range.h: New files. - * dbxout.c: Include "range.h". - (range_current, range_max_number_for_parms): New static variables. - (range_max_number): New global variable. - (dbxout_symbol_name): New argument "live_range_p". All callers - changed. - (dbxout_live_range_alias): New function. - (dbxout_live_range_parms): Likewise. - (dbxout_symbol_location): Call dbxout_live_range_alias. - (dbxout_symbol_name): If live_range_p, then output LRS - debug symbol extensions. - (dbxout_parms): Handle LRS optimizations. - (dbxout_really_begin_function): Keep track of range_max_number at - function entry (so we can properly output ranges for parameters). - (dbxout_function): Call dbxout_live_range_parms. - * final.c: Include "function.h", "range.h", "bitmap.h" and "obstack.h". - (block_nodes): New global. - (rtl_obstack, range_max_number): Declare. - (struct block_seq): New structure for blocks. - (pending_blocks): Now a struct block_seq *. - (init_final): Fix allocation of pending_blocks. - (final): Call identify_blocks to get the block nodes for the current - function. When finished, free space allocated for block_nodes. - (final_scan_insn): Handle LRS notes. Various fixes for change in - pending_blocks structure. - * flags.h (flag_live_range): Declare new variable. - (flag_live_range_gdb, flag_live_range_scope): Likewise. - * function.c (reorder_blocks): Revamp to track blocks created by LRS - optimizations. - * global.c: Inlcude obstack.h and range.h. - (global_obstack): New obstack for use in global allocation. - (reg_live_ranges, save_reg_renumber): New static variables. - (CLEAR_CONFLICT): Define. - (record_conflits): Now accepts int* as first argument. All callers - changed. - (undo_live_range, global_init): New functions. - (global_alloc): Split into two functions, global_init and global_alloc. - Try to allocate LRS copies first, then fall back to normal allocation - order. If some LRS copies did not get hard regs, then undo some live - ranges. Free the global_obstack when finished. - (global_init): Allow multiple calls. Only allocate space on the first - call. Allocate stuff on the global obstack instead of with alloca. - (allocno_compare): Handle LRS copies. - (global_conflicts): block_start_allocnos is an int * now. Allocate - space on the global obstack. Remove conflicts between LRS copies from - LRS base registers. - (find_reg): For an LRS copy, try to allocate it in the same reg as - another LRS copy. - * output.h: Declare block_nodes. - * regclass.c ({pref,alt}class_buffer): New statics to hold buffers - allocate_reg_info allocates for {pref,alt}class_buffer. - (regclass): Use {pref,alt}class_buffer to initialize - {pref,alt}class. - (allocate_reg_info): Allocate buffers for the preferred and alter - register class information. - * regs.h (struct reg_n_info): Add fields for LRS info. - (REG_N_RANGE_CANDIDATE, REG_N_RANGE_COPY_P): New accessor macros. - * toplev.c: Include range.h. - (live_range_dump, flag_live_range): New variables. - (flag_live_range_gdb, flag_live_range_scope): Likewise. - (live_range_time): Likewise. - (f_options): Add LRS options. - (compile_file): Call init_live_range. Clean the .range dump file - if necessary. Print time spent in LRS. - (rest_of_compilation): Optimize live ranges if requested. Free basic - block info and regsets when finished with the current function. Also - call init_live_range to reinitialize LRS. - (main): Perform LRS dumps is requested. - -Tue May 12 23:23:25 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (move_src_operand): Reject loads with PRE_INC or PRE_DEC. - (move_dest_operand): Reject stores with POST_INC. - (m32r_print_operand): Change abort calls into fatal_insn calls. - (m32r_print_operand_address): Ditto. - - * m32r.h (EXTRA_CONSTRAINT): 'S' is now for stores with PRE_INC or - PRE_DEC. 'U' is now for loads with POST_INC. - (HAVE_PRE_{INC,DEC}REMENT): Define. - (HAVE_POST_INCREMENT): Ditto. - (PUSH_POP_P): Delete, no longer used. - (LOAD_POSTINC_P): Recognize loads with POST_INC. - (STORE_PREINC_PREDEC_P): Recognize stores with PRE_{INC,DEC}. - (GO_IF_LEGITIMATE_ADDRESS): Recognize loads with POST_INC, and - stores with PRE_{INC,DEC}. - - * m32r.md (movsi_insn): Separate loads with POST_INC from stores - with PRE_{DEC,INC}. Emit push/pop if pushing/poping stack - pointer. - (movsf_insn): Allow memory loads to have POST_INC, and stores to - have PRE_{DEC,INC}. - -Mon May 11 11:34:17 1998 Jeffrey A Law (law@cygnus.com) - - * egcs -> gcc merge. See ChangeLog.egcs & ChangeLog.12 for - details. - - * lcm.c (compute_latein, compute_firstin): Fix thinko. - -Mon May 11 07:33:27 1998 Michael Meissner <meissner@cygnus.com> - - * lcm.c (compute_latein): Fix typo. - -Mon May 11 02:36:22 1998 Jeffrey A Law (law@cygnus.com) - - * lcm.c (compute_latein): Avoid mis-compiling latein for the - last block. - (compute_firstout): Similarly, but for the first block. - (compute_isoinout): Solve as a backward dataflow problem. - (compute_rev_isoinout): Simlarly, but solve as a forward problem. - -Sun May 10 11:03:03 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (compute_hash_table): Delete unused "f" parameter. - (compute_set_hash_table, compute_expr_hash_table): Likewise. - (one_classic_gcse_pass, one_cprop_pass): Likewise. - (one_pre_gcse_pass, one_code_hoisting_pass): Likewise. - (hoist_code): Remove unused variable "changed". - (insert_insn_end_bb): Wrap "note" parameter inside #ifdef HAVE_cc0. - (mark_call): Remove unused "pat" parameter. - - * lcm.c (compute*): Remove either s_preds or s_succs, whichever - is unused. All callers changed. - (compute_rev_redundant, compute_rev_optimal): Delete unused functions. - (pre_lcm, pre_rev_lcm): Delete unused parameter "comp". - * basic-block.h (pre_lcm, pre_rev_lcm): Update declarations. - * gcse.c (compute_pre_data): Corresponding changes. - -Thu May 7 16:20:59 1998 Gavin Koch <gavin@cygnus.com> - - * config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL, - ASM_OUTPUT_WEAK_ALIAS): Define. - * config/mips/elf64.h: Same. - * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, - ASM_WEAKEN_LABEL): Removed. - -Tue May 5 14:28:53 1998 Jim Wilson <wilson@cygnus.com> - - * elfb4100.h, elfb4300.h, elfb4320.h, elfb4900.h, elfb5000.h, - elfl4100.h, elfl4300.h, elfl4320.h, elfl4900.h, elfl5000.h - (MULTILIB_DEFAULTS): Move definition after elf64.h include. - -Mon May 4 09:00:56 1998 Jeffrey A Law (law@cygnus.com) - - * lcm.c: New file with generic partial redundancy elimination - and lazy code motion support. - * Makefile.in: Corresponding changes. - * basic-block.h (pre_lcm): Declare. - (pre_rev_lcm): Likewise. - * gcse.c: Remove various static variables no longer needed. - (alloc_pre_mem): Only allocate space for local properties, redundant, - optimal and a scratch bitmap. - (free_pre_mem): Simlarly. - (compute_pre_antinout): Deleted. - (compute_pre_earlyinout, compute_pre_delayinout): Likewise. - (compute_pre_latein, compute_pre_isoinout): Likewise. - (compute_pre_optimal, compute_pre_redundant): Likewise. - (compute_pre_data): Call pre_lcm. - -Thu Apr 30 16:07:02 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.h (ASM_OUTPUT_ALIGNED_BSS): Call v850_output_aligned_bss(). - * config/v850/v850.c (v850_output_aligned_bss): New - function. Preserve alignment information when emitting symbols - into the bss section. - (v850_output_bss): Function removed. - -Wed Apr 29 16:18:40 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (ASM_OUTPUT_SOURCE_LINE): Use .debugsym instead of - creating a label if -Os to prevent extra NOPs. - -Tue Apr 28 11:10:10 1998 Mark Alexander <marka@cygnus.com> - - * config/sparc/t-sp86x (MULTILIB_OPTIONS): Remove big-endian. - (MULTILIB_DIRNAMES): Add "little" for brevity. - -Mon Apr 27 17:07:09 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Use - frame_pointer_rtx rather than FRAME_POINTER_REGNUM. - -Sun Apr 26 17:04:11 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.c (conditional_move_operand): Silence a debug message. - -Fri Apr 24 06:46:40 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame - pointer as second register in REG+REG pair. - -Thu Apr 23 12:13:36 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (expand_prologue): Only generate callt using - insns if TARGET_DISABLE_CALLT is not defined. - -Wed Apr 22 17:53:04 1998 Stan Cox <scox@equinox.cygnus.com> - - * sparc.c (sparc_override_options): New option name -mcpu=sparclite86x. - -Wed Apr 22 17:23:07 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (TARGET_M32R): New macro. - (PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn. - - * m32r.c ({small,long}_insn): New predicates. - - * m32r.md (insn_size): New attribute. - ({,rev_}branch_insn): Add .s qualifier to branches believed to be - short. - (m32r): New attribute. - (small_sequence,long_group): Add initial framework for instruction - grouping. - - * m32r.h (ASM_SPEC): Add -O to the assembler arguments if we are - compiling for the m32rx and optimizing. - - * m32r.md (m32rx{,_pipeline}): New attributes. - (small_parallel): Add initial framework for instruction grouping. - - * rtl.def (GROUP_{PARALLEL,SEQUENCE}: Add new insns. - -Mon Apr 20 13:31:17 1998 Dave Brolley <brolley@cygnus.com> - - * stmt.c (mark_seen_cases): Needs to be external linkage for Chill. - -Mon Apr 20 07:37:49 1998 Michael Meissner <meissner@cygnus.com> - - * i386.c: Include expr.h to get the change_address prototype - declared. - -Sat Apr 18 23:37:59 1998 Stan Cox <scox@equinox.cygnus.com> - - * configure.in: Added sparc86x. - * configure: Regenerate. - - * sparc.h (TARGET_CPU_{hypersparc,sparc86x}, - PROCESSOR_{HYPERSPARC,SPARC86X}): Added for sparc86x/hypersparc. - (ADJUST_COST): Call hypersparc_adjust_cost. - - * sparc.c (hypersparc_adjust_cost): Added for sparc86x/hypersparc. - - * sparc.md (define_function_unit): Added for sparc86x/hypersparc. - (define_attr "cpu"): Added hypersparc/sparc86x. - - * (t-sp86x, sp86x-elf.h, sp86x-aout.h: Added for sparc86x. - -Thu Apr 16 22:38:23 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (dump_sbitmap, dump_sbitmap_vector): Move these into - flow.c. - -Tue Apr 14 14:10:43 1998 Dave Brolley <brolley@cygnus.com> - - * toplev.c: Call init_parse using new interface. - - * c-lex.c (init_parse): Now returns char* containing the filename. -Mon Apr 13 11:31:29 1998 Michael Meissner <meissner@cygnus.com> - - * m32r.h (HAIFA_P): Define as 1/0 depending on whether the Haifa - scheduler was selected. - (ISSUE_RATE): Define as 2. - - * configure.in (enable_haifa): Switch m32r to Haifa by default. - * configure: Regenerate. - -Sun Apr 12 13:35:49 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (gcse_main): Run code hoisting if optimizing for - code space. - -1998-04-10 Ken Raeburn <raeburn@cygnus.com> - - * config/arm/thumb.h, config/d10v/d10v.h, - config/generic/generic.h, config/z8k/z8k.h (MEMORY_MOVE_COST): - Updated to show extra args, currently ignored. See my 16-Mar - change. - * config/d30v/d30v.h (MEMORY_MOVE_COST): Likewise. - -Fri Apr 10 15:38:21 1998 Jim Wilson <wilson@cygnus.com> - - * config/i386/i386elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Delete. - * configure.in (i[34567]86-*-elf*): Add ${xm_file} and xm-svr4.h to - xm_file list. - -Fri Apr 10 10:42:42 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Add trailing newline. - - * rtl.c (read_skip_spaces): Prevent infinite loops upon - encountering unterminated comments. - - * config/arm/aout.c: Add CYGNUS LOCAL markers. - * config/arm/riscix.h: Add CYGNUS LOCAL markers. - * config/arm/riscix1-1.h: Add CYGNUS LOCAL markers. - * config/arm/semiaof.h: Add CYGNUS LOCAL markers. - * config/arm/t-linux: Add CYGNUS LOCAL markers. - * config/arm/thumb.h: Remove CYGNUS LOCAL markers. - * config/arm/thumb.c: Remove CYGNUS LOCAL markers. - -Thu Apr 9 16:26:53 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Add CYGNUS LOCAL markers. - * config/m32r/m32r.c: Add CYGNUS LOCAL markers. - * config/m32r/m32r.h: Add CYGNUS LOCAL markers. - * config/m32r/t-m32r: Add CYGNUS LOCAL markers. - - * config/arm/README-interworking: Added note about DLLs not - working. - - * config/arm/arm.c: Add CYGNUS LOCAL markers. - * config/arm/arm.h: Add CYGNUS LOCAL markers. - * config/arm/arm.md: Add CYGNUS LOCAL markers. - * config/arm/coff.h: Add CYGNUS LOCAL markers. - * config/arm/semi.h: Add CYGNUS LOCAL markers. - * config/arm/t-bare: Add CYGNUS LOCAL markers. - * config/arm/lib1funcs.asm: Add CYGNUS LOCAL markers. - -Thu Apr 9 12:57:05 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition. - * tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO, - COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros. - (build_expr_wfl): New prototype declaration. - * tree.c (build_expr_wfl): New function, to build - EXPR_WITH_FILE_LOCATION nodes. - (copy_node): Don't zero TREE_CHAIN if copying a - EXPR_WITH_FILE_LOCATION node. - * print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION. - * expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION. - -Thu Apr 9 12:14:40 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (loop_optimize): Call init_alias_analysis immediately after - reg_scan. - - * configure.in: Kill mpw. - * config.sub: Likewise. - -Wed Apr 8 15:08:57 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in m68010-adobe-scout): Delete obsolete local config. - (m68k-apollo-sysv, m68k-tandem-*, m68*-netx,vxworks*): Likewise. - (mips-ncd-elf*, powerpc-*-netware*): Likewise. - * config.sub: Kill "scout" references. - - * configure.in: Completely disable objc unless --enable-objc is - specified at configure time. - * objc/Make-lang.in: Remove CYGNUS LOCAL hack. - - * configure.in: Reorganize local configurations to make - merging with egcs easier. - - * gcc.c (process_command): putenv only takes a single argument. - - * gcse.c: Include "system.h". - * Makefile.in (gcse.o): Add missing dependencies. - -Mon Apr 6 11:29:34 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (pre_expr_reaches_here): First argument is the starting - basic block; add new arg check_pre_comp. All callers changed. - If !check_pre_comp, then do not require the expression to be set - in the starting basic block. - (pre_insert): Do not insert an expression if it does not reach - any deleted occurences of the expression. - -Mon Apr 6 07:17:52 1998 Catherine Moore <clm@cygnus.com> - - * combine.c (can_combine_p): Include successor in volatile test. - -Fri Apr 3 15:59:35 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (run_jump_opt_after_gcse): Renamed from gcse_jumps_altered. - All references changed. - (gcse_main): If we split any edges, then run jump optimizations - after gcse. - -Wed Apr 1 17:06:19 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.h: Add super interworking support. - * config/arm/thumb.c: Add super interworking support. - * config/arm/thumb.md: Add super interworking support. - * config/arm/tpe.h: Add super interworking support. - * config/arm/lib1funcs.asm: Add interworking support. - * config/arm/lib1thumb.asm: Add super interworking support. - * config/arm/t-pe: Add super interworking support. - * config/arm/t-semi: Add interworking support. - * config/arm/t-thumb: Add interworking support. - * config/arm/t-pe-thumb: Add super interworking support. - * config/arm/README-interworking: New file. - -Mon Mar 30 09:22:16 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (rotrsi3): Use GEN_INT instead of gen_rtx (CONST_INT). - (rotrdi3): Likewise. - -Mon Mar 30 12:27:21 1998 Nick Clifton <nickc@cygnus.com> - - * invoke.texi (ARM Options): Removed spurious @end table marker. - - * config/m32r/m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint - to perfoirm the equivalent of a negated 'I' constraint. - - * config/m32r/m32r.md (cmp_ne_small_const_insn): Use 'S' - constriant rather than 'I' since the value is negated. - -Sat Mar 28 13:03:22 1998 Nick Clifton <nickc@cygnus.com> - - * invoke.texi: Document more ARM and Thumb options. - -Fri Mar 27 16:15:29 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (make_relative_prefix): If argv[0] does not contain a - directory separator, look up the name in the PATH environment - variable. - -Wed Mar 25 13:50:16 1998 Dave Brolley <brolley@cygnus.com> - - * cccp.c: Restore chill support. - -Tue Mar 24 10:44:11 1998 Nick Clifton <nickc@cygnus.com> - - * Makefile.in (gcov$(exeext)): Support .exe extension to gcov. - - * collect2.c (find_a_file): Add debugging. - (find_a_file): Test for win32 style absolute paths if - DIR_SERPARATOR is defined. - (prefix_from_string): Add debugging. - (main): Test for debug command line switch at start of program - execution. - (main): Use GET_ENVIRONMENT rather than getenv(). - -Sun Mar 22 16:15:45 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/tpe.h (ASM_DECLARE_FUNCTION_NAME): Include - .thumb_func directive in function header. - -Fri Mar 20 09:32:46 1998 Nick Clifton <nickc@cygnus.com> - - * objc/Make-lang.in: Apply patch from Geoff Noer (noer@cygnus.com) - to allow cygwin32 native toolchain builds via canadian crosses. - - * objc/Makefile.in: Apply patch from Geoff Noer (noer@cygnus.com) - to allow cygwin32 native toolchain builds via canadian crosses. - - * Makefile.in: Apply patch from Geoff Noer (noer@cygnus.com) to - allow cygwin32 native toolchain builds via canadian crosses. - - * config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon. - -Fri Mar 20 09:27:06 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (CPP_SPEC): Finish last change. - -Thu Mar 19 22:33:35 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa1.1-hp-hpux11): Use pa-hpux11.h - (hppa1.0-hp-hpux11): Likewise. - * pa/pa-hpux11.h: New file. - - * pa.h (CPP_SPEC): If !ansi, then define __STDC_EXT__. - -Thu Mar 19 13:45:28 1998 Nick Clifton <nickc@cygnus.com> - - * config/i386/xm-cygwin32.h (GET_ENVIRONMENT): Patch resubmitted, - since it appears to have been lost in the shuffle.... - - * config/arm/thumb.c (arm_valid_machine_decl_attribute): Copied - from arm.c for thumb-pe builds. - - * config/arm/t-pe-thumb: New file: makefile fragement for thumb-pe - build. - - * config/arm/tpe.h: New file: PE support for thumb-pe build. - -Thu Mar 19 09:14:19 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Handle hpux11 just like hpux10 for now. - -Wed Mar 18 11:21:16 1998 Nick Clifton <nickc@cygnus.com> - - * config/i386/xm-cygwin32.h (GET_ENVIRONMENT): Do not call - cygwin32_posix_path_list_p with a NULL or empty path. - -Wed Mar 18 09:33:13 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (arm_valid_machine_decl_attribute): New - function for thumb-pe support. - - * configure.in: Add thumb-pe target. - - * configure: Add thumb-pe target. - - * config.sub (maybe_os): Add thumb-pe target. - -Mon Mar 16 16:24:45 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (make_relative_prefix): If directory is the same as - expected, or there are no directory separators, don't create a - relative pathname. - -Fri Mar 13 17:55:04 1998 Michael Meissner <meissner@cygnus.com> - - * i386/cygwin32.h (GET_ENVIRONMENT): Delete from here. - * i386/xm-cygwin32.h (GET_ENVIRONMENT): Move to here. - Initialize variable if not a posix style pathname. - -Fri Mar 13 17:54:04 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (DIR_UP): If not defined, define as "..". - (standard_bindir_prefix): New static, holds target location to - install binaries. - (split_directories): New function to split a filename into - component directories. - (free_split_directories): New function, release memory allocated - by split_directories. - (make_relative_prefix): New function, make a relative pathname if - the compiler is not in the expected location. - (process_command): Use GET_ENVIRONMENT to read GCC_EXEC_PREFIX. - If GCC_EXEC_PREFIX was not specified, see if we can figure out an - appropriate prefix from argv[0]. - - * Makefile.in (gcc.o): Define STANDARD_BINDIR_PREFIX. - -Fri Mar 13 11:49:49 1998 Stan Cox <scox@equinox.cygnus.com> - - * config/i386/cygwin32.h (GET_ENVIRONMENT): Defined to allow win32 - style environment paths. - -Thu Mar 12 16:22:03 1998 Stan Cox <scox@cygnus.com> - - * sparc/liteelf.h (MULDI3,DIVDI3,UDIVDI3,MODDI3,UMODDI3)_LIBCALL: - Undefine solaris library routines. - -Thu Mar 12 13:21:38 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md (movsi, movhi, movhi_insn_arch4, - movho_insn_littleend, movhi_insn_bigend): Use - ok_integer_or_other(). - (movhi_insn_arch4): Swap order of 2nd and 3rd alternatives to - avoid problem in reload. - - * config/arm/arm.c: (find_barrier_insn): Return barrier insn, if - found, rather than insn after the barrier. - (ok_integer_of_other): New function, to avoid duplication in md - file. - - * config/arm/arm.h: Add prototype for ok_integer_or_other(). - -Wed Mar 11 14:28:30 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (compile_file): Print out gcse time. - - * toplev.c (rest_of_compilation): Only rerun jump optimizations - after gcse if gcse changes some jumps. - -Wed Mar 11 15:21:52 1998 Michael Meissner <meissner@cygnus.com> - - * haifa-sched.c (schedule_insns): Remove debug statement. - -Wed Mar 11 15:44:54 1998 Gavin Koch <gavin@cygnus.com> - - * mips/mips.h (MASK_DEBUG_E): Redefine to zero. - -Tue Mar 10 12:20:57 1998 Stan Cox <scox@rtl.cygnus.com> - - * sparc/liteelf.h (PREFERRED_DEBUGGING_TYPE): Make dwarf2 - the default debugging type. - -Mon Mar 9 16:29:34 1998 Michael Meissner <meissner@cygnus.com> - - * expr.c (expand_builtin): Add __builtin_expect code back in. - * rs6000.c (ccr_bit,print_operand): Ditto. - -Mon Mar 9 14:24:27 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * t-sh (MULTILIB_OPTIONS): Add m4-single-only. - (MULTILIB_MATCHES): Remove m3e=m4-single-only. - -Sun Mar 8 23:46:29 1998 Stan Cox <scox@equinox.cygnus.com> - - * configure, configure.in (sparclite-*-elf*): Added. - * sparc/liteelf.h: New file. - -Sat Mar 7 13:59:47 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * d10v.h, generic.h (LOOP_ALIGN): Fix comment delimiter. - -Fri Mar 6 21:28:45 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * d10v.h, generic.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY. - * arm/thumb.h, i386/i386elf.h, m68k/st2000.h, z8k.h: Likewise. - * d30v.h: Likewise. - -Fri Mar 6 11:35:50 1998 Dave Brolley <brolley@cygnus.com> - - * gcse.c (hoist_code): Should return void. - -Thu Mar 5 23:45:08 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c: Bring back old classic gcse pass. - (gcse_main): If optimizing for code size perform classic gcse - instead of partial redundancy elimination. - -Thu Mar 5 09:09:08 1998 Catherine Moore <clm@cygnus.com> - * config/v850/v850.h: Add option -mdisable-callt. - * config/v850/v850.md: Don't generate callt instructions if - -mdisable-callt has been specified. - -Thu Mar 5 09:09:08 1998 Catherine Moore <clm@cygnus.com> - - * config/v850/lib1funcs.asm (___udivsi3): Don't use r5. - * config/v850/t-v850: Add -mno-app-regs to target build flags. - * config/v850/v850.h: Change STATIC_CHAIN_REGNUM from 5 to 20. - Add option -mno-app-regs. Add CONDITIONAL_REGISTER_USAGE macro. - -Thu Mar 5 14:39:45 1998 Fred Fish <fnf@cygnus.com> - - * config/d30v/d30v.h: Fix prematurely terminated comment. - -Tue Mar 3 09:12:04 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c: Do not generate a <name>.dbr file when dumping RTL - unless DELAY_SLOTS is defined. - -Mon Mar 2 20:06:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> - - * generic.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): - replace with: - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER). - * d10v.h: Likewise. - * d30v.h: Likewise. - -Wed Feb 25 10:02:19 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md (movsfcc, movdfcc): Cope with constants that - cannot be placed into instructions. Patch supplied by Richard - Earnshaw. - -Sun Feb 22 22:05:33 1998 Jeffrey A Law (law@cygnus.com) - - * Use lazy code motion to drive placement partially redundant - expressions and register copies. - * First implementation of code hoisting pass. Currently - disabled due to code expansion. - * gcse.c: (compute_{cprop,pre}_local_properties): Combined into a - single function. Accepts additional arguments as needed. All - references updated. - (cprop_insn, cprop, one_cprop_pass): New arg to determine if jumps - can/should be altered. All references changed appropriately. - (insert_insn_end_bb): Renamed from pre_insert_insn. - (alloc_code_hoist_mem): New function for code hoisting. - (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise. - (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise. - (hoist_code, one_code_hoisting_pass): Likewise. - (gcse_main): Put check for setjmp at start of gcse_main and - generally clean up initialization. Do not allow cprop to - alter jumps until the last pass. Add appropriate calls to - code hoisting support (currently #ifdef'd out). - (compute_local_properties): New function for computing local - properties for pre, cprop and code hoisting. - (cprop_insn): Only cprop into jumps if alter_jumps is nonzero. - (pre_av{invout}, pre_pav{in,out}, pre_pp{in,out}): Delete old pre - variables. - (pre_early{in,out}, pre_delay{in,out}, pre_latein): New variables - for lazy code motion. - (pre_iso{in,out}, pre_optimal, pre_redundant, temp_bitmap): Likewise. - (pre_reundant_insns): Likewise. - (alloc_pre_mem, free_pre_mem): Updated for changes in pre variables. - (compute_pre_data): Likewise. - (compute_pre_avinout, compute_pre_ppinout): Deleted. - (compute_pre_earlyinout): New function for lazy code motion. - (compute_pre_delayinout, compute_pre_latein): Likewise. - (compute_pre_isoinout, compute_pre_optimal): Likewise. - (compute_pre_redundant): Likewise. - (pre_insert): Rework to only insert expressions at optimal - computation points as determined by lazy code motion. - (pre_insert_copies): Rework to only copy expressions where - necessary for lazy code motion. - (pre_delete): Rework to delete insns which are redundant at - not optimally placed. - (hoist_antloc, hoist_transp, hoist_comp): Variables for code hoisting. - (hoist_vbe{in,out}, hoist_exprs): Likewise. - (dominators, post_dominators): Likewise. - -Fri Feb 20 15:42:56 1998 Gavin Koch <gavin@cygnus.com> - - * mips/t-vr4100 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - Add mno-mips16 and mips16. - * mips/elfb4100.h, mips/elfl4100.h (MULTILIB_DEFAULTS) : - Add "mno-mips16". - -Fri Feb 13 14:55:13 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Add peephole optimisation to cope with - PR14189, pending a better solution. - - * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Define in - order to allow peephole optimisation to work. - -Fri Feb 13 02:57:19 1998 J"orn Rennecke <amylaar@cygnus.com> - - * d10v.h (DEFAULT_PCC_STRUCT_RETURN) Define as 0. - -Wed Feb 11 09:07:22 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h (ASM_SPEC): Pass on - --nmo-warn-explicit-parallel-conflicts to the assembler. -Mon Feb 9 09:53:41 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (v850_output_local): Call - ASM_OUTPUT_ALIGNED_DECL_COMMON rather than ASM_OUTPUT_DECL_LOCAL - (which is not defined). - - * varasm.c (assemble_variable): Ditto. - -Fri Feb 6 14:55:28 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850ea.h: Remove multilibing and add -mUS-bit-set - command line option. - - * config/v850/v850e.h: Remove multilibing. - - * config/v850/v850.c (ep_memory_offset): Support new command line - options -msmall-sld and -mUS-bit-set to allow fine tuning of the - SLD.[BH] offsets. - * config/v850/v850.h: Ditto. - - * config/v850/t-v850: Remove multilibing and replace with single, - universal build using -mv850 and -msmall-sld command line options. - - -Fri Feb 6 09:19:12 1998 Gavin Koch <gavin@cygnus.com> - - * mips/elfb4100.h (DWARF2_DEBUGGING_INFO,PREFERRED_DEBUGGING_TYPE, - SUBTARGET_ASM_DEBUGGING_SPEC): Define. - * mips/elfl4100.h (DWARF2_DEBUGGING_INFO,PREFERRED_DEBUGGING_TYPE, - SUBTARGET_ASM_DEBUGGING_SPEC): Same. - -Fri Feb 6 02:53:28 1998 J"orn Rennecke <amylaar@cygnus.com> - - * d10v.h (MUST_PASS_IN_STACK): Define. - - * d10v/libgcc1.asm (__cmpdi): Fix bug in last change. - - * d10v.md (movhi): Don't call force_reg while reloading. - (movsi): Handle case when reload asks us to use an uneven reg pair. - - Undo this change: - * va-d10v.h (__va_start_common): Add DELTA argument to subtract - from register number. - (va_start): Add DELTA argument to __va_start_common call, stdarg - passes 0, varargs needs to ignore last argument. - -Tue Feb 3 15:45:55 1998 Gavin Koch <gavin@cygnus.com> - - * mips/elfb4100.h (SUBTARGET_CPP_SPEC): Insure that __mips64 - is defined. - * mips/elfl4100.h (SUBTARGET_CPP_SPEC): Same. - -Sat Jan 31 02:18:52 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (gcse_main): Fix minor typo in critial edge splitting code. - (pre_insert_insn): Correctly handle inserting code before a switch - table. - -Thu Jan 29 18:29:30 1998 Ian Lance Taylor <ian@cygnus.com> - - * config/d30v/d30v.h (LINK_SPEC): Never specify -h. - -Wed Jan 28 16:43:49 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.c zero_and_one, emit_cond_move): Add support - for MVFC instruction. - - * config/m32r/m32r.h: Ditto. - - * config/m32r/m32r.md: Ditto. - -Mon Jan 26 11:20:55 1998 Gavin Koch <gavin@cygnus.com> - - * configure.in (mips64vr4100-*-elf*,mips64vr4100el-*-elf*): - Add abi64.h to the tm_file list. - * configure: Rebuild. - * mips/elfb4100.h (MIPS_ABI_DEFAULT,SUBTARGET_CPP_SIZE_SPEC, - SUBTARGET_CPP_SPEC): Define. - * mips/elfl4100.h (MIPS_ABI_DEFAULT,SUBTARGET_CPP_SIZE_SPEC, - SUBTARGET_CPP_SPEC): Define. - -Sun Jan 25 21:46:07 1998 Michael Meissner <meissner@cygnus.com> - - * va-d10v.h (__va_start_common): Add DELTA argument to subtract - from register number. - (va_start): Add DELTA argument to __va_start_common call, stdarg - passes 0, varargs needs to ignore last argument. - - * d10v.c (emit_move_word): Use %. to emit code to access the 0 - register, not hardcoded r0. - - * d10v.md (movqi_internal): Use %. to emit code to access the 0 - register, not hardcoded r0. - -Fri Jan 23 13:50:42 1998 Jeffrey A Law (law@cygnus.com) - - * recog.c (validate_replace_src): Allow replacement in JUMP_INSNs. - * toplev.c (rest_of_compilation): Run loop optimizations after - gcse if gcse alters any jumps. - (flag_classic_gcse): Remove flag and all references. - * gcse.c: Clean up some comments, remove classic GCSE code, - variables, comments, etc. - (gcse_jumps_altered): New variable. - (gcse_main): Returns an int now. Fix return statements. Return - zero normally, return nonzero if gcse modifies any jumps. - (compute_preds_succs): Make sure last insn in the block is a - JUMP_INSN before passing it to condjump_p. - (cprop_insn): Handle constant/copy propagation into JUMP_INSNs. - * jump.c (jump_optimize): Delete (set (pc) (pc)) insns created - by gcse. - -Fri Jan 23 09:39:36 1998 Nick Clifton <nickc@cygnus.com> - - * toplev.c: Add -dM command line option to dump RTL after the - machine dependent reorganisation pass, if there is one. - Reorganise RTL dump code, so that only one file handle is - needed. - - * configure.in: Fix indentation of CYGNUS LOCAL markers. - - * configure: Add support for thumb-coff. - - * toplev.c (lang_options): Add -Wunknown-pragmas and - -Wno-unknown-pragmas. - -Fri Jan 23 11:20:19 1998 Michael Meissner <meissner@cygnus.com> - - * d10v.c (override_options): Use GPR_EVEN_P. - (override_options): Change to new ABI where args are in r0..r3, - r14 is zero register. Change names of register class to be - ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead of - R13_REGS. - (print_operand{,_memory_reference}): Ditto. - (d10v_stack_info): Ditto. - (function_{pro,epi}logue): Ditto. - (emit_move_4words): Make refers_to_regno_p be type correct. - - * d10v.h (ARG_{FIRST,LAST}): Change to new ABI where args are in - r0..r3, r14 is zero register. Change names of register class to - be ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead - of R13_REGS. - (GPR_ZERO_REGNUM): Ditto. - (SAVE_{ACC,GUARD}_REGNUM): Ditto. - ({FIXED,CALL_USED}_REGISTERS): Ditto. - (REG_ALLOC_ORDER): Ditto. - (reg_class): Ditto. - (REG_CLASS_{NAMES,CONTENTS}): Ditto. - (STATIC_CHAIN_REGNUM): Ditto. - ({FUNCTION,LIBCALL}_VALUE): Ditto. - (FUNCTION_VALUE_REGNO_P): Ditto. - - * d10v.md (32-bit shifts): Change to new ABI where args are in - r0..r3, r14 is zero register. Change names of register class to - be ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead - of R13_REGS. - - * d10v/libgcc1.asm: Change to new ABI where args are in r0..r3, - r14 is zero register. Change names of register class to be - ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead of - R13_REGS. - - * d10v/scrt0.asm (_start): Zero r14, not r0. - -Fri Jan 23 11:20:19 1998 J"orn Rennecke <amylaar@cygnus.com> - - * d10v.h (CUMULATIVE_ARGS): Now a typedefed struct. - * d10v.c (init_cumulative_args): Access the appropriate members of cum. - (function_arg, setup_incoming_varargs): Likewise. - (function_arg_advance): When an argument doesn't fit in registers, - retain the remaining argument regsiters for possible use by - subsequent arguments. - * va-d10v.h (__va_list_tag): New three members. - (__va_start_common, va_arg): Update. - - * d10v.c (function_arg_boundary): Alignment for arguments starts - with an arguemnt size of four bytes. - (function_arg): No special case for structures > 4 bytes, if they - fit fully in the remaining argument passing registers, they are - passed in registers. - When an argument would exceed the remaining argument passing - registers, pass it fully on the stack. - (function_arg_advance): Likewise. In the latter case, mark remaining - argument passing registers as used. - (function_arg_partial_nregs): Remove. - * d10v.h (FUNCTION_ARG_PARTIAL_NREGS): Don't define. - - * va-d10v.h (enum __type_class): Remove. - (va_arg): Update. - -Thu Jan 22 10:45:40 1998 Nick Clifton <nickc@cygnus.com> - - * configure.in: Add thumb-*-coff target. - - * config/arm/thumb.c (number_of_first_bit_set): Only use inline - attribute when compiling with GCC. - - * config/arm/thumb.md (mulsi): Fix PR 14644. Patch supplied by - Jim Wilson. - - * config/arm/arm.c (output_func_epilogue): Fix PR14671 by changing - the logic for determining when stack unwinding code is needed. - -Wed Jan 21 11:01:49 1998 Nick Clifton <nickc@cygnus.com> - - * invoke.texi (M32R/D/X Options): Add documentation of -mcond-exec - option. - -Wed Jan 21 08:28:07 1998 Jeffrey A Law (law@cygnus.com) - - (gcse_main): If the first call to compute_preds_succs splits edges, - then call find_basic_blocks again and make another call to - compute_preds_succs. - -Tue Jan 20 16:01:03 1998 Anthony Green <green@cygnus.com> - - * invoke.texi (Optimize Options): -Os documentation. - * tm.texi (Run-time Target): New argument to OPTIMIZATION_OPTIONS. - * flags.h: New flag (optimize_size). - * toplev.c (main): Parse -Os option and set optimize_space - accordingly. - * gcc.c (default_compilers), cp/lang-specs.h, ch/lang-specs.h: Define - __OPTIMIZE_SIZE__ when compiling with -Os. - * config/dsp16xx/dsp16xx.h, config/i386/i386.h, - config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h, - config/v850/v850.h, config/d10v/d10v.h, config/generic/generic.h - config/sh/sh.h (OPTIMIZATION_OPTIONS): New SIZE argument to macro. - * config/i386/i386.c (optimization_options): Accept new SIZE argument. - -Tue Jan 20 16:01:03 1998 Anthony Green <green@cygnus.com> - - * config/d30v/d30v.h (OPTIMIZATION_OPTIONS): New SIZE argument to - macro. - -Tue Jan 20 14:13:06 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Add support for conditional execution of - simple unary operators. Add support for conditional execution of - addtion of small constants. - - * config/m32r/m32r.h: Ditto. - - * config/m32r/m32r.c (generate_comparison, - unary_parallel_operator, emit_unary_cond_exec): Ditto. - -Tue Jan 20 12:46:37 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (FOLLOW_BACK_EDGES): Enable. - - * gcse.c (dump_occr_list, replace_reg): Likewise. - (alloc_gcse_mem): Delete unused variables. - (compute_kill_rd, can_disregard_other_sets): Likewise. - (find_avail_set, pre_insert_copies, pre_gcse): Likewise. - (want_to_gcse_p): Add default case for switch statement. - (oprs_unchanged_p, hash_expr_1, compute_transp): Likewise. - (expr_equiv_p, oprs_not_set_p, expr_killed_p): Likewise. - (find_used_regs): Likewise. - (insert_expr_in_table): Initialize some variables to avoid - some gcc -Wall warnings. - (insert_set_in_table, handle_avail_expr): Likewise. - (handle_avail_expr): Remove some #if 0 code. - -Mon Jan 19 16:48:43 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Add conditional execution patterns for - simple binary operations. - * config/m32r/m32r.h: Add support for conditional execution - patterns. - * config/m32r/m32r.c (conditional_compare_operand, - binary_parallel_operator, emit_code_exec): New functions to - implement conditional execution of simple binary operations. - -Fri Jan 16 14:30:29 1998 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md: PR 14644: Fix multiply patterns to prevent - contraint matching failure when all three registers are the same. - -Thu Jan 15 16:41:18 1998 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h (PREDICATE_CODES): Add declaration of machine - specific predicates. - * config/m32r/m32r.md: Add patterns for simple conditional move - instructions. - - * config/m32r/m32r.c (gen_compare): Add support for parallel - instructions. - (reg_or_zero_operand): New function. - (conditional_move_operand): New function. - (carry_compare_operator): New function. - (emit_S_clause): New function. - (emit_cond_move): New function. - -Tue Jan 13 17:41:10 1998 Jim Wilson <wilson@cygnus.com> - - * cse.c (invalidate): Remove CYGNUS LOCAL patch. - -Mon Jan 12 16:35:04 1998 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.md: Removed duplicate entries. - -Mon Jan 5 17:22:09 1998 Michael Meissner <meissner@cygnus.com> - - * d30v.h (CONST_COSTS): Define as an empty instead of not defining - it. - -Wed Dec 31 12:30:03 1997 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.c (call_address_operand): Remove acceptance of - constant values and addresses held in registers. - -Wed Dec 31 12:26:53 1997 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.md: Add patterns for the CMPZ and CMPEQ - instructions. -Tue Dec 30 16:19:47 1997 Michael Meissner <meissner@cygnus.com> - - * d30v.c (d30v_return_addr_rtx): New static variable. - (override_options): Use SPECIAL_REG_P, not ARG_PTR_FIRST. - (d30v_stack_info): Note where link pointer is stored. - (d30v_function_epilogue): Reset d30v_return_addr_rtx. - (d30v_legitimate_address_p): Correctly test r1 for r0+r1 - addressing. - (d30v_emit_cond_move): Emit code to do a conditional move. If the - move is just the same as setcc or setcc of the reverse condition, - just emit that code instead. - (d30v_return_addr): Insert code to copy return address into a - temporary before saving it. - - * d30v.h (SPECIAL_REG_*): Delete ARG_PTR* macros, replace with - SPECIAL_REG_* macros. - ({FIXED,CALL_USED}_REGISTERS): Make registers easier to add new - registers, by starting each group on a separate line. - (REG_ALLOC_ORDER): Ditto. - (REGISTER_NAMES): Ditto. - (MASK_WORD3): Convert a register number into bitmask for 3rd word - of REG_CLASS_CONTENTS. - (*_MASK): Use MASK_WORD3 for each of the special/cr/flag/accum - registers. - (REG_CLASS_CONTENTS): Use the *_MASK macros. - ({,INCOMING_}RETURN_ADDR_RTX): Define. - (INCOMING_FRAME_SP_OFFSET): Ditto. - (ELIMINABLE_REGS): Simplify somewhat. - (d30v_emit_cond_move): Add declaration. - (d30v_return_addr): Ditto. - - * d30v.md (mov{qi,hi,si}cc): Use d30v_emit_cond_move to generate - conditional moves. - -Mon Dec 29 14:09:01 1997 Jim Wilson <wilson@cygnus.com> - - * configure.in (enable_fortran): Delete one too many '[' ']' levels. - -Mon Dec 29 14:38:50 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips/t-vr4100 (LIB2FUNCS_EXTRA): Add mips16.S. - * mips/t-vr4300: Likewise. - -Mon Dec 29 11:39:10 1997 Felix Lee (flee@cygnus.com) - - * gcse.c (pre_insert_insn): Deref maybe_cc0_setter only if non-NULL. - -Mon Dec 29 11:11:51 1997 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.h: Add support for second accumulator register. - - * config/m32r/m32r.c: Add support for second accumulator register. - -Mon Dec 29 11:06:16 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in: Disable fortran by default. - -Tue Dec 16 23:08:00 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * d10v.h (REG_OK_FOR_BASE_P): Fix non-strict definition. - - * d10v.c (function_arg): Don't pass DImode partially in registers. - (function_arg_pass_by_reference): Don't pass structs / unions by - reference. - -Tue Dec 16 20:12:39 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * d10v.c (emit_comparison): Use CONSTANT_P to detect constant op1. - Check it for being a CONST_INT before using its value. - Use plus_constant_for_output to add to it. - Fix bug in output template for >= 32767. - -Tue Dec 16 11:17:12 1997 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (arm_override_options): Force apcs-32 mode if - interworking is specified. - -Fri Dec 12 18:54:23 1997 Per Bothner <bothner@cygnus.com> - - * expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod. - -Fri Dec 12 23:09:29 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * d10v.c (override_options): Fix regno_reg_class for registers - 1, 7, 9, 11 and 15. - - (d10v_subword): Fix word_num calculation for SUBREG. - - (emit_subtract): Carry is ! Borrow. - - (emit_comparison): Handle CONSTs. - -Fri Dec 12 07:37:49 1997 Michael Meissner <meissner@cygnus.com> - - * gcse.c (compute_can_copy): If AVOID_CCMODE_COPIES, don't bother - calling emit_insn/recog to set if we can copy CCmodes. - -Wed Dec 10 11:33:38 1997 Jeffrey A Law (law@cygnus.com) - - * gcse.c (compute_can_copy): Don't allow copies for CCmode values - if AVOID_CCMODE_COPIES is defined. - * mips.h (AVOID_CCMODE_COPIES): Define. - -Mon Dec 8 17:12:47 1997 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (all_architectures): Removed processor field. - -Wed Dec 3 10:44:25 1997 Gavin Koch <gavin@cygnus.com> - - * mips/mips.md (muldi3_r4000): Broaden the output template - and attribute assignments to handle three operand dmult; - rename to muldi3_internal2. - (muldi3): Call the new muldi3_internal2 for R4000, and - any GENERATE_MULT3 chip. - -Tue Dec 2 09:20:50 1997 Nick Clifton <nickc@cygnus.com> - - * config/arm/lib1funcs.asm: Add error condition if - __USER_LABEL_PREFIX__ is not defined. - - * config.sub: Add support for Thumb target. - - * configure: Add support for Thumb target. - -Tue Nov 25 19:10:56 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * Makefile.in (fixproto-defines): New rule. - (fixhdr.ready): Depend on fixproto-defines. - (mostlyclean): Remove fixproto-defines. - (install-common): Don't create a temporary file, install the - ready-built fixproto-defines. - -Tue Nov 25 11:22:11 1997 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c: Brought up to date with respect to devo and - branch. - * config/arm/aout.h: Ditto. - * config/arm/arm.h: Ditto. - * config/arm/arm.md: Ditto. - * config/arm/coff.h: Ditto. - * config/arm/lib1funcs.asm: Ditto. - * config/arm/pe.h: Ditto. - * config/arm/riscix.h: Ditto. - * config/arm/riscix1-1.h: Ditto. - * config/arm/semi.h: Ditto. - * config/arm/semiaof.h: Ditto. - * config/arm/t-bare: Ditto. - * config/arm/t-linux: Ditto. - * config/arm/aout.h: Ditto. - * config/arm/lib1thumb.asm: Imported from branch. - * config/arm/t-thumb: Imported from branch. - * config/arm/thumb.c: Imported from branch. - * config/arm/thumb.h: Imported from branch. - * config/arm/tcoff.h: Imported from branch. - * config/arm/thumb.md: Imported from branch. - * config/arm/xm-thumb.h: Imported from branch. - -Mon Nov 24 17:19:39 1997 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md: Updated with changes in devo. - * config/arm/arm.c: Updated with changes in devo. - * config/arm/arm.h: Updated with changes in devo. - * config/arm/aout.h: Updated with changes in devo. - * config/arm/semi.h: Updated with changes in devo. - -Sat Nov 22 15:32:00 1997 Nick Clifton <nickc@cygnus.com> - - * gcc.c (SWITCH_CURTAILS_COMPILATION): Definition. - (DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c. - (process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan - command line arguments to see if an executable is not being - created, and if so - do not append the suffix. - - * tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new - driver macro. - -Sat Nov 22 01:01:41 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (AR_FOR_TARGET): Clean up "-e" confustion with - program_transform_name. - (RANLIB_FOR_TARGET): Likewise. - -Tue Nov 11 22:38:02 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (nonzero_bits): For paradoxical subregs, take - LOAD_EXTENDED_OP into account. - -Mon Nov 10 20:53:11 1997 Gavin Koch <gavin@cygnus.com> - - * config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit - is available elsewhere. - - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/ChangeLog.lib b/gcc/ChangeLog.lib deleted file mode 100755 index 7e03e76..0000000 --- a/gcc/ChangeLog.lib +++ /dev/null @@ -1,3781 +0,0 @@ -Wed Jan 1 17:54:47 1998 J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * pexecute.c (pexecute, [_WIN32]): Yes, mask termstat for mingw32. - -Mon Dec 22 18:59:34 1997 Pascal Obry <pascal.obry@der.edfgdf.fr> - - * pexecute.c (pexecute, [_WIN32]): For mingw32, don't mask termstat. - -Sat Dec 13 09:39:32 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * pexecute.c (fix_argv): Remove outer "const" from return type. - (pexecute): errmsg_arg is pointer to const. - -Sat Nov 29 08:06:34 1997 Jan-Jaap van der Heijden <janjaap@student.utwente.nl> - - * pexecute.c: Include signal.h for _WIN32. - -Wed Nov 26 17:31:44 1997 J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * pexecute.c (pwait): For _WIN32, distinguish whether child process - caught fatal signal or reported nonzero exit code. - -Wed Nov 26 13:24:30 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * choose-temp.c (sys/file.h): Include if HAVE_SYS_FILE_H. - -Mon Nov 17 09:07:52 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * choose-temp.c (choose_temp_base): Remove incorrect code for VMS. - -Sun Oct 19 10:34:11 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * pexecute.c (fix_argv, pexecute): Cast result of xmalloc. - -Sat Oct 18 16:55:18 1997 Jason Merrill <jason@yorick.cygnus.com> - - * obstack.h (obstack_empty_p): New macro. - -Mon Sep 29 12:27:59 1997 Ian Lance Taylor <ian@cygnus.com> - - * pexecute.c: Use spawn if __CYGWIN32__. - -Wed Sep 10 15:14:20 1997 Jeffrey A Law (law@cygnus.com) - - * config.sub: Use "amigaos" instread of "amigados". Still - recognize "amigados" for backward compatability. - -Tue Sep 9 18:23:57 1997 Doug Evans <dje@cygnus.com> - - * config.sub: Recognize ARC cpu. - -1997-09-09 Richard Kenner Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config.guess (alpha): Replace CPU-determining program with one - that's more precise and also supports pca56 and ev6. - Handle those in returned name. - -1997-09-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config.guess (alpha:OSF1:*:*): For V4.0, get the letter suffix. - -1997-09-05 Jeffrey A Law (law@cygnus.com) - - * config.sub: Recognize v850-elf. - -1997-08-26 Richard Henderson <rth@cygnus.com> - - * config.guess (*:Linux:*:*): Recognize alpha-linux-gnulibc1. - -1997-08-17 Jeff Law <law@cygnus.com> - - * config.sub: Recognize tx39/r3900. - -1997-08-08 Paul Eggert <eggert@twinsun.com> - - * choose-temp.c, pexecute.c: - Include "config.h" first, as per autoconf manual. - -1997-08-01 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * config.sub: Translate -svr4 to -sysv4 and -unixware to -sysv4.2uw. - -1997-07-26 Per Bothner <bothner@pogo.gnu.ai.mit.edu> - - * config.guess: Recognize SunOS 3.x. - From Tom Schmidt <tschmidt@micron.com>. - -1997-07-22 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * getloadavg.c: Test `__unix' along with `unix'. - -Sun Jul 20 20:58:43 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config.guess (alpha*): Run program to see if ev4, ev5, or ev56. - * config.sub (alphaev5, alphaev56): New CPU types. - -Wed Jul 16 10:46:14 1997 Richard Earnshaw <rearnsha@cambridge.arm.com> - - * config.guess (arm32:NetBSD:*:*): Canonicalize to normal format - for ARM systems. - -Tue Jul 15 09:13:05 1997 Jim Meyering <meyering@psilocin.gnu.ai.mit.edu> - - * getloadavg.c: Add comment describing HAVE_PSTAT_GETDYNAMIC. - -1997-07-14 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * config.guess (pc:*:*:*): New entry, for DJGPP. - -1997-07-07 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * config.guess (i?86:UNIX_SV:4.2MP:2.*): Recognize unixware. - -1997-07-06 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * getloadavg.c [OSF_ALPHA]: - Include sys/mbuf.h, sys/socket.h, net/route.h. - -1997-06-30 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * getloadavg.c [__GNU__]: Test for not NeXT. - -Fri Jun 27 15:20:29 1997 Scott Christley <scottc@net-community.com> - - * config.sub (-mingw32*): New OS. - * config.guess (i*:MINGW*:*): New case. - * pexecute.c (fix_argv): New function. - (pexecute): Win32 but not Cygwin32 needs its arguments fixed. - Add underscore to cwait function call. - -Mon Jun 23 10:51:53 1997 Jeffrey A Law (law@cygnus.com) - - * config.sub (mn10200): Recognize new basic machine. - -1997-06-22 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * config.guess: Add mips-sony-newsos6. - -1997-06-09 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * config.guess: Use i?86, not i.86. - Don't test /usr/lib/ldscripts; instead, test whether ld_help_string - does not contain "supported emulations". - Use a case statement to distinguish systems when there IS - "supported emulations". - -1997-06-07 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config.guess (*:Linux:*:*): Always use ${VENDOR}. - -1997-06-05 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * config.guess (*:Linux:*:*): Don't test for elf_i.86 or m68kelf. - - * config.guess (*:Linux:*:*): Recognize sparclinux. - Don't recognize UNAME_MACHINE = sparc. - Make the sample program check for libc version - and handle various machine types. - - * config.sub (mipsel*-linux* and mips*-linux*): - Set `os' to -linux-gnu directly, don't go via -linux. - -Mon May 26 12:46:25 1997 Paul Eggert <eggert@twinsun.com> - - * getopt.c, getopt.h, getopt1.c: Moved to libc-copy/copies. - -Wed May 7 15:17:59 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> - - * config.guess: Recognize either / or - as a machine/suptype - separator from uname -m to cope with older systems that have the - older uname. Suggested by Michael Snyder (msnyder@cygnus.com). - -Mon May 5 18:05:35 1997 Per Bothner <bothner@frobnitz.gnu.ai.mit.edu> - - * config.guess: CLIX patch from Thomas Dickey via - urs@akk.uni-karlsruhe.de (Urs Janssen). - -Thu Apr 17 13:59:13 1997 Per Fogelstrom <pefo@openbsd.org> - - * config.guess: Fixes for MIPS OpenBSD systems. - -Fri Apr 11 16:39:06 1997 Niklas Hallqvist <niklas@appli.se> - - * config.guess: Recognize OpenBSD systems correctly. - -Mon Mar 24 15:38:37 1997 Doug Evans <dje@cygnus.com> - - * config.sub: Recognize m32r and mn10300 cpus. - -Sat Feb 22 22:36:44 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * getloadavg.c [__GNU__] (NeXT, host_self): New macros, to make - hurd systems use the NeXT code for getting load averages. - -Sat Feb 15 19:03:48 1997 Geoffrey Noer (noer@cygnus.com) - - * pexecute.c: Remove special cases for cygwin32. - (pwait): Remove local definition of `pid'. - -Wed Jan 15 22:36:59 1997 Jim Meyering <meyering@kropotkin.gnu.ai.mit.edu> - - * getloadavg.c [hpux && HAVE_PSTAT_GETDYNAMIC]: Use HPUX's - pstat_getdynamic function so we don't need any special privileges - to determine load averages. Patch from Kaveh Ghazi, based on a - sample implementation from Richard J. Rauenzahn. - Indent cpp-directives to reflect nesting. - -Tue Jan 7 14:29:37 1997 David J. MacKenzie <djm@geech.gnu.ai.mit.edu> - - * config.guess: Add hppa1.1-hitachi-hiuxmpp support, passed along - by rms. - -Sat Jan 4 22:43:21 1997 Miles Bader <miles@gnu.ai.mit.edu> - - * config.guess (*:GNU:*:*): The machine/subtype separator printed - by uname -m is now `-', not '/'. - -Fri Jan 3 08:38:49 1997 Philippe De Muyter (phdm@info.ucl.ac.be) - - * config.guess (M68*:*:R3V[567]*:*): Use uppercase 'M'. - -Tue Dec 31 15:51:13 1996 Ian Lance Taylor <ian@cygnus.com> - - * config.guess, config.sub: Recognize mips-unknown-linux-gnu. - -Tue Dec 10 09:44:57 1996 Paul Eggert <eggert@twinsun.com> - - * choose-temp.c (choose_temp_base): Don't dump core if TMPDIR is empty. - - * choose-temp.c (try): Insist that temp dir be searchable. - -Sat Dec 7 17:48:02 1996 Dave Love <d.love@dl.ac.uk> - - * config.guess (PENTIUM:CPunix:4.0*:*): New case. - -Sun Nov 24 19:41:31 1996 Per Bothner <bothner@frobnitz.gnu.ai.mit.edu> - - * config.guess: Recognize machten. - From Eric W. Bates <ericx@vineyard.net>. - -Sun Nov 24 18:17:53 1996 Dave Love <d.love@dl.ac.uk> - - * config.guess (PENTIUM:CPunix:4.0*:*): New case. - -Fri Nov 22 11:44:13 1996 David J. MacKenzie <djm@geech.gnu.ai.mit.edu> - - * config.guess: Undo accidental lowercasing in - m68k-motorola-sysv regexp. - -Wed Nov 20 16:27:37 1996 David J. MacKenzie <djm@churchy.gnu.ai.mit.edu> - - * config.guess, config.sub: Additions for the Fujitsu UXP/V. - From joda@pdc.kth.se (Johan Danielsson). - -Tue Nov 19 13:34:12 1996 David J. MacKenzie <djm@churchy.gnu.ai.mit.edu> - - * getpagesize.h: If no sys/param.h, default to 8k. - Indent for readability. - -Wed Nov 13 14:59:46 1996 Per Bothner <bothner@deneb.cygnus.com> - - * config.guess: Patch for Dansk Data Elektronik servers, - from Niels Skou Olsen <nso@dde.dk>. - - For ncr, use /bin/uname rather than uname, since GNU uname does not - support -p. Suggested by Mark Mitchell <mmitchell@usa.net>. - - Patch for MIPS R4000 running System V, - from Eric S. Raymond <esr@snark.thyrsus.com>. - - Fix thinko for nextstep. - - Patch for OSF1 in i?86, from Dan Murphy <dlm@osf.org> via Harlan Stenn. - - Sat Jun 24 18:58:17 1995 Morten Welinder <terra+@cs.cmu.edu> - * config.guess: Guess mips-dec-mach_bsd4.3. - - Thu Oct 10 04:07:04 1996 Harlan Stenn <harlan@pfcs.com> - * config.guess (i?86-ncr-sysv*): Emit just enough of the minor - release numbers. - * config.guess (mips-mips-riscos*): Emit just enough of the - release number. - - Tue Oct 8 10:37:22 1996 Frank Vance <fvance@waii.com> - * config.guess (sparc-auspex-sunos*): Added. - (f300-fujitsu-*): Added. - - Wed Sep 25 22:00:35 1996 Jeff Woolsey <woolsey@jlw.com> - * config.guess: Recognize a Tadpole as a sparc. - -Wed Nov 13 00:53:09 1996 David J. MacKenzie <djm@churchy.gnu.ai.mit.edu> - - * config.guess: Don't assume that NextStep version is either 2 or - 3. NextStep 4 (aka OpenStep 4) has come out now. - -Tue Nov 12 18:26:15 1996 Doug Rupp (rupp@gnat.com) - - * pexecute.c (vfork): Supply new definition for VMS. - (pwait): Use waitpid instead of wait for VMS. - -Mon Nov 11 23:52:03 1996 David J. MacKenzie <djm@churchy.gnu.ai.mit.edu> - - * config.guess: Support Cray T90 that reports itself as "CRAY TS". - From Rik Faith <faith@cs.unc.edu>. - -Fri Nov 8 11:34:58 1996 David J. MacKenzie <djm@geech.gnu.ai.mit.edu> - - * config.sub: Contributions from bug-gnu-utils to: - Support plain "hppa" (no version given) architecture, reported by - OpenStep. - OpenBSD like NetBSD. - LynxOs is not a hardware supplier. - - * config.guess: Contributions from bug-gnu-utils to add support for: - OpenBSD like NetBSD. - Stratus systems. - More Pyramid systems. - i[n>4]86 Intel chips. - M680[n>4]0 Motorola chips. - Use unknown instead of lynx for hardware manufacturer. - -Mon Oct 28 17:15:52 1996 Christian Limpach <chris@nice.ch> - - * config.sub: Recognize hppa-next as a valid CPU-COMPANY combination. - -Wed Oct 23 17:36:39 1996 Doug Rupp (rupp@gnat.com) - - * choose-temp.c (choose_temp_base): On VMS, use proper syntax - for current directory. - -Wed Oct 9 23:30:18 1996 Jim Meyering <meyering@wombat.gnu.ai.mit.edu> - - * getloadavg.c: [__hpux]: Define hpux. From Eric Backus. - [__sun]: Define sun. Reported by Kaveh Ghazi. - -Mon Sep 23 22:45:15 1996 Sean McNeil <sean@mcneil.com> - - * config.sub (-vxsim*): New operating system. - - 1996-09-12 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> - - * config.guess: Use pc instead of unknown, for pc clone systems. - Change linux to linux-gnu. - -Thu Sep 12 20:12:26 1996 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> - - * config.sub: Use pc instead of unknown, for pc clones. - Use -linux-gnu for Linux-based GNU systems. - -1996-09-04 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> - - * getloadavg.c (getloadavg): Add new code for SUNOS_5 to use -lkstat. - -Sat Aug 17 15:23:39 1996 Geoffrey Noer <noer@cygnus.com> - - * choose-temp.c: Delete !defined(_WIN32) condition when including - sys/file.h (NO_SYS_FILE_H is still used). - * getopt.c: Change win32 test from WIN32 to _WIN32. - * pexecute.c: Update test for win32 (&& ! cygwin32). - -Mon Jul 15 23:51:11 1996 Karl Heuer <kwzh@gnu.ai.mit.edu> - - * config.guess: Avoid non-portable tr syntax. - -Mon Jul 15 11:53:00 1996 Jeffrey A Law (law@cygnus.com) - - * config.guess (HP 9000/811): Recognize this as a PA1.1 - machine. - -Thu Jul 11 17:02:23 1996 David J. MacKenzie <djm@geech.gnu.ai.mit.edu> - - * install-sh: Add MIT copyright notice. From gordoni@cygnus.com. - -Sun Jul 7 13:27:04 1996 Joel Sherrill <joel@merlin.gcs.redstone.army.mil> - - * config.sub: Recognize rtems as an o/s. - -Tue Jul 2 16:45:02 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> - - * config.guess: Generalize C90 alternative to all x90 machines. - -Fri Jun 28 13:29:05 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config.guess (mips:*:*:UMIPS): Fix typo in last change. - -Tue Jun 25 22:43:48 1996 Doug Evans <dje@cygnus.com> - - * pexecute.c (PEXECUTE_VERBOSE): Define. - (MPW pexecute): Check flags & PEXECUTE_VERBOSE instead of verbose_flag. - -Mon Jun 24 14:32:22 1996 Jim Wilson <wilson@cygnus.com> - - * getopt.c (getpid): Don't redefine it if __CYGWIN32__ is defined. - -Thu Jun 20 12:20:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * config.guess (*:Linux:*:*): Add support for PowerPC Linux. - -Mon Jun 10 16:10:57 1996 Doug Evans <dje@cygnus.com> - - * pexecute.c: New file. - -Fri Jun 7 18:16:52 1996 Harlan Stenn <harlan@pfcs.com> - - * config.guess (i?86-ncr-sysv*): Emit minor release numbers. - Recognize the NCR 4850 machine and NCR Pentium-based platforms. - -Wed Jun 5 00:09:17 1996 Per Bothner <bothner@wombat.gnu.ai.mit.edu> - - * config.guess: Combine mips-mips-riscos cases, and use cpp to - distinguish sysv/svr4/bsd variants. - Based on a patch from Harlan Stenn <harlan@pfcs.com>. - -Mon Jun 3 08:49:14 1996 Karl Heuer <kwzh@gnu.ai.mit.edu> - - * config.guess (*:Linux:*:*): Add guess for sparc-unknown-linux. - -Mon May 27 20:16:42 1996 Karl Heuer <kwzh@gnu.ai.mit.edu> - - * getloadavg.c [SOLARIS2]: Define SUNOS_5. - -Fri May 24 18:34:53 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * config.guess (AViiON:dgux:*:*): Fix typo in recognizing mc88110. - -Wed May 22 17:20:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * getloadavg.c [WIN32]: No-op as for [MSDOS]. - - * getopt.c [WIN32] (getpid): Define using GetCurrentProcessId. - - * getopt.c [VMS]: Include unixlib.h, string.h. - -Tue May 21 18:55:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * config.sub: Restore `hp9k2[0-9][0-9] | hp9k31[0-9])' case line - apparently accidentally removed in the last change. - -Mon May 20 11:58:15 1996 Jeffrey A. Law <law@cygnus.com> - - * config.sub: Recognize -proelf as a basic system type. - -Fri May 3 02:35:56 1996 Noah Friedman <friedman@prep.ai.mit.edu> - - * mkinstalldirs: Don't report an error if mkdir fails because - a directory was created by another process. - -Sun Apr 21 09:50:09 1996 Stephen L Moshier (moshier@world.std.com) - - * choose-temp.c: Include sys/types.h before sys/file.h for sco3.2v5. - -Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com> - - * obstack.h [__STDC__] (obstack_init, obstack_begin, - obstack_specify_allocation, obstack_specify_allocation_with_arg, - obstack_chunkfun, obstack_freefun): Duplicate definition with complete - type cast. - -Wed Apr 17 14:28:43 1996 Doug Evans <dje@cygnus.com> - - * choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H. - #include <stdio.h>. - (choose_temp_base): Make tmp,usrtmp, static locals. - -Mon Apr 15 14:08:12 1996 Doug Evans <dje@canuck.cygnus.com> - - * choose-temp.c: New file. - -Fri Apr 12 20:03:59 1996 Per Bothner <bothner@spiff.gnu.ai.mit.edu> - - * config.guess: Combine two OSF1 rules. - Also recognize field test versions. From mjr@zk3.dec.com. - - * config.guess (dgux): Use /usr/bin/uname rather than uname, - because GNU uname does not support -p. From pmr@pajato.com. - -Mon Apr 8 16:16:20 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * config.guess (prep*:SunOS:5.*:*): Turn into - powerpele-unknown-solaris2. - -Thu Mar 28 02:06:03 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> - - * error.c (_): New macro, define iff undefined. - (private_strerror): Use it for message string. - (error_at_line): New function. - (error_one_per_line): New variable. - * error.h (error_at_line, error_one_per_line): Declare them. - -Thu Mar 21 14:42:26 1996 Doug Evans <dje@cygnus.com> - - * config.sub (os): sunos[3456] -> sunos[34], - sunos[56] have their own entries. - -Wed Mar 20 09:59:30 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> - - * signame.c [HAVE_STRING_H]: Include string.h. - -Tue Mar 19 20:07:39 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> - - * alloca.c (NULL): Define only if not already defined. - - * alloca.c [HAVE_STRING_H]: Include string.h. - [HAVE_STDLIB_H]: Include stdlib.h. - -Thu Mar 14 19:12:52 1996 Ian Lance Taylor <ian@cygnus.com> - - * config.guess: Recognize mips-*-sysv*, with a specific case for - NEC (which has its own compiler and libraries). - -Sat Mar 9 23:52:33 1996 Jim Meyering (meyering@na-net.ornl.gov) - - * getdate.y (RelativeMonth): Add 1900 to the year so that relative - date specs that push the year through the end of the century work. - For example, `date -d "01/01/1998 3 years" +%Y' now prints 2001. - From Peter Dalgaard (pd@kubism.ku.dk). - -Tue Mar 5 18:43:43 1996 Richard Henderson <rth@tamu.edu> - - * config.sub: Add -apple and -aux. - -Tue Mar 5 03:02:53 1996 Erik Naggum <erik@naggum.no> - - * config.sub (moss): Fix previous change. - -Mon Mar 4 18:03:38 1996 Bryan Ford (baford@cs.utah.edu) - - * config.sub: Accept -moss* as op sys. - -Fri Mar 1 09:57:54 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> - - * config.sub: Recognize cpu-vendor [ctj]90-cray, default - c90-cray-unicos. From tege. - -Wed Feb 28 19:55:05 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * getopt.c (_getopt_internal): Always set OPTOPT to *something* if - returning '?', so it can be distinguished from an option. - -Thu Feb 22 15:51:09 1996 Karl Heuer <kwzh@gnu.ai.mit.edu> - - * getdate.y (Convert): Accept dates beyond 1999. - -Tue Feb 13 13:20:32 1996 Miles Bader <miles@gnu.ai.mit.edu> - - * getopt.c (_getopt_internal): Give FIRST_NONOPT & LAST_NONOPT - rational values if OPTIND has been moved back by the user. - -Mon Feb 12 18:23:35 1996 Doug Evans <dje@cygnus.com> - - * config.sub: Recognize sparclet cpu. - -Sun Feb 11 18:40:11 1996 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * config.sub: Fix typo in previous change. - -Sat Feb 10 08:28:12 1996 Martin Anantharaman <martin@goofy.imech.uni-duisburg.de> - - * config.sub (-psos*): New case. - -Thu Feb 8 15:37:52 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * config.guess (UNAME_VERSION): Recognize X4.x as an OSF version. - -Sun Feb 4 16:51:11 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * config.guess (*:CYGWIN*): New - -Mon Feb 12 15:33:59 1996 Christian Bauernfeind <chrisbfd@theorie3.physik.uni-erlangen.de> - - * config.guess: Support m68k-cbm-sysv4. - -Sat Feb 10 12:06:42 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * config.guess (*:Linux:*:*): Guess m68k-unknown-linux and - m68k-unknown-linuxaout from linker help string. Put quotes around - $ld_help_string. - -Wed Feb 7 15:31:09 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getopt.c [__GNU_LIBRARY__]: Include <unistd.h>. - - * getopt.c (nonoption_flags, nonoption_flags_len): New variables. - (_getopt_initialize): If not POSIXLY_CORRECT, check for special - environment variable from Bash 2.0 and set those vars from it. - (_getopt_internal): Do not consider as options argv elts whose - nonoption_flags elt from the shell is '1'. - -Thu Feb 1 09:10:02 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * config.sub (-cygwin32): New. - -Wed Jan 31 14:13:25 1996 Richard Henderson <rth@tamu.edu> - - * config.sub: Add support for A/UX. - * config.guess: Recognize A/UX. - -Tue Jan 23 13:15:50 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * obstack.h [__STDC__] (struct obstack, _obstack_begin, - _obstack_begin_1): Use prototypes in function decls. - * obstack.c (CALL_CHUNKFUN, CALL_FREEFUN): Cast function type for - call w/o extra_arg. - - * error.c (error_print_progname) [__STDC__]: Declare with - prototype. - [_LIBC]: Include errno.h to declare program_invocation_name. - - * getopt.c [__STDC__] (exchange, _getopt_initialize): Declare - prototypes for these. - -Mon Jan 22 08:53:45 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * xmalloc.c [__STDC__] (fixup_null_alloc): Declare prototype. - -Sun Jan 21 01:08:09 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * error.h: Declare error_print_progname. Add comments. - -Wed Jan 17 17:39:51 1996 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * config.sub: Default OS to nextstep if machine vendor is Next. - -ns2 is an alias for -nextstep. - -Wed Jan 17 09:51:58 1996 Doug Evans <dje@cygnus.com> - - * config.sub: Recognize go32* as an os. - -Sun Jan 7 02:00:27 1996 Karl Heuer <kwzh@gnu.ai.mit.edu> - - * alloca.c (alloca): If malloc fails, just abort. - -Mon Jan 15 20:59:49 1996 J. Kean Johnston <hug@netcom.com> - - * config.sub (sco5): New case. - -Tue Dec 19 15:56:15 1995 Eli Zaretskii <eliz@is.elta.co.il> - - * getloadavg.c (getloadavg) [MSDOS]: Return 0 load instead of - failing the call. - -Fri Dec 15 22:34:08 1995 Stan Coxs <coxs@dg-rtp.dg.com> - - * config.guess (AViiON): Add ix86-dg-dgux - * config.sub (i*86*) Change [345] to [3456] - -Thu Dec 7 09:03:24 1995 Tom Horsley <Tom.Horsley@mail.hcsc.com> - - * config.guess (powerpc-harris-powerunix): Add guess for port - to new target. - -Wed Dec 6 09:44:53 1995 Paul Eggert <eggert@twinsun.com> - - * install-sh (transformbasename): Fix misspelling in initialization. - -Wed Dec 6 06:58:23 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * config.sub: Recognize aof in the OS field. - -Tue Dec 5 18:36:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * error.c [_LIBC]: Adapt for use in GNU libc. - -Mon Dec 4 13:21:51 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * config.guess: Recognize HP model 816 machines as having - a PA1.1 processor. - -Thu Nov 30 16:57:33 1995 Per Bothner <bothner@wombat.gnu.ai.mit.edu> - - * config.guess: Recognize Pentium under SCO. - From Robert Lipe <robertl@arnet.com>. - -Tue Nov 21 16:59:12 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * getdate.y: If config.h defines FORCE_ALLOCA_H, include alloca.h. - -Mon Oct 16 11:34:00 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * config.guess: Recognize HP model 819 machines as having - a PA 1.1 processor. - -Sat Sep 30 14:03:17 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getopt.c (_): New macro, define if not already defined. - (gettext): Never define as a macro. - (_getopt_internal): Use ``_("message")'' instead of - `gettext ("message")''. - -Mon Aug 14 19:27:56 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * config.guess (*Linux*): Add missing "exit"s. - Also, need specific check for alpha-unknown-linux (uses COFF). - -Fri Jul 28 00:16:31 1995 Jeffrey A. Law <law@rtl.cygnus.com> - - * config.guess: Recognize lynx-2.3. - -Thu Jul 27 13:31:05 1995 Fred Fish (fnf@cygnus.com) - - * config.guess (*:Linux:*:*): First try asking the linker what the - default object file format is (elf, aout, or coff). Then if this - fails, try previous methods. - -Mon Aug 7 16:48:13 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c [ps2]: Use nlist instead of knlist #ifdef _AIX. - -Fri Aug 4 10:27:54 1995 Jim Meyering (meyering@comco.com) - - * getopt.c (_getopt_internal) [lint]: Initialize INDFOUND to - avoid warning from gcc. - -Tue Aug 1 14:29:43 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c (getloadavg): Set FD_CLOEXEC flag on /dev/kmem file - descriptor. - -Wed Jul 26 00:26:34 1995 David J. MacKenzie <djm@geech.gnu.ai.mit.edu> - - * mkinstalldirs: Remove weird unnecessary shell construction. - -Wed Jun 28 17:57:27 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * config.guess (AIX4): More robust release numbering discovery. - -Thu Jun 22 19:01:24 1995 Kenneth Stailey (kstailey@eagle.dol-esa.gov) - - * config.guess (i386-sequent-ptx): Properly get version number. - -Thu Jun 22 18:36:42 1995 Uwe Seimet (seimet@iris1.chemie.uni-kl.de) - - * config.guess (mips:*:4*:UMIPS): New case. - -Tue Jun 20 02:41:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c [convex] (LOAD_AVE_TYPE, LDAV_CVT): Define to - double, no conversion. - - * obstack.c (OBSTACK_INTERFACE_VERSION): New macro. Rewrote - conditionals to use that macro to ensure that the installed GNU - libc supports the interface the obstack.h corresponding to this - obstack.c needs, and only then elide the code in this file. - -Sun May 28 18:53:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * config.guess (21064:Windows_NT:50:3): New case. - -Fri May 19 16:52:50 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * error.c (error_message_count): New variable. - (error): Increment it. - * error.h: Declare error_message_count. - -Mon May 15 17:47:55 1995 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * config.guess: Recognize Cray90 (from Pete TerMaat). - -Thu May 11 17:13:14 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * config.guess: Recognize PCs running Solaris2. - (Patch from Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>.) - * config.guess: Merge two CRAY*Y-MP entries. - Ignore system field for Cray xmp and cray2 since "uname -s" on - a Cray gets you the hostname, which is useless. - (According to Pete TerMaat <pete@guava.cray.com>.) - -Wed May 10 11:03:56 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c: AIX support from Tim Bell <tbel@afsmail.cern.ch>: - [_AIX] (LOAD_AVE_TYPE, FSCALE, NLIST_STRUCT): Define these for AIX. - (getloadavg) [_AIX]: Use `knlist' instead of `nlist'. - -Fri May 5 05:50:56 1995 Allen Briggs (briggs@puma.bevd.blacksburg.va.us) - - * config.guess: Add more NetBSD cases: atari, sun3*, and mac68k. - -Wed May 3 16:22:31 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * crt0.c: Add APOLLO alternative. - -Sat Apr 29 15:48:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * signame.c: Move include of config.h before all others. - -Thu Apr 27 11:33:29 1995 Michael Meissner (meissner@cygnus.com) - - * config.guess (*:Linux:*:*): Check for whether the pre-BFD linker is - installed, and if so return linuxoldld as the system name. - -Thu Apr 27 13:11:11 1995 Jim Meyering (meyering@comco.com) - - * error.h: Use __-protected versions of `format' and `printf' - attributes only with gcc-2.7 and later. - -Thu Apr 27 09:22:33 1995 Peder Chr. Norgaard <pcn@tbit.dk> - - * config.guess (i[34]86:*:3.2:*) test for /usr/options/cb.name - before calling uname. - -Wed Apr 26 17:19:34 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * signame.c [HAVE_UNISTD_H]: Include unistd.h so it can declare - sys_siglist. - -Wed Apr 26 14:00:00 1995 Michael Meissner (meissner@cygnus.com) - - * config.guess (*:Linux:*:*): Determine whether the default compiler is - a.out or ELF based. - (parisc*:Lites*:*:*): New entry from Jeff Law. - -Wed Apr 26 11:48:21 1995 Jim Meyering (meyering@comco.com) - - * error.h: New file. - -Wed Apr 26 10:27:50 1995 Travis L Priest (T.L.Priest@larc.nasa.gov) - - * config.guess (CRAY*Y-MP:*:*:*): New entry. - -Wed Apr 26 12:54:26 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * config.guess: Add hppa1.1-hp-lites support. - -Thu Apr 6 19:55:54 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * crt0.c [__bsdi__]: Maybe declare __progname. - -Fri Mar 24 00:52:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getopt.c (_getopt_internal): When optind is zero, bump it to 1 - after initializing; we don't want to scan ARGV[0], which is the - program name. - -Tue Mar 21 16:44:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * signame.c (signame_init): Define SIGINFO. - -Tue Mar 7 01:41:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * signame.c (strsignal): Cast sys_siglist elt to char *. - -Thu Feb 23 18:42:16 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * signame.h [! __STDC__]: Don't use prototype for strsignal decl. - -Wed Feb 22 19:08:43 1995 Niklas Hallqvist (niklas@appli.se) - - * config.guess: Recognize NetBSD/Amiga as m68k-cbm-netbsd. - -Tue Feb 21 22:13:19 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * signame.h (strsignal): Declare it. - * signame.c [! HAVE_STRSIGNAL] (strsignal): New function. - -Wed Feb 8 10:03:36 1995 David J. MacKenzie <djm@geech.gnu.ai.mit.edu> - - * install-sh config.guess mkinstalldirs: Add a blank in the #! - line for 4.2BSD, Dynix, etc. - -Sat Feb 4 12:59:59 1995 Jim Wilson <wilson@cygnus.com> - - * config.guess (IRIX): Sed - to _. - -Sat Jan 28 20:09:49 1995 Daniel Hagerty <hag@duality.gnu.ai.mit.edu> - - * error.c: Under older versions of SCO, strerror is a preprocessor - macro. Added a check for this. - -Fri Jan 27 09:55:28 1995 Jim Meyering (meyering@comco.com) - - * getdate.y: Remove obsolete comments. Rewrite others. - -Mon Jan 23 19:41:57 1995 Karl Heuer <kwzh@hal.gnu.ai.mit.edu> - - * config.guess (i[34]86:*:3.2:*): Test for ISC before SCO; newer - ISC releases have uname -X. - -Tue Jan 10 09:26:41 1995 Jim Meyering (meyering@comco.com) - - * getdate.y (ToSeconds): Interpret 12am as 00:00 and 12pm as 12:00. - Before, `date -d 'Jan 1 12am'' printed `...12:00:00...'. - From Takeshi Sone <ts1@tsn.or.jp>. - -Sat Jan 7 11:57:40 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c: Include config.h first. - -Wed Jan 4 15:52:17 1995 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * config.guess: Recognize BSD/OS as bsdi. - Patch from Chris Torek <torek@BSDI.COM>. - -Wed Dec 21 15:51:08 1994 Warner Losh (imp@boulder.openware.com) - - * config.guess (sun4:SunOS:*:*): Handle Solbourne OS/MP systems. - -Tue Dec 6 02:29:42 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config.guess (dummy.c) [sony]: Include <sys/param.h> and emit - newsos4 #ifdef NEWSOS4. - -Tue Nov 29 17:01:29 1994 Mark Dapoz (md@bsc.no) - - * config.guess (ibmrt): Add more cases for various forms of BSD. - -Tue Nov 29 16:19:54 1994 Paul Eggert <eggert@twinsun.com> - - * getopt.c (_getopt_internal): Add gettext wrappers around - message strings. - - * xmalloc.c (fixup_null_alloc): Add gettext wrapper. - Capitalize initial letter of error message, for consistency - with regex.c. - -Fri Nov 25 19:22:24 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * crt0.c (start1): Add self reference. - -Wed Nov 23 16:51:11 1994 R. Bernstein (rocky@panix.com) - - * config.guess: Add cases for romp-ibm-aix and romp-ibm-bsd. - -Mon Nov 14 19:03:29 1994 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * config.guess: Support paragon as i860-intel-osf1. (From RMS.) - -Fri Nov 11 14:04:58 1994 Andreas Luik (luik@isa.de) - - * obstack.h: Add one missing test on value of __STDC__. - -Sat Nov 05 08:08:52 1994 Jim Meyering (meyering@comco.com) - - * obstack.h: NextStep 2.0 cc is really gcc 1.93 but it defines - __GNUC__ = 2 and does not implement __extension__. So add - `|| (__NeXT__ && !__GNUC_MINOR__)' to the test for whether to - define-away __extension__. Reported by Kaveh Ghazi. - -Thu Nov 03 14:36:58 1994 Jim Meyering (meyering@comco.com) - - * filemode.c (rwx): Use S_IRUSR, S_IWUSR, S_IXUSR instead of - obsolete S_IREAD, S_IWRITE, S_IEXEC. - Make sure the former three are defined. - -Tue Nov 1 14:24:39 1994 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * config.guess (*-unknown-freebsd): Remove [-(] from - UNAME_RELEASE. Patch from Warner Losh <imp@village.org>. - -Mon Oct 31 07:02:15 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getopt.h: Change #if __STDC__ to #if defined (__STDC__) && - __STDC__. - * getopt.c: Change #ifndef __STDC__ to #if !defined (__STDC__) || - !__STDC__. - * getopt1.c: Likewise. - * obstack.c: Change #ifdef __STDC__ to #if defined (__STDC__) && - __STDC__. - * obstack.h: Likewise. - -Wed Oct 26 20:34:59 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c [alliant && i860] (FSCALE): Move defn before - #ifndef FSCALE. - -Tue Oct 25 19:10:41 1994 Paul Eggert <eggert@twinsun.com> - - * xmalloc.c (fixup_null_alloc): New function. - (xmalloc, xrealloc): Use it to fix up returned NULL values, - instead of preemptively adjusting a zero N to 1. - -Tue Oct 25 11:22:30 1994 David J. MacKenzie <djm@duality.gnu.ai.mit.edu> - - * xmalloc.c (xmalloc, xrealloc): If 0 bytes requested, pretend - it's 1, for diff. - -Thu Oct 20 18:47:53 1994 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * config.guess: Better support for NCR - covers more machines, - and prints sysv4.3 if uname says the OS is 4.3. - Patch from Tom McConnell <tmcconne@sedona.intel.com>. - -Wed Oct 19 15:55:38 1994 David J. MacKenzie <djm@duality.gnu.ai.mit.edu> - - * config.guess: Add licensing exception for Autoconf. - -Tue Oct 18 19:26:31 1994 David Edelsohn (edelsohn@npac.syr.edu) - - * config.guess: Revise support for AIX 4.1 on POWER and PowerPC. - -Mon Oct 17 19:16:38 1994 David Edelsohn <edelsohn@npac.syr.edu> - - * config.guess: Add support for AIX 4.1 and architecture. - -Wed Oct 12 16:51:35 1994 David J. MacKenzie (djm@duality.gnu.ai.mit.edu) - - * error.c: Add hook for alternate name printing function. - From Franc,ois Pinard. - Use varargs for _doprnt too. - - * xmalloc.c: Add hook for alternate exit status. - From Franc,ois Pinard. - -Mon Oct 10 17:35:19 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getpagesize.h: If NBPC is not defined, try PAGESIZE. - -Fri Oct 07 18:53:28 1994 Jim Meyering (meyering@comco.com) - - * filemode.c: Remove #if 0'd block around mode_t definition. - From Andreas Luik (luik@marx.isa.de). - -Thu Oct 06 21:15:16 1994 Jim Meyering (meyering@comco.com) - - * pathmax.h: Fix typo: HAVE_SYS_PATH_MAX_H -> HAVE_SYS_PARAM_H. - From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de). - -Thu Oct 6 18:02:32 1994 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * config.guess: Patch from Chris Smith <csmith@mozart.convex.com> - to handle old Convex systems without uname. - -Tue Oct 4 03:02:39 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * getdate.y (main): Use MAX_BUFF_LEN consistently. - Clear the last element of buf. - -Mon Oct 3 01:48:48 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config.guess: Recognize GNU. - -Thu Sep 29 18:47:34 1994 Jerry Frain (jerry@sneffels.tivoli.com) - - * config.guess (i[34]86:UNIX_SV:4.*:*): Remove "UNIX_SV" for - Unixware; move DYNIX above this one now that this is wildcard. - -Wed Sep 28 17:00:12 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * getloadavg.c [alliant && i860] (LOAD_AVE_TYPE, FSCALE, - NLIST_STRUCT): Define. - -Mon Sep 26 17:53:05 1994 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) - - * alloca.c error.c filemode.c getopt.c getopt1.c getdate.y - getloadavg.c getugroups.c getusershell.c signame.c: - Remove CONFIG_BROKETS ifdef. No one should use "config.h". - -Sat Sep 24 21:20:12 1994 Jim Meyering (meyering@comco.com) - - * getdate.y [struct _TABLE]: Add `const' to NAME member dcl. - -Fri Sep 23 02:39:55 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * crt0.c [__FreeBSD__] (__progname): Declared. - -Tue Sep 20 23:27:02 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * getdate.y: Whitespace reformatted. - (MAX_BUFF_LEN): New macro. - (main): Use fgets, not gets. Use MAX_BUFF_LEN to declare buff. - -Mon Sep 19 18:25:40 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * config.guess (HP-UX): Patch from Harlan Stenn - <harlan@landmark.com> to also emit release level. - -Wed Sep 7 13:15:25 1994 Jim Wilson (wilson@sphagnum.cygnus.com) - - * config.guess (sun4*:SunOS:*:*): Change '-JL' to '_JL'. - -Fri Sep 16 20:16:36 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * getloadavg.c (getloadavg): Add OSF_ALPHA support. - -Fri Sep 16 18:34:22 1994 Paul Eggert <eggert@twinsun.com> - - * getdate.y (difftm): Don't store a long value into an int variable. - -Thu Sep 08 00:26:29 1994 Jim Meyering (meyering@comco.com) - - * getdate.y: Accept `MESZ' timezone. - -Sun Aug 28 18:13:45 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * config.guess (*-unknown-freebsd*): Get rid of possible - trailing "(Release)" in version string. - Patch from Paul Richards <paul@isl.cf.ac.uk>. - -Sat Aug 27 15:00:49 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * config.guess: Fix i486-ncr-sysv43 -> i486-ncr-sysv4.3. - Fix type: *-next-neststep -> *-next-nextstep. - -Sat Jun 4 17:23:54 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * configure.in: Use mh-ncrsvr43. Patch from - Tom McConnell <tmcconne@sedona.intel.com>. - -Sat Aug 27 17:21:04 1994 Jim Meyering (meyering@comco.com) - - * filemode.c [STAT_MACRO_BROKEN]: Remove spurious #ifdef's. - -Fri Aug 26 19:17:22 1994 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * config.guess (netbsd, freebsd, linux): Accept any machine, - not just i[34]86. - -Fri Aug 26 18:45:25 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - - * config.guess: Recognize powerpc-ibm-aix3.2.5. - -Fri Aug 26 15:12:50 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * config.guess: Merges from Cygnus version. - (alpha-dec-osf*): More general. - (*-hp-hpux*): Combine cases. - (*-next-ns[23]): Rename to *-next-neststep[23]. - Make code fragment shorter. - (config.guess, i386-unknown-bsd): Don't recognize __bsdi__ here; - it is handled using uname. - - Sat Jul 16 12:03:08 1994 Stan Shebs (shebs@andros.cygnus.com) - - * config.guess: Recognize m88k-harris-csux7. - - Tue Jun 28 13:43:25 1994 Jim Kingdon (kingdon@lioth.cygnus.com) - - * config.guess: Recognize Mach. - - Wed Apr 6 20:44:56 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) - - * config.guess: Add SINIX support. - - Sun Mar 6 23:13:38 1994 Hisashi MINAMINO (minamino@sra.co.jp) - - * config.guess: about target *-hitachi-hiuxwe2, fixed - machine guessing order. [Hitachi's CPU_IS_HP_MC68K - macro is incorrect.] - - Thu Feb 24 07:09:04 1994 Jeffrey A. Law (law@snake.cs.utah.edu) - - * config.guess: Handle OSF1 running on HPPA processors - - Fri Feb 11 15:33:33 1994 Stu Grossman (grossman at cygnus.com) - - * config.guess: Add Lynx/rs6000 config support. - -Thu Aug 25 20:28:51 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * config.guess (Pyramid*:OSx*:*:*): New case. - (PATH): Add /.attbin at end for finding uname. - (dummy.c): Handle i860-alliant-bsd. Follow whitespace conventions. - -Wed Aug 17 18:21:02 1994 Tor Egge (tegge@pvv.unit.no) - - * config.guess (M88*:DolphinOS:*:*): New case. - -Thu Aug 11 17:00:13 1994 Stan Cox (coxs@dg-rtp.dg.com) - - * config.guess (AViiON:dgux:*:*): Use TARGET_BINARY_INTERFACE - to select whether to use ELF or COFF. - -Thu Jul 28 19:16:24 1994 Uwe Seimet (seimet@chemie.uni-kl.de) - - * config.guess: Recognize m68k-atari-sysv4. - -Sun Jul 24 16:20:53 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * config.guess: Recognize i860-stardent-sysv and i860-unknown-sysv. - -Sat Jul 23 02:15:01 1994 Karl Heuer (karl@hal.gnu.ai.mit.edu) - - * config.guess (isc): Distinguish isc from generic sysv32. - -Mon Jul 11 23:55:13 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c (posixly_correct): New variable. - (_getopt_initialize): Set posixly_correct from envvar. - (_getopt_internal): Don't use "illegal" in error message - unless posixly_correct. - -Sun Jul 03 08:46:58 1994 Jim Meyering (meyering@comco.com) - - * pathmax.h: Add HAVE_SYS_PARAM_H to and remove !MS_DOS from - preprocessor conditional guarding inclusion of sys/param.h. - -Mon Jun 20 23:45:34 1994 Jim Meyering (meyering@comco.com) - - * modechange.c (mode_compile) [lint]: Initialize CHANGE to suppress - used uninitialized compiler warning. - -Wed Jun 15 19:07:49 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * config.guess (alpha): Supoort OSF/1 V2.0 and later. - -Tue Jun 14 17:50:05 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * obstack.h (obstack_grow{,0}): Cast WHERE to char * before - passing to bcopy. - -Mon Jun 6 04:59:28 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * config.guess: Add support for bsdi. - -Sat Jun 4 01:24:59 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getloadavg.c: Put #include of errno.h and decl of errno before - #ifndef HAVE_GETLOADAVG. - -Thu Jun 2 13:42:39 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c [emacs]: Block input around the garbage reclamation. - Include blockinput.h. - -Tue May 10 16:53:55 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * config.guess: Add trap cmd to remove dummy.c and dummy when - interrupted. - -Sun May 1 10:23:10 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * config.guess: Guess the OS version for HPUX. - -Wed Apr 27 15:14:26 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * install.sh: If $dstdir exists, don't check whether each - component does. - -Mon Apr 25 14:39:06 1994 Poul-Henning Kamp (phk@login.dkuug.dk) - - * config.guess: Recognize FreeBSD. - -Sun Apr 24 17:56:58 1994 Jim Meyering (meyering@comco.com) - - * getdate.y (difftm, get_date): Revert my April 18 changes. - Paul Eggert pointed out that that hack probably wouldn't work - for places like Chile that had DST in effect on 31 Dec 1970. - * (get_date): Instead, add 60 minutes to timezone if DST is in - effect locally. From andy@eng.kvaerner.no (Andrew Walker). - Remove static declaration of `RCS.' - -Fri Apr 22 22:15:28 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * install.sh: Add -d, -t, -b options. Make leading directories. - Don't partially install files. - From zoo@cygnus.com. - -Wed Apr 20 18:07:13 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * config.guess (dummy.c): Redirect stderr for `hostinfo' command. - (dummy): Redirect stderr from compilation of dummy.c. - -Wed Apr 20 06:36:32 1994 Philippe De Muyter (phdm@info.ucl.ac.be) - - * config.guess: Recognize UnixWare 1.1 (UNAME_SYSTEM is SYSTEM_V - instead of UNIX_SV for UnixWare 1.0). - -Mon Apr 18 22:01:27 1994 Jim Meyering (meyering@comco.com) - - * getdate.y (difftm): Remove function. - (get_date): Get timezone *without DST bias* from localtime(&zero). - Modeled after the hack in localtime.pl from the perl distribution. - This fixes an error that had `date -d '4apr94'' producing - `Sun Apr 3 23:00:00 CDT 1994'. - -Fri Apr 15 22:46:59 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getdate.y: Delete special alloca code. - -Tue Apr 12 15:05:08 1994 Noah Friedman (friedman@prep.ai.mit.edu) - - * config.guess: Merge rms' new entry for i486-ncr-sysv4 with the - previously existing one. - -Mon Apr 11 00:54:33 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c [not __GNU_LIBRARY__] [__GCC__] [not __STDC__]: - Declare strlen to return int. Don't include stddef.h. - - * config.guess: Add 3[34]??,3[34]??:*:4.0:* for i486-ncr-sysv4. - -Sat Apr 9 14:59:28 1994 Christian Kranz (kranz@sent5.uni-duisburg.de) - - * config.guess: Distinguish between NeXTStep 2.1 and 3.x. - -Fri Apr 1 00:38:17 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) - - * obstack.h, getopt.c: Delete use of IN_GCC to control whether - stddef.h or gstddef.h is included. - -Fri Mar 25 23:01:17 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) - - * mkinstalldirs: Preserve leading slash in file names. - From Jim Meyering. - -Sun Mar 20 01:29:20 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.s [emacs]: Use <...> to include config.h. - -Tue Mar 1 21:53:03 1994 Karl Heuer (kwzh@hal.gnu.ai.mit.edu) - - * config.guess (UNAME_VERSION): Recognize aix3.2.4 and aix3.2.5. - -Thu Feb 24 14:54:23 1994 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getopt.c: Remove #ifdef GETOPT_COMPAT and #if 0 code. - (_getopt_initialize): New function, broken out of _getopt_internal. - (_getopt_internal): - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - -Thu Feb 10 14:44:16 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c [not __GNU_LIBRARY__] [__GNUC__] [not IN_GCC]: - Test just __STDC__, not emacs. - -Wed Feb 9 17:46:31 1994 Karl Heuer (kwzh@mole.gnu.ai.mit.edu) - - * getdate.y (difftm): Simplify return expression. - -Wed Feb 9 00:14:00 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c [not __GNU_LIBRARY__] [__GNUC__] [not IN_GCC] - [emacs] [not __STDC__]: Don't include stddef.h. Don't declare strlen. - -Tue Feb 8 14:14:31 1994 David J. MacKenzie (djm at douglas.gnu.ai.mit.edu) - - Handle obstack_chunk_alloc returning NULL. This allows - obstacks to be used by libraries, without forcing them - to call exit or longjmp. - * obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk): - If CALL_CHUNKFUN returns NULL, set alloc_failed, else clear it. - (_obstack_begin, _obstack_begin_1): Return 1 if successful, 0 if not. - * obstack.h (struct obstack): Add alloc_failed flag. - _obstack_begin, _obstack_begin_1): Declare to return int, not void. - (obstack_finish): If alloc_failed, return NULL. - (obstack_base, obstack_next_free, objstack_object_size): - If alloc_failed, return 0. - (obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow, - obstack_int_grow, obstack_blank): If alloc_failed, do nothing that - could corrupt the obstack. - (obstack_chunkfun, obstack_freefun): New macros, used in GDB. - -Sun Jan 30 17:58:06 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * config.guess: Recognize vax hosts. - -Mon Jan 24 18:40:06 1994 Per Bothner (bothner@kalessin.cygnus.com) - - * config.guess: Clean up NeXT support, to allow nextstep - on Intel machines. Make OS be nextstep. - -Sun Jan 23 18:47:22 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * config.guess: Add alternate forms for Convex. - -Thu Jan 6 14:00:23 1994 david d `zoo' zuhn (zoo@cygnus.com) - - * config.guess: add support for Tektronix 68k and 88k boxes; - better Apollo, Sony NEWS information - -Sun Dec 26 03:58:32 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * filemode.c (ftypelet): Don't use mode_t. Take long arg. - (mode_t): Don't ever define it. - (mode_string): Cast ftypelet's arg to long. - -Fri Dec 24 19:43:00 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) - - * getopt.c (_NO_PROTO): Define before config.h is included. - -Wed Dec 22 17:01:19 1993 Jim Meyering (meyering@comco.com) - - * getdate.y (date): Parse dates like 17-JUN-1991. - -Tue Dec 07 14:52:39 1993 Jim Meyering (meyering@comco.com) - - Mon Dec 6 11:13:07 1993 Jason Merrill (jason@deneb.cygnus.com) - - * getdate.y (number): Change parsing of number > 10000 to - YYMMDD rather than YYHHmm. - -Sat Nov 20 17:47:50 1993 Noah Friedman (friedman@gnu.ai.mit.edu) - - * error.c (error): fflush stdout before writing to stderr. - -Tue Nov 09 10:05:48 1993 Jim Meyering (meyering@comco.com) - - * getdate.y (ToSeconds): Add a `default: abort ();' case. - -Thu Nov 4 12:59:19 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) - - * config.guess: add support for {i386,m68k,sparc} LynxOS; Hitachi - HPPA machines; Acorn Risc Machines; DG/UX; Motorola SVr3 on m88k - -Wed Nov 3 08:06:08 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [__NetBSD__]: Fix typo. - -Tue Nov 02 16:03:41 1993 Jim Meyering (meyering@comco.com) - - * getdate.y [!defined(USG) && defined(HAVE_FTIME)]: Don't test - these when deciding whether to include sys/timeb.h. Test only - HAVE_SYS_TIMEB_H. - -Sat Oct 16 23:31:34 1993 Jim Meyering (meyering@comco.com) - - * getusershell.c (getusershell): Always return a string allocated - by malloc. - -Tue Oct 12 00:53:26 1993 Jim Meyering (meyering@comco.com) - - * getugroups.c [HAVE_CONFIG_H, CONFIG_BROKETS]: Include <config.h> - or "config.h". - * getusershell.c: Ditto. - -Thu Oct 07 19:08:00 1993 Jim Meyering (meyering@comco.com) - - * getdate.y [!__GNUC__ && !HAVE_ALLOCA_H]: Declare alloca as void* - rather than char*. The latter conflicts with a dcl from bison.simple. - -Tue Oct 05 14:52:02 1993 Jim Meyering (meyering@comco.com) - - * error.c [CONFIG_BROKETS]: Include <config.h> only under - this condition, else "config.h". - * modechange.c: Likewise. - - * filemode.c, modechange.c [STAT_MACROS_BROKEN]: Test this. - -Sun Oct 3 15:33:07 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [__NetBSD__]: New netbsd support using - /kern/loadavg. - -Mon Sep 20 15:59:03 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * alloca.c [emacs || CONFIG_BROKETS]: Include <config.h> only under - these, else "config.h". - * filemode.c: Likewise. - * signame.c, getloadavg.c, getopt.c, getopt1.c: Likewise. - -Wed Sep 15 00:03:40 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * config.guess: New version from Cygnus; has netbsd support. - -Mon Sep 13 19:25:24 1993 david d 'zoo' zuhn (zoo@geech.gnu.ai.mit.edu) - - * config.guess: add support for OSF/1 v1.3 and 4.4 and 4.3BSD - on hp300 machines - -Fri Sep 10 00:22:04 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * config.guess: Recognize netbsd on i[34]86 and hp300. - - * alloca.c: Include <config.h> instead of "config.h". - * crt0.c: Likewise. - * filemode.c: Likewise. - * getdate.y: Likewise. - -Fri Aug 27 10:27:13 1993 Paul Eggert (eggert@twinsun.com) - - * xmalloc.c: Include "config.h" if HAVE_CONFIG_H. Use size_t, - not int, when needed. - (VOID): New macro. Use it when needed. - (error): Declaration uses varargs if required. - -Fri Aug 27 09:59:26 1993 Paul Eggert (eggert@wombat.gnu.ai.mit.edu) - - * error.c: Include "config.h" if HAVE_CONFIG_H. - -Wed Aug 25 17:46:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * signame.c [! HAVE_SYS_SIGLIST] [! SYS_SIGLIST_DECLARED]: Declare - sys_siglist. - -Mon Aug 16 15:10:30 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * alloca.c: Reverse sense of GCC 2 #ifdef. - -Sat Aug 14 23:26:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * config.guess: Detect mips-mips-ricos... - Handle 9000/4??:HP-UX like 9000/3??:HP-UX. - Fix 9000/7??:4.3bsd... - -Thu Aug 12 16:18:12 1993 Paul Eggert (eggert@twinsun.com) - - * getdate.y (get_date): To determine the time zone, compare localtime - to gmtime output, instead of trying to use buggy and unportable - OS timezone primitives. - (difftm): New function. - (HAVE_GETTIMEOFDAY): Remove. - (timezone): Undef it if defined (not if sgi). - -Thu Aug 12 18:16:49 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c, getopt.c, getopt1.c [HAVE_CONFIG_H]: Include - <config.h> instead of "config.h". - -Wed Aug 11 03:27:12 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c: Do nothing if compiling with GCC version 2. - -Tue Aug 10 17:27:27 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c: Always declare malloc, whether or not it is defined - as xmalloc. - -Sat Aug 7 16:55:06 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getopt1.c: Declare const the way getopt.c does. - -Mon Aug 2 16:48:14 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [OSF_ALPHA]: #undef and redefine FSCALE. - -Sun Aug 1 16:39:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [TEST] (main): If NAPTIME is zero, don't set it to 5. - Break out of loop at end if NAPTIME is zero. - [! HAVE_GETLOADAVG]: Protect all but [TEST] portion with this. - -Fri Jul 30 18:28:40 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * getpagesize.h: Don't define HAVE_GETPAGESIZE; assume - configure has detected it. - -Thu Jul 29 23:20:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [__linux__]: Test this instead of [LINUX]. - -Mon Jul 26 13:36:55 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (OSF_ALPHA): Test [__alpha] as well as [__alpha__]. - - * signame.h (psignal) [!HAVE_PSIGNAL]: Don't test [! HAVE_SYS_SIGLIST]. - * signame.c (psignal) [!HAVE_PSIGNAL]: Test this instead of - [! HAVE_SYS_SIGLIST]. - - * getloadavg.c [sgi || sequent]: #undef FSCALE before defining it. - -Wed Jul 21 17:08:07 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * obstack.c [__STDC__]: Declare prototype for _obstack_allocated_p. - -Wed Jul 14 00:55:24 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * config.guess: Add case for Bull dpx/2. - -Tue Jul 13 12:38:13 1993 Jim Meyering (meyering@comco.com) - - * alloca.c: Enable the Cray stack-segment unwinding code only - if configure defines CRAY_STACKSEG_END. The C-90 doesn't need - (and can't use) any of the Cray-specific code. - -Mon Jul 12 18:13:16 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [NEXT]: It's ok if the user asks - for >1 numbers -- just return 1. - -Wed Jul 7 14:03:45 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c: Separate __STDC__ conditional from const conditional. - -Tue Jul 6 19:03:25 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [SUNOS_5]: Set `offset' from - kvm_nlist. Don't do the nlist but do initialize the struct - nlist for use by kvm_nlist. - -Mon Jun 28 14:55:05 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * pathmax.h: Use !__GNUC__ instead of USG to check for whether - to include limits.h on non-POSIX systems. - -Sat Jun 26 15:26:13 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c [not __GNU_LIBRARY__, but __GNUC__] (strlen): - Include stddef.h or gstddef.h, and declare strlen. - -Fri Jun 25 15:44:11 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c (exchange): Declare missing variables I. - -Tue Jun 22 00:03:11 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c (exchange): Use just one slot of temporary space. - (alloca, __alloca): All definitions deleted. - (my_bcopy): All definitions deleted. - -Wed Jun 16 17:09:47 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * crt0.c: [hp9000s300, ! OLD_HP_ASSEMBLER] Add flag_68040 to - the list of flags already present. - -Thu Jun 10 16:28:34 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * config.guess: New version from Cygnus. - -Wed Jun 9 16:28:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [! LOAD_AVE_TYPE]: Protect LOAD_AVE_TYPE definitions - with this. Use "#if defined (ardent) && defined (titan)", instead - of the bogus "#ifdef ardent && titan". Fix typo tex4300 -> tek4300. - -Wed Jun 9 05:19:56 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getopt.c: Remove "|| defined(__sgi)" from the conditions for - #including "alloca.h"; autoconf ought to be able to figure - this out accurately, and that change was supposedly made for - the sake of Emacs, which does use autoconf. - - * getloadavg.c: Break up #if lines longer than 256 characters, - for VMS. - -Tue Jun 8 07:56:45 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * config.guess: Add clause to the first big case statement to - detect Motorola Delta 68k, up to r3v7. - -Sun Jun 6 03:52:21 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * filemode.c: Include config.h if HAVE_CONFIG_H. - (mode_t): Define, if NO_MODE_T. - -Fri May 28 03:21:21 1993 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - - * getopt.c: If __sgi is defined, #include <alloca.h> too. - -Mon May 24 20:43:38 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c [!emacs]: Define malloc as xmalloc. Declare xmalloc. - -Mon May 24 17:40:32 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [OSF_MIPS]: Don't define - LDAV_PRIVILEGED. Cast LOAD_AVE.tl_lscale to double. - -Mon May 24 11:53:18 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * alloca.c: Make this safe for Emacs. - [! emacs] Declare malloc. - (alloca): Call malloc, not xmalloc. - -Mon May 24 00:59:13 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [NO_GET_LOAD_AVG]: Just fail. - -Sun May 23 21:56:11 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getdate.y [__GNUC__] (alloca): #undef this before we give - our new definition. - -Sun May 23 13:53:12 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c: Call xmalloc (once again). - [emacs]: Define xmalloc as malloc. - [!emacs]: Declare xmalloc. - -Sun May 23 05:47:31 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) - - * mkinstalldirs (errstatus): New variable. - Use inner `for' loop instead of `while test' on $#. - -Sat May 22 20:14:23 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * mkinstalldirs: Set IFS to % instead of / and use sed to translate - /s in the directory name into %s first. Initialize PATHCOMP always - to empty. - -Fri May 21 19:32:43 1993 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - - * alloca.c (free): Don't #define this to be xfree whenever - emacs is #defined. That's only appropriate for some of the - files in Emacs which use alloca. - (xmalloc): Remove this declaration. It's inappropriate. - (alloca): Call malloc, not xmalloc. - -Thu May 20 16:22:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [LINUX]: Close FD if read fails. - Check return value of sscanf. - -Wed May 19 21:16:24 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg): Add support for Linux, from - Michael K. Johnson. - -Wed May 19 13:47:02 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [__osf__ && (mips || __mips__)]: Include - <sys/table.h> and #define OSF_MIPS. - (getloadavg) [OSF_MIPS]: Special code using `table'. - -Mon May 17 15:55:47 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [butterfly]: Define NLIST_STRUCT; not LOAD_AVE_TYPE. - -Sun May 16 22:00:06 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * a.out.gnu.h [sequent && i386] (N_MAGIC, N_MACHTYPE, N_FLAGS, - N_SET_INFO, M_SET_MAGIC, N_SET_MACHTYPE, N_SET_FLAGS, [OZN]MAGIC, - N_BADMAG, N_ADDRADJ, N_DATOFF, N_TRELOFF, N_SYMOFF, N_TXTADDR, - N_COMM, N_FN, PAGE_SIZE, SEGMENT_SIZE): Define. - -Sat May 15 00:50:03 1993 Jim Meyering (meyering@comco.com) - - * getdate.y: Fix the time.h versus sys/time.h problem once and - for all. Packages that use this file should use autoconf's - AC_TIME_WITH_SYS_TIME and AC_HAVE_HEADERS(sys/time.h) macros. - -Fri May 14 16:38:56 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [butterfly] (LOAD_AVE_TYPE): Define as long. - -Thu May 13 01:49:31 1993 Jim Meyering (meyering@comco.com) - - * error.c: Move extern dcl of program_name out of error. - -Sun May 9 15:21:11 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [HPUX && ! hpux]: Define hpux. - -Sat May 8 20:35:04 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getloadavg.c: Rename initialized to getloadavg_initialized. - -Sat May 8 13:32:15 1993 Jim Meyering (meyering@comco.com) - - * alloca.c: Indent and reformat comments. - - * alloca.c (i00afunc): New functions for determining relative - stack frame ordering for Crays. From Otto Tennant. - -Fri May 7 15:54:30 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [NeXT]: Include <mach/mach.h> #ifdef - HAVE_MACH_MACH_H, else <mach.h>. - -Wed May 5 13:31:55 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (LDAV_SYMBOL) [hpux && ! hp9000s300]: Use this - conditional, not just [hpux], to define as "avenrun". - - * getloadavg.c [unix && m68k && mc68000 && mc68020 && - _MACH_IND_SYS_TYPES]: Define tek4300. - [tek4300] (LOAD_AVE_TYPE): Define as long. - [tek4300] (FSCALE): Define as 100.0. - -Mon May 3 22:17:45 1993 Jim Meyering (meyering@comco.com) - - * getugroups.c: Don't define GETGROUPS_T. Now configure does it. - -Mon May 3 17:12:41 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [VMS]: Don't define LDAV_DONE. - - * getloadavg.c [ardent && titan] - (LOAD_AVE_TYPE): Define as long. - (FSCALE): Define as 65536.0. - (LDAV_SYMBOL): Define as "avenrun". - -Tue Apr 27 14:07:18 1993 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - - * getdate.y: If HAVE_SYS_TIMEB_H is #defined, then include - <sys/timeb.h> instead of defining struct timeb ourselves. - -Thu Apr 22 17:23:42 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [!LDAV_DONE && LOAD_AVE_TYPE && !VMS]: - Don't #define LDAV_DONE here. - [!LDAV_DONE && LOAD_AVE_TYPE]: Define it here instead. - -Mon Apr 19 18:09:18 1993 Jim Meyering (meyering@comco.com) - - * getdate.y: Use TM_IN_SYS_TIME. - -Fri Apr 16 18:10:06 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getdate.y [emacs] (static): If the Emacs configuration files - have #defined static to be the empty string, then #undefine - it; this file doesn't need that hack. - -Fri Apr 16 12:13:37 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * obstack.c, getopt.c, getopt1.c: Surround code with - #if defined (_LIBC) || !defined (__GNU_LIBRARY__) - -Fri Apr 16 10:52:12 1993 Michael Meissner (meissner@osf.org) - - * getopt.h (getopt): Do not declare getopt with a prototype of - (void) for a non-ANSI compiler. If not GNU library and a - standard compiler, do not declare a prototype for getopt, just - like the comments say, due to different libraries having - different signatures for getopt. - -Thu Apr 15 16:36:03 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c: Move #include <sys/types.h> to top and out of [USG]. - [sgi, UMAX]: Don't include it again later. - -Wed Apr 14 13:06:50 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c: "#ifdef !define ..." -> "#if !defined ..." - - * getopt.c (_NO_PROTO): Don't define if already defined. - -Tue Apr 13 14:56:33 1993 Jim Meyering (meyering@comco.com) - - * getdate.y [HAVE_MEMCPY && !HAVE_BCOPY]: Define bcopy in terms - of memcpy for old versions of bison that generate parsers that - use bcopy. - -Tue Apr 13 00:48:41 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getloadavg.c: Changes for Mach from Thorston Ohl - <ohl@chico.harvard.edu>: - #include <mach/mach.h>, instead of <mach.h>. - (getloadavg): Don't forget to test LDAV_DONE in the CPP - conditional protecting the last load average technique. - -Mon Apr 12 23:03:20 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getloadavg.c: Changes for VMS from Richard Levitte: - (LOAD_AVE_TYPE, NLIST_STRUCT): Collapse multi-line #if - directives into one line; VMS CPP can't handle that. - [VMS] (getloadavg): Add static `initialized' variable, and - set the dsc$w_length and dsc$a_pointer fields of descriptior - instead of the size and ptr fields. - -Mon Apr 12 13:55:34 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c (my_index): Rename arg STRING to STR. - -Sun Apr 11 17:37:19 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.h: Declare optopt. - - * getopt.c (my_index): First arg is `const char *'. - (my_bcopy): Likewise. - -Tue Apr 6 13:23:28 1993 Jim Meyering (meyering@comco.com) - - * getdate.y [hp9000 && !hpux]: Change erroneous #ifdef to #if. - -Mon Apr 5 17:28:35 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getdate.y: #include <sys/times.h> whenever HAVE_GETTIMEOFDAY - is #defined. If it isn't defined, try to guess it. - (main): If HAVE_GETTIMEOFDAY is #defined, use it. - -Sun Apr 4 11:24:59 1993 Jim Meyering (meyering@comco.com) - - * getdate.y [sgi]: Undefine timezone before including <time.h>. - - * getdate.y [time.h vs sys/time.h]: Fix boolean algebra typo from - Mar 31 consolidation. - - * getdate.y: Move static dcls of yyerror and yylex to a point - following the definition of those symbols to getdate_{yyerror,yylex}. - - * getdate.y [_AIX]: AIX needs time.h as well as sys/time.h. - -Fri Apr 2 13:30:03 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c: Define _NO_PROTO before including <stdio.h>. - -Wed Mar 31 18:38:05 1993 Jim Blandy (jimb@geech.gnu.ai.mit.edu) - - * getdate.y: Consolidate the expressions saying when to - #include <sys/time.h>, to avoid multiple inclusions. - - * getdate.y (yylex, yyerror): Added forward static declarations. - - * getdate.y: Note that David Mackenzie's change of March 16 - 1992 introduces another shift/reduce conflict. - -Wed Mar 31 17:30:29 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c [emacs]: Define free as xfree. - (alloca): Use free, not xfree. - -Mon Mar 29 13:46:17 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * a.out.gnu.h [i386] (SEGMENT_SIZE): Don't use this defn on [sequent]. - [sequent && i386]: #include "/usr/include/a.out.h" explicitly, - since in glibc this is installed as <a.out.h>. - -Mon Mar 15 17:34:53 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getopt.c (optopt): Initialize it. - -Sun Mar 14 16:39:57 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getpagesize.h: Add definition for VMS. - -Wed Mar 10 20:57:21 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getloadavg.c: If USG is defined, #include <sys/types.h>. - Move the test for HAVE_FCNTL_H and _POSIX_VERSION down after this. - - * alloca.c: Use xfree instead of free. - -Wed Mar 10 15:22:56 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getloadavg.c [__osf__ && __alpha__] (OSF_ALPHA): Define this. - [OSF_ALPHA] (LOAD_AVE_TYPE): Define as long. - [OSF_ALPHA] (NLIST_STRUCT): Define this. - -Wed Feb 24 12:45:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [NeXT]: #undef FSCALE to indicate that the nlist - method is not the desireable one. - (getloadavg) [NeXT]: Return with errno==EINVAL if called with NELEM>1, - since we can get only the one-minute load average on this system. - -Mon Feb 22 08:59:03 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getloadavg.c (LDAV_CVT): If LDAV_CVT has already been - defined above in terms of Emacs's LOAD_AVE_CVT, don't redefine - it just because we have FSCALE. - -Sun Feb 21 14:52:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c (optopt): New variable. - (_getopt_internal): On any failure for a single-letter option, set - `optopt' to the losing option character. - When a required arg is missing, return ':' instead of '?' if the - first char in OPTSTRING (possibly after the - or +) is a ':'. - Use 1003.2-standard formats for error messages (it specifies - precise formats for unrecognized option and for missing arg). - - * signame.c: #include <sys/types.h> before <signal.h>. - -Thu Jan 28 17:10:08 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (LOAD_AVE_TYPE) [sequent]: Define as long. - (FSCALE) [sequent]: Define as 1000.0, like sgi. - (LDAV_CVT) [FSCALE]: Move outside if #ifndef FSCALE. - -Fri Jan 22 14:51:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c (NLIST_STRUCT): Put defined(sony_news) inside the - parens so we don't redefine NLIST_STRUCT when it's already defined. - - * signame.h [!__STDC__] (psignal): Surround decl with #ifndef - HAVE_SYS_SIGLIST || HAVE_PSIGNAL. - (sys_siglist): Surround decl with #ifndef HAVE_SYS_SIGLIST. - -Sun Jan 17 19:55:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c, getopt1.c: Do define const if IN_GCC. - -Thu Jan 14 15:35:33 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * getopt.c, getopt1.c: Don't redefine const; let callers do it. - -Wed Jan 13 15:38:40 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c [_AIX]: Put #pragma alloca before all else. - -Tue Jan 12 16:48:04 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getloadavg.c: Removed #ifdef TEST around #include of errno.h. - -Mon Jan 11 15:17:29 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getloadavg.c [ultrix]: Define BSD. - - * signame.h [!HAVE_SYS_SIGLIST && !HAVE_PSIGNAL]: Put psignal decl - inside these #ifs. - [!HAVE_SYS_SIGLIST]: Put sys_siglist decl inside this #if. - -Fri Jan 8 17:36:41 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [HAVE_CONFIG_H]: Test this only for actually - including "config.h". Everything else that HAVE_CONFIG_H used to - turn off is now turned on always. - (KERNEL_FILE) [sequent, hpux], (LDAV_SYMBOL) [alliant]: Don't - define if already defined. - [!LDAV_DONE && LOAD_AVE_TYPE && !VMS]: Define LDAV_PRIVILEGED. - - * getloadavg.c (getloadavg) [!LDAV_DONE]: Set errno to zero. - -Wed Jan 6 18:17:28 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * signame.c: #include "signame.h" after possibly defining `const', - so signame.h and signame.c consistently use it or don't use it. - - * signame.h: Use "#if defined (__STDC__) && __STDC__", in place of - "#ifdef __STDC__". - -Sat Jan 2 18:32:01 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * getopt.c: Turn off GETOPT_COMPAT by default. - -Thu Dec 31 12:34:41 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * signame.c [HAVE_CONFIG_H]: #include "config.h". - -Tue Dec 8 21:10:29 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * getloadavg.c: Include fcntl.h if HAVE_FCNTL_H, not USG. - - * getdate.y: Include alloca.h if HAVE_ALLOCA_H, not sparc. - -Tue Dec 1 13:27:40 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getopt.c, getopt1.c, getdate.y, alloca.c, getloadavg.c - [HAVE_CONFIG_H]: Include config.h. - -Tue Nov 24 09:42:29 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getugroups.c: Use HAVE_STRING_H, not USG. - -Mon Nov 23 14:36:33 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * signame.c (init_sigs): Renamed to signame_init, made global. - (sig_abbrev, sig_number): Changed callers. - * signame.h (signame_init): Declare it. - - * signame.c (init_sigs): Add SIGDANGER. - -Thu Nov 19 21:34:43 1992 Jim Blandy (jimb@totoro.cs.oberlin.edu) - - * getloadavg.c: #include <sys/param.h> whether or not the - "emacs" CPP symbol is defined. - -Mon Nov 16 13:35:30 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * a.out.gnu.h (SEGMENT_SIZE): Define as PAGE_SIZE if undefined. - (PAGE_SIZE): Define as 16 if undefined; for i386-minix, which has - no predefine we can test. - -Thu Nov 12 23:31:53 1992 Jim Meyering (meyering@hal.gnu.ai.mit.edu) - - * getdate.y, getusershell.c: Give statically initialized arrays - const attribute. - -Sat Nov 7 13:50:27 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getopt1.c: Only include stdlib.h for __GNU_LIBRARY__. - [!__STDC__]: Don't define const if it was already defined. - -Sat Nov 7 03:28:08 1992 Jim Blandy (jimb@apple-gunkies.gnu.ai.mit.edu) - - * getdate.y [emacs]: Include <config.h>; under Emacs, we get - some additional configuration information from that. - -Sat Nov 7 00:53:35 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getopt.c [!__STDC__]: Don't define const if it was already defined. - -Tue Nov 3 20:12:01 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getloadavg.c: Added `!defined (LDAV_DONE) &&' to all the #if's - for different system types. We want to get one and only one of the - chunks of code which defines LDAV_DONE. - -Tue Oct 27 23:51:02 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getloadavg.c [sequent]: implies NLIST_STRUCT. - [SYSV || _POSIX_VERSION]: include fcntl.h, not sys/file.h. - -Mon Oct 26 22:43:25 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * install.sh: Move or copy first to temp file, then mv to real dest. - -Mon Oct 19 18:35:04 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * obstack.h (__need_ptrdiff_t): Don't define, if __NeXT__. - -Sat Oct 17 03:17:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c: Include string.h only with GNU library. - -Fri Oct 16 17:40:54 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getopt.h (no_argument, required_argument, optional_argument): - Define as macros. - (enum _argtype): Removed. - -Fri Oct 2 18:18:35 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * signame.c (NSIG): #define if not #define'd. - -Thu Oct 1 23:33:55 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getpagesize.h: That should have been HAVE_UNISTD_H, Mike . . . - (no initial underscore). - - * pathmax.h [__MSDOS__]: Don't include sys/param.h. - -Wed Sep 30 13:54:36 1992 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * getpagesize.h: Test for _HAVE_UNISTD_H, because - _POSIX_VERSION is defined by unistd.h, and thus can't be used - in deciding whether to include it. - -Tue Sep 29 07:36:29 1992 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) - - * getloadavg.c: if symbol `sony_news' is defined, define - NLIST_STRUCT and declare LOAD_AVE_TYPE as long. - -Thu Sep 17 20:10:03 1992 Karl Berry (karl@geech.gnu.ai.mit.edu) - - * regex.[ch]: made links into ../regex/, per rms' suggestion. - Please put further ChangeLog entries there. - -Tue Sep 15 20:13:30 1992 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * getpagesize.h: Posix-ify. - -Mon Sep 14 23:48:55 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getloadavg.c: Define SUNOS_5 if appropriate. - -Mon Sep 14 16:31:01 1992 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * getdate.y: AIX needs sys/time.h as well as time.h. - -Sun Sep 13 07:17:09 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getdate.y: Don't forget to include the file which defines - struct timeval and struct timezone, if we're using those. - -Fri Sep 11 10:42:24 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getopt.h: Only prototype getopt for the GNU libc. - -Fri Sep 11 07:46:21 1992 Karl Berry (karl@hal.gnu.ai.mit.edu) - - * regex.h (_RE_ARGS) [!__STDC__]: expand to empty parens. - -Fri Sep 11 00:57:56 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * regex.c (SET_LIST_BIT): Always treat c as positive. - -Thu Sep 10 19:38:59 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getugroups.c: Always declare getgrent. getgroups fills in - an array of int on 386BSD, too. - -Thu Sep 10 16:35:10 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * getdate.y: Generalize previous change; always use - gettimeofday to find the current time zone's Greenwich offset, - unless we're being compiled under USG or some other system - which already has CPP conditionals saying how to get the time - zone offset. - - * getdate.y: Don't divide the Greenwich offset returned by - gettimeofday by 60; it's already expressed in minutes, so it - doesn't need to be converted. - -Wed Sep 9 21:49:20 1992 Karl Berry (karl@apple-gunkies.gnu.ai.mit.edu) - - * regex.[ch]: version 0.10, incorporating below changes and - more. See /gd/gnu/lib/regex-*/ChangeLog. - -Wed Sep 9 03:09:55 1992 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) - - * malloc.c: if USG, define macros for bcopy and bzero. - Don't redefine USG for hpux if already defined. - -Tue Sep 1 16:46:47 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) - - * getdate.y: If __ultrix__ is defined, then we don't have the - timezone array, but we do have ftime, so use that instead. - -Fri Aug 28 15:52:40 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getloadavg.c [SUNOS_5]: New code from Epoch 4.2. - -Thu Aug 27 16:38:22 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getloadavg.c: Don't check NLIST_STRUCT to decide whether to - define LOAD_AVE_TYPE. - -Wed Aug 26 16:45:54 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getloadavg.c (FSCALE): Don't #define if already defined. - -Mon Aug 24 13:00:34 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getopt.c: Include string.h if USG or STDC_HEADERS as well as - if __GNU_LIBRARY__. - -Sun Aug 23 02:51:31 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * regex.[ch] (re_comp): Remove const from return value, to - avoid conflict with 386BSD unistd.h. - -Sat Aug 22 18:30:58 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getloadavg.c: Define FCALE, then LDAV_CVT in terms of that. - -Fri Aug 21 16:02:20 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getloadavg.c (_SEQUENT_): Define NLIST_STRUCT. - -Wed Aug 19 16:35:33 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [NLIST_NAME_UNION]: Test this intead of convex. - -Tue Aug 18 23:06:47 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * regex.c (DO_RANGE): Make end and this_char integers, and - fetch this_char's initial value using an 'unsigned char *', so that - character ranges including '\177' through '\377' will work. - -Tue Aug 18 17:32:40 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getopt.c, getopt1.c, getopt.h: Change license back to GPL from LGPL. - -Fri Aug 14 07:38:34 1992 Torbjorn Granlund (tege@jupiter.sics.se) - - * obstack.h: Fix spelling errors. - -Sat Aug 1 18:12:07 1992 Michael Meissner (meissner@osf.org) - - * obstack.c (CALL_FREEFUN): Recode to use if/else instead of - ?:, since the MIPS compiler does not like ?: expressions where - the two alternate values are both void. - -Sat Aug 1 00:11:25 1992 Fred Fish (fnf at fishpond) - - * obstack.h (obstack_specify_allocation): Use malloc/free - compatible calling convention. - * obstack.h (obstack_specify_allocation_with_arg): Use mmalloc/ - mfree compatible calling convention. - -Wed Jul 29 18:53:13 1992 Karl Berry (karl@hal) - - * regex.c: version 0.9; fixes bug wrt always finding the longest - match. See /gd/gnu/lib/regex-*/ChangeLog. - -Sun Jul 26 18:24:13 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [NeXT]: #undef BSD after <sys/param.h>. - -Sun Jul 26 17:04:20 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * obstack.h (struct obstack): extra_arg is now char *. - (obstack_alloc_arg): Deleted. - (obstack_specify_allocation): Take new arg, to specify extra_arg. - Call _obstack_begin_1. - * obstack.c (_obstack_begin_1): New function. - -Fri Jul 24 16:29:17 1992 Fred Fish (fnf at fishpond) - - * obstack.h (struct obstack): Change maybe_empty_object to - bitfield. Add use_extra_arg bitfield and extra_arg. - * obstack.h (obstack_init, obstack_begin): Cast type of - obstack_chunk_free as well as obstack_chunk_alloc. - * obstack.h (obstack_specify_allocation, obstack_alloc_arg): - New macros. - * obstack.c (CALL_CHUNKFUN, CALL_FREEFUN): New macros to hide - details of chunk allocator/deallocator calls. - * obstack.c (_obstack_begin, _obstack_newchunk): Use CALL_CHUNKFUN. - * obstack.c (_obstack_free, _obstack_newchunk): Use CALL_FREEFUN. - -Fri Jul 24 16:09:37 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getugroups.c [_POSIX_SOURCE]: Define endgrent as empty. - - * getloadavg.c [HAVE_UNISTD_H]: Include unistd.h. - -Sun Jul 19 23:29:27 1992 John Gilmore (gnu@cygnus.com) - - * stab.def: Order values numerically, and add some stabs - used by Solaris. - -Fri Jul 17 20:21:20 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getopt.c: Only include stdlib.h for GNU C library, due to - conflicting getopt prototypes. - -Fri Jul 17 05:49:07 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * obstack.c (DEFAULT_ALIGNMENT): Cast to widest integer type to - avoid possible warning if int is narrower than pointer. - -Fri Jul 17 03:47:16 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getdate.y: Use HAVE_FTIME instead of FTIME_MISSING. - * signame.c: Use HAVE_SYS_SIGLIST instead of SYS_SIGLIST_MISSING. - -Tue Jul 14 18:53:46 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c (exchange): Cast args to my_bcopy to (char *). - -Tue Jul 14 14:34:33 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * getopt.c: Include stdlib.h and string.h if STDC_HEADERS as - well as if __GNU_LIBRARY__. - -Sat Jul 11 13:24:12 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * obstack.h: Define __need_ptrdiff_t for gstddef.h. - -Fri Jul 10 15:01:25 1992 Karl Berry (karl@hal) - - * regex.[ch]: new version (0.8), incorporating the changes - below. See /gd/gnu/regex/ChangeLog. - -Fri Jul 10 03:46:24 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * obstack.h: Get ptrdiff_t from gstddef.h when building GCC with GCC. - -Thu Jul 9 21:38:37 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getloadavg.c [DGUX]: Cast first arg to dg_sys_info to (long int *). - -Wed Jul 8 19:43:26 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * error.c (private_strerror): Ok if errnum == sys_nerr. - -Wed Jul 8 12:38:37 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * regex.c: Applied tentative patches from Karl Berry: - Miscellaneous doc fixes and reformatting. - (REGEX_REALLOCATE): Parenthesize call to realloc. - Test HAVE_ALLOCA_H, instead of testing for things like sparc, - etc. Don't declare alloca under AIX, since that's done with - the pragma at the top of the file. - (IS_IN_FIRST_STRING): Renamed to FIRST_STRING_P. - (re_match_2): Uses of IS_IN_FIRST_STRING changed. - (TALLOC): Parenthesize call to malloc. - (REGEX_TALLOC): New macro. - (FREE_NONNULL): New macro. - (FREE_VARIABLES): Use FREE_NONNULL instead of always freeing. - (re_match_2): Don't use initializers in declarations of - regstart, regend, old_regstart, old_regend, reg_info, - best_regstart, best_regend, reg_dummy, and reg_info_dummy. - Initialize them only if we actually use the registers. - New variable match_end for use instead of best_regend[0], in - case we don't allocate the registers. Don't fuss with - best_regend[0] directly. - -Sat Jul 4 07:53:45 1992 Karl Berry (karl@hal) - - * regex.c (re_compile_fastmap): init succeed_n_p (to false). - -Fri Jul 3 14:45:29 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * error.c: Change FOO_MISSING to HAVE_FOO. - -Thu Jul 2 15:47:20 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * getloadavg.c: Tweak #defines for SVR4. - Include sys/param.h if unix, not if BSD. - -Wed Jul 1 11:48:37 1992 Karl Berry (karl@hal) - - * regex.[ch]: new version (0.7). See /gd/gnu/regex/ChangeLog. - -Sun Jun 28 06:05:39 1992 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * obstack.h: Define a type for the result of __PTR_TO_INT. - -Sat Jun 27 10:50:59 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) - - * xregex.c (re_match_2): When we have accepted a match and - restored d from best_regend[0], we need to set dend - appropriately as well. It may happen that dend == end_match_1 - while the restored d is in string2, so we should be prepared - to set dend to end_match_2 in this case. - -Tue Jun 23 22:27:36 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * getloadavg.c (getloadavg) [DGUX]: Don't initialize structure; - the error handling doesn't work that way now. - -Fri Jun 19 13:14:57 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * install.sh: Use - instead of :- in variable assignments. - -Tue Jun 16 19:32:46 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.c [HAVE_ALLOCA_H]: Test to include <alloca.h>. - -Thu Jun 11 15:15:38 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * arscan.c: Removed. It is now part of Make. - -Mon Jun 8 18:03:28 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) - - * regex.h (RE_NREGS): Doc fix. - - * xregex.c (re_set_registers): New function. - * regex.h (re_set_registers): Declaration for new function. - -Wed Jun 3 16:59:49 1992 Karl Berry (karl@geech.gnu.ai.mit.edu) - - * regex.[ch]: new version (0.6). See ~karl/regex/ChangeLog. - -Sat May 23 22:28:54 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * getopt.c [LIBC]: No longer need to #include <ansidecl.h>. - - * getopt.h, getopt.c, getopt1.c: Changed copyright notice to LGPL. - -Fri May 22 14:50:25 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c: Change sparc conditional so that sun && sparc - causes use of alloca.h. - -Thu May 14 16:50:28 1992 Karl Berry (karl@kropotkin.gnu.ai.mit.edu) - - * regex.c, regex.h: new version (0.5). See ~karl/regex/ChangeLog. - -Tue May 12 03:27:19 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) - - * getopt.c (_getopt_internal): Don't allow it. - -Tue May 12 00:33:31 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) - - * getopt.c (_getopt_internal): Allow optional arg to be in ARGV elt - after switch. - -Thu May 7 11:46:18 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) - - * crt0.c (_start): When m68000 is #defined, don't use the - simple C version of _start that simply calls start1; GCC 2.1 - without optimization has _start push a word of garbage on the - stack, which screws up the CRT0_DUMMIES hack. Instead, use an - assembly-language version of _start. - -Mon May 4 16:26:49 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) - - * getopt.h: #ifdef __STDC__ -> #if __STDC__. - -Thu Apr 30 18:53:52 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * a.out.gnu.h [NeXT]: Define PAGE_SIZE, and not SEGMENT_SIZE. - -Sun Apr 26 02:33:50 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) - - * crt0.c: Don't #include "config.h" unless emacs is #defined. - -Tue Apr 21 17:45:54 1992 Jim Blandy (jimb@pogo.cs.oberlin.edu) - - * regex.c (re_match_2): If we've already allocated memory for - the search buffers, don't allocate them again. - -Mon Apr 13 20:17:47 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * getopt.h: Make the multiple inclusion protection look like - the rest of libc's. - -Wed Apr 1 06:10:15 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * regex.c [emacs]: Include <sys/types.h>, since regex.h wants it. - -Tue Mar 31 12:01:32 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * crt0.c: The changes below are the results of a merge with - the Emacs 19 sources: - (start1): Declare this static before all uses. - Add conditionals for ALLIANT_2800. - - * (_start) for alliant: Set _curbrk and _minbrk from _setbrk, - to help with Emacs dumping. - -Mon Mar 30 18:00:41 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) - - * malloc.c [VMS]: Include vlimit.h. - (calloc): Add a quick implementation of this, in case - something from another library uses it. - (get_lim_data): There are several versions of this function, - tailored for different operating systems; the appropriate - version is chosen by checking for preprocessor symbols which - indicate which operating system Emacs is being compiled for. - Re-arrange the preprocessor conditionals so that the generic - "none of the above" version is last, in the final "else" clause. - - * alloca.c: Do nothing if alloca is defined as a macro. - -Fri Mar 20 02:53:14 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * a.out.gnu.h: Added missing backslash in #if. - -Mon Mar 16 23:46:18 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu) - - * getdate.y: Support ISO 8601 format. yyyy-mm-dd. - -Sun Mar 15 22:50:30 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * a.out.gnu.h [NeXT || mips] (SEGMENT_SIZE): Define as PAGE_SIZE. - [NeXT] (PAGE_SIZE): Define as 0x2000. - [mips] (PAGE_SIZE): Define as 4096. - - * getopt.c [sparc && svr4]: No <alloca.h>. - -Thu Mar 12 14:26:48 1992 Karl Berry (karl@apple-gunkies.gnu.ai.mit.edu) - - * regex.[ch]: new version (0.4). See ~karl/regex/ChangeLog. - -Tue Mar 10 22:26:14 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * a.out.gnu.h [sun && mc68000]: SEGMENT_SIZE == 0x2000. - -Thu Feb 27 21:37:53 1992 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) - - * getdate.y: `#undef timezone' on SGI systems to avoid naming - clash. - (get_date): Use underscore version for SGI. - [This fix is from beebe@mach.utah.edu.] - -Tue Feb 25 21:23:50 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) - - * getopt.c [__GNU_LIBRARY__]: #include <string.h>. - -Thu Feb 20 13:04:57 1992 Karl Berry (karl@wombat.gnu.ai.mit.edu) - - * regex.[ch]: new version (0.3). See ~karl/regex/ChangeLog for all - the details. - -Wed Feb 19 23:04:05 1992 Charles Hannum (mycroft@gnu.ai.mit.edu) - - * regex.c [_AIX]: Move #pragma alloca to top of file to accommodate - AIX C compiler. - -Mon Feb 17 03:44:03 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) - - * a.out.gnu.h [sparc] (_N_HDROFF): Define as (-sizeof (struct exec)). - That is as if SEGMENT_SIZE were 0, but that would be wrong. - - * a.out.gnu.h [i386] (SEGMENT_SIZE): Define. - -Sun Feb 16 03:10:23 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) - - * a.out.gnu.h [sparc] (PAGE_SIZE, SEGMENT_SIZE): Define. - (PAGSIZ): Define as PAGE_SIZE. - (SEGSIZ): Define as SEGMENT_SIZE. - -Thu Jan 30 19:03:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * regex.c (re_search_2): Improve comments. - -Tue Jan 28 00:28:15 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.h (struct option): Change has_arg back to an int. - -Mon Jan 27 23:03:33 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c (_getopt_internal): Don't use a relational operator (>) - on the has_arg field, which is now an enum. - -Fri Jan 17 21:34:02 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) - - * getopt.h: Don't declare envopt. - - * envopt.c: Tweaks to compile under libc. - -Fri Jan 17 21:23:02 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c: Describe the new args to _getopt_internal. - -Fri Jan 17 19:26:54 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * getopt.h: Remove decls of _getopt_* and option_index. - Make `name' elt of `struct option' const char *. - Make `has_arg' an enum (integer values same). - * getopt.c (_getopt_internal): Renamed from getopt, taking 3 new args - in place of global vars _getopt_long_options, _getopt_long_only, - and option_index (which are all now gone). - (getopt): New fn, front end to _getopt_internal. - * getopt1.c (getopt_long, getopt_long_only): Use _getopt_internal. - -Tue Jan 7 02:08:10 1992 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * regex.c (malloc, realloc): Don't specify arg types--can - cause error. - -Mon Jan 6 12:53:42 1992 Karl Berry (karl at apple-gunkies.gnu.ai.mit.edu) - - * regex.[ch]: new versions. See ~karl/regex/ChangeLog for all - the details. - -Tue Dec 24 22:42:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * obstack.h: Indentation fix. - -Mon Dec 23 23:41:39 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * regex.c, putenv.c, getugroups.c: Change POSIX ifdefs to - HAVE_UNISTD_H and _POSIX_VERSION. - -Wed Dec 18 14:24:35 1991 Michael Meissner (meissner at osf.org) - - * getopt.h (whole file): Protect getopt.h from being included - twice. - -Fri Dec 6 13:00:42 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c (getopt): Cast argv to (char **) (with no const) - when passing to exchange, to be explicit about what's happening. - - * getopt.c: Change POSIX_ME_HARDER to POSIXLY_CORRECT. - -Thu Dec 5 12:12:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * getopt.c (my_bcopy, my_index): New functions. - Use instead of bcopy and index. - Avoid conditionals on USG, NeXT, hpux, __GNU_LIBRARY__, etc. - - * getopt1.c, getopt.h (getopt_long*): Like yesterday's getopt change. - -Wed Dec 4 10:51:45 1991 Ron Guilmette (rfg at ncd.com) - - * getopt.c, getopt.h (getopt): Correct the type of the second - parameter so that it agrees with ANSI/POSIX standards. - - * getopt.h: Make all function declarations explicitly `extern'. - -Tue Dec 3 01:34:59 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c: Fix some wrong comments. - -Mon Dec 2 17:49:50 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c (getopt): Support `+' to introduce long-named - options, as well as `--', if GETOPT_COMPAT is defined. - It is defined by default. - -Sun Dec 1 21:12:32 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c (getopt): Long-named options are introduced by `--' - instead of `+'. - Protect all fprintfs with checks of opterr. - Include getopt.h instead of redeclaring things, to stay in sync. - * getopt1.c (getopt_long): No longer disable long options if - POSIX_ME_HARDER is set. - (main): Handle -d. Remove unused var. - -Mon Nov 4 23:06:54 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * regex.h [!__STDC__]: regerror was declared to return size_t * - instead of size_t. - -Sat Nov 2 21:26:42 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * error.c: Use STRERROR_MISSING instead of STDC_HEADERS to - control compiling strerror. - -Fri Oct 18 00:33:43 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getugroups.c: GID_T -> GETGROUPS_T, for clarity. - -Wed Oct 9 14:14:31 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c: Treat hpux like USG. - -Tue Oct 8 21:36:52 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * alloca.c: Add some parens to make precedence clearer. - -Sat Oct 5 13:17:59 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * getopt.c: Treat NeXT like USG. - -Sat Sep 28 02:01:45 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) - - * regex.c: Include stdlib.h only if STDC_HEADERS, not if POSIX - (POSIX.1 doesn't require it to exist). - -Wed Sep 4 17:32:51 1991 Kathryn A. Hargreaves (letters at apple-gunkies) - - * regex.[ch]: Put current version (0.1) here, after backing up old - files. For ChangeLog details, please refer to the ChangeLog - file in my regex directory. - -Sat Aug 24 04:22:01 1991 David J. MacKenzie (djm at apple-gunkies) - - * getopt1.c: Declare getenv. - -Mon Aug 19 01:35:48 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * regex.c, getopt.c: Indent '#pragma alloca' so non-ANSI - compilers won't choke on it. - -Mon Aug 12 16:43:17 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * getopt.c: _POSIX_OPTION_ORDER renamed to POSIX_ME_HARDER. - * getopt1.c: Support POSIX_ME_HARDER. - -Wed Aug 7 00:53:00 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * getdate.y: Add patch from perf@efd.lth.se to support - explicit "dst", for European timezones. - -Tue Jul 30 17:00:23 1991 David J. MacKenzie (djm at apple-gunkies) - - * getdate.y: Rename NEED_TZSET to FTIME_MISSING. - -Fri Jul 26 23:09:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * regex.h: Delete `#pragma once'. - -Fri Jul 26 17:07:39 1991 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * a.out.gnu.h [sparc]: #define SEGMENT_SIZE 0. Is that right?? - -Wed Jul 24 03:29:26 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getopt.c, regex.c: Put alloca stuff first, where RS6000 requires it. - * getopt.c: Use const instead of CONST, and define it to - nothing if not __STDC__. - - * xmalloc.c (xmalloc, xrealloc): Exit with value 2 on error, - not 1, so cmp can use it. - -Tue Jul 23 15:01:26 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getugroups.c: GID_T is int if ultrix as well as if sun. - -Mon Jul 22 17:39:35 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * getugroups.c: If POSIX and not sun (bogus!), take an array - of gid_t instead of an array of int. - -Tue Jul 16 21:24:43 1991 Michael Meissner (meissner at wookumz.gnu.ai.mit.edu) - - * obstack.h (__extension__): If compiling with a 1.xx GCC - compiler define __extension__ as nothing. - -Tue Jul 16 20:25:22 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * obstack.h [not __GNUC__] (obstack_finish): Add extra parens for clarity. - (conditionals for __GNUC__): Do not test __STRICT_ANSI__. - [__GNUC__] (most macros): Use __extension__ to avoid -pedantic warning. - -Tue Jul 16 17:12:02 1991 Michael Meissner (meissner at wookumz.gnu.ai.mit.edu) - - * obstack.h (obstack_finish): If compiling with a non-GCC - compiler, use the argument (h) to point to the obstack - structure, rather than the __o1 pointer, which only exists in - the GNU side of the macros. - (#if __GNUC__ && __STDC__): If -pedantic is used do not use - the GNU CC ({}) optimizations, since these cause warnings to - be omitted. - -Tue Jul 16 01:59:58 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * getdate.y (TimezoneTable): #if 0 zones which would require - storing a float in a time_t. - -Fri Jul 12 17:01:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * obstack.h (struct obstack): New flag maybe_empty_object. - (obstack_finish, both versions): Set the flag if allocate empty object. - Don't make the object nonempty. This replaces May 7 change. - * obstack.c (_obstack_begin, _obstack_newchunk): Clear the flag. - (_obstack_newchunk): Don't free "empty" chunk if flag is set. - (_obstack_free): Set the flag if we change chunks. - -Sat Jul 6 21:09:31 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * getdate.y [NEED_TZSET]: Declare `timezone'. - -Thu Jun 20 01:11:31 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * getopt.c: Separate decls of getenv and malloc from decls of - index and bcopy, to reduce duplicated code. - -Tue Jun 11 00:11:07 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * regex.c (re_match_2): In case wordbeg, check whether we are - at the start of the string before checking the previous - character, not after, just like in case wordend. - - * getdate.y: Declare alloca for old bisons. - -Mon May 20 13:13:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * obstack.c (obstack_free, _obstack_free): Define both, the same way. - -Sun May 19 18:37:38 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) - - * getdate.y: Rename getdate to get_date to avoid conflict with SVR4. - -Fri May 17 21:09:14 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) - - * filemode.c (ftypelet): Only test for S_ISBLK if it's defined. - -Sat May 11 14:49:43 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * obstack.h (obstack_finish): Typo in last change (non-GNUC version). - -Tue May 7 15:38:51 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * obstack.h (obstack_finish): Make each object at least 1 byte. - -Tue Apr 30 13:58:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * getopt.c, regex.c [_AIX]: Do #pragma alloca. - -Wed Apr 10 19:08:02 1991 Per Bothner (bothner at pogo.gnu.ai.mit.edu) - - * signame.h: Make sys_siglist be const char[] if __STDC__ - is defined (thus making it compatible with signame.c). - -Tue Apr 2 16:49:02 1991 Roland McGrath (roland at churchy.gnu.ai.mit.edu) - - * glob.c: Put #ifndef alloca around alloca goop. - (glob_vector): Put #ifdef SHELL around label used only there. - -Tue Apr 2 14:32:47 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * glob.c: Attempt to reconcile with bash and make versions of - #ifdefs and #includes. - - * glob.c (glob_vector): If _POSIX_SOURCE, don't use - (non-POSIX) d_ino field of struct dirent. (from bfox) - -Sun Mar 17 16:25:23 1991 Richard Stallman (rms@mole.ai.mit.edu) - - * regex.c (PUSH_FAILURE_POINT): Was multiplying stack size by - a big number. Multiply by 2 instead. - - * signame.c (init_sigs): Define i. - -Fri Feb 22 12:38:22 1991 Mike Haertel (mike at apple-gunkies) - - * obstack.c (_obstack_allocated_p): Use >=, not >, when - comparing with the beginning of the chunk, for the exact - same reason as RMS' change below. - -Thu Feb 21 21:29:50 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.h [not __GNUC__] (obstack_free): Use >, not >=, - when comparing with beginning of chunk. - - * getopt.c (bcopy): Never declare it. - -Thu Feb 21 09:18:47 1991 David J. MacKenzie (djm at geech.ai.mit.edu) - - * glob.c: Don't declare bcopy if it is a macro. - Use BSD strings for NeXT. Don't include memory.h on POSIX. - -Mon Feb 18 23:41:20 1991 David J. MacKenzie (djm at geech.ai.mit.edu) - - * glob.c: Add special code for bash, #ifdef SHELL. - (glob_pattern_p): Only recognize `[' as a metacharacter if - there is a matching `]', for POSIX.2. (from bfox) - -Mon Jan 28 00:30:39 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * crt0.c [m68k]: Add conditionals for sun_68881, sun_fpa, sun_soft. - -Sun Jan 27 15:18:26 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * getopt.c (bcopy): Don't declare it if it's a macro. - -Thu Jan 24 22:16:14 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * regex.c (re_compile_pattern): Don't translate chars in char set - until the time the bits are set for them. - -Sat Dec 15 18:36:50 1990 David J. MacKenzie (djm at apple-gunkies) - - * filemode.c: Define each S_ISFOO function if not defined by - sys/stat.h. - -Sat Dec 15 15:10:14 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.h (obstack_init): Cast the chunk alloc function. - (obstack_begin): Likewise. - -Thu Dec 13 17:58:07 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.h: At all calls to _obstack_newchunk, - enclose in (..., 0), so that both alternatives are ints. - -Thu Dec 6 11:39:11 EST 1990 Jay Fenlason (hack@ai.mit.edu) - - * getdate.y: Add support for 'date' style yymmddhhss dates. - -Mon Dec 3 14:09:40 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.h: - At all calls to _obstack_newchunk, cast the other alternative to void. - -Sat Dec 2 21:56:25 1990 Roland McGrath (roland at albert.ai.mit.edu) - - * a.out.gnu.h (N_COMM): Define this. - -Thu Nov 30 00:04:35 1990 Roland McGrath (roland at geech.ai.mit.edu) - - * a.out.gnu.h (_N_HDROFF): Use SEGMENT_SIZE rather than a hard-coded - 1024. What moron did this?? - -Wed Nov 29 17:41:09 1990 Roland McGrath (roland at albert.ai.mit.edu) - - * a.out.gnu.h [vax, hp300, pyr] (SEGMENT_SIZE): Define as PAGE_SIZE, - not page_size. - -Wed Nov 14 00:35:16 1990 David J. MacKenzie (djm at apple-gunkies) - - * regex.c (SIGN_EXTEND_CHAR): If UNSIGNED_CHAR is defined, use - an alternate definition (suggested in the GNU grep README). - -Thu Nov 8 12:08:52 1990 David J. MacKenzie (djm at apple-gunkies) - - * filemode.c (ftypelet): Pass a mode_t instead of unsigned - short, so it works on Evans' Minix. If _POSIX_SOURCE is not - defined, define mode_t as unsigned short. Define S_ISTYPE - macros if needed. Use them. - - * modechange.c: Use S_ISDIR. Define if needed. - -Fri Oct 26 16:50:01 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.c (_obstack_newchunk): If old_chunk becomes empty, free it. - -Mon Oct 15 13:50:17 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.h (obstack_free): In non-GNU C case, don't use - value of _obstack_free. - -Sun Oct 14 18:51:51 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * crt0.c (new hp assembler): Double flag_fpa and flag_68881 if %d2!=0. - - * alloca.s [MOTOROLA_DELTA]: Avoid putting sp above stack top. - -Mon Oct 1 16:20:02 EDT 1990 Jay Fenlason (hack@ai.mit.edu) - - * obstack.h Declare _obstack_free and _obstack_begin as void instead - of int. Otherwise, GCC won't let you compile obstack.c - -Fri Sep 28 23:53:28 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * obstack.h: Declare the functions we use from obstack.c. - (obstack_blank): In both definitions, rearrange pointer math to avoid - pointing past end of allocated memory. - -Wed Sep 19 21:09:26 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) - - * obstack.h (obstack_int_grow): In non-GCC case, don't try to - post-increment a cast. - -Mon Sep 3 22:18:38 1990 David J. MacKenzie (djm at apple-gunkies) - - * error.c [DOPRNT_MISSING]: Pass args as a fixed number of - `char *'. - -Sun Sep 2 20:51:02 1990 David J. MacKenzie (djm at apple-gunkies) - - * regex.c: Use standard string functions if STDC_HEADERS is - defined. - -Fri Aug 31 06:59:47 1990 Jim Kingdon (kingdon at albert.ai.mit.edu) - - * getopt1.c (getopt_long{,_only}): If opt_index is NULL, don't - try to store into *opt_index. - -Tue Aug 28 18:45:16 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * regex.c: Include some system header files if appropriate. - -Wed Aug 15 14:38:15 1990 David J. MacKenzie (djm at apple-gunkies) - - * regex.c: Define isgraph if ctype.h doesn't (as on Sequents). - -Sun Aug 12 00:20:19 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * getopt.c (getopt): If optstring starts with '+', don't - permute; this is for utilities like time, nice, xargs, and - env, which don't want to mix up their options with those of - the programs they run, but don't want to turn off permuting - for those programs by setting _POSIX_OPTION_ORDER. - -Fri Aug 3 14:25:35 1990 David J. MacKenzie (djm at pogo.ai.mit.edu) - - * getopt.c (main), getopt1.c (main): Read option chars into an - int, not a char. - - * getopt.c (getopt): Increment `optind' after finding - unrecognized or ambiguous long named option. - -Thu Jul 5 09:50:25 1990 David J. MacKenzie (djm at apple-gunkies) - - * getopt.c: If long option's `flag' field is zero, return the - contents of the `val' field. - -Fri Jun 29 01:30:22 1990 David J. MacKenzie (djm at apple-gunkies) - - * getopt.h: Mention in comment how to handle long options that - don't just store a constant in an int. - -Mon Jun 25 18:15:46 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * filemode.c (ftypelet): Distinguish between regular files and - unknown file types using '-' and '?'. - -Sat Jun 16 11:18:26 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * getopt.c: If STDC_HEADERS or __GNU_LIBRARY__ is defined, - include ANSI C header files. - -Thu Jun 14 13:21:42 1990 David J. MacKenzie (djm at apple-gunkies) - - * glob.c (glob_match): Eliminate '^' as a character class - negator, leaving just the POSIX '!'. - -Thu Jun 7 01:01:40 1990 Roland McGrath (mcgrath at paris.Berkeley.EDU) - - * glob.c: __GNU_LIBRARY__ implies DIRENT and STDC_HEADERS. - -Thu Jun 7 03:45:33 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * glob.c: Use <dirent.h> if DIRENT is defined, not _POSIX_SOURCE. - -Wed Jun 6 00:05:03 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * glob.c (glob_filename): Remove tilde expansion code. - -Tue Jun 5 00:35:48 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * error.c: Use VPRINTF_MISSING instead of VPRINTF to control - use of _doprnt. - (error): Use strerror. - (strerror) [!STDC_HEADERS]: New function. - - * glob.c: Optionally support POSIX and STDC headers. - (glob_filename): Make tilde expansion work for patterns - containing subdirectories. - -Mon Jun 4 16:31:40 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * glob.c (glob_match): Allow '!' as well as '^' to negate - character classes. Check for end of filename when comparing - with char class. Check for end of pattern after backslash in - character class. - (glob_vector): Only calculate D_NAMLEN once, for efficiency. - Don't allocate name_vector if a previous malloc failed. - (glob_dir_to_array): Make string copying more efficient. - (glob_filename): directory_size was off by 1. - Reallocation of result had '1' instead of 'l'. - -Thu May 31 01:45:16 1990 David J. MacKenzie (djm at apple-gunkies) - - * glob.c: Reformat to resemble the bash version more. - - * filemode.c: If _POSIX_SOURCE is defined, use POSIX macro - names for mode bits. - -Sat May 19 15:17:42 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * filemode.c (mode_string): New function. - (filemodestring): Reimplement in terms of mode_string. - (ftypelet): Take an unsigned short instead of a struct stat *. - Fix up comments. - -Thu May 10 12:57:11 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * error.c: If __STDC__, use stdarg instead of varargs. - -Tue May 1 16:07:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * alloca.s [hp9000s300]: Avoid using sp as temporary. - -Fri Apr 20 16:58:24 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * obstack.c, obstack.h (obstack_free): Use >, not >=, to compare - object with chunk address. - -Mon Apr 9 15:11:22 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * a.out.encap.h: Protect against multiple inclusion. - -Fri Apr 6 23:27:46 1990 Jim Kingdon (kingdon at apple-gunkies.ai.mit.edu) - - * a.out.gnu.h (enum machine_type): Put missing comma after M_SPARC. - -Mon Apr 2 04:49:18 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * malloc.c: Make get_lim_data always "static void" regardless - of #ifdefs. Declare it before using it. - -Mon Mar 26 00:36:52 1990 David J. MacKenzie (djm at spike.ai.mit.edu) - - * getopt.c (getopt): For long-named options that take optional - args, never use the next argv-element as an arg; args for - these must be part of the same argv-element, separated from - the option name by a '='. This makes them consistent with how - short-named options with optional args are handled. - - * getopt.h, getopt.c, getopt1.c: Add some const declarations - if __STDC__. - -Sun Mar 4 12:11:31 1990 Kathy Hargreaves (kathy at hayley) - - * regex.h: Added syntax bit RE_NO_EMPTY_RANGES which is set if - an ending range point has to collate higher or equal to the - starting range point. - Added syntax bit RE_NO_HYPHEN_RANGE_END which is set if a hyphen - can't be an ending range point. - Set to two above bits in RE_SYNTAX_POSIX_BASIC and - RE_SYNTAX_POSIX_EXTENDED. - - regex.c: (re_compile_pattern): Don't allow empty ranges if the - RE_NO_EMPTY_RANGES syntax bit is set. - Don't let a hyphen be a range end if the RE_NO_HYPHEN_RANGE_END - syntax bit is set. - (ESTACK_PUSH_2): renamed this PUSH_FAILURE_POINT and made it - push all the used registers on the stack, as well as the number - of the highest numbered register used, and (as before) the two - failure points. - (re_match_2): Fixed up comments. - Added arrays best_regstart[], best_regstart_seg1[], best_regend[], - and best_regend_seg1[] to keep track of the best match so far - whenever reach the end of the pattern but not the end of the - string, and there are still failure points on the stack with - which to backtrack; if so, do the saving and force a fail. - If reach the end of the pattern but not the end of the string, - but there are no more failure points to try, restore the best - match so far, set the registers and return. - Compacted some code. - In stop_memory case, if the subexpression we've just left is in - a loop, push onto the stack the loop's on_failure_jump failure - point along with the current pointer into the string (d). - In finalize_jump case, in addition to popping the failure - points, pop the saved registers. - In the fail case, restore the registers, as well as the failure - points. - - -Sun Feb 18 15:08:10 1990 Kathy Hargreaves (kathy at hayley) - - * regex.c: (global): Defined a macro GET_BUFFER_SPACE which - makes sure you have a specified number of buffer bytes - allocated. - Redefined the macro BUFPUSH to use this. - Added comments. - - (re_compile_pattern): Call GET_BUFFER_SPACE before storing or - inserting any jumps. - - (re_match_2): Set d to string1 + pos and dend to end_match_1 - only if string1 isn't null. - Force exit from a loop if it's around empty parentheses. - In stop_memory case, if found some jumps, increment p2 before - extracting address to which to jump. Also, don't need to know - how many more times can jump_n. - In begline case, d must equal string1 or string2, in that order, - only if they are not null. - In maybe_finalize_jump case, skip over start_memorys' and - stop_memorys' register numbers, too. - -Thu Feb 15 15:53:55 1990 Kathy Hargreaves (kathy at hayley) - - * regex.c (BUFPUSH): off by one goof in deciding whether to - EXTEND_BUFFER. - -Wed Jan 24 17:07:46 1990 Kathy Hargreaves (kathy at hayley) - - * regex.h: Moved definition of NULL to here. - Got rid of ``In other words...'' comment. - Added to some comments. - - regex.c: (re_compile_pattern): Tried to bulletproof some code, - i.e., checked if backward references (e.g., p[-1]) were within - the range of pattern. - - (re_compile_fastmap): Fixed a bug in succeed_n part where was - getting the amount to jump instead of how many times to jump. - - (re_search_2): Changed the name of the variable ``total'' to - ``total_size.'' - Condensed some code. - - (re_match_2): Moved the comment about duplicate from above the - start_memory case to above duplicate case. - - (global): Rewrote some comments. - Added commandline arguments to testing. - - -Wed Jan 17 11:47:27 1990 Kathy Hargreaves (kathy at hayley) - - * regex.c: (global): Defined a macro STORE_NUMBER which stores a - number into two contiguous bytes. Also defined STORE_NUMBER_AND_INCR - which does the same thing and then increments the pointer to the - storage place to point after the number. - Defined a macro EXTRACT_NUMBER which extracts a number from two - continguous bytes. Also defined EXTRACT_NUMBER_AND_INCR which - does the same thing and then increments the pointer to the - source to point to after where the number was. - - -Tue Jan 16 12:09:19 1990 Kathy Hargreaves (kathy at hayley) - - * regex.h: Incorporated rms' changes. - Defined RE_NO_BK_REFS syntax bit which is set when want to - interpret back reference patterns as literals. - Defined RE_NO_EMPTY_BRACKETS syntax bit which is set when want - empty bracket expressions to be illegal. - Defined RE_CONTEXTUAL_ILLEGAL_OPS syntax bit which is set when want - it to be illegal for *, +, ? and { to be first in an re or come - immediately after a | or a (, and for ^ not to appear in a - nonleading position and $ in a nontrailing position (outside of - bracket expressions, that is). - Defined RE_LIMITED_OPS syntax bit which is set when want +, ? - and | to always be literals instead of ops. - Fixed up the Posix syntax. - Changed the syntax bit comments from saying, e.g., ``0 means...'' - to ``If this bit is set, it means...''. - Changed the syntax bit defines to use shifts instead of integers. - - * regex.c: (global): Incorporated rms' changes. - - (re_compile_pattern): Incorporated rms' changes - Made it illegal for a $ to appear anywhere but inside a bracket - expression or at the end of an re when RE_CONTEXTUAL_ILLEGAL_OPS - is set. Made the same hold for $ except it has to be at the - beginning of an re instead of the end. - Made the re "[]" illegal if RE_NO_EMPTY_BRACKETS is set. - Made it illegal for | to be first or last in an re, or immediately - follow another | or a (. - Added and embellished some comments. - Allowed \{ to be interpreted as a literal if RE_NO_BK_CURLY_BRACES - is set. - Made it illegal for *, +, ?, and { to appear first in an re, or - immediately follow a | or a ( when RE_CONTEXTUAL_ILLEGAL_OPS is set. - Made back references interpreted as literals if RE_NO_BK_REFS is set. - Made recursive intervals either illegal (if RE_NO_BK_CURLY_BRACES - isn't set) or interpreted as literals (if is set), if RE_INTERVALS - is set. - Made it treat +, ? and | as literals if RE_LIMITED_OPS is set. - Cleaned up some code. - - -Thu Dec 21 15:31:32 1989 Kathy Hargreaves (kathy at hayley) - - * regex.c: (global): Moved RE_DUP_MAX to regex.h and made it - equal 2^15 - 1 instead of 1000. - Defined NULL to be zero. - Moved the definition of BYTEWIDTH to regex.h. - Made the global variable obscure_syntax nonstatic so the tests in - another file could use it. - - (re_compile_pattern): Defined a maximum length (CHAR_CLASS_MAX_LENGTH) - for character class strings (i.e., what's between the [: and the - :]'s). - Defined a macro SET_LIST_BIT(c) which sets the bit for C in a - character set list. - Took out comments that EXTEND_BUFFER clobbers C. - Made the string "^" match itself, if not RE_CONTEXT_IND_OPS. - Added character classes to bracket expressions. - Change the laststart pointer saved with the start of each - subexpression to point to start_memory instead of after the - following register number. This is because the subexpression - might be in a loop. - Added comments and compacted some code. - Made intervals only work if preceded by an re matching a single - character or a subexpression. - Made back references to nonexistent subexpressions illegal if - using POSIX syntax. - Made intervals work on the last preceding character of a - concatenation of characters, e.g., ab{0,} matches abbb, not abab. - Moved macro PREFETCH to outside the routine. - - (re_compile_fastmap): Added succeed_n to work analogously to - on_failure_jump if n is zero and jump_n to work analogously to - the other backward jumps. - - (re_match_2): Defined macro SET_REGS_MATCHED to set which - current subexpressions had matches within them. - Changed some comments. - Added reg_active and reg_matched_something arrays to keep track - of in which subexpressions currently have matched something. - Defined MATCHING_IN_FIRST_STRING and replaced ``dend == end_match_1'' - with it to make code easier to understand. - Fixed so can apply * and intervals to arbitrarily nested - subexpressions. (Lots of previous bugs here.) - Changed so won't match a newline if syntax bit RE_DOT_NOT_NULL is set. - Made the upcase array nonstatic so the testing file could use it also. - - (main.c): Moved the tests out to another file. - - (tests.c): Moved all the testing stuff here. - - -Sat Nov 18 19:30:30 1989 Kathy Hargreaves (kathy at hayley) - - * regex.c: (re_compile_pattern): Defined RE_DUP_MAX, the maximum - number of times an interval can match a pattern. - Added macro GET_UNSIGNED_NUMBER (used to get below): - Added variables lower_bound and upper_bound for upper and lower - bounds of intervals. - Added variable num_fetches so intervals could do backtracking. - Added code to handle '{' and "\{" and intervals. - Added to comments. - - (store_jump_n): (Added) Stores a jump with a number following the - relative address (for intervals). - - (insert_jump_n): (Added) Inserts a jump_n. - - (re_match_2): Defined a macro ESTACK_PUSH_2 for the error stack; - it checks for overflow and reallocates if necessary. - - * regex.h: Added bits (RE_INTERVALS and RE_NO_BK_CURLY_BRACES) - to obscure syntax to indicate whether or not - a syntax handles intervals and recognizes either \{ and - \} or { and } as operators. Also added two syntaxes - RE_SYNTAX_POSIX_BASIC and RE_POSIX_EXTENDED and two command codes - to the enumeration regexpcode; they are succeed_n and jump_n. - - -Sat Nov 18 19:30:30 1989 Kathy Hargreaves (kathy at hayley) - - * regex.c: (re_compile_pattern): Defined INIT_BUFF_SIZE to get rid - of repeated constants in code. Tested with value 1. - Renamed PATPUSH as BUFPUSH, since it pushes things onto the - buffer, not the pattern. Also made this macro extend the buffer - if it's full (so could do the following): - Took out code at top of loop that checks to see if buffer is going - to be full after 10 additions (and reallocates if necessary). - - (insert_jump): Rearranged declaration lines so comments would read - better. - - (re_match_2): Compacted exactn code and added more comments. - - (main): Defined macros TEST_MATCH and MATCH_SELF to do - testing; took out loop so could use these instead. - - -Tue Oct 24 20:57:18 1989 Kathy Hargreaves (kathy at hayley) - - * regex.c (re_set_syntax): Gave argument `syntax' a type. - (store_jump, insert_jump): made them void functions. - -Tue Mar 6 23:29:26 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * signame.c (sig_number): Return -1 if not found. - -Fri Mar 2 16:32:20 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * signame.h [!__STDC__]: Remove comments cuz they're in [__STDC__]. - signame.{c,h}: Make sig_abbrev return char *, not const char *. - -Thu Mar 1 14:10:32 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * getopt.c (getopt): If _getopt_long_only, for options that - start with '-' and are not a valid long-named option, only - interpret them as short options if the first letter is a valid - short option. Otherwise the error message would be printed - naming the short option letter instead of the whole option, and - if, for example, there is a 'T' long option, '-Tfoo' would print - "prog: invalid option `-T'" (which is wrong). - -Wed Feb 28 19:38:49 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * signame.h: Use ANSI C prototypes ifdef __STDC__. - * signame.c: Add const declarations ifdef __STDC__. - -Wed Feb 28 19:06:36 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * signame.c (SIGPWR): Change name to "Power failure". - -Wed Feb 28 18:46:36 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * getopt.h: ifdef out decl of _getopt_option_name. - -Wed Feb 28 15:05:54 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * getopt.c (getopt): Change typo (optstr -> optstring). - - * getopt.c: Remove all _getopt_option_name stuff. - If RETURN_IN_ORDER, return one, not zero, to distinguish between - this and a long option. - - * signame.{c,h}: New files. - -Tue Feb 27 13:32:45 1990 David J. MacKenzie (djm at rice-chex) - - * getopt.c (getopt): In RETURN_IN_ORDER mode, set - _getopt_option_name to zero when returning a non-option arg in - optarg, to distinguish it from getting a long-named option - that takes an arg. - Print the correct option-introducing character (can be - either `+' or `-') in error messages for long-named options. - If _getopt_long_only is nonzero, no long options match an - option arg that starts with a dash, and there are valid short - options, try matching the arg against the short options. - -Thu Feb 22 19:50:49 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * obstack.c (_obstack_begin): Use slightly smaller default size - so that it still fits in one block if malloc range checking is - in use. - -Mon Feb 19 15:41:14 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * getopt1.c (getopt_long_only): New function. - getopt.h: Declare getopt_long_only and _getopt_long_only. - getopt.c: Define _getopt_long_only. - (getopt): If _getopt_long_only, accept '-' as well as '+' to start - long option. - -Sat Feb 3 16:28:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * alloca.s [MOTOROLA_DELTA]: New alternative for 68k. - -Sun Jan 28 22:29:17 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * getopt1.c (main): Fix bug that prevented the first long - option from being recognized. - - * getopt.c: Move comment on the return value for long-named - options to a more appropriate place. - -Wed Jan 24 19:11:27 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * glob.c (glob_filename): Change '==' to '=' in what was - clearly supposed to be an assignment statement. - -Mon Jan 22 18:14:40 1990 David J. MacKenzie (djm at rice-chex) - - * regcmp.c (regcmp): Allocate whole return value with one call - to malloc, so freeing the buffer works the same way as it does - on System V. - -Tue Jan 16 22:17:03 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * a.out.gnu.h [hp300, pyr]: Define SEGMENT_SIZE to be page_size - -Wed Jan 10 06:57:10 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * glob.c: Use <sys/ndir.h> if SYSNDIR is defined (some Xenix - systems need this). - -Mon Jan 8 12:33:55 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.c (re_compile_pattern): Add missing break in prev change. - -Mon Jan 1 12:16:56 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.c (re_compile_pattern): Ignore \<, etc., checking - context of $. - -Mon Dec 25 12:00:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * obstack.h (obstack_object_size, obstack_room): Eliminate _obstack. - -Sat Dec 23 16:20:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.c (re_compile_fastmap): Put back deleted local k. - -Wed Dec 20 02:03:43 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * getopt.h: Add function decls/prototypes for getopt and - getopt_long. - - * getopt.c: Bring some comments up to date with the code. - -Tue Dec 19 03:12:48 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * regex.h: Add function prototypes if __STDC__ is defined. - - * regex.c: Declare some external functions if emacs is not - defined. Add a few casts. - (re_compile_fastmap): Remove unused variable. - -Mon Dec 18 14:12:53 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * getopt.c: Declare some external functions. - -Mon Nov 20 19:57:00 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) - - * a.out.gnu.h: Wrap N_MAGIC in #ifndef...#endif. - -Fri Nov 17 03:12:28 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) - - * a.out.gnu.h: Wrap many things in #ifndef...#endif so file - can be used in addition to a system-supplied a.out.h. - -Tue Oct 31 17:03:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * getopt1.c (getopt_long): Delete mistaken test for index == 0. - -Wed Oct 25 17:50:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * getopt.c (getopt): Set option_index properly for long options. - -Tue Oct 24 23:41:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * getopt1.c (main): Fix initializers. - - * getopt.c (getopt): Was off by 1, checking for missing arg - for long option. - -Wed Oct 18 13:15:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * getopt.c: Improve comments and an error message. - Don't initialize most variables, for the sake of unexec. - -Tue Oct 17 03:06:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * getopt.c (getopt): Uniformly don't recognize `+' as option - if program doesn't use long options. - - * getopt.c (getopt): Complain about ambiguous option abbreviations. - But accept any exact match even if ambiguous. - - * getopt.c (getopt): Report error for unrecognized long options. - -Sat Sep 30 14:47:29 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) - - * malloc.c: "#else rcheck" -> "#else /* rcheck */". - -Tue Sep 19 19:00:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.h: Define RE_SYNTAX_POSIX_AWK. - -Sun Sep 17 15:20:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.h: Last change in RE_SYNTAX_AWK broke RE_SYNTAX_EGREP. - -Sat Sep 16 01:53:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.c (re_search_2): Stupid error propagating return code -2. - -Tue Sep 12 13:50:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * crt0.c [ISI68K]: Reinstall label __start. - -Tue Sep 5 15:43:24 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) - - * malloc.c: Define USG if hpux defined. - -Mon Aug 28 17:50:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.c (re_compile_pattern): With RE_AWK_CLASS_HACK, \ quotes - all characters inside [...]. - -Sat Aug 26 00:20:26 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) - - * regex.h: Define RE_AWK_CLASS_HACK and change RE_SYNTAX_AWK. - * regex.c (re_compile_pattern): Change syntax of \ inside [...] - when RE_AWK_CLASS_HACK is set. - - * regex.c (re_match_2): Declare strings to search as char *, - and cast inside the function. - -Sat Aug 19 14:55:19 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) - - * regex.c (EXTEND_BUFFER): Don't clobber c; do pointer arith - to update b in portable fashion. - -Thu Aug 17 15:56:36 1989 Joseph Arceneaux (jla at spiff) - - * regex.c (EXTEND_BUFFER): Set c to bufp->buffer - old_buffer. - -Sun Aug 13 15:21:02 1989 Richard Stallman (rms at hobbes.ai.mit.edu) - - * obstack.h: Typos in comments. - -Sun Jul 30 20:24:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * obstack.c (_obstack_newchunk): Never copy bytes past the end - of the object. Copy by COPYING_UNIT only for complete units - that fit in the object; then copy remaining bytes singly. - If obstack has less than the default alignment, - copy all bytes singly. - -Thu Jul 20 01:51:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * crt0.c: Delete spaces at ends of lines. - [ISI68K]: Unconditionally enclose asms in function `_start'. - Delete assembler definition of that function. - Use a6, not fp, as register name. - -Sun Jul 16 16:32:52 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) - - * a.out.encap.h: Remove #ifdef ALTOS code because according to - Jyrki Kuoppala <jkp@sauna.hut.fi> it doesn't do what he put it - in to do (which was work around a kernel bug). - -Thu Jun 29 19:59:16 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * malloc.c (valloc): Changed to be conditionalized on ! hpux - instead of ! HPUX (hpux this is generated by the OS). - -Tue Jun 20 21:14:57 1989 Roland McGrath (roland at hobbes.ai.mit.edu) - - * Makefile: include ../Makerules. - Added .y->.tab.c implicit rule and rule to make unctime.tab.o. - Use $(archpfx) in front of object files. - Made some rules use $({LINK,COMPILE}.?) instead of $(CC), etc. - -Sat Jun 17 14:22:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * regex.h (struct re_pattern_buffer): Make ALLOCATED and USED long. - * regex.c (EXTEND_BUFFER): Use long constants to compare with them. - Move assignment outside if-condition. - Do pointer relocation arithmetic in strictly correct order. - -Sat Jun 10 00:26:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * glob.c [USG]: Define rindex; declare getpwent, etc. - -Wed Jun 7 22:36:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * alloca.s [hp9000s300]: Increase MAXREG for fpregs. - - * crt0.c: For new hp assembler, define float_loc as fixed location. - -Wed May 31 17:51:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * a.out.gnu.h: Define SEGMENT_SIZE for Altos. - -Mon May 22 17:59:17 1989 Roland McGrath (mcgrath at tully.Berkeley.EDU) - - * glob.c: Several changes for USG compatibility, etc. that have been - in the version distributed with Make for a while. - Today added new variable glob_tilde which makes glob_filename expand - ~ or ~USER, and made glob_filename, when given a directory with the - file name pattern, return the directory alone. - -Wed May 17 16:45:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * getopt.c (getopt): Add feature for long-named options; - starting with `+'. - -Mon May 8 17:21:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * crt0.c [sps7]: Handle mostly like orion, etc. - -Fri May 5 15:26:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * obstack.c (_obstack_free): If __STDC__, define this as well as - obstack_free. - - * crt0.c [hp9000s300]: Give fixed address to fpa_loc, per cph. - -Tue May 2 14:42:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * crt0.c [hp9000s300]: Allocate fpa_loc and float_loc. - -Sun Apr 23 00:22:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * a.out.encap.h (COFF_MAGIC, SEGMENT_SIZE, N_DATADDR): - Alternate definitions if ALTOS or if m68k. - - * getopt.c: If __GNUC__, use builtin alloca. - Define index if USG. - -Wed Apr 19 13:03:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * crt0.c [m68000]: Call finitfp_() if nec on Sun. - -Fri Apr 7 22:22:38 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * malloc.c: Rename BSD42 to BSD4_2, as in Emacs. - If `emacs', let config.h decide whether to define that. - (morecore): Change malloc_sbrk_used, etc., after error check. - -Thu Mar 23 18:21:56 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * glob.c: Added new copyright notice. - -Thu Mar 16 16:56:54 1989 Randall Smith (randy at gluteus.ai.mit.edu) - - * malloc.c (malloc): Made sure that the MAGIC1 bytes written at - the end of the space were positioned with regard to the new - offset. - -Fri Mar 10 16:50:12 1989 Randall Smith (randy at sugar-bombs.ai.mit.edu) - - * malloc.c (realloc): Make sure that the start of the mhead is - found correctly even when sizeof (struct mhead) doesn't divide 8 - properley. - - * malloc.c (morecore): Added code to reset sigmask to correct - value on a "no-more-room" return. - - * malloc.c (malloc, free, realloc): Leave 8 bytes of space, not 4, - before the actual data block. - -Fri Mar 3 10:52:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * a.out.encap.h, stab.def: Modified to use new GNU General Public - License. - -Thu Mar 2 15:45:46 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * a.out.gnu.h [nlist]: Made n_type an unsigned char (for compilers - where chars default to signed, which can screw up comparisons) and - made n_value an unsigned long. - -Wed Mar 1 13:04:25 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * getopt.c: Changed copyright header to reflect new GNU General - public license. - -Fri Feb 24 13:00:21 1989 Randall Smith (randy at gluteus.ai.mit.edu) - - * regex.c, regex.h: Changed copyright header to reflect new GNU - General public license. - -Sun Feb 19 08:02:01 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) - - * getopt.c: If option argument is missing, return `?'. - -Fri Feb 10 13:31:05 1989 Randall Smith (randy at plantaris.ai.mit.edu) - - * stab.def: Changed comment on LSYM; also used for type - descriptions. - -Wed Feb 1 23:15:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * filemode.c (setst): Give `T' if sticky but not executable. - -Mon Jan 9 10:31:20 1989 Pace Willisson (pace at prep.ai.mit.edu) - - * a.out.gnu.h: Change a_magic to a_info, and define macros - to access it. Programs that refer to the magic number should - access it with N_MAGIC (exec), and set it with N_SET_MAGIC (exec, - val). This is a step to having a header that is unambiguous - between big and little endian machines. - - * a.out.encap.h: Use macros to access a_info fields. - -Wed Dec 28 18:58:53 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * crt0.c (hp9000s300): Changes from Jinx: new flag `flag_fpa' - set with a subx. d0 loaded from a0 and doubled before first subx. - -Tue Dec 20 22:13:49 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * a.out.gnu.h (N_DATADDR): Always define this if not already defined. - (SEGMENT_SIZE): Define this for the vax. - -Tue Dec 20 14:57:38 1988 Pace Willisson (pace at prep.at.mit.edu) - - * a.out.gnu.h: Changed exec header to have two bytes - (a_machtype and a_flags) instead of a_encap. a_machtype - is the same as on modern sun systems; a_flags can have - machine specific flags. (There may be some endian problems - here: You would like to have the magic number be the - first two bytes in the file, and then the next two could - be these options. It looks like the 68000 definitions - have to declare the options first to force this to happen.) - Defined M_386 for a_machtype. - Added definitions for N_DATOFF, N_TRELOFF, N_DRELOFF, - N_DATADDR, N_BSSADDR (which are present in sun release 4.0) - - * a.out.encap.h: Defined A_ENCAP as an a_flags value. Changed - uses of a_encap to a_flags & A_ENCAP - -Wed Dec 7 11:18:30 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * malloc.c: Added functions malloc_mem_used and malloc_mem_free to - return total amount of space allocated to program, and total space - left in free pool before sbrk must be called. - -Tue Nov 22 13:05:25 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) - - * glob.c: Incorporated some bug fixes and changes sent by Brian. - None of them look disasterous. - -Fri Oct 21 12:40:24 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) - - * malloc.c (free): Added code (within #ifdef rcheck) to given - slightly more verbose warnings then an abort if free was called - with garbage. - -Local Variables: -add-log-time-format: current-time-string -mode: indented-text -left-margin: 8 -version-control: never -End: diff --git a/gcc/FSFChangeLog b/gcc/FSFChangeLog deleted file mode 100755 index 5a9c6cf..0000000 --- a/gcc/FSFChangeLog +++ /dev/null @@ -1,1503 +0,0 @@ -Tue Jun 9 07:24:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * regmove.c ({next,prev}_insn_for_regmove): Properly handle end of - function. - -Mon Jun 8 15:26:49 1998 Juha Sarlin <juha@c3l.tyreso.se> - - * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. - -Mon Jun 8 14:40:02 1998 John Wehle (john@feith.com) - - * i386.md (movsf_push, movsf_mem): Remove. - (movsf_push): Rename from movsf_push_nomove and move in front of - movsf; allow memory operands during and after reload. - (movsf_push_memory): New pattern. - (movsf): Don't bother checking for push_operand. If TARGET_MOVE and - both operands refer to memory then force operand[1] into a register. - (movsf_normal): Change to unnamed pattern. - Likewise for movdf, movxf, and friends. - -Mon Jun 8 13:18:04 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> - - * Makefile.in (TREE_H): Add tree-check.h. - (tree-check.h, s-check, gencheck): New targets. - (STAGESTUFF): Add s-check. - * gencheck.c: New file. - * tree.c (tree_check, tree_class_check, expr_check): New functions. - * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. - (TYPE_CHECK, DECL_CHECK): Define. - Modify all access macros to use generated checking macros. - * acconfig.h (ENABLE_CHECKING): Undefine. - * configure.in (--enable-checking): New option. - -Mon Jun 8 12:13:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.ed> - - * regmove.c: Remove include for varargs or stdarg. - -Mon Jun 8 07:49:41 1998 Andris Pavenis <pavenis@lanet.lv> - - * gcc.c (link_command_spec): Support LINK_COMMAND_SPEC. - -Sun Jun 7 18:00:28 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST - or VAR-- == CONST construct a proper mask if VAR is a bitfield. - Cope with CONST being out of range for the bitfield. - -Sun Jun 7 17:19:35 1998 Tom Quiggle <quiggle@sgi.com> - - * mips/iris6.h (DWARF2_FRAME_INFO): Define. - * dwarf2out.c (dwarf2out_do_frame): Do something if DWARF2_FRAME_INFO. - -Sun Jun 7 15:29:04 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * regmove.c: New file. - * Makefile.in (OBJS): Add regmove.o. - (regmove.o): New rules. - (mostlyclean): Remove regmove dumps. - * toplev.c (regmove_{dump,dump_file,time}, flag_regmove): New vars. - (f_options): Add -foptimize-register-move. - (compile_file): Run regmove pass after combine pass and do its dump. - (main): Enable regmove dump when -dN or -da. - (fatal_insn): Flush regmove dump file. - * flags.h (flag_regmove): Declare. - * flow.c (find_use_as_address): Export. - * rtl.h (find_use_as_address): Declare. - * local-alloc.c (optimize_reg_copy_{1,2}): Removed, all calls deleted. - * reload1.c (count_occurrences): Export. - * reload.h (count_occurrences): Declare. - -Sun Jun 7 09:30:31 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (uninstall): Uninstall gcov. - - * alpha.h (ASM_COMMENT_START): Define. - - * alpha.h (EXTRA_CONSTRAINT, case 'S'): New case. - * alpha.md ({ashl,ashr,lshr}di3): Use 'S' for constraint. - - * i386.md (cmpxf): Add missing extend pattern from SFmode and fix - operand numbers in one extend pattern from DFmode. - - * pa.md ({pre,post}_{ld,st}wm and similar): When operand is being - incremented, use '+', not '=', for constraint. - - * reload.c (find_reloads): Give preference to pseudo that was the - reloaded output of previous insn. - - * emit-rtl.c (init_emit_once): Provide default for DOUBLE_TYPE_SIZE. - - * expr.c (init_expr_once): Free all RTL we generate here. - * expmed.c (init_expmed): Allocate all RTX in memory we'll free. - - * genemit.c (main): Generate #include "reload.h". - - * expr.c (expand_expr, case INDIRECT_EXPR): A dereference of - a REFERENCE_TYPE is always considered in a structure. Likewise for - a dereference of a NOP_EXPR whose input is a pointer to aggregate. - -Sat Jun 6 17:25:14 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * mips.md (reload_{in,out}di): Allow other operand to be invalid - MEM and get any reload replacement before using address. - -Tue May 26 18:52:23 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload1.c (reload): Get MEM_IN_STRUCT_P and RTX_UNCHANGING_P - from reg_equiv_memory_loc; set the latter when changing REG to MEM. - (alter_reg): Don't set RTX_UNCHANGING_P for shared slots. - -Mon May 25 12:07:12 1998 Hans-Peter Nilsson <hp@axis.se> - - * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. - -Sun May 24 21:50:12 1998 Alan Modra <alan@spri.levels.unisa.edu.au> - - * i386/linux{,-aout,oldld}.h (ASM_COMMENT_START): Define. - -Sun May 24 11:58:37 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md (adddi3, subdi3): Properly negate the DImode constant. - -Sun May 24 11:30:08 1998 Torbjorn Granlund <tege@matematik.su.se> - - * m68k/lb1sf68.asm (__addsf3): Fix typo in exg on coldfire. - -Sun May 24 09:38:17 1998 John Wehle (john@feith.com) - - * i386.md (movsi): Remove redundant integer push patterns. - Don't check for TARGET_PUSH_MEMORY when pushing constants or registers. - -Sun May 24 08:59:27 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (fold, case EQ_EXPR): Split COMPLEX_TYPE operands - if either is COMPLEX_CST in addition to COMPLEX_EXPR. - - * expr.c (do_jump, case EQ_EXPR, case NE_EXPR): Check for COMPLEX - before testing for operand 1 being zero. - - * genattrtab.c (optimize): Define. - - * configure.lang: Fix substitution of target_alias. - -Sat May 23 22:31:17 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * emit_rtl.c (double_mode): New variable. - (init_emit_once): Set and use it. - * real.c (ereal_atof, real_value_truncate): Handle double_mode not - being DFmode for C4x. - -Sat May 23 22:19:55 1998 Mike Stump <mrs@wrs.com> - - * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. - * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. - * i960.md (ret, flush_register_windows): Define. - (nonlocal_goto): Likewise. Nested function nonlocal gotos don't - work yet. - -Sat May 23 18:45:59 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/t-linux: Remove stuff already included in config/t-linux. - -Sat May 23 18:35:07 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * final.c: Select <stab.h> and "gstab.h" with NO_STAB_H. - - * gcc.c (default_compilers): Remove ".ada" extension. - - * combine.c (rtx_equal_for_field_assignment): Remove code that - checks get_last_value. - - * Makefile.in (uninstall): Delete info files. - -Sat May 23 18:28:27 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * c-decl.c (start_decl): Use new macro SET_DEFAULT_DECL_ATTRIBUTES. - * c-lex.c (check_newline): Put last read character back on input - stream. - -Sat May 23 18:13:53 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be - negative in a stackless frame. - * rs6000.c (rs6000_stack_info): Don't include fixed-size link area - in stackless frame size. Support 64-bit stackless frame size. - Combine fpmem offset calculations and don't add total_size to - offset if not pushing a stack frame. - - * tree.c (get_inner_array_type): New function. - * tree.h (get_inner_array_type): Likewise. - -Wed May 20 15:42:22 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expmed.c (expand_divmod): Save last divison constant and - if rem is same as div, don't adjust rem cost. - -Thu May 14 14:11:37 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha/vxworks.h: New file. - * configure.in (alpha*-*-vxworks*): New target. - - * alpha.c (tree.h): Include earlier. - (alpha_initialize_trampoline): New function. - * alpha.h (INITIALIZE_TRAMPOLINE): Call it. - * alpha/linux.h (INITIALIZE_TRAMPOLINE): Don't redefine. - -Thu May 14 13:35:53 1998 Cyrille Comar <comar@gnat.com> - - * Makefile.in (STAGESTUFF): Add s-under. - -Wed May 13 17:38:35 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (simplify_comparison, case AND): Don't commute AND - with SUBREG if constant is whole mode and don't do if lowpart - and not WORD_REGISTER_OPERATIONS. - - * expmed.c (expand_mult): Use 0 as add_target if should preserve - subexpressions. - -Mon May 11 17:26:06 1998 Paul Eggert <eggert@twinsun.com> - - * dwarf2out.c: Undo most recent change. - -Sun May 10 17:09:20 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (fold_range_test, fold): If need to make SAVE_EXPR - to do optimization, suppress if contains_placeholder_p. - -Thu May 7 18:14:31 Paul Eggert <eggert@twinsun.com> - - * dwarf2out.c: Don't assume `.section ".text"' causes assembler to - treat .text as label for start of section; instead, output - `.section ".text"; .LLtext0:' and use .LLtext0 in label contexts. - (ABBREV_LABEL, DEBUG_INFO_LABEL, DEBUG_LINE_LABEL, TEXT_LABEL): New. - (abbrev_label, debug_info_label, debug_line_label, text_label): New. - (dwarf2out_init): Initialize the vars. Output defn for text_label. - (dwarf2out_finish): Output defns for the other 3 vars. - (dw_val_node): Rename val_section to val_section_label, as it's - now a label, not a section. - (add_AT_section_offset): Arg is now a label, not a section. - (print_die): In label contexts, output section label, not section. - (output_die, output_compilation_unit_header): Likewise. - (output_{pubnames,aranges,line_info}, dwarf2out_finish): Likewise. - - * fixinc.wrap: Renamed from fixinc.math. Put wrapper around - curses.h if it contains `typedef char bool;'. - - * configure.in (arm-*-netbsd*): Rename fixinc.math to fixinc.wrap. - (i[34567]86-*-freebsdelf*, i[34567]86-*-freebsd*): Likewise. - (i[34567]86-*-netbsd*, i[34567]86-*-solaris2*): Likewise. - (m68k-*-netbsd*, mips-dec-netbsd*, ns32k-pc532-netbsd*): Likewise. - (powerpcle-*-solaris2*, sparc-*-netbsd*, sparc-*-solaris2*): Likewise. - (vax-*-netbsd*): Likewie. - -Wed May 6 06:44:28 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (simplify_rtx, case TRUNCATE): Reflect that it sign-extends - instead of zero-extending. - -Sat May 2 20:39:22 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (fold): When commutting COND_EXPR and binary operation, - avoid quadratic behavior if have nested COND_EXPRs. - -Tue Apr 28 17:30:05 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * mips.h (HOST_WIDE_INT): Define if not already. - (compute_frame_size, mips_debugger_offset): Return HOST_WIDE_INT. - (DEBUGGER_{AUTO,ARG}_OFFSET): Cast second arg to HOST_WIDE_INT. - * mips.c (mips_debugger_offset): Now returns HOST_WIDE_INT. - Likewise for internal variable frame_size. - - * final.c (alter_subreg): Make new SUBREG if reload replacement - scheduled inside it. - - * dwarf2out.c (add_bound_info, case SAVE_EXPR): Pass - SAVE_EXPR_RTL address through fix_lexical_addr. - -Mon Apr 27 18:57:18 1998 Jim Wilson <wilson@cygnus.com> - - * mips/sni-svr4.h (CPP_PREDEFINES): Add -Dsinix and -DSNI. - -Mon Apr 20 14:48:29 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (mov{sf,df} define_splits): When splitting move of - constant to int reg, don't split insns that do simple AND and OR - operations; just split each word and let normal movsi define split - handle it further. - -Sun Apr 19 20:21:19 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * real.h (C4X_FLOAT_FORMAT): New macro. - * real.c (c4xtoe, etoc4x, toc4x): New functions. - -Sun Apr 19 20:17:32 1998 Niklas Hallqvist <niklas@petra.appli.se> - - * m68k.c (notice_update_cc): Use modified_in_p to check for update. - -Sun Apr 19 18:48:07 1998 K. Richard Pixley <rich@kyoto.noir.com> - - * fixincludes: Discard empty C++ comments. - Special case more files with C++ comments nested in C comments. - -Sun Apr 19 18:30:11 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md ({add,sub}di3): Optimize for constant operand. - -Sun Apr 19 18:27:11 1998 Alan Modra <alan@spri.levels.unisa.edu.au> - - * i386.c (output_387_binary_op): Swap operands when popping if result - is st(0). - -Sun Apr 19 17:58:01 1998 Peter Jeremy <peter.jeremy@alcatel.com.au> - - * expr.c (do_jump_by_parts_equality_rtx): Now public. - * expmed.c (do_cmp_and_jump): New function. - (expand_divmod): Use do_cmp_and_jmp instead of emit_cmp_insn and - emit_jump_insn. - -Sun Apr 19 07:48:37 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-typeck.c (build_c_cast): Check underlying type when seeing - if discarding const or volatile. - - * c-decl.c (pushdecl): Avoid duplicate warning about implicit redecl. - - * configure.in (stab.h): Check for it. - (i386-*-vsta): Include xm-i386.h too. - * dbxout.c (stab.h): Include based on autoconf results. - * vax/xm-vms.h (NO_STAB_H): Deleted. - * alpha/xm-vms.h, xm-mips.h, i386/xm-mingw32.h, i386/go32.h: Likewise. - * i386/xm-cygwin32.h: Likewise. - * i386/xm-vsta.h (NO_STAB_H): Likewise. - (i386/xm-i386.h): No longer include. - - * mips.c: Cleanups and reformatting throughout. - ({expand,output}_block_move): Use HOST_WIDE_INT for sizes. - (mips_debugger_offset, compute_frame_size): Likewise. - (save_restore_insns, mips_expand_{pro,epi}logue): Likewise. - (siginfo): Deleted. - (override_options): Don't set up to call it; don't call setvbuf. - -Mon Apr 13 06:40:17 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (sparc-*-vxsim*): Include xm-siglist.h and - define USG and POSIX. - -Sun Apr 12 21:59:27 1998 Jeffrey A. Law <law@cygnus.com> - - * calls.c (expand_call): Fix typo in STRICT_ARGUMENT_NAMING. - -Sun Apr 12 21:42:23 1998 D. Karthikeyan <karthik@cdotd.ernet.in> - - * m68k.h (TARGET_SWITCHES): Add missing comma. - -Sun Apr 12 21:33:33 1998 Eric Valette <valette@crf.canon.fr> - - * configure.in (i[34567]86-*-rtemself*): New configuration. - * i386/rtemself.h: New file. - -Sun Apr 12 21:08:28 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (loop_optimize): Reset max_uid_for_loop after - find_and_verify_loops call. - (strength_reduce): In auto_inc_opt code, verify v->insn has valid - INSN_LUID. - -Sun Apr 12 20:54:59 1998 Richard Earnshaw (rearnsha@arm.com) - - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. - -Sun Apr 12 20:47:37 1998 Pat Rankin <rankin@eql.caltech.edu> - - * cccp.c (eprint_string): New function. - (do_elif, do_else, verror): Use it instead of fwrite(,,,stderr). - (error_from_errno, vwarning): Likewise. - ({verror,vwarning,pedwarn}_with_line): Likewise. - (pedwarn_with_file_and_line, print_containing_files): Likewise. - -Sun Apr 12 20:40:44 1998 Richard Henderson <rth@dot.cygnus.com> - - * configure.in (alpha*-*-linux-gnu*): Add alpha/t-crtbe. - Add crt{begin,end}.o in extra_parts and delete crt{begin,end}S.o.o - * alpha/t-crtbe, alpha/crt{begin,end}.asm: New files. - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_trunc[ds]fdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - -Sun Apr 12 13:09:46 1998 Scott Christley <scottc@net-community.com> - - * objc/encoding.c (objc_sizeof_type, _C_VOID): New case. - -Sun Apr 12 13:04:55 1998 Nikolay Yatsenko (nikolay@osf.org) - - * configure.in (i[34567]86-*-osf1*): New entry. - * i386/osf1-c[in].asm: New files for OSF/1. - * i386/osf1elf{,gdb}.h, i386/[xt]-osf1elf, i386/xm-osf1elf.h: Likewise. - -Sun Apr 12 10:03:51 1998 Noel Cragg <noel@red-bean.com> - - * fixincludes: Remove specification of parameters when renaming - functions in Alpha DEC Unix include files. - -Sun Apr 12 07:33:46 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * mips.c (large_int): Use HOST_WIDE_INT, not int. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - - * toplev.c (main): Sort order of handling of -d letters. - Use `F' instead of `D' for addressof_dump. - - * libgcc2.c (_eh_compat): Deleted. - * Makefile.in (LIB2FUNCS): Delete _eh_compat. - - * configure.in (alpha*-*-linux-gnu*): Don't include alpha/xm-linux.h. - - * c-common.c (check_format_info): Properly test for nested pointers. - - * pa.md (casesi0): Add missing mode for operand 0. - - * function.c (purge_addressof_1, case MEM): If BLKmode, put ADDRESSOF - into stack. - - * c-parse.in (label): Give warning if pedantic and label not integral. - - * c-decl.c (grokdeclarator): Don't warn about return type if in - system header. - - * reload.c (reload_nongroup): New variable. - (push{_secondary,}_reload): Initialize it. - (find_reloads): Compute it. - (debug_reload): Print it. - * reload.h (reload_nongroup): Declare. - * reload1.c (reload): Use reload_nongroup instead of local computation. - Check caller_save_spill_class against any nongroup reloads. - (reloads_conflict): No longer static. - -Sun Apr 12 05:52:18 1998 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * vax.md (call patterns): Operand 1 is always a CONST_INT. - -Sat Apr 11 16:01:11 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * convert.c (convert_to_{pointer,integer,real,complex}): Use switch. - Add missing integer-like types. - Simplify return of zero in error case. - (convert_to_pointer): Remove dubious abort. - (convert_to_integer, case POINTER_TYPE): Make recursive call. - (convert_to_integer, case COND_EXPR): Always convert arms. - * tree.c (type_precision): Deleted. - - * cccp.c (do_warning): Give pedantic warning if -pedantic and not - in system file. - * cpplib.c (do_warning): Likewise. - - * function.c (target_temp_slot_level): Define here. - (push_temp_slots_for_target, {get,set}_target_temp_slot_level): New. - * stmt.c (target_temp_slot_level): Don't define here. - * expr.h (temp_slot_level): New declaration. - -Fri Apr 10 16:35:48 1998 Paul Eggert <eggert@twinsun.com> - - * c-common.c (decl_attributes): Support strftime format checking. - (record_function_format, {check,init_function}_format_info): Likewise. - (enum format_type): New type. - (record_function_format): Now static; takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change a `pedwarn' to `warning'. - * c-tree.h (record_function_format): Remove decl. - -Thu Apr 2 17:34:27 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * regclass.c (memory_move_secondary_cost): Protect uses of - SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS with #ifdef tests. - -Thu Apr 2 07:06:57 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (standard_68881_constant_p): Don't use fmovecr on 68060. - -Thu Apr 2 06:19:25 1998 Ken Raeburn <raeburn@cygnus.com> - - * Makefile.in (version.c): Put "cvs log" output in build directory. - - * reload.h (MEMORY_MOVE_COST): Define here if not already defined. - (memory_move_secondary_cost): Declare. - * regclass.c (MEMORY_MOVE_COST): Don't define default here. - (memory_move_secondary_cost) [HAVE_SECONDARY_RELOADS]: New function. - (regclass, record_reg_classes, copy_cost, record_address_regs): - Pass register class and direction of move to MEMORY_MOVE_COST. - (top_of_stack) [HAVE_SECONDARY_RELOADS]: New static array. - (init_regs) [HAVE_SECONDARY_RELOADS]: Initialize it. - * reload1.c (MEMORY_MOVE_COST): Don't define default here. - (emit_reload_insns, reload_cse_simplify_set): Pass register class - and direction of move to MEMORY_MOVE_COST. - * 1750a.h (MEMORY_MOVE_COST): Add extra ignored arguments. - * a29k.h, alpha.h, arc.h, arm.h, dsp16xx.h, i386.h, m32r.h: Likewise. - * m88k.h, rs6000.h: Likewise. - * mips.h (MEMORY_MOVE_COST): Likewise. - Add memory_move_secondary_cost result to cpu-specific cost. - -Mon Mar 30 13:56:30 1998 Jim Wilson <wilson@cygnus.com> - - * mips/ultrix.h (SUBTARGET_CPP_SPEC): Define. - -Wed Mar 25 16:09:01 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum direction. - (function_arg_padding): Declare. - - * rs6000.c: Include stdlib.h if we have it. - (function_arg_padding): Change return type to int, cast enum's to int. - - (From Kaveh R. Ghazi <ghazi@caip.rutgers.edu>) - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg[12]'. - - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Likewise. - - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. - -Wed Mar 25 02:39:01 1998 Paul Eggert <eggert@twinsun.com> - - * configure.in (i[34567]86-*-solaris2*, powerpcle-*-solaris2*, - sparc-*-solaris2*): Use fixinc.svr4 if Solaris 2.0 through 2.4. - -Mon Mar 23 07:27:19 1998 Philippe De Muyter <phdm@macqel.be> - - * m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. - - * m68k.md (zero_extend[qh]idi2, iordi_zext): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iorsi_zexthi_ashl16): Avoid "0" constraint for operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. - -Mon Mar 23 07:12:05 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * final.c (only_leaf_regs_used): If pic_offset_table_rtx used, - make sure it is a permitted register. - -Sun Mar 22 06:57:04 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expmed.c (extract_bit_field): Don't confuse SUBREG_WORD with - endian adjustment in SUBREG case. - Don't abort if can't make SUBREG needed for extv/extzv. - -Sat Mar 21 08:02:17 1998 Richard Gorton <gorton@amt.tay1.dec.com> - - * alpha.md (zero_extendqi[hsd]i2): Use "and", not "zapnot". - -Sat Mar 21 07:47:04 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * unroll.c (verify_addresses): Use validate_replace_rtx. - (find_splittable_givs): If invalid address, show nothing same_insn. - -Fri Mar 20 10:24:12 1998 Philippe De Muyter <phdm@macqel.be> - - * fold-const.c (fold, case CONVERT_EXPR): Replace sign-extension of - a zero-extended value by a single zero-extension. - -Thu Mar 19 14:59:32 1998 Andrew Pochinsky <avp@ctp.mit.edu> - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Fix error in last change. - -Thu Mar 19 14:48:35 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (default_arg): Don't wander off the end of allocated memory. - - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. - -Thu Mar 19 06:17:59 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (toplev.o): Depend on Makefile. - -Wed Mar 18 17:40:09 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * expr.c (convert_move): Add [QH]Imode/P[QH]Imode conversions. - * machmode.def (PQImode, PHImode): New modes. - -Wed Mar 18 17:11:18 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md (movsf+1): Optimize moving a CONST_DOUBLE zero. - -Wed Mar 18 17:07:54 1998 Ken Raeburn <raeburn@cygnus.com> - - * regclass.c (init_reg_sets): Delete init of reg-move cost tables. - (init_reg_sets_1): Put it here. - -Wed Mar 18 16:43:11 1998 Jim Wilson <wilson@cygnus.com> - - * i960.md (tablejump): Handle flag_pic. - - * profile.c (branch_prob): If see computed goto, call fatal. - - * calls.c (expand_call): Fix typos in n_named_args computation. - -Wed Mar 18 05:54:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. - - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. - - * function.c (fixup_var_refs_insns): Also delete insn storing pseudo - back into arg list. - - * combine.c (gen_binary): Don't make AND that does nothing. - (simplify_comparison, case AND): Commute AND and SUBREG. - * i386.h (CONST_CONSTS, case CONST_INT): One-byte integers are cost 0. - -Mon Mar 16 15:57:17 1998 Geoffrey Keating <geoffk@ozemail.com.au> - - * rs6000.c (small_data_operand): Ensure any address referenced - relative to small data area is inside SDA. - -Sun Mar 15 16:01:19 1998 Andrew Pochinsky <avp@ctp.mit.edu> - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Write nop's. - -Sun Mar 15 15:53:39 1998 Philippe De Muyter <phdm@macqel.be> - - * libgcc2.c (exit): Don't call __bb_exit_func if HAVE_ATEXIT. - -Sun Mar 15 15:44:41 1998 Paul Eggert <eggert@twinsun.com> - - * cccp.c: Fix bugs relating to NUL in input file name, - e.g. with `#line 2 "x\0y"'. - (PRINTF_PROTO_4): New macro. - (struct {file_buf,definition,if_stack}): New member nominal_fname_len. - (main, expand_to_temp_buffer): Store length of input file names. - (finclude, create_definition, do_line, conditional_skip): Likewise. - (skip_if_group, macroexpand): Likewise. - (make_{definition,undef,assertion}): Likewise. - (special_symbol, do_include): Use stored length of input file names. - (do_define, do_elif, do_else, output_line_directive, verror): Likewise. - (error_from_errno, vwarning, verror_with_line): Likewise. - (vwarning_with_line, pedwarn_with_file_and_line): Likewise. - (print_containing_files): Likewise. - (do_line): Fix off-by-1 problem: 1 too many bytes were being allocated. - (quote_string, pedwarn_with_file_and_line): New arg specifies length. - All callers changed. - -Sun Mar 15 15:38:16 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-typeck.c: Collect pending initializers in AVL tree instead of list. - (add_pending_init, pending_init_member): New functions. - (output_init_element): Use them. - (output_pending_init_elements): Rewritten to exploit AVL order. - -Sun Mar 15 05:10:49 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gnu.h (GNU_CPP_PREDEFINES): Deleted; not valid in traditional C. - * {i386,mips}/gnu.h (CPP_PREDEFINES): Don't call GNU_CPP_PREDEFINES. - - * flow.c (insn_dead_p): A CLOBBER of a dead pseudo is dead. - - * alpha.h (REG_ALLOC_ORDER): Put $f1 after other nonsaved. - - * sparc.c (sparc_type_code): Fix error in previous change. - -Sat Mar 14 05:45:21 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/xm-aix.h, i386/xm-osf.h (i386/xm-i386.h): Don't include. - (USG): Don't define. - * i386/xm-isc.h (i386/xm-sysv3.h): Don't include. - * i386/xm-sco.h (i386/xm-sysv3.h): Likewise. - (BROKEN_LDEXP, SMALL_ARG_MAX, NO_SYS_SIGLIST): Don't define. - * m68k/xm-3b1.h (m68k/xm-m68k.h): Don't include. - (USG): Don't define. - * m68k/xm-atari.h (m68k/xm-m68kv.h): Don't include. - (HAVE_VPRINTF, FULL_PROTOTYPES): Don't define. - * m68k/xm-crds.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, unos, USG): Don't define. - * m68k/xm-mot3300.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, NO_SYS_SIGLIST): Don't define. - * m68k/xm-plexus.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, USG): Don't define. - * m88k/xm-sysv3.h (m88k/xm-m88k.h): Don't include. - * m68k/xm-next.h (m68k/xm-m68k.h): Don't include. - * ns32k/xm-pc532-min.h (ns32k/xm-ns32k.h): Don't include. - (USG): Don't define. - * rs6000/xm-mach.h: Don't include xm-rs6000.h. - * rs6000/xm-cygwin32.h (rs6000/xm-rs6000.h): Don't include. - (NO_STAB_H): Don't define. - * sparc/xm-linux.h (xm-linux.h): Don't include. - * sparc/xm-sol2.h (sparc/xm-sysv4.h): Don't include. - * a29k/xm-unix.h, alpha/xm-linux.h, arm/xm-linux.h: Deleted. - * arm/xm-netbsd.h, i386/xm-bsd386.h, i386/xm-gnu.h: Deleted. - * i386/xm-linux.h, i386/xm-sun.h, i386/xm-sysv3.h: Deleted. - * i386/xm-winnt.h, m68k/xm-altos3068.h, m68k/xm-amix.h: Deleted. - * m68k/xm-amix.h, m68k/xm-hp320.h, m68k/xm-linux.h: Deleted. - * m68k/xm-m68kv.h, mips/xm-iris5.h, ns32k/xm-genix.h: Deleted. - * sparc/xm-pbd.h, vax/xm-vaxv.h, xm-svr3.h, xm-linux.h: Deleted. - * configure.in: Reflect above changes. - - * xm-siglist.h, xm-alloca.h: New files. - * i386/xm-sysv4.h (i386/xm-i386.h, xm-svr4.h): Don't include. - (USE_C_ALLOCA, SMALL_ARG_MAX): Don't define. - * i386/xm-sco5.h (i386/xm-sysv3.h): Don't include. - (SYS_SIGLIST_DECLARED, USE_C_ALLOCA): Don't define. - * rs6000/xm-sysv4.h, sparc/xm-sysv4.h: Don't include xm-svr4.h. - * xm-svr4.h, i386/xm-dgux.h, mips/xm-news.h, mips/xm-sysv4.h: Deleted. - * configure.in: Reflect above changes. - - * configure.in ({,host_,build_}xm_defines): New variables. - Set to USG instead of including xm-usg.h. - Write #define lines in config.h files from xm_defines vars. - * xm-usg.h: Deleted. - -Fri Mar 13 07:10:59 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * calls.c (expand_call): Fix typo in previous change. - - * sparc.c (sparc_type_code): Avoid infinite loop when have - pointer to array of same pointer. - (sparc_type_code, case REAL_TYPE): Process subtypes here too. - - * mips/bsd-4.h, mips/iris3.h, mips/news{4,5}.h: Don't include mips.h. - * mips/news5.h, mips/osfrose.h, mips/svr{3,4}-4.h: Likewise. - * mips/ultrix.h: Likewise. - * mips/cross64.h: Don't include iris6.h. - * mips/ecoff.h: Don't include mips.h or gofast.h. - * mips/elforion.h: Don't include elf64.h. - * mips/iris4.h: Don't include iris3.h. - * mips/iris4loser.h: Don't include iris4.h. - * mips/iris5gas.h: Don't include iris5.h. - * mips/elflorion.h, mips/nws3250v4.h, mips/xm-iris{3,4}.h: Deleted. - * mips/xm-nws3250v4.h, mips/xm-sysv.h: Deleted. - * mips/rtems64.h: Don't include elflorion.h. - * mips/sni-gas.h: Don't include sni-svr4.h. - * mips/svr4-t.h: Don't include svr4-5.h. - * mips/dec-osf1.h: Also include mips.h. - * mips/ecoffl.h, mips/elf.h: Also include mips.h and gofast.h. - * mips/iris5.h: Also include iris3.h and mips.h. - * xm-usg.h: New file. - * mips/xm-iris5.h: Don't include xm-mips.h; don't define USG. - * mips/xm-news.h, mips/xm-sysv4.h: Don't include xm-sysv.h. - * configure.in: Reflect above changes. - -Thu Mar 12 07:18:48 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.h (STRICT_ARGUMENT_NAMING): Provide default value of 0. - * calls.c (expand_call): Use value of STRICT_ARGUMENT_NAMING. - * function.c (assign_parm): Likewise. - * mips/abi64.h (STRICT_ARGUMENT_NAMING): Return 0 for ABI_32. - * sparc.h (STRICT_ARGUMENT_NAMING): Only nonzero for V9. - - * calls.c (expand_call, expand_library_call{,_value}, store_one_arg): - Rework handling of REG_PARM_STACK_SPACE to treat return value of - zero as if macro not defined; add new arg to emit_push_insn. - * expr.c (emit_push_insn): New arg, REG_PARM_STACK_SPACE. - * expr.h (emit_push_insn): Likewise. - * mips/abi64.h (REG_PARM_STACK_SPACE): Define. - -Wed Mar 11 06:58:13 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.h (CONST_OK_FOR_LETTER_P, case 'M'): Correct range check. - -Wed Mar 11 06:15:52 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (emit_push_insn): Use loop to find movstr patterns - instead of explicit tests. - - * Makefile.in (extraclean): Don't delete install1.texi. - -Tue Mar 10 14:27:51 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (make_field_assignment): Don't get confused if OTHER - has VOIDmode and don't do anything if DEST is wider than a host word. - - * vax.c (check_float_value): Cast bcopy args to char *. - -Tue Mar 10 13:56:12 1998 Jim Wilson <wilson@cygnus.com> - - * mips/abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and - TARGET_DEFAULT and define __LONG_MAX__ appropriately. - Add support for -mabi=X, -mlong64, and -mgp{32,64} options. - * mips.c (mips_abi): Change type to int. - * mips.h (enum mips_abi_type): Delete. - (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. - (mips_abi): Change type to int. - -Mon Mar 2 08:06:58 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Version 2.8.1 released. - - * Makefile.in (mostlyclean): Remove duplicate deletion of temp - files. Delete more stamp files and [df]p-bit.c - (clean): Don't delete stamp files here. - (VERSION_DEP): New variable. - (distdir-finish): Pass a value of null for it. - (version.c): Use it. - Avoid broken pipe with cvs log. - - * objc/Make-lang.in (objc/runtime-info.h): Rename emptyfile to - tmp-runtime and delete at end. - -Sun Mar 1 05:50:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.c (build_reference_type): Handle obstacks like - build_pointer_type. - - * Makefile.in (tmp-gcc.xtar): Renamed from gcc.xtar. - (gcc.xtar.gz): Deleted; merged with `dist'. - (diff): Create gcc-$(oldversion)-$(version).diff. - (distdir): Depend on distdir-cvs. - (distdir-cvs): New rule. - (distdir-start): Depend on version.c and TAGS. - (TAGS): Use tmp-tags instead of temp. - (dist): Create gcc-$(version).tar.gz. - - * varasm.c (compare_constant_1): Fix typo in previous change. - - * objc/Make-lang.in (objc-distdir): Properly rebuild objc-parse.c. - -Sat Feb 28 16:58:08 1998 Tristan Gingold <gingold@rossini.enst.fr> - - * stmt.c (expand_decl): If -fcheck-memory-usage, put vars in memory. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{CONST_ADDRESS, INITIALIZER} to MEMORY_USE_DONT. - -Sat Feb 28 08:13:43 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i860/fx2800.h (DATA_ALIGNMENT): Use POINTER_TYPE_P. - * m68k/a-ux.h (FUNCTION_VALUE): Likewise. - * expr.c (get_pointer_alignment, compare, do_store_flag): Likewise. - (expand_builtin): Likewise. - * fold-const.c (force_fit_type, fold_convert, fold): Likewise. - * function.c (assign_parms): Likewise. - * integrate.c (expand_inline_function): Likewise. - * sdbout.c (sdbout_field_types): Likewise. - * tree.c (integer_pow2p, tree_log2, valid_machine_attribute): Likewise. - * stmt.c (expand_decl): Likewise. - ({,bc_}expand_decl_init): Also test for REFERENCE_TYPE. - - * configure.in (version_dep): New variable; if srcdir is CVS working - directory, set to ChangeLog. - (version): Supply default if no version.c. - * Makefile.in (version.c): New rule. - - * gcc.c (snapshot_warning): New function. - (main): Call it for snapshots. - - * dwarf2out.c (expand_builtin_dwarf_reg_size): If reg_raw_mode - not valid for reg, use last size. Also refine range assertion. - -Sat Feb 28 05:04:47 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * enquire.c (cprop): Don't perform exhaustive search for char_min - and char_max when bits_per_byte > 16. - -Thu Feb 26 15:12:03 1998 Christopher Taylor <cit@ckshq.com> - - * fixincludes: Avoid using '0-~' in egrep. - -Thu Feb 26 08:04:05 1998 Tristan Gingold <gingold@messiaen.enst.fr> - - * function.c (assign_parms): Call 'chkr_set_right' when DECL_RTL - is stack_parm. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{SUM, CONST_ADDRESS, INITIALIZER} to MEMORY_USE_RO. - -Thu Feb 26 07:33:53 1998 Paul Eggert <eggert@twinsun.com> - - * c-lex.c (yylex): Don't munge errno before using it. - * cccp.c (error_from_errno, perror_with_name): Likewise. - * cpplib.c (cpp_error_from_errno): Likewise. - * gcc.c (pfatal_pexecute): Likewise. - * protoize.c (safe_write, find_file, process_aux_info_file): Likewise. - (rename_c_file, edit_file): Likewise. - - * c-lex.c (yylex): Remove unused variable exceeds_double. - -Thu Feb 26 07:05:14 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. - -Thu Feb 26 06:45:23 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (distdir-start): Don't copy CVS subdirectory of config. - - * varasm.c ({compare,record}_constant_1, case CONSTRUCTOR): - Handle the case when we have TREE_PURPOSE values. - -Thu Feb 26 05:59:01 1998 Philippe De Muyter <phdm@macqel.be> - - * fixincludes (sys/limits.h): Fix a nested comment problem with - HUGE_VAL definition on sysV68 R3V7.1. - -Wed Feb 25 21:09:38 1998 Philippe De Muyter <phdm@macqel.be> - - * toplev.c (TICKS_PER_SECOND): Renamed from CLOCKS_PER_SECOND. - -Wed Feb 25 20:50:08 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. - -Wed Feb 25 19:50:01 1998 Mikael Pettersson <Mikael.Pettersson@sophia.inria.fr> - - * gcc.c (lookup_compiler): Remove redundant test. - -Wed Feb 25 07:24:22 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * vax.md (call insns): Second operand to CALL rtl is SImode. - - * configure.in (i[34567]86-*-mingw32): Support msv and crt suffix. - * i386/crtdll.h: New file. - - * sparc.c (pic_setup_code): If -O0, write USE of pic_offset_table_rtx. - - * expr.c (safe_from_p): Add new arg, TOP_P; all callers changed. - -Sat Feb 21 07:02:39 1998 Jim Wilson <wilson@cygnus.com> - - * mips/iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * mips/iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. - -Fri Feb 20 08:27:46 1998 Paul Eggert <eggert@twinsun.com> - - * sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using system linker. - * toplev.c (main): Don't default to DWARF2_DEBUG with -ggdb - if LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. - -Fri Feb 20 08:21:49 1998 H.J. Lu (hjl@gnu.org) - - * alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Support shared library. - (LIB_SPEC, DEFAULT_VTABLE_THUNKS): Defined #ifndef USE_GNULIBC_1. - * sparc/linux.h (DEFAULT_VTABLE_THUNKS): Likewise. - (LIB_SPEC): Add -lc for -shared #ifndef USE_GNULIBC_1. - * linux.h (LIB_SPEC): Likewise. - * sparc/linux64.h (LIB_SPEC): Likewise; also updated for glibc 2. - (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - -Fri Feb 20 05:22:12 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (distdir-start): Add dependence on bi-parser.[ch]. - -Thu Feb 19 18:07:11 1998 Jim Wilson <wilson@cygnus.com> - - * m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. - -Wed Feb 18 09:37:29 1998 Paul Eggert <eggert@twinsun.com> - - * fixincludes (stdlib.h): Do not double-wrap the size_t typedef. - -Wed Feb 18 07:32:11 1998 Jim Wilson <wilson@cygnus.com> - - * i960.c (emit_move_sequence): Handle unaligned stores to pseudos. - * i960.md (store_unaligned_[dt]i_reg): Handle register dest. - (store_unaligned_ti_reg): Likewise. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE} [MOTOROLA]): Add %# and %/; - add : to make them into extended asms. - -Wed Feb 18 07:08:05 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reg-stack.c (compare_for_stack_reg): Only handle FP conditional - move as next insn specially. - - * reload.c (find_reloads): Always convert address reload for - non-reloaded operand to RELOAD_FOR_OPERAND_ADDRESS. - - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. - -Sat Feb 14 09:59:00 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] for hard float. - (movdfcc): Only accept fpu_add_operand for operands[3].8 - -Sat Feb 14 09:32:34 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. - -Sat Feb 14 09:27:42 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (MY_ISCOFF): Check for U803XTOCMAGIC. - -Sat Feb 14 08:29:43 1998 Arvind Sankar <arvind@cse.iitb.ernet.in> - - * t-svr4 (TARGET_LIBGCC_CFLAGS): New definition. - -Sat Feb 14 07:45:16 1998 Ken Rose (rose@acm.org) - - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. - -Sat Feb 14 07:14:02 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload.c (debug_reload): Properly output insn codes. - - * pa.c (emit_move_sequence): If in reload, call find_replacement. - - * gansidecl.h (bcopy, bzero, {,r}index): Don't define if IN_LIBGCC2. - - * combine.c (distribute_notes, case REG_DEAD): When seeing if place - to put new note sets register, use reg_bitfield_target_p, as in - original code. - - * gcc.c (process_command): If file is for linker, set lang to "*". - (lookup_compiler): Return 0 for language of "*". - - * sched.c (attach_deaths, case SUBREG): Fix error in last change. - - * i386.md (mov[sdx]fcc): Disable for now. - (mov[sd]fcc_1): Add earlyclobber for output on last alternative. - -Sat Feb 14 06:42:50 1998 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (get_dynamic_handler_chain): Only make call once per func. - (expand_fixup_region_{start,end}): New functions. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use new functions to protect fixups. - - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Don't init get_dynamic_handler_chain_libfunc. - * expr.h (get_dynamic_handler_chain_libfunc): Deleted. - -Sat Feb 14 06:34:41 1998 Peter Lawrence <Peter.Lawrence@Eng.Sun.COM> - - * optabs.c (emit_conditional_move): Don't reverse condition for FP. - -Fri Feb 13 07:22:04 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (mostlyclean): Only use s-* convention for stamp - files in main dir. - - * configure.in: Add support for i786 (Pentium II); same as i686. - -Thu Feb 12 20:16:35 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. - -Thu Feb 12 10:08:14 1998 John Hassey <hassey@dg-rtp.dg.com> - - * configure.in (i[3456]86-dg-dgux*): Don't need fixincludes. - -Thu Feb 12 07:27:39 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Define. - about system headers. - (LIB_SPEC): Add -ladvapi32 -lshell32. - -Thu Feb 12 07:19:31 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_assignment): Fix typo in checking OFFSET. - - * gbl-ctors.h (atexit): Don't define unless needed. - - * combine.c (distribute_notes): Completely check for note operand being - only partially set on potential note target; adjust what notes - we make in that case. - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,INDEX,RINDEX}): Deleted. - -Wed Feb 11 08:53:27 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * calls.c (emit_call_1): Size args now HOST_WIDE_INT. - (expand_call): struct_value_size now HOST_WIDE_INT. - -Tue Feb 10 09:04:39 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * integrate.c (initialize_for_inline): Ensure DECL_INCOMING_RTL - is always copied. - -Tue Feb 10 06:10:49 1998 Paul Eggert <eggert@twinsun.com> - - * cccp.c (rescan): Fix bug with macro name appearing - immediately after L'x'. - -Mon Feb 9 20:45:32 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-common.c (format_char_info): Add new field zlen. - (print_char_table): Remove entry for 'Z' as a format character. - Initialize zlen field as appropriate. - (scan_char_table): Set zlen field to NULL in each entry. - (check_format_info): Recognize 'Z' as a length modifier, with a - warning in pedantic mode. - Avoid infinite loop when a repeated flag character is detected. - -Mon Feb 9 09:24:04 1998 Paul Eggert <eggert@twinsun.com> - - * c-parse.in (primary): Minor wording fix in diagnostic. - -Mon Feb 9 07:50:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-decl.c (grokdeclarator): Remove warning on inline of varargs. - - * reload.c (find_reloads): Check for const_to_mem case before - checking for invalid reload; use force_const_mem if no_input_reloads. - - * function.c (push_function_context_to): Call init_emit last. - - * protoize.c (my_link): Define as -1 in mingw32. - (link): Remove declaration. - - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. - - * integrate.c (expand_inline_function): Clear label_map with bzero. - - * unroll.c (copy_loop_body, case JUMP_INSN): Correct error in last - change: call single_set on COPY, not INSN. - -Sun Feb 8 08:07:37 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * msdos/top.sed, winnt/config-nt.sed: Change version number to 2.8.1. - - * configure.in (i[3456]86-*-sco3.2v5*): Use cpio for headers. - -Sat Feb 7 07:32:46 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/mingw32.h (LIBGCC_SPEC, STARTFILE_SPEC, MATH_LIBRARY): - Use msvcrt, not crtdll. - -Fri Feb 6 20:32:06 1998 Geert Bosch <bosch@gnat.com> - - * i386/xm-os2.h (EMX, USG, BSTRING, HAVE_{PUTENV,VPRINTF,STRERROR}): - Define ifdef __EMX__. - (strcasecmp): Define to be stricmp if __EMX__. - (spawnv{,p}): Don't define if EMX. - (OBJECT_SUFFIX): Don't define if EMX. - (MKTEMP_EACH_FILE): Define. - -Fri Feb 6 16:37:29 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise for the - respective stageN-start targets. - (objc/sendmsg.o): Depend on objc/runtime-info.h. - -Fri Feb 6 16:27:09 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * stmt.c (expand_asm_operands): Properly treat asm statement - statements with no operands as volatile. - -Fri Feb 6 16:03:25 1998 Greg McGary <gkm@gnu.org> - - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. - -Fri Feb 6 15:57:36 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (STRIP_NAME_ENCODING): New macro. - -Fri Feb 6 15:50:42 1998 Paul Eggert <eggert@twinsun.com> - - * libgcc2.c (__floatdi[xtds]f): Round properly even when rounding - large negative integer to plus or minus infinity. - -Fri Feb 6 15:45:16 1998 Philippe De Muyter <phdm@macqel.be> - - * sdbout.c (plain_type_1): Return T_DOUBLE, not T_VOID, for - long double #ifndef EXTENDED_SDB_BASIC_TYPES. - -Fri Feb 6 15:23:49 1998 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * vax/ultrix.h (HAVE_ATEXIT): Define. - * x-vax: File deleted. - -Fri Feb 6 14:34:19 1998 Douglas Rupp <rupp@gnat.com> - - * gcc.c (process_command, case "-dumpversion"): Print spec_version. - -Fri Feb 6 11:01:13 1998 Josh Littlefield <josh@american.com> - - * i386/gmon-sol2.c (internal_mcount): Do set-up when program starts - and install hook to do clean-up when it exits. - * i386/sol2-c1.asm (_mcount): Make a weak instead of global symbol. - * i386/sol2dbg.h (ASM_SPEC): Support Solaris bundled assembler's -V - argument; pass -s argument to assembler. - -Fri Feb 6 09:13:21 1998 Jim Wilson (wilson@cygnus.com) - - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. - - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * mips/iris6.h (LINK_SPEC): Hide __frame_dummy too. - -Fri Feb 6 09:08:21 1998 Mike Stump <mrs@wrs.com> - - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload. - * genattrtab.c (reload_completed): Define. - - * configure.in (i960-wrs-vxworks): Same as i960-wrs-vxworks5*. - -Fri Feb 6 08:47:38 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (diff): Add INSTALL, configure, and config.in; - remove objc-*. - * objc/config-lang.in (diff_excludes): Add objc-parse.[cy]. - - * i386/xm-mingw32.h (link): Delete macro. - - * alpha.c (output_prolog): Write out frame sizes as longs and - print too large sizes as zero. - - * function.c (combine_temp_slots): No need to allocate and free rtx. - Don't do anything if too many slots in the list. - (put_var_into_stack): Don't use ADDRESSOF if not optimizing. - - * function.c (purge_addressof_1): Force into mem if VOLATILE reference. - - * calls.c (expand_call): Show VAR_DECL made for structure return - address is used; remove bogus set of MEM_IN_STRUCT_P. - * expr.c (expand_expr, case SAVE_EXPR, case TARGET_EXPR): Show used. - (expand_builtin, case BUILT_IN_LONGJMP): Show __dummy used. - * function.c (put_reg_into_stack): New arg USED_P; all callers changed. - - * expr.c (expand_expr, case SAVE_EXPR): assign_temp with KEEP of 3. - * function.c (var_temp_slot_level): New variable. - (push_function_context_to, pop_function_context_from): Save/restore - it and target_temp_slot_level. - (assign_stack_temp): Implement KEEP of 3. - (push_temp_slots_for_block): New function. - (init_temp_slots): Initialize var_temp_slot_level. - * function.h (struct function, fields {var,target}_temp_slot_level): - New fields. - * stmt.c (expand_start_bindings): Call push_temp_slots_for_block. - - * function.c (struct temp_slot): SIZE, BASE_OFF_SET, and FULL_SIZE - now HOST_WIDE_INT. - (assign_{,outer_}stack_local, assign_{,stack_}temp): Size arg is - now HOST_WIDE_INT. - (assign_stack_temp): Do size computations in HOST_WIDE_INT. - (fixup_var_refs_1, optimize_bit_field, instantiate_decls): Likewise. - (instantiate_virtual_regs_1, fix_lexical_address): Likewise. - * rtl.h (assign_stack_{local,temp}): Size arg is HOST_WIDE_INT. - (assign_temp): Likewise. - * expr.h (struct args_size): Field CONSTANT is now HOST_WIDE_INT. - - * sched.c (attach_deaths, case REG): Don't check for REG_UNUSED. - (attach_deaths, case SUBREG, STRICT_LOW_PART, {ZERO,SIGN}_EXTRACT): - Don't pass set_p of 1 if partial assignment. - - * tree.h (size_in_bytes): Returns HOST_WIDE_INT. - * tree.c (size_in_bytes): Likewise. - Tighen up logic some to avoid returning a bogus value instead of -1. - - * expr.c (get_inner_reference, case ARRAY_EXPR): Make WITH_RECORD_EXPR - just for index. - (expand_expr, case PLACEHOLDER_EXPR): Refine search again; look - at each expression and look for pointer to type. - - * expr.c (safe_from_p, case ADDR_EXPR): If TREE_STATIC, no trampoline. - (expand_expr, case ADDR_EXPR): Likewise. - - * expr.c (emit_block_move): Use conservative range for movstr mode. - - * configure.in: See if "cp -p" works if "ln -s" doesn't; else "cp". - - * combine.c (try_combine.c): Pass elim_i2 and elim_i1 to - distribute_notes for i3dest_killed REG_DEAD note. - - * configure.in (mips-dec-netbsd*): Remove bogus setting of prefix. - - * c-decl.c (duplicate_decls): Set DECL_IGNORED_P in newdecl if - different bindings levels. - - * configure.in: Test ln -s by symlinking gcc.c. - - * configure.in (i[3456]86-dg-dgux): Add wildcard for version. - - * crtstuff.c (__do_global_ctors_aux): Switch back to text section - in proper place. - - * rtlanal.c (rtx_varies_p, case REG): pic_offset_table_rtx is fixed. - * genattrtab.c (pic_offset_table_rtx): Define (dummy). - * cse.c (set_nonvarying_address_components): Understand PIC refs. - - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. - - * i860.c (output_delayed_branch): Add missing arg to recog. - (output_delay_insn): Add missing arg to constrain_operands. - - * configure.in: Truncate target after finished comparing it with host. - - * i386.h (MAX_FIXED_MODE_SIZE): Delete. - - * c-parse.in (expr_no_comma): Clarify undefined error. - - * prefix.c (get_key_value): Don't default to PREFIX here. - (translate_name): Remove bogus addition of "$" if getenv fails; - clean up application of default value of PREFIX. - - * fold-const.c (fold_convert): Call force_fit_type even if input - already overflows. - -Fri Feb 6 07:45:01 1998 Robert Hoehne <robert.hoehne@gmx.net> - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,BCMP,RINDEX,INDEX}): Define. - - * gcc.c (main): Treat paths starting with '$' or DOS drives - as absolute in standard_startfile_prefix. - -Thu Feb 5 21:07:12 1998 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * cpplib.c (IS_INCLUDE_DIRECTIVE_TYPE): Add casts from enum to int. - * cccp.c (IS_INCLUDE_DIRECTIVE_TYPE, handle_directive): Likewise. - -Thu Feb 5 19:00:44 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case CONSTRUCTOR): Correct shift count - when making signed bit field; use EXPAND_NORMAL, not 0. - -Thu Feb 5 17:42:43 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. - -Thu Feb 5 17:32:01 1998 Robert Hoehne <robert.hoehne@gmx.net> - - * Makefile.in: Changed most stamp-* to s-*. - -Tue Feb 3 19:45:50 1998 James Hawtin <oolon@ankh.org> - - * i386/sol2.h (STARTFILE_SPEC, LIB_SPEC): Update -pg files. - * configure.in (i[3456]86-*-solaris2*): Add gcrt1.o and gmon.o - to extra_parts. - -Tue Feb 3 17:28:48 1998 Christopher C Chimelis <chris@classnet.med.miami.edu> - - * configure.in (alpha*-*-linux-gnu*): Add extra_parts for crtstuff. - -Tue Feb 3 17:18:19 1998 Richard Earnshaw <rearnsha@arm.com> - - * arm.c (find_barrier): Fix one-too-many bug if fail to find barrier. - - * arm.c (arm_reload_in_hi): Handle cases where the MEM is too - complex for a simple offset. - -Tue Feb 3 16:14:21 1998 Robert Hoehne <robert.hoehne@gmx.net> - - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - - * configure.in (i[3456]86-pc-msdosdjgpp*): New entry. - -Tue Feb 3 07:33:58 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * explow.c (probe_stack_range): Properly check for small - number of probes. - - * gcc.c (process_command, case 'V'): Validate arg. - - * configure.in (sbrk): Add check for needed declaration. - * acconfig.h (NEED_DECLARATION_SBRK): New entry. - * toplev.c (sbrk): Update declaration conditional. - * mips-tfile.c (sbrk, free): Likewise. - - * sparc/sysv4.h (DBX_REGISTER_NUMBER): Remove abort. - - * mips.c (mips_expand_prologue): Pass reg 25 to gen_loadgp. - * mips.md (loadgp): Add second operand for register number to add. - (builtin_setjmp_receiver): Pass new label and reg 31 to loadgp. - - * toplev.c: Include insn-codes.h, insn-config.h, and recog.h. - (compile_file): Try to emit nop to separate gcc_compiled symbol. - * Makefile.in (toplev.o): Depends on insn-{codes,config}.h, recog.h. - -Tue Feb 3 06:58:46 1998 Mark Mitchell <mmitchell@usa.net> - - * integrate.c (get_label_from_map): New function. - (expand_inline_function): Use it. - Initialize label_map to NULL_RTX instead of gen_label_rtx. - (copy_rtx_and_substitute): Use get_label_from_map. - * integrate.h (get_label_from_map): New function. - (set_label_from_map): New macro. - * unroll.c (unroll_loop, copy_loop_body): Use them. - -Mon Feb 2 16:33:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386.md (mov{si,hi,sf,df,xf}cc{,_1}): Remove cases with branches. - - * rs6000/x-aix31 (INSTALL): Deleted. - * mips/x-dec-osf1, mips/x-osfrose, i386/x-osfrose: Likewise. - * arm/x-riscix: Likewise. - - * c-typeck.c (signed_or_unsigned_type): Properly handle pointer types. - -Mon Feb 2 15:33:58 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * unroll.c (copy_loop_body): Use single_set instead of - PATTERN to detect increment of an iv inside a PARALLEL. - -Fri Jan 16 20:29:50 1998 Paul Eggert <eggert@twinsun.com> - - * toplev.c (<unistd.h>): New include. - (get_run_time): Prefer CLK_TCK (if available) to HZ, and - prefer sysconf (_SC_CLK_TCK) (if available) to CLK_TCK. - * configure.in (sysconf): Call AC_CHECK_FUNCS. - -Wed Jan 14 20:10:51 1998 Paul Eggert <eggert@twinsun.com> - - * cccp.c: (rescan): Don't report line 0 as the possible real start - of an unterminated string constant. - Don't mishandle backslash-newlines that in are the output of - a macro expansion. Properly skip // style comments between a function - macro name and '(', as well as backslash-newlines in comments there. - (handle_directive): Handle / \ newline * between # and directive name. - In #include directives, \ does not escape ". - (do_include): For `#include "file', do not bother expanding into temp - buffer. When error encountered when expanding, do not try result. - (skip_if_group): When skipping an include directive, use include - tokenization, not normal tokenization. Backslash-newline is still - special when skipping. Handle * \ newline / correctly in comments - when skipping. - (skip_quoted_string): After \ newline, set *backslash_newlines_p - even if count_newlines is 0. - (macroexpand): Newline space is not a special marker inside a string. - (macroexpand, macarg): Do not generate \ddd for control characters - when stringifying; the C Standard does not allow this. - (macarg1): New arg MACRO. All callers changed. - Do not treat /*, //, or backslash-newline specially when processing - the output of a macro. - (discard_comments): Don't go past limit if looking for end of comment. - Discard backslash-newline properly when discarding comments. - (change_newlines): \" does not end a string. - (make_definition): Do not treat backslash-newline specially, as it - has already been removed before we get here. - - * profile.c (output_func_start_profiler): Don't fflush output - if -quiet. - * toplev.c (rest_of_compilation): Likewise. - - * i386/x-sco5 (CC): Remove trailing white space. - * x-convex (CCLIBFLAGS): Likewise. - * arm/t-semi (LIBGCC2_CFLAGS): Likewise. - -Wed Jan 7 18:02:42 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Version 2.8.0 released. - -Wed Jan 7 17:54:41 1998 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h ({END,START}FILE_SPEC): Link with correct crtbegin.o - and crtend.o when using -static. - -Wed Jan 7 17:49:14 1998 Jan Christiaan van Winkel <Jan.Christiaan.van.Winkel@ATComputing.nl> - - * cppexp.c (gansidecl.h): Include. - -Wed Jan 7 17:45:07 1998 Tristan Gingold <gingold@puccini.enst.fr> - - * expr.c (get_push_address): Use copy_to_reg instead of force_operand. - (emit_push_insn): Avoid null pointer deference if aggregate has no - types. - (expand_expr): Avoid finite but useless recursion. - (expand_builtin): Fix typo in calling function. - * function.c (assign_parms): Avoid useless call to chkr_set_right. - -Wed Jan 7 17:31:13 1998 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * combine.c (force_to_mode): Return if operand is a CLOBBER. - -Wed Jan 7 17:23:24 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * x-rs6000 (INSTALL): Remove. - - * jump.c (jump_optimize): Don't use a hard reg as an operand - of a conditional move if small register classes. - -Wed Jan 7 17:09:28 1998 Jim Wilson <wilson@cygnus.com> - - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use it. - (cse_main): Set it. - -See ChangeLog.11 for earlier changes. - -Use a consistent time stamp format in ChangeLog entries. -Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/FSFChangeLog.10 b/gcc/FSFChangeLog.10 deleted file mode 100755 index 513ac72..0000000 --- a/gcc/FSFChangeLog.10 +++ /dev/null @@ -1,10110 +0,0 @@ -Sun Mar 31 05:10:10 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_decl): Don't make a bitfield an integral mode - if the mode of the field type is not MODE_INT. - - * sched.c (schedule_block): CALL_INSNs don't affect fixed regs. - * flow.c (propagate_block): CALL_INSNs don't kill fixed regs. - -Sat Mar 30 03:32:48 1996 Torbjorn Granlund <tege@noisy.tmg.se> - - * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Move some code - to avoid shifting by a too large count. - -Fri Mar 29 15:45:51 1996 Doug Evans <dje@cygnus.com> - - * configure (i[3456]86-*-sunos5*): Delete, config.sub converts - sunos5 to solaris2. - (sparc-*-sunos5*): Likewise. - (sparc64-*-{solaris2*,sunos5*}): Delete. Stick with sparc-*-solaris2*. - - * sparc.h (FUNCTION_PROFILER): Save/restore %g2 around mcount call. - -Fri Mar 29 14:20:31 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (notice_update_cc): Clear cc_status if ref modified MEM. - -Fri Mar 29 09:37:52 1996 Jeffrey A. Law <law@cygnus.com> - - * calls.c (expand_call): Remove current_call_is_indirect nonsense. - Add additional argument to INIT_CUMULATIVE_ARGS. - (emit_library_call): Likewise. - (emit_library_call_value): Likewise. - * expr.c (expand_builtin): Likewise. - * function.c (assign_parms): Likewise. - * pa.h (hppa_args): New field "indirect". - (INIT_CUMULATIVE_ARGS): Initialize "indirect" field. - (FUNCTION_ARG): Check "indirect" field, rather than - "current_call_is_indirect". - * a29k.h (INIT_CUMULATIVE_ARGS):New arg, INDIRECT. - * alpha.h (INIT_CUMULATIVE_ARGS): Likewise. - * arm.h (INIT_CUMULATIVE_ARGS): Likewise. - * clipper.h (INIT_CUMULATIVE_ARGS): Likewise. - * convex.h (INIT_CUMULATIVE_ARGS): Likewise. - * dsp16xx.h (INIT_CUMULATIVE_ARGS): Likewise. - * elxsi.h (INIT_CUMULATIVE_ARGS): Likewise. - * fx80.h (INIT_CUMULATIVE_ARGS): Likewise. - * gmicro.h (INIT_CUMULATIVE_ARGS): Likewise. - * h8300.h (INIT_CUMULATIVE_ARGS): Likewise. - * i370/mvs.h (INIT_CUMULATIVE_ARGS): Likewise. - * i386.h (INIT_CUMULATIVE_ARGS): Likewise. - * i860.h (INIT_CUMULATIVE_ARGS): Likewise. - * i960.h (INIT_CUMULATIVE_ARGS): Likewise. - * m68k.h (INIT_CUMULATIVE_ARGS): Likewise. - * m68k/mot3300.h (INIT_CUMULATIVE_ARGS): Likewise. - * m88k.h (INIT_CUMULATIVE_ARGS): Likewise. - * mips.h (INIT_CUMULATIVE_ARGS): Likewise. - * ns32k.h (INIT_CUMULATIVE_ARGS): Likewise. - * pdp11.h (INIT_CUMULATIVE_ARGS): Likewise. - * pyr.h (INIT_CUMULATIVE_ARGS): Likewise. - * romp.h (INIT_CUMULATIVE_ARGS): Likewise. - * rs6000.h (INIT_CUMULATIVE_ARGS): Likewise. - * sh.h (INIT_CUMULATIVE_ARGS): Likewise. - * sparc.h (INIT_CUMULATIVE_ARGS): Likewise. - * spur.h (INIT_CUMULATIVE_ARGS): Likewise. - * tahoe.h (INIT_CUMULATIVE_ARGS): Likewise. - * vax.h (INIT_CUMULATIVE_ARGS): Likewise. - * we32k.h (INIT_CUMULATIVE_ARGS): Likewise. - * mips.c (mips_expand_prologue): Add extra arg to - INIT_CUMULATIVE_ARGS call. - -Thu Mar 28 18:45:49 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.c (summarize_insn): Fix three "off-by-one" bugs in loop bounds. - -Thu Mar 28 16:50:10 1996 Doug Evans <dje@cygnus.com> - - * ginclude/inl-sparc.h: Deleted. - -Thu Mar 28 12:07:31 1996 Jeffrey A. Law <law@cygnus.com> - - * va-h8300.h (va_arg): Don't assume sizeof (int) == 4. - - * pa.c (hppa_legitimize_address): Don't lose for - (plus (plus (mult (A) (shadd_const)) (B)) (C)) if - B + C isn't a valid address for indexing. - (basereg_operand): Only accept base registers after - cse has completed. Don't accept the frame pointer if - it's likely to be eliminated. - * pa.md (unscaled indexing patterns): Add variants with - basereg and index register reversed. - (HImode and QImode loads): Add zero extended variants. - -Wed Mar 27 07:45:27 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expmed.c (negate_rtx): Fix typo in previous change. - -Tue Mar 26 13:50:43 1996 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * calls.c (expand_call): In convert_to_mode call, use word_mode - not SImode. - -Tue Mar 26 13:44:34 1996 Doug Evans <dje@canuck.cygnus.com> - - * configure: Delete unnecessary special handling of --with-cpu. - -Tue Mar 26 10:41:57 1996 Jeffrey A. Law <law@cygnus.com> - - * expr.c (emit_push_insn): When doing a partial push, emit - a CLOBBER so that flow doesn't think the entire register - is live. - -Tue Mar 26 10:00:52 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.c (summarize_insn, default case): Properly use format_ptr. - -Tue Mar 26 09:51:09 1996 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.h (output_move_simode_const): New extern declaration. - * m68k.c (output_move_simode_const): New function. - (singlemove_string): Call it. - * m68k.md (fullword move): Likewise. - -Tue Mar 26 05:43:06 1996 Torbjorn Granlund <tege@noisy.tmg.se> - - * vax.md (insv matcher): Call CC_STATUS_INIT. - * vax.h (NOTICE_UPDATE_CC): Handle ZERO_EXTRACT destination. - -Mon Mar 25 19:18:08 1996 Jason Merrill <jason@yorick.cygnus.com> - - * function.c (expand_function_start): Don't set up context_display - unless current_function_needs_context. - -Mon Mar 25 18:48:18 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * fold-const.c (fold, case BIT_IOR_EXPR): Recognize rotates - with variable count. - -Mon Mar 25 18:05:28 1996 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (libgcc1-test): Undo Feb 12 change. - -Mon Mar 25 08:09:59 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc/thread-single.c (objc_mutex_unlock): Properly declare thread_id. - -Mon Mar 25 08:02:50 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * configure (m68k-motorola-sysv*): Fixed indentation. - -Sun Mar 24 08:16:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (negate_rtx): Don't try to negate a constant ourself; - instead call simplify_unary_operation. - -Sun Mar 24 07:29:06 1996 Richard Henderson <rth@tamu.edu> - - * gcc.c (process_command): Instead of hardcoding non-empty - switches_need_spaces to turn on "o" and "L", make the string - contain the switches that need the spaces. - * m68k/ccur-GAS.h (SWITCHES_NEED_SPACES): Change definition - correspondingly. - -Sat Mar 23 18:34:44 1996 Harry Dolan <dolan@ssd.intel.com> - - * i860/paragon.h (LIB_SPEC): Always output -lmach. - -Sat Mar 23 18:25:39 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * c-typeck.c (set_init_index): Check for use outside an array - initializer. - - * defaults.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete. - * pdp11.h (ASM_OUTPUT_ADDR_DIFF_ELT): Don't define. - -Sat Mar 23 15:55:35 1996 Doug Evans <dje@canuck.cygnus.com> - - * combine.c (make_extraction): In BITS_BIG_ENDIAN correction of POS, - need to treat MEM and REG differently. - - * sparc.h (SPARC_SIMM{10,11,13}_P): Define. - (SMALL_INT): Use SPARC_SIMM13_P. - (CONST_OK_FOR_LETTER_P): Support new letters L,M. - * sparc.c (arith11_operand): Use SPARC_SIMM11_P. - (arith10_operand): Use SPARC_SIMM10_P. - * sparc.md (*mov{qi,hi,si,di}_cc_sp64): Fix constraints. - (*mov{qi,hi,si,di}_cc_reg_sp64): Likewise. - -Sat Mar 23 07:47:19 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/linux.h (TRAMPOLINE_TEMPLATE): Correct first instruction. - * m68k/m68kv4.h (TRAMPOLINE_TEMPLATE): Likewise. - -Sat Mar 23 07:06:55 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * bc-emit.c (bc_emit_instruction): Add missing va_end call. - - * c-typeck.c (build_array_ref): Give error if subscripting a function. - -Fri Mar 22 09:11:45 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * local-alloc.c (optimize_reg_copy_1): Only update reg_live_length - if it is non-negative. - -Thu Mar 21 14:42:26 1996 Doug Evans <dje@cygnus.com> - - * sparc/splet.h (STARTFILE_SPEC,LINK_SPEC): Define. - -Wed Mar 20 17:23:18 1996 Jim Wilson <wilson@cygnus.com> - - * cse.c (note_mem_written): Delete obsolete code for handling - (mem (scratch)). - - * mips.c (mips_expand_prologue): In initialization of fnargs, delete - special treatment of METHOD_TYPE. - -Wed Mar 20 17:07:45 1996 Doug Evans <dje@cygnus.com> - - * sparc/sol2.h (ASM_CPU_SPEC): Recognize -mcpu=v8plus, not v9. - Fix typo in ultrasparc entry. - * sparc.h (CPP_CPU_SPEC): Add v8plus entry. - (ASM_CPU_SPEC): Likewise. - - * sparc.c (fcc_reg_operand): Ensure correct mode. - (icc_or_fcc_reg_operand): Likewise. - (gen_v9_scc): IF_THEN_ELSE must have a mode. - (print_operand): New operand code `x' for all condition codes. - New operand codes `c,d' for reversed conditional moves. - * sparc.md (movqicc,movhicc): New named patterns. - (movdicc): if_then_else must have a mode. - (movsicc,movsfcc,movdfcc,movtfcc): Likewise. - Change condition to TARGET_V9, not TARGET_ARCH64. - Fail if DImode compare and ! TARGET_ARCH64. - (conditional move matchers): Rewrite. - -Wed Mar 20 16:12:29 1996 Stan Cox <coxs@wombat.gnu.ai.mit.edu> - - * i386.h (HARD_REGNO_MODE_OK): Relax QImode constraint to - avoid a reload problem. - -Wed Mar 20 13:12:22 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.c (hppa_legitimize_address): Don't lose for x[n-const] - when n-const will not be shifted. Don't pessimize code for - x[n-const] when const is small. - -Wed Mar 20 11:42:32 1996 Markus Theissinger <Markus.Theissinger@gmd.de> - - * m68k/sun3.h (LIB_SPEC): Don't link /usr/lib/bb_link.o with `gcc -a'. - (__bb_init_func): Deleted. - (BLOCK_PROFILER_CODE): Don't set macro to nothing. - - * m68k/xm-sun3.h: New file. - * configure (m68k-sun-sunos*): Use it. - - * xm-linux.h (HAVE_POPEN): New define. - -Wed Mar 20 11:28:37 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/linux.h (ASM_SPEC): Deleted. - (STRUCT_VALUE_REGNUM): Redefine as register a0. - (STATIC_CHAIN_REGNUM): Redefine as register a1. - (TRAMPOLINE_TEMPLATE): Redefine to use the right register. - -Wed Mar 20 08:04:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (__dummy): New function. - * Makefile.in (LIB2FUNCS): Add __dummy. - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Call "setjmp" - pattern, if any. - Call dummy function pointed to by static chain pointer. - (expand_builtin, case BUILT_IN_LONJMP): Ignore second expression. - Set address of __dummy into static chain pointer. - Copy the label to return to into a pseudo earlier. - - * stupid.c (last_setjmp_suid, regs_crosses_setjmp): New variables. - (stupid_life_analysis, stupid_mark_refs): Use them to track which - regs are live over a setjmp; don't allocate such regs. - -Tue Mar 19 22:02:07 1996 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c (demangle_template): Fix for non-mangled pointer - arguments. - -Tue Mar 19 13:54:06 1996 Jeffrey A. Law <law@wombat.gnu.ai.mit.edu> - - * pa.c (compute_frame_size): Update comments to reflect reality. - (hppa_expand_prologue): Don't save registers which aren't - used, even if it creates holes. Partially undoes changes from - early March. - (hppa_expand_epilogue): Likewise. - -Tue Mar 19 08:25:17 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * stmt.c (struct case_node): New member balance. - (add_case_node): New function. - (pushcase, pushcase_range): Use it. - (case_tree2list): New function. - (expand_end_case): Use it. - -Tue Mar 19 07:44:22 1996 Stephen L Moshier (moshier@world.std.com) - - * regstack.c (move_for_stack_reg): Avoid stack overflow while - storing XFmode from fp reg to memory. - -Tue Mar 19 07:38:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * m68k.h (MASK_*): New macros. - (OVERRIDE_OPTIONS): Use them. - (TARGET_SWITCHES): Likewise. - Treat -m68332 like -m68000. - -Mon Mar 18 20:04:13 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * expmed.c (emit_store_flag): If expanding (GE X 0) will need two - insns, don't use subtarget for the result of the first insn. - Move a likely constant to the start of a condition. - -Mon Mar 18 19:48:14 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.h (CONST_OK_FOR_LETTER_VALUE): New constraint 'M'. - * m68k.c (output_function_epilogue): Restore registers using sp+ - instead of fp(n) in leaf functions. - (USE_MOVQ, use_movq): Function replaced by macro. - * m68k.md (pushexthisi_const, movsi_const0): New names. - (andsi3, iorsi3): Allow only 'M', not 'K' constants, if dest is 'd'. - -Mon Mar 18 19:33:20 1996 Fila Kolodny <fila@ibi.com> - - * i370/t-mvs: New file. - * configure (i370-*-mvs*): Use it. - * i370/mvs.h (FUNCTION_PROLOGUE): LE/370 takes 120 bytes for DSA. - Have only one copy of timestamp and PPA2 per object module. - Only have unnamed CSECT to match IBM C. - -Mon Mar 18 19:26:21 1996 Paul Russell (Rusty.Russell@adelaide.maptek.com.au) - - * combine.c (simplify_if_then_else): Allow for case that - condition might no longer be a condition. - -Mon Mar 18 19:14:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (build_conditional_expr): If OP1 is null, set - both OP1 and ORIG_OP1 to IFEXP. - - * c-iterate.c (iterator_loop_epilogue): Don't clear DECL_RTL - for a static decl. - -Mon Mar 18 08:02:25 1996 Stephen L Moshier <moshier@world.std.com> - - * alpha.c (summarize_insn, case SUBREG, CONST_*): New cases. - -Sun Mar 17 16:55:00 1996 Doug Evans <dje@cygnus.com> - - * combine.c (find_split_point): Handle NULL return from - make_extraction. - (make_field_assignment): Likewise. - -Sat Mar 16 18:56:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (substitute_in_expr, case COMPONENT_REF): Ignore - if inner PLACEHOLDER_EXPR has not yet been initialized. - - * i386.c (standard_80386_constant_p): -0.0 is not 0.0. - * i386.md (insv): Restore missing end of comment. - - * combine.c (make_extraction): Correct typo in force_to_mode - call in previous change. - Return 0 if pos+len out of range of want desired mode. - -Sat Mar 16 16:20:43 1996 David Mosberger-Tang <davidm@azstarnet.com> - - * alpha.md (trap): New attribute. - Modify patterns for all floating-point trap generating instructions. - * alpha.h (CPP_SPEC): Added -mieee and -mieee-with-inexact. - (alpha_trap_precision, alpha_fp_rounding_mode, alpha_fp_trap_mode): - New enum types. - (target_flags, alpha_tp, alpha_fprm, alpha_fptm): New external vars. - (alpha_fprm_string, alpha_fptm_string, alpha_tp_string): Likewise. - (TARGET_IEEE{,_WITH_INEXACT,_CONFORMANT}): New macros. - (MASK_IEEE{,_WITH_INEXACT,_CONFORMANT}): Likewise. - (MASK_FP, MASK_FPREGS, - (TARGET_SWITCHES): Added "ieee-conformant", "ieee", and - "ieee-with-inexact"; use MASK symbols. - (TARGET_OPTIONS): New macro. - (OVERRIDE_OPTIONS, FINAL_PRESCAN_{INSN,LABEL}): New macros. - (PRINT_OPERAND_PUNCT_VALID_P): Allow operand codes for FP insns. - (CC1_SPEC): New macro. - * alpha.c (alpha_tp, alpha_fprm, alpha_fptm): New variables. - (alpha_tp_string, alpha_fprm_string, alpha_fptm_string - (trap_pending): Likewise. - (override_options, summarize_insn, final_prescan_insn): New functions. - (print_operand): Handle cases '&', '\'', ')', and '+'. - (output_prolog): Emit ".eflag 48" if TARGET_IEEE_CONFORMANT. - (output_epilog): Call final_prescan_insn before emitting epilog. - - * final.c (final_scan_insn, case CODE_LABEL): Invoke - FINAL_PRESCAN_INSN if FINAL_SCAN_LABEL is defined. - - * alpha/{linux.h,x-linux,xm-linux.h}: New files. - * configure (alpha-*-linux*): New case. - * alpha.c (output_prolog): Set alpha_function_needs_gp if profiling - and TARGET_PROFILING_NEEDS_GP defined. - -Thu Mar 14 22:28:20 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Fix last change. - * aix41.h (LINK_SPEC): add -bnoentry if shared and no explicit entry. - -Thu Mar 14 12:47:33 1996 Jim Wilson <wilson@cygnus.com> - - * mips.h (ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and - HOST_BITS_PER_WIDE_INT == 64. - - * mips.c (mips_expand_prologue): Change TYPE_NEEDS_CONSTRUCTING to - TREE_ADDRESSABLE; - -Thu Mar 14 11:21:37 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): For 32-bit mode, - allow TImode variables with int offsets, so that structures - greater than 8 bytes and less than or equal to 16 bytes can be - instantiated correctly. - - * rs6000.c (rs6000_valid_type_attribute_p): Add exception - attribute for Windows NT. - - * win-nt.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete, merge into - ASM_DECLARE_FUNCTION_NAME. - (ASM_DECLARE_FUNCTION_NAME): Add support for exception attribute - setting fields 3 & 4 of the structured exception handling table. - -Thu Mar 14 01:53:19 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING - to TREE_ADDRESSABLE. From Jim Wilson. - -Wed Mar 13 13:40:32 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * c-tree.h (warn_sign_compare): Add extern to declaration. - -Wed Mar 13 13:37:00 1996 Doug Evans <dje@cygnus.com> - - * configure: Use cross-make and build-make if building - cross compiler with cross compiler. - -Wed Mar 13 12:00:34 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * i386/cygwin32.h (ASM_OUTPUT_ALIGN): Correct defination. - - * rs6000/{win-nt,cygwin32}.h (STARTFILE_SPEC): Add crti.o before - all objects. - (ENDFILE_SPEC): Add crtn.o after all objects. - - * configure (powerpcle-*-cygwin32): Use t-winnt, not t-cygin32 - * rs6000/t-cygwin32: Delete, no longer used. - - * rs6000/t-winnt ({,INSTALL_}LIBGCC): Build and install crti.o and - crtn.o. - - * rs6000/win-nt.h (EXTRA_SECTION_FUNCTIONS): Add ctors_section and - dtors_section. - (INVOKE__main): Define, so that __main is called. - (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Define to put pointers to - the constructor/destructor in the appropriate section. - - * nt-c{i,n}.asm: New files to be linked before/after all of the users' - objects. - -Wed Mar 13 00:42:17 1996 Per Bothner <bothner@cygnus.com> - - * dbxout.c (dbxout_type): Better "variant" handling to ignore - const/volatile but not typedef names. Improves Feb 12 change. - -Tue Mar 12 17:25:14 1996 David Mosberger-Tang <davidm@azstarnet.com> - - * glimits.h (__LONG_MAX__): On Alpha, use 64 bit value. - -Tue Mar 12 15:07:49 1996 Torbjorn Granlund <tege@tmg.se> - - * m68k.c (valid_dbcc_comparison_p): Don't test cc_prev_status here. - (flags_in_68881): New function. - * m68k.md (dbra peepholes): Use flags_in_68881. - -Tue Mar 12 13:54:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sparc.md (nonlocal_goto): Emit barrier after jump. - (setjmp{,_64,_32}): New patterns. - -Tue Mar 12 12:43:27 1996 Jim Wilson <wilson@cygnus.com> - - * i960.h (ROUND_TYPE_SIZE): Return round_up result instead of - COMPUTED. - - * expr.c (expand_expr, case COMPONENT_REF): For unaligned object in - an aligned union, delete check for EXPAND_SUM. - - * expr.h (clear_storage): Add comment terminator. - -Mon Mar 11 19:07:50 1996 Jeffrey A. Law <law@cygnus.com> - - * recog.c (constrain_operands, case 'V'): Don't call - offsettable_memref_p before reload has completed. - -Mon Mar 11 16:06:13 1996 Doug Evans <dje@cygnus.com> - - * h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG. - (CC_DONE_CBIT): Delete. - (CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define. - * h8300.c (cond_string): Delete CC_DONE_CBIT handling. - (notice_update_cc): Delete CC_CBIT, CC_WHOOPS. Add CC_SET_ZN_C0. - (restore_compare_p): New function. - (shift_one): Use shll instead of shal so overflow bit is usable. - Set cc_valid bits to cc_status.flags values. - (emit_a_shift): Set cc_status.flags. - * h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0. - (all patterns) Update cc attr setting. - (tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling. - (addhi3,subhi3): Change define_expand to define_insn. - (branch_true,branch_false): Check if compare needs to be restored. - -Mon Mar 11 13:55:23 1996 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Add 'H' for movdi - patterns in 32 bit that generate 3 instructions. - (num_insns_constant): Add declaration. - - * rs6000.c (num_insns_constant{,_wide}) Functions to determine the - number of insns it takes to generate an integer constant. - (easy_fp_constant): Allow DImode in easy constants. Use - num_insns_constant_wide. - (input_operand): Allow any CONST_{INT,DOUBLE}'s for {SI,DI}mode. - - * rs6000.md (movdi): Generate a normal movdi using a CONST_DOUBLE - for 32 bit mode rather than using SUBREG's. For 64 bit mode, - break large integer constants into smaller pieces. Add various - define_splits to handle loading the various DImode constants. - -Mon Mar 11 06:54:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (make_extraction): Use proper mode for INNER in all cases. - (simplify_comparison, case ZERO_EXTRACT): For bits big endian and - no extzv, use BITS_PER_WORD. - * fx80.md, gmicro.md, i386.md, m68k.md, tahoe.md, vax.md: - Use proper modes and predicates for {sign,zero}_extract. - -Sun Mar 10 06:23:52 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * emit-rtl.c (free_insn): New variable. - (init_emit, restore_emit_status): Clear it. - (gen_sequence): Store insn in free_insn when sequence length is 1. - (make_insn_raw): Use free_insn if available and still in the - rtl generation phase. - -Fri Mar 8 15:37:31 1996 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup - on the cleanup chain until after the subexpression has been expanded. - -Fri Mar 8 16:14:51 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.c (ix86_binary_operator_ok): One memory operand is OK. - This is independent of commutativity. - -Fri Mar 8 14:07:43 1996 Jim Wilson <wilson@cygnus.com> - - * expr.c (store_constructor_field): Call store_field if bitpos is - nonzero and target is not a MEM. - - * jump.c (jump_optimize): When handle a USE insn before an - unconditional jump, disable the optimization if the USE is the - only insn in the loop. - - * sh.c (reg_unused_after): Return 0 if see a JUMP_INSN. - -Fri Mar 8 12:08:36 1996 Doug Evans <dje@cygnus.com> - - * sparc/lynx.h (CPP_SPEC): Use %(cpp_cpu). - - * sparc/sparc.md (move_pic_label_si,move_label_di): Rewrite length - attr calcs to be more conservative. - -Thu Mar 7 19:14:21 1996 Doug Evans <dje@cygnus.com> - - * sparc/t-splet: New file. - * sparc/splet.h: New file. - * configure (sparclet-*-aout*): Use them. - - * sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define. - (FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101). - (FIXED_REGISTERS,CALL_USED_REGISTERS): Update. - (FIXED_REGISTERS): %g0 is fixed by default. - (SPARC_{FIRST,LAST}_V9_FCC_REG): Define. - (SPARC_{ICC,FCC}_REG): Define. - (CONDITIONAL_REGISTER_USAGE): Don't fix %fcc0 if v8. - (REG_CLASS_CONTENTS): Reg 0 is an int reg, reg 100 is %icc. - (REGNO_REG_CLASS): Rewrite to use global `sparc_regno_reg_class'. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Add %icc. - (REG_CLASS_FROM_LETTER): Handle 'c' for FPCC_REGS in non-v9 case. - (REGNO_OK_FOR_{BASE,INDEX}_P): Treat %g0 as a normal reg. - (REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise. - (REGISTER_NAMES): Add %icc. - (ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG. - * sparc.c (leaf_reg_remap): Add %icc=100. - (reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0. - (fcc_reg_operand): Renamed from ccfp_reg_operand. - Use SPARC_FCC_REG. Don't treat reg 0 as an fcc reg. Don't match - modes if `mode' argument is VOIDmode. - (icc_or_fcc_reg_operand): New function. - (gen_compare_reg): Use SPARC_FCC_REG for v8 fp compares. - Use SPARC_ICC_REG for int compares. - (eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0. - Delete unnecessary test for %g0. - (emit_move_sequence): Don't emit (set (mem) (const_int 0)) if - TARGET_LIVE_G0. - (output_scc_insn): Label moved to operand 3. Condition code reg - moved to operand 2. - (sparc_mode_class): Enum C_MODE renamed to CC_MODE. - (hard_32bit_mode_classes): Set reg 0 to S_MODES. Add entry for %icc. - (hard_64bit_mode_classes): Set reg 0 to D_MODES. Add entry for %icc. - (sparc_regno_reg_class): New global. - (sparc_init_modes): Initialize it. - (output_cbranch): Delete fp_cond_reg argument. - (print_operand, MEM op): Don't print "%g0+" if TARGET_LIVE_G0. - (sparc_flat_eligible_for_epilogue_delay): Don't allow anything if - TARGET_LIVE_G0. - * sparc.md (live_g0): New attribute. - (*): Integer condition code register is now reg 100. - Use SPARC_ICC_REG instead of hardcoding reg 100 where possible. - Non-v9 floating point condition code register is now reg 96. - (*cmp{sf,df,tf}_{fpe,fp}_sp{32,64}): Combine v9/non-v9 cases. - (*{normal,inverted}_{,fp,fpe}_branch): Update call to output_cbranch. - (*mov{qi,hi,si}_insn): Don't use if TARGET_LIVE_G0. - (*mov{qi,hi,si}_insn_liveg0): New patterns. - (*mov{si,di,sf,df,tf}_ccfp{,e}_sp64): ccfp_reg_operand renamed to - fcc_reg_operand. - (*negdi2_sp32,negsi2,one_cmplsi2,ffssi2): Ensure %%g0 is 0 if - TARGET_LIVE_G0. - (*one_cmpldi2_sp32): Move operand 1 to rs1 and use 0 as rs2. - (patterns that use %g0 in rs2): Use 0 immediate value instead. - (patterns that read %g0): Don't use if TARGET_LIVE_G0. - -Thu Mar 7 15:39:16 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.h (PASS_IN_REG_P): Change < to <=. - * va-sh.h (va_start): Change __SH3E___ to __SH3E__. - (va_arg): Add little-endian SH3E support. Fix big-endian version - to work for arguments smaller than the word size. - -Thu Mar 7 10:37:37 1996 Jeffrey A. Law <law@cygnus.com> - - * lib2funcs.asm: Remove entry/exit routines. Move them into... - * ee.asm: New file. Entry/exit code. - * ee_fp.asm: New file. Entry/exit code with frame pointer. - * t-pa: Corresponding changes. - * t-pro: Corresponding changes. - - * pa.c: Fix misc small typos/thinkos in recent changes. - -Wed Mar 6 17:36:03 1996 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c (demangle_template): Fix for address-of-extern arguments. - -Wed Mar 6 15:12:55 1996 Jeffrey A. Law <law@cygnus.com> - - * t-pro (dp-bit rule): Fix typo. - - * lib2funcs.asm (__outline_prologue): Remove frame pointer - support. - (__outline_prologue_fp): Out of line prologue with frame pointer. - (__outline_epilogue, outline_epilogue_fp): Similarly. - * pa.c (compute_frame_size): Allocate enough space to avoid holes - in the callee register saves. Remove some special handling of %r3. - (hppa_expand_prologue): Don't do an out of line prologue/epilogue - if it would take more insns than an inline prologue/epilogue. - Don't leave holes in the callee register save set. - (hppa_expand_prologue): Corresponding changes. Pass stack size - to out of line epilogue code. - * pa.h (FRAME_POINTER_REQUIRED): Revert last change. - * pa.md (outline_prologue_call): Handle outline prologues which - don't need frame pointers. - (outline_epilogue_call): Similarly. - * t-pro: Reenable multilib code. Build a set of libraries that - optimize for space. - -Wed Mar 6 14:28:14 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * Makefile.in (USER_H): Add ginclude/va-sh.h. - * ginclude/stdarg.h, ginclude/varargs.h: Use va-sh.h. - * ginclude/va-sh.h: New file. - - * sh.h (PASS_IN_REG_P): Fix typo in last change. - -Wed Mar 6 11:42:06 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (enum processor_type): Remove PROCESSOR_PPC602. - (RTX_COSTS): Remove PROCESSOR_PPC602. PPC603 MULT cost depends - on constant and domain. - * rs6000.c (processor_target_table): 602 uses PROCESSOR_PPC603. - (get_issue_rate): Remove CPU_PPC602. - * rs6000.md (function units): Remove PPC602. Add store and - fpstore type attribute values. Update patterns. - -Tue Mar 5 18:43:43 1996 Richard Henderson <rth@tamu.edu> - - * m68k/coff.h (ASM_OUTPUT_SECTION_NAME): New define. - - * m68k/{aux-crt1.c,aux-crt[2n].asm}: New files. - * m68k/{aux-exit.c,aux-low.gld,aux-mcount.c}: More new files. - * m68k/{aux.h,auxgnu.h,auxstd.h}: Even more new files. - * m68k/{t-aux,xm-aux.h}: The rest of the new files. - * m68k/sgs.h (ASM_OUTPUT_CASE_END): Add missing semicolon. - (switch_table_difference_label_flag): Make extern. - * fixincludes (sys/param.h): Fix c89 __asm statements. - * configure (m68k-apple-aux*): New target. - -Tue Mar 5 17:38:19 1996 Doug Evans <dje@cygnus.com> - - * sparc.md (*mov{qi,hi,si}_insn): Simplify length attribute. - (*movsi_insn): Use fpload/fpstore attributes for fp loads/stores. - %r1 -> %1 for fpstore alternative. - (*movsf_insn,*movsf_no_f_insn): %r1 -> %1. - -Tue Mar 5 17:19:17 1996 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (expand_expr, case *_DECL): If we make a non-local - reference from a function with DECL_NO_STATIC_CHAIN set, abort. - (expand_expr, case ADDR_EXPR): We don't need a trampoline for a - function with DECL_NO_STATIC_CHAIN set. - * function.c (lookup_static_chain): If we're checking on a function - that doesn't need a static chain, return 0. - (init_function_start): We don't need context if DECL_NO_STATIC_CHAIN - is set. - * tree.c (staticp): Check DECL_NO_STATIC_CHAIN on nested functions. - -Tue Mar 5 15:04:29 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.md (push_e, pop_e): Add TARGET_SH3E to condition. - * sh.h (JUMP_TABLES_IN_TEXT_SECTION): Define. - * sh.c (find_barrier): Set si_limit to 1018 instead of 1020, and - hi_limit to 510 instead of 512. - -Tue Mar 5 13:39:44 1996 Doug Evans <dje@cygnus.com> - - * loop.c (init_loop): Use pseudo reg in add_cost computation - so cost doesn't vary depending on whether reg 0 happens to be - fixed or not. - -Tue Mar 5 09:32:24 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * reg-stack.c (record_label_references): Check for undefined label. - -Tue Mar 5 09:22:20 1996 Scott Christley (scottc@net-community.com) - - * objc/objc-api.h, objc/runtime.h: Include objc/thread.h. - * objc/class.c (__objc_init_class_tables): Surround sarray access - with mutex lock/unlock. - (__objc_add_class_to_hash, objc_lookup_class): Likewise. - (objc_get_class, objc_get_next_class): Likewise. - (__objc_resolve_class_links, class_pose_as): Likewise. - * objc/init.c (__objc_runtime_mutux, __objc_runtime_thread_alive): - New variables. - (objc_init_statics, __objc_init_protocols): Surround sarray access - with mutex lock/unlock - (__objc_exec_class): Likewise. - Initialization for thread-safe global variables. - Declarations for thread-safe functions and global variables - * objc/sendmsg.c (get_imp, __objc_responds_to): - Surround sarray access with mutex lock/unlock. - (__objc_init_install_dtable): Likewise. - (__objc_update_dispatch_table_for_class): Likewise. - (__objc_print_dtable_stats): Likewise. - * objc/selector.c (sel_get_typed_uid, sel_get_any_typed_uid): Likewise. - (sel_get_any_uid, sel_get_name, sel_register_name): Likewise. - (sel_register_typed_name): Likewise. - * objc/sarray.h (union sversion): New. - (struct sarray): Maintain multiple versions. - (sarray_remove_garbage): Add prototype. - * objc/sarray.c (sarray_{remove,free}_garbage): New functions. - (sarray_at_put, sarray_new, sarray_lazy_copy): - Modify/copy sarray structure/data in a thread-safe manner - (sarray_{realloc,free}): Reallocate/free sarray structure/data in a - thread-safe manner. - - * objc/THREADS, objc/thread.c, objc/thread.h: New files. - * objc/thread-{decosf1,irix,solaris,win32,single}.c: New files. - * objc/objc-list.h: Renamed from objc/list.h. - * objc/Makefile: Changes to compile new files and name renaming. - * objc/makefile.dos: Likewise. - -Tue Mar 5 07:51:31 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * bc-emit.c, bc-optab.c (free): Delete declaration of library function. - - * c-decl.c (duplicate_decl): If making decl non-external, copy - context from old to new. - -Tue Mar 5 02:27:35 1996 Jeffrey A. Law <law@cygnus.com - - * lib2funcs.asm (__outline_prologue): New "function". - (__outline_epilogue): New "function". - * pa.h (TARGET_SPACE): Define. - (target_flags): Add -mspace and -mno-space. Enable/disable - space saving optimizations. - (FRAME_POINTER_REQUIRED): Frame pointers are always required - when generating out of line prologues and epilogues. - * pa.c (compute_frame_size): Handle out of line prologues/epilogues. - (hppa_expand_prologue): If optimizing for space, emit an out of - line prologue. - (hppa_expand_epilogue): Similarly. - (override_options): Optimizing for space is not compatable with - either profiling or PIC code generation. - * pa.md (outline_prologue_call): New pattern. - (outline_epilogue_call): Likewise. - -Tue Mar 5 02:17:32 1996 Doug Evans <dje@cygnus.com> - - * sparc.md (*cmp{si,di}_insn): %r0 -> %0. - (DFmode move define_split): Ensure registers not extended v9 fp regs. - (*mov{sf,df,tf}_cc_reg_sp64): %r3 -> %3. - -Mon Mar 4 18:46:37 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de> - - * Makefile.in (CRT0STUFF_T_CFLAGS): New macro. - (stamp-crt0, crt0.o, mcrt0.o): New goals. - (STAGESTUFF): stamp-crt0 added. - - * collect2.c (main): Check new define DEFAULT_A_OUT_NAME. - - * m68k.c (print_operand): Emit .l as scale factor #ifdef MOTOROLA. - * m68k/mot3300-crt0.S, m68k/mot3300Mcrt0.S: New files. - * m68k/mot3300g.h: Deleted. - * m68k/mot3300.h (FUNCTION_PROFILER): Emit label references - corresponding to those generated by ASM_OUTPUT_INTERNAL_LABEL. - (MOTOROLA, MOTOROLA_BSR, ...): Define #ifndef USE_GAS. - (ASM_SPEC): Define properly #ifdef USE_GAS. - (LIB_SPEC): -L/usr/lib/libp deleted. - (STARTFILE_SPEC): -L/usr/lib/libp added. - (DEFAULT_A_OUT_NAME): Define. - (LINK_SPEC): Pass -v if GNU ld is used. - (LOCAL_LABEL_PREFIX): Local labels start with .L using GAS, else L%. - (USER_LABEL_PREFIX): Undefine. - (FUNCTION_PROFILER): Call asm_fprintf instead of normal fprintf. - (ASM_APP_ON, ASM_FILE_START): GAS supports it. - (CTORS_.../DTORS_...): Define if GNU ld is used. - (ASM_FILE_START): Define properly for Motorola and GNU as syntax. - (TARGET_VERSION): Re-define only #ifndef USE_GAS. - (CALL_USED_REGISTERS): Deleted. - (GLOBAL_ASM_OP): Re-define only #ifndef USE_GAS. - (ASM_{LONG,SHORT,CHAR,BYTE,BYTE_OP}): New macros. - (ASM_OUTPUT_{DOUBLE,LONG_DOUBLE,FLOAT,INT,SHORT}): Use them. - (ASM_OUTPUT_{CHAR,BYTE,ASCII,FLOAT_OPERAND,DOUBLE_OPERAND}): Likewise. - (ALIGN_ASM_OP, SKIP_ASM_OP): New macros. - (ASM_OUTPUT_{ALIGN,SKIP}): Use them. - (ASM_OUTPUT_SOURCE_FILENAME): Define only if not using GNU as. - (ASM_{GENERATE,OUTPUT}_INTERAL_LABEL): Provide proper definitions for - Motorola and GNU as syntax. - (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Changed for portability between - Motorola and GNU as syntax. - (ASM_OUTPUT_{CASE_LABEL,OPCODE}): Define only if not using GNU as. - (ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): New macros. - (ASM_OUTPUT_{COMMON,LOCAL}): Proper defns for Motorola and gas syntax. - (SDB_...): Define only for Motorola as. - (ALT_LIBM): New define to tell g++.c about an alternative name for - `-lm'. - (MATH_LIBRARY, NEED_ATEXIT, HAVE_ATEXIT, EXIT_BODY): New macros. - * m68k/t-mot3300, m68k/t-mot3300-{gald,gas,gld}: New files. - * m68k/x-mot3300-gas: New file. - * m68k/xm-mot3300.h (USG): Set to 1. - * configure (m68k-motorola-sysv*): Keep track of new different - combinations (--with-gnu-...), and provide proper definitions for - tm_file, xmake_file, tmake_file, use_collect2, and extra_parts. - - * gbl-ctors.h (HAVE_ATEXIT): Define if NEED_ATEXIT is defined. - (atexit): Use `int atexit' prototype also if NEED_ATEXIT is defined. - (on_exit): According to man on_exit on the Sun it returns int not void. - * libgcc2.c (L_bb/atexit, onexit): Declarations replaced by - #include'ing "gbl-ctors.h". - (L_exit/atexit): New function. - (L_exit/exit): Call any registered functions. - -Mon Mar 4 18:03:38 1996 Bryan Ford (baford@cs.utah.edu) - - * configure (i[3456]86-moss-msdos*): New target. - * i386/moss.h: New file. - -Mon Mar 4 17:38:50 1996 Jim Wilson <wilson@cygnus.com> - - * sh.h (PASS_IN_REG_P): Don't reject BLKmode for SH3e. - For SH3e, do reject parameter that won't fit entirely in registers. - - * sh.md (mulhisi3-2, mulhisi3-1, mulsidi3_i, umulsidi3_i, - smulsi3_highpart, umulsi3_highpart): Renames operands 1/2 to 0/1. - (mulsidi3, umulsidi3): Add support for TARGET_LITTLE_ENDIAN. - - * sh.c (machine_dependent_reorg): In TARGET_RELAX code, when scan - forward from LINK, fail if pass a CODE_LABEL before finding INSN. - Fail if SCAN not INSN is a JUMP_INSN. - -Mon Mar 4 11:27:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (CALL_LONG): Change CALL_xx values from an enumeration - to bitmasks. Add CALL_LONG to support longcall attributes. - (rs6000_args): Call_cookie field is now an int. - (rs6000_longcall_ref): Add declaration. - - * rs6000.c (init_cumulative_args): Add support for longcall - attributes to always call through a pointer. - (function_arg): Ditto. - (rs6000_valid_type_attribute_p): Ditto. - (rs6000_longcall_ref): New function for long calls. - - * rs6000.md (call insns): Add support for longcall attributes. - -Mon Mar 4 08:42:14 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * real.c (significand_size): Don't test the modes, but their sizes. - - * dwarfout.c (xstrdup): Moved from here. - * toplev.c (xstrdup): New function. - * tree.h (xstrdup): Declare. - * bc-emit.c (bc_xstrdup): Delete. - * expr.c (bc_strdup): Delete. - (bc_load_externaddr_id): Use xstrdup instead of bc_xstrdup. - * function.c (bc_expand_function_start): Likewise. - * 1750a.c (strdup): Delete. - (float_label): Use xstrdup instead of strdup. - * 1750a.h (xstrdup): Declare instead of instead of strdup. - (ASM_OUTPUT_LABEL): Use xstrdup instead of strdup. - (FIX_FRAME_POINTER_ADDRESS): Don't use DEPTH in string. - -Mon Mar 4 08:23:23 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * xm-we32k.h (NO_WAIT_H): Deleted. - - * collect2.c: Never include wait.h. - -Sat Mar 2 22:43:07 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> - - * configure (code for making links): Work around sh bug on FreeBSD. - -Sat Mar 2 13:40:29 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.h (BIGGEST_FIELD_ALIGNMENT): Replace uses of - TARGET_ALIGN_STRUCT_300 with TARGET_ALIGN_300. - (BIGGEST_ALIGNMENT): Likewise. - -Sat Mar 2 08:04:50 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call): If passing by invisible ref, not const. - - * sparc.c (SKIP_CALLERS_UNIMP_P): Make agree with test used in call. - - * expr.c (do_jump, case COMPOUND_EXPR): Call preserve_temp_slots. - - * fold-const.c (fold, case *_DIV_EXPR): Ignore SAVE_EXPR if has RTL. - -Fri Mar 1 17:59:17 1996 Jeffrey A. Law <law@cygnus.com> - - * optabs.c (emit_cmp_insn): Immediately copy the return - value from the library call into a pseudo register. - (emit_float_lib_cmp): Likewise. - -Fri Mar 1 14:37:40 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (BSS_SECTION_ASM_OP): Define. - (*_SECTION_ASM_OP): Change tab after .section into a space. - (ASM_OUTPUT_INT): Ditto. - (ASM_OUTPUT_ALIGNED_LOCAL): Rewrite to use bss_section. - (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and - ASM_OUTPUT_ALIGNED_LOCAL. - - * rs6000/win-nt.h (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_ALIGNED_LOCAL): Define. - (ASM_OUTPUT_LOCAL): Don't define any more. - (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and - ASM_OUTPUT_ALIGNED_LOCAL. - -Thu Feb 29 17:33:12 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * c-typeck.c (push_init_level): When output padding to align structure - field, set constructor_unfilled_fields. - - * dbxout.c (dbxout_type, case METHOD_TYPE): Add CHARS (1) call - after emitting second '#' character. - -Thu Feb 29 13:59:27 1996 Doug Evans <dje@charmed.cygnus.com> - - * h8300.h (ASM_OUTPUT_BSS): Define. - * m68k/coff.h (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_ALIGNED_BSS): Define. - * m68k/m68k-aout.h (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_BSS): Define. - -Thu Feb 29 13:39:39 1996 Per Bothner <bothner@cygnus.com> - - * varasm.c (compare_constant_1): For a SET_TYPE CONSTRUCTOR, - first extract and compare the set length. - - * varasm.c (record_constant_1): For SET_TYPE CONSTRUCTOR, - permanent_obstack.next_free is *end* of available space. - -Thu Feb 29 13:14:14 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (TARGET_SWITCHES): Add new flags "-mlong-load-store" and - "-mno-long-load-store". - (TARGET_LONG_LOAD_STORE): Define. - * pa.md (symbolic high part): Handle TARGET_LONG_LOAD_STORE. - -Thu Feb 29 11:39:30 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md (cmpxf*): XF compare cannot have mem operands. - (casesi expand): Put (minus:SI..) into subsi3 format. - * i386.c (i386_return_pops_args): Cleanup extra argument - used as address of a returned structure. - -Wed Feb 28 22:24:28 1996 Doug Evans <dje@cygnus.com> - - * varasm.c (enum in_section): Define in_bss if BSS_SECTION_ASM_OP - is defined. - (bss_section,asm_output_bss,asm_output_aligned_bss): New functions. - (assemble_variable): Delete redundant test for too large an object. - Rewrite test for uninitialized variables. Use new macros - ASM_OUTPUT{,_ALIGNED}_BSS if defined to output global uninitialized - but not common variables. - * bytecode.h (BC_OUTPUT_BSS): Define. - * lynx.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. - * svr3.h (EXTRA_SECTIONS): Likewise. - (BSS_SECTION_FUNCTION): Delete. - * convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - * dsp16xx.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete bss_section. - * gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - * i386/aix386ng.h (EXTRA_SECTION_FUNCTIONS): Delete - BSS_SECTION_FUNCTION. - * i386/att.h (BSS_SECTION_FUNCTION): Delete. - * i386/sco5.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. - (BSS_SECTION_FUNCTION): Delete. - * i386/seq-sysv3.h (BSS_SECTION_FUNCTION): Delete. - * i386/svr3gas.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. - (BSS_SECTION_FUNCTION): Delete. - * i860/paragon.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Undef. - * m68k/crds.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - (BSS_SECTION_ASM_OP): Define. - * m68k/m68k.h (BC_OUTPUT_BSS): Define. - * mips/iris6.h (EXTRA_SECTIONS): Delete in_bss. - * pa.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete bss_section. - * sparc/litecoff.h (EXTRA_SECTIONS): Delete in_bss. - -Wed Feb 28 14:12:25 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.h (FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP - registers only when TARGET_SH3E. - (PASS_IN_REG_P): Exclude BLKmode only when ! TARGET_SH3E. - -Wed Feb 28 12:03:26 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (rs6000_trampoline_{template,size}): Change Windows NT - trampoline template so it doesn't require making stack executable. - Add support for 64 bit systems. - (rs6000_initialize_trampoline): Ditto. - -Tue Feb 27 16:42:00 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (print_operand): New code 'H'. - * rs6000.md (insv, extzv): Add DImode patterns. Use 'h' - consistently for masking SImode shifts. - (rotldi3, ashldi3, lshrdi3, ashrdi3): Use 'H'. - (movsf split): Generate CONST_INT instead of SUBREG. - -Tue Feb 27 15:02:17 1996 Doug Evans <dje@cygnus.com> - - * sh.h (HANDLE_PRAGMA): Delete `return'. - -Tue Feb 27 08:18:12 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (aof_text_section): Remove pseudo read-only hack. Doesn't - take a parameter any more. - * arm/aof.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove - readonly data sections. - (READONLYDATA_SECTION, READONLY_DATA_SECTION): Delete. - - * arm.h (enum arm_cond_code): New enum. - (ARM_INVERSE_CONDITION_CODE): Moved here from arm.c. - (SELECT_CC_MODE): Call arm_select_cc_mode to do the work. - (PREDICATE_CODES): Add dominant_cc_register; delete - reversible_cc_register. - * arm.c (arm_current_cc): Now an enum. - (ARM_INVERSE_CONDITION_CODE): Moved to arm.h - (revsersible_cc_register): Delete. - (dominant_cc_register): New function. - (select_dominance_cc_mode): New function. - (arm_select_cc_mode): New function. - (output_return_instruction): New parameter REVERSE, used to - reverse the condition of a conditional return. All callers - changed. - (arm_print_operand case 'D'): Only suppress condition printing - if the operand is a NULL pointer. - (get_arm_condition_code): Now a static function returning - enum arm_cond_code. Handle dominance expressions. Return enum - values rather than integers. - * arm.md (*addsi3_compare0_scratch): New insn. - (*movsi_compare0, *cmpsi_insn, *cmpsi_shiftsi): Make sure the - compare has mode CC. - (cmp{si,sf,df,xf} expands): Just provide sufficient information - to allow the parameters to be matched properly. - (*cmpsi_negsi): Delete (of dubious validity). - (*cmpsi_shiftsi_swp): New pattern. - (*condbranch_reversed): No longer needs to check REVERSIBLE_CC_MODE. - (mov{si,sf,df}cc, *mov{si,sf,df}{,_hard,_soft}_insn): The mode of the - IF_THEN_ELSE must be appropriate to the target (not void). - (*and_scc): Match cc_register, not reversible_cc_register. - (*ior_compare_compare): Delete. - (split for ior_compare_compare + condjump): Delete. - (*impossible_cond_compare): Delete. - (*condition_compare_ior): Delete. - (*cond_move): Mode for the IF_THEN_ELSE must be SImode. - (*and_scc_scc): Delete. - (split for and_scc_scc + condjump): Delete. - (*impossible_cond_branch_and): Delete. - (*cmp_ite0, *cmp_ite1): New patterns. - (if_compare_not): Should be an anonymous pattern. - (Peephole for move and compare): Compare mode must be mode CCmode. - (Split pattern for comparing shifted reg then branch): Delete. - (*loadqi_compare): Delete, replaced with a split pattern to do - the same thing. - (*cond_move_not): Match cc_register, not reversible_cc_register. - - * arm.c ({load,store}_multiple_sequence): New functions. - (emit_{ldm,stm}_seq): New functions. - * arm.md (load/store multiple peepholes): Rewrite using the above - functions. - (all patterns taking immediate_operand): If the code later assumes - this is a CONST_INT, then match const_int_operand instead. - -Mon Feb 26 17:26:13 1996 Doug Evans <dje@cygnus.com> - - * sparc.md: Add sparclet scheduling parameters. - (compare define_insn's): Move closer to compare define_expand's. - (32 bit multiply patterns): Use for TARGET_SPARCLET. - (*smacsi,*smacdi,*umacdi): Multiply/accumulate patterns for the - sparclet. - -Sat Feb 24 19:13:29 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (movsf split): Fix typo in last patch. - -Sat Feb 24 10:02:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * toplev.c (fatal_insn): Flush stdout/stderr. - -Sat Feb 24 02:03:28 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.md (abssi2): Rework to avoid matching constraints. - -Fri Feb 23 11:21:43 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.c (override_options): Warn if both PIC code generation and - profiling are requested. - -Fri Feb 23 08:47:38 1996 Richard Kenner (kenner at vlsi1) - - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Set CONST_CALL_P - on NOTE_INSN_SETJMP instead of emitting USE insns for call-saved regs. - * reload1.c (reload): For special CONST_CALL_P NOTE_INSN_SETJMP, - mark all call-saved regs as used. - * sched.c (sched_analyze): Record NOTE_INSN_SETJMP if no - CALL_INSN as prev; preserve CONST_CALL_P bit. - (reemit_notes): Restore CONST_CALL_P. - -Thu Feb 22 17:45:12 1996 Doug Evans <dje@cygnus.com> - - * configure (sparclet-*-aout*): Set extra_headers. - * ginclude/inl-sparc.h: New file. - -Wed Feb 21 20:39:53 1996 Doug Evans <dje@cygnus.com> - - * configure (sparc64-*-solaris2*): Merge with sparc-*-solaris2*. - * sparc.h (enum processor_type): Declare. - (sparc_cpu_attr): Define. - (TARGET_OPTIONS): Add -mtune=. - (sparc_select): Declare. - (sparc_cpu_string): Delete. - (FIRST_PSEUDO_REGISTER): Set to 100. - ({FIXED,CALL_USED}_REGISTERS): Merge !v9/v9 cases. - (CONDITIONAL_REGISTER_USAGE): Mark %g5 as fixed if !v9. - Mark %g1 as fixed if v9. Fix v9-only regs if !v9. - Mark fp{16..47} as call-saved if v9. - (enum reg_class): Merge !v9/v9 cases. - (REG_CLASS_NAMES,REG_CLASS_CONTENTS,REGNO_REG_CLASS): Likewise. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Likewise. - (FP_REG_CLASS_P,SPARC_REGISTER_NAMES): Likewise. - (REG_CLASS_FROM_LETTER): Test TARGET_V9 at runtime. - * sparc.c (sparc_cpu_string): Delete. - (sparc_select): New global. - (sparc_override_options): Handle -mtune=xxx. - * sparc.md (cpu attr): Add sparc{lite,let} implementations. - * sparc/sp64-sol2.h: Deleted. - - * arm.md (consttable_end): Delete call to text_section. - (align_4): Delete call to readonly_data_section. - -Wed Feb 21 14:29:06 1996 Ian Lance Taylor <ian@cygnus.com> - - * cplus-dem.c (demangle_template): Initialize is_bool. Correctly - handle 0 as a pointer value parameter. - -Wed Feb 21 14:13:29 1996 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (decl_function_context): Do decl_function_context right for - function-local classes. - -Wed Feb 21 12:42:52 1996 Jeffrey A. Law <law@cygnus.com> - - * c-typeck.c (initializer_constant_valid_p): Don't dereference - a null pointer on partial structure initialization. - -Wed Feb 21 11:49:58 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info - even when verbatim symbol prefix '*' present. - * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Same. - * rs6000/aix41.h (ASM_OUTPUT_EXTERNAL): Same. - * rs6000/powerpc.h (ASM_OUTPUT_EXTERNAL): Same. - * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Same. - -Wed Feb 21 03:55:32 1996 Paul Eggert <eggert@twinsun.com> - - * cccp.c (validate_else): Don't loop given `#endif /'. - Handle multiple adjacent backslash-newlines correctly. - Accept a new parameter LIMIT to specify end of input; - this prevents confusion when the input contains '\0' characters. - (collect_expansion): Fix off-by-1 error when searching for `*/' - at end of a comment used for traditional token concatenation. - (macarg1): Fix off-by-1 error when skipping past `*/' - at end of comment. - -Tue Feb 20 16:12:31 1996 Doug Evans <dje@cygnus.com> - - * hard-reg-set.h (twice unrolled GO_IF_HARD_REG_EQUAL): Add missing \. - -Tue Feb 20 14:21:16 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters. - - * pa.c (hppa_expand_epilogue): Always emit a blockage insn - before cutting back the stack. - -Mon Feb 19 19:42:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text. - (MASK_IMPURE_TEXT, TARGET_IMPURE_TEXT): Define. - (LINK_SPEC): Only add `-assert pure-text' if -mimpure-text wasn't used. - -Mon Feb 19 19:20:15 1996 Doug Evans <dje@canuck.cygnus.com> - - * configure (sparc-aout): sparc-aout.h renamed to aout.h. - (sparclet-aout): Likewise. - (sparclite-*-aout*): Renamed from sparclite-*-*. - Don't set use_collect2. - (target_cpu_default): Set to TARGET_CPU_<cpu> for sparc. - - * sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define. - ({CPP,ASM}_DEFAULT_SPEC): Set from TARGET_CPU_foo. - (SPARC_ARCH64 CPP_PREDEFINES): Define __arch64__. - (CPP_SPEC): Add %(cpp_cpu). - (CPP_CPU_SPEC): Define. - (CC1_SPEC): Convert -m<cpu> to -mcpu=<cpu>. - (ASM_SPEC): Add %(asm_cpu). - (ASM_CPU_SPEC): Define. - (EXTRA_SPECS,SUBTARGET_EXTRA_SPECS): Define. - (OVERRIDE_OPTIONS): Call SUBTARGET_OVERRIDE_OPTIONS after - sparc_override_options. - ({MASK,TARGET}_SUPERSPARC): Delete. - ({MASK,TARGET}_SPARCLET): Define. - (MASK_ISA): Renamed from MASK_CPUS. - (TARGET_SWITCHES): Delete no-{v8,sparclite}. - (sparc_cpu,sparc_cpu_string): Declare. - ({SUB,}TARGET_OPTIONS): Define. - (FIXED_REGISTERS): Add definitions for sparc64 in 32 bit mode. - (CONDITIONAL_REGISTER_USAGE): Don't set fixed_regs[234] if sparc64. - Don't set call_used_regs[48..80] for sparc64 in 32 bit mode. - Don't clobber fixed_regs[234] if -ffixed- was passed. - (ADJUST_COST): Change test for supersparc. - * sparc.c (sparc_cpu_string,sparc_cpu): New globals. - (sparc_override_options): Set ISA and CPU from sparc_cpu_string. - Delete tests for v9 only switches if not v9. - Error if -mcpu=v9 and v9 support not compiled in. - * sparc/sol2.h (CPP_SPEC): Use %(cpp_cpu). - (ASM_SPEC): Likewise. - (ASM_{DEFAULT,CPU}_SPEC): Use Solaris syntax for sparc64. - * sparc/sysv4.h (ASM_SPEC): Add %(asm_cpu). - * sparc/t-sparcbare (MULTILIB_*): -mv8 renamed to -mcpu=v8. - * sparc/t-sparclite (MULTILIB_*): Delete msoft-float and mno-flat, - they're the defaults. Add -mcpu=f934 as synonym for -mfpu. - * va-sparc.h (__arch64__): Renamed from __sparc_v9__. - - * sparc/lite.h: #include aoutos.h. - (TARGET_DEFAULT): Use MASK_FOO values. - * sparc/sp64-aout.h: #include aoutos.h. - (TARGET_DEFAULT): Add MASK_APP_REGS. - (JUMP_TABLES_IN_TEXT_SECTION,READONLY_DATA_SECTION): Delete. - * sparc/sp64-elf.h (TARGET_DEFAULT): Add MASK_APP_REGS. - (CPP_PREDEFINES): Define __arch64__. - * sparc/sp64-sol2.h (TARGET_DEFAULT, SUBTARGET_SWITCHES): Delete. - (ASM_SPEC): Delete. - - * sparc.h ({MASK,TARGET}_FRW): Delete. - (FRAME_POINTER_REQUIRED,INITIAL_FRAME_POINTER_OFFSET, - BASE_{INCOMING_ARG,OUTGOING_VALUE}_REG,INCOMING_REGNO,OUTGOING_REGNO, - FUNCTION_{PROLOGUE,EPILOGUE},DELAY_SLOTS_FOR_EPILOGUE): TARGET_FRW - renamed to TARGET_FLAT. - - * sparc.md (cpu attr): Add all cpu variants. - (negtf2,negdf2,abstf2,absdf2): Use isa attr, not arch attr, in - determining insn lengths. - - * sparc/aout.h: Renamed from sparc-aout.h. - (CPP_PREDEFINES): Delete __GCC_NEW_VARARGS__. - Add -Acpu(sparc) -Amachine(sparc). - -Mon Feb 19 17:49:08 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (movsf split): Use SUBREG, not operand_subword. - (movdf split): operand_subword TARGET_32BIT and new split using - SUBREG for TARGET_64BIT. - * rs6000.c (easy_fp_constant): Rewrite to not use operand_subword. - (input_operand): Remove final add_operand test made irrelevant by - Dec. 8 change. - (output_toc): Handle DImode values. - -Mon Feb 19 13:38:00 1996 Lee Iverson <leei@Canada.AI.SRI.COM> - - * i386/sol2.h (SWITCH_TAKES_ARG): Restore -R. - * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. - -Mon Feb 19 08:19:00 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * hard-reg-set.h (HARD_REG macros): If more than - HOST_BITS_PER_WIDE_INT hard registers and less than or equal to - 4*HOST_BITS_PER_WIDE_INT hard registers, unroll loops by hand. - -Mon Feb 19 07:35:07 1996 Torbjorn Granlund <tege@tmg.se> - - * rs6000.md (not:SI with assign and compare): Fix typo. - (not:DI with assign and compare): Likewise. - -Mon Feb 19 07:17:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sparc.md (nonlocal_goto): No longer need USE of %o0. - (goto_handler_and_restore): Show uses %o0. - - * combine.c (force_to_mode, case IOR): Fix typo in commuting - IOR and LSHIFTRT. - - * alpha.c (call_operand): If in REG, only reg 27 valid. - -Mon Feb 19 06:57:34 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * emit-rtl.c (operand_subword): For 32-bit targets, return - the appropriate subword of extended precision CONST_DOUBLEs. - - * arm.c (offsettable_memory_operand): New function. - (alignable_memory_operand): New function. - (gen_rotated_half_load): New function. - (get_arm_condition_code): Extract the mode of the comparison and - use it to generate the correct return value. - * arm.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Zmode. - (SELECT_CC_MODE): return CC_Zmode if the operand is QImode. Allow LT - and GE comparisons in CC_NOOVmode. - (PREDICATE_CODES): add offsettable_memory_operand and - alignable_memory_operand. - * arm.md (*zeroextract[qs]i_compare0_scratch): Use const_int_operand - for operands 1 and 2. - (split patterns for aligned memory half-word operations): New patterns. - (movhi): Handle memory accesses where the alignment is known in a more - efficient manner. - (*compareqi_eq0): Use CC_Zmode. - -Mon Feb 19 05:34:08 1996 Jason Merrill <jason@phydeaux.cygnus.com> - - * toplev.c (lang_options): Add -W{no-,}sign-compare. - - * c-tree.h: Declare warn_sign_compare. - - * c-typeck.c (build_binary_op): Check warn_sign_compare rather - than extra_warnings to decide whether to warn about comparison of - signed and unsigned. - - * c-decl.c (c_decode_option): Handle warn_sign_compare. -Wall - implies -Wsign-compare. - -Sun Feb 18 21:13:44 1996 Pat Rankin (rankin@eql.caltech.edu) - - * c-lex.c (yylex, case '0'..'9','.'): For cases '0' and '1', - check for single digit constant before resorting to general - number processing. - -Sun Feb 18 19:29:44 1996 J.T. Conklin <jtc@netbsd.org> - - * m68k.h (TARGET_68060): New macro. - (TARGET_SWITCHES): Add -m68060. - * m68k.md (const_umulsi3_highpart): Disable for TARGET_M68060. - (ftruncdf2, ftruncsf2, muldf3, mulsidi3): Likewise. - (smulsi3_highpart, umulsi3_highpart, umulsidi3): Likewise. - - * {m68k,ns32k,sparc}/netbsd.h (DBX_NO_XREFS): Removed. - -Sun Feb 18 13:29:56 1996 Charles M. Hannum (mycroft@netbsd.org) - - * c-common.c (check_format_info): Warn about `L' if -pedantic. - -Fri Feb 16 20:13:23 1996 Paul Eggert <eggert@twinsun.com> - - * c-typeck.c (convert_for_assignment): - Bring back conversion to union without a cast, - undoing the Jan 16 change, but with the following differences: - - The union must have the transparent_union attribute. - - The conversion must be for a function argument. - - Warn consistently about such conversions if pedantic. - - Do not warn about an assignment incompatibility for one union member - if another union member is compatible with no warning. - -Fri Feb 16 12:06:21 1996 Stan Cox <coxs@spiff.gnu.ai.mit.edu> - - * i386.c (ix86_*_binary_operator*): Allow CONST_INT as operand1 - of MINUS. - * i386/dgux.h (OPTIMIZATION_OPTIONS): Call optimization_options. - -Fri Feb 16 08:39:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure: Change stdout report when have multiple files in - tm_file, host_xm_file, or build_xm_file. - (a29k-*-bsd): Use both a29k.h and unix.h. - (a29k-*-udi): Rename a29k-udi.h to udi.h; - use a29k.h, dbxcoff.h, and it. - (a29k-*-vxworks): Use a29k.h, dbxcoff.h, a29k/udi.h, and a29k/vx29k.h. - (alpha-dec-osf[23456789]*): Use alpha.h, not osf2.h. - (alpha-dec-osf1.2): Use alpha.h and alpha/osf12.h. - (alpha-*-osf*): Add explicit assignment of tm_file. - * a29k/udi.h: Renamed from a29k-udi.h. - Don't include a29k.h or dbxcoff.h. - * a29k/unix.h: Don't include a29k.h. - * a29k/vx29k.h: Don't include a29k-udi.h. - * alpha.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int. - * alpha/osf2.h: Deleted. - * alpha/osf12.h: Don't include alpha.h. - (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. - * alpha/win-nt.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. - -Thu Feb 15 18:26:04 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/ntstack.asm (__allocate_stack): Round up length to 16 - byte boundary. - - * rs6000.md (allocate_stack): On Windows NT, call set_sp to - indicate to CSE stack pointer changes with call to __allocate_stack. - (set_sp): New pattern. - -Thu Feb 15 16:49:15 1996 Jim Wilson <wilson@cygnus.com> - - * integrate.c (save_for_inline_copying): Allocate reg_map with size - based on regno_pointer_flag_length instead of max_reg+1. - -Thu Feb 15 07:48:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fixincludes (rpc/types.h): Remove spurious "ls" command. - - * reload1.c (eliminate_regs, case USE): If using a register that - is source of elimination, show can't be eliminated. - - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP - and all caller-save registers. - Set current_function_has_nonlocal_goto. - -Wed Feb 14 13:51:55 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (fix_truncdfsi2): Use SUBREG not operand_subword. - (movdi): Test HOST_BITS_PER_WIDE_INT at build time. - * collect2.c (scan_libraries): Append '/' to import path if missing. - -Wed Feb 14 09:01:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (movdi): Use HOST_WIDE_INT, not long long. - -Tue Feb 13 19:36:21 1996 Per Bothner <bothner@cygnus.com> - - * expr.c (store_constructor): Fix flow control thinko (merge error). - * expr.c (store_constructor): Pass correct value to recursive call. - -Wed Jan 31 11:34:45 1996 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_expr, case TARGET_EXPR): We must always store - into the allocated slot for TAREGT_EXPRs. - -Tue Feb 13 18:27:05 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * configure (powerpc-ibm-aix3): Look for 3.2.x, not 3.2x. - - * fixincludes (memory.h): Fix it also on sysV68. - -Tue Feb 13 17:59:03 1996 Lee Iverson <leei@Canada.AI.SRI.COM> - - * gcc.c (DEFAULT_SWITCH_TAKES_ARG): New macro, from SWITCH_TAKES_ARG. - (SWITCH_TAKES_ARG): Use it. - * i386/{osfrose,sol2}.h (SWITCH_TAKES_ARG): Likewise. - * mips/{gnu,mips}.h (SWITCH_TAKES_ARG): Likewise. - * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. - * config/svr4.h (SWITCH_TAKES_ARG): Likewise. - -Tue Feb 13 17:43:46 1996 Jim Wilson <wilson@cygnus.com> - - * integrate.c (save_constants_in_decl_trees): New function. - (save_for_inline_copying, save_for_inline_nocopy): Call it. - -Tue Feb 13 17:40:27 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (convert_move): Fix typo in extendqfh2 case. - - * reload1.c (reload): Make some non-group code no longer - conditional on SMALL_REGISTER_CLASSES. - -Tue Feb 13 17:30:45 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * pdp11.c: #include flags.h - (output_function_prologue, function_epilogue): Remove declarations - of call_used_regs and frame_pointer_needed. - - * c-common.c (overflow_warning): Fix typo in warning message. - - * c-decl.c (finish_decl): TREE_ASM_WRITTEN says if duplicate_decls - modified declaration to match an outside file scope declaration. - - * stmt.c (expand_end_case): Don't use ADDR_DIFF_VEC for PIC if - ASM_OUTPUT_ADDR_DIFF_ELT is not defined. - * a29k.h, romp.h (ASM_OUTPUT_ADDR_DIFF_ELT): Remove. - -Tue Feb 13 13:36:36 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/cygwin32.h (CPP_PREDEFINES): Do not define PPC, just - define __PPC__. Also define _ARCH_PPC to be compatible with the - other rs6000/powerpc ports. - * rs6000/win-nt.h (CPP_PREDEFINES): Ditto. - - * rs6000/cygwin32.h (LIBGCC_SPEC): Don't define, always link in. - (SDB_DEBUGGING_INFO): Undef. - (DBX_DEBUGGING_INFO): Define. - (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. - - * rs6000/t-{cygwin32,winnt} (MULTILIB*): Remove multilib support. - - * rs6000/x-cygwin32 (LANGUAGES): Delete, don't override. - - * rs6000/ntstack.asm: New file to provide __allocate_stack, which - guarantees all pages in a dynamically allocated stack frame are - touched in order, so that the stack is properly grown. - - * rs6000/cgywin32.asm: Delete unused file. - - * rs6000/t-{cygwin32,winnt} (LIB2FUNCS_EXTRA): Add ntstack.S - to libgcc2 build. - - * rs6000.md (allocate_stack): For NT, call __allocate_stack to - bump the stack if the size is large or variable. - - * libgcc1-test.c (mainCRTStartup,__start): New startup functions - to silence more linkers. - -Tue Feb 13 13:30:53 1996 Jim Wilson <wilson@cygnus.com> - - * expr.c (store_constructor_field): Only call change_address if - bitpos is nonzero. - -Tue Feb 13 08:21:01 1996 Fila Kolodny <fila@ibi.com> - - * i370/mvs.h (CPP_SPEC): Add '-trigraphs' because IBM's h files - contain them. - -Tue Feb 13 08:17:52 1996 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * c-typeck.c (quality_type prototype): Typo, rename as - qualify_type. - (build_binary_op): Fix precedence errors. - * combine.c (force_to_mode, num_sign_bit_copies, simplify_comparison): - Fix precedence errors. - * emit-rtl.c (gen_lowpart): Could return without a value. - * jump.c (jump_optimize): Fix potential infinite loop. - * reg-stack.c (record_reg_life_pat): Fix precedence error. - * reload1.c (emit_reload_insns): Fix precedence errors. - * stmt.c (bc_pushcase): Fix precedence error. - -Mon Feb 12 23:14:02 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_compilation): Also set RTX_INTEGRATED_P when - we aren't going to emit the inline just yet. - -Mon Feb 12 21:31:02 1996 Jim Wilson <wilson@cygnus.com> - - * rtl.h (INLINE_REGNO_POINTER_FLAG, INLINE_REGNO_POINTER_ALIGN): - Add one to array index. - -Mon Feb 12 20:55:39 1996 H.J. Lu (hjl@gnu.ai.mit.edu) - - * configure (i[345]86-*-linux*): Set tmake_file t-linux. - Add crtbeginS.o and crtendS.o to extra_parts. - * i386/linux.h (CC1, LIB_SPEC): Deleted. - * config/linux.h (STARTFILE_SPEC): Add crtbeginS.o if -shared. - (CC1_SPEC): New. - (LIB_SPEC): Remove %{mieee-fp:-lieee}; use -lc_p for -profile. - * config/t-linux: New file. - -Mon Feb 12 20:42:11 1996 Randy Smith <randys@camaro.osf.org> - - * i386/x-osfrose (XCFLAGS{,_NODEBUG}): Remove $(SHLIB). - (XCFLAGS): New variable. - (libdir, mandir, bindir): Delete. - * i386/t-osf: New file. - * i860/paragon.h (STARTFILE_SPEC): Make gcc find crt0.o, not loader. - (LIB_SPEC): Remove /usr/lib. - * Makefile.in (TCFLAGS): New variable. - (GCC_CFLAGS): Add $(TCFLAGS). - (LIBGCC2_CFLAGS): Add -D for __GCC_FLOAT_NOT_NEEDED. - (libgcc1-test): Remove -nostdlib. - (float.h-cross): Don't give error #ifdef __GCC_FLOAT_NOT_NEEDED. - * enquire.c: Define __GCC_FLOAT_NOT_NEEEDED. - * configure (i[3456]86-*-osfrose): Add t-osf as tmake_file. - -Mon Feb 12 18:43:54 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.c (add_1_to_mem): Corrected. - -Mon Feb 12 18:23:35 1996 Doug Evans <dje@cygnus.com> - - * configure (sparclet-*-aout*): New configuration. - -Mon Feb 12 14:43:50 1996 Per Bothner <bothner@cygnus.com> - - Changes to distinguish typedef from original type in debug output. - * tree.h (DECL_ORIGINAL_TYPE): New macro. - * tree.c (copy_node): Zero out type.symtab union. - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE for typedef origin. - * dbxout,c (dbxout_type): Don't canonicalize typedef type to base. - -Mon Feb 12 12:01:16 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and - __ARMWEL__ depending on the endian flags passed to the compiler. - (ARM_FLAG_LITTLE_WORDS): Define. - (TARGET_SWITCHES): Add option -mwords-little-endian. - (TARGET_LITTLE_WORDS): Define. - (WORDS_BIG_ENDIAN): Select based on the endian switches. - (LIBGCC2_WORDS_BIG_ENDIAN): Define based on run-time endian - defines. - * arm.c (output_move_double): Cope with both word-endian - alternatives. Remove extraneous parameters from calls to - output_mov_immediate. - (arm_print_operand): New print code 'Q' for the least significant - register of a DImode operand. Make code 'R' always print the - most significant register, rather than the highest numbered. - * arm.md (all DImode output patterns): Use print code - 'Q' to access the least significant word. Make sure the - patterns are fully aware of the word endianness. - - * arm/semi.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and - __ARMWEL__ depending on the endian flags passed to the compiler. - (LINK_SPEC): Pass -EB to the linker if compiling for big-endian - mode. - (ASM_SPEC): Likewise for the assembler. - * arm/semiaof.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and - __ARMWEL__ depending on the endian flags passed to the compiler. - -Mon Feb 12 10:15:29 1996 Ian Lance Taylor <ian@cygnus.com> - - * configure: Permit tm_file and xm_file to be a list of header - file names, rather than just a single file. For many targets, - handle --with-stabs by adding dbx.h to tm_file, rather than using - a different tm_file. - * dbx.h: New file. - * alpha/gdb-osf2.h, alpha/gdb-osf12.h, alpha/gdb.h: Deleted. - * i386/sysv4gdb.h, mips/iris{5gdb,4gl,4gdb,3gdb}.h: Likewise. - * mips/dec-gosf1.h, mips/news{4,5}-gdb.h, mips/svr4-t-gdb.h: Likewise. - * mips/ultrix-gdb.h, mips/bsd-{4,5}-gdb.h: Likewise. - * mips/svr{4-5,4-4,3-5,3-4}-gdb.h, mips/mips-5-gdb.h: Likewise. - * mips/ecoff{,l}-gdb.h, mips/mips-4-gdb.h: Likewise. - -Mon Feb 12 07:22:20 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (save_for_inline_copying): Put virtual regs into - new regno_reg_rtx copy. - -Sun Feb 11 18:53:12 1996 Torbjorn Granlund <tege@noisy.tmg.se> - - * i386.md: Delete spurious integer subtract patterns. - Delete % from subtract operand constraints. - -Sun Feb 11 19:17:24 1996 Jeffrey A. Law <law@cygnus.com> - - * m68k.md (movqi): Call CC_STATUS_INIT when loading to/from - an address register via a data register. - -Sun Feb 11 08:44:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (check_format_info): Handle missing type in format - when terminated by a new `%'. - -Sat Feb 10 15:14:22 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * cross-make (STMP_FIXPROTO): Moved from here to build-make. - * build-make (STMP_FIXPROTO): Moved here from cross-make. - -Sat Feb 10 08:39:05 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (movstrqi): Corrected. - (zero_extendqihi2): Taken out, let GCC synthesize. - (movhi-1): Added insn to move HImode small constant to memory. - (movhf-1): Added insn to move HFmode zero to memory. - (movtqf-1): Added insn to move TQFmode zero to memory. - (numerous insns): Taken out B (Base Reg with Index) mode. - - * 1750a.c (movcnt_regno_adjust): Corrected. - (mov_memory_operand, zero_operand): Added. - (b_mode_operand): Corrected. - (simple_memory_operand, add_1_to_mem): Added. - (print_operand_address): Corrected case of 'Q' output modifier. - - * 1750a.h (REG_ALLOC_ORDER): Changed back to natural order. - (CONST_DOUBLE_OK_FOR_LETTER_P): Added letter 'G'. - (EXIT_IGNORE_STACK): Set to 0. - (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Use corresponding REGNO_OK. - (MOVE_MAX, MOVE_RATIO): Defined. - -Sat Feb 10 08:28:12 1996 Martin Anantharaman <martin@goofy.imech.uni-duisburg.de> - - * configure (m68k-*-psos*): New configuration. - * psos.h: New file. - * m68k/m68k-psos.h: New file. - -Sat Feb 10 08:07:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sched.c (flush_pending_lists): Add new arg, ONLY_WRITE. - (sched_analyze_{1,2,insn}): Add new arg to flush_pending_lists. - (sched_analyze): Always flush pending write list for call, even const. - - * integrate.c (save_for_inline_copying): Put reg_map in function's - maybepermanent obstack instead of using alloca; set regno_reg_rtx - to it; delete recently-added copying of this later. - -Sat Feb 10 00:49:58 1996 Doug Evans <dje@cygnus.com> - - * sched.c (add_dependence): Add test for next != CODE_LABEL. - -Fri Feb 9 16:10:04 1996 Stan Cox (coxs@dg-rtp.dg.com) - - * i386.md (fp, integer): Added function units for pentium. - (cmp*,mov*,add*,sub*,mul*,div*,extend*,trunc*,and*,ior*,xor*,neg*, - abs*,sqrt*,sin*,cos*,not*,ash*,lsh*,rot*,sub): Tightened constraints, - added attribute support, and made changes for new `binary' and - `unary' functions. - - * i386.c (processor_costs): New variable. - (optimization_options, ix86_expand_binary_operator, - ix86_binary_operator_ok, ix86_expand_unary_operator, - ix86_unary_operator_ok, is_mul, is_div, copy_all_rtx, rewrite_address, - last_to_set_cc, doesnt_st_condition_code, sets_condition_code, - str_immediate_operand, is_fp_insn, is_fp_dest, is_fp_store, - agi_dependent, reg_mentioned_in_mem): New functions. - - * i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE, - IX86_EXPAND_BINARY_OPERATOR): New macros. - (RTX_COSTS, REGISTER_MOVE_COST, ADJUST_BLOCKAGE) Changed for pentium. - -Fri Feb 9 14:47:27 1996 Doug Evans <dje@cygnus.com> - - * sparc.c (sp64_medium_pic_operand): New function. - (move_pic_label): Delete. - (legitimize_pic_address): Simplify using some named patterns. - (finalize_pic): Add preliminary sparc64 support. - (emit_move_sequence): Reorganize. - * sparc.md (pic_lo_sum_si,pic_sethi_si,get_pc_sp32,get_pc_sp64, - move_pic_label_si,move_label_di,sethi_di_sp64): Make named patterns. - (sethi_di_sp64_const,sethi_di_medium_pic): New anonymous patterns. - (move_pic_label_si,move_label_di): Optimize for near labels. - (tablejump): Use for TARGET_MEDANY. - (casesi): Delete. - -Fri Feb 9 13:48:45 1996 Jim Wilson <wilson@cygnus.com> - - * mips.md (probe+2, probe+4): New conditional move patterns. - (movsicc): Don't truncate comparison if it is DImode. - - * sh.h (CPP_SPEC): Add defines for -m1, -m2, and -m3. - -Fri Feb 9 09:11:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (rest_of_compilation): Set RTX_INTEGRATED_P in - INLINE_HEADER iff function is inlineable. - * calls.c (expand_call): Test RTX_INTEGRATED_P in DECL_SAVED_INSNS. - -Thu Feb 8 01:11:15 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.md (floatunssisf2 expander): Don't use "general_operand". - (floatunssidf2 expander): Likewise. - -Wed Feb 7 16:59:31 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/{sysv4,win-nt,netware,cygwin32}.h ({ASM,LINK}_SPEC): - Don't use %{V} for either linker or assembler. - -Tue Feb 6 17:22:29 1996 Per Bothner <bothner@cygnus.com> - - * dbxout.c (dbxout_range_type): Emit non-range INTEGER_TYPE - as a sub-range of itself (so gdb can tell the difference). - -Tue Feb 6 17:01:44 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (addsi3 and adddi3 split): Use cleaner computation - and portable HOST_WIDE_INT. - (iordi3 split): Use HOST_WIDE_INT. - (movdi): Add TARGET_64BIT support and generate 64 bit constants. - (movdi matcher, TARGET_POWERPC64): Add immediate constraint handled - by new define_split. - (allocate_stack): Use TARGET_32BIT. - (tablejump): Add TARGET_64BIT support using ... - (tablejumpsi): Rename original tablejump pattern. - (tablejumpdi): New pattern. - -Tue Feb 6 15:29:22 1996 Per Bothner <bothner@cygnus.com> - - * stor-layout.c (layout_type): Use same code to layout CHAR_TYPE - as for INTEGER_TYPE (instead of hard-wiring in QImode). - -Tue Feb 6 15:13:38 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.md (various patterns): Avoid using "general operand" in - define_insn patterns. - -Sun Feb 4 21:37:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi{,sim}.h (LINK_START_SPEC): Bump the default start address - for the simulator to 0x10000074 so that we don't waste a page in the - linked file. - -Fri Feb 2 19:44:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi-c{i,n}.asm (.sdata2, .sbss2): Put these in the - read-only section, not read-write. - - * libgcc2.c (__unwind_function, rs6000/powerpc): Use _ARCH_PPC - being defined to indicate to use PowerPC mnemonics. - - * config/rs6000/t-cygwin32 (MULTILIB*): Add software floating - point support. - -Thu Feb 1 09:10:02 1996 Steve Chamberlain <sac@slash.cygnus.com> - - * {i386,rs6000}/cygwin32.{asm,h}: New templates. - * {i386,rs6000}/{t,x}-cygwin32: Ditto. - * {i386,rs6000}/xm-cygwin32.h: Ditto. - * configure (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New. - -Fri Feb 2 17:42:40 1996 Paul Eggert <eggert@twinsun.com> - - * c-decl.c (finish_struct): - Fix typo in transparent union warning that led to core dump. - - * c-parse.in (stmt): Warn about `goto *expr;' if pedantic. - (label): Warn about `case expr ... expr:' if pedantic. - -Fri Feb 2 11:05:27 1996 Doug Evans <dje@cygnus.com> - - * h8300.h (TARGET_ALIGN_300): Renamed from TARGET_ALIGN_STRUCT_300. - (TARGET_SWITCHES): Rename -malign-struct-300 to -malign-300. - (BIGGEST_ALIGNMENT): Use TARGET_ALIGN_300. - -Fri Feb 2 08:25:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * flow.c (jmp_uses_reg_or_mem): Renamed from uses_reg_or_mem. - Don't look into condition of an IF_THEN_ELSE; also make faster. - (find_basic_blocks): Use new name. - -Fri Feb 2 06:49:56 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * reload.c (debug_reload): Fix typo for reload_noncombine. - -Thu Feb 1 21:49:02 1996 Jeffrey A. Law <law@cygnus.com> - - * pa-pro.h (TARGET_DEFAULT): Turn on TARGET_SOFT_FLOAT by - default for all pro targets. - * t-pro: Delete all multilib references. - -Thu Feb 1 17:50:02 1996 Doug Evans <dje@cygnus.com> - - * c-lex.c (check_newline): Return result of HANDLE_PRAGMA. - * h8300.h (HANDLE_PRAGMA): Pass result back to caller. - * i960/i960.h (HANDLE_PRAGMA): Likewise. - * sh.h (HANDLE_PRAGMA): Likewise. - * nextstep.h (HANDLE_PRAGMA): Likewise. - -Wed Jan 31 19:26:03 1996 Doug Evans <dje@cygnus.com> - - * m68k/m68k-none.h: Rewrite to use EXTRA_SPECS. - * m68k/vxm68k.h (CPP_SPEC): Delete. - (SUBTARGET_EXTRA_SPECS): Define. - -Wed Jan 31 15:10:59 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (output_epilog): Fix PPC64 typos and use TARGET_32BIT. - (output_prolog): Same. - (rs6000_trampoline_template, rs6000_trampoline_size): Use TARGET_32BIT. - * rs6000.md (movdf TARGET_POWERPC64 matcher): Fix std typo. - (movdi TARGET_POWERPC64 matcher): Same. - -Wed Jan 31 09:46:11 1996 Richard Earnshaw (rearnshaw@armltd.co.uk) - - * regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from here. - * rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): Put them here. - -Wed Jan 31 08:26:12 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) - - * m68k/linux.h (STRICT_ALIGNMENT): Define to zero. - (LEGITIMATE_PIC_OPERAND_P): Match definition from m68kv4.h. - - * m68k.h (TRAMPOLINE_{TEMPLATE,SIZE}): Avoid need for helper function. - (INITIALIZE_TRAMPOLINE): Likewise. - (TRAMPOLINE_ALIGNMENT): Renamed from TRAMPOLINE_ALIGN. - * m68k/next.h (INITIALIZE_TRAMPOLINE): Adjusted accordingly. - - * m68kv4.h (STATIC_CHAIN_REGNUM): Redefine to use register a1. - (TRAMPOLINE_TEMPLATE): Likewise. - - * m68k/linux.h, m68kv4.h (LIBCALL_VALUE): Return XFmode value in fp0. - * m68k.c (init_68881_table): Use SFmode for the first six - constants and DFmode for the seventh. - - * m68k.md (movqi): Use moveq if possible. - -Wed Jan 31 08:18:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Strip off - INDIRECT_REF when checking second arg. - - * calls.c (struct arg_data, expand_call): Test STRICT_ALIGN with #if. - -Wed Jan 31 07:47:56 1996 Tim Wright (timw@sequent.com) - - * configure (i[345]-sequent-sysv*): Change to sysv3*; add i686. - (i[3456]86-sequent-ptx4*, i[3456]86-sequent-sysv4*): New cases. - * fixinc.ptx (sys/mc_param.h): Remove embedded asm. - * fixinc.svr4 (__STDC__): Add one more case. - * i386/ptx4-i.h, ptx4.h: New files. - -Wed Jan 31 07:15:23 1996 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Allow MOTOROLA syntax. - - * m68k.md ({adddi,subdi}_sexthishl32): 'a' and 'd' versions merged - and fixed; do not generate 'add/sub a,m'. - - * gcc.c (warn_std_ptr): Initialize with 0 instead of NULL_PTR. - -Tue Jan 30 13:29:05 1996 Ian Lance Taylor <ian@cygnus.com> - - * dbxout.c: Don't include <string.h>. - Don't compare strchr result to NULL. - - * config/svr4.h (ASM_FINAL_SPEC): Use %|, not ${pipe:-}. - -Tue Jan 30 06:48:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (nonzero_bits, case REG): Ignore REG_POINTER_ALIGNMENT. - Restore old code for SP, but use it for all pointers to - defined locations in the frame. - -Mon Jan 29 11:25:28 1996 Ian Lance Taylor <ian@cygnus.com> - - * dbxout.c (dbxout_type_methods): Don't use #ifndef inside call to - strchr. - -Sun Jan 28 14:44:09 1996 Doug Evans <dje@cygnus.com> - - * config/dbxcoff.h (*): #undef first. - -Sat Jan 27 21:46:16 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (rs6000_sync_trampoline): Add cmpdi to 64bit case. - (rs6000_initialize_trampoline): CSE of Pmode to pmode. - * rs6000.md (movdf): Handle move between FPR and 64 bit GPR. - (movdi matcher): Handle SPR move to itself and add "mr." combiner. - -Sat Jan 27 10:06:31 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Redefine, put small - data items in .sbss if -msdata. - (SWITCH_TAKES_ARG): Add 'B', 'b', and 'V'. - -Sat Jan 27 07:59:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.h (enum built_in_function): Add BUILT_IN_{SET,LONG}JMP. - * expr.c: Include hard-reg-set.h. - (arg_pointer_save_area): New declaration. - (expand_builtin, case BUILT_IN_{SET,LONG}JMP): New cases. - * Makefile.in (expr.o): Includes hard-reg-set.h. - * c-decl.c (init_decl_processing): Add definitions for - __builtin_setjmp and __builtin_longjmp. - * cccp.c (initialize_builtins): Add def of __HAVE_BUILTIN_SETJMP__. - - * expr.c (expand_expr, case COMPONENT_REF): Pass EXPAND_INITIALIZER - to recursive call. - -Fri Jan 26 17:24:07 1996 Doug Evans <dje@cygnus.com> - - * sparc.h (sparc_arch_type): Delete. - ({,TARGET_}MASK_DEPRECATED_V8_INSNS): Define. - (ARCH64_SWITCHES): Renamed from V9_SWITCHES. - * sparc.c (sparc_arch_type): Delete. - (sparc_init_modes): Likewise. - (output_move_quad): Don't use ldq/stq unless TARGET_HARD_QUAD. - * sparc/sp64-sol2.h (TARGET_DEFAULT): Add MASK_DEPRECATED_V8_INSNS. - (SUBTARGET_SWITCHES): Add -m{no-,}deprecated-v8-insns. - * sparc.md (arch attribute): Rewrite. - (isa): New attribute. - (32 bit multiply/divide patterns): Use if TARGET_DEPRECATED_V8_INSNS. - (32 bit divide patterns): V9 doesn't require delay after y reg write. - -Fri Jan 26 12:08:43 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (TARGET_32BIT): Define. - (BITS_PER_WORD, UNITS_PER_WORD): Invert so 32bit expected case. - (LONG_TYPE_SIZE, POINTER_BOUNDARY, PARM_BOUNDARY): Likewise. - (RS6000_REG_SAVE, RS6000_SAVE_AREA, RS6000_VARARGS_SIZE): Likewise. - (RETURN_ADDRESS_OFFSET, CASE_VECTOR_MODE, MOVE_MAX): Likewise. - (Pmode, FUNCTION_MODE): Likewise. - (LEGITIMATE_OFFSET_ADDRESS_P): Handle TARGET_64BIT. - (GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_ADDRESS): Likewise. - (GO_IF_MODE_DEPENDENT_ADDRESS): Same. - -Fri Jan 26 10:37:52 1996 Stan Coxs <coxs@dg-rtp.dg.com> - - * m88k.md (umulsidi3): Added for the 88110 - -Fri Jan 26 09:35:42 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (STRIP_NAME_ENCODING): Deal with names that have - both @ and * prefix characters. - (ASM_OUTPUT_LABELREF): Ditto. - -Thu Jan 25 10:03:34 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (LEGITIMIZE_ADDRESS): Rewrite to use HOST_WIDE_INT, not - plain int. - (optimize,flag_expensive_optimizations): Provide declaration for - expander functions. - - * rs6000.md (movsi): Correct code in splitting an address into - load from the TOC, and add low/high integer parts. If expensive - optimizations, and reload hasn't started, use separate pseudo regs - for each step. - - * rs6000.c (small_data_operand): Don't use the function - eliminate_constant_term, unwind code directly. - (input_operand): SYMBOL_REF/CONST of small data operand is valid. - (print_{,address_}operand): Add @sda21(0) in appropriate cases for - small data. - %L, etc. so that if the item is in small memory, the appropriate - relocation is used. - (rs6000_select{,_rtx}_section): Don't put floating point constants - or small strings in .sdata2 since we can't tell from the pointer - whether it is in the small data area or not. - - * rs6000.h (EXTRA_CONSTRAINT): Add 'U' for small data references. - (LEGITIMATE_SMALL_DATA_P): Test explicitly for SYMBOL_REF or CONST - before calling small_data_operand. - - * rs6000.md (movsi): Handle the addresses of small data items. - - * rs6000/sysv4.h (g_switch_{value,set}): Add declarations. - (SDATA_DEFAULT_SIZE): Default to 8. - (SUBTARGET_OVERRIDE_OPTIONS): If -G was not set, set it to - SDATA_DEFAULT_SIZE. - (CC1_SPEC): Pass -G nn to the compilers. - (SWITCH_TAKES_ARG): Add -G nn support. - (LINK_SPEC): Pass -G nn to the linker. - -Thu Jan 25 09:16:34 1996 Doug Evans <dje@cygnus.com> - - * configure (sparc64-*-solaris2*): New target. - * sparc.h (SPARC_{V9,ARCH64}): Default value is 0. - (*): Replace SPARCV9 with SPARC_{V9,ARCH64}. - (MASK_CPUS): Define. - ({MASK,TARGET}_ENV32): Delete. - ({MASK,TARGET}_ARCH64,TARGET_ARCH32): Define. - (TARGET_SWITCHES): Reset cpu flags first for each variant. - (CONDITIONAL_REGISTER_USAGE): If 32 bit v9 system, unfix g1-g4, - fix g5, and make %f48-%f80 call used. - * sparc/sp64-aout.h (SPARC_{V9,ARCH64}): Define. - (TARGET_VERSION): Define. - (TARGET_DEFAULT): Add MASK_ARCH64, delete MASK_ENV32. - (JUMP_TABLES_IN_TEXT_SECTION): Define. - (READONLY_DATA_SECTION): Make text_section. - * sparc/sp64-elf.h (SPARC_{V9,ARCH64}): Define. - (TARGET_DEFAULT): Add MASK_ARCH64. - (ENDFILE_SPEC): No longer need to check for -nostartfiles. - (ASM_IDENTIFY_GCC): Define as empty. - * sparc/sp64-sol2.h: New file. - * sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64. - (hard_32bit_mode_classes): Add v9 regs. - (gen_v9_scc): Handle 32 bit v9 case. Call v9_regcmp_p. - * sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places - requiring 64 bit environment. - (multf3_extend): Require TARGET_HARD_QUAD. - -Thu Jan 25 00:33:25 1996 Ian Lance Taylor <ian@cygnus.com> - - * dbxcoff.h (DBX_USE_BINCL): Define. - (DBX_CONTIN_LENGTH): Define if not defined. - -Wed Jan 24 18:00:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * alpha.c (alpha_write_verstamp): Only emit MS_STAMP and LS_STAMP, - not the extra numbers. - -Wed Jan 24 15:18:15 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (init_cumulative_args): Rewrite to use DEFAULT_ABI - runtime tests, instead of V.4 #ifdefs. - (function_arg{,_advance,_partial_nregs,_pass_by_reference}): Ditto. - (setup_incoming_varargs): Ditto. - (init_cumulative_args): Set call_cookie field to CALL_NORMAL or - CALL_NT_DLLIMPORT. - (function_arg): Add support for DLL imports. - (rs6000_valid_{decl,type}_attribute_p): New functions for NT - attributes cdecl, stdcall, dllimport, and dllexport. - (rs6000_comp_type_attributes): New attribute support. - (rs6000_set_default_type_attributes): Ditto. - (rs6000_dll_import_ref): Ditto. - - * rs6000.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move here from sysv4.h. - * sysv4.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move to rs6000.h. - - * rs6000.h (rs6000_call_cookie): New enum to describe the integer - that is the 2nd argument to call insns and 3rd argument to - call_value insns. Add support for NT DLL imports. - (rs6000_args): Add call_cookie field. - (VALID_MACHINE_{DECL,TYPE}_ATTRIBUTE): Define to call C functions. - ({COMP_TYPE,SET_DEFAULT_TYPE}_ATTRIBUTES): Ditto. - (rs6000_valid_{decl,type}_attribute_p): Add declarations. - (rs6000_comp_type_attributes): Ditto. - (rs6000_set_default_type_attributes): Ditto. - (rs6000_dll_import_ref): Ditto. - - * win-nt.h (ASM_DECLARE_FUNCTION_NAME): Add support for dllexport - attribute. - - * rs6000.md (call insns): Add support for NT dllimport functions, - and fix up NT indirect calls. Also correctly set the flag - rs6000_save_toc_p on NT indirect calls. - - * aix41.h (LINK_SPEC): Use new extra specs to avoid separate - versions for native and cross compilation. - * rs6000.h (LINK_SPEC): Ditto. - * sysv4.h (LINK_SPEC): Ditto. - - * rs6000.h (EXTRA_SPECS): Add link_syscalls, link_libg, link_path, - link_specs, and also allow target to define more with the macro - SUBTARGET_EXTRA_SPECS. - (LINK_{LIBG,SYSCALLS}_SPEC): Define as fixed pathnames if native - compilation, and currently nothing if cross compiling. - (LINK_START_SPEC): If not defined, define as empty. - * eabi{,sim}.h (LINK_START_SPEC): Add default -Ttext for - simulator. - - * eabi{aix,le}.h (MULTILIB_DEFAULTS): Add -mno-sdata default. - * sysv4{,le}.h (MULTILIB_DEFAULTS): Ditto. - - * rs6000.c (small_data_operand): New function to return true if - the operand lives in small data under eabi. - (rs6000_select{,_rtx}_section): New functions to determine whether - to put global and static items in the V.4/eabi small data areas if - -msdata. - - * rs6000.h (LEGITIMATE_SMALL_DATA_P): Call small_data_operand it - if V.4. - (GO_IF_LEGITIMATE_ADDRESS): If LEGITIMATE_SMALL_DATA_P, the item - is a valid address. - (ASM_OUTPUT_LABELREF): Use fputs, not fprintf. - (small_data_operand): Declare function. - - * sysv4.h (TARGET_SWITCHES): New switch -msdata to use V.4 and - eabi defined small data sections. - (SUBTARGET_OVERRIDE_OPTIONS): Don't allow -msdata and - -mrelocatable or -mcall-aix options. - (EXTRA_SECTION{S,_FUNCTIONS}): Add .sdata, .sdata2, and .sbss - sections. - (SELECT{,_RTX}_SECTION): Call (rs6000_select{,_rtx}_section). - (ASM_SPEC): The -msdata switch passes -memb to the assembler. - (ENCODE_SECTION_INFO): Prepend a '@' to the name, if the item - lives in a small data region. - (STRIP_NAME_ENCODING): Strip '@' in addition to '*'. - (ASM_OUTPUT_LABELREF): Strip a leading '@'. - - * t-{ppc,eabi}gas (MULTILIB*): Add support for libraries built - with/without -msdata. Drop support for -mcall-aixdesc libraries. - -Wed Jan 24 15:18:15 1996 Kim Knuttila <krk@cygnus.com> - - * rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style. - (From Jason Molenda) - -Wed Jan 24 14:32:48 1996 Jim Wilson <wilson@cygnus.com> - - * reload1.c (used_spill_regs): New variable. - (reload): Set it. - * reorg.c (find_dead_or_set_registers): New function. - (mark_target_live_regs): Delete loop looking forward from target - and instead call find_dead_or_set_registers. - (fix_reg_dead_note): New function. - (fill_slots_from_thread): Call it. - - * loop.c (scan_loop): Correct comment. - (strength_reduce): Correct comments. Don't set maybe_multiple when - pass branch to scan_start. Don't set not_every_iteration after - passing a CODE_LABEL, or after passing a branch out of the loop. - When outputting DEST_ADDR giv increments, put them next to the memory - address on machines with auto-increment addresses. - (record_biv): Set new field always_executed. - (record_giv): Set new fields always_executed and auto_inc_opt. - (maybe_eliminate_biv_1): Reject biv with auto_inc_opt optimization - in some cases. - * loop.h (struct induction): New fields always_executed and - auto_inc_opt. - - * c-typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not - POINTER_SIZE to agree with expr.c. - -Tue Jan 23 15:17:30 1996 Doug Evans <dje@cygnus.com> - - * sparc/sol2.h (ASM_OUTPUT_ALIGNED_LOCAL): Delete, use svr4.h's. - -Tue Jan 23 03:28:01 1996 Paul Eggert <eggert@twinsun.com> - - * cexp.y: Use preprocessor arithmetic instead of C arithmetic - to avoid warnings on some compilers. - (HOST_WIDE_INT_MASK): Remove. - (MAX_CHAR_TYPE_MASK, MAX_WCHAR_TYPE_MASK): New macros. - (yylex): Use them. - -Mon Jan 22 18:39:21 1996 Per Bothner <bothner@cygnus.com> - - * cppexp.c (cpp_parse_expr): Set HAVE_VALUE flag for unary - minus, even if skip_evaluation is true. - -Mon Jan 22 16:53:48 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always. - (BIGGEST_FIELD_ALIGNMENT): Define. - (GO_IF_LEGITIMATE_ADDRESS): Merge PRE_INC and PRE_DEC cases. - (LEGITIMIZE_ADDRESS): Use Pmode not SImode. - (CASE_VECTOR_MODE): Depend on TARGET_64BIT. - (ASM_OUTPUT_COMMON): Delete. - (ASM_OUTPUT_ALIGNED_COMMON): Define. - * rs6000/sysv4.h (BIGGEST_FIELD_ALIGNMENT): Undefine. - * rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns. - (ashldi3, lshrdi3, ashrdi3, anddi3, iordi3, xordi3): Same. - (moddi3, cmpdi, tablejump matchers): Same. - (divdi3): Update PowerPC64 patterns. - * rs6000.c (rs6000_initialize_trampoline, case ABI_AIX): Use Pmode - not SImode. - -Sun Jan 21 23:33:24 1996 Ian Lance Taylor <ian@cygnus.com> - - * dbxout.c: Include <string.h> - -Fri Jan 19 17:17:00 1996 Per Bothner <bothner@kalessin.cygnus.com> - - * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): Removed. - * expr.c (is_zeros_p, mostly_zeros_p): Handle SET_TYPE CONSTRUCTORs. - (store_constructor_field): New helper function. - (store_constructor): Take 'cleared' parameter. - (expand_expr): Fix store_constructor_call to pass 'cleared' of 0. - - * expr.c (store_constructor, SET_TYPE): Fix off-by-one-error. - Also, devide start byte by BITS_PER_UNIT before passing to memset. - (store_constructor): `continue' in wrong place. - - * expr.c (store_constructor): If storing into a range of array - elements, and the range is small, or the target it not memory, - unroll the loop (and use store_field, which handles REGs). - (store_constructor): Handle RANGE_EXPR in array index. - -Fri Jan 19 16:52:25 1996 Doug Evans <dje@charmed.cygnus.com> - - * svr4.h (SWITCH_TAKES_ARG): Add 'x'. - * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. - -Fri Jan 19 15:18:38 1996 Ian Lance Taylor <ian@cygnus.com> - - * dbxout.c (flag_minimal_debug): Initialize to 0 if both - NO_DOLLAR_IN_LABEL and NO_DOT_IN_LABEL are defined. - (dbxout_type_methods): If the mangled method name uses the special - C++ marker character, pass show_arg_types as 1 when calling - dbxout_type. - -Fri Jan 19 11:48:28 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi-ci.asm (_SDA_BASE_): Move the default definition - from the .got section to the .sdata section. Do not add 32768. - (_SDA2_BASE_): Provide a default definition. - - * rs6000/eabi-cn.asm (.got.blrl): Don't define this section any - more, linker now directly creates the blrl instruction at - _GLOBAL_OFFSET_TABLE_-4. - -Fri Jan 19 05:12:31 1996 Richard Earnshaw <rearnsha@armltd.co.uk> - - * arm/lib1funcs.asm (__divsi3, __modsi3, __udivsi3, __umodsi3): - Replace with smaller, faster versions. - -Thu Jan 18 17:41:46 1996 Jim Wilson <wilson@cygnus.com> - - * sh.c (ctype.h): Delete. - (regno_reg_class, reg_class_from_letter): Add SH3e support. - (prepare_scc_operands, broken_move, push, pop, push_regs): Likewise. - (calc_live_regs, sh_expand_prologue, sh_expand_epilogue): Likewsie. - (initial_elimination_offset, arith_reg_operand): Likewise. - (sh_builtin_saveregs, fp_zero_operand, fp_one_operand): New functions. - (sh_function_arg, sh_function_arg_partial_nregs): Delete. - * sh.h (CPP_SPEC, CONDITIONAL_REGISTER_USAGE): Add SH3E support. - (TARGET_SWITCHES, OVERRIDE_OPTIONS, FIRST_PSEUDO_REGISTER): Likewise. - (FIXED_REGISTERS, CALL_USED_REGISTERS, HARD_REGNO_MODE_OK): Likweise. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. - (REG_ALLOC_ORDER, CONST_DOUBLE_OK_FOR_LETTER_P, NPARM_REGS): Likewise. - (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Likewise. - (FUNCTION_ARG_REGNO_P, CUMULATIVE_ARGS, ROUND_REG): Likewise. - (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise. - (FUNCTION_ARG_PARTIAL_NREGS, LEGITIMATE_CONSTANT_P): Likewise. - (MODE_DISP_OK_4, REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. - (DBX_REGISTER_NUMBER, enum processor_type): Likewise. - (SH3E_BIT, TARGET_SH3E, FPUL_REG, FIRST_FP_REG, LAST_FP_REG): New. - (FIRST_FP_PARM_REG, FIRST_FP_RET_REG, BASE_RETURN_VALUE_REG): New. - (BASE_ARG_REG, enum sh_arg_class, struct sh_args): New. - (GET_SH_ARG_CLASS, PASS_IN_REG_P, sh_builtin_saveregs): New. - (EXPAND_BUILTIN_SAVEREGS, DOUBLE_TYPE_SIZE): New. - (TARGET_SWITCHES): Delete broken -m3l option. - * sh.md (cpu, movsi_i, movsf_i, blt, bge, sle, sge): Add SH3E support. - (push_e, pop_e, movsi_ie, movsf_ie, addsf3, subsf3): New patterns. - (mulsf3, macsf3, divsf3, floatsisf2, fix_truncsfsi2): New patterns. - (cmpgtsf_t, cmpqesf_t, cmpsf, negsf2, sqrtsf2, abssf2): New patterns. - (abssf2+9, abssf2+10): Add SH3e support to peepholes - (abssf2+11, abssf2+12): New peepholes for SH3e. - * t-sh (MULTILIB_OPTIONS): Add SH3E support. - (MULTILIB_DIRNAMES): Define to empty. - -Thu Jan 18 11:29:11 1996 Ian Lance Taylor <ian@cygnus.com> - - * cplus-dem.c (cplus_demangle_opname): Change type of opname - parameter to const char *. - (cplus_mangle_opname): Change return type and type of opname - parameter to const char *. Don't cast return value. - * demangle.h (cplus_demangle_opname): Update declaration. - (cplus_mangle_opname): Likewise. - -Thu Jan 18 10:07:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * gcc.c (extra_specs): If EXTRA_SPECS is defined, define - extra_specs array to hold the extra specs the machine description - defines. - (set_spec): If EXTRA_SPECS is defined, handle the extra - specifications. - (process_command, main, validate_all_switches): Likewise. - - * rs6000/{rs6000.h,powerpc.h,aix41.h} ({CPP,ASM}_SPEC): Use common - specs with EXTRA_SPECS, only modifying things in the target that - needs to be modified, rather than having tons of mostly duplicate - definitions. - * rs6000/{sysv4{,le}.h,}netware.h,lynx.h,} ({CPP,ASM}_SPEC): Ditto. - * rs6000/eabi{le,aix}.h,aix3newas.h}} ({CPP,ASM}_SPEC): Ditto. - -Wed Jan 17 19:38:24 1996 Paul Eggert <eggert@twinsun.com> - - * cexp.y (HOST_WIDE_INT_MASK): Renamed from LONG_MASK; - use HOST_WIDE_INT. - (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): Put back. - (parse_c_expression, expression_value, parse_escape, left_shift, - right_shift, struct constant, exp, parse_number, yylex): - Replace `long' with `HOST_WIDE_INT'. - * cccp.c (PTR_INT_TYPE): Remove obsolete define to `long'. - (parse_escape, parse_c_expression, eval_if_expression, get_lintcmd, - do_line, do_if, do_elif): Replace `long' with `HOST_WIDE_INT'. - (trigraph_pcp): Don't assume a pointer difference fits in an int. - -Wed Jan 17 18:56:31 1996 Jim Wilson <wilson@cygnus.com> - - * expmed.c (extract_bit_field): For multi-word bitfield, clobber - target before storing to it. - -Wed Jan 17 14:19:34 1996 J.T. Conklin <jtc@slave.cygnus.com> - - * sparc/{t-sol2,t-sunos40,t-sunos41}: Define away LIBGCC1_TEST - so that cross compilers targeted at these systems will build. - -Wed Jan 17 09:51:58 1996 Doug Evans <dje@cygnus.com> - - * sparc.h (v9 INIT_CUMULATIVE_ARGS): Fix typos. - - * gcc.c (process_command): New local lang_n_files, and use - it in test of -c with -o. Move test of -save-temps. - Test for trailing NUL in -c. - - * i386/t-go32: New file. - * i386/xm-go32.h: New file. - * configure (i[345]86-*-go32*): Define xm_file and tmake_file. - -Wed Jan 17 07:47:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Put back. - (pcfinclude): Use HOST_WIDE_INT for casting pointer to integer. - -Wed Jan 17 05:25:06 1996 Jeffrey A. Law <law@cygnus.com> - - * va-pa.h (__gnuc_va_list): Use a "void *". - -Tue Jan 16 18:45:23 1996 Per Bothner <bothner@cygnus.com> - - * cppexp.c (cpp_lex): Do cpp_pop_buffer after CPP_POP so retried - cpp_skip_hspace will actually work. - - * cppexp.c (SKIP_OPERAND): New macro. - (cpp_parse_expr): Suppress evaluation and diagnostics in - unevaluated subexpressions. - Corresponds to Eggert's Fri Jun 9 17:58:29 1995 change. - -Tue Jan 16 11:59:07 1996 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on - the function_obstack as they are used by the exception handling code. - (defer_cleanups_to): Ditto. - (TRUTH_ANDIF_EXPR): Ditto. - (TRUTH_ORIF_EXPR): Ditto. - -Tue Jan 16 13:57:13 1996 Jim Wilson <wilson@cygnus.com> - - * cccp.c (new_include_prefix): Ignore ENOTDIR error from stat. - -Tue Jan 16 12:18:56 1996 Doug Evans <dje@cygnus.com> - - * i386/t-sol2 (crt[1in].o): Add missing -c. - * sparc/t-sol2 (crt[1in].o,gcrt1.o): Likewise. - Source files are assembler. - - * gcc.c (do_spec_1, case 'W'): Rename local `index' to `cur_index' to - avoid warning on solaris. - -Tue Jan 16 11:42:09 1996 Ian Lance Taylor <ian@cygnus.com> - - * dbxcoff.h: New file for stabs in COFF support. - * a29k/a29k-udi.h: Use dbxcoff.h. - * h8300.h, i960/i960-coff.h, m68k/coff.h, m88k/m88k-coff.h: Likewise. - * sh.h, sparc/litecoff.h: Likewise. - -Tue Jan 16 08:21:45 1996 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> - - * optabs.c (expand_fix): Don't copy TARGET to TO if same. - - * expr.c (emit_move_insn_1): Don't emit clobber when moving - by parts and source equals destination. - -Tue Jan 16 08:08:29 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (extract_bit_field): Don't abort if not MEM_IN_STRUCT_P. - - * local-alloc.c (memref_referenced_p, case REG): Fix last change. - - * fold-const.c (const_binop): Strip NOPS from both args. - - * regclass.c (regclass): Remove useless cast. - -Tue Jan 16 07:06:03 1996 Paul Eggert <eggert@twinsun.com> - - * cexp.y: General code cleanup in the style of 1995-04-01 change. - Add prototypes for static functions. - Add parentheses suggested by `gcc -Wparentheses'. - Use `long' uniformly, instead of long, int, HOST_WIDE_INT mess. - (struct constant): Use `signedp' flag (with sign bit) instead of - `unsignedp' flag; it's a little more convenient. - - (HAVE_STDLIB_H, STDC_HEADERS, LONG_MASK, __attribute__, PROTO, - VA_START, PRINTF_ALIST, PRINTF_DCL, PRINTF_PROTO, PRINTF_PROTO_1, - vfprintf, SIGNED, UNSIGNED): New symbols. - <stdlib.h>: Include if HAVE_STDLIB_H. - <string.h>: New include. - (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. - (yylex, yyerror, expression_value, parse_number, - initialize_random_junk): Now static. - - (overflow_sum_sign): Renamed from possible_sum_sign, with an - extra arg SIGNEDP. - (parse_number): Inline strcmp when checking for "0x". - (yylex): Keep track of mask needed when decoding wide characters. - (parse_escape): New arg RESULT_MASK; use it instead of - assuming char width. - (yylex, parse_escape, parse_c_expression): Store all host - integers as long, not int or HOST_WIDE_INT. - (left_shift): No need to do signed left shifts separately. - - These changes are for the test program (if TEST_EXP_READER): - (pedantic, traditional): Allocate storage. - (main): Set pedantic, traditional, yydebug depending on args. - (is_hor_space, warning, lookup): Change types and implementation - to match rest of program. - (pedwarn, check_assertion, xmalloc): New functions. - - * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. - (parse_escape, parse_c_expression, eval_if_expression): - Change return type to `long'; all callers changed. - (pcfinclude): Use `int', not HOST_WIDE_INT; any integral type will do. - - * cccp.c (skip_quoted_string): If pedantic and not pedantic_errors, - skipped multiline strings elicit a warning, not an error. - (rescan): Minor code reorg to keep it parallel with skip_quoted_string. - - * fold-const.c (left_shift_overflows): Remove; unused. - - * c-typeck.c (convert_for_assignment): Don't automatically convert - from a union member to the union. - -Tue Jan 16 06:26:00 1996 Stefan Vogel (stefan@ssw.de) - - * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define section attributes - only when a section is defined the first time. - -Tue Jan 16 06:03:27 1996 Thomas Graichen <graichen@omega.physik.fu-berlin.de> - - * i386/freebsd.h (ASM_WEAKEN_LABEL): Deleted; not supported. - -Mon Jan 15 20:59:49 1996 J. Kean Johnston <hug@netcom.com> - - * Makefile.in (LIBGCC2_CLFAGS): Add -DIN_LIBGCC2. - (libgcc1.a): Add -DIN_LIBGCC1. - (stamp-crtS): Remove -fpic, use CRTSTUFF_CFLAGS_S. - * config/t-libc-ok: Add CRTSTUFF_CFLAGS_S. - - * configure (i[3456]86-*-sco3.2v5*): New case. - * i386/sco5.h, i386/t-sco5, i386/x-sco5, i386/xm-sco5.h: New files. - * ginclude/stdarg.h, ginclude/varags.h: Add test for SCO Open Server 5. - -Mon Jan 15 20:44:13 1996 J.T. Conklin <jtc@netbsd.org> - - * m68k/netbsd.h (ASM_SPEC): New macro. - -Mon Jan 15 17:01:16 1996 Doug Evans <dje@cygnus.com> - - * c-lex.c (check_newline): Pass character after `#pragma' to - HANDLE_PRAGMA. Don't call get_directive_line if at end of line. - * c-common.c (get_directive_line): Watch for EOF. - * h8300.h (HANDLE_PRAGMA): New argument `c'. - Must issue `return' now. - * i960.h (HANDLE_PRAGMA): Likewise. - * sh.h (HANDLE_PRAGMA): Likewise. - * nextstep.h (HANDLE_PRAGMA): Likewise. - * h8300.c (handle_pragma): New argument `ch'. - Simplify pragma processing. Delete support for `#pragma section'. - * i960.c (process_pragma): New argument `c'. Change result to - terminating character. - * nextstep.c (handle_pragma): Likewise. - * sh.c (handle_pragma): Likewise. Also simplified. - - * sched.c (reemit_notes): Add prototype. - (sched_analyze_2): Reorganize comments. Call prev_nonnote_insn. - (sched_analyze): Add abort call. - (schedule_block): Call prev_nonnote_insn. - Move call of reemit_notes to after SCHED_GROUP_P scheduling. - Set `head' to `last'. - -Mon Jan 15 16:12:25 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * configure (*-*-gnu*): Use tmake_file=t-gnu. - * config/t-gnu (CRTSTUFF_T_CFLAGS): New file. - * configure (*-*-gnu*): Remove crtbeginS.o and crtendS.o frmo - $extra_parts. Use xmake_file=x-linux. - -Mon Jan 15 15:30:49 1996 Gran Uddeborg <gvran@uddeborg.pp.se> - - * i386/svr3{,z}.ifile: Allocate address areas for the "stab" - and "stabstr" sections. - -Mon Jan 15 14:39:14 1996 Paul Eggert <eggert@twinsun.com> - - * c-decl.c (finish_incomplete_decl): Warn if completing an - array that wasn't declared extern. Simplify test for whether - completion is needed. - - * cccp.c (do_xifdef): Warn about `#ifdef 0' if not traditional; - formerly the warning was issued if not pedantic. - -Mon Jan 15 13:24:12 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md ({add,sub}di3): Make it work on little endian PowerPC - systems. - - * rs6000/eabi-c{i,n}.asm (.sbss2 section): Don't make .sbss2 a - .bss section just yet, because it confused the linker. - -Mon Jan 15 08:50:31 1996 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (pushdi): Allow "i" for operand 1. - (extendqidi2): Improve 68000 code generation. - (adddi_lshrdi_63): New pattern. - -Mon Jan 15 08:38:40 1996 H.J. Lu {hjl@gnu.ai.mit.edu) - - * configure (i[3456]86-*-linux*): Add extra_parts. - * i386/linux.h (LIB_SPEC): Remove %{mieee-fp:-lieee}. - Use -lc_p for -profile. - (CC1_SPEC): New macro. - * linux.h (STARTFILE_SPEC): Use crtbegin.o for both shared llibrary - and normal executable; use gcrt1.o for -profile. - (ENDFILE_SPEC): Use crtend.o for shared llibrary and normal executable. - * x-linux (INSTALL_ASSERT_H): Unset it. - * configure (i[3456]86-*-linux*oldld*): Set xmake_file to x-linux-aout. - (i[3456]86-*-linux*aout*): Likewise. - * x-linux-aout: New file, copied from config/x-linux. - -Mon Jan 15 07:41:05 1996 Dmitry K. Butskoy (buc@stu.spb.su) - - * varasm.c (in_data_section): New function. - -Mon Jan 15 07:37:13 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) - - * c-typeck.c (build_c_cast): Don't warn about alignment when we - have an opaque type. - -Mon Jan 15 07:22:59 1996 Michel Delval (mfd@ccv.fr) - - * reload.c (find_equiv_reg): Apply single_set, not PATTERN, to WHERE. - -Mon Jan 15 07:02:21 1996 John F. Carr <jfc@mit.edu> - - * reorg.c (mark_referenced_resources, case TRAP_IF): Set volatil. - -Mon Jan 15 06:20:38 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * gcc.c (process_commands): Remove inadvertant fallthrough. - - * function.c ({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is - in bits, not bytes. - - * objc/archive.c (objc_{write,read}_type, case _C_STRUCT_B): Fix typo. - - * expr.c (expand_expr, case COMPONENT_REF): Don't make recursive - call on object with EXPAND_SUM. - - * stmt.c (save_expr_regs): Delete declaration; unused. - -Sun Jan 14 21:44:26 1996 Michael Meissner <meissner@wogglebug.tiac.net> - - * rs6000/eabi-ci.asm (__EXCEPT_START__): Provide label for start - of g++ exception pointers. - - * rs6000/eabi-cn.asm (__EXCEPT_END__): Provide label for end of - g++ exception pointers. - - * rs6000/eabi.asm (__eabi): Relocate exception pointers unless - they are NULL. - - * va-ppc.h (va_arg): Long longs are always passed in odd registers. - - * rs6000.c (function_arg_boundary): On V.4, long longs are always - passed in odd registers. - - * rs6000.md ({add,sub}di3): Remove restriction for POWER only, - since all of the instructions used are common to both - architectures. - -Sun Jan 14 20:34:03 1996 Jeffrey A. Law <law@cygnus.com> - - * expr.c (expand_assignment): Fix alignment parm in emit_block_move. - -Sun Jan 14 19:00:25 1996 Jim Wilson <wilson@cygnus.com> - - * sched.c (schedule_block): Copy RTX_INTEGRATE_P bit when create - a new note. - - * integrate.c (save_for_inline_copying, case NOTE): Copy - RTX_INTEGRATED_P bit. - -Sun Jan 14 17:57:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stupid.c (stupid_find_reg): Don't try to allocate reg if live - over more than 5,000 insns. - -Sat Jan 13 23:09:07 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (STACK_BOUNDARY): Bring back down to 64bits. - - * pa.md (pre_ldwm): Fix bug exposed by recent changes. - Simplify. - (pre_stwm, post_ldwm, post_stwm): Likewise. - (HImode and QImode variants): Likewise. - * pa.c (hppa_expand_prologue): Corresponding changes. - (hppa_expand_epilogue): Likewise. - - * pa.c (hppa_legitimize_address): Generate more indexing - address modes. - -Fri Jan 12 19:03:21 1996 Doug Evans <dje@cygnus.com> - - * sparc/sol2.h (COMMON_ASM_OP): Delete, use sysv4.h's. - - * sched.c (schedule_block): Maintain a valid chain so - emit_note_before works. - -Fri Jan 12 13:20:01 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi{,-ci,-cn}.asm: Add support for V.4 .sbss/.sdata, and - eabi .sbss2/.sdata2 sections, loading up r13 and r2 respectively - if the sections were used, and we don't need to relocate the - pointers. - -Thu Jan 11 19:41:07 1996 Per Bothner <bothner@cygnus.edu> - - * sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use AGGREGATE_TYPE_P so - QUAL_UNION_TYPE and SET_TYPE are also passed by invisible reference. - * sparc.h (INIT_CUMULATIVE_ARGS for SPARCV9): Return types of - QUAL_UNION_TYPE and SET_TYPE also make invisible 1st argument. - -Thu Jan 11 18:33:50 1996 Doug Evans <dje@cygnus.com> - - * h8300.h (TARGET_ALIGN_STRUCT_300): New macro. - (TARGET_SWITCHES): Add -malign-struct-300. - (BIGGEST_FIELD_ALIGNMENT): Update. - -Thu Jan 11 12:07:44 1996 J.T. Conklin <jtc@cygnus.com> - - * h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS. - -Thu Jan 11 11:09:33 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (mulsf3 !POWERPC): Use dmul attribute. - (divsf3 !POWERPC): Use ddiv attribute. - -Thu Jan 11 11:09:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi-ctors.c (__do_global_ctors): If global variable - __atexit is non-NULL, call it with __do_global_dtors address to - register the function to run destructors. - (__do_global_{c,d}tors): Guard against NULL pointers. - - * rs6000/eabi.asm (__eabi): If the __eabi function was already - called, do nothing. - -Thu Jan 11 11:29:09 1996 Doug Evans <dje@cygnus.com> - - * fixincludes: Wrap rpc/types.h in extern "C", for osf2.0. - -Wed Jan 10 13:16:03 1996 Doug Evans <dje@cygnus.com> - - * varasm.c (variable_section): New function. - (assemble_variable): Call it. - -Wed Jan 10 11:27:28 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi-c{i,n}.asm (__DTOR_{LIST,END}__): Fix typo. - * rs6000/eabi{,sim}.h ({START,END}FILE_SPEC): Add %s to object - files. - - * rs6000/t-{eabi,eabigas,ppc,ppcgas} (MULTILIB_MATCHES): Drop - support for obsolete -mcpu=mpc403. - Add -mcpu=821 and -mcpu=860 to soft-float defaults. - - * rs6000/t-eabi{,gas} (LIBGCC): Add stmp-crt. - (INSTALL_LIBGCC): Add install-crt. - (EXTRA_PARTS): Delete. - (stmp-crt{,-sub}): New rules to build crti.o and crtn.o in a - multilib fashion. - (install-crt): Install the multilib crt values. - -Tue Jan 9 17:30:16 1996 Doug Evans <dje@cygnus.com> - - * c-tree.h (merge_attributes): Moved from here. - * tree.h (merge_attributes): To here. - * c-typeck.c (merge_attributes): Moved from here. - * tree.c (merge_attributes): To here. - -Mon Jan 8 18:27:38 1996 Arne H. Juul <arnej@pvv.unit.no> - - * mips/netbsd.h (LINK_SPEC): Change nostdlib to nostartfiles. - (LOCAL_LABEL_PREFIX): Delete. - (ASM_OUTPUT_SECTION_NAME): Define. - -Sun Jan 7 17:11:11 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * collect2.c (scan_libraries): Correct Import File ID interpretation. - -Sun Jan 7 16:56:56 1996 Michael Meissner <meissner@wombat.gnu.ai.mit.edu> - - * {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT): Define as 32768*8. - -Sat Jan 6 15:52:36 1996 Doug Evans <dje@cygnus.com> - - * a29k/vx29k.h (CPP_SPEC): Define. - - * configure: Recognize any --with/--without option. - - * Makefile.in (MAKEINFOFLAGS): New variable. - (cpp.info,gcc.info): Use it. - - * sparc/t-sol2 (crt1.o,crti.o,crtn.o,gcrt1.o): Use $(GCC_FOR_TARGET). - * i386/t-sol2 (crt1.o,crti.o,crtn.o): Likewise. - -Fri Jan 5 10:44:25 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/aix{3newas,41}.h ({ASM,CPP}_SPEC): Update for new - processors. - * rs6000/eabi{aix,le}.h ({ASM,CPP}_SPEC): Ditto. - * rs6000/{lynx,netware,powerpc,sysv4}.h ({ASM,CPP}_SPEC): Ditto. - - * rs6000.c (rs6000_override_options): Remove requirement that - -mcpu=common be big endian. - (rs6000_stack_info): If NAME__main is defined, mark this function - as doing a call, even if there are no arguments. - - * rs6000.md (SI*SI->DI splitters): Add reload_completed - condition. - (mulsidi3): If big endian, do move directly, rather than moving by - pieces. - - * rs6000/eabi{,sim}.h (STARTFILE_SPEC): Add crti.o before any - other objects. - (ENDFILE_SPEC): Add crtn.o after any objects. - * rs6000/t-eabi{,gas}: Build crt{i,n}.o from eabi-crt{i,n}.asm. - * rs6000/eabi-crt{i,n}.asm: New files to provide begin/end labels - for all special sections used by eabi as opposed to relying on GLD - to set all of these symbols. - * rs6000/eabi.asm (__eabi): Change to use the new labels provided - above. Don't assume that the .got2, .ctors, .dtors, and .fixup - sections are contiguous. - -Fri Jan 5 10:40:37 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (mulh_call): Remove r4 clobber. - (quoss_call): Remove cr0 and cr1 clobbers. - - * rs6000.md (function units): Add MPC505/821/860 support. - (SF multiply add combiner patterns): Use dmul attribute when limited - to DFmode POWER instructions. - * rs6000.c (processor_target_table): Add MPC505/821/860 support. - Remove MASK_POWER and add MASK_PPC_GFXOPT for PPC602. Always use - new mnemonics for common mode. - (rs6000_override_options): Don't set SOFT_FLOAT based upon - PROCESSOR_DEFAULT. - * rs6000.h (processor_type): Add PROCESSOR_MPCCORE. - (RTX_COSTS): Add PROCESSOR_MPCCORE cases. - (CPP_SPEC): Add new processor support. - -Fri Jan 5 00:32:49 1996 Doug Evans <dje@cygnus.com> - - * sparc.h (MACHINE_STATE_RESTORE): Add missing .align. - -Wed Jan 3 18:29:32 1996 Doug Evans <dje@cygnus.com> - - * arm/lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already. - (CONCAT1,CONCAT2,SYM): Define. - (__udivsi3,__divsi3,__umodsi3,__modsi3,__div0): Use SYM to define - global labels. - -Wed Jan 3 02:41:39 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Call text_section. - -Tue Jan 2 16:12:13 1996 Jim Wilson <wilson@cygnus.com> - - * sh.c (gen_shifty_op): Output a NOP for a shift by 0. - (find_barrier): New variables si_limit, hi_limit. Set them depending - on whether we are optimizing. Set found_hi if the destination is - HImode. - (machine_dependent_reorg): If not optimizing, then change scan to a - note instead of calling delete_insn. - * sh.h (OVERRIDE_OPTIONS): Don't set optimize or flag_delayed_branch. - - * dbxout.c (gstab.h): Include if cross compiling. - -Mon Jan 1 21:13:43 1996 Arkady Tunik <Arkady_Tunik@comverse.com> - - * configure (i[3456]-*-solaris2*): Support stabs. - * i386/sol2dbg.h: New file. - -Mon Jan 1 09:08:01 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c: Use DECL_C_BIT_FIELD, not DECL_BIT_FIELD in all tests. - - * global.c (reg_allocno): No longer static. - * reload1.c (reg_allocno): Declare. - (order_regs_for_reload): New arg, GLOBAL. - Bias against regs allocated in local-alloc. - (reload): Pass new parm to order_regs_for_reload. - - * local-alloc.c (reg_equiv_replacement): New variable. - (memref_referenced_p, case REG): Check for reg_equiv_replacement. - (update_equiv_regs): reg_equiv_replacement now file-scope. - - * c-decl.c (finish_struct): Warn if field with enumeral type is - narrower than values of that type. - - * combine.c (rtx_equal_for_field_assignment_p): New function. - (make_field_assignment): Use it. - Expand compound operations on both sides of an IOR. - Properly adjust constand in IOR when computing bit position. - -Sun Dec 31 18:47:22 1995 Doug Evans <dje@cygnus.com> - - * m68k-none.h (MULTILIB_DEFAULTS): Define. - -Sun Dec 31 15:47:20 1995 Jeffrey A. Law <law@cygnus.com> - - * hard-reg-set.h (losing_caller_save_reg_set): Declare. - * regclass.c (losing_caller_save_reg_set): Define. - (init_reg_sets_1): Initialize losing_caller_save_reg_set. - * global.c (find_reg): Avoid caller-saving registers in - losing_caller_save_reg_set. - * local-alloc.c (find_free_reg): Avoid caller-saving registers - in losing_caller_save_reg_set. - (CLASS_LIKELY_SPILLED_P): Delete definition. Moved into regs.h. - * regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined. - - * reorg.c (fill_simple_delay_slots): Try to fill from the - target of an unconditional branch if necessary. - - * pa.h (REG_ALLOC_ORDER): Allocate PA1.1 caller-saved FP regs - before PA1.0 caller-saved FP regs. - - * sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined. - - * pa.h (ADJUST_PRIORITY): Define to keep lifetimes of registers - that will be allocated to %r1 shorter. - -Sun Dec 31 14:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * rtl.h (assign_temp): Add extra arg. - * function.c (assign_temp): Add extra arg, DONT_PROMOTE. - Don't return (const_int 0) for VOIDmode. - * stmt.c (expand_asm_operands): Call assign_temp with extra arg. - * expr.c (save_nocopied_parts, expand_expr): Likewise. - (expand_expr, case SAVE_EXPR): Set TEMP to (const_int 0) - if MODE is VOIDmode. - (expand_expr): Don't use assign_temp for pseudos when might - want to be TMODE. - - * stmt.c (tail_recursion_args): Compare TYPE_MAIN_VARIANTs. - - * calls.c (expand_call): Don't warn about not being able to - inline if -O0. - * expr.c (clear_pending_stack_adjust): Don't do optimization if -O0. - * function.c (instantiate_decls): Check DECL_SAVED_INSNS to see - if obstack change is needed. - * toplev.c (rest_of_compilation): Leave DECL_INLINE set even if - won't inline. - - * tree.h: Add documentation on uses of common area flags. - (DECL_ERROR_ISSUED): New macro. - (DECL_NO_STATIC_CHAIN): New macro; currently unused. - * c-aux-info.c (gen_decl): DECL_REGISTER isn't defined - for FUNCTION_DECL. - * toplev.c (compile_file): Likewise. - * stmt.c (fixup_gotos): Use DECL_ERROR_ISSUED instead - of DECL_REGISTER. - * varasm.c ({bc_,}make_decl_rtl): Don't look at DECL_REGISTER - for functions. - -Sat Dec 30 07:57:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sdbout.c (plain_type_1, case ARRAY_TYPE): Subtract lower bound - when writing dimension. - -Fri Dec 29 18:23:58 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (eval_if_expression): End expression with '\n', not '\0' - so '\0' can be diagnosed properly. - * cexp.y (yylex, parse_c_expression, main): Likewise. - -Thu Dec 28 18:24:54 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * tree.h (TYPE_ARRAY_MAX_SIZE): New macro (used by Chill). - * function.c (assign_temp): New function. Can handle Chill-style - variable-sized array with static maximum size. - * rtl.h (assign_temp): New declaration. - * stmt.c (expand_asm_operands): Use new assign_temp function. - * expr.c (save_noncopied_parts, expand_expr): Likewise. - -Thu Dec 28 15:28:47 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * function.c (assign_parms): Fix thinko for struct value arg. - -Fri Dec 29 12:41:47 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (movdf): Reinstate 12/24 change accidently dropped in - undoing 12/27 changes. - -Thu Dec 28 22:24:53 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h: (reg_class): Undo 12/27 changes, except for formatting. - (REG_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. - (REG_CLASS_FROM_LETTER): Likewie. - (PREDICATE_CODES): Delete predicate functions. - (gpc_reg{0,3,4,34}_operand): Delete declaration. - (cc_reg{0,1}_operand): Likewise. - * rs6000.c (gpc_reg{0,3,4}_operand): Delete. - (cc_reg{0,1}_operand): Likewise. - - * rs6000.md (common mode functions): Undo 12/27 changes,and add - appropriate clobbers for common mode calls. Keep define_splits for - powerpc SI*SI->DI. - -Thu Dec 28 11:08:11 1995 Mike Stump <mrs@cygnus.com> - - * sparc.h (RETURN_ADDR_OFFSET): Rename from NORMAL_RETURN_ADDR_OFFSET; - returns offset for the current function specifically. - -Thu Dec 28 07:07:14 1995 Paul Eggert <eggert@twinsun.com> - - * c-lex.c (yylex): Improve error message for bogus numbers. - Consolidate duplicated code. - - * cexp.y (parse_number): Improve error message for bogus numbers. - (yylex): Consider `0xe-1' to be a (bogus) number if not traditional. - - * cccp.c (do_include): In VMS, worry only about EACCES when open fails. - (new_include_prefix): Don't try to stat dir prefixes in VMS. - -Wed Dec 27 14:02:54 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * fix-header.c: Add EXIT_FAILURE and EXIT_SUCCESS to stdlib.h if - missing. Re-write how errno is added to be done similarly. - (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): New macros, to mark XPG4 - functions. - (std_include_table): Add a number of functions (mostly XPG4). - -Tue Dec 26 23:18:34 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * sys-types.h: Add dummy definition for ssize_t. - * sys-protos.h (bcmp, bcopy, gethostname, lockf, read, readlink, - write): Fix prototypes to match Posix and XPG4. - (socket, strcasecmp, strncasecmp): New prototypes (from XPG4). - -Wed Dec 27 15:30:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (_bb_init_prg): Cast arg to bzero to (char *). - - * regs.h (reg_rtx_no, regno_pointer_{flag_length,align): New decls. - (REGNO_POINTER_ALIGN): New macro. - * emit-rtl.c (regno_pointer_align): New variable. - (gen_reg_rtx): Extend regno_pointer_align table. - Allocate tables in saveable obstack. - (mark_reg_pointer): New arg, ALIGN. - (gen_inline_header): New args for reg info. - (set_new_first_and_last_insn): Set cur_insn_uid. - ({save,restore}_emit_status): Save and restore regno_pointer_align. - (restore_reg_data{,_1}): Deleted. - (init_emit): Allocate register tables in saveable obstack. - Set REGNO_POINTER_ALIGN for regs pointing into frame. - * function.c (assign_parms): Set REGNO_POINTER_ALIGN for - parms that are pointers. - * function.h (struct function): New field regno_pointer_align. - * expr.c (expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN - when copying address into memory. - (expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment - of register when result or result's address. - (expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here. - * combine.c (set_nonzero_bits_and_sign_copies): Handle reg even - if only set once and in one basic block. - (nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of - explicit alignment of registers pointing into frame. - * stmt.c (expand_decl): Set alignment of register for pointer - variable. - * optabs.c (emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND. - * cse.c (find_best_addr): Make sure folded address better before using. - * rtl.h (INLINE_REGNO_{RTX,POINTER_FLAG,POINTER_ALIGN}): New macros. - (gen_inline_header): Add three new parms. - * rtl.def (INLINE_HEADER): Add three new fields. - * integrate.c: Include regs.h. - (initialize_for_inline): Pass additional args to gen_inline_header. - (save_for_inline_copying): Make new regno_reg_rtx, regno_pointer_flag, - and regno_pointer_align arrays. - (expand_inline_function): Set alignment of reg for parm if passed - by hidden pointer. - Set regno_pointer_{flag,align} into remap table. - (copy_rtx_and_substitute): Set alignment of pointers into - stack frame. - Copy pointer flag and alignment to regs that are copies of - pointer registers from the original regs. - (output_inline_function): Don't call restore_reg_data. - Restore reg_rtx_no, regno_{reg_rtx,pointer_flag,pointer_align}. - * integrate.h (struct inline_remap): New fields regno_pointer_flag - and regno_pointer_align. - * unroll.c (unroll_loop): Set regno_pointer_{flag,align} in - remap table. - * explow.c (memory_address, allocate_dynamic_stack_space): - Pass additional arg to mark_reg_pointer. - * Makefile.in (integrate.o): Includes regs.h. - - * alpha.c ({non,}aligned_memory_operand): Test REGNO_POINTER_ALIGN. - (reg_or_unaligned_mem_operand): New function. - (get_unaligned_address): Add new arg, EXTRA_OFFSET. - * alpha.h ({CONSTANT,DATA}_ALIGNMENT): Align to at least BITS_PER_WORD. - (PREDICATE_CODES): Add reg_or_unaligned_mem_operand. - * alpha.md (extend{qihi,qisi,hisi}2): Allow unaligned memory - as arg 1 and pass to extend_{q,h}idi2. - (unaligned_extend{q,h}idi): New patterns. - (extend{q,h}idi2): If unaligned memory, call above new patterns. - (ext{q,l,w}h recognizer): Update to proper RTL. - (ext define_split): Comment out for now; wrong and maybe useless. - (unaligned_{load,store}hi): Do similarly to QImode. - (movhi, reload_{in,out}hi): Call unaligned case differently. - -Wed Dec 27 11:38:20 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (mulsidi3{,_common}): Undo previous change using - register classes instead of fixed registers for SI*SI->DI common - mode multiplies. - - * rs6000.c (gpc_reg34_operand): Delete unused function. - * rs6000.h (gpc_reg34_operand): Likewise. - - * rs6000.c (gpc_reg{3,4}_operand): Reorganize code and don't allow - SUBREG's. - - * rs6000.c (rs6000_override_options): Do not allow -mcpu=common on - little endian PowerPC's. - (gpc_reg{0,3,4,34}_operand): New functions to match a specific - register. - (cc_reg{0,1}_operand): Likewise. - - * rs6000.h (reg_class): Add register classes for register 3 by - itself, register 4 by itself, registers 3&4, and CR1. - (REG_NAMES): Add support for new register classes. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. - (PREDICATE_CODES): Add new predicate functions. - (gpc_reg{0,3,4,34}_operand): Add declaration. - (cc_reg{0,1}_operand): Likewise. - - * rs6000.md (common mode multiplication/division): Move/rename common - mode calls so they are closer to define_expands that call them. - Set attribute type to be jmpreg, rather than integer, so optimizer - knows branch processing unit is used; make SI*SI->DI multiplier use - register classes instead of hardwired registers. - Add appropriate clobbers of CR0/CR1 as mandated by PowerOpen spec. - (PowerPC SI*SI->DI multipliers): Add appropriate define_splits. - - * rs6000/t-{,x}newas (MULTILIB*): Don't build power2 or 601 - specific libraries. - -Tue Dec 26 21:52:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold_convert): When converting a NaN to - another type, change the type of the node before returning it. - -Mon Dec 25 17:12:10 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-typeck.c (mark_addressable): Fix error in last change. - -Sun Dec 24 22:19:49 1995 Jeffrey A. Law <law@cygnus.com> - - * pa.c (output_function_epilogue): Use assemble_integer rather - than calling ASM_OUTPUT_INT directly. - * pa.h (ASM_OUTPUT_INT): Use labels for everything in the - exception table section. - - * pa.c (print_operand): Don't call fprintf to output a register - name. Use fputs instead. - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding - on the section name. - -Sun Dec 24 17:46:03 1995 Markus Theissinger <Markus.Theissinger@gmd.de> - - * toplev.c (main): Add -ax option. - * gcc.c (struct compilers): Likewise. - * final.c (end_final): Extended header increased to 11 words. - (profile_after_prologue): FUNCTION_BLOCK_PROFILER uses - count_basic_blocks instead of profile_label_no. - - * libgcc2.c (struct bb): Add flags field. - (HAVE_POPEN): Test new define. - (struct __bb, struct bb_{edge,func}): New structs. - (__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret, - (__bb_trace_func{,_ret},gopen,gclose): New functions. - - * sparc.h, i386.h, m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): - Extension for -ax option (profile_block_flag == 2). - (MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros. - (FUNCTION_BLOCK_PROFILER_EXIT): New macro. - * sparc.c (output_function_epilogue), i386.c (function_epilogue): - Use FUNCTION_BLOCK_PROFILER_EXIT. - * m68k.c (output_function_epilogue): Likewise. - * xm-sparc.h: Define HAVE_POPEN. - -Sun Dec 24 06:50:30 1995 Barrett Richardson (barrett@iglou.com) - - * floatlib.c (__divdf3): Rewrite to do software divide of two - doubles instead of using __divsf3. - -Sun Dec 24 06:38:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * rs6000.md (movdf): Don't copy a word at a time; nearly always loses. - - * c-tree.h (DECL_C_BIT_FIELD): New macro. - * c-decl.c (finish_struct): Set it when set DECL_BIT_FIELD. - * c-typeck.c (mark_addressable, case COMPONENT_REF): - Give error if taking address of a bit field. - - * gcc.c (unused_prefix_warning): Include machine_suffix if - require_machine_suffix. - (warn_B, warn_std, warn_std_ptr): New variables. - (process_commands): Use them and NULL_PTR as WARN arg to add_prefix. - - * gcc.c (process_command): Give error for -c with -o and - multiple compilations. - (handle_braces): Rename variable "pipe" to "pipe_p". - - * expr.h (clrstr_optab): New declaration. - (clear_storage): New parm, ALIGN. - * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): New macro. - * genopinit.c (optabs): Add "clrstr%a%". - * optabs.c (init_optabs): Initialize clrstr_optab. - * expr.c (struct clear_by_pieces): New structure. - (clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions. - (clrstr_optab): New optab. - (clear_storage): Rework to try to use clear_by_pieces, then - new clrstr insn, then library call. - (store_constructor): Track if target is already cleared. - Clear target first if CONSTRUCTOR is mostly zeros. - Don't write zeros if target has been cleared. - Add new arg to clear_storage call. - (expand_expr, case CONSTRUCTOR): Don't put static constructor - in memory if mostly zero. - * i386.md (clrstrsi): New pattern and associate anonymous pattern. - -Sat Dec 23 12:21:53 1995 Jeffrey A. Law <law@cygnus.com> - - * pa.c (output_move_double): Correctly identify and handle - overlapping moves. - * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr cases. - (movdf patterns): Likewise. - -Fri Dec 22 17:29:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_constructor): Don't call change_address on REG. - (expand_expr, case CONSTRUCTOR): Likewise. - - * mips.c (expand_block_move): Preserve MEM flags in call to - movstrsi_internal. - - * pa.c (emit_move_sequence): Don't try to set REGNO_POINTER_FLAG - for a SUBREG. - - * reload.c (find_valid_class): New function. - (push_reload): Use it in cases where a SUBREG and its contents - both need to be reloaded. - - * toplev.c (rest_of_compilation): Never defer functions that - contain nested functions. - -Fri Dec 22 15:55:00 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (function units): Add 403 support which deleted - by accident on Nov 21st. Mark all compares from 602, 603, 604, - 620, 403, like was done for rios{1,2} and 601 as needing the bpu, - so that compares are hoisted far enough branches for zero cycle - branch support. - -Fri Dec 22 15:13:47 1995 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.h (TARGET_UNROLL_STRLEN): New macro. - * i386.c (output_strlen_unroll): New function. - * i386.md (strlensi): New pattern. - -Thu Dec 21 18:53:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * /gnu.h (GNU_CPP_PREDEFINES): Add missing space after -Amachine(CPU). - -Thu Dec 21 12:23:42 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure ({powerpc,rs6000}*): Change --enable-cpu to --with-cpu. - * rs6000.c (rs6000_select): Likewise. - - * rs6000/aix41.h (LINK_SPEC): Do not pass -bexport to the linker - if -g and -shared. - -Wed Dec 20 11:23:39 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure ({powerpc,rs6000}-ibm-aix*): Merge these two into the - same case statement. Aix 4 now generates -mcpu=common by default. - ({powerpc,rs6000}*): Add support for --enable-cpu=<value> to - select the default cpu to compile for. - - * rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common default behavior. - (PROCESSOR_DEFAULT): Likewise. - (MULTILIB_DEFAULTS): Set mcpu=common. - - * rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not defined. - (PROCESSOR_COMMON): Set this to PROCESSOR_601. - (PROCESSOR_POWERPC): Set this to PROCESSOR_604. - (TARGET_OPTIONS): Add -mtune= switch. - (rs6000_select): New structure to hold -mcpu=, -mtune= switches - and the result of configuring --enable-cpu=. - (OVERRIDE_OPTIONS): Pass TARGET_CPU_DEFAULT to - rs6000_override_options. - - * rs6000.c (rs6000_cpu_string): Delete global variable. - (rs6000_select): Define new global variable. - (rs6000_override_options): Take default_cpu argument, and provide - support for it and -mtune= in addition to -mcpu=. - - * rs6000/{aix{3newas,41},lynx,netware,powerpc}.h (ASM_SPEC): Add - support for -mcpu=power2. - * rs6000/{rs6000,sysv4}.h (ASM_SPEC): Likewise. - - * rs6000/{aix41,eabiaix,eabile,lynx,powerpc}.h (CPP_SPEC): Make - sure all -mcpu=xxx targets are supports. - * rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Likewise. - - * rs6000/t-x{newas,rs6000}: New files to be used when making a - cross compiler, to prevent libgcc1-test from being made. - - * rs6000/t-{x,}newas (MULTILIB_*): Build multlilib libraries for - power, power2, 601, powerpc, and common mode processors. - - * rs6000/aix41ppc.h: Delete, no longer used. - -Tue Dec 19 18:31:21 1995 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_reg_names, mips_sw_reg_names, mips_regno_to_class): - Add entry for new RAP reg. - * mips.h (FIRST_PSEUDO_REGISTER): Increment. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES, - DEBUG_REGISTER_NAMES): Add entry for new RAP reg. - (RAP_REG_NUM, RETURN_ADDRESS_POINTER_REGNUM): New macros. - (RETURN_ADDR_RTX): Define. - (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): - Add RETURN_ADDRESS_POINTER_REGNUM support. - * emit-rtl.c (return_address_pointer_rtx): New global variable. - (gen_rtx, init_emit_once): Add support for it. - -Tue Dec 19 15:08:31 1995 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c: Remove auto_export functionality. - -Tue Dec 19 10:57:23 1995 Kim Knuttila <krk@cygnus.com> - - * ppc-asm.h: Do not compile the register macros under winnt. - -Mon Dec 18 19:31:23 1995 Adam Fedor <fedor@wilma.Colorado.EDU> - - * objc/encoding.c (objc_alignof_type): Handle _C_PTR case. - -Mon Dec 18 18:40:34 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * combine.c (simplify_rtx, case SUBREG): For SUBREG of a constant, - use <= instead of < when comparing mode sizes. - (force_to_mode, case NOT): Use full mask inside the NOT operation. - - * expr.c (emit_block_move): When call emit_libary_call for bcopy, - pass arguments using correct types and modes. - (emit_push_insn, expand_assignment): Likewise. - (clear_storage, store_expr): Likewise for memset and bzero. - (store_constructor): Likewise for memset. - * optabs.c (emit_cmp_insn): Likewise for memcmp and bcmp. - * convex.c (expand_movstr_call): Likewise for memcpy. - * m88k.c (expand_block_move): Likewise for memcpy and bcopy. - * mips.c (block_move_call): Likewise for memcpy and bcopy. - * mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush. - - * c-common.c (WCHAR_TYPE_SIZE): Add a default definition. - - * sdbout.c (sdbout_symbol, case FUNCTION_DECL): Use DECL_INITIAL - instead of DECL_EXTERNAL to identify declarations. - - * svr4.h (ASM_IDENTIFY_GCC): Don't output stab here. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of above. - - * stmt.c (expand_asm_operands): Handle numeric constraints in - with the default case. - -Mon Dec 18 16:49:43 1995 John F. Carr <jfc@mit.edu> - - * expr.h (expand_mult_highpart_adjust): Declare. - -Mon Dec 18 16:39:41 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_constructor): Fix error in last change: just - copy MEM, but be sure to share address. - (expand_expr, case CONSTRUCTOR): Likewise. - -Mon Dec 18 16:22:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put leading '*' in label - string so as to not confuse dbxout.c. - -Mon Dec 18 09:44:56 1995 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__empty): An empty function used by the C++ frontend for - defaulting cleanup actions. - - * tree.c (save_tree_status, restore_tree_status): Save and restore - temporary_firstobj. - -Mon Dec 18 07:49:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (fixup_var_refs_1): Fix error in last change (when - mode of VAR is not the same as PROMOTED_MODE). - -Sun Dec 17 12:14:37 1995 Jeffrey A. Law <law@cygnus.com> - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Don't surround section names - with '$'; that confuses collect2. - (ASM_OUTPUT_SECTION_NAME): Likewise. - - * sched.c (canon_rtx): Recursively look for equivalences; - look for expressions equivalent to MEMs. - (true_dependence): Canonicalize inputs before operating - on their values. - (anti_dependence, output_dependence): Likewise. - - * jump.c (follow_jumps): Don't follow an unconditional jump - that is not a simple_jump. - - * pa.c (override_options): Make 7100 scheduling the default. - - * pa.md: Add 2nd reload peephole somehow omitted from Nov27 changes. - - * regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's - defined to avoid useless work. - - * combine.c (find_split_point): Try to split SET_DEST - just like we do for SET_SRC. - -Sun Dec 17 11:37:25 1995 Torbjorn Granlund <tege@noisy.tmg.se> - - * expmed.c (expand_mult_highpart): When doing widening multiply, - put constant in a register. - (expand_mult_highpart): When mode is word_mode use gen_highpart - instead of right shift by size. - - * expr.c (expand_expr, case MULT_EXPR): Generalize code for widening - multiply to handle signed widening multiply when only unsigned optab - is defined, and vice versa. - -Sun Dec 17 07:35:50 1995 Pat Rankin <rankin@eql.caltech.edu> - - * vax/vms.h (WCHAR_TYPE_SIZE): Define. - -Sun Dec 17 07:08:34 1995 Ronald F. Guilmette <rfg@monkeys.com>. - - * fp-test.c: New file. - -Sun Dec 17 07:06:03 1995 Peter Flass <flass@lbdc.senate.state.ny.us> - - * i370.md (cmpqi): Fix generation of literal operand of CLM instruction - to avoid double literals (=X'=F'...). - -Sun Dec 17 06:57:02 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c: Try harder not to open or stat the same include file twice. - Simplify include file names so that they are more likely to match. - E.g. simplify "./a//b" to "a/b". Represent directories with simplified - prefixes, e.g. replace "./a//b" with "a/b/", and "." with "". - (absolute_filename): New function. - (do_include): Use it. - (read_name_map): Likewise; this makes things more consistent for DOS. - (main, do_include, open_include_file): -M output now contains - operands of -imacros and -include. - (skip_to_end_of_comment): When copying a // comment, don't try to - change it to a /* comment. - (rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune. - (rescan, skip_if_group, skip_to_end_of_comment, macarg1): - If warn_comments is nonzero, warn if backslash-newline appears - in a // comment. Simplify method for finding /* /* */ comment. - (skip_if_group): Optionally warn if /* /* */ appears between # and - a directive inside a skipped if group. - (macarg): Optionally warn if /* /* */ appears in a macro argument. - (strncat, VMS_strncat, vms_ino_t, ino_t): Remove. - (INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h". - (INO_T_EQ, INO_T_HASH): New macros. - (struct file_buf): New member `inc'. - (expand_to_temp_buffer): Initialize it. - (struct file_name_list): New member `inc'. - (struct file_name_list): New member `st'. - c_system_include_path is now 1 if not 0. - fname is now an array, not a pointer. - (struct include_file): New members `next_ino', `deps_output', `st'. - Remove members `inode' and `dev'; they are now in `st'. - (INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE. - (include_hashtab): Rename from include_hash_table. - (include_ino_hashtab): New variable. - (main): Store file status in struct stat, not in long and int pieces. - Use base_name to strip prefixes from file names. - When printing directory prefixes, omit trailing / and print "" as ".". - Fatal error if the input file is a directory. - (main, path_include): Regularize operands of -include, -imacros, - -isystem, -iwithprefix, and -iwithprefixbefore. - Regularize default include directories. - (do_include): - Allocate dsp with alloca, since fname is now dynamically allocated. - Use -3 to represent a never-opened file descriptor. - Make copy of file name, and simplify the copy. - Use base_name to identify the end of fname's directory. - Do not prepend dir for "..." if it matches the search list's first dir. - open_include_file now subsumes redundant_include_p and lookup_import. - Use bypass_slot to remember when to skip directories when including - a file that has already been seen. - Instead of using 0 to represent the working directory, and "" - to represent a directory to be ignored, use "" for the former, - and assume the latter has been removed before we get here. - Assume the directory prefixes have already been simplified. - Report as errors all open failures other than ENOENT. - Fatal error if fstat fails. - Use new deps_output member to avoid printing dependencies twice. - (bypass_hashtab): New variable. - (do_include, open_control_file, record_control_macro): New convention: - control_macro is "" if the file was imported or had #pragma once. - (pragma_once_marker): Remove. - (redundant_include_p, include_hash, lookup_include, lookup_import, - add_import, file_size_and_mode): Remove; subsumed by open_include_file. - (skip_redundant_dir_prefix): Remove; subsumed by simplify_filename. - (is_system_include, read_name_map, remap_include_file): - Assume arg is a directory prefix. - (base_name, simplify_filename, remap_include_file, - lookup_ino_include, new_include_prefix): New functions. - (open_include_file): New arguments `importing' and `pinc'. - Move filename mapping into new remap_include_file function. - First try to find file by name in include_hashtab; - if that doesn't work, open and fstat it and try to find it - by inode and dev in include_ino_hashtab. - (finclude): Get file status from inc->st instead of invoking fstat. - Store inc into fp->inc so that record_control_macro doesn't - need to do a table lookup. - (finclude, record_control_macro): Accept struct include_file * - instead of char * to identify include file. All callers changed. - (check_precompiled): Get file status from new argument `st'. - (do_pragma): Output at most one warning about #pragma implementation. - Always return 0 instead of returning garbage sometimes. - (do_pragma, hack_vms_include_specification): - Use base_name for consistency, and remove redundant code. - - From Per Bothner: - Unify the 3 separate mechanisms for avoiding processing - of redundant include files: #import, #pragma once, and - redundant_include_p to use a single more efficient data structure. - (struct file_name_list): Remove no-longer needed field control_macro. - (dont_repeat_files, all_include_files): Remove, no longer used. - (struct import_file): Renmed to struct include_file, moved earlier - in file, renamed field name to fname, and added control_macro field. - (pragma_once_marker): New constant. - (import_hash_table): Renamed to include_hash_table. - (import_hash): Renamed to include_hash. - (IMPORT_HASH_SIZE): Renamed to INCLUDE_HASH_SIZE. - (main, path_include): Don't clear removed control_macro field. - (lookup_include): New function - look up fname in include_hash_table. - (redundant_include_p): Re-write to use lookup_include. - (lookup_import, record_control_macro): Likewise. - (add_import): Defer fstat to caller. Combine two xmallocs into one. - (do_once): Use pragma_once_marker in include_hash_table. - (do_pragma): Re-implement to scan include_hash_table. - (do_include): Use new lookup_include and add_import. - -Sun Dec 17 06:45:43 1995 John F. Carr <jfc@mit.edu> - - * configure (savesrcdir): Do not create paths with trailing "/.". - - * combine.c (try_combine): When checking for two sets of the same - register in a split insn, also test for setting a ZERO_EXTRACT, - STRICT_LOW_PART, or SUBREG. - -Sun Dec 17 06:37:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (push_secondary_reload): Don't strip paradoxical SUBREG - if reload_class is CLASS_CANNOT_CHANGE_SIZE. - -Sat Dec 16 18:24:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_assignment): Fix alignment parm in emit_block_move. - -Sat Dec 16 18:16:08 1995 John Hassey (hassey@rtp.dg.com) - - * local-alloc.c (optimize_reg_copy_2): Don't attempt - optimization if destination register dies. - -Sat Dec 16 08:31:16 1995 Paul Eggert <eggert@twinsun.com> - - * fold-const.c (fold): Don't record overflow when negating - unsigned constants. - -Sat Dec 16 07:45:11 1995 Gran Uddeborg (uddeborg@carmen.se) - - * configure (i[3456]-*-isc, gas, stabs): Remove crt* from extra_files - -Sat Dec 16 07:03:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * stor-layout.c (layout_record): When PCC_BITFIELD_TYPE_MATTERS, - compute bitpos using field_size % type_align instead of field_size. - - * fixincludes (stdio.h): Fix return type of fread and fwrite - on sysV68. - -Sat Dec 16 06:57:14 1995 Thomas Lundqvist (d0thomas@dtek.chalmers.se) - - * function.c (fixup_var_refs_1): Fix two incorrect calls to single_set. - -Fri Dec 15 22:30:27 1995 Torbjorn Granlund <tege@noisy.tmg.se> - - * i386.h (REGISTER_MOVE_COST): Simplify. - -Fri Dec 15 22:30:27 1995 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.h (TARGET_CPU_DEFAULT*, PROCESSOR_*, - TARGET_{LEAVE,386_ALIGNMENT,PUSH_MEMORY,ZERO_EXTEND_WITH_AND, - DOUBLE_WITH_ADD,BIT_TEST}): New macros. - * i386.c (ix86_cpu*, ix86_isa*): New global variables. - (override_options): Add -mcpu and -misa support - * i386.md: Use TARGET* macros. - * i386/dgux.{c,h}: New files. - * m88k/t-dgux: (GCC_FOR_TARGET, T_CFLAGS): New macros. - * m88k/t-dguxbcs: New file. - * m88k/x-{dgux,dguxbcs}: (GCC_FOR_TARGET, X_CFLAGS): Removed. - -Fri Dec 15 18:41:50 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (sys/wait.h): Add forward declaration of struct rusage - on AIX 3.2.5. - -Fri Dec 15 18:39:36 1995 Marco S Hyman (marc@dumbcat.sf.ca.us) - - * xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Defined. - -Fri Dec 15 18:36:42 1995 Gran Uddeborg (uddeborg@carmen.se) - - * i386/svr3dbx.h (DO_GLOBAL_DTORS_BODY): Delete; obsolete. - -Fri Dec 15 18:21:34 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/i386iscgas.h, i386/t-iscscodbx: Deleted; long dead. - -Fri Dec 15 10:01:27 1995 Stan Cox <coxs@dg-rtp.dg.com> - - * configure (target_cpu_default) Set for 486/586/686 - (m88k-dg-dgux) Use t-dguxbcs instead of x-dguxbcs - (i*86*) Change [345] to [3456] - (i[3456]86-dg-dgux) Added - * Makefile.in (out_object_file) Add MAYBE_TARGET_DEFAULT - -Fri Dec 15 08:05:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (init_temp_slots): New function. - (init_function_start): Code moved to new function and called here. - * toplev.c (rest_of_compilation): Call init_temp_slots. - - * expmed.c (store_bit_field): Don't use insv for BLKmode value. - (store_split_bit_field): Set total_bits to BITS_PER_FOR for - BLKmode value. - -Fri Dec 15 06:35:36 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * xcoffout.h (DBX_STATIC_BLOCK_END): Use macro arguments. - (xcoff_begin_function_line, xcoff_current_function_file): Remove - unused extern declarations. - (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use macro argument. - * xcoffout.c (xcoff_begin_function_line): Make static. - (xcoff_inlining): Likewise. - (xcoff_current_function_file): Likewise. - (xcoff_output_standard_types): Remove TARGET_64BIT dependencies from - int and unsigned int. - -Mon Oct 16 12:25:52 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * fix-header.c: Support different kinds of functions (ANSI and - Posix1). Enable ANSI proptotypes if __STRICT_ANSI__. - (namelist_end): Removed. - (std_include_table): Divide up functions into kinds. - (add_symbols): New function. - (read_scanfile, write_rbrac, main): Use new data structures. - -Thu Dec 14 19:17:12 1995 Torbjorn Granlund <tege@noisy.tmg.se> - - * rs6000.md (umulsidi3): New pattern. - -Thu Dec 14 18:08:59 1995 Torbjorn Granlund <tege@noisy.tmg.se> - - * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Only reject - larger-than-HOST_BITS_PER_WIDE_INT modes for general constants, - not for powers-of-2. - - * i960.md (andsi3): Match op2 with logic_operand, change constraints - accordingly. Output andnot for negative op2. - (iorsi3, xorsi3): Analogous changes. - * i960.c (logic_operand): New function. - (i960_print_operand): Handle code `C'. - * i960.h (PREDICATE_CODES): Add logic_operand. - (CONST_OK_FOR_LETTER_P): Handle `M'. - * i960.md: Move all plain logical patterns together. - * i960.h (SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate. - - * clipper.md (untyped_call): New pattern. - - * m68k.md (ashrsi_31): New pattern. - -Thu Dec 14 17:22:14 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (output_move_double): Extract DFmode constants using - REAL_VALUE_TO_TARGET_DOUBLE. - -Thu Dec 14 15:05:13 1995 Doug Evans <dje@cygnus.com> - - * Makefile.in (distclean): Delete float.h. - * configure: Set CROSS_FLOAT_H from float_format. - * config/float-i64.h: New file. - * config/float-i32.h: New file. - * config/float-vax.h: New file. - * arm/cross-float.h: Delete. - * arm/t-semi (CROSS_FLOAT_H): Delete. - -Wed Dec 13 19:16:57 1995 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED. - -Wed Dec 13 19:12:21 1995 Paul Eggert <eggert@twinsun.com> - - * gcc.c (my_strerror): Return "cannot access" if errno is 0. - (perror_with_name, pfatal_with_name, perror_exec): Don't assume that - the returned value from my_strerror contains no '%'s. - (sys_nerr): Declare only if HAVE_STRERROR is not defined. - -Wed Dec 13 19:05:47 1995 Alan Modra (alan@spri.levels.unisa.edu.au) - - * Makefile.in (c-parse.y, objc-parse.y): Add warning that file is - automatically generated. - -Wed Dec 13 15:40:30 1995 Mike Stump <mrs@cygnus.com> - - * function.c (identify_blocks): Start with chain of BLOCKs to match - rest of backend (dbxout.c), instead of just one BLOCK. - (reorder_blocks, all_blocks): Likewise. - - * stmt.c (find_loop_tree_blocks): Pass the toplevel list of - blocks, not just the first subblock. - -Wed Dec 13 16:11:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (expand_divmod): Don't use TARGET if it's the wrong mode. - -Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com> - - * dbxout.c (struct typeinfo): Define. - (typevec): Change to be struct typeinfo *. Change other uses as - appropriate. - (struct dbx_file): Define if DBX_USE_BINCL. - (current_file): New static variable if DBX_USE_BINCL. - (next_file_number): Likewise. - (dbxout_init): If DBX_USE_BINCL, initialize new variables. - (dbxout_start_new_source_file): New function. - (dbxout_resume_previous_source_file): New function. - (dbxout_type_index): New function. - (dbxout_range_type): Use dbxout_type_index. - (dbxout_type): Likewise. If DBX_USE_BINCL, initialize new typevec - fields. - * c-lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols - == DBX_DEBUG, call dbxout_start_new_source_file and - dbxout_resume_previous_source_file when appropriate. - * sparc/sunos4.h (DBX_USE_BINCL): Define. - * svr4.h (DBX_USE_BINCL): Define. - -Wed Dec 13 06:52:40 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Do not emit .extern for - builtin functions. - -Tue Dec 12 15:37:48 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c: Replace many uses of fprintf with putc and fputs. - (output_function_profiler): Use more efficient mnemonics, target - dependent mnemonics, asm_fprintf, and reg_names array. - - * rs6000.h: Replace many uses of fprintf with putc and fputs. - - * rs6000.h (INT_TYPE_SIZE): Remove TARGET_64BIT dependency. - (MAX_INT_TYPE_SIZE): Delete. - -Tue Dec 12 13:58:57 1995 Doug Evans <dje@cygnus.com> - - * t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support. - -Sun Dec 10 18:51:21 1995 Torbjorn Granlund <tege@noisy.tmg.se> - - * rs6000.md (matcher for neg:SI (geu:SI ..)): Get ppc syntax right. - -Sun Dec 10 08:47:16 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (simplify_if_then_else): Convert "a == b ? b : a" to "a". - - * expr.c (expand_expr, case CONSTRUCTOR): If TREE_READONLY, - set RTX_UNCHANGING_P in TARGET. - (expand_expr, case COMPONENT_REF): If result is BLKmode, - use that to access object too. - -Sun Dec 10 01:06:57 1995 Jeffrey A. Law <law@cygnus.com> - - * pa.md (millicode delay slot description): Remove reference - to defunct TARGET_MILLICODE_LONG_CALLS. - -Sat Dec 9 18:05:03 1995 Jim Wilson <wilson@cygnus.com> - - * expr.c (expand_expr, case INDIRECT_REF): Correct typo in May 8 - change. - - * sh.h (ADDRESS_COST): Define. - * sh.md (subsi3): Rename to subsi3_internal. Add new define_expand - to handle subtracting a register from a constant. - -Fri Dec 8 19:17:30 1995 Mike Meissner <meissner@beauty.cygnus.com> - - * rs6000.c (input_operand): Allow any integer constant, not - just integers that fit in 1 instruction. - -Fri Dec 8 10:45:07 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm/lib1funcs.asm (RET, RETCOND): Define according to whether we - are compiling for 32 or 26 bit mode. - (all return instructions): Use RET or RETCOND as appropriate. - -Wed Dec 6 06:58:23 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (arm_gen_constant): New function. - (arm_split_constant): Split most of the functionality into - arm_gen_constant. Try to decide which way of handling the constant - is optimal for the target processor. - - * arm.c (arm_prgmode): New enum. - (target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables. - (all_procs): New table describing processors and capabilities. - (arm_override_options): New function. - (arm_return_in_memory): New function. - (arm_rtx_costs): Adjust the multiply costs to cope with processors - with fast multiplication instructions. - (output_move_double): Use the ldm/stm variants more efficiently. - Delete cases that can no-longer occur. - (output_return_instruction, output_func_epilogue): Use TARGET_APCS_32, - not TARGET_6 for determining the type of return instruction to emit. - (final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6 - to determine condition preservation. - * arm.h (CPP_SPEC): Add defines for the cpu type, hard or soft floating - point, and the APCS PC size. - (TARGET_*): Restructure. - (ARM_FLAG_*): Many new definitions for different target options, not - all of which are supported yet. - (TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit - numbers. - (prog_mode_type): New enum. - (floating_point_type): Split emulated floating point into FP_SOFT[23]. - (OVERRIDE_OPTIONS): Call arm_override_options. - (ARM_CPU_NAME): Default to NULL if not defined by a subtarget. - (BYTES_BIG_ENDIAN): Can now be set as a compilation option. - (RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions. - (GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling - for an architecture 4 target. The offsets for floating point - constants are the same as for integers if compiling TARGET_SOFT_FLOAT. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if - the size is more than 4 bytes. Restrict the range offsets for DImode; - likewise for DFmode when TARGET_SOFT_FLOAT. - (LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P - to determine if a constant address might be better in a register. - Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT. - (LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends. - * arm.md (attributes): Rearrange order, so that condition clobbering - can be automatically determined for call insns. - (attribute cpu): Add new cpu ARM7. - (attribute type): Add new type MULT. - (attribute prog_mode): New attribute. - (attribute conds): Clobbering of call insns can now be determined - using prog_mode attribute. - (function units "write_buf", "write_blockage"): Model the write buffer - as two function units, so that conflicts are avoided more often. - (funcion unit "core"): New function unit, so that elapsed cycles can - be more accurately determined. - (all anonymous patterns): Add names. - (mulsidi3, umulsidi3): New patterns available with fast multiply - variants. - (all call insns): The conds attribute is now determined automatically. - (zero_extendhisi): Expand for architecture 4 variants if appropriate. - (*zero_extendhisi_insn): New pattern. - (extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if - appropriate. - (*extendhisi_insn, *extendqihi, *extendqisi): New patterns. - (storehi_single_op): New expand. - (movhi): Handle architecture 4 expansion. - (*movhi_insn_arch4): New pattern. - (*movhi_*): Adjust applicability conditions to handle architecture 4. - (reload_outdf): Handle pre/post inc/dec reloads. - (tablejump): Delete. - (matcher for optimized tablejump): delete. - (casesi): New expand. - (casesi_internal): New pattern. - * semi.h (EXIT_BODY): Delete. - (TARGET_DEFAULT): Set to ARM_FLAG_APCS_32. - (CPP_SPEC): Define. - arm/cross-float.h: New file, used when building a cross-compiler. - * t-semi: Don't define inhibit_libc when building libgcc2.a. - (CROSS_FLOAT_H): Define. - - * arm.c ({symbol,label}_mentioned_p): New functions. - (add_constant, dump_table, fixit, find_barrier, broken_move): New - support functions for handling constant spilling. - (arm_reorg): New constant spilling pass, for putting unhandlable - constants into the rtl where we can load them efficiently. - (output_load_symbol): Delete. - * arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating - point constants any more, since arm_reorg will deal with them. - (LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a - LABEL. - (GO_IF_LEGITIMATE_ADDRESS): Recognize address expressions generated - by arm_reorg, but only after reload has completed. - (MACHINE_DEPENDENT_REORG): Define. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in - the pool, even if it might look like it. - * arm.md (*movsi_insn): Much simpified now that constants are handled - properly. - (movaddr): New expand. - (movsf, movdf): No need to force constants into the pool any more. - (*movdf_hard_insn): Much simplified. - (consttable_4, consttable_8, consttable_end, align_4): New patterns - for supporting embedded constants. - - * configure: New target arm-semi-aof. - * arm.c (strings_fpa): Use a form which is common to both GAS and - ARMASM. - (output_return_instruction, output_func_epilogue): Call - assemble_external_libcall, before trying to generate an abort call - in the assembler. - (arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming - that labels are followed by a colon. - (aof_text_section, aof_add_import, aof_delete_import, - aof_dump_imports): New functions to support ARMASM assembler - generation. - * arm/aout.h: New file. - * arm/aof.h: New file. - * arm.h (most assembler-specific defines): Move to arm/aout.h. - (CONSTANT_ADDRESS_P): Can't directly access constant strings when - generating assembler for ARMASM. - (ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler. - (ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used - with all targeted assemblers. - (ASM_OUTPUT_LABEL): Call arm_asm_output_label. - * riscix.h: Include arm/aout.h, not arm/arm.h. - * riscix1-1.h: Likewise. - * semi.h: Likewise. - * arm/semiaof.h: New file. - * arm/t-semiaof: New file. - -Mon Dec 4 22:17:37 1995 Jason Merrill <jason@yorick.cygnus.com> - - * gcc.c (LIBGCC_SPEC): Do link with libgcc when -shared. - * alpha.h (LIBGCC_SPEC): Remove. - * linux.h (LIBGCC_SPEC): Remove. - * svr4.h (LIBGCC_SPEC): Remove. - * i386/t-crtpic (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * t-pa (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * sparc/t-sunos41 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * sparc/t-sol2 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * configure (i386-linux): Use i386/t-crtpic. - - * i386/xm-sco.h: #define NO_SYS_SIGLIST. - -Mon Dec 4 21:30:37 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * sh.c (shiftcosts): For SH3, max cost of arithmetic right shift is 3. - (expand_ashiftrt): For SH3, if shift cost is more than 3, then - call gen_ashrsi3_d to use shad instruction. - -Mon Dec 4 18:29:08 1995 Jason Merrill <jason@yorick.cygnus.com> - - * c-decl.c (finish_struct): Don't mess with the type of bitfields. - -Mon Dec 4 15:28:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_constructor, record): If field is READONLY, - set RTX_UNCHANGING_P in TO_RTX. - -Mon Dec 4 12:59:33 1995 Ian Lance Taylor <ian@cygnus.com> - - * sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC unconditionally. - -Sun Dec 3 20:55:43 1995 Jeffrey A. Law <law@cygnus.com> - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections. - (ASM_OUTPUT_SECTION_NAME): Define. - -Sat Dec 2 22:19:16 1995 Jeffrey A. Law (law@cygnus.com) - - * pa.h: Replace many uses of fprintf with fputs. - * pa.c: Likewise. - * pa-pro.h: Likewise. - - * pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class - to handle trivial cases. - * pa.c (secondary_reload_class): Rework to be more efficient. - -Sat Dec 2 07:52:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (movsi): Don't split large constants in the - movsi pattern, let the define_split split it later as needed. - -Fri Dec 1 16:00:42 1995 Brendan Kehoe <brendan@cygnus.com> - - * sparc.c (output_double_int): Handle CODE_LABEL's if v9. - -Fri Dec 1 09:13:23 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * m68k.md (decrement_and_branch_until_zero): Split into a - define_expand and an anonymous define_insn. - * fx80.md (decrement_and_branch_until_zero): Ditto. - * m88k.md (decrement_and_branch_until_zero): Ditto. - -Thu Nov 30 15:02:16 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * sh.c (noncall_uses_reg): New function. - (machine_dependent_reorg): Add support for TARGET_RELAX. - (final_prescan_insn): Likewise. - * sh.h (ASM_SPEC, LINK_SPEC): Pass on -mrelax. - (RELAX_BIT, TARGET_RELAX): New macros. - (TARGET_SWITCHES): Add -mrelax. - - * sh.c (insn-attr.h): Include. - (pragma_nosave_low_regs): New global variable. - (calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't - save registers r0 through r7 for interrupt functions. - (function_epilogue): Clear pragma_nosave_low_regs. - (handle_pragma): Set pragma_nosave_low_regs if see pragma for it. - - * sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5. - Put additional .align before trapa instruction. - -Thu Nov 30 14:45:13 1995 Doug Evans <dje@canuck.cygnus.com> - - * sparc.md (seqdi_special_trunc, snedi_special_trunc, - seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG. - Make compare modes match modes of operands. - (snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64, - seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64): - New patterns. - -Thu Nov 30 12:27:22 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * genmultilib: Take a 4th argument that says are the exceptions to - the multilibs, so illegal combinations can be eliminated. - - * Makefile.in (multilib.h): Pass $(MULILIB_EXCEPTIONS) as the 4th - argument to genmultilib. - - * configure (powerpc*): Remove little endian and eabiaix versions - of the t-* files. Accept powerpc{,le}-*-sysv in addition to - *-sysv4. - (powerpc{,le}-*-eabisim): Use standard t-eabigas instead of - t-eabisim. - (powerpcle-*-{winnt3,pe}): Add support for Windows NT on PowerPC. - * rs6000/t-{eabiaix,eabisim,eabilegas,ppclegas}: Delete. - - * rs6000/{t-winnt,win-nt.h}: New files for PowerPC Windows NT. - - * ginclude/ppc-asm.h: New file to provide common macros for the - various PowerPC calling sequences. - * rs6000/eabi.asm: Use ppc-asm.h. - - * rs6000/aix3newas.h (CPP_SPEC): Add support for -mcpu=603e, 602, - and 620. - * rs6000/{aix41,powerpc,rs6000,eabi{aix,le}}.h (CPP_SPEC): Ditto. - * rs6000/sysv4{,le}.h (CPP_SPEC): Ditto. - - * rs6000/aix3newas.h (LINK_SPEC): If cross compiling, don't use - absolute paths. - * rs6000/{aix41,aixppc,rs6000}.h (LINK_SPEC): Ditto. - - * rs6000/eabi.h (INVOKE__main): Don't define any more. - (ASM_OUTPUT_INT): Move to sysv4.h. - ({STARTFILE,LIB}_SPEC): If -msim or -mmvme add the appropriate - libraries. - - * rs6000/{eabiaix,eabile,sysv4{,le}}.h (CPP_SPEC): Add support for - -mcall-{aixdesc,nt} directives. - (MULTILIB_DEFAULTS): Define. - - * rs6000/eabi{,le}sim.h (TARGET_DEFAULT, CPP_SPEC): No longer - define, simulator supports floating point. - ({STARTFILE,LIB}_SPEC): If -mvme, use mvme libraries, not - simulator libraries. - - * rs6000/{mach,netware}.h (TARGET_AIX): Define as 0. - - * rs6000/netware.h (RS6000_OUTPUT_BASENAME): Don't redefine - anymore. - (STRIP_NAME_ENCODING): Undef. - - * rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals. - (rs6000_override_options): Add 602, 603e, and 620 support. - (count_register_operand): New function to return true if operand - is the count register. - (easy_fp_constant): All constants are easy if -msoft-float. - (volatile_mem_operand): New function to return true if operand is - in volatile memory. - ({fp_,}reg_or_mem_operand): Call volatile_mem_operand. - (input_operand): Allow support for Windows NT loading SYMBOL_REFs - and LABEL_REFs from the TOC. - (function_arg_boundary): On Windows NT, any argument >= 8 bytes - must be double word aligned. - (function_arg{_advance,}): Call function_arg_boundary to determine - if we need to align to an odd register for large arguments. - Changes to accomidate new method of determining which ABI we're - adhering to. - (expand_block_move_mem): Copy RTX_UNCHANGING_P, and if - MEM_UNALIGNED_P is defined, copy that too. - (expand_block_move): Copy dest/src to registers using - copy_addr_to_reg. - (print_operand): Changes to accomidate Windows NT. - (first_reg_to_save): Ditto. - (rs6000_stack_info): Ditto. - (debug_stack_info): Ditto. - (output_{prolog,epilog,toc,function_profiler}): Ditto. - (rs6000_stack_info): Save main's arguments around __eabi call. - (svr4_traceback): Delete, current V.4 ABI no longer wants - tracebacks in this format. - (output_prolog): Call __eabi here, saving and restoring main's - args if needed. Save the toc pointer if needed. - (get_issue_rate): New function to return # of instructions a - machine can issue at once. - (rs6000_sync_trampoline): Emit instructions to synchronize the - PowerPC caches after a trampoline. - (rs6000_trampoline_{template,size}): New functions to provide - common trampoline support for all ABI's. - (rs6000_initialize_trampoline): Ditto. - - * rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define. - (processor_type): Add 602. - (PROCESSOR_COMMON): Assume current processor is a 604, not a 601. - (SUBTARGET_OPTIONS): Define if not defined. - (TARGET_OPTIONS): Include SUBTARGET_OPTIONS. - (COUNT_REGISTER_REGNUM): Define as 66. - (EXTRA_CONTRAINT): Add 'S' and 'T' for Windows NT. - (rs6000_abi): Add ABI_AIX_NODESC, ABI_NT. - (DEFAULT_ABI): Define if not defined. - (rs6000_stack): Add fields for Windows NT support. - (RS6000_SAVE_TOC): Add for Windows NT support. - (FUNCTION_ARG_BOUNDARY): Call function_arg_boundary. - (trampoline macros): Call trampoline functions in rs6000.c. - (RETURN_ADDRESS_OFFSET): Add Windows NT support. - (toc_section): Skip leading '*'. - (PREDICATE_CODES): Add volatile_mem_operand, - count_register_operand. - (MACHINE_issue_rate): Define. - (function decls): Add new function decls from rs6000.c. - - * rs6000.md (cpu attribute): Add 602. - (function units): Update to match reality better. - (calls through pointer): Rework to support Windows NT. - (movsi): Add Windows NT support. - (movstrsi): Remove match_operand predicates, since - expand_block_move does the checking. - (sync_isync): Delete. - (icbi, dcbst, sync, isync): New insns to generate named instruction - for making trampolines on eabi/V.4 properly flush the caches. - (decrement_and_branch_on_count): Rename from - decrement_and_branchsi. Add update of count in insn pattern. - - * rs6000/sysv4.h (TARGET_SWITCHES): Drop -mtraceback. Keep - -mno-traceback but don't do anything with it. Add - -mcalls-{nt,aixdesc}. Add -m{,no-}relocatable-lib. Add -msim, - -mmvme, and -memb. - (TARGET_TOC): Update for use with -mcalls-{nt,aixdesc}. - (SUBTARGET_OVERRIDE_OPTIONS): Update for new switches. - (RS6000_OUTPUT_BASENAME): Delete. - (toc_section): Add support for -mcall-{nt,aixdesc}. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. - (ASM_DECLARE_FUNCTION_NAME): Use STRIP_NAME_ENCODING instead of - RS6000_OUTPUT_BASENAME. For -mcall-{nt,aixdesc} emit the proper - function descriptor. - (ASM_SPEC): Pass appropriate -mxxx switches to the assembler based - on the -mcpu=xxx options. - (ASM_OUTPUT_INT): Move here from eabi.h. - (ENCODE_SECTION_INFO): If -mcall-{nt,aixdesc} add approriate magic - so function name has two or one leading periods. - (ASM_OUTPUT_SOURCE_LINE): Delete, use version in svr4.h. - (trampoline macros): Call trampoline functions in rs6000.c. - - * t-{eabi,ppc}{,gas} (EXTRA_HEADERS): Add ginclude/ppc-asm.h. - (LIB2FUNCS_EXTRA): Depend on eabi.S, not eabi.s. - (eabi.S): Rename from eabi.asm. - - * t-{eabi,ppc}gas (MULTILIB_*): Add -mcall-aixdesc libraries, but - don't build either little endian or -mrelocatable versions of - those libraries. - -Tue Nov 28 00:10:27 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (divsi3): Reorder so common mode does not negate - power-of-2 shift optimization. - -Wed Nov 29 22:06:11 1995 J.T. Conklin <jtc@rtl.cygnus.com> - - * configure (sparc-*-solaris2*): Add gcrt1.o to extra_parts. - * sparc/sol2.h (STARTFILE_SPEC): Link with gcrt1.o with -pg. - * sparc/sol2-g1.asm: New file, startup code for profiled - executables. - * sparc/t-sol2: Add make rule for gcrt1.o. - * sparc/gmon-sol2.c (_mcleanup): Add support for PROFDIR - environment variable. - -Wed Nov 29 21:41:13 1995 Ian Lance Taylor <ian@cygnus.com> - - * mips/abi64.h (CPP_SPEC): If -msingle-float and not - -msoft-float, pass -D__mips_single_float. Likewise for -m4650 and - not -msoft-float. - * mips/dec-bsd.h (CPP_SPEC): Likewise. - * mips/dec-osf1.h (CPP_SPEC): Likewise. - * mips/elf64.h (CPP_SPEC): Likewise. - * mips/iris3.h (CPP_SPEC): Likewise. - * mips/iris5.h (CPP_SPEC): Likewise. - * mips/mips.h (CPP_SPEC): Likewise. - * mips/netbsd.h (CPP_SPEC): Likewise. - * mips/osfrose.h (CPP_SPEC): Likewise. - * mips/t-ecoff (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, - MULTILIB_MATCHES): Add -msingle-float support. - -Wed Nov 29 17:57:48 1995 Doug Evans <dje@cygnus.com> - - * toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags - has been initialized so sets of target_flags aren't clobbered. - - * cccp.c (do_include): Recognize c:\foo as absolute path name in DOS. - - * svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling. - (MD_STARTFILE_PREFIX): Likewise. - (LINK_SPEC): Don't use absolute path names if cross compiling. - * svr3.h (LIB_SPEC): Likewise. - - * gcc.c (do_spec_1): Fix typos in version calculation. - -Wed Nov 29 14:06:13 1995 Jim Wilson <wilson@cygnus.com> - - * sh.md (ashrsi3_d): Use %0 not %1 in output pattern. - - * svr4.h (MAX_OFILE_ALIGNMENT): Define. - - * mips/iris5.h (WORD_SWITCH_TAKES_ARG): Define. - (LINK_SPEC): Add rpath. - * mips/iris6.h (LINK_SPEC): Likewise. - - * stupid.c (stupid_mark_regs): For hard registers, use regno+j - instead of just regno in MARK_LIVE_AFTER and SET_HARD_REG_BIT calls. - - * c-common.c (combine_strings): Add support for WCHAR_TYPE as short. - -Wed Nov 29 13:59:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * c-decl.c (duplicate_decls): Add new parameter different_binding_level. - Lots of changes to use new new parameter. - (pushdecl): Delete variable declared_global. New variable - different_binding_level and code to set it. Move extern/static - warning before duplicate_decls call. Don't let global typedefs - conflict with nested extern declarations. Move oldglobal test - inside code for setting IDENTIFIER_LIMBO_VALUE. - (lookup_name_current_level_global): Delete. - * c-tree.h (merge_attributes): New declaration. - * c-typeck.c (merge_attributes): New function. Move code from - common_type to here. - (common_type): Call merge_attributes instead of having inline code. - * integrate.c (integrate_decl_tree): Delete variable newd. - Always set DECL_ABSTRACT_ORIGIN before calling pushdecl. - -Tue Nov 28 21:57:04 1995 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_function_value): Add check for i > 0 when deciding - if structure should be return in FP registers. - -Tue Nov 28 12:47:52 1995 Jeffrey A. Law <law@cygnus.com> - - * pa.md (define split for (plus (reg) (large_constant)): Try - another way to handle this with only 2 insns. From Tege. - -Mon Nov 27 02:05:18 1995 Jeffrey A. Law <law@cygnus.com> - - * lib1funcs.asm, pa-pro.h, t-pro.h, xm-papro.h: New PA - target files. - * configure (hppa*-*-pro*): Use new target files. - - * toplev.c (rest_of_compilation): Always call jump_optimize - at least once. - - * pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber - the value of TREE_SYMBOL_REFERENCED. - - * pa-ghpux9.h (LINK_SPEC): Pass "-z" to the linker to enable - trap on null pointer dereference for programs built on hpux9. - * pa-hpux9.h, pa1-ghpux9.h, pa1-hpux9.h: Likewise. - - * pa.c (output_function_prologue): No longer need to keep - track of the total number code bytes when TARGET_GAS && - not TARGET_PORTABLE_RUNTIME. - * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use .NSUBSPA when - not TARGET_PORTABLE_RUNTIME. - (ASM_OUTPUT_FUNCTION_PREFIX): Define. Prefix functions with - .NSUBSPA when TARGET_GAS and not TARGET_PORTABLE_RUNTIME. - - * pa.md (symbolic high patterns): Use 'H' to print the symbolic - address so that the constant part gets rounded. - * pa.c (print_operand): Handle 'H' operand for high part of a - symbolic address with a rounded constant. - (output_global_address): New argument "rounded_constant". All - callers changed appropriately. - - * x-pa-hpux (FIXPROTO_DEFINES): Add -D_HPUX_SOURCE. - - * pa.h (CPP_SPEC): Only pass -D_HPUX_SOURCE and -D_HIUX_SOURCE if - -ansi is not present. - (CPP_PREDEFINES): Remove -D_HPUX_SOURCE and/or -D_HIUX_SOURCE. - * pa-ghiux.h (CPP_PREDEFINES): Likewise. - * pa-gux7.h (CPP_PREDEFINES): Likewise. - * pa-hiux.h (CPP_PREDEFINES): Likewise. - * pa-hpux.h (CPP_PREDEFINES): Likewise. - * pa-hpux7.h (CPP_PREDEFINES): Likewise. - * pa1-ghiux.h (CPP_PREDEFINES): Likewise. - * pa1-hiux.h (CPP_PREDEFINES): Likewise. - - * pa-hpux.h (LINK_SPEC): If -mlinker-opt, then pass -O to the - linker. - * pa-ghpux.h, pa-hpux9.h, pa-ghpux9.h: Likewise. - * pa1-ghpux9.h, pa1-hpux9.h: Likewise. - * pa.h (LINK_SPEC): Likewise. - (TARGET_SWITCHES): Add -mlinker-opt. - - * pa.md (all peepholes): Disable if TARGET_SOFT_FLOAT. - - * pa.c (pa_reorg): If TARGET_GAS, then emit insns to mark - the beginning and end of the branch table. - * pa.md (begin_brtab): New insn. Just a marker so GCC knows - where to put the .begin_brtab pseudo-op. - (end_brtab): Similarly. - - * pa.h (EXTRA_SECTIONS): Add in_ctors and in_dtors if - CTORS_SECTION_FUNCTION is defined. Else define dummy - versions of CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION. - (EXTRA_SECTION_FUNCTIONS): Add CTORS_SECTION_FUNCTION and - DTORS_SECTION_FUNCTION. - - * pa.md: Add peepholes to improve spill code generated - by reload when we run out of FP registers. - - * xm-pa.h: Remove spurious double-quote. - - * pa.md (call expanders): For indirect calls, load %r22 with the - function's address. - (indirect call patterns): No need to copy the call address into - %r22 anymore. - - * pa.c (output_cbranch): Fix buglet in length handling of - backwards branches with unfilled delay slots. - (output_bb, output_bvb, output_dbra, output_movb): Likewise. - - * pa.md: Fix off-by-one error in length computations for all - conditional branch patterns. - - * pa.h (output_bvb): Declare. - * pa.c (output_bvb): New function to output branch on variable - bit insns. - * pa.md (branch-on-variable-bit): New patterns. - - * pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all - references. - (output_millicode_call): Declare new function - * pa.md (millicode calls): Update length computation to handle - variable length millicode calls. - (call pattners): Likewise. - (indirect call patterns): Update length compuations and output - templates to handle variable length millicode calls. - (plabel_dereference): Likewise. - * pa.c (override_options): Give warnings when incompatable - options are used. - (output_mul_insn): Call output_millicode_call instead of - output_call, eliminate last argument to output_millicode_call. - (output_div_insn): Likewise. - (output_mod_insn): Likewise. - (output_call): Rewrite long call code to handle variable length - millicode calls. Eliminate support for calling mul, div and mod - millicode routines. - (output_millicode_call): New function for calling mul, div and mod - millicode routines. - - * pa.md (abssi2): New pattern. - - * pa.c (secondary_reload_class): Loads from reg+d addresses into - FP registers don't need secondary reloads. - * pa.h: Delete soem #if 0 code. Update some comments. - (EXTRA_CONSTRAINT, case 'Q'): Only accept valid memory addresses. - - * pa.h (RTX_COSTS): Tege's rewrite. - - * pa.c (hppa_legitimize_address): Generate unscaled indexed - addressing for (plus (symbol_ref) (reg)). - (emit_move_sequence): Set REGNO_POINTER_FLAG appropriately - to encourage unscaled indexing modes. - (basereg_operand): New function for unscaled index address support. - * pa.md (unscaled indexing patterns): New patterns for unscaled - index address support. - - * pa.h (MOVE_RATIO): Define. - * pa.md (movstrsi expander): Refine tests for when to use the - library routine instead of an inlined loop copy. Provide an - additional scratch register for use in the inlined loop copy. - (movstrsi_internal): Name the pattern for ease of use. Add - additional scratch register. - * pa.c (output_block_move): Greatly simplify. Use 2X unrolled - copy loops to improve performance. - (compute_movstrsi_length): Corresponding changes. - - * pa.c (print_operand): Handle 'y' case for reversed FP - comparisons. Delete some #if 0 code. Fix various comment typos. - * pa.md (fcmp patterns): Try and reverse the comparison to avoid - useless add,tr insns. - -Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu> - - * Version 2.7.2 released. - - * function.c (fixup_var_refs_1): Make pseudo for DEST - in PROMOTED_MODE unless in a SUBREG. - - * cse.c (insert): Don't put a REG into qty_const. - - * msdos/top.sed: Change version to 2.7.2. - * winnt/config-nt.sed: Likewise. - -Sun Nov 26 14:41:49 1995 Douglas Rupp (drupp@cs.washington.edu) - - * Makefile.in (stamp-objlist): Change .o to $objext. - - * alpha/win-nt.h (CPP_PREDEFINES): Set __unaligned and __stdcall - to null. - (ASM_SPEC): Add a translation for -g to -Zi. - * winnt/ld.c (main): Don't pass -g to link. - * winnt/oldnames.c: Reformat and add some new functions for gnat1. - * winnt/win-nt.h (LINK_SPEC): Pass -g to ld.exe. - Increase default stack size. - * configure ({alpha-dec,i386-ibm}-winnt3.5): Add oldnames.o - to extra_objs. - * libgcc2.c (trampoline): Add getpagesize and mprotect for WINNT. - -Sun Nov 26 14:25:26 1995 Uwe Seimet (seimet@chemie.uni-kl.de) - - * atari.h (FUNCTION_VALUE): Deleted; incorrect. - -Sun Nov 26 14:23:03 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (curses.h): Allow space or tab after bool keyword, - instead of tab or tab. - -Sun Nov 26 14:14:11 1995 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (pattern for HImode PSHM): Corrected. - (trunchiqi2, zero_extendqihi2, extendhftqf2): Corrected. - (pattern for movhi of CONST_INT to REG): Corrected. - (divmodqi pattern for DISN): Corrected. - (all shift patterns): Corrected. - - * 1750a.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Corrected. - (ASM_OUTPUT_[datatype]): Corrected datalbl[].size computation - for output of arrays. - -Sun Nov 26 14:08:57 1995 Dave Love <d.love@dl.ac.uk> - - * mips/iris5.h (NO_IMPLICIT_EXTERN_C): Define this again so - that unistd.h doesn't get badly `fixed' for C++. libg++ will now - build with this definition. - -Sun Nov 26 14:02:43 1995 Robert E. Brown (brown@grettir.bibliotech.com) - - * configure: Better workaround for Nextstep bug. - -Sun Nov 26 13:55:07 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * rs6000.md (load_multiple matcher): Fix typo in opcode. - -Sun Nov 26 13:51:08 1995 Lee Iverson <leei@Canada.AI.SRI.COM> - - * final.c (final_start_function): Move call to sdbout_begin_function - back to final_scan_insn on MIPS systems so parameter descriptions are - recognized. - -Sun Nov 26 13:43:06 1995 DJ Delorie (dj@delorie.com) - - * msdos/top.sed: Don't insert "go32". - -Sun Nov 26 12:08:23 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * combine.c (nonzero_bits, case REG): Put POINTERS_EXTEND_UNSIGNED - code before stack pointer code. Return nonzero at end of stack - pointer code. - - * sparc.h (PRINT_OPERAND_ADDRESS): Handle CONST inside PLUS. - - * Makefile.in (cppalloc.o): Add a rule to build it. - - * alpha.c (alpha_emit_set_const): Don't output SImode sequences - that rely on invisible overflow. Sign extend new when SImode. - Don't recur if new == c. Don't allow shift outside mode. Make - logical right shift be unsigned. - -Sun Nov 26 11:37:50 1995 Arne H. Juul (arnej@idt.unit.no) - - * Makefile.in (compare*): Add "|| true" to avoid spurious - failure messages from some versions of make. - -Sun Nov 26 11:20:09 1995 Dmitry K. Butskoy (buc@stu.spb.su) - - * expr.c (truthvalue_conversion): Add declaration. - -Sun Nov 12 18:09:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Version 2.7.1 released. - - * function.c (put_reg_into_stack): New arg volatile_p. - (put_var_into_stack): Call with new arg. - -Sat Nov 11 08:25:34 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * reload.c (output.h): Include it. - * Makefile.in (reload.o): Add dependence on output.h. - -Thu Nov 9 11:24:20 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * mips.h (HARD_REGNO_NREGS): If FP_REG_P, always use UNITS_PER_FPREG - to calculate number of words needed. - -Thu Nov 9 11:04:50 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.md (cmphf): Addd Base Reg with Offset address mode (LB,STB,..) - (movqi,movhi,movhf,addqi3,addhf3,subqi3,subhf3,mulqihi3): Likewise. - (mulhf3,divhf3,andqi3,iorqi3): Likewise. - (define_peephole): Remove the Base mode peepholes. Replace the - special addqi define_insn for "LIM Ra,sym,Rb" by a define_peephole. - (ashlqi3): Took out futile 0th alternative. - (lshrqi3, lshrhi3, ashrqi3, ahsrhi3): Correct case of non-constant - shift count. - - * 1750a.h (REG_ALLOC_ORDER): Define. - (REGNO_OK_FOR_BASE_P): Include stack pointer in test against - reg_renumber[REGNO]. - (ASM_OUTPUT_DESTRUCTOR): Remove bogus assembler comment. - -Thu Nov 9 11:01:33 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case ARRAY_REF): Properly convert types - of index, size, and multiplication. - -Wed Nov 8 09:00:22 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (mov*cc_{,soft_}insn): Use match_operator to test the - comparison and check that the condition code register is used. - -Wed Nov 8 08:49:35 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Undef before - including svr4.h. - -Tue Nov 7 10:58:12 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * m68k.md (subxf3): Properly name pattern. - -Tue Nov 7 10:53:09 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * libgcc2.c (__{C,D}TOR_LIST): For AIX, initialize these arrays to - 0,0, just like NeXT to avoid a warning message from the AIX 4.1 - linker. - -Tue Nov 7 09:58:34 1995 John F. Carr <jfc@mit.edu> - - * cppexp.c (cpp_lex): Correctly parse character constants. - -Tue Nov 7 09:52:15 1995 Jason Merrill <jason@yorick.cygnus.com> - - * rs6000.h (ASM_OUTPUT_{DES,CONS}TRUCTOR): Define. - -Mon Nov 6 10:27:15 1995 Doug Evans <dje@cygnus.com> - - * combine.c (force_to_mode): Fix typo. - -Sun Nov 5 18:37:02 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * m68k.md (cmpxf): Don't call force_const_mem, it looses for PIC; - get predicates right instead. Get rid of separate DEFINE_EXPAND. - (addxf3, subxf3, mulxf3, divxf3): Likewise. - (All XFmode patterns): Delete `F' and `G' constraints. - (absxf2, negxf2): Delete spurious condition on TARGET_FPA. - -Sun Nov 5 11:05:44 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (malloc.h): Fix return type of {m,re}alloc. - -Sun Nov 5 11:02:26 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * cse.c (invalidate): For a pseudo register, do a loop to - invalidate all table entries, irrespective of mode. - -Sun Nov 5 10:57:43 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (force_to_mode): Put in last change properly. - -Sun Nov 5 10:53:49 1995 Jeffrey A Law (law@cygnus.com) - - * pa.h (CONDITIONAL_REGISTER_USAGE): Make sure FP regs - get disabled regardless of PA1.0 vs PA1.1 code generation - when TARGET_SOFT_FLOAT or TARGET_DISABLE_FPREGS is on. - -Sun Nov 5 10:49:43 1995 Doug Evans <dje@lisa.cygnus.com> - - * i960.c (emit_move_sequence): Add a scratch register to - multi-reg stores. - (i960_output_move_{double,quad}): New functions. - (i960_print_operand): Handle new operand types E, F. - * i960.md (movdi matchers): Rewrite. - (store_unaligned_di_reg): New pattern. - (movti matchers): Rewrite. - (store_unaligned_ti_reg): New pattern. - -Sun Nov 5 10:45:24 1995 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (MULTILIB_DEFAULTS): Define. - * mips/elf64.h, mips/iris6.h (MULTILIB_DEFAULTS): Define. - -Sun Nov 5 10:41:48 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * reload.c (push_reload): Delete abort for RELOAD_OTHER case added - in last change. - * reload1.c (emit_reload_insns): For RELOAD_OTHER output reloads, - output the reload insns in descending order of reloads. - - * sh.md (mulsidi3-1, mulsidi3, umulsidi3-1, umulsidi3): Enable. - (smulsi3_highpart-1, smulsi3_highpart): New patterns. - (umulsi3_highpart-1, umulsi3_highpart): Likewise. - (movdi-1): Add r/x constraint. - * t-sh (MULTILIB_OPTIONS): Add m2. - (MULTILIB_DIRNAMES): Add m2. - (MULTILIB_MATCHES): Define. - - * sparc.h (RTX_COSTS, case MULT): Check for TARGET_SPARCLITE. - - * abi64.h, elf64.h (CPP_SPEC): Add -EB and -EL support. - -Sat Nov 4 10:36:26 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.md (casesi_worker): Change constraint from = to +. - - * svr4.h (ASM_IDENTIFY_GCC_AFTER_SOURCE): Delete. - (ASM_IDENTIFY_GCC): Output stab here. - -Sat Nov 4 10:32:37 1995 John Carr <jfc@mit.edu> - - * cpplib.c (finclude): Set current input pointer when input - is not a regular file. - - * cppmain.c: Define progname, required by cpplib. - -Sun Oct 29 07:48:36 1995 Michael Meissner <meissner@cygnus.com> - - * xcoffout.h (DBX_FINISH_SYMBOL): Deal with names created via - the __asm__ construct that start with a leading '*'. - * xcoffout.c (xcoff_declare_function): Likewise. - -Sun Oct 29 07:45:41 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * stupid.c (stupid_mark_refs): Handle SUBREG of pseudo-reg in a - SET_DEST same as we handle a pseudo-reg in a SET_DEST. - -Sun Oct 29 07:43:15 1995 Pat Rankin <rankin@eql.caltech.edu> - - * libgcc2.c (L_eh: __unwind_function): Implement for VAX. - * vax.h (RETURN_ADDRESS_OFFSET, RETURN_ADDR_RTX): Define. - -Sun Oct 29 12:39:08 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>a - - * i386/sol2.h (CPP_PREDEFINES): Add -D__SVR4. - -Sun Oct 29 07:14:36 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * reload.c (find_equiv_reg): Check for nonsaving setjmp. - -Fri Oct 27 15:15:56 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * Makefile.in (out_object_file): Depend on TREE_H. - -Fri Oct 27 06:42:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (call_operand): Only allow reg 27 on NT too. - * alpha.md (call_value_nt, call_nt): Force non-SYMBOL_REF - into reg 27, just like for OSF. - - * rs6000.c (struct asm_option): Changed from struct option. - (expand_block_move_mem): Remove erroneously-added line. - - * expr.c (clear_storage): SIZE is now rtx, not int. - (store_constructor): Call clear_storage with rtx. - (get_inner_reference): Convert index to precision of - sizetype, not POINTER_SIZE. - (expand_expr, case ARRAY_REF): Likewise. - * expr.h (clear_storage): Second arg is rtx, not int. - -Fri Oct 27 05:45:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * combine.c (force_to_mode, case ASHIFTRT): Properly handle - mask wider than HOST_WIDE_INT. - - * c-decl.c (pushdecl): Don't test TREE_PUBLIC when deciding whether - to register a duplicate decl in the current block. - -Thu Oct 26 21:55:39 1995 Jason Merrill <jason@sethra.cygnus.com> - - * calls.c (expand_call): Don't trust the callee to copy a - TREE_ADDRESSABLE type. - * function.c (assign_parms): Likewise. - -Thu Oct 26 19:25:05 1995 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__unwind_function): Provide a default definition for - implementations that don't yet have a function unwinder. - -Thu Oct 26 18:08:19 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (handle_directive): Don't treat newline as white - space when coalescing white space around a backslash-newline. - -Thu Oct 26 17:57:34 1995 Ian Lance Taylor <ian@cygnus.com> - - * mips-tdump.c (enum st): Define st_Struct, st_Union, and st_Enum. - (st_to_string): Handle them. - (type_to_string): Add fdp argument; pass it to emit_aggregate. - (print_symbol): Add fdp argument; pass it to type_to_string. - Handle st_Struct, st_Union, and st_Enum. - (emit_aggregate): Add fdp argument. Handle opaque types. Map - through RFD entries. - (print_file_desc): Pass FDR to print_symbol. - (main): Pass null FDR to type_to_string. - -Thu Oct 26 08:07:10 1995 Michael Meissner <meissner@cygnus.com> - - * configure (powerpc-ibm-aix[456789]*): Use rs6000/t-newas, - not rs6000/t-rs6000. - (rs6000-ibm-aix3.2.[456789]*): Likewise. - (rs6000-ibm-aix[456789]*): Likewise. - - * rs6000/t-newas: Copy from t-rs6000. - * t-rs6000: Don't build -mcpu=common multilib variants of libgcc.a. - - * rs6000.md (load_multiple insn): If address register is among regs, - don't load it with a lwsi instruction, which is undefined on PowerPC. - -Thu Oct 26 08:01:32 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * dwarfout.c (output_compile_unit_die): Handle language_string - of "GNU F77". - - * reload.c (find_reloads_address): When check for out of range constant - plus register, accept any hard register instead of just fp, ap, sp. - - * combine.c (distribute_notes): For Oct 19 change, add additional - check to verify that place has a valid INSN_CUID. - - * sparc/t-vxsparc (LIBGCC1_TEST): Define. - - * sh.md (negdi2): Use TARGET_LITTLE_ENDIAN. - - * combine.c (force_to_mode, case ASHIFTRT): Verify mode bitsize is - within HOST_BITS_PER_WIDE_INT before shifting by it. - - * final.c (final_scan_insn): When recur for instruction in delay slot, - add loop around recursive call in case the instruction gets split. - -Thu Oct 26 07:28:45 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * genrecog.c (write_tree_1): Avoid emitting '-2147483648'. - - * jump.c (duplicate_loop_exit_test): Return 0 if found - a NOTE_INSN_LOOP_CONT. - -Tue Oct 24 15:30:14 1995 Jeffrey A Law <law@cygnus.com> - - * calls.c (expand_call): Make sure valreg is at least - a full word. - -Sun Oct 22 19:35:41 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.h (INIT_SECTION_ASM_OP): Delete. - (HAVE_ATEXIT): Define. - -Sun Oct 22 07:46:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (__fixuns[xds]fsi): #undef MIN and MAX before #include - of limits.h. - - * pa.c (pa_adjust_cost): Use pa_cpu, not pa_cpu_attr. - -Sun Oct 22 07:38:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * alpha.h (CONST_OK_FOR_LETTER_P): Use 'U' for unsigned constants. - * alpha.c (alpha_emit_set_const): Likewise. - * mips.c (gen_int_relational): Likewise. - -Sun Oct 22 07:14:35 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386.c (i386_return_pops_args): Don't need a FUNDECL to - check for type attributes in FUNTYPE. - -Sat Oct 21 18:17:42 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.md (define_delay): Don't accept any instruction for an annulled - slot, only accept those for which in_delay_slot is yes. - * sh.c (find_barrier): When hi_const returns true, increment count_si - by two if found_si is true. - Always use get_attr_length to compute length of instructions. - If count_hi or count_si out of range at end, need two PREV_INSN calls - not one. - When create new label, set LABEL_NUSES to 1. - (reg_unused_after): Ifdef out code for handling labels. - (prepare_scc_operands): New local variable mode. Set it from - sh_compare_op0 or sh_compare_op1. Use it instead of SImode in - force_reg calls. - - * optabs.c (expand_float): Emit missing barrier after unconditional - jump. - -Sat Oct 21 14:16:46 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * alpha.md (cmpdf): Make conditional on TARGET_FP. - -Fri Oct 20 19:11:12 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * combine.c (distribute_notes): Delete instructions without - side effect that set a subreg of an unused register. - - * m68k.h (PREFERRED_RELOAD_CLASS): Check for !G constants - for DATA_OR_FP_REGS also. - -Fri Oct 20 18:57:10 1995 Ian Lance Taylor <ian@cygnus.com> - - * genmultilib: Output negations of unused alternatives, even if - one of the alternatives is selected. - -Fri Oct 20 18:48:50 1995 Jeff Law (law@hurl.cygnus.com) - - * integrate.c (output_inline_function): Turn on flag_no_inline - to avoid function integration once we begin writing deferred - output functions. - -Fri Oct 20 18:46:33 1995 Michael Meissner <meissner@wogglebug.tiac.net> - - * rs6000.c (float_conv_temp): Delete global variable. - (stack_temps): New static array to hold stack temps. - (offsettable_mem_operand): Delete function. - (offsettable_addr_operand, rs6000_stack_temp): New functions. - (output_epilog): Zero stack_temps. - - * rs6000.h (offsettable_addr_operand): Declare instead of - offsettable_mem_operand. - (PREDICATE_CODES): Use offsettable_addr_operand. - (float_conv_temp): Delete variable. - - * rs6000.md (move_to_float insns): Change move_to_float so - that it doesn't have a clobber of the memory address, and instead - passes the stack temp's memory address as one of the unspec args. - (fix_truncdfsi2): Use rs6000_stack_temp to allocate the temp. - (multiply, shift insns): Fix all cases of multiply and shift insns so - that the right mnemonics are used for -mcpu=common with both - -m{old,new}-mnemonics. - -Fri Oct 20 17:58:19 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * expr.c (safe_from_p, case RTL_EXPR): Return 0 if RTL_EXPR_SEQUENCE - exists. Delete code to return 0 if exp_rtl is zero. - - * function.c (init_function_start): Don't call init_insn_lengths here. - * toplev.c (rest_of_compilation): Call it here. - -Thu Oct 19 19:19:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (check_format_info): Make test for null pointer - more general. - -Thu Oct 19 18:56:16 1995 Satoshi Adachi (adachi@wisdom.aa.ap.titech.ac.jp) - - * fixincludes (stdlib.h): Be more general in edit to change - declaration of {c,m,re}alloc. - -Thu Oct 19 18:48:53 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * libgcc2.c (__udiv_w_sdiv): If we don't have sdiv_qrnnd, define - dummy variant of __udiv_w_sdiv. - -Thu Oct 19 18:45:21 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * alpha.h (ASM_SPEC): If GNU as is the default, then pass -g to - the assembler if -malpha-as. If GNU as is not the default, then pass - -g to the assembler is not -mgas. - - * combine.c (distribute_notes): When search for new place to put - REG_DEAD note, call distribute_links if this new place is between - i2 and i3, and i2 uses the register. - -Thu Oct 19 18:41:36 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (float{,uns}sidf2): Rewrite to break the conversion - process into several general insns. - (move_to_float): New insns to move 2 integer regs into a float register - through memory, taking endianess into account. Make sure that the - floating temporary is a valid address. Use one temporary for all - floats converted. - (fix_truncdfsi2): Take endianess into account. - - * rs6000.c ({low_32_bit,offsettable_mem}_operand): The function - low_32_bit_operand is now unused, delete it. New function - offsettable_mem_operand to determine if a memory address is - offsettable. - * rs6000.h ({low_32_bit,offsettable_mem}_operand): Ditto. - (PREDICATE_CODES): Ditto. - - * rs6000.{c,h} (float_conv_temp): New global. - * rs6000.c (output_epilog): Zero out float_conv_temp. - - * Makefile.in (libgcc{1,2}.a): Allow LIB{1,2}FUNCS_EXTRA files to - end in .S as well as .c and .asm. - -Wed Oct 18 17:56:45 1995 Jose Alonso (sidinf@fpsp.fapesp.br) - - * c-typeck.c (parser_build_binary_op): Warn about x^y==z, etc. - -Mon Oct 9 12:38:06 1995 Michael Meissner <meissner@cygnus.com> - - * protoize.c (reverse_def_dec_list): Silence compiler warnings. - -Mon Oct 9 12:35:54 1995 Andrew Cagney <cagney@highland.com.au> - - * ginclude/va-ppc.h (va_arg): Deal with long longs that would be - passed in the 7th register, and are passed in the stack instead. - -Fri Oct 6 13:47:10 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * alpha.h (ASM_SPEC): Add -g. - -Fri Oct 6 13:42:50 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.h (alpha_{arg,auto}_offset): Make extern. - -Fri Oct 6 13:24:43 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (RETURN_ADDRESS_OFFSET): Correct previous change. - -Fri Oct 6 13:14:43 1995 Doug Evans <dje@canuck.cygnus.com> - - * rtlanal.c (reg_set_last): Fix call to reg_set_between_p. - -Tue Oct 3 12:31:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_type, case ARRAY_TYPE): Strip MAX_EXPR - from upper bound when computing length if it just protects against - negative length. - - * expr.c (emit_move_insn_1): When doing multi-word move, show - output is clobbered. - -Tue Oct 3 12:26:07 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * cse.c (set_nonvarying_address_components, case AND): Add *pend to - end. Add constant to start instead of subtracting it. - -Tue Oct 3 12:23:28 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * combine.c (simplify_rtx): In code that attempts to simplify - conditional expressions, if the result is an NE around another - comparison, return the original expression. - - * longlong.h (mips umul_ppmm): Use `l' and `h' constraints; - remove mflo and mfhi instructions. - -Tue Oct 3 12:21:29 1995 Michael Meissner <meissner@cygnus.com> - - * ginclude/va-ppc.h (va_start, stdarg case): Call - __builtin_next_arg, and ignore the result, so that the compiler - can report the proper error, if the second argument is not the - last argument. - -Tue Oct 3 12:02:51 1995 Kohtala Marko <Marko.Kohtala@ntc.nokia.com> - - * function.c (assign_stack_temp): Adjust full_size field of - temp_slot when splitting an unused slot. - -Tue Oct 3 11:51:59 1995 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_builtin_return_addr): Break out functionality - from expand_builtin. - (expand_builtin): Call expand_builtin_return_addr. - * rs6000.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. - Offset to return address is 4 when !TARGET_64BIT and v4_call_p, - 8 otherwise. - * sparc.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. - * alpha.h (RETURN_ADDR_RTX): New definition. - -Sun Oct 1 21:23:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (staticp, case INDIRECT_EXPR): Disable case. - - * expr.c (expand_expr, case COMPONENT_REF): If getting component - of union of variable size, propagate TARGET. - -Fri Sep 29 07:48:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_expr): When storing promoted value, don't return - MEM if address contains target. - -Thu Sep 28 14:30:03 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (rescan): Expand `#if foo && #bar' without a bogus - complaint about preprocessor directives within macro args. - Expand `foo' in `foo#bar' without requiring a space before `#'. - -Thu Sep 28 14:24:26 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (anonymous DImode shift patterns setting cc0): Turned - off due to reload problems. - -Thu Sep 28 14:05:22 1995 Niklas Hallqvist (niklas@appli.se) - - * Makefile.in (USER_H): Move up so can override. - (INSTALL_ASSERT_H): New definition. - (install-headers): Use it. - (stmp-int-hdrs): Handle USER_H being empty. - * config/x-netbsd (INSTALL_ASSERT_H): Define as empty. - - * i386/netbsd.h (WCHAR_{TYPE,UNSIGNED,TYPE_SIZE}): Now int. - * m68k/netbsd.h, ns32k/netbsd.h, sparc/netbsd.h: Likewise. - * vax/netbsd.h: Likewise. - (SIZE_TYPE): Use unsigned int. - - * m68k.c (output_scc_di): Swap operands when needed. - * m68k.h (LEGITIMATE_PIC_OPERAND): Allow SYMBOL_REF_FLAG symref. - * m68k.md: Make both assembler syntaxes do the same for PIC calls. - -Tue Sep 26 16:51:44 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * mips.c (override_options): Don't allow anything but integers to - go in the HI/LO registers. - -Tue Sep 26 16:36:18 1995 John F. Carr <jfc@mit.edu> - - * c-common.c (check_format_info): Don't warn about format type - mismatch if the argument is an ERROR_MARK. - -Mon Sep 25 17:50:50 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * stor-layout.c (put_pending_sizes): New function. - * tree.h (put_pending_sizes): Add declaration. - * tree.c (save_expr): Return original for ERROR_MARK. - -Fri Sep 22 19:20:01 1995 Jeff Law (law@hurl.cygnus.com) - - * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Strip off - all NOP exprs from the source and destination nodes, then - set MEM_IN_STRUCT_P. - -Fri Sep 22 18:50:31 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi.h (ASM_OUTPUT_INT): Test for whether the integer - being output is also a constant so &sym - &sym2 is not fixed up. - -Fri Sep 22 18:49:07 1995 Peter Flass (FLASS@LBDRSCS.BITNET) - - * i370.md (cmpsi): Add missing constraints to operand 1. - -Fri Sep 22 18:27:33 1995 Torbjorn Granlund <tege@matematik.su.se> - - * i386.h (CONST_OK_FOR_LETTER_P): Make `N' match range 0..255 - for `outb' instruction. - - * pyr.h (PRINT_OPERAND): Handle code `R' for REG. - * longlong.h (pyr umul_ppmm): Use it. - -Fri Sep 22 18:24:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in (enumlist): Propagate error_mark_node. - - * c-aux-info.c (gen_type): Handle ERROR_MARK. - - * alpha.md (movdi): Avoid memory sharing problem when in reload. - -Wed Sep 20 14:27:09 1995 Peter Flass <flass@lbdrscs.bitnet> - - * mvs.h (FUNCTION_PROLOGUE): Maintain savearea forward chain - per MVS standards. - -Wed Sep 20 14:20:52 1995 Torbjorn Granlund <tege@matematik.su.se> - - * pyr.md (cmphi recognizer): Make condition match constraints. - (cmpqi recognizer): Likewise. - -Wed Sep 20 12:42:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (expand_inline_function): Do copy something setting - the result register if it is setting it to itself and has a REG_NOTE. - - * integrate.c (set_decl_{origin_self,abstract_flags}): Treat - a DECL_INITIAL of error_mark_node the same as one of NULL_TREE. - -Tue Sep 19 19:30:18 1995 Dave Pitts (dpitts@nyx.cs.du.edu) - - * i370.md (cmphi, movhi, movstricthi, extendhisi2): Correct generation - of short integer (Halfword) - ({add,sub,mul,and,ior,xor}hi3): Likewise. - * i370/mvs.h (MACROPROLOGUE): New macro. - (FUNCTION_{PRO,EPI}LOGUE): Added ability to use IBM supplied function - prologue macros. - (FUNCTION_PROLOGUE): Corrected function "in-line" prologue alignment - problems. - (ASM_DECLARE_FUNCTION_NAME): Changed alignment to FullWord. - (ASM_OUTPUT_{SHORT,ASCII}): Reworked. - -Tue Sep 19 19:22:15 1995 Douglas Rupp (drupp@cs.washington.edu) - - * winnt/win-nt.h: Renamed from winnt/win-nt.h. - (LINK_SPEC): Add -noinhibit-exec. - * {alpha,i386}/win-nt.h: Renamed from {alpha,i386}/winnt.h. - Include winnt/win-nt.h, not winnt/winnt.h. - * winnt/oldnames.c: New file. - * winnt/headers.mak (fixinc-nt.obj): Fix typo. - * winnt/config-nt.bat: Change winnt.h to win-nt.h. - * i386/config-nt.sed: Likewise. - * configure ({alpha,i386}-*-winnt3*): Likewise. - -Mon Sep 18 14:00:45 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Added R2 and R0_1. - (REG_CLASS_FROM_LETTER): New letters 't' and 'z'. - (EXTRA_CONSTRAINT): New letter 'Q'. - -Sun Sep 17 12:39:22 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.h (ASM_DECLARE_FUNCTION_NAME): If a parameter's type - has TYPE_NEEDS_CONSTRUCTING on, then it's passed by invisible - reference. - -Sat Sep 16 17:42:33 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * loop.c (find_and_verify_loops): Fix error in last change. - -Sat Sep 16 08:38:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.h (GO_IF_LEGITIMATE_ADDRESS): Disallow SYMBOL_REF for - current function. - - * cse.c (recorded_label_ref): New variable. - (insert): Set instead of cse_jumps_altered. - (cse_main): Initialize it and return 1 if nonzero at end. - -Fri Sep 15 18:26:49 1995 Torbjorn Granlund (tege@matematik.su.se) - - * fold-const (div_and_round_double): Change `carry', `quo_est', - and `scale' from plain int to `unsigned HOST_WIDE_INT'. - -Fri Sep 15 18:24:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (insert): Set cse_jumps_altered when inserting a LABEL_REF. - -Fri Sep 15 17:29:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.c (b_mode_operand): New function. - (print_operand): Added code 'Q'. - -Fri Sep 15 17:27:23 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * loop.c (find_and_verify_loops): When moving exit blocks out of - the loop, verify that the target of P is within the current loop. - - * reorg.c (fill_slots_from_thread): Update thread if it is split. - -Fri Sep 15 17:06:51 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (decrement_and_branchsi and related insns): Don't use - a "2" to select a register preference for operand 1 if operand 2 - hasn't been seen yet. - Add appropriate clobbers in decrement_and_branchsi. - Add patterns where the pc/label_ref are interchanged. - - * Makefile.in (gnucompare, stmp-multilib-sub): Remove extra . in - front of $(objext). - - * rs6000.c (output_toc): Align DF constants if STRICT_ALIGNMENT. - - * config/fp-bit.c (FLO_union_type): Add words field if double - precision to get at the separate words. - (FLO_union_type, pack_d, unpack_d): Use FLOAT_BIT_ORDER_MISMATCH - to determine when the bitfields need to be reversed, and - FLOAT_WORD_ORDER_MISMATCH when the words need to be reversed. - -Fri Sep 15 16:41:43 1995 Jeff Law (law@snake.cs.utah.edu) - - * reorg.c (fill_simple_delay_slots): When filling insn's delay slot - with JUMP_INSN, don't assume it immediately follows insn on - unfilled slots obstack. - - * Makefile.in (caller-save.o): Depend on insn-codes.h. - -Thu Sep 14 17:41:49 1995 Jim Meyering (meyering@comco.com) - - * protoize.c (do_cleaning): Don't blank out backslash-escaped - newlines in double quoted strings. - -Thu Sep 14 16:20:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * emit-rtl.c (gen_lowpart): If gen_lowpart_common fails - for a REG, load it into a pseudo and try again. - -Thu Sep 14 14:15:16 1995 Stan Cox (coxs@dg-rtp.dg.com) - - * m88k.h (VERSION_INFO1): Removed BCS reference. - * m88k/dgux.h (ASM_SPEC, *_LEGEND): - Added -mno-legend option. -mstandard no longer implies that - legend information not be produced. - (LINK_SPEC): Removed -z text - -Tue Sep 12 19:05:39 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * cccp.c (is_system_include): Call skip_redundant_dir_prefix. - -Tue Sep 12 18:58:21 1995 John Carr <jfc@mit.edu> - - * sparc.md: Change `*return "string"' to "string" in patterns. - -Tue Sep 12 18:48:47 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * function.c (put_var_into_stack): For CONCAT case, order of - placement depends on FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD. - -Tue Sep 12 18:34:10 1995 Doug Evans <dje@canuck.cygnus.com> - - * va-sparc.h (v9 varargs va_start): Handle __builtin_va_alist - being stack argument. - - * sparc.h (STATIC_CHAIN_REGNUM): Use %g5 for sparc64. - (TRAMPOLINE_TEMPLATE): Rewrite for sparc64. - (TRAMPOLINE_SIZE): Is 40 for sparc64. - * sparc.c (sparc64_initialize_trampoline): Rewrite. - -Tue Sep 12 18:30:22 1995 Douglas Rupp (drupp@cs.washington.edu) - - * cp/Make-lang.in (cc1plus) : Removed unnecessary $(exeext). - - * configure: Added code to handle gcc_extra_objs. - (alpha-winnt): Changed xmake_file to winnt/x-winnt. - Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. - (i386-winnt): Changed xmake_file to winnt/x-winnt. - Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. - * configure.bat: Changed to used common winnt/config-nt.bat. - * Makefile.in: Changed various .o's to .$(objext)'s - (specs): Removed unnecessary $(exeext). - (EXTRA_GCC_OBJS): New variable. - (clean): Removed $(LIB2FUNCS_EXTRA) - * objc/Makefile: Changed archive command for libobjc.a to use $? - for objects. - - * alpha/x-winnt, i386/x-winnt: Deleted. - * alpha/config-nt.bat, i386/config-nt.bat: Deleted. - * alpha/config-nt.sed, i386/config-nt.sed: Moved architecture - independent commands to config/winnt/config-nt.sed. - * alpha/winnt.h: Added -D_M_ALPHA to CPP_PREDEFINES. - Changed LIB_SPEC to be compatible with Gnu ld for NT. - * i386/winnt.h: Added -D_cdecl=__attribute__((__cdecl__)). - Change LIB_SPEC to be compatible with Gnu ld for NT. - * winnt/config-nt.bat, winnt/config-nt.sed: New files. - * winnt/dirent.{c,h}, winnt/fixinc-nt.c, winnt/headers.mak: New files. - * winnt/ld.c: Changed precedence of libraries to look for - libfoo.lib before libfoo.a - Changed to work like Gnu ld for NT. - * winnt/libgcc.mak, winnt/mklibgcc.c: New files. - * winnt/spawnv.c: Changed spawn function entry points to __spawn* - instead of spawn*. - * winnt/x-winnt: New file. - * fixinc-nt.sed: New file. - * fixinc.winnt: Rewritten to use fixinc-nt.sed. - - * gcc.c: Remove fix_argv kludge. - -Tue Sep 12 13:24:17 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (power subdi3 pattern): Fix pattern to have 5 - alternatives, and correct 4th alternative to match reality. - - * rs6000.md (adddi3, subdi3, negdi2): Add constraints so output reg - does not overlap one reg with one of the inputs. - -Tue Sep 12 13:09:48 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.c (output_scc_di): Fixed for non-SGS_CMP_ORDER syntax. - - * collect2.c (scan_libraries): Cast lsyms' alloca to LDSYM*. - -Tue Sep 12 13:04:12 1995 Niklas Hallqvist (niklas@appli.se) - - * stmt.c (expand_start_stmt_expr): Do stack adjust in right place. - - * stdarg.h (__gnuc_va_list): Make char * for NetBSD. - -Tue Sep 12 12:44:46 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * ginclude/va-ppc.h (va_arg): Reorganize to avoid BIND_EXPRs of - aggregate or array type. - -Tue Sep 12 12:42:27 1995 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Fix HP/UX <sys/file.h> for g++ -pedantic-errors. - - * fixincludes (curses.h): typedef bool need not take up entire line. - -Mon Sep 11 19:05:42 1995 Stan Cox (coxs@dg-rtp.dg.com) - - * c-typeck.c (digest_init): Don't recursively call digest_init - when in traditional mode if the type is invalid. - -Mon Sep 11 18:58:26 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.md: Added DLB/DSTB peepholes for HFmode. - Corrected mnemonics for HImode DSTB peephole. - -Mon Sep 11 18:48:06 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * config/fp-bit.c (FLO_union_type): Remove bitfields to set sign, - exponent, and mantissa, and add value_raw field, which is an - integer of the appropriate type. If _DEBUG_BITFLOAT is defined, - provide little and big endian bitfields. If the macro - FLOAT_BIT_ORDER_MISMATCH is defined, use explicit bitfields. - (pack_d, unpack_d): Switch to use value_raw and explicit shifts - and masks so that we don't have to worry about whether the target - is big or little endian unless FLOAT_BIT_ORDER_MISMATCH is - defined. If single precision floating point, rename to pack_f and - unpack_f, so there is no confusion in the debugger. - - * rs6000.h (rs6000_abi): New enumeration to describe which - ABI we're conforming to. - (rs6000_stack): Use abi enum, not AIX vs. V.4 boolean. - (ASM_OUTPUT_OPTIONS): New macro to print output options in .s file. - (ASM_FILE_START): Use it. - (output_options,rs6000_float_const): Declare new functions. - - * rs6000.c (output_option{,s}): New functions to write -f, -m, - and -W options to the asm file. - (rs6000_float_const): New function to generate floating point - constants portably used in signed,unsigned -> double conversions. - (rs6000_stack_info,debug_stack_info): Use ABI enumeration instead - of AIX vs. V.4 boolean. - - * rs6000.md (float{,uns}sidf2): Call rs6000_float_const to - portably build the proper floating point constant for conversions. - (movdi): Properly handle movdi of CONST_{INT,DOUBLE} on little - endian systems. - - * rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Define to be 0/1 - depending on the target endianess. - (ASM_FILE_START): Define, to call output_options in addition to - output_file_directive. - (TRAMPOLINE_SIZE): Correct size to match code. - - * rs6000/eabi{,le}sim.h (CPP_SPEC): Define the correct endian - macro for varargs/stdargs use. - -Mon Sep 11 18:41:58 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * c-decl.c (redeclaration_error_message): For TYPE_DECLs, return 0 - if TYPE_MAIN_VARIANT of old type is same as new type. - -Mon Sep 11 17:39:35 1995 Rob Ryan (robr@cmu.edu) - - * xcoffout.c (xcoff_inlining): New variable, used in place of - xcoff_current_include_file when determining whether to use - absolute line numbers. - (xcoffout_source_file): Switched to using xcoff_inlining to - determine when to emit .bi/.ei directives. - -Mon Sep 11 16:55:06 1995 Torbjorn Granlund <tege@matematik.su.se> - - * m68k.md (cmpdi): Change patterns to allocate scratch register at - RTL generation time. - (tstdi): Likewise. - -Sun Sep 3 09:03:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (size_binop): Don't pass 1 to NOTRUNC. - -Thu Aug 31 19:27:00 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * libgcc2.c: Include longlong.h. - [L_udivdi3 || L_divdi3 || L_umoddi3 || L_moddi3] (__udivmoddi4): - Define this `static inline' when defining these, so they all - remain leaf functions. - -Thu Aug 31 18:38:21 1995 Paul Eggert <eggert@twinsun.com> - - * c-parse.in (ends_in_label): New %union member. - (stmts, stmt_or_label): Use new member to avoid lexical lookahead hack. - (lineno_stmt_or_labels): New rule. - (lineno_stmt_or_label, stmt_or_label): Yield nonzero if it ends - in a label. - -Thu Aug 31 08:31:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (canon_hash, CONST_DOUBLE): Hash integer and real - differently. - * varasm.c (struct rtx_const): Add new field DI to union. - (decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE - representing an integer. - - * va-alpha.h (__gnuc_va_list): Make __offset an int. - * alpha.c (alpha_builtin_saveregs): Properly compute address - of __offset both OSF and WINNT. - - * xm-alpha.h (sbrk): Don't define here. - * gmon.c (sbrk): Define here for __alpha. - * toplev.c (sbrk): Likewise. - * mips-tfile.c (malloc, calloc, realloc): Don't define for anybody. - - * reload.c (push_reload): Add case for output reload of a SUBREG - of a hard reg when output mode is invalid for that mode. - In both that case and existing case for in, don't remove SUBREG. - * reload1.c (emit_reload_insns): Emit RELOAD_OTHER output reloads last. - -Tue Aug 29 19:16:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (decl_attribute, case A_PACKED): Check is_type first. - (decl_attribute, case A_T_UNION): Likewise. - Don't access TYPE_FIELDS if DECL is zero. - * c-decl.c (finish_struct): If transparent_union attribute - specified, validate it once we finish laying the union out. - -Mon Aug 28 05:58:03 1995 Paul Eggert <eggert@twinsun.com> - - * arm.c (arm_gen_movstrqi): Remove unused variable const_sxteen. - - * bi-lexer.c (buffer, inpoint): Remove unused variables. - - * i370/mvs.h, i370/mvs370.c (mvs_label_emitted): Renamed - from mvs_label_emited. - - * msdos/configur.bat: Fix misspelling of `maintainer-clean'. - -Sat Aug 26 06:57:17 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (push_secondary_reload): If X is a paradoxical SUBREG, - get mode and thing to reload from inside. - * reload1.c (emit_reload_insns): Do nothing for SUBREG whose - operand is unused subsequently. - In secondary reload case, if paradoxical SUBREG for output, reload - thing inside SUBREG, just like gen_reload. - -Fri Aug 25 19:26:53 1995 Paul Eggert <eggert@twinsun.com> - - * c-typeck.c (set_init_label): Don't die if an entire - brace-pair level is superfluous in the containing level. - -Fri Aug 25 19:22:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure (powerpc{,le}-eabisim): Add support for a new target - that works under the PSIM simulator. - * rs6000/eabisim.h, rs6000/eabilesim.h, rs6000/t-eabisim: New files. - - * rs6000/eabi.h (STRICT_ALIGNMENT): If little endian, always set - strict alignment to 1. - -Fri Aug 25 19:22:23 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md ({add,sub,mulsi}di3): Support both endian possibilities. - (negdi2): Likewise. - -Fri Aug 25 19:10:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.md: Added peephole definitions for Load/Store Base insns - and eliminating redundant load in an equivalent store/load sequence. - -Fri Aug 25 18:33:27 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * toplev.c (report_error_function): Don't attempt to use input - file stack to identify nesting of #include's if file name oflocation - diagnosed is not same as input_filename. - -Fri Aug 25 07:31:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (output_inline_function): Switch to function obstack. - -Mon Aug 21 13:29:54 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.c (arithmetic_comparison_operator): New function. - (print_operand): Take into account that overflow flag is not - set the same as after a compare instruction. - * i386.md (decrement_and_branch_until_zero): Use - arithmetic_comparison_operator to decide if there is comparison - suitable to be expressed by condition code from an arithmetic op. - -Mon Aug 21 13:26:13 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (adddi3, subdi3): "&" added to clobber's constraints. - -Mon Aug 21 12:11:14 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * t-sparclite (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): Define. - - * sh.md (movdi-1, movdf-1): Make conditional on reload_completed, - delete conditions checking for pseudo registers and Q addresses. - Add code to handle SUBREG. - - * local-alloc.c (wipe_dead_reg): Make a register mentioned in a - REG_INC note die after the instruction. - - * m68k.md: For all dbra pattern, change constraint from 'g' to 'd*g'. - - * Makefile.in: (underscore.c): Rename rule to stamp-under, and - touch stamp-under at the end. Add new rule for underscore.c that - depends on stamp-under. - - * sh.c (reg_unused_after): For a SEQUENCE, make sure all insns are - safe before returning 1. - - * sh.h (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN): Define. - - * sh.c (output_stack_adjust): Add new argument reg. Use it instead - of stack_pointer_rtx. - (sh_expand_prologue, sh_expand_epilogue): Pass new argument to - output_stack_adjust. - -Sat Aug 19 17:34:15 1995 Jim Wilson <wilson@phydeaux.cygnus.com> - - * sparc/gmon-sol2.c (_mcount): Define. - * sparc/sol2.h (STARTFILE_SPEC, ENDFILE_SPEC): Delete superfluous - -pg tests. - (LINK_SPEC): Add libp directories to -Y when -pg. - - * unroll.c (calculate_giv_inc): Handle increment computed by ASHIFT. - -Sat Aug 19 17:28:56 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (subdi3): Should not be commutative. - (one_cmpldi2): Fixed typo with register operand. - -Sat Aug 19 17:20:43 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (output_prolog): Fixup code to set stack pointer - if stack size > 32k. - * rs6000.md (sync_isync): Renamed from sync; added an isync insn - after the sync to properly deal with PowerPC's with split I/D caches. - * sysv4.h (INITIALIZE_TRAMPOLINE): Sync function now named sync_isync. - -Sat Aug 19 17:07:09 1995 Doug Evans <dje@canuck.cygnus.com> - - * h8300.h (STATIC_CHAIN_REGNUM): Use r3. - (REGISTER_NAMES): Print r7 as sp. - (ADDITIONAL_REGISTER_NAMES): Recognize r7. - (ASM_OUTPUT_ALIGN): Alignment is power of 2. - * h8300.md (fancy_btst,fancy_btst1): Branch target must be - operand 0 for length attribute to work. - -Sat Aug 19 16:43:11 1995 Paul Franklin <paul@cs.washington.edu> - - * assert.h: Declare __eprintf with attribute noreturn. - -Sat Aug 19 16:40:12 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * stddef.h: Don't define wchar_t if __cplusplus is defined. - -Tue Aug 15 18:01:01 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (warning_with_line): Fix typo in declaration when - !HAVE_VPRINTF and defined (__STDC__). - -Tue Aug 15 17:57:54 1995 Stephen L Moshier <moshier@world.std.com> - - * real.c (ediv, emul): Set sign bit of IEEE -0.0 result. - -Tue Aug 15 17:49:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (safe_from_p): Only safe if EXP is variable-size and X - is BLKmode. - - * stmt.c (fixup_gotos): When some fixups done, reset to point - to next instead of zeroing TREE_VALUE, which may be shared. - -Mon Aug 14 09:15:45 1995 Doug Evans <dje@canuck.cygnus.com> - - * m68k/m68kemb.h (STARTFILE_SPEC): Define as empty. - -Mon Aug 14 09:08:57 1995 Pat Rankin <rankin@eql.caltech.edu> - - * vax.c (vms_check_external): Update `pending_head' properly - when the first list element is removed. - -Mon Aug 14 09:01:32 1995 Jeffrey A. Law <law@adder.cygnus.com> - - * pa.md (call expanders): Emit a blockage insn after restoring - %r19 when generating PIC. - -Sun Aug 13 21:58:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (main): Change text of unsupported -g option warning. - -Sun Aug 13 21:47:57 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu> - - * objc/selector.c (sel_get_any_typed_uid): New function. - * objc/objc-api.h (sel_get_any_typed_uid): Declare new function. - -Sun Aug 13 21:43:17 1995 John Carr <jfc@mit.edu> - - * c-typeck.c (c_expand_asm_operands): Check for read-only output - operand where the variable is read-only but the type is not. - -Sun Aug 13 21:16:12 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (direct_return): Epilogue required if CR saved. - -Sun Aug 13 19:09:25 1995 Jeff Law (law@snake.cs.utah.edu) - - * configure (hppa1.?-hp-hpux10): Recognize and treat just like hpux9. - -Sun Aug 13 19:07:23 1995 Doug Evans <dje@canuck.cygnus.com> - - * i960.md (movdi matchers): Fix src/dest order in unaligned - reg->reg case. - -Sun Aug 13 18:49:01 1995 DJ Delorie <dj@delorie.com> - - * i386/xm-dos.h (HAVE_STRERROR): New definition. - - * msdos/configur.bat: Add missing carriage return. - -Sun Aug 13 18:40:55 1995 Andrew Cagney <cagney@highland.com.au> - - * Makefile.in (USER_H): Add va-ppc.h. - -Sun Aug 13 18:36:17 1995 M. Warner Losh <imp@village.org> - - * stmt.c (expand_asm_operands): Type '0'..'4' operands may - allow regs, so move them to the default case. - -Sun Aug 13 18:32:35 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (warning_with_line): New function. - (trigraph_pcp): Use it, to avoid reporting line number. - (vwarning_with_line): Don't report line number if zero. - -Sun Aug 13 18:23:08 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * toplev.c (vmessage): Support four arguments. - -Sun Aug 13 18:19:51 1995 Michael Meissner <meissner@cygnus.com> - - * ginclude/stdarg.h: Add ppc svr4 calling sequence support. - * ginclude/varargs.h: Likewise. - * ginclude/va-ppc.h: New file. - -Sun Aug 13 18:05:20 1995 Michael Gschwind <mike@donoussa.vlsivie.tuwien.ac.at> - - * configure (pdp-*-*): Add support for t-pdp11. - * t-pdp11: New file. - * Makefile.in (LIBGCC2_CFLAGS): Add TARGET_LIBGCC2_CFLAGS. - -Sun Aug 13 14:50:58 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * final.c (final_start_function): Always call sdbout_begin_function - and xcoffout_begin_function, even if no line number info. - - * mips/abi64.h (SETUP_INCOMING_VARARGS): In if statement, only - subtract one for stdarg. Don't subtract PRETEND_SIZE from - argument pointer when calculating stack address. - * mips.h (INITIAL_ELIMINATION_OFFSET): For 64 bit ABI, subtract - current_function_pretend_args_size when converting from argument - pointer. - * va-mips.h (va_start): For stdarg, delete separate define for - 64 bit ABI. For varargs, don't subtract 64, and only add -8 when - all argument registers are used. - - * gcc.c (main): When concat gcc_exec_prefix and - standard_startfile_prefix, put machine_suffix in the middle. - - * iris6.h (INIT_SECTION_ASM_OP): Don't define. - (LD_INIT_SWITCH, LD_FINI_SWITCH, HAS_INIT_SECTION): Don't undef. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Ifdef out. - * configure (mips-sgi-irix6, mips-sgi-irix5cross64): Define - use_collect2 to yes. - - * combine.c (move_deaths): When have a multi-reg hard register, - if don't find a note, then recur for each individual hard register. - - * cse.c (set_nonvarying_address_components): Handle addresses - which are the sum of two constant pseudo regs. - (cse_rtx_addr_varies_p): Likewise. - - * Makefile.in (gfloat.h): Add a - before the rm command. - - * loop.c (find_and_verify_loops): Set dest_loop only if - JUMP_LABEL (insn) is non-zero. - -Mon Jul 31 14:31:53 1995 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Avoid clobbering VxWorks drv/netif/if_med.h file. - -Sat Jul 29 16:21:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * collect2.c: (XCOFF_SCAN_LIBS): Define if OBJECT_FORMAT_COFF and - XCOFF_DEBUGGING_FORMAT. - (SCAN_LIBRARIES): Also define if XCOFF_SCAN_LIBS. - -Sat Jul 29 16:19:42 1995 Stuart D. Gathman <stuart@bmsi.com> - - * collect2.c (scan_libraries): Implement for AIX. - -Sat Jul 29 09:59:33 1995 Michael Gschwind <mike@lanai.vlsivie.tuwien.ac.at> - - * configure: (pdp11-*-bsd) New target. - * 2bsd.h: New file. - - * pdp11.c (output_move_double): Handle CONST_INT parameters properly. - * pdp11.h (RTX_COSTS): Fill in missing default values. - * pdp11.md (truncdfsf2, extendsfdf2, floatsidf2, fix_truncdfsi2): - Allow register parameters, required by gcc to generate correct code. - * xm-pdp11.h: Include tm.h. - -Sat Jul 29 09:55:17 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * configure (m68k-*-linux*aout*, m68k-*-linux*): New targets. - * m68k/linux-aout.h, m68k/linux.h, m68k/t-linux, m68k/xm-linux.h: New. - * m68k.md [USE_GAS]: Output `jbsr' instead of `jsr' for normal - function calls and `bsr.l' instead of `bsr' for pic function calls. - -Sat Jul 29 09:44:13 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.h (CAN_DEBUG_WITHOUT_FP): Comment out. - - * reload.c (find_reloads_address_1, case PLUS): When handle SUBREG, - add SUBREG_WORD offset to SUBREG_REG register number. - (find_reloads_address_1, case SUBREG): If a pseudo register inside - a SUBREG is larger than the class, then reload the entire SUBREG. - * sh.h (SUBREG_OK_FOR_INDEX_P): New macro. - (INDEX_REGISTER_RTX_P): Use it. - -Sat Jul 29 09:33:19 1995 Doug Evans <dje@canuck.cygnus.com> - - * mips/netbsd.h (CPP_SPEC): Fix typo. - - * configure (a29k-*-vxworks*): Define extra_parts for crt{begin,end}.o. - * t-a29k, t-a29kbase, t-vx29k ({,CROSS_}LIBGCC1): Define as empty. - -Sat Jul 29 09:15:17 1995 Jeffrey A. Law <law@rtl.cygnus.com> - - * pa/lib2funcs.asm (gcc_plt_call): Rewrite to avoid the need - for being called by _sr4export. Inline expand $$dyncall to - avoid the need for long-call and PIC support. - -Sat Jul 29 07:30:04 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * ms1750.inc (ucim.m, ucr.m, uc.m): New. - * 1750a.md (cmpqi): Account for unsigned comparisons. - (rotrqi3, rotrhi3): Reworked. - * 1750a.c (notice_update_cc): INCM and DECM set condition codes. - (unsigned_comparison_operator, next_cc_user_is_unsigned): New fcns. - * 1750a.h (FUNCTION_EPILOGUE): Local variables freed from SP, not FP. - (ASM_OUTPUT_BYTE): Make distinct from ASM_OUTPUT_CHAR. - (ASM_OUTPUT_CONSTRUCTOR): Add FILE arg to assemble_name. - -Fri Jul 28 09:40:07 1995 Jeffrey A. Law <law@rtl.cygnus.com> - - * pa.h (DO_GLOBAL_DTORS_BODY): Use an asm statement to keep optimizer - from deleting an assignment it believes dead. - -Fri Jul 28 08:47:51 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * unroll.c (unroll_loop): When preconditioning, output code to - execute loop once if initial value is greater than or equal to final - value. - - * configure (lang_specs_files, lang_options_files): Add $srcdir to - file names when adding them to these variables. - - * c-typeck.c (pointer_int_sum): Don't distribute if intop is unsigned - and not the same size as ptrop. - - * function.c (assign_stack_temp): When split a slot, set base_offset - and full_size in the newly created slot. - (combine_temp_slots): Update full_size when slots are combined. - - * sh.c (reg_unused_after): New function. - * sh.md (define_peephole): Add peepholes to use r0+rN addressing mode - for some address reloads. - - * final.c (final_start_function): If SDB_DEBUG, call - sdbout_begin_function. If XCOFF_DEBUG, call xcoffout_begin_function - instead of xcoffout_output_first_source_line. - (final_scan_insn): Don't call sdbout_begin_function or - xcoffout_begin_function. - * xcoffout.c (xcoffout_output_first_source_line): Delete. - (xcoffout_begin_function): Call dbxout_parms and - ASM_OUTPUT_SOURCE_LINE. - - * va-mips.h: Change every occurance of #if __mips>=3 to - #ifdef __mips64. - * mips/abi64.h (CPP_SPEC): Output -D__mips64 when -mips3, or -mips4, - or -mgp64. Output -U__mips64 when -mgp32. - * mips/dec-bsd.h, mips/elf64.h, mips/iris3.h: Likewise. - * mips/iris5.h, mips/mips.h, mips/netbsd.h, mips/osfrose.h: Likewise. - - * i960.c (i960_function_epilogue): Don't clear g14 for functions with - an argument block. - (i960_output_reg_insn): Likewise. - (i960_output_call_insn): Clear g14 for functions wtih an argument - block. - -Fri Jul 28 08:43:52 1995 Doug Evans <dje@canuck.cygnus.com> - - * i960.c (i960_arg_size_and_align): Correct alignment of XFmode - values in library calls. - * i960.md (movdi matchers): Support odd numbered regs. - -Fri Jul 28 08:37:25 1995 Michael Gschwind <mike@lanai.vlsivie.tuwien.ac.at> - - * pdp11.md (divhi3, modhi3, divmodhi4): Rewrite. - -Wed Jul 26 10:15:52 1995 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) - - * collect2.c (end_file): Fix typo in error message text. - -Wed Jul 26 09:22:22 1995 Jeff Law (law@snake.cs.utah.edu) - - * xm-pa.h (USE_C_ALLOCA): Always define. - * xm-pahpux.h (USE_C_ALLOCA): Likewise. - - * x-pa (CC): Remove useless definition. - * xm-pa.h (HAVE_STRERROR): Define. - (__BSD_NET2__): Define. - -Wed Jul 26 09:10:25 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * expr.c (preexpand_calls): Don't look past a CLEANUP_POINT_EXPR. - -Wed Jul 26 08:43:42 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * cse.c (cse_insn): When do special handling for (set REG0 REG1), - must delete REG_EQUAL note from insn if it mentions REG0. - - * loop.c (find_and_verify_loops): When moving blocks of code, verify - that the just destination is not in an inner nested loop. - (mark_loop_jump): Don't mark label as loop exit if it jumps to - an inner nested loop. - -Wed Jul 26 08:40:31 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (do_include, read_name_map): Omit leading "./" and - trailing "/" when it makes sense. - (skip_redundant_dir_prefix): New function. - -Wed Jul 26 08:36:41 1995 Michael Meissner <meissner@cygnus.com> - - * stmt.c (emit_nop): Do not emit a nop if there is a single - insn before a label or at the start of a function. - -Wed Jul 26 08:21:21 1995 Doug Evans <dje@cygnus.com> - - * Makefile.in (gfloat.h): Delete previous copy before updating. - -Wed Jul 26 08:18:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * Makefile.in (STAGESTUFF): Add stamp-crtS. - (crtbeginS.o, crtendS.o, stamp-crtS): New rules; just like - crtbegin.o et al, but compiled using -fPIC. - * configure (*-*-gnu*): Add crtbeginS.o and crtendS.o to $extra_parts. - -Wed Jul 26 08:11:52 1995 Michael Gschwind <mike@java.vlsivie.tuwien.ac.at> - - * pdp11.md: Fixed typos ('bhos' -> 'bhis'). - -Wed Jul 26 08:05:41 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * hp320.h, m68k.h, m68kv4.h (LEGITIMATE_PIC_OPERAND_P): Reject - CONST_DOUBLE with MEM with invalid pic address. - * reload1.c (real.h): Include it. - * Makefile.in (reload1.o): Depends on real.h. - -Wed Jul 26 07:58:22 1995 Ian Lance Taylor <ian@cygnus.com> - - * gcc.c (MULTILIB_DIRS): Provide default if not defined. - (multilib_defaults): New static variable. - (default_arg): New static function. - (set_multilib_dir): Ignore default arguments. - (print_multilib_info): Ignore entries which use default arguments. - -Tue Jul 25 10:06:09 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (allocate_stack): Don't copy the LR register to - the new stack end. - * rs6000.c (rs6000_stack_info): Correctly store the LR in - the caller's frame, not the current frame, for V.4 calls. - * rs6000/eabi.asm (_save*, _rest*): Provide all mandated V.4 save - and restore functions, except for the save*_g functions which - return the GOT address. - -Fri Jul 21 14:24:25 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/eabi.h (__eabi): Load up r13 to be the small data - pointer, unless -mrelocatable. - - * rs6000/aix3newas.h (LINK_SPEC): Import machine independent - functions if -mcpu=common. - * rs6000/milli.exp: Import file referenced in aix3newas.h. - - * rs6000/eabi.asm (__eabi): Support for fixing up user initialized - pointers when -mrelocatable is used. - * rs6000/eabi.h (ASM_OUTPUT_INT): Record any pointers initialized - by the user if -mrelocatable, to be fixed up by __eabi. - (CONST_SECTION_ASM_OP): If -mrelocatable, put read-only stuff in .data, - not .rodata, to allow user initialized pointers to be updated by __eabi. - - * rs6000.h (TARGET_SWITCHES): Add -mdebug-{stack,arg}. - (TARGET_{ELF,NO_TOC,TOC}): Add defaults for non system V. - (rs6000_stack): New structure to describe stack layout. - (RS6000_{REG_SAVE,SAVE_AREA,VARARGS_*}): New macros used to - support both AIX and V.4 calling sequences. - (FP_ARG_*, GP_ARG_*): Ditto. - (FP_SAVE_INLINE): Ditto. - (STARTING_FRAME_OFFSET): Modify to support both AIX and V.4 - calling sequences. - (FIRST_PARM_OFFSET): Ditto. - (REG_PARM_STACK_SPACE): Ditto. - (STACK_POINTER_OFFSET): Ditto. - (FUNCTION_ARG_REGNO_P): Ditto. - ({,INIT_}CUMULATIVE_ARGS): Ditto. - (LEGITIMATE_LO_SUM_ADDRESS_P): Ditto. - (FUNCTION_ARG{,_ADVANCE,PARTIAL_NREGS,PASS_BY_REFERENCE}): Ditto. - (SETUP_INCOMING_VARARGS): Ditto. - (EXPAND_BUILTIN_SAVEREGS): Ditto. - (CAN_ELIMINATE): Ditto. - (INITIAL_ELIMINATION_OFFSET): Ditto. - (LEGITIMATE_CONSTANT_POOL_{BASE,ADDRESS}_P): Ditto. - (GO_IF_{LEGITIMATE_ADDRESS,MODE_DEPENDENT_ADDRESS}): Ditto. - (LEGITIMIZE_ADDRESS): Ditto. - (CONST_COSTS): Ditto. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. - (ASM_OUTPUT_REG_{PUSH,POP}): Use reg_names to print registers. - (function declarations): Add new rs6000.c function declarations, - and delete decls of deleted functions. - (SHIFT_COUNT_TRUNCATED): Parenthesize the expression. - - * rs6000.c (init_cumulative_args): New function to support AIX - and V.4 calling sequences. - (function_arg{,_advance,partial_nregs,pass_by_reference}): Ditto. - (setup_incoming_varargs): Ditto. - (expand_builtin_saveregs): Ditto. - (rs6000_stack_info): Ditto. - (debug_stack_info): Ditto. - (direct_return): Changes to support AIX and V.4 calling sequences. - (first_reg_to_save): Ditto. - (svr4_traceback): Ditto. - (output_{prolog,epilog}): Ditto. - (print_operand): Use reg_names to print registers. Add support - for V.4 HIGH/LO_SUM address modes. - (must_save_cr): Function deleted, in rewrite of AIX/V.4 calling - sequence support. - (rs6000_sa_size): Ditto. - (rs6000_pushes_stack): Ditto. - (output_toc): Add abort if no toc. - - * rs6000.md (call insns): Add a new argument to flag a V.4 - function needs to set bit 6 of the CR. - (elf_{low,high}): New V.4 functions to create addresses via HIGH - and LO_SUM patterns. - (movsi): Use elf_{low,high} if appropriate. - (mov{si,di}_update): Name these patterns for allocate_stack. - (allocate_stack): Support for V.4 stack layout. - (sync): New pattern for V.4 trampolines to issue the sync - instruction. - - * rs6000/sysv4.h (TARGET_SWTICHES): Add -mcall-{aix,sysv}, and - -mprototype. Remove separate flag bit for -mno-toc. - (SUBTARGET_OVERRIDE_OPTIONS): Don't test for -mno-toc. - (FP_ARG_*): Adjust for V.4 calling sequences. - (RS6000_*): Ditto. - (FP_SAVE_INLINE): Ditto. - (toc_section): Eliminate use of AIX style full TOC. - (TRAMPOLINE_{TEMPLATE,SIZE}): Redefine for V.4 support. - (INITIALIZE_TRAMPOLINE): Ditto. - - * rs6000/eabi.h (CPP_SPEC): Define _CALL_SYSV or _CALL_AIX, - depending on whether -mcall-sysv or -mcall-aix was used. - * rs6000/eabile.h (CPP_SPEC): Ditto. - * rs6000/sysv4le.h (CPP_SPEC): Ditto. - - * rs6000/t-eabigas (MULTILIB_{OPTIONS,DIRNAMES}): Delete no-toc - libraries, explicit big endian libraries. - * rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Ditto. - - * rs6000/t-eabiaix: New file for eabi, using -mcall-aix as the - default. - * rs6000/eabiaix.h: Ditto. - - * rs6000/t-eabilegas: New file for eabi on little endian systems. - * rs6000/t-ppclegas: New file for V.4 on little endian systems. - - * rs6000/t-rs6000 (MULTILIB_{OPTIONS,DIRNAMES}): Build libgcc.a - for -mcpu=common. - - * configure (powerpc-*-eabiaix): New configuration for defaulting - to old-style AIX calling sequence. - (powerpcle*): Use new t-{eabi,ppc}legas files, to avoid building - explicit little endian multilib libraries. - -Fri Jul 21 13:23:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (main): Don't define sbrk #ifdef __alpha__. - -Tue Jul 18 19:23:44 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (do_include): Prefix -H output lines with spaces, not dots. - (output_dots): Remove. - - * cccp.c (main): cplusplus_comments now defaults to 1. - But clear it if -traditional or the new option -lang-c89 is given. - * gcc.c (default_compilers, cpp): Specify -lang-c89 if -ansi is given. - This turns off C++ comment recognition. - -Tue Jul 18 19:16:38 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * va-sparc.h (va_arg): Add support for 128 bit long double type. - -Tue Jul 18 19:11:18 1995 Jorn Rennecke (amylaar@meolyon.hanse.de) - - * c-common.c (decl_attributes, case A_ALIGNED): Handle is_type - case properly. - -Tue Jul 18 19:03:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold, case CONVERT_EXPR): Don't merge conversions - if outer is to handle a type with differing precision. - -Mon Jul 17 14:37:35 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vax/vms.h (HAVE_ATEXIT): Define. - (DO_GLOBAL_CTORS_BODY): Don't call atexit; let __do_global_ctors do it. - * vax/xm-vms.h (HAVE_VPRINTF): Define. - -Mon Jul 17 06:41:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c ({unsigned,signed}_type): Handle intXX_type_node types. - - * xm-alpha.h (sbrk): Add declaration. - - * convert.c (convert_to_integer): If TYPE is a enumeral type or - if its precision is not the same as the size of its mode, - convert in two steps. - - * m68k.md (tstdi, cmpdi): Use match_scratch, not match_operand. - -Fri Jul 14 19:23:42 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-decl.c (field_decl_cmp): Rewritten to make sure that a null - name always sorts low against other names. - * c-typeck.c (lookup_field): Change name comparison to match what - field_decl_cmp does. - -Fri Jul 14 18:46:24 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (movsi): Convert a CONST_DOUBLE into a CONST_INT of - the low part. - -Fri Jul 14 18:30:52 1995 Doug Evans <dje@cygnus.com> - - * toplev.c (main): Reword dwarf/c++/-g warning. - -Fri Jul 14 18:19:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.h (NO_DEFER_POP): Remove last change. - * expr.c (stor_expr): Force stack adjust before NO_DEFER_POP. - (expand_expr, case COND_EXPR): Likewise. - * stmt.c (expand_start_stmt_expr): Likewise. - -Fri Jul 14 07:58:35 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * function.c (struct temp_slot): New fields base_offset, full_size. - (assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size. - Set new fields base_offset and full_size. - (combine_temp_slots): Use new fields base_offset and full_size instead - of slot and size. - - * loop.c (loop_number_exit_count): New global variable. - (loop_optimize): Allocate space for it. - (find_and_verify_loops, mark_loop_jump): Set it. - (strength_reduce, check_dbra_loop): Use loop_number_exit_count - instead of loop_number_exit_labels. - * loop.h (loop_number_exit_count): Declare it. - * unroll.c (find_splittable_{regs,givs}, final_[bg]iv_value): Use - loop_number_exit_count instead of loop_number_exit_labels. - (reg_dead_after_loop): Check loop_number_exit_count, and fail - if the count doesn't match loop_number_exit_labels. - - * cse.c (cse_insn): Ifdef out code that pre-truncates src_folded. - - * sparc.md (sethi_di_sp64): Return null string at end. - - * function.h (struct function): Add stdarg field. - * function.c (current_function_stdarg): New global variable. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - (assign_parms): Set it. - (init_function_start): Clear it. - * output.h (current_function_stdarg): Declare it. - * i960.md: Modify all patterns which handle stores to memory to also - check current_function_varargs and current_function_stdarg. - - * reorg.c (fill_simple_delay_slots): When trying to take instruction - from after the branch, don't continue past target label. Local - variables passed_label and target_uses are no longer necessary. - -Thu Jul 13 19:30:04 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.c (output_bb): Fix error in long backwards branch with - nullified delay slot. - -Thu Jul 13 19:26:13 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * expmed.c (SHIFT_COUNT_TRUNCATED): Use #ifdef not #if. - -Mon Jul 10 20:16:44 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (rescan): Don't address outside of array when - preprocessing C++ comments. - -Mon Jul 10 20:05:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (expand_block_move): Remove #if 0 conditionals - against using larger block moves. - - * t-rs6000 (EXTRA_PARTS): Copy milli.exp to release dir. - (milli.exp): Copy to build dir from machine dependend dir. - -Mon Jul 10 20:03:29 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (matcher for (shiftable_op (cond-exp) (reg))): If - shiftable_op is minus, then subtract from zero when cond fails. - -Mon Jul 10 19:58:26 1995 John F. Carr <jfc@mit.edu> - - * sparc.h (SELECT_SECTION): Use TREE_CODE_CLASS instead of directly - referencing tree_code_type. - -Mon Jul 10 19:54:31 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * protoize.c (reverse_def_dec_list): Delete const qualifiers from - local variables, and delete casts which were casting away const. - -Mon Jul 10 19:14:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-lang.c (finish_file): Add missing parm to start_function call. - - * jump.c (jump_optimize): Pass outer_code arg to rtx_cost. - - * varasm.c (assemble_name, bc_assemble_integer): Call - bc_emit_labelref with proper args. - - * function.c (setjmp_args_warning): Remove bogus arg. - -Mon Jul 10 18:20:54 1995 Fergus Henderson (fjh@cs.mu.oz.au) - - * gcc.c (p{fatal,error}_with_name, perror_exec): Quote filename. - -Mon Jul 10 18:12:51 1995 Gran Uddeborg (uddeborg@carmen.se) - - * i386/iscdbx.h (STARTFILE_SPEC): Handle -Xp. - -Wed Jul 5 02:42:17 1995 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * cpphash.h (enum node_type): Remove unneeded and non-standard - forward declaration. - -Sat Jul 1 20:15:39 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * mips/t-mips, mips/t-mips-gas (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): - Delete. - - * sparc/sol2.h (LINK_SPEC): Revert March 16 change. Do not add -R - for each -L. - - * collect2.c (libcompare): Verify that file name extensions are valid. - Put files with invalid extensions last in the sort. - - * integrate.c (integrate_decl_tree): Set DECL_ABTRACT_ORIGIN before - pushdecl call for local variables. - -Sat Jul 1 08:13:38 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * cpplib.c (output_line_command): If not emitting #line directives - delay returning until after adjust_position has been called. - - * arm.md (mov{si,sf,df}cc): Call gen_compare_reg to generate - the condition code register. - -Sat Jul 1 06:55:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (decode_field_reference): New parm PAND_MASK. - (unextend): New parm MASK. - (fold_truthop): Pass new parms to decode_field_reference and unextend. - - * va-alpha.h (__va_tsize): Use __extension__ to avoid warning - on use of `long long'. - - * expr.h (NO_DEFER_POP): Do any pending stack adjusts. - - * recog.c (register_operand): Disallow subreg of reg not allowed to - change size. - -Thu Jun 29 05:51:57 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.md (reload addsi3): New pattern to avoid reload lossage - with register eliminations. - - * pa.c (output_cbranch): When checking for a jump to the given - insn's delay slot, handle the case where JUMP_LABEL for the - given insn does not point to the first label in a series of - labels. - (output_bb, output_dbra, output_movb): Likewise. - -Wed Jun 28 18:04:56 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.h (PIC_OFFEST_TABLE_REGNUM_SAVED): Define to %r4. - (CONDITIONAL_REGISTER_USAGE): Make it fixed when compiling - PIC code. - (INIT_EXPANDERS): Delete. - * pa.c (hppa_save_pic_table_rtx): Delete variable. - (hppa_expand_prologue): For PIC generation, copy the PIC - register into a fixed callee register at the end of the - prologue of non-leaf functions. - * pa.md (call expanders): Reload the PIC register from the - fixed callee saved register. Don't try to save the PIC - register before the call. - -Wed Jun 28 18:01:14 1995 Stan Cox (coxs@dg-rtp.dg.com) - - * m88k/dguxbcs.h (ASM_SPEC): Removed -h flag. - * m88k/dgux.h (ASM_SPEC): Likewise. - -Wed Jun 28 17:01:58 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (processor_target_table): Remove CPU name synonyms. - * rs6000.h (CPP_SPEC): Likewise. - * rs6000/sysv4.h (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - * rs6000/sysv4le.h (CPP_SPEC): Likewise. - * rs6000/eabile.h (CPP_SPEC): Likewise. - * rs6000/powerpc.h (CPP_SPEC): Likewise. - (ASM_SPEC): Set assembler target according to compiler target. - * rs6000/aix3newas.h (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - * rs6000/aix41.h (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - -Wed Jun 28 16:25:53 1995 Gran Uddeborg (uddeborg@carmen.se) - - * i386/x-isc3 (INSTALL_HEADERS_DIR): Delete; done by configure. - -Wed Jun 28 16:10:47 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * xm-rs6000.h (alloca): Extern decl added for non-GNU compiler. - -Wed Jun 28 11:31:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cpplib.c (progname): Remove definition from here. - - * final.c (final_scan_insn): Fix error in last change. - - * rtlanal.c (reg_set_p_1): Now static; add extra parm. - - * stmt.c: Delete redundant forward decls. - (expand_anon_union_decl): Correctly call expand_decl. - - * toplev.c (strip_off_ending): Strip off any ending; don't - pretend we know what valid endings are. - - * svr4.h (ASM_OUTPUT_SECTION_NAME): Don't crash if DECL is null. - - * rs6000.md ({load,store}_multiple): Don't use indirect_operand - in define_insn; use explicit MEM of register_operand instead. - -Tue Jun 27 11:42:56 1995 Stephen L Moshier <moshier@world.std.com> - - * i386/i386.c (print_operand, case `J'): Use jns for GE and js for - LT. - -Tue Jun 27 07:58:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * expr.c (expand_expr, TARGET_EXPR): Only use original_target - if !ignore. - -Tue Jun 27 07:27:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold_truthop): Commute unextend and convert on - l_const and r_const. - - * c-common.c (decl_attributes, case A_CONSTRUCTOR, A_DESTRUCTOR): - Set TREE_USED. - - * final.c (final_scan_insn): Don't call alter_cond unless - condition is on cc0. - - * stmt.c (expand_asm_operands): Handle input operands that may not - be in a register. - -Mon Jun 26 19:23:05 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm/lib1funcs.asm (L_dvmd_tls): Renamed from L_divmodsi_tools. - * arm/t-semi (LIB1ASMFUNCS): Rename _dvmd_tls from _divmodsi_tools. - -Mon Jun 26 19:18:06 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * unroll.c (find_splittable_regs): When completely unrolling loop, - check for non-invariant initial biv values. - -Mon Jun 26 19:13:54 1995 Gran Uddeborg <uddeborg@carmen.se> - - * configure (i[345]86-*-isc*): Fix misspelled "rfile" to "ifile". - -Mon Jun 26 18:58:22 1995 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_expr, case COND_EXPR): Protect the condition from - being evaluated more than once. - (do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise. - -Mon Jun 26 18:52:36 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (string.h): Fix return value for mem{ccpy,chr,cpy,set} - and str{len,spn,cspn} on sysV68. - -Mon Jun 26 06:54:50 1995 Michael Meissner (meissner@cygnus.com) - - * i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Go back to making long - double == double. - -Thu Jun 22 19:14:41 1995 Pat Rankin (rankin@eql.caltech.edu) - - * make-cc1.com (if DO_LINK): Skip c-parse.* processing when - only relinking. - (gas_message): Update to reflect current version, and give - a different message if/when no version of gas is found.xo - -Thu Jun 22 18:52:37 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm/lib1funcs.asm (___modsi3): Correctly set SIGN register for - modulo involving negative numbers. - -Thu Jun 22 18:32:27 1995 Uwe Seimet (seimet@chemie.uni-kl.de) - - * xm-atari.h (HZ): Now 100 and don't define if already defined. - -Thu Jun 22 18:26:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * calls.c (expand_call): Correctly handle returning BLKmode - structures in registers when the size of the structure is not - a multiple of word_size. - * stmt.c (expand_return): Likewise. - - * pa-gux7.h (LIB_SPEC): Undefine before redefining. - * pa-hpux.h (LIB_SPEC): Likewise. - * pa-hpux7.h (LIB_SPEC): Likewise. - - * genmultilib: Work around hpux8 /bin/sh case bug. - - * pa.h (LIB_SPEC): Define to avoid -lg. - -Thu Jun 22 18:19:09 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * expr.c (expand_expr, TARGET_EXPR): Use original_target. - - * collect2.c (locatelib): Fix parsing of LD_LIBRARY_PATH. - -Thu Jun 22 18:15:54 1995 Paul Eggert <eggert@twinsun.com> - - * configure: Create an empty Makefile.sed first, to work - around a Nextstep 3.3 bug. - -Thu Jun 22 18:03:44 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Makefile.in (STAGESTUFF): Add stamp-crt. - (crtbegin.o, crtend.o): Now depend on stamp-crt. - (stamp-crt): New rule, to actually build crt{begin,end}.o. - - * collect2.c (main): Unlink export_file before we return. - -Thu Jun 22 14:25:56 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000.h (STRIP_NAME_ENCODING): Store NAME and strlen(NAME) into - local variables; cast result of alloca to avoid compiler warnings. - -Tue Jun 20 18:25:29 1995 Douglas Rupp (drupp@cs.washington.edu) - - * alpha/config-nt.sed, i386/config-nt.sed: Edit to add - a missing $(exeext) for CCCP. - -Tue Jun 20 18:18:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * protoize.c (default_include): Use name and two ints to be - compatible with definition of INCLUDE_DEFAULTS. - -Mon Jun 19 19:24:29 1995 Ted Lemon <mellon@toccata.fugue.com> - - * mips/netbsd.h (ASM_DECLARE_FUNCTION_NAME): Don't emit function label. - -Mon Jun 19 18:34:55 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * fixincludes: Don't define wchar_t under C++. - -Mon Jun 19 17:12:41 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (collect_expansion): Work around enum bug in vax - ultrix 4.3 pcc. - * tree.c (simple_cst_equal): Likewise. - -Mon Jun 19 16:53:00 1995 Douglas Rupp (drupp@cs.washington.edu) - - * winnt/spawnv.c: New file. - -Mon Jun 19 16:30:29 1995 Glenn Brown <glenn@mars.myri.com> - - * caller-save.c (save_call_clobbered_regs): If AUTO_INC_DEC, mark - register indicated by REG_INC notes as live so they will be saved. - -Mon Jun 19 16:21:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * pa.h (PRINT_OPERAND_ADDRESS, case LOW_SUM): Fix logic bug - in last change. - -Mon Jun 19 14:11:49 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * integrate.c (integrate_decl_tree): Only set DECL_ABSTRACT_ORIGIN - if the decl returned by pushdecl is the one we started with. - - * mips.h (current_function_name): Delete declaration. - (ASM_DECLARE_FUNCTION_NAME): Don't set current_function_name. - * gnu.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - * mips.c (current_function_decl): Delete declaration. - (function_prologue): New variable fnname. Use it instead of - current_function_name. - (function_epilogue): Likewise. - -Mon Jun 19 13:13:15 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.h (ASM_OUTPUT_ASCII): Always reset line count when - starting new line. - - * scan-decls.c (scan_decls): Fix typo when resetting PREV_ID_START. - - * i386/config-nt.sed, alpha/config-nt.sed: Change version to 2.7.1. - -Mon Jun 19 13:06:14 1995 DJ Delorie (dj@delorie.com) - - * msdos/top.sed: Support new build variables. - * msdos/configur.bat: Make options.h and specs.h. - Change realclean to maintainer-clean. - -Fri Jun 16 06:54:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Version 2.7.0 Released. - - * obstack.c: Always enable this code for now. - - * alpha.c (alpha_builtin_saveregs): Use ptr_mode and conversions - when need so works for both OSF and NT. - * va-alpha.h (__va_tsize): Round to long long not long. - -Thu Jun 15 17:54:52 1995 Bdale Garbee <bdale@gag.com> - - * configure (a29k-*-coff): Synonym for a29k-*-udi. - -Thu Jun 15 17:51:21 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (assign_parms): Do all conversions in CONVERSION_INSNS. - -Thu Jun 15 17:36:49 1995 Michael Meissner <meissner@cygnus.com> - - * reg-stack.c (record_reg_life): Call record_reg_life_pat with 0 - for douse argument so that USE's created to mark variables within - blocks don't get marked as set. - -Thu Jun 15 06:28:15 1995 Dennis Glatting (dennisg@CyberSAFE.COM) - - * configure: Change one sed command to work around m68k-next bug. - -Wed Jun 14 22:14:39 1995 Jason Merrill <jason@deneb.cygnus.com> - - * collect2.c (main): Don't turn off auto_export because of -g. - (main): Ignore the argument to -o. - - * alpha.h (LINK_SPEC): Don't pass -init __main anymore. - * alpha/osf12.h (LINK_SPEC): Ditto. - * mips/iris5.h (LINK_SPEC): Ditto. - - * collect2.c (main): Place o_file after an initial .o (like crt0.o). - If we have LD_INIT_SWITCH, use init and fini functions for - executables, too. Specify the unique function names. - (write_c_file_stat): Fix the case of destructors but no constructors. - Don't include the generic-named functions for executables. - (write_c_file): If we have LD_INIT_SWITCH, always use - write_c_file_stat. - - * collect2.c (main): Also add _GLOBAL__D? to export list. - - * ginclude/iso646.h: Do nothing if compiled as C++. - -Wed Jun 14 17:39:10 1995 Roland McGrath (roland@gnu.ai.mit.edu) - - * c-common.c (format_char_info, case 'm'): Set type to void. - (check_format_info): If type is void, ignore operand. - -Wed Jun 14 17:04:10 1995 Paul F. Kunz (Paul_Kunz@SLAC.Stanford.EDU) - - * expr.c (expand_builtin_apply_args): Put back original - register save and restore order. - -Wed Jun 14 16:56:22 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/eabi.h (INVOKE__main): Define, so __eabi is called after - main's arguments are saved. - - * rs6000.c (output_prolog): Don't call __eabi here, let - compiler call it after the arguments to main are saved. - (output_{prolog,epilog}): Don't use functions under V.4 to save - and restore floating point registers. - -Wed Jun 14 16:52:12 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k/mot3300.h (PCC_BITFIELD_TYPE_MATTERS): Defined. - -Wed Jun 14 16:48:53 1995 Jerry Frain (jerry@tivoli.com) - - * Makefile.in (stage[1-4]): Correctly link `as', `ld', and `collect2'. - -Wed Jun 14 05:52:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc-act.c (hack_method_prototype): Set DECL_CONTEXT of parms. - - * expmed.c (emit_store_flag): Always set LAST. - - * c-decl.c (start_function): New parameter for attributes. - * c-tree.h (start_function): Likewise. - * c-lang.c (finish_file): Pass extra parm to start_function. - * objc-act.c (build_module_descriptor, really_start_method): Likewise. - * c-parse.in (fndef, nested_function, notype_nested_function): - Likewise. - - * function.c (assign_parms): Use convert_to_mode instead of - gen_lowpart when converting incoming parm. - -Tue Jun 13 19:10:32 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rs6000.md (decrement_and_branch): Finish last fix; update matching - constraint. - -Tue Jun 13 18:32:51 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * fold-const.c (fold): When converting a COND_EXPR to an ABS_EXPR, - get the types right for ABS_EXPR to work. - -Mon Jun 12 17:09:55 1995 Michael Tiemann (tiemann@axon.cygnus.com) - - * reorg.c (fill_simple_delay_slots): Set MAYBE_NEVER according to - code of TRIAL_DELAY, not TRIAL. - -Mon Jun 12 15:02:37 1995 Doug Evans <dje@cygnus.com> - - * configure: Restore code to make ld symlink if ! use_collect2. - - * gcc.c (link_command_spec): Undo patch of May 11. - -nostdlib implies -nostartfiles again. - * dsp16xx.h (CROSS_LINK_SPEC): Likewise. - * i386/freebsd.h (LINK_SPEC): Undo patch of May 24. - Don't pass "-e start" if nostdlib. - * i386/sun.h (LINK_SPEC): Likewise. - * m68k/sun2o4.h (LINK_SPEC): Likewise. - * m68k/sun3.h (LINK_SPEC): Likewise. - * m68k/vxm68k.h (LINK_SPEC): Likewise. - * mips/netbsd.h (LINK_SPEC): Likewise. - * config/netbsd.h (LINK_SPEC): Likewise. - * rs6000/mach.h (LINK_SPEC): Likewise. - * sparc.h (LINK_SPEC): Likewise. - * sparc/vxsparc.h (LINK_SPEC): Likewise. - - * gcc.c (link_command_spec): New argument -nodefaultlibs. - -Sun Jun 11 20:47:53 1995 Stephen L Moshier (moshier@world.std.com) - - * Makefile.in (fix-header.o): Depends on xsys-protos.h. - -Sun Jun 11 15:07:58 1995 Tim Carver (timc@ibeam.intel.com) - - * reload1.c (emit_reload_insns): Don't call HARD_REGNO_NREGS - on psuedo when clearing reg_last_reload_reg. - -Sun Jun 11 14:07:05 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md ({add,sub}di{_mem,3}): Patterns merged. - -Sun Jun 11 13:43:26 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * m68k.md (cmpdi matcher): Set cc_status before returning. - - * config/xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Define. - -Sun Jun 11 13:38:49 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * fixincludes (math.h): Keep declaration of abs on HPUX. - -Sun Jun 11 12:31:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (variable_size): Do nothing if SIZE is constant. - - * stmt.c (expand_asm_operands): See if output operand permits - register. If not, mark output addressable, call expand_operand - on it, and give error if not MEM. - - * function.c (assign_parms): Handle promotions of both - passed and nominal modes separately and insert needed conversions. - (promoted_input_arg): Return 0 if nominal and passed modes differ. - - * stmt.c (all_cases_count, case INTEGER_TYPE): Fix typo in checking - for integer bounds. - -Sat Jun 10 08:55:25 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (_floatdidf): Correctly set float sizes. - - * c-decl.c (c_decode_option, case "-Wall"): Don't set extra_warnings. - - * Makefile.in (cpplib.o, fix-header.o): Update dependencies. - (cpperror.o, cppexp.o, cpphash.o): New rules, to show .h dependencies. - -Fri Jun 9 18:06:10 1995 Doug Evans <dje@canuck.cygnus.com> - - * cse.c (cse_basic_block): Fix test for whether block ends with a - barrier. Return next insn, not 0, if block ends in a barrier. - -Fri Jun 9 17:58:29 1995 Paul Eggert <eggert@twinsun.com> - - * fold-const.c (lshift_double): Replace `&' with `%' to fix typo. - ([lr]shift_double): Truncate shift count only if SHIFT_COUNT_TRUNCATED. - Remove unnecessary `count >= prec' test. - - * cexp.y (left_shift): Ignore integer overflow. - - * cexp.y (skip_evaluation): New variable. - (&&, ||, ?:): Increment it in unevaluated subexpressions. - (/, %, integer_overflow): Suppress diagnostics if skip_evaluation != 0. - (yyerror): Clear skip_evaluation. - -Fri Jun 9 17:49:05 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * m68k.md (tstdi): Rewrite. - -Fri Jun 9 17:28:55 1995 Per Bothner <bothner@cygnus.com> - - * scan-decls.c (scan_decls): Handle declarations with - multiple comma-separated declarators. - -Thu Jun 8 19:16:12 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (mov[sd]f expands): Don't allow fp constants in pseudos - when TARGET_SOFT_FLOAT. - -Thu Jun 8 19:11:43 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * expmed.c (store_split_bit_field): When adjust arg in - BYTES_BIT_ENDIAN case, use number of bits in arg for MEM operands - and BITS_PER_WORD for other operands. - (extract_fixed_bit_field): Undo last change. - - * unroll.c (verify_addresses): New function. - (find_splittable_givs): Use it instead of memory_address_p. - -Thu Jun 8 18:58:18 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * expmed.c (expand_divmod): Always check result of emit_store_flag. - -Thu Jun 8 12:02:34 1995 David D Zuhn (zoo@armadillo.com) - - * cpplib.c (cpp_push_buffer): Include filename in error message. - -Thu Jun 8 11:53:45 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (assign_parms): Don't call promote_mode on arg - unless PROMOTE_FUNCTION_ARGS defined. - - * rs6000.md (decrement_and_branch): Ensure label is operand 0. - - * rs6000.md (aux_truncdfsf2): New pattern. - (movsf): Use it instead of invalid SUBREG and truncdfsf2. - - * varasm.c (assemble_name): Disable warn_id_clash around - get_identifier call. - -Wed Jun 7 17:22:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * configure (gdb_needs_out_file_path): New variable. - (m68k-motorola-sysv): Set gdb_needs_out_file_path if not using gas. - (.gdbinit): If gdb_needs_out_file_path is set, add a 'dir' command - for $(out_file). - -Wed Jun 7 17:17:19 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * fold-const.c (fold): When folding `<' type nodes, make true_value - and false_value have correct types. - -Wed Jun 7 05:06:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * collect2.c (COFF scan_prog_file): Use the AIX duplicate entry. - -Tue Jun 6 18:43:09 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * pa.h (FUNCTION_ARG_CALLEE_COPIES): Define. - -Tue Jun 6 18:21:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Consider two types - identical if their TYPE_MAIN_VARIANTs are the same. - - * c-decl.c (start_decl): Set DECL_COMMON before calling - decl_attributes. - - * a29k.c (print_operands): Cast args to bcopy to char *. - - * c-decl.c (duplicate_decls): Don't clear DECL_CONTEXT of - new decl if it is a function. - -Tue Jun 6 17:57:44 1995 Eberhard Mattes (mattes@azu.informatik.uni-stuttgart.de) - - * gcc.c (do_spec_1, case 'g'): Handle %O as suffix if MKTEMP_EACH_FILE. - -Tue Jun 6 17:53:05 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (expand_block_move): Update source and destination pointers - inside the loop moving the bytes, not outside. - -Tue Jun 6 14:58:37 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.h (CONDITIONAL_REGISTER_USAGE): Don't mark pic reg as fixed. - * m68k.c (finalize_pic): Emit USE insn at start and end of function. - -Tue Jun 6 13:46:57 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * sh.c (print_operand): Check for annulled branches. - (output_movedouble): Handle SUBREG addresses. - (output_branch): Handle annulled branches. - (sh_expand_prologue): Correct number of saved registers for - varargs functions. - * sh.h: Add some comments. - * sh.md: Add some comments. Cleanup formatting. - (type attribute): Add pstore and call. - (return define_delay): Reorganize to make clearer. - (call/sfunc define_delay): Define. - (cbranch define_delay): Define to have annul-true delay slot. - (subsi3): Use arith_reg_operand for operand 2. - (shift patterns): Use const_int_operand instead of immediate_operand - for shift counts. - (push): Add pstore constraint case. - (movsi_i): Move t/z constraint pair to the front of the list. - (calli, call_valuei): Add "call" attribute. - -Mon Jun 5 19:23:13 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sched.c (attach_deaths): In last change, use find_reg_note instead - of find_regno_note. - -Mon Jun 5 19:17:31 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) - - * mips/iris5.h (MACHINE_TYPE): Say "IRIX 5.x", not "5.0". - (NO_DOLLAR_IN_LABEL): Undefine. - * mips.h (sdb_begin_function_line): New declaration. - (PUT_SDB_FUNCTION_END): New definition. - -Mon Jun 5 18:56:10 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (expand_block_move): Don't do block moves where we clobber - fixed numbers of regs, instead move just 1-8 bytes at a time. - - * Makefile.in (STAGESTUFF): Copy files produced by -da and - -save-temps to the stage subdirectories. - -Mon Jun 5 08:18:46 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> - - * combine.c (reg_dead_at_p): When scanning backwards, stop at BARRIER. - - * m68k.c (print_operand): Handle 'R' for registers. - * m68k.md (cmpdi): Rewrite to avoid bogus matching constraints. - - * optabs.c (expand_binop): In last change, don't defererence TARGET - if it is 0. - - * pa.md (movsicc): Use MATCH_DUP for operand 4 and 5. - -Mon Jun 5 08:14:56 1995 Jeffrey A Law (law@cs.utah.edu) - - * pa.c (hppa_encode_label): Allocate stuff on permanent_obstack - rather than via malloc. - - * c-common.c (decl_attributes): Fix typo in size passed to alloca. - -Mon Jun 5 08:10:55 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.md: Use "some_operand" for patterns valid only during - reload and meant to handle adding more PLUS operators during - register elimination. - -Mon Jun 5 07:31:53 1995 Stephen L Moshier (moshier@world.std.com) - - * cse.c (simplify_unary_operation, case FLOAT, UNSIGNED_FLOAT): - Truncate to requested mode. - -Sat Jun 3 22:08:51 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sched.c (attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED - note is already present. - -Sat Jun 3 18:36:57 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * pa.h (hppa_builtin_saveregs): Add declaration. - -Sat Jun 3 18:11:26 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * Makefile.in (scan-decls.o): Depends on cpplib.h. - -Fri Jun 2 19:23:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * optabs.c (expand_binop): Don't use non-REG TARGET in 2-word case. - -Thu Jun 1 19:30:30 1995 Tor Egge (tegge@flipper.pvv.unit.no) - - * m88k.h (RETURN_POPS_ARGS): New argument. - * m88k/dolphin.ld: Added start of comment. - -Thu Jun 1 19:12:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (a29k-*-bsd*): Fix typo in last change. - -Thu Jun 1 18:51:53 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * expmed.c (extract_fixed_bit_field): For REG case, compute total_bits - from mode instead of assuming BITS_PER_WORD. - -Thu Jun 1 18:34:31 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (FIXED_R13): Default to 0. - ({FIXED,CALL_USED}_REGISTERS): Use FIXED_R13 for register 13. - * sysv4.h (FIXED_R13): Define to be 1. - -Wed May 31 20:57:26 1995 Torbjorn Granlund <tege@matematik.su.se> - - * m68k.md ([su]mulsi3_highpart): Pass correct number of arguments to - const_uint32_operand. - * m68k.c (const_uint32_operand): Reject negative numbers. - - * expmed.c (expand_mult_highpart): Use wide_op1 for all multiplies. - (expand_divmod): Undo Nov 12 change. Instead, add special case - for division by MIN_INT in signed TRUNC_DIV_EXPR case. - -Wed May 31 20:44:21 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (one_cmpldi2): New pattern. - ({a,l}shrdi{3,_const}): Allow 63 as shift count. - -Wed May 31 14:56:31 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * varasm.c (assemble_start_function, assemble_variable): - Make sure first_global_object_name is in permanent obstack. - - * reload1.c (alter_reg): Clean up setting of RTX_UNCHANGING_P - when making a MEM. - - * reorg.c (struct resources): New field unch_memory. - (CLEAR_RESOURCES, mark_target_live_regs, dbr_schedule): Clear it. - (mark_{referenced,set}_resources, redundant_insn): Set it. - (fill_simple_delay_slots): Likewise. - (resource_conflicts_p): Test it. - - * unroll.c (copy_loop_body): Fix typo in call to sets_cc0_p. - - * integrate.c (output_inline_function): Don't call expand_function_end. - - * calls.c (prepare_call_address): Only call use_reg on - static_chain_rtx if it is a REG. - - * configure (a29k-*-bsd*): Use t-a29k. - * t-a29k: New file. - * a29k/t-a29kbare (LIBGCC1_TEST): New null definition. - * a29k/t-vx29k (LIBGCC1_TEST): Likewise. - -Wed May 31 14:17:42 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * configure (hppa*-*-bsd*): Do not run fixincludes. - (hppa*-*-osf*): Likewise. - (hppa*-*-lites*): Likewise. - - * pa.h (PRINT_OPERAND_ADDRESS): Use "RR'" rather than "R'" for - symbolic addresses. - * pa.md (symbolic HIGH patterns): Likewise. - (symbolic LO_SUM pattern): Likewise. - -Wed May 31 14:11:53 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (all movstri recognizers): Eliminate updating the pointers. - * rs6000.c (expand_block_move): Don't pass argument of # bytes to - increment pointers by to movstrsi expanders. - - * rs6000.c (rs6000_override_options): Fix typo with -mstring handling. - - * rs6000.h (TARGET_SWITCHES): Set MASK_STRING_SET explicitly - if -mno-string, so that it can override the processor default. - -Wed May 31 07:31:53 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * c-common.c (truthvalue_conversion, BIT_AND_EXPR): Make sure that - the result has boolean_type_node. - -Tue May 30 19:03:21 1995 J.T. Conklin <jtc@cygnus.com> - - * stddef.h: Undefine _BSD_XXX_T_ if _GCC_XXX_T is defined on BSD - Net/2 derived systems. - -Tue May 30 08:17:37 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (decrement_and_branch_until_zero): Operand 0 constraint - changed from "+g" to "+d*am". - (similar anonymous HImode pattern): Likewise. - - * m68k.md (tstdi): Use tst/subx #0 instead of neg/negx. - Allow "a" and ">" for operand 0. - -Mon May 29 19:24:43 1995 Niklas Hallqvist (niklas@appli.se) - - * m68k.md (addsi_lshrsi_31): Use match_dup, not constraint "1", - for matching inputs. - -Mon May 29 12:39:58 1995 Allen Briggs <briggs@rrinc.com> - - * i386/isc.h ({STARTFILE,LIB,CPP}_SPEC): Handle -Xp like -posix. - * i386/x-isc3 (X_CFLAGS): Add -Xp. - -Mon May 29 12:28:41 1995 J.T. Conklin (jtc@cygnus.com) - - * configure (sparc-*-netbsd): Add missing asterisk at end. - -Mon May 29 08:55:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (recog_for_combine): New parm PADDED_SCRATCHES; set it. - (try_combine): Accumulate number of scratches and update max_scratch. - (simplify_set): Add extra parm to recog_for_combine. - - * romp.md (call): Put USE for r0 in CALL_INSN; call call_internal - to emit insn. - (call_internal): New name for anonymous call. - (call_value, call_value_internal): Likewise. - - * winnt/xm-winnt.h: Protect most definitions with #ifndef. - * alpha/xm-winnt.h: Include alpha/xm-alpha.h, then winnt/xm-winnt.h. - (POSIX): Undefine. - * xm-alpha.h: Don't include alloca.h for winnt. - -Sun May 28 18:34:01 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure: Make sed commands more uniform. - - * Makefile.in: Properly use $(srcdir) for files that have it - in their reference as a target of a rule. - (libgcc1.a): Add missing RANLIB_TEST use. - - * stmt.c (expand_computed_goto): Call do_pending_stack_adjust. - -Sun May 28 18:08:41 1995 Torbjorn Granlund <tege@mole.gnu.ai.mit.edu> - - * m68k.md (divmodhi4, udivmodhi4): Use "dmsK" for operand 2. - -Fri May 26 17:01:22 1995 Paul Eggert <eggert@twinsun.com> - - * fixincludes: Fix bogus recursive <stdlib.h> in NEWS-OS 4.0C. - -Fri May 26 08:02:14 1995 Michael Meissner (meissner@cygnus.com) - - * c-typeck.c (initializer_constant_valid_p): For the CONSTRUCTOR - case, if the type is a record, recurse, just like for unions. - -Thu May 25 07:56:14 1995 Paul Eggert <eggert@twinsun.com> - - * fixincludes: Add `sel', `tahoe', `r3000', `r4000' to the - list of pre-ANSI symbols that need to be surrounded with __ __. - Allow white space between `#' and `if' when looking for lines to patch. - - * objc/sarray.h (PRECOMPUTE_SELECTORS, struct soffset): - Use #ifdef __sparc__, not sparc. - - * m68k.md (addsi_lshrsi_31, ashldi_const, ashrdi_const, lshrdi_const): - Replace `mov' with `move'. - -Thu May 25 07:35:37 1995 Allen Briggs <briggs@rrinc.com> - - * libgcc2.c (L_eh, i386): Remove in-line comments in assembly - code--the '#' character is not valid for the SYSV as. - -Thu May 25 07:28:54 1995 Pat Rankin (rankin@eql.caltech.edu) - - * Makefile.in (BC_ALL): Restore it from May 22 change; vms uses it. - (STAGESTUFF): Use it. - -Thu May 25 07:11:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_emit_set_const): Don't call expand_binop for - other than add if SImode and can't create pseudos. - -Wed May 24 21:38:24 1995 Jim Wilson <wilson@cygnus.com> - - * sched.c (reemit_notes): New function. - (schedule_block): Call reemit_notes twice. Reorganize code for - handling SCHED_GROUP_P insns, so that reemit_notes works. - - * sh/sh.c (shiftcosts, genshifty_op): Add SH3 support. - * sh/sh.md (ashlsi3, lshrsi3): Add SH3 support. - (ashlsi3_d, ashrsi3_d, lshrsi3_d): New patterns for SH3. - (ashrsi2_31): Remove r/!r constraint. - -Wed May 24 17:00:47 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * tree.c (type_list_equal): Call simple_cst_equal before checking - types. - -Wed May 24 16:49:49 1995 Douglas Rupp (drupp@cs.washington.edu) - - * Makefile.in (libgcc2.a): Handle case of separate srcdir. - -Wed May 24 16:22:01 1995 Paul Eggert <eggert@twinsun.com> - - * configure: Define $(MAKE) if `make' doesn't. - -Wed May 24 15:50:51 1995 Doug Evans <dje@cygnus.com> - - * dsp16xx.h (CROSS_LINK_SPEC): ENDFILE_SPEC moved to -nostartfiles. - * i386/freebsd.h (LINK_SPEC): Don't pass "-e start" if nostartfiles - rather than nostdlib. - * i386/sun.h (LINK_SPEC): Likewise. - * m68k/sun2o4.h (LINK_SPEC): Likewise. - * m68k/sun3.h (LINK_SPEC): Likewise. - * m68k/vxm68k.h (LINK_SPEC): Likewise. - * mips/netbsd.h (LINK_SPEC): Likewise. - * config/netbsd.h (LINK_SPEC): Likewise. - * rs6000/mach.h (LINK_SPEC): Likewise. - * sparc.h (LINK_SPEC): Likewise. - * sparc/vxsparc.h (LINK_SPEC): Likewise. - - * m88k/m88k.h (FUNCTION_ARG_BOUNDARY): Use GET_MODE_BITSIZE. - -Wed May 24 15:44:04 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * fold-const.c (fold): Make sure that a folded TRUTH_NOT_EXPR - retains the same type. - - * c-common.c (truthvalue_conversion): Also accept TRUTH_NOT_EXPR. - -Wed May 24 15:41:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cplus-dem.c (strstr, strncmp, strlen): Remove declarations. - - * tree.c (type_list_equal, simple_cst_list_equal, index_type_equal): - Check for simple_cst_equal return value of -1. - -Wed May 24 10:05:24 1995 Michael Meissner <meissner@cygnus.com> - - * libgcc1-test.c (start, _start): Provide declarations, so that - the GNU linker doesn't give a warning message about defaulting the - start address. - - * rs6000/sysv4.h (STRIP_NAME_ENCODING): Redefine back to the - original defination, rather than the defination used in rs6000.h. - (ASM_OUTPUT_SOURCE_LINE): Use STRIP_NAME_ENCODING. - * rs6000.h (STRIP_NAME_ENCODING): Skip leading '*'. - - * rs6000.h (MASK_STRING_SET, TARGET_STRING_SET): Add target - flags bit for whether -mstring was actually used. - (TARGET_SWITCHES): Add MASK_STRING to all power targets. Set - MASK_STRING_SET for -mstring and -mno-string. - (TARGET_DEFAULT): Add MASK_STRING. - - * rs6000.c (rs6000_override_options): Add MASK_STRING to - all power targets. Make an explicit -mstring/-mno-string override - the -mcpu=processor default. - - * rs6000/eabile.h (CPP_SPEC): Copy from sysvle.h to provide the - appropriate little endian defaults. - - * rs6000/sysv4.h (ASM_OUTPUT_SOURCE_LINE): Use assemble_name to - output the canonical name. - -Wed May 24 01:21:15 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * rs6000.h (STRIP_NAME_ENCODING): Define. - (RS6000_OUTPUT_BASENAME): Use it. - -Tue May 23 19:54:21 1995 Doug Evans <dje@cygnus.com> - - * gcc.c (link_command_spec): Move ENDFILE_SPEC from -nostdlib - to -nostartfiles. - -Tue May 23 17:01:50 1995 Jim Wilson <wilson@cygnus.com> - - * alpha.md (negsi2-2): Change output pattern to #. - - * mips.c (embedded_pic_offset): Output RTL to initialize - embedded_pic_fnaddr_rtx. - (mips_finalize_pic): Delete. - * mips.h (mips_finalize_pic): Delete declaration. - (FINALIZE_PIC): Delete. - (INIT_EXPANDERS): Clear embedded_pic_fnaddr_rtx. - * mips.md (get_fnaddr): Add = to output contraint. - - * sh.c (shift_amounts): Correct entry for shifts by 29. - * sh.md (sett): New pattern. - (movsi_i): Change source constraint for move to T reg to be 'z'. - - * mips/ecoff.h (STARTFILE_SPEC): Define to null string. - * mips/elfl.h, mips/elfl64.h: Correct typo in comment. - - * mips/elflorion.h, mips/elforion.h (MIPS_CPU_DEFAULT): Delete. - * mips.c (override_options): Delete #ifdef MIPS_CPU_DEFAULT code. - Add #ifdef MIPS_CPU_DEFAULT_STRING code before the first - mips_cpu_string test. - -Tue May 23 07:22:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * romp.c (hash_rtx): Avoid warning on int-to-pointer conversion. - (output_fpops): Cast args to bcopy to char *. - - * cpplib.c (initialize_builtins): Add missing parm to timestamp call. - - * Makefile.in (install-libobjc): Don't depend on libobjc.a. - - * c-parse.in: Objc shift/reduce conflicts now 48. - (parm): Use setspecs/restore here. - (parmlist_or_identifiers): Not here. - -Mon May 22 19:30:30 1995 Doug Evans <dje@cygnus.com> - - * h8300.md (movsf_h8300h): Add missing post-inc case to constraints. - -Mon May 22 14:38:36 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): Do SUBTARGET_OVERRIDE_OPTIONS - here. - * rs6000.h (OVERRIDE_OPTIONS): Not here. - - * rs6000.c (expand_block_move): Handle moves without string - instructions by generating a series of loads and stores. - (output_prolog): Support -mno-toc on V.4 and eabi systems. - - * rs6000/sysv4.h (TARGET_SWITCHES): Add -mtoc and -mno-toc. - (SUBTARGET_OVERRIDE_OPTIONS): Add some warnings for incompatible - switches. - (TOC_SECTION_FUNCTION): Make -mno-toc like -mrelocatable in that - we don't put the minimal toc pointer in the global toc section. - (LINK_SPEC): Use -oformat to set link output format, not -m. - - * rs6000/t-eabigas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build - libgcc.a variants with -mno-toc support. - * rs6000/t-ppcgas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Ditto. - -Mon May 22 07:10:52 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cplus-dem.c (mystrstr): Replacement for strstr. - - * configure: Split up long sed command. - * Makefile.in (SYMLINK): Deleted; unused. - (oldobjext): Deleted; no longer used. - (FLAGS_TO_PASS): Include objext and exeext. - (STAGESTUFF, protoize.o, unprotoize.o): Use $(objext), not .o. - (test_protoize_simple, compare{,3}, gnucompare{,3}): Likewise. - (STAGESTUFF, specs, gcc-cross, collect2): Add missing $(exeext). - (libgcc1.null, libgcc[12].a, stage[1-4]): Likewise. - (xgcc, cc1, cc1obj, enquire): Use $@ instead of filename for -o value. - (collect2, mips-tfile, mips-tdump, gen*): Likewise. - (bi-arity, bi-opcode, bi-opname, cccp, cppmain): Likewise. - (protoize, unprotoize, gen-protos, fix-header): Likewise. - (crtbegin.o, crtend.o): Don't use -o; move output to proper - filename (using objext) instead. - (BI_ALL, BC_ALL, bytecode): Deleted; unused. - (bi-*.o, cexp.o, stamp-{proto,fixinc}): Remove unneeded $(srcdir). - (getopt{,1}.o, SYSCALLS.c.X): Likewise. - (install-driver): New target. - (install-normal): Depend on it. - (install-common): Don't depend on xgcc. - (maketest): Deleted; no longer used. - (stage[1-4]): Use name collect-ld, not real-ld. - (risky-stage[1-4]): Use stage[1-4] as dependencies; don't copy. - * alpha/config-nt.bat, i386/config-nt.bat: Make {,h,t}config.h - and tm.h by writing a single #include line. - Update way specs.h and options.h are written. - * alpha/config-nt.sed, i386/config-nt.sed: Set new variables - into Makefile. - Build winnt.obj. - Edit CCCP definition. - * alpha/x-winnt, i386/x-winnt (oldobjext): Deleted. - Add rules for .c.obj, .adb.obj, and .ads.obj. - (LIB2FUNCS_EXTRA, spawnv.o): New rules. - * i386/x-winnt (objext): Now .obj, not .o. - - * gcc.c (HAVE_OBJECT_SUFFIX): New macro. - (process_command): Convert x.o to x.foo for OBJECT_SUFFIX of ".foo". - (do_spec_1): Avoid shadow variable "i" and always use for loop var. - - * c-decl.c (finish_decl_top_level): Removed; no longer used. - * objc-act.c: Numerous formatting changes. - (NULLT): Deleted; all uses changed to NULL_TREE. - (get_{static,object}_reference, objc_add_static_instance): - Use push_obstacks instead of saving obstacks manually. - (build_{selector,class}_reference_decl): Likewise. - (build_objc_string_decl, build_protocol_reference): Likewise. - (comp_{method,proto}_with_proto): Likewise. - (create_builtin_decl, synth_module_prologue): Set DECL_ARTIFICIAL - for internal objects. - (build_{selector,class}_reference_decl, add_objc_decls): Likewise. - (generate_objc_symtab_decl, build_module_descriptor): Likewise. - (build_protocol_reference): Likewise. - (build_objc_string_decl, synch_forward_declarations): Likewise. - Delete call to end_temporary_allocation. - (generate_static_references, generate_strings): Likewise. - (build_selector_translation_table, generate_category): Likewise. - (generate_{ivars,protocol}_list, build_protocol_reference): Likewise. - (build_objc_string_object): If next_runtime, put everything in - permanent obstack. - (objc_add_static_instance): Use build_decl instead of start_decl - and finish_decl_top_level. - (build_{class_reference,objc_string}_decl): Clear DECL_CONTEXT. - (start_class): Exit with FATAL_EXIT_CODE, not 1. - (add_objc_decls): Don't set DECL_IN_SYSTEM_HEADER. - - * tree.c (valid_machine_attribute): Handle attribute on - pointer-to-function types. - -Sun May 21 17:16:37 1995 J. T. Conklin <jtc@cygnus.com> - - * mips/netbsd.h (HAVE_STRERROR): Remove. - * mips/xm-netbsd.h: New file. - * mips/t-mips-netbsd: Deleted. - * configure (mips-dec-netbsd): Use xm-netbsd.h and t-libc-ok. - -Sun May 21 17:16:37 1995 Arne H. Juul (arnej@pvv.unit.no) - - * mips/netbsd.h: Use __start as entry point. Ifdef some - paths on CROSS_COMPILE. - -Sun May 21 08:39:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in (datadef, fndef, ivar_decl, mydecls): - Restore declspec_stack since setspecs is used. - (parmlist_or_identifiers): Use setspecs before parsing parms - and restore after parsing parms. - -Sun May 21 01:04:52 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.c (hppa_encode_label): New variable "permanent" to - where/how memory is allocated for the new label. All - callers changed. - -Sat May 20 16:53:30 1995 Mike Meissner <meissner@cygnus.com> - - * rs6000.md (insv, extz): Fail if the structure is QI or HI reg to - avoid paradoxical subreg's being created in RTL phase, which uses - SImode to load from memory if structure is later moved to stack. - -Sat May 20 06:44:59 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (udivmodhi4): Output "divu" instead of "divs". - -Sat May 20 06:11:32 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (push_reload): Don't reload inside a SUBREG - when SUBREG_WORD is nonzero. - - * c-decl.c (shadow_tag_warned): Don't warn about useless keyword - if in system header file. - - * tree.c (simple_cst_equal): Don't look at language-specific - nodes since we don't know what's in them. - - * cpperror.c: #include config.h before any other .h file. - * collect2.c: Likewise. - - * i386/config-nt.bat: Add missing ^M on two lines. - Add case for Fortran; fix typo in Ada case. - * alpha/config-nt.bat: Add case for Fortran; fix typo in Ada case. - - * m68k/t-next (LIBGCC1, CROSS_LIBGCC1): Make not, not "libgcc1.null". - (OTHER_FIXINCLUDES_DIRS, LIMITS_H_TEST): Delete from here. - * m68k/x-next (OTHER_FIXINCLUDES_DIR, LIMITS_H_TEST): Move to here. - -Fri May 19 19:30:20 1995 Stan Cox (gcc@dg-rtp.dg.com) - - * crtstuff.c: Added reference to INIT_SECTION_PREAMBLE for systems that - do something which must be undone prior to __do_global_ctors. - -Fri May 19 19:27:08 1995 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au> - - * i386/linux-aout.h (CPP_SPEC): Add defines for -fPIC. - * i386/linux-oldld.h (CPP_SPEC): Likewise. - -Fri May 19 17:46:28 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * collect2.c (strstr): Deleted. - * cplus-dem.c (strstr): Define ifndef POSIX. - -Fri May 19 11:16:51 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cpplib.c (collect_expansion): Don't escape '@' inside string. - -Fri May 19 06:59:21 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vmsconfig.com (process_objc_lib, configure_makefile): New routines. - (bc_all.list, ./vax.md, objc-objs.opt, objc-hdrs.list): New files - created at config time. - (bc_all.opt, ./md.): No longer created. - * make-cc1.com: Handle revised filenames from vmsconfig.com; - (DO_OBJCLIB): New variable, plus code to compile objc/*.{c,m}. - -Wed May 17 16:15:31 1995 Torbjorn Granlund <tege@cygnus.com> - - * i960.c (i960_output_ldconst): New code for XFmode. - Also, move SFmode code to immediately after DFmode code. - (S_MODES, D_MODES): Handle XFmode. - (XF_MODES): Was TF_MODES, handle XFmode instead of TFmode. - (hard_regno_mode_ok): Replace TFmode with XFmode. - (i960_output_long_double): New function. - - * i960.h (DATA_ALIGNMENT): Define. - (ROUND_TYPE_ALIGN): Align XFmode scalars at 128 bit boundaries. - (ROUND_TYPE_SIZE): Round up the size of XFmode objects to 128 bits. - (CONST_DOUBLE_OK_FOR_LETTER_P): Use CONST0_RTX and CONST1_RTX - so that all FP modes are recognized. - (ASM_OUTPUT_LONG_DOUBLE): Define. - - * i960.md: Change all TFmode patterns to have XFmode. - (movxf recognizer, frame version): Use movt, ldt, and stt. - (movxf recognizer, non-frame version): Delete. - (extenddfxf2): Delete * before f constraint. - (extendsfxf2): Likewise. - -Wed May 17 17:53:35 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * unroll.c (unroll_loop): Increment copy_start_luid if copy_start - is loop_start. - -Wed May 17 17:44:57 1995 Lee Iverson <leei@Canada.AI.SRI.COM> - - * fold-const.c (invert_truthvalue, case CLEANUP_POINT_EXPR): New case. - -Tue May 16 18:51:16 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.h (TARGET_SWITCHES): Add -mstring to enable string - instructions, and -mno-string to disable them. - (MOVE_MAX): Don't test TARGET_MULTIPLE anymore. - (MAX_MOVE_MAX): Set to 8, not 16. - (expand_block_move): Add declaration. - - * rs6000/rs6000.c (expand_block_move): New function to expand - block moves when -mstring is used. - - * rs6000/rs6000.md (movti): Use TARGET_STRING, not TARGET_MULTIPLE. - (load_multiple, store_multiple): Ditto. - (string insns): Add 8, 6, 4, 2, and 1 register variants for using - the native string instructions if -mstring. - - * rs6000/sysv4.h (CPP_SPEC): If little endian, define - _LITTLE_ENDIAN and set littleendian assertion. If big endian, - define _BIG_ENDIAN and set bigendian assertion. - * rs6000/sysv4le.h (CPP_SPEC): Copy from sysv4.h, and change - default to little endian. - - * rs6000/rs6000.c (override_options): Check for -mmultiple and - -mstring on little endian systems here. - * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't do the check - here. - -Tue May 16 18:36:41 1995 Douglas Rupp (drupp@cs.washington.edu) - - * alpha.c: Changed WINNT to _WIN32. - * alpha/config-nt.bat, i386/config-nt.bat: Added commands to - generate specs.h and options.h. - * i386/config-nt.sed: Changed link32 to link. - * winnt/ld.c (main): Removed call to free. - * configure.bat: Added line to echo usage on invalid input. - * gcc.c (fix_argv): Removed call to free. - * gcc.c, getpwd.c, protoize.c, sdbout.c: Changed WINNT to _WIN32. - * toplev.c: Likewise. - -Tue May 16 18:04:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (pfatal_with_name, fatal_io_error, vfatal): - Use FATAL_EXIT_CODE instead of magic number. - * cccp.c, cpplib.c, cpplib.h: Use FATAL_EXIT_CODE instead - of FAILURE_EXIT_CODE. - * fix-header.c, gen-protos.c: Likewise. - * cpperror.c, cppmain.c: Likewise. - Include config.h #ifndef EMACS. - * xm-alpha.h, xm-rs6000.h, xm-vms.h (FAILURE_EXIT_CODE): Remove. - -Tue May 16 17:46:57 1995 Adam Fedor <fedor@colorado.edu> - - * objc/archive.c (__objc_write_class): Write class version. - (__objc_write_selector, objc_{write,read}_selector): Handle null - selector. - - * objc/sarray.h (struct sarray): Make capacity size_t. - * objc/sarray.c (sarray_realloc): Make array index variables size_t. - -Tue May 16 06:59:08 1995 Paul Eggert <eggert@twinsun.com> - - * dsp16xx.c (print_operand_address): Fix misspellings in messages. - * i370/mvs.h (FUNCTION_PROFILER): Likewise. - * mips-tdump.c (type_to_string): Likewise. - * print-tree.c (print_node): Likewise. - - * protoize.c (edit_fn_definition): Fix mispelled local `have_flotsam'. - - * objc/sendmsg.c (__objc_init_install_dtable): Fix misspelling - in name of local label `already_initialized'. - - * winnt/winnt.h (STDC_VALUE): Was misspelled. - - * m68k/ccur-GAS.h (FUNCTION_BOUNDARY): Was misspelled. - - * 1750a.h (DEFAULT_PCC_STRUCT_RETURN): Was misspelled. - -Mon May 15 23:41:25 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Make sure to encode section - info for all libcalls. - -Mon May 15 20:58:00 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * collect2.c (strstr): Define ifndef POSIX. - - * defaults.h (SUPPORTS_WEAK): Provide default. - * aoutos.h, sparc/sunos4.h: Don't support weak symbols. - * netbsd.h, svr4.h, i386/freebsd.h, i386/osfrose.h, - m88k/m88k.h: Define ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. - * c-pragma.h: Check ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. - HANDLE_PRAGMA_WEAK is never defined in a tm.h file. - * c-decl.c (duplicate_decls): Propagate DECL_WEAK. - * tree.h (DECL_WEAK): New macro. - (tree_decl): Add weak_flag. - * varasm.c (assemble_start_function): Declare the symbol weak if - appropriate. - (assemble_variable): Ditto. - (assemble_alias): Ditto. Mark the decl as written. - (declare_weak): Check for weak declaration after definition. - Set DECL_WEAK. - (weak_finish): Use ASM_WEAKEN_LABEL. - * libgcc2.c: The C++ free-store management functions are weak - aliases on targets that always support them. - -Mon May 15 19:01:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (out_object_file): New variable; put value in Makefile. - * Makefile.in (out_object_file): Use in place of aux-output.o. - - * fold-const.c (const_binop): Don't pass OVERFLOW to force_fit_type - if type is unsigned. - -Mon May 15 18:48:26 1995 Paul Eggert <eggert@twinsun.com> - - * install.sh (transformbasename): Fix misspelling. - - * tahoe.h (CHECK_FLOAT_VALUE): Fix misspelling of OVERFLOW parameter. - - * i386.h (VALID_MACHINE_{DECL,TYPE_ATTRIBUTE): Fix typo. - - * fx80.h (CHECK_FLOAT_VALUE): Fix misspelled use of parameter. - - * a29k.c (spec_reg_operand): Fix misspelling of `default:'. - -Mon May 15 18:36:41 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (b{eq,ne,ge,lt}0_di): Fixed for non-MOTOROLA syntax. - * m68k/xm-mot3300.h (alloca): Extern decl added for non-GNU compiler. - -Mon May 15 13:14:29 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cppexp.c (cpp_reader): Test for '#' (start of assertion) *after* - skipping hspace, not before. - -Mon May 15 08:13:54 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vmsconfig.com: Construct options.h and specs.h to #include - all "*/lang-{options|specs}.h" files found. - -Sun May 14 21:32:49 1995 Doug Evans <dje@cygnus.com> - - * alpha/alpha.md (movsicc, case NE): Don't generate unrecognizable - insn. - (movdicc, case NE): Likewise. - -Sun May 14 15:44:54 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * unroll.c (unroll_loop): Make local_regno have size - max_reg_before_loop. Don't do local register optimization if - copy_end has no INSN_LUID. - -Sun May 14 10:38:23 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc-act.c (start_method_def): Mark _self as possibly unused. - - * configure: Create specs.h and options.h from */lang-specs.h - and */lang-options.h. - Set lang_specs_files and lang_options_file variables in Makefile. - * Makefile.in (lang_{specs,options}_files): New variables. - (gcc.o): Depends on $(lang_specs_files). - (toplev.o): Depends on $(lang_options_file); merge two dep lists. - (distclean): Remove spes.h and options. - * gcc.c (default_compilers): Remove entries for Ada, C++, Chill, - and Fortran; #include specs.h instead. - * toplev.c (lang_options): Remove entries for Ada, C++, and Fortran; - include options.h instead. - -Sat May 13 23:11:21 1995 DJ Delorie <dj@delorie.com> - - * configure (i[345]86-go32-msdos, i[345]86-*-go32): New targets. - -Sat May 13 10:58:38 1995 Jim Wilson <wilson@cygnus.com> - - * loop.c (record_giv): When computing replaceable, use - back_branch_in_range_p instead of looking for branches to named - labels. - * loop.h (back_branch_in_range_p): Declare. - * unroll.c (back_branch_in_range_p): No longer static. - -Sat May 13 06:47:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (simplify_shift_count, case LSHIFTRT): Don't merge - shifts of different modes if first is any right shift. - -Sat May 13 05:39:09 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * configure (arm-semi-aout): New configuration. - * config.sub: Add support for semi-hosted ARM. - * arm/t-semi, arm/semi.h: New files. - -Fri May 12 21:51:22 1995 Doug Evans <dje@cygnus.com> - - * flow.c (find_basic_blocks): Only perform n_basic_blocks sanity - check on first pass, and on second pass ensure it has the correct - value. - -Fri May 12 19:23:11 1995 Jim Wilson <wilson@cygnus.com> - - * c-typeck.c (build_binary_op): Warn when ~unsigned is compared - against unsigned, and type promotions result in an unexpected - answer. - -Fri May 12 19:10:21 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * configure (*-*-gnu*): Always use ELF; set tm_file=${cpu_type}/gnu.h. - * config/i386/gnu.h: Contents replaced with old i386/gnuelf.h. - * config/i386/gnuelf.h: File removed. - -Fri May 12 17:29:57 1995 Ken Raeburn (raeburn@cygnus.com) - - * m68k/lb1sf68.asm (__IMMEDIATE_PREFIX__): Default to #. - (IMM): New macro. - (all code): Use IMM macro instead of hardcoding # for immediate - operands. - -Fri May 12 16:52:10 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.c (output_scc_di): New function. - (extend_operator) : Allow DImode target. - * m68k.h (HARD_REGNO_MODE_OK): Don't allow d7/a0 as DImode reg pair. - * m68k.md (tstdi, cmpdi, addsi_lshrsi_31, ashldi_extsi): New patterns. - (extendqidi2, extendhidi2, extendsidi2): Allow "general_operand" - instead of "register_operand" 0. - (adddid_sexthishl32, subdid_sexthishl32, subdi_dishl32): Likewise. - (adddi_dilshr32): Operand 0 constraint changed from "ro" to "do"; - Code generation fixed. - (adddi_mem, subdi_mem): Fixed for "<" and ">" operand 0. - (adddi3, subdi3): Operand 2 constraint changed from "ao" to "*ao" - (ashldi_sexthi, ashrdi_const32): Allow only "register_operand" - instead of "general_operand" 0. - (ash[lr]di_const, ash[lr]di3): Allow also 8 and 16 as shift count. - (subreg1ashrdi_const32): Pattern deleted. - (subreghi1ashrdi_const32, subregsi1ashrdi_const32): New pattern. - (lshrsi_31): New implementation. - (scc0_di, scc_di, beq0_di, bne0_di, bge0_di, blt0_di): New patterns. - -Fri May 12 16:50:49 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * pa.md (bb patterns): Fix bugs in length computation exposed by - recent branch shortening and genattrtab changes. - -Fri May 12 16:22:27 1995 Ken Raeburn <raeburn@cygnus.com> - - * cccp.c (enum node_type): Add T_IMMEDIATE_PREFIX_TYPE. - (special_symbol): Handle it; emit value of IMMEDIATE_PREFIX. - (IMMEDIATE_PREFIX): Default to empty string. - (initialize_builtins): Install __IMMEDIATE_PREFIX__ builtin, - parallel to __REGISTER_PREFIX__. - -Fri May 12 14:40:03 1995 Pat Rankin (rankin@eql.caltech.edu) - - * cccp.c: #if VMS, don't define `stat' macro to be VMS_stat. - Compare enums explicitly to 0 to work around VAX C bug. - (do_include): Cast alloca's value. - - * make-cc1.com (bc_loop): Process comma-separated list rather - than space-separated one; restore .h suffix stripped by vmsconfig; - (loop1): More robust handling of directory prefix on file names. - * vmsconfig.com (TPU makefile.in): Reorganize and reformat code. - Make generated .opt files have more consistent format (all comma - separated, excess whitespace eliminated); - (additional_compiler): New routine. - (process_makefile): Use it to handle cc1plus via cp/Make-lang.in. - -Fri May 12 13:35:07 1995 Doug Evans <dje@cygnus.com> - - * arm.h: Replace ARM_REG_PREFIX with REGISTER_PREFIX. - Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. - (REGISTER_PREFIX): Define. - (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Define. - (SECONDARY_OUTPUT_RELOAD_CLASS): Handle DFmodes only if - TARGET_HARD_FLOAT. - (PREDICATE_CODES): Add soft_df_operand. - * arm.c: Replace ARM_REG_PREFIX with REGISTER_PREFIX. - Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. - (arm_asm_output_label): Use USER_LABEL_PREFIX. - (soft_df_operand): New function. - * arm.md (movsicc): New pattern. - (movsfcc, movdfcc, *movsicc_insn, *movsfcc_hard_insn): Likewise. - (*movsfcc_soft_insn, *movdfcc_insn): Likewise. - (*movdf_soft_insn): Rewrite. - (movsi matcher): Fix typo in type attribute. - -Fri May 12 10:25:40 1995 Michael Meissner (meissner@cygnus.com) - - * i386.h (TARGET_RTD): Use MASK_RTD, not MASK_REGPARM. - (TARGET_SWITCHES): Add -m{,no-}align-double switch. - (TARGET_OPTIONS): Add -mregparm= switch to set number of registers - to use for passing arguments. Add -malign-loops= switch to set - the alignment for loops. Add -malign-jumps= switch to set the - alignment for code that is jumped to. Add -malign-functions= - switch to set the initial alignment of functions. - (TARGET_REGPARM): Delete, in favor of -mregparm= - (TARGET_SWITCHES): Delete -mregparm, add -mdebug-arg switches. - (RETURN_POPS_ARGS): Call i386_return_pops_args to do the real work. - (VALID_MACHINE_DECL_ATTRIBUTE): Define as function call. - (VALID_MACHINE_TYPE_ATTRIBUTE): Define as function call. - (COMP_TYPE_ATTRIBUTES): Define as function call. - (REGPARM_MAX): Maximum number of regs to use for passing arguments. - (CUMULATIVE_ARGS): Make this a structure, not an int. - (INIT_CUMULATIVE_ARGS, FUNCTION_ARG{,_ADVANCE}): Call function. - (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (MAX_CODE_ALIGN): Maximum value to align loops/jumps to. - (BIGGEST_ALIGNMENT): Return 64 if -malign-double, 32 otherwise. - (ASM_OUTPUT_ALIGN_CODE): Use value of -malign-jumps= switch. - (ASM_OUTPUT_LOOP_ALIGN): Use value of -malign-loops= switch. - (toplevel): Declare all new functions and external variables added - in i386.c. - - * i386.c (i386_regparm_string, i386_regparm): New variables - for -mregparm= switch to set the number of registers to use for - passing arguments. - (i386_align_loops_string, i386_align_loops): New variables for - -malign-loops= switch to set alignment to use for loops. - (i386_align_jumps_string, i386_align_jumps): New variables for - -malign-jumps= switch to set alignment to use for labels that are - jumped to. - (override_options): Support new switches. - (i386_valid_decl_attribute_p): New function to validate decl - specific attributes. Presently returns 0. - (i386_valid_type_attribute_p): New function to validate type - specific attributes. Recognize "stdcall", which says function - with fixed numbers of arguments is responsible for popping stack, - "cdecl", which says to use the normal C calling sequence, even if - -mrtd is used, and "regparm", which specifies the number of - registers to use for passing arguments. - (i386_comp_type_attributes): New function, to validate whether - attributes are compatible. - (i386_return_pops_args): New function, to return whether or not - the function pops its argument list or not, taking into account - -mrtd, and the stdcall/cdecl attributes. - (init_cumulative_args): Rewrite as a function, taking variable - argument functions, and regparm support into account. - (function_arg{,_advance,_partial_nreg}): Likewise. - (print_operand): Support %J, to print appropriate jump insn. - - * i386.md (decrement_and_branch_until_zero): Define pattern, - so that loops that count down to zero, don't have an unneeded - compare after the decrement. Add a general insn recognizer for - add to a value and compare against zero. - - * i386/go32.h, i386/winnt.h (VALID_MACHINE_DECL_ATTRIBUTE): - Delete, code folded into the mainline. - (RETURN_POPS_ARGS): Likewise. - - * i386/winnt.h (ENCODE_SECTION_INFO): The stdcall attribute is now - stored on the type field, rather than the decl. - - * i386/gas.h (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN): Use - i386_align_{loops,jumps} variables to do alignment. - * i386/osfrose.h, i386/svr3dbx.h: Likewise. - -Fri May 12 12:48:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_type, case ARRAY_TYPE): Compute length using - MAX of length and zero if sizetype signed and neither bound constant. - - * i386/gnuelf.h, i386/linux-oldld.h, i386/lynx-ng.h, i386/v3gas.h: - Use <...> in #include instead of "...". - * m68k/lynx-ng.h, sparc/lynx-ng.h: Likewise. - - * c-parse.in (myparm): Handle attributes. - * objc-act.c (unused_list): New variable. - (build_tmp_function_decl): Call push_parm_decl with new format. - (start_class): Initialize unused_list. - (start_method_def): Call push_parm_decl with new format and - mark _cmp as possibly unused. - - * combine.c (simplify_shift_const): Don't change SHIFT_MODE - for LSHIFTRT either. - - * unroll.c (unroll_loop): Don't move reg if used in copy_end and - that is a JUMP_INSN. - -Fri May 12 12:31:37 1995 Doug Evans <dje@cygnus.com> - - * arm/lib1funcs.asm: New file. - -Fri May 12 11:52:03 1995 Kung Hsu <kung@cygnus.com> - - * configure (a29k-*-vxworks*): New target. - * config.sub (vxworks29k): New alias. - * a29k/t-vx29k: New file. - * a29k/vx29k.h: New file. - -Fri May 12 11:17:28 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> - - * loop.c (check_dbra_loop): When reversing loop when - no_use_except_counting is false, there must be only one biv. - -Fri May 12 07:10:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * unroll.c (unroll_loop): Only use local_regno for pseudos. - - * genattrtab.c (write_test_expr, case MATCH_DUP): Use operands[N] - instead of JUMP_LABEL (which may not be set). - (walk_attr_value, case MATCH_DUP): Set must_extract. - - * c-parse.in: Adjust number of shift/reduce conflicts. - (parm): Support attributes. - * c-decl.c (push_parm_decl): Pass any attributes to decl_attributes. - -Fri May 12 00:36:26 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cpplib.c (skip_quoted_string): Removed - no longer needed. - (skip_if_group): Use cpp_get_token instead of skip_quoted_string. - - * cpplib.h (struct cpp_reader): Remove start_line field. - Add multiline_string_line field. - - * cpplib.c (cpp_error_with_line, cpp_warning_with_line, - cpp_pedwarn_with_line): Take extra column number parameter. - (macroexpand, cpp_get_token): Fix reporting of unterminated strings. - (line_for_error): Removed - no longer needed. - -Fri May 12 02:21:34 1995 Jim Wilson <wilson@cygnus.com> - - * mips/svr4-t.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX, - STARTFILE_SPEC, LINK_SPEC): Define. - * configure (mips-tandem-sysv4): Use t-mips not t-svr4. - -Thu May 11 19:18:54 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cpplib.c (line_for_error): Make it work; add extra parameter. - (skip_quoted_string, cpp_get_token): Update calls to line_for_error. - (macroexpand): Remember initial line so we can report it if the - call is unterminated. Also, simplify error logic slightly. - (do_include): Cast alloca return value, to avoid pcc warning. - - * cppexp.c (parse_number): Cleanup some Cygnus crud for MPW. - -Thu May 11 21:35:23 1995 Torbjorn Granlund <tege@cygnus.com> - - From Moshier: - * i960.c (i960_output_ldconst): Let split_double handle DImode. - (i960_print_operand): Use REAL_VALUE_TO_DECIMAL for decimal strings. - (i960_output_double, i960_output_float): Likewise; also change arg - VALUE from `double' to `REAL_VALUE_TYPE'. - -Thu May 11 21:09:25 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * cpperror.c (cpp_print_containing_files): Remove some - Cygnus-local stuff. - -Thu May 11 21:06:47 1995 Doug Evans <dje@canuck.cygnus.com> - - * gcc.c (link_command_spec): Make -nostdlib no longer imply - -nostartfiles. - -Thu May 11 18:48:57 1995 Paul Eggert <eggert@twinsun.com> - - * c-common.c (convert_and_check): Don't diagnose overflow in constant - expression merely because conversion overflowed. - -Thu May 11 18:43:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-decl.c (grokdeclarator): Use PARM_FLAG to see if should - make PARM_DECL. - * c-parse.in (nested_function, notype_nested_function): - Allow old-style arg definitions (use xdecls). - - * c-decl.c (finish_struct): Properly update DECL_PACKED. - -Thu May 11 15:24:15 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * fold-const.c (fold): Also fold CLEANUP_POINT_EXPRs into - TRUTH_*_EXPRs and into the first operand. - (operand_equal_for_comparison_p): Also make sure the second operand - is integral. - -Thu May 11 14:22:03 1995 Ted Lemon <mellon@toccata.fugue.com> - - * config/mips/netbsd.h: New file. - * config/mips/t-mips-netbsd: New file. - * config/mips/x-netbsd: New file. - - * configure (mips-dec-netbsd*): Add entry. - - * mips.h (LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX): Define. - (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END, ASM_OUTPUT_LABEL_REF, - ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use them. - - * mips.c (mips_output_lineno): Use LOCAL_LABEL_PREFIX. - -Thu May 11 14:22:03 1995 Stan Cox (gcc@dg-rtp.dg.com) - - * dwarfout.c (output_decl): Don't output DIE for struct or union type - with no name or with ERROR_MARK for the fields. - -Thu May 11 06:36:34 1995 Michael Meissner (meissner@cygnus.com) - - * flow.c (mark_used_regs): If a SUBREG does not have a REG in the - SUBREG_REG position, recursively call mark_used_regs, instead of - segfaulting. - -Thu May 11 06:44:34 1995 Pat Rankin (rankin@eql.caltech.edu) - - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Fix typo for complex. - -Wed May 10 12:34:46 1995 Michael Meissner <meissner@cygnus.com> - - * configure: Add support for the little endian variant of the - PowerPC System V.4 and Eabi targets. If the GNU assembler was not - specified, don't build libgcc.a variants on the PowerPC systems - that use -mrelocatable, -mlittle, and -mbig. - - * genmultilib: For MULTILIB_MATCHES arguments, map question marks - into equal signs after spliting the left and right side of - equivalent options, to all support for options like: -mcpu=403. - - * rs6000/rs6000.md (rs6000_immed_double_const): New function that - is like immed_double_const, except that it reverses the two words - in the constant if the target is little endian. - - * rs6000/rs6000.md (floatsidf2): Use rs6000_immed_double_const, - not immed_double_const. - (floatunssidf2): Ditto. - - * rs6000/rs6000.h: Add declarations for all functions in rs6000.c. - - * rs6000/sysv4.h (TARGET_SWITCHES): Add -mlittle, -mlittle-endian, - -mbig, and -mbig-endian for bi-endian support. - (ASM_SPEC): Pass -mlittle/-mbig to the assembler if it was passed - to us. - (LINK_SPEC): If explicit little or big endian support was - requested, tell the GNU linker to use the appropriate target - format. - - * rs6000/t-eabi (MULTILIB_*): Build libgcc.a variants for software - floating point. Remove mrelocatable libgcc.a variant. - - * rs6000/t-eabigas: New file, cloned from t-eabi. Build - mrelocatable libgcc.a variant in addition to the other variants. - - * rs6000/t-ppc: New file, for PowerPC System V.4 support without - the GNU assembler. - - * rs6000/t-ppcgas: New file, for PowerPC System V.4 support with - the GNU assembler. - - * rs6000/eabile.h: New file, little endian eabi config file. - * rs6000/sysv4le.h: New file, little endian V.4 config file. - -Wed May 10 14:22:28 1995 Doug Evans <dje@cygnus.com> - - * libgcc1-test.c (main_without__main): Renamed from `main'. - * Makefile.in (libgcc1-test): Tell the user to ignore warnings. - - * configure: Support --enable-foo, --disable-foo. - -Wed May 10 10:34:00 1995 Lee Iverson <leei@Canada.AI.SRI.COM> - - * unroll.c: Add declarations of static functions. - (unroll_loop): Renumber regs local to loop for each unrolled iteration. - -Wed May 10 08:27:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_set_emit_const): Cleanups to work properly - when run on 32-bit host. - - * configure: Instead of symlinking tm.h and {h,t,}config.h, - make them files that #include the proper file; pass to Makefile. - Pass out_file and md_file to Makefile instead of making symlinks. - * Makefile.in (out_file, md_file, tm_file, {build,host}_xm_file): - New symbols, to be overridden by configure. - (insn-*): Use $(md_file), not md. - (aux-output.o): Use $(out_file), not aux-output.c. - ($(MD_FILE)): Rework to use new conventions. - (gen*.o, bi-*.o): Depend on $(build_xm_file), not hconfig.h. - (scan.o, fix-header.o, scan-decls.o): Likewise. - (distclean): Adjust files removed for new convention. - -Tue May 9 19:26:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * rs6000/rs6000.h (LIBGCC_SPEC): Do link with libgcc when -shared. - - * Makefile.in (STAGESTUFF): Add underscore.c. - (underscore.c): Rename temporary files to begin with 'tmp-' so that - they will be removed by 'make mostlyclean'. - -Tue May 9 19:19:55 1995 Mike Stump <mrs@cygnus.com> - - * toplev.c (lang_options): Add new flag -ffor-scope. - -Tue May 9 19:11:47 1995 Lee Iverson (leei@ai.sri.com) - - * objc/init.c (objc_init_statics): Fix missing part of last change. - -Tue May 9 18:25:34 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/gnu.h, i386/linux.h, i386/linux-aout.h, i386/lynx.h: - Use <...> in #include instead of "..." to avoid recursion. - * i386/netbsd.h, i386/xm-gnu.h, i386/xm-linux.h: Likewise. - * i386/xm-lynx.h, i386/xm-freebsd.h, i386/xm-netbsd.h: Likewise. - * m68k/lynx.h, m68k/netbsd.h, m68k/xm-lynx.h: Likewise. - * m68k/xm-netbsd.h, mips/gnu.h, ns32k/netbsd.h: Likewise. - * ns32k/xm-netbsd.h, rs6000/lynx.h, rs6000/xm-lynx.h: Likewise. - * sparc/lynx.h, sparc/netbsd.h, sparc/xm-lynx.h: Likewise. - * sparc/xm-netbsd.h, vax/netbsd.h, vax/xm-netbsd.h: Likewise. - -Tue May 9 15:52:05 1995 Michael Meissner <meissner@cygnus.com> - - * config.sub: Recognize powerpcle as the little endian varient of - the PowerPC. Recgonize ppc as a PowerPC variant, and ppcle as a - powerpcle variant. Convert pentium into i586, not i486. Add p5 - alias for i586. Map new x86 variants p6, k5, nexgen into i586 - temporarily. - -Tue May 9 15:43:27 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * rs6000/rs6000.h (LINK_SPEC, LIB_SPEC): Don't mess with libg - if -shared. - * rs6000/aix41ppc.h (LINK_SPEC): Ditto. - - * rs6000/powerpc.h: Don't emit .extern directives. - -Tue May 9 14:08:09 1995 Jim Wilson <wilson@cygnus.com> - - * sh/lib1funcs.asm (__ashrsi3, __ashlsi3, __lshrsi3): Use .byte - instead of .word offsets in switch table. - -Tue May 9 11:44:47 1995 Jeremy Bettis <jbettis@cse.unl.edu> - - * objc/sendmsg.c (__objc_send_initialize): Call superclass if object - does not implement +initialize. - -Tue May 9 02:44:16 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * rs6000/xm-rs6000.h (COLLECT_EXPORT_LIST): Define if not - cross-compiling. - * rs6000/xm-mach.h: #undef COLLECT_EXPORT_LIST. - * rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Lose. - - * collect2.c (collect_exit): Unlink export_file. - (prefix_from_string): Broken out from prefix_from_env. - (prefix_from_env): Call it. - (main): Under AIX, recognize -bE: and -bexport:, and don't - automatically export everything if we see one. Otherwise, scan the - objects individually and add all their symbols to an export file to be - passed to the linker. - (write_export_file): New function. - (scan_prog_file): Ignore symbols starting with '.' - - * c-common.c (declare_hidden_char_array): Mark decl artificial. - -Mon May 8 18:13:57 1995 Adam Fedor <fedor@colorado.edu> - - * objc/init.c (_objc_load_callback): Add declaration. - (__objc_exec_class): Call _objc_load_callback after every Class - or Category is added. - * objc/objc-api.h (_objc_load_callback): Add declaration. - -Mon May 8 17:56:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case INDIRECT_REF): Set RTX_UNCHANGING_P - if both TREE_READONLY and TREE_STATIC set. - - * c-typeck.c (convert_for_assignment): Don't give errors about - adding const or volatile unless both sides point to functions. - -Mon May 8 11:48:23 1995 Michael Meissner <meissner@cygnus.com> - - * configure: If ../ld/Makefile, symlink ../ld/ld.new to collect-ld, - not real-ld. Don't test for $use_collect2 any more. - -Sun May 7 17:52:23 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * calls.c (expand_call): Improve -Winline warnings. - -Sun May 7 17:28:27 1995 DJ Delorie (dj@delorie.com) - - * configure.bat: Use "go32" instead of "msdos" for future expansion. - - * i386/go32.h: Add support for win32's stdcall functions. - - * configure.bat: Add ^M to end of each line. - * i386/config-nt.bat, alpha/config-nt.bat: Likewise. - -Sun May 7 02:12:26 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * tree.h (DECL_ARTIFICIAL): New macro. - - * function.c (expand_function_end): Don't warn about unused - anonymous or artificial parms. - -Fri May 5 18:41:22 1995 Jim Meyering (meyering@comco.com) - - * configure: Fix typo in name of "maintainer-clean". - -Fri May 5 14:58:01 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.c (emit_move_sequence): Force problematical constants - into memory during the reload pass when generating PIC. - -Fri May 5 13:30:33 1995 Doug Evans <dje@cygnus.com> - - * objc/NXConstStr.m: NXConstantString.h renamed to NXConststr.h. - -Fri May 5 07:10:15 1995 Stephen L Moshier (moshier@world.std.com) - - * real.c (emdnorm, toe64, etoe64): Significand of Intel long double - denormals is shifted down one bit. - -Fri May 5 07:04:12 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (process_init_element): Don't clear_momentary if - constructor_stack is not empty. - - * objc/Makefile (SHELL): Now /bin/sh. - - * c-typeck.c (build_binary_op): Also warn about ordered - comparison of pointer with zero if -Wall. - - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Properly compare complex. - -Thu May 4 18:01:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * objc/Makefile: NXConstantString renamed to NXConstStr. - * objc/NXConstStr.m: Renamed from objc/NXConstantString.m. - * objc/NXConstStr.h: Renamed from objc/NXConstantString.h. - -Thu May 4 17:38:21 1995 J.T. Conklin <jtc@netbsd.org> - - * configure (vax-*-netbsd*): New configuration. - * vax/netbsd.h, vax/xm-netbsd.h: New files. - -Thu May 4 16:39:05 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * collect2.c (main): Add check for 'collect-ld', just like - 'real-ld', except that old versions won't be looking for it in the - path. Don't look for 'real-ld' in the path anymore. Sigh. - - * collect2.c: #include demangle.h and obstack.h. - (obstack_chunk_alloc): Define. - (obstack_chunk_free): Define. - (generic): Don't define. Don't use. - (main): Initialize obstacks and demangling. - - * collect2.c (dump_file): Adjust space padding in output to - maintain tabulation with Solaris ld. Don't demangle if the - environment variable COLLECT_NO_DEMANGLE is set. - - * collect2.c (main): Redirect the output of the first link and - demangle it. Don't collect static c/dtors unless USE_COLLECT2 is - defined. Null-terminate the list of objects. - (dump_file): New function. - (file_exists): New function. - (collect_exit): Renamed from my_exit. Dump and remove the temporary - ld output file. - (collect_execute): Break out from fork_execute. Support redirection. - (fork_execute): Call it. - (fatal_perror, fatal, error): Make non-static. - (xcalloc, xmalloc): Don't use generic. - (xrealloc): Define. - (collect_wait): Break out for do_wait. Just return the exit status. - (do_wait): Call it. - - * collect2.c: Check SUNOS4_SHARED_LIBRARIES using #if, not #ifdef. - - * Makefile.in (collect2): Now uses cplus-dem.o and underscore.o. - (collect2.o): Pass MAYBE_USE_COLLECT2 to compile. - (underscore.c): Rules for creation. - - * cplus-dem.c, demangle.h: Copy from libiberty. - -Thu May 4 14:12:35 1995 Jim Wilson <wilson@cygnus.com> - - * sdbout.c (plain_type): Pass additional argument to plain_type_1. - (plain_type_1): New parameter level. Increment it when making - recursive calls. Force the type to void_type_mode before starting - a 7th level of recursion. - - * sh.c (general_movsrc_operand, general_movdst_operand): Delete - references to POST_DEC and PRE_INC. - * sh.h: Clean up whitespace, comments, etc. - (TARGET_SH, RTL_BIT, DT_BIT, C_BIT, R_BIT, TARGET_DUMP_RTL, - TARGET_DUMP_R, TARGET_CDUMP): Delete. - (TARGET_SWITCHES): Delete -mR, -mc, -mr options. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete 'G' contraint. - (FUNCTION_VALUE): Simplify. - (REG_OK_FOR_PRE_POST_P, IS_INDEX): Delete. - (BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P): Rewrite to allow - SUBREGs. - (GO_IF_LEGITIMATE_INDEX): Delete unused REGNO argument. - (GO_IF_LEGITIMATE_ADDRESS): Use BASE_REGISTER_RTX_P instead of - REG_OK_FOR_PRE_POST_P. Don't accept PRE_INC or POST_DEC addresses. - (PREDICATE_CODES, PROMOTE_MODE): Define. - -Wed May 3 09:57:55 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.md (non power abs insns): If not powerpc, use - sf/subfc instructions, not subf. - -Wed May 3 08:49:06 1995 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au> - - * protoize.c (gen_aux_info_file): Use strerror #ifdef HAVE_STRERROR. - -Wed May 3 01:06:01 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * pa.c (output_call): Fix typo/thinko in last change. - (output_function_epilogue): Align the data section before - emitting deferred plabels. - - From Torbjorn: - * pa.c (before functions): Declare deferred_plabels and - n_deferred_plabels. - (output_call): When generating pic, don't use LP and RP. Use 32 bit - plabel instead. - (output_function_epilogue): Output plabels accumulated in output_call. - -Tue May 2 17:15:08 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * pa.c (hppa_expand_epilogue): Fix thinko in last change. - -Tue May 2 16:54:35 1995 Doug Evans <dje@cygnus.com> - - * jump.c (jump_optimize, can_reach_end determination): A barrier can - follow the return insn. - -Tue May 2 12:39:55 1995 Mike Stump <mrs@cygnus.com> - - * fold-const.c (fold): Ensure that we don't alter the expression's - type when folding CLEANUP_POINT_EXPRs. - -Tue May 2 13:36:08 1995 Michael Meissner <meissner@cygnus.com> - - * expmed.c (emit_store_flag): When creating store flag - instructions from simpler parts, such as XOR, ABS, etc. do not - reuse pseudo registers if expensive optimizations, instead create new - pseudos for each insn result. - -Tue May 2 01:25:29 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.c (hppa_expand_epilogue): Correctly handle restore of %rp - for functions with a stack size of exactly 8kbytes and no frame - pointer. - -Mon May 1 19:27:08 1995 Jim Wilson <wilson@cygnus.com> - - * sdbout.c (sdbout_one_type): Don't switch to text section if - in function with section attribute. - - * combine.c (combine_instrutions): Set subst_prev_insn to zero. - (try_combine, undo_all): Likewise. - (get_last_value): Return zero if subst_prev_insn set. - - * sparc.h (INIT_TARGET_OPTABS): Move INIT_SUBTARGET_OPTABS to end. - - * Makefile.in (install-dir): chmod a+rx all newly created directories. - - * expr.c (expand_expr, case SAVE_EXPR): Handle the case where - mode is VOIDmode. - -Fri Apr 28 15:39:38 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cpplib.h (cpp_buffer): Note new escape combination "@ ". - * cpplib.c (macroexpand): Delete "@ " if stringifying. - (cpp_skip_hspace): Also skip "@ " if input buffer has_escapes. - (collect_expansion): Cleanup white-space handling. - (create_definition): Remove all leading spaces, not just first one. - (cpp_expand_to_buffer): Set has_escapes on resulting input buffer. - (macroexpand): Set output_escapes during whole function (and - specifically during calls of macarg). - (macroexpand): Set "@ " before and after expansion result. - (push_macro_expansion): Remove unneeded initial "@ ", not " ". - (cpp_get_token): Remove unneeded "@ " (not " ") at end of expansion. - (cpp_get_token): Handle "@ ". - - * cpplib.c (read_name_map): Add cpp_reader parameter. Access - map_list from former (instead of having it be static). - (open_include_file): Extra parameter (because of above changes). - (do_include, lookup_import): Update calls of open_include_file. - - * cpplib.c (do_include): Fix memory leak. - - * cpplib.c (delete_assertion): Also delete tokenlist. - (do_unassert): Don't delete tokenlist (handled by delete_assertion). - (cpp_cleanup): New function. Frees resources used by a cpp_reader. - * cpphash.c (cpp_hash_cleanup): New function. - (delete_macro): Enable commented-out code. - (file_cleanup): Free actual buffer. - - * cpplib.c (cpp_options): Add map_list. - - * cpplib.h (PARSE_GETC): Removed. Bogus and unused. - * cppmain.c (main): Remove commented-out code that used PARSE_GETC. - - * cpplib.c: Don't #include <string.h>. Causes clashes - on Nextstep (when index/rindex are macros). - (cpp_grow_buffer, int_parse_file): Cast to U_CHAR*, rather than char*. - -Sun Apr 30 08:11:23 1995 Alan Modra (alan@spri.levels.unisa.edu.au) - - * stdarg.h, varargs.h (va_arg): Don't assume __va_rounded_size (char) - has the value of 4. - -Sun Apr 30 07:13:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * vax.h (NOTICE_UPDATE_CC): Correctly handle aob insns. - - * expr.c (expand_expr, case CONSTRUCTOR): Don't set target to - zero if more then one word. - Pass size and alignment to move_by_pieces_ninsns in bytes, not bits. - - * cse.c (cse_insn): Properly set IN_MEMORY for SET_DEST. - - * tree.c (substitute_in_expr): Preserve TREE_READONLY. - - * c-common.c (enum attrs): Add A_UNUSED. - (init_attributes): Initialize it. - (decl_attributes, case A_UNUSED): New case. - -Sat Apr 29 15:42:03 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (do_include): Re-fix minor memory leak by using - alloca instead of xmalloc and free. - - * cccp.c (macarg): Except for reporting error, treat unterminated - macro call as if it were terminated, since `macroexpand' relies - on *argptr being filled in. - -Sat Apr 29 06:09:35 1995 Torbjorn Granlund <tege@cygnus.com> - - * pa.c (output_mul_insn): Simplify, it is never called with - UNSIGNEDP set. - - * pa.md (divsi3, udivsi3, modsi3, umodsi3): Simplify. - (ashlsi3): Clean up indentation and commentary. - -Fri Apr 28 12:48:01 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * integrate.c (expand_inline_function): Don't emit any notes until - after we've expanded the actual parameters. - -Fri Apr 28 11:51:06 1995 Stan Cox (gcc@dg-rtp.dg.com) - - * m88k/dgux.h: (ENDFILE_SPEC, LIB_SPEC) Fix crtbegin and crtend - (SELECT_RTX_SECTION) Put relocatable pic constants in data section - - * m88k/dguxbcs.h: (LIB_SPEC) Likewise - - * m88k/m88k.c: (symbolic_operand) Put relocatable pic constants in data - - * m88k/m88k.h: (FRAME_POINTER_REQUIRED) Add -momit-leaf-frame-pointer - - * m88k/m88k.md: (umulsidi3) Doesn't work for 88110 with mod/div changes - - * m88k/x-dgux: (GCC_FOR_TARGET) tdesc gets mixed up for crtbegin/crtend - -Fri Apr 28 06:36:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (pop_init_level, output_init_element): Pass - require_constant_* to digest_init. - - * alpha.c (alpha_emit_set_const): Now returns rtx and take MODE arg. - Rework to use a new pseudo for intermediate values if high opt level. - Also use expand_{bin,un}op. - * alpha.h (alpha_emit_set_const): Add declaration. - * alpha.md (mov[sd]i and splits): Change call to alpha_emit_set_const. - - * reg-stack.c (stack_result): Fix bug in last change. - -Fri Apr 28 01:08:43 1995 Doug Evans <dje@cygnus.com> - - * objc-act.c: Update calls to start_decl, finish_struct, - pass NULLs for attributes. - -Thu Apr 27 21:13:14 1995 Doug Evans <dje@cygnus.com> - - * sparc.md (tablejump): Only if ! TARGET_MEDANY. - (casesi): New pattern for TARGET_MEDANY case. - - * c-common.c (decl_attributes): Always continue if attribute not found. - * c-typeck.c (common_type): Call lookup_attribute instead of - value_member. - * tree.c (attribute_hash_list): New function. - (build_type_attribute_variant): Call it. - (valid_machine_attribute): Handle attributes with arguments. - (is_attribute_p): New function. - (lookup_attribute): New function. - (attribute_in_list): Deleted. - (attribute_list_contained): Check TREE_PURPOSE and TREE_VALUE. - * tree.h (valid_machine_attribute): Add prototype. - (is_attribute_p, lookup_attribute): Likewise. - * i386/winnt.h (RETURN_POPS_ARGS): Call lookup_attribute. - (ENCODE_SECTION_INFO): Likewise. - (CPP_PREDEFINES): Use __stdcall__, __cdecl__. - (VALID_MACHINE_DECL_ATTRIBUTE): Call is_attribute_p. - `args' must be NULL. - -Thu Apr 27 21:10:41 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (insv): New anonymous patterns to combine insert with - arbitrary ashift, ashiftrt, lshiftrt, or zero_extract. (Based on - patch from John Brooks <jbrooks@ea.com>.) - (ashlsi3): Remove extraneous operand processing. - -Thu Apr 27 18:47:24 1995 Jim Wilson <wilson@cygnus.com> - - * sh/ashlsi3.c, sh/ashrsi3.c, sh/lshrsi3.c: Delete. - * sh/lib1funcs.asm (ashiftrt_r4_*): Rewrite for efficiency. - (ashrsi3, lshrsi3, lshrsi3): Add. - * t-sh (LIB1ASMFUNCS): Add new functions. - (LIBGCC2_CFLAGS): Delete. - (LIB2FUNCS_EXTRA): Remove deleted files. - (ashlsi3.c, ashrsi3.c, lshrsi3.c): Remove rules for deleted files. - - * stmt.c (expand_return): When returning BLKmode structure, use - operand_subword instead of doing arithmetic on the register number. - Also, for structures smaller than word_mode, copy it into a word_mode - temporary and then subreg it. - - * sparc.md: Delete two define_peepholes which print `bad peephole'. - -Thu Apr 27 16:17:01 1995 Torbjorn Granlund <tege@cygnus.com> - - * toplev.c (rest_of_compilation): Call shorten_branches even when - !optimize. - * final.c (shorten_branches): For non-optimizing compiles, break - after first pass. - -Thu Apr 27 14:22:50 1995 Michael Meissner <meissner@cygnus.com> - - * i386/linux-oldld.h: New file, that is cloned from linux-aout.h, - except that it does not pass -m i386linux to the linker. This is - to support the original GNU/Linux ld that is on most distributions. - - * configure (i[345]86-*-linux*oldld*): Use i386/linux-oldld.h as - the target file. - -Thu Apr 27 08:56:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (valid_machine_attribute): Update last change. - -Thu Apr 27 08:06:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fix-header.c, cpplib.c: Don't include <sys/stat.h> twice. - * cpplib.c (cpp_grow_buffer, init_parse_file): Cast {xmalloc,xrealloc} - for token_buffer to U_CHAR* instead of char*. - - * m68k/x-mot3300: New file. - * configure (m68k-motorola-sysv*): Use x-mot3300 instead of x-alloca. - -Thu Apr 27 07:04:09 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (do_include): Fix minor memory leak. - - * cccp.c (struct argdata): Remove unused `comments' member. - (macarg): Don't set `comments' member. - - * cccp.c (collect_expansion): Assume leading white space - already removed. - Don't allocate unnecessary space for expansion. - - * cccp.c (deps_output): Don't generate overly long output lines. - Do not invoke self recursively with spacer == 0; this simplifies - the code a bit. - -Wed Apr 26 19:20:02 1995 Andrew McCallum <mccallum@leopard.cs.rochester.edu> - - * objc/Object.h: Changed Class * to Class in order to match NEXTSTEP - and OpenStep runtime. - * objc/Object.m, objc/Object.h, objc/archive.c, objc/class.c: Likewise. - * objc/encoding.c, objc/init.c, objc/objc-api.h, objc/objc.h: Likewise. - * objc/objects.c, objc/runtime.h, objc/selector.c: Likewise. - * objc/sendmsg.c, objc/typedstream.h: Likewise. - -Wed Apr 26 19:18:52 1995 Pieter Schoenmakers <tiggr@es.ele.tue.nl> - - * objc/objc-api.h (objc_static_instances): New struct to record - static instances of a certain class. - (objc_module): New tag STATICS to point to the table of - objc_statics_instances. - - * objc/init.c (OBJC_VERSION): Version 7. - (objc_init_statics): New function. - (__objc_exec_class): Invoke objc_init_statics if needed. - - * objc/NXConstantString.m, objc/NXConstantString.h: New files. - * objc/Makefile (OBJC_O): Added bare-bones implementation of - NXConstantString. - - * objc-act.c (OBJC_VERSION): Version 7. - (build_objc_string_object): Build a full declaration if not using - the next runtime. - (objc_add_static_instance): New function. - (init_module_descriptor): Add reference to static instances table. - (build_module_descriptor): Add field for static instances table. - (get_objc_string_decl): New function. - (generate_static_references): New function. - (finish_objc): Call generate_static_references if needed. - - * c-tree.h (finish_decl_top_level): New declaration. - * c-decl.c (finish_decl_top_level): New function. - -Wed Apr 26 18:04:32 1995 Dirk Steinberg (Dirk.Steinberg@gmd.de) - - * stddef.h: Treat _MACHINE_ANSI_H_ like _ANSI_H_. - -Wed Apr 26 14:09:59 1995 Jim Wilson <wilson@cygnus.com> - - * sparc.h (NEGTF2_LIBCALL): Define. - (INIT_TARGET_OPTABS): Add support for all TFmode *_LIBCALL macros. - * optabs.c (init_optabs): Delete all uses of undocumented TImode and - TFmode *_LIBCALL macros. - - * combine.c (simplify_rtx, case TRUNCATE): Add. Use force_to_mode. - (force_to_mode, case AND): Allow some simplifications when GET_MODE (x) - has more bits than HOST_BITS_PER_WIDE_INT. - * mips/mips.md (truncdiqi2+[456]): Add patterns to simplify ZERO_EXTEND - of a TRUNCATE. - -Wed Apr 26 13:01:22 1995 Doug Evans <dje@cygnus.com> - - * sparc.md (memop define_splits): Rewrite to not use memop. - Preserve MEM_IN_STRUCT_P, MEM_VOLATILE_P, RTX_UNCHANGING_P bits. - * sparc.c (memop): Deleted. - (splittable_symbolic_memory_operand): New function. - (splittable_immediate_memory_operand): New function. - -Wed Apr 26 12:54:26 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * configure: Add hppa1.1-hp-lites support. - -Wed Apr 26 08:04:46 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sh.md (ashrsi2_31): Don't use dead_or_set_p after reload. - * pyr.md: Remove bad peepholes that improperly use dead_or_set_p. - - * function.c (expand_function_end): Warn about unused parms - if both -Wunused and -W. - - * tree.h (TYPE_PARSE_INFO): Delete unused field. - (TYPE_PACKED): Add new macro. - (struct tree_type): Delete unused field `parse_info'. - Add new field `packed_flag'. - * c-tree.h (finish_enum, finish_struct): Add ATTRIBUTES argument. - * c-common.c (init_attributes): Don't require decl for A_PACKED. - (decl_attributes, case A_PACKED): Set TYPE_PACKED for type. - * c-parse.in: Update number of shift/reduce conflicts. - (structsp): Pass attribute arg to finish_struct. - Support attributes on enums and pass to finish_enum. - * c-decl.c (finish_struct): Add ATTRIBUTES argument, call - decl_attributes and set DECL_PACKED from TYPE_PACKED. - (finish_enum): Add ATTRIBUTES argument, call decl_attributes, - and make enum narrow if TYPE_PACKED. - * print-tree.c (print_node): Print TYPE_PACKED. - - * c-decl.c (init_decl_processing): Don't give builtin__constant_p an - argument type. - * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a - string constant is a constant. - - * c-typeck.c (output_init_element): Constructor is not simple if - a bitfield is being assigned a non-integer. - - * c-typeck.c (push_init_level): Update constructor_depth when we - push spelling level. - -Tue Apr 25 19:50:06 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.c (emit_move_sequence): Handle function label arithmetic for - PIC code generation too. - -Tue Apr 25 18:52:43 1995 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - - * reg-stack.c (current_function_returns_real): Deleted (unused). - (FP_mode_reg): Trimmed to a smaller size, less overhead. - (FP_MODE_REG): New macro over which FP_mode_reg will be accessed. - (mark_regs_pat, straighten_stack): New functions. - (reg_to_stack): Amend initialisation of FP_mode_reg. - Mark FP registers mentioned in USE insns before NOTE_INSN_FUNCTION_BEG. - (get_true_reg): Eliminate FP subreg accesses in favour of the - actual FP register in use. - (record_reg_life_pat): Make it work on SUBREGs as well. Make use of - the new mark_regs_pat function. Handle USE insns if called unnested. - (record_reg_life): Don't check for QImode again, we know that it - is there. Process CALL_INSNs like all other insns, they might `use' - some FP argument registers if register passing. - (stack_result_p): Changed in stack_result and returning an rtx. - (stack_reg_life_analysis): Take a new stackentry state argument. - Use stack_result and the rtx to mark using mark_regs_pat. This ensures - that types that need multiple FP registers are handled correctly. - Delete the no_live_regs shortcut to save space. - Use stackentry state to determine filled registers. - (replace_reg): Accept COMPLEX_FLOAT as well. - (move_for_stack_reg): Optimise away some pointer dereferencing. - (subst_stack_regs): Make sure the stack is in the right order - and of the right size for register passing. - (goto_block_pat): Make sure the stack is in the right order - to return possible multi-register values from the function. - (convert_regs): Fix comment about CALL_INSN, it's no longer valid. - Make sure the stack is of the right size and in the right order - to return possible multi-register values from the function. - - * function.c (assign_parms): If STACK_REGS is defined, generate USE - insns before the function body, thus showing which registers are filled - with parameters. - * expr.c (expand_builtin_apply_args): Likewise. - Reverse order of saving registers, more compact code for i387. - (expand_builtin_apply): Likewise. - * emit-rtl.c (gen_highpart): Add comment about broken implementation. - * i386.md (untyped_call): Make it return a complex double. - - * c-parse.in (attrib): Permit null-length argument list to attributes. - - * tree.c (valid_machine_attribute): Use new function attribute_in_list, - makes sure type_attribute_variants are reused even when attributes have - parameters. - Assign any new type to TREE_TYPE (decl). - (attribute_in_list): New function. - (attribute_list_contained): Use it. - * tree.h (attribute_in_list): New declaration. - -Tue Apr 25 18:25:53 1995 Jim Wilson <wilson@cygnus.com> - - * expr.c (struct move_by_pieces): Add to_struct and from_struct fields. - (move_by_pieces): Set to_struct and from_struct fields. - (move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1. - (expand_builtin, case BUILT_IN_MEMCPY): New variable type. - Set MEM_IN_STRUCT_P of src_mem and dest_mem. - - * Makefile.in (clean): Delete libgcc1-asm.a. - - * m68k/vxm68k.h (CPP_SPEC): Define. - - * c-decl.c (pushdecl): Don't test DECL_EXTERNAL when deciding whether - to register a duplicate decl in the current block. - - * cross64.h (INIT_ENVIRONMENT): Define as string not putenv call. - * gcc.c (main): Pass INIT_ENVIRONMENT to putenv. - - * stmt.c (expand_return): When returning BLKmode structure in - registers, copy it to a psuedo-reg instead of to hard registers. - -Tue Apr 25 15:14:58 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (LEGITIMIZE_ADDRESS): Don't create a DF address using two - regs if -msoft-float or -mcpu=403. - -Tue Apr 25 15:45:44 1995 Richard Henderson (richard@atheist.tamu.edu) - - * m68k.md (divhi3, udivhi3, modhi3, umodhi3): Deleted - these insns plus some surrounding trash. - (divmodhi4, udivmodhi4): Added these insns. - -Tue Apr 25 10:12:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_builtin_saveregs): Refine last change to work - for both stdarg and varargs. - - * tree.c (chain_member_purpose): Make similar to chain_member_value. - - * Makefile.in, configure: Change "realclean" to "maintainer-clean". - - * protoize.c: Removed __NetBSD__ from conditional. - Declare strerror if HAVE_STRERROR is defined; otherwise - declare sys_errlist and sys_nerr. - (my_strerror): New function. - (errno): Don't define if already defined as a macro. - - * alpha.c (current_file_function_operand): Return false if profiling. - - * expr.c (convert_move): Don't access a hard reg in an invalid - mode when doing a truncation. - - * alpha.c (add_operand): Test for exactly the constants allowed by - the constraints. - * alpha.h (CONST_OK_FOR_LETTER_P, case 'L'): Reject 0x80000000. - - * c-parse.in (initdcl, notype_initdcl): Pass attributes to - start_decl; delete call to decl_attributes. - * c-tree.h (start_decl): Two new tree parameters. - * c-decl.c (start_decl): New args for attributes; call decl_attributes. - - * c-decl.c (duplicate_decls): Don't look at TYPE_ACTUAL_ARG_TYPES - if it is not set. - - * xm-1750a.h: New file. - - * alpha.c (alpha_builtin_saveregs): Add to incoming args addr - if less than 6 named args, not less than or equal to. - -Mon Apr 24 15:25:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * mips-tfile.c (fatal, error): Make first arg const to avoid warning. - - * stmt.c (expand_end_bindings): Write a BARRIER after call - to abort in nonlocal handler. - - * stmt.c (expand_decl_init): Call preserve_temp_slots to keep - around any temp whose address was taken. - -Fri Apr 21 16:26:15 1995 Torbjorn Granlund <tege@adder.cygnus.com> - - * pa.md (call_internal_reg): Fix typos in length calculation. - (call_value_internal_reg): Likewise. - -Fri Apr 21 13:17:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config/gnu.h (STANDARD_INCLUDE_DIR): New macro. - * config/mips/gnu.h (STANDARD_INCLUDE_DIR): Macro moved there. - -Fri Apr 21 08:23:58 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) - - * toplev.c (lang_options): Add -I for GNAT. - * gcc.c (default_compilers): Pass -I to gnat1. - -Fri Apr 21 07:58:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (integer_all_onesp): Test to size of mode, not TYPE_PRECISION. - - * toplev.c (main): Turn on -fforce-mem for -O2. - - * fold-const.c ([lr]rotate_double): Replace; old versions were bogus. - (fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer. - (fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR. - (fold, case RROTATE_EXPR): Sometimes commute logical op with rotate. - Delete pair of counteracting shifts. - - * combine.c (simplify_logical, case AND): If still an AND, get - new values for op0 and op1. - -Thu Apr 20 17:52:10 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.c: Completely rewritten. - * sh.h (FAST_BIT, CONSTLEN_2_BIT, CONSTLEN_3_BIT, CONSTLEN_0_BIT, - TARGET_FASTCODE, TARGET_CLEN3, TARGET_CLEN0, TARGET_OPTIONS): Delete. - (TARGET_SWITCHES): Delete -mclen3 and -mclen0 options. - (TARGET_DEFAULT): Is zero. - (OVERRIDE_OPTIONS): Delete code to set max_count_si and max_count_hi. - (SPECIAL_REG): New macro. - (HARD_REGNO_MODE_OK): Allow any mode in any general register. - (GO_IF_LEGITIMATE_ADDRESS): Delete constant + reg address case. - (MOVE_RATIO): Define to 2 when TARGET_SMALLCODE. - (max_si, max_hi, max_count_si, max_count_hi): Delete. - * sh.md: Delete spurious constraints from all define_expands. - (rotlsi3_1): Set T reg instead of clobbering it. - (ashrsi3): Use expand_ashiftrt instead of gen_shifty_op. - (movsi_i, movhi_i, movsf_i): Add conditions to reject patterns - needing a reload. - (movdi-2, movdf_k): Correct conditions to reject patterns needing - a reload. - ([inverse_]branch_{true,false}): Pass operands to output_branch. - (jump): Delete unnecessary braces. - (call, call_value): Don't use expand_acall. Force operand0 into - a register. - -Thu Apr 20 12:57:16 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * function.c (assign_parms): Use TREE_ADDRESSABLE rather than - TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be - passed by invisible reference. - - * calls.c (expand_call): Ditto. Abort if we try to pre-evaluate a - parameter of TREE_ADDRESSABLE type. - -Wed Apr 19 17:50:24 1995 Torbjorn Granlund <tege@cygnus.com> - - * pa.h (TARGET_SWITCHES): Fix typo. - -Tue Apr 18 18:06:03 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * expr.c (store_constructor): Use BYTES_BIG_ENDIAN rather - than BITS_BIG_ENDIAN to layout bits within bitstring. - * tree.c (get_set_constructor_bytes): Likewise. - -Tue Apr 18 17:22:46 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * config/m68k/{x-hp320,x-hp320g} (FIXPROTO_DEFINES): - Define _HPUX_SOURCE so putenv and other functions get seen. - -Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com) - - * varasm.c (weak_decls): Make this a unique structure, instead of - a tree structure. - (handle_pragma_weak): Don't redeclare asm_out_file. Use new weak - structure to copy name and value to. Protect name and value by - copying them to the permanent obstack. - (declare_weak): Call handle_pragma_weak, instead of duplicating - the code. - (finish_weak): Rewrite to use new weak symbols list structure. - - * c-pragma.h: New file to define the c-pragma.c interfaces. - * c-pragma.c: Include it. - * varasm.c: Include it. - * c-lex.c: Include it. - * cp/lex.c: Include it. - - * varasm.c (handle_pragma_weak): No longer pass output file - stream, since weak pragmas are delayed until the end of the - compilation. - * c-pragma.c (handle_pragma_token): Call handle_pragma_weak - without file stream argument. - - * Makefile.in (varasm.o, c-lex.o, c-pragma.o): Add dependencies on - c-pragma.h. - - * config/rs6000.md (movdf): If -msoft-float, do not generate - memory to memory references, like is already done for the - -mhard-float case. Remove an extra test for -mhard-float inside - of -mhard-float code. - -Tue Apr 18 06:19:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (size_int): Arg is unsigned HOST_WIDE_INT. - * tree.h (size_int): Likewise. - -Mon Apr 17 23:36:57 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * rs6000/aix41.h: Restore March 11th changes, plus - (ASM_OUTPUT_EXTERNAL): Do add [DS] or [RW], just don't emit - anything. - * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Ditto. - -Mon Apr 17 15:58:52 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * config/mips/x-iris (FIXPROTO_DEFINES): Add -D_LANGUAGE_C_PLUS_PLUS. - * config/mips/x-iris6: Likewise. - - * cpplib.c: Rename make_definition to cpp_define. - * cpplib.h (cpp_define): New declaration. - - * cpplib.c (special_symbol): For T_SPECLINE, calculate __LINE__ - in enclosing file buffer, not current buffer (if macro expanding). - (cpp_get_token): Fix thinko (in code for chopping unneeded space). - -Mon Apr 17 11:36:07 1995 Jim Wilson <wilson@cygnus.com> - - * abi64.h (CPP_SPECS): Define and use _ABI64 instead of - _MIPS_SIM_ABI64. - (SETUP_INCOMING_VARARGS): Set MEM_IN_STRUCT_P if big endian target. - * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define. - - * combine.c (get_last_value): Ignore BARRIER when scanning backwards. - (move_deaths): New variables before_dead and after_dead. Set them - to instructions that have valid INSN_CUID values and use in test. - - * combine.c (subst_prev_insn): New variable. - (try_combine): Set it. - (get_last_value): Use it. - - * reload.c (find_reloads): Recompute reg_equiv_address from - reg_equiv_memory_loc before using it. - (find_reloads_toplev, make_memloc): Likewise. - - * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Call force_operand - on dest_rtx before returning it. - - * function.c (instantiate_decls): Use temporary allocation if - DECL_DEFER_OUTPUT is set. - -Sat Apr 15 23:19:03 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * aoutos.h (ASM_OUTPUT_DEF): Define instead of SET_ASM_OP. - * sparc/sunos4.h (ASM_OUTPUT_DEF): Ditto. - - * varasm.c (weak_finish): Don't handle aliases. - (declare_weak): Ditto. - (assemble_alias): Handle aliases. - - * c-common.c (enum attrs): Add A_ALIAS. - (init_attributes): Ditto. - (decl_attributes): Ditto. - -Sat Apr 15 13:26:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call): Call preserve_temp_slots on temps - made for BLKmode args returned in registers. - - * pa.c (override_options): Fix typo. - -Sat Apr 15 12:11:46 1995 Brendan Kehoe <brendan@cygnus.com> - - * alpha/alpha.c (output_epilog): Initialize fp_offset to 0, and - make sure it's non-zero before we try to use it to restore the - frame pointer. - -Fri Apr 14 19:45:05 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * ginclude/va-{clipper,pa,pyr,sparc,spur}.h (va_arg): Reorganize - to avoid BIND_EXPRs and COND_EXPRs of aggregate type. - -Fri Apr 14 19:31:14 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Make the section - read-only executable "ax" if DECL is a FUNCTION_DECL; read-only - "a" (previously the case always) if DECL is TREE_READONLY; - otherwise writable "aw". - -Fri Apr 14 18:49:11 1995 Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI> - - * alpha.md (probe_stack): Probe with write, not read. - (allocate_stack): Update and correct stack probe code. - * alpha.c (output_prolog): Changed stack probe at function entry. - -Fri Apr 14 18:42:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * jump.c (delete_insn): When deleting after label, delete - a BARRIER as well. - -Fri Apr 14 14:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * toplev.c (compile_file): Call weak_finish. - - * c-common.c (enum attrs): Add A_WEAK. - (init_attributes): Ditto. - (decl_attributes): Support __attribute__ ((weak)) by - calling declare_weak. - - * sparc/sunos4.h (HANDLE_PRAGMA_WEAK, WEAK_ASM_OP, SET_ASM_OP): - Define to support weak symbols with -fgnu-linker. - * aoutos.h: Ditto. - - * varasm.c (handle_pragma_weak): Add declared weak symbols to - weak_decls rather than emitting them immediately. - (declare_weak): Add the indicated declaration to weak_decls. - (weak_finish): Emit .weak directives for any weak symbols. - - * libgcc2.c: The C++ free-store management functions are weak. - -Fri Apr 14 13:00:29 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000/rs6000.c (output_prolog): For eabi systems, emit main's - call to __eabi before setting up the minimal TOC used with the - -mrelocatable support. - - * rs6000/eabi.h (INVOKE__main): Don't define any more, - output_prolog will emit the call. - -Fri Apr 14 09:09:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (call_operand): Any reg is valid for NT. - (output_prologue): Never need GP for Windows/NT. - Set SYMBOL_REF_FLAG in current function decl. - -Thu Apr 13 20:19:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * alpha/xm-alpha.h (HAVE_VPRINTF): Define. - (HAVE_PUTENV): Define. - (POSIX): Define. - -Thu Apr 13 19:57:44 1995 Doug Evans <dje@cygnus.com> - - * emit-rtl.c (gen_sequence): If the insn has a non-null - CALL_INSN_FUNCTION_USAGE field, output it as a sequence so the - latter isn't discarded. - - * c-parse.in: Update expected conflict count. - -Thu Apr 13 08:10:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure.bat: Arg 2 is which machine (i386 or alpha). - * configure (alpha-*-winnt3*): New configuration. - * alpha.c: Don't #include stamp.h for WINNT. - (input_operand, case CONST): Allow ptr_mode and DImode. - * alpha.h (WINDOWS_NT): Provide default definition. - (ASM_OUTPUT_INT): Use output_addr_const. - (ASM_OUTPUT_ADDR_DIFF_ELT): Use .long for NT. - * alpha.md (calll, tablejump, movsi): New variants for NT. - * alpha/winnt.h, alpha/xm-winnt.h, alpha/x-winnt: New files. - * alpha/config-nt.bat, alpha/config-nt.sed: New files. - * i386/config-nt.bat: Add Ada fragments to Makefile. - * i386/config-nt.sed: Adjust for deletion of config.run in Makefile.in - Change version to 2.6.3. - Add some missing tabs. - * winnt/winnt.h (TARGET_MEM_FUNCTIONS): Define. - (LINK_SPEC): Delete "align:0x1000". - * winnt/xm-winnt.h (OBJECT_SUFFIX): Define. - * ginclude/stdarg.h, ginclude/varargs.h: Clean up code that - defines *DEFINED* symbols. - - * configure (a29k-*-sym1*): Same as a29k-*-bsd*. - * a29k.h (ASM_OUTPUT_SECTION_NAME): New macro. - -Wed Apr 12 14:36:03 1995 Jim Wilson <wilson@cygnus.com> - - * dbxout.c (dbxout_type_fields): Correct arguments to CHARS macro - in flag_minimal_debug case. - (dbxout_symbol_name): Use DECL_ASSEMBLER_NAME unconditionally. - * sdbout.c (sdbout_record_type_name): Correct indentation. - (sdbout_symbol): Use DECL_ASSEMBLER_NAME unconditionally. - (sdbout_one_type): Likewise. - -Tue Apr 11 13:24:13 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * fix-header.c (main): Fix loop over required_functions_list. - (fatal): Also print inc_filename. - - * cpplib.c (cpp_push_buffer): Added missing initializatuon of buf. - (cpp_file_buffer): Compare against CPP_NULL_BUFFER, not NULL. - (finclude): No longer call cpp_push_buffer - let callers do it. - (do_include): Add call to cpp_push_buffer. - (push_parse_file): Call cpp_push_buffer early, so initial - defines can use file and line from a valid cpp_buffer. - (nreverse_pending): New function. - (push_parse_file): Use nreverse_pending. - (push_parse_file): For -include files, just push them in reverse - order - we don't need to scan them now. - (cpp_error_from_errno, cpp_perror_with_name): Don't emit extra '\n'. - -Tue Apr 11 13:36:44 1995 Jim Wilson <wilson@cygnus.com> - - * configure (mips-dec-mach3): Add. - - * sh.c (shiftby_operand): Delete. - * sh.h (TARGET_SWITCHES): -m3 and -m3l also set SH2_BIT. - (OVERRIDE_OPTIONS): Don't add CPU_SH2 to CPU_SH3 when TARGET_SH3. - * sh.md (ashlsi3): Use nonmemory_operand as a predicate instead of - shiftby_operand. Don't use shiftby_operand in the output statement. - (lshrsi3): Likewise. - - * c-decl.c (poplevel): Do output inline function if - DECL_ABSTRACT_ORIGIN points to itself. - - * varasm.c (output_constant): Cast assemble_string argument to char *. - -Mon Apr 10 14:29:28 1995 Torbjorn Granlund <tege@adder.cygnus.com> - - * recog.c (constrain_operands, case 'E'): Make this work like - constraint character `F' when REAL_ARITHMETIC is defined. - * regclass.c (record_reg_classes, case 'E'): Likewise. - * reload.c (find_reloads, case 'E'): Likewise. - -Mon Apr 10 14:30:31 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/aix3newas.h, rs6000/aix41.h: Eliminate March 11th changes - to undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}, since this causes the - compiler not to bootstrap. - -Mon Apr 10 07:17:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cppalloc.c: #include config.h. - * cppexp.c: Add declarations of xmalloc and xrealloc. - (cpp_parse_expr): Cast args to bcopy to char *. - * cpphash.c: Add declaration of xmalloc. - * cpplib.c (init_parse_options, cpp_reader): Cast args to bcopy, - bcmp, and bzero to char *. - (add_import, push_parse_file, init_parse_file): Likewise. - - * c-common.c (enum attrs): New attribute, A_NOCOMMON. - (init_attribute): Initialize it. - (decl_attributes): Implement it. - * varasm.c (make_decl_rtl): Allow section attribute if -fno-common - or variable is not to be placed in common for some other reason. - - * combine.c (simplify_set): Don't move a SUBREG to dest if it - is changing the size of a hard reg in CLASS_CANNOT_CHANGE_SIZE. - - * reload.c (find_equiv_reg): If goal is a pseudo that got memory, - a store into memory makes it invalid. - * reload1.c (reload_as_needed): Call forget_old_reloads_1 on - pattern before reg elimination. - -Mon Apr 10 00:26:14 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.c (pa_reorg): Bump label use count for each entry in an - exploded ADDR_VEC. - -Sun Apr 9 09:22:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * i386.md (adddi3, subdi3): Need scratch reg whenever operand 0 in - mem and operands 1 not '0'. - (subdi3): Don't treat two non-equal MEMs as non-aliasing. - -Sat Apr 8 22:53:38 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.c (pa_reorg): Fix typo. - -Sat Apr 8 19:36:36 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.h (SELECT_SECTION): TREE_CODE_CLASS must be called - with a tree code, not a tree value. - -Sat Apr 8 12:41:01 1995 Mike Stump <mrs@cygnus.com> - - * cpphash.c: Don't use const on compilers that don't support it. - -Sat Apr 8 16:32:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_increment): Handle case where INCREMENTED - has a non-trivial conversion. - -Fri Apr 7 19:33:21 1995 Phil Nelson (phil@cs.wwu.edu) - - * ns32k.h (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): - Fix assembler syntax errors. - -Fri Apr 7 19:27:23 1995 Pat Rankin (rankin@eql.caltech.edu) - - * cccp.c (VMS_fstat, VMS_stat): New functions. - -Fri Apr 7 19:25:21 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (collect_expansion): If traditional, set stringify - member to SHARP_TOKEN regardless of the value of - stringify_sharp_token_type. - -Fri Apr 7 07:48:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (simplify_unary_operation): #ifdef POINTERS_EXTEND_UNSIGNED, - handle sign- or zero-extending addresses. - - * optabs.c (init{,_integral,_floating,_complex}_libfuncs): - Change SUFFIX to "char" to avoid confusion with prototype. - - * explow.c (convert_memory_address): No longer static. - New arg, TO_MODE. - Do something special for SYMBOL_REF, LABEL_REF, and CONST. - (memory_address): Add extra arg to call to convert_memory_address. - * rtl.h (convert_memory_address): Add extra arg. - * expr.c (expand_expr, case ADDR_EXPR): Always call - convert_memory_address when converting; add extra arg. - * stmt.c (expand_computed_goto): Convert from ptr_mode to Pmode. - - * gcc.c (OBJECT_SUFFIX): Default now ".o", not "o". - (all specs): Remove "." before %O; use %O in a few missing cases. - * i386/os2.h (OBJECT_SUFFIX): Delete from here. - * i386/xm-os2.h (OBJECT_SUFFIX): Move to here; now has period. - - * Makefile.in (STAGESTUFF): Use $(exeext) for executables. - -Fri Apr 7 03:32:29 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * config.sub: Accept -lites* as op sys. - -Thu Apr 6 23:08:50 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cpplib.c (bcopy, bzero, bcmp): Remove #undefs. - * cppalloc.c (xcalloc): Re-implement using calloc, - rather than malloc+bzero. - * cpplib.c (SELF_DIR_DUMMY): New macro. - (do_include): Don't pass searchptr to finclude if it is dsp, - since that is on the stack, and would cause a dangling pointer. - If handling #include_next, recognize SELF_DIR_DUMMY. - -Fri Apr 7 00:54:24 1995 Jeffrey A. Law <law@snake.cs.utah.edu> - - * pa.h (MACHINE_DEPENDENT_REORG): Define. - * pa.md (switch_jump): New pattern for jumps which implement - a switch table. - * pa.c (pa_reorg): New function to explode jump tables. - (pa_adjust_insn_length): Account for jumps in switch tables with - unfilled delay slots. - -Thu Apr 6 14:31:10 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * c-typeck.c (build_binary_op): Don't call common_type for - uncommon pointer types. - -Wed Apr 5 13:53:17 1995 Per Bothner <bothner@kalessin.cygnus.com> - - Re-write fixproto/fix-header/etc to use cpplib: - * fix-header.c: Comment out support for adding missing extern "C" - using #ifdef ADD_MISSING_EXTERN_C instead of #if 0. - * fixproto: Removed case of required functions. Instead use ... - * fix-header.c (std_include_table): ... new required-functions table. - (cpp_file_line_for_message, cpp_print_containing_files, cpp_message): - New stub functions, to intercept cpplib error message. - * fixproto: Don't call $CPP, since fix-header now incorporates cpplib. - * gen-protos.c (fatal, hashf): New functions. - (main): Use hashf, instead of hash. - * scan-decls.c (scan_decls, skip_to_closing_brace): Re-write to - take a cpp_reader* as argument, not a FILE*. - * scan.h (hash): Make parameter const. - * scan.c (hash): Removed. - * scan.c (memory_full, xmalloc, xrealloc): Removed. - Use functions from cppalloc.c instead. - * Makefile.in (gen-prtos, fix-header, stmp-fixproto): Update. - -Wed Apr 5 13:24:14 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * cpplib.c (cpp_get_token): If traditional, return after comment, - instead of reading more, so end-of-line can be peeked at. - * cpperror.c (cpp_file_line_for_message, cpp_message): New - functions, that do the actual printing of error messages. - (cpp_print_file_and_line, cpp_error, cpp_warning, cpp_pedwarn, - cpp_error_with_line, cpp_warning_with_line, cpp_pedwarn_with_line, - cpp_pedwarn_with_file_and_line, cpp_error_from_errno, my_strerror, - cpp_perror_with_name): Re-write to use cpp_file_line_for_message - and cpp_message, and move to cpplib.c. - -Tue Apr 4 23:35:49 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config/gnu.h (GNU_CPP_PREDEFINES): Remove -D__HURD__. - -Tue Apr 4 17:15:54 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * pa.h (DO_GLOBAL_DTORS_BODY): Fix pointer -> integer assignment - problem. - - * reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN - a the target of another JUMP_INSN to fill a delay slot. - -Mon Apr 3 19:03:48 1995 Torbjorn Granlund <tege@adder.cygnus.com> - - * cse.c (simplify_unary_operation): Sign-extend constants when - they have the most significant bit set for the target. - - * m68k.md (umulsi3_highpart): Test for CONST_INT and CONST_DOUBLE, - not CONSTANT_P. - (smulsi3_highpart): Likewise. - * m68k.c (const_uint32_operand): New function. - (const_sint32_operand): New function. - * m68k.md (const_umulsi3_highpart): Use const_uint32_operand instead - of immediate_operand for op3. Delete mode. - (const_smulsi3_highpart): Analogous change. - -Mon Apr 3 19:03:48 1995 Jim Wilson <wilson@cygnus.com> - - * cse.c (simplify_binary_operation): Sign-extend constants when - they have the most significant bit set for the target. - - * combine.c (force_to_mode, case PLUS): Sign extend masks that are - negative in OP_MODE. - (simplify_and_const_int): Sign-extend constants when they have the - most significant bit set for the target. - (merge_outer_ops): Likewise. - (simplify_shift_const): Likewise. - -Mon Apr 3 18:23:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * toplev.c (lang_options): Add -f{no-,}repo. - -Mon Apr 3 18:13:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (nonzero_bits, case REG): Check POINTERS_EXTEND_UNSIGNED. - (num_sign_bit_copies, case REG): Likewise. - * explow.c (convert_memory_address): New function. - (memory_address): Call if it needed. - (promote_mode, case POINTER_TYPE): Use Pmode and pointer extension. - (allocate_dynamic_stack_space): Convert size from ptr_mode. - * expr.c (clear_storage, expand_assignment, store_{expr,constructor}): - Use ptr_mode instead of Pmode in some places. - (expand_expr, expand_builtin): Likewise. - (push_block, store_expr): Convert size to Pmode. - (expand_expr, case ADDR_EXPR): Convert from Pmode to ptr_mode. - -Mon Apr 3 18:00:52 1995 Jim Wilson <wilson@cygnus.com> - - * explow.c (allocate_dynamic_stack_space): Correct typo in last - change. - - * sh.c (gen_shifty_op, case ASHIFTRT): Return 0 if shift count is not - a constant. - -Mon Apr 3 12:17:10 1995 Michael Meissner (meissner@cygnus.com) - - * expmed.c (extract_bit_field): When converting a SUBREG into a - REG, if the system is big endian, adjust the bit offset - appropriately. - -Mon Apr 3 00:08:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config/i386/linux.h: Include "config/linux.h" instead of - "linux.h", to avoid recursion. - -Sun Apr 2 23:50:27 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> - - * config/i386/gnuelf.h: Include i386/linux.h instead of - i386/linuxelf.h. - -Sun Apr 2 17:35:10 1995 Jim Wilson <wilson@cygnus.com> - - * cse.c (simplify_relational_operation): Don't simplify A-B for - compare of A and B when the compare is unsigned. - -Sun Apr 2 08:23:38 1995 Paul Eggert <eggert@twinsun.com> - - * fixincludes (stdio.h): BSDI 2.0 changed the spelling of _VA_LIST_ - to _BSD_VA_LIST_. - -Sun Apr 2 07:57:28 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/xm-bsd386.h: New file. - * configure (i[345]86-*-bsd*): Add xm_file. - - * gcc.c (default_compilers): Pass -W and -w to gnat1. - - * winnt/winnt.h (STDC_VALUE): Add #undef. - * i386/winnt.h (LIB_SPEC): Likewise. - -Sun Apr 2 07:55:25 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.h (RETURN_POPS_ARGS, ENCODE_SECTION_INFO): Call - chain_member_purpose, not chain_member_value. - (ASM_FILE_START, LIB_SPEC): Move to here. - * winnt/winnt.h (ASM_FILE_START, LIB_SPEC): Delete from here. - * tree.c (chain_member_purpose): New function. - -Sat Apr 1 12:19:14 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * c-typeck.c (build_binary_op): New variable build_type controls - type given to expression when created. Set to integer_type_node for - comparison ops instead of result_type so result_type still holds type - in which comparison is done. When checking for comparison between - signed and unsigned, use result_type rather than (possibly shortened) - type of op0. Don't warn about equality comparison of signed operand - to unsigned constant that fits in signed type. - -Sat Apr 1 09:47:02 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.h (CPP_PREDEFINES): Add definitions for __stdcall - and __cdecl. - * winnt/winnt.h (LIB_SPEC): Add OLDNAMES.LIB. - * winnt/xm-winnt.h: Remove unneeded #define's for non-ANSI functions. - * fixinc.winnt: Remove unneeded fixes relating to __stdcall. - - * objc/Makefile (SHELL): New definition. - -Sat Apr 1 08:25:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (cse_insn): When emitting a BARRIER, don't put it after - a deleted insn. - - * reload.c (push_reload): Initialize secondary_{in,out}_icode. - - * gcc.c (print_multilib_info): Don't use LAST_PATH if not set. - -Sat Apr 1 08:15:59 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vax.md (extv, extzv): Don't use immediate value for operand 1. - -Sat Apr 1 07:48:29 1995 Yury Shevchuk (sizif@botik.yaroslavl.su) - - * stmt.c (expand_asm_operands): Properly ignore invalid reg in clobber. - -Sat Apr 1 07:02:24 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c: General code cleanup. - Add prototypes for static functions. - Remove unnecessary casts to (char *); add casts to (U_CHAR *). - Add parentheses suggested by `gcc -Wparentheses'. - Rename local variables as suggested by `gcc -Wshadow'. - <fcntl.h>, <stdlib.h>, <string.h>, <unistd.h>: New includes. - <sys/time.h>, <sys/resource.h>: Include only if defined(RLIMIT_STACK). - <time.h>: Include, unless <sys/time.h> already does. - (HAVE_FCNTL_H, HAVE_STDLIB_H, HAVE_SYS_TIME_H): New symbols. - (HAVE_UNISTD_H, STDC_HEADERS, TIME_WITH_SYS_TIME): Likewise. - (__attribute__, PROTO, VA_START, PRINTF_ALIST, PRINTF_DCL): New macros. - (PRINTF_PROTO{,_1,_2,_3}, DO_PROTO): Likewise. - (bcopy, bzero, bcmp): If #defined by configuration file, use that. - If STDC_HEADERS is defined, use standard C functions. - If BSTRING is defined, or USG and VMS are not defined, use - the C library. Otherwise, use my_bcopy, my_bzero, my_bcmp. - (localtime): Remove no-longer-necessary explicit declaration. - (getenv, index, rindex): Don't declare explicitly if the - appropriate system header should declare it. - (fdopen): Remove no-longer-used declaration. - (vprintf): Define a subsitute macro if !defined(HAVE_VPRINTF). - (main): Replace `fdopen (dup (fileno (stdout)), "w"))' - with `stdout'. - (get_lintcmd, rescan, create_definition): Use bcmp instead of strncmp - when both operands are known to be free of null bytes. - (check_macro_name, compare_defs, collect_expansion): Likewise. - (do_assert, compare_token_lists, assertion_lookup, do_line): Likewise. - (skip_if_group, lookup): Likewise. - (rescan): Remove unused label `startagain'. - Abort instead of printing nonsense if the stack is corrupted - when there was an unterminated successful conditional. - (pcfinclude): Include explicit double-cast through GENERICPTR - to identify particularly egregious type puns. - (create_definition, do_define, check_macro_name): Use %.*s - printf format to avoid painful copying-and-casting. - (do_once): Return void, not (unused) int. - (do_ident, do_pragma, do_sccs): Accept extra arguments so that - all directive-handler's types match. - (do_sccs): Define only if SCCS_DIRECTIVE is defined. - (skip_if_group, dump_single_macro): Add `default: break;' to - keep -Wswitch happy. - (error, warning, error_with_line, vwarning_with_line, pedwarn): Use - stdarg/vararg/vfprintf instead of passing bogus char * args around. - (pedwarn_with_line, pedwarn_with_file_and_line, fatal): Likewise. - (verror, vwarning, verror_with_line, vwarning_with_line): New fcns. - (dump_single_macro): Abort if ap points to garbage. - (make_definition, make_undef, make_assertion): Parameter now char *. - (xmalloc, xrealloc, xcalloc, savestring, index0): Make sizes size_t - instead of unsigned; make pointer parameters GENERICPTR, not char *. - (xcalloc): Use bzero to clear memory instead of using own loop. - -Fri Mar 31 08:33:07 1995 Ken Raeburn (raeburn@wombat.gnu.ai.mit.edu) - - * longlong.h (umul_ppmm mc68000): Use %# instead of #. - -Fri Mar 31 06:37:54 1995 Michael Meissner (meissner@cygnus.com) - - * stor-layout.c (layout_decl): Implment -fpack-struct. - (layout_record): Ditto. - - * flags.h (flag_pack_struct): New flag variable. - - * toplev.c (flag_pack_struct): New flag variable. - (f_options): Add -fpack-struct support. - - * Makefile.in (stor-layout.o): Add flags.h dependency. - -Fri Mar 31 08:40:16 1995 Douglas Rupp (drupp@cs.washington.edu) - - * configure (i[345]86-*-winnt3*): Add tmake_file. - * i386/x-winnt (winnt.o): Deleted. - * i386/t-winnt: New file. - -Fri Mar 31 07:26:37 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * m68k/netbsd.h, m68k/hp3bsd44.h: Remove #include of machine/ansi.h. - - * configure (a29k-*-bsd): Set tmake_file to t-libc-ok. - - * stmt.c (expand_asm_operands): Properly handle output that can't - be directly written into. - - * c-parse.in (structsp): Correct error in last change. - * c-common.c (init_attributes): A_FORMAT is only for decls. - -Thu Mar 30 18:27:34 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * libgcc2.c: Remove explicit 0-initializations of static variables. - -Thu Mar 30 18:22:39 1995 Fergus Henderson <fjh@cs.mu.oz.au> - - * c-typeck.c (internal_build_compound_expr): Warn if LHS of comma - expression has no side effects, or computes value which is not used. - * stmt.c (make warn_if_unused_value): No longer static. - * tree.h (warn_if_unused_value): Add declaration. - -Thu Mar 30 18:15:11 1995 Jim Wilson <wilson@cygnus.com> - - * combine.c (get_last_value): Revert back to use prev_nonnote_insn - instead of prev_real_insn. Modify test that ignores USE insns. - - * rs6000.h (SELECT_SECTION): Apply constant DECL_INITIAL test - only to DECLs. - - * explow.c (allocate_dynamic_stack_space): Test STACK_BOUNDARY against - BIGGEST_ALIGNMENT at run time instead of at compile time. - Give MUST_ALIGN macro a value, and test this value in if statements. - -Thu Mar 30 08:59:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in: Now have 27 shift/reduce conflicts. - (attribute_list): Just make chain of all attributes. - (attrib): Consistently put name as PURPOSE, args, if any, as VALUE. - (structsp): Allow attributes on any struct or union. - * c-common.c (enum attrs): New enum class. - (attrtab, attrtab_idx): New variables. - (add_attribute, init_attributes): New functions. - (decl_attributes): Major rewrite. - * tree.c (valid_machine_attribute): Now receive name and args. - -Thu Mar 30 07:20:14 1995 Paul Eggert <eggert@twinsun.com> - - * protoize.c: Use the phrase `preprocessing directive' consistently. - * cccp.c (handle_directive, do_line, skip_if_group): Likewise. - (output_line_directive): Renamed from output_line_command. - (no_line_directives): Renamed from no_line_commands. - - * cccp.c (rescan): Don't recognize preprocessing directives - within macro args. Warn if one is found. - -Thu Mar 30 06:20:36 1995 H.J. Lu (hjl@nynexst.com) - - * configure (i[345]86-*-linux*): Set xmake_file=x-linux, - tm_file=i386/linux.h, and don't set extra_parts. - (i[345]86-*-linux*aout*): New configuration. - (i[345]86-*-linuxelf): Deleted. - * config/linux{,-aout}.h, config/x-linux, config/xm-linux.h: New files. - * config/i386/linux-aout.h: New file. - * config/i386/linux.h: Extensive modifications to use ELF format - as default. - (LIB_SPEC): Don't use libc_p.a for -p. don't use libg.a - unless for -ggdb. - (LINUX_DEFAULT_ELF): Defined. - * config/i386/linuxelf.h,config/i386/x-linux: Files deleted. - * config/i386/xm-linux.h: Just include xm-i386.h and xm-linux.h. - -Wed Mar 29 19:09:36 1995 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__throw_type_match): Update to use new calling convention. - -Wed Mar 29 14:53:23 1995 Jim Wilson <wilson@cygnus.com> - - * gcc.c (process_command): Delete code modifying gcc_exec_prefix. - (main): Put it here after last use of gcc_exec_prefix. For cross - compiler, set startfile_prefixes if gcc_exec_prefix is set and - standard_startfile_prefix is a relative path. - - * combine.c (make_compound_operation, AND case): Undo July 7, 1994 - change. - - * mips/mips.md (call_internal1, call_value_internal1): Move %* from - start of assembler output to immediately before the jal. - - * mips/mips.c (function_prologue): Put SDB_DEBUGGING_INFO ifdef around - code for SDB_DEBUG support. - (mips_select_rtx_section, mips_select_section): Change rdata_section - to READONLY_DATA_SECTION and sdata_section to SMALL_DATA_SECTION. - * mips/mips.h (SMALL_DATA_SECTION): Define. - - * reorg.c (mark_referenced_resources): Make setjmp use all registers. - - * flow.c (mark_used_regs, case SUBREG): Only fall through to REG case - if operand is a REG. - - * i960/i960.h (TARGET_SWITCHES): Make -mold-align set - TARGET_FLAG_STRICT_ALIGN. - (STRICT_ALIGNMENT): Test TARGET_STRICT_ALIGN. - - * sh/sh.c (andcosts): Modify costs to match the hardware, and add - explanatory comments. - - * sparc/sol2.h (CPP_PREDEFINES): Add -D__SVR4. - -Wed Mar 29 14:30:30 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.md (movsf): When moving to/from integer registers, - don't move floating point to memory if it is being simulated with - -msoft-float. - -Wed Mar 29 06:47:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in (initdcl): Only call decl_attributes once. - * c-common.c (decl_attributes): Clean up test for __mode__. - -Tue Mar 28 08:34:37 1995 John Hassey (hassey@dg-rtp.dg.com) - - * i386.md (adddi3): Don't treat two non-equal MEMs as non-aliasing. - -Tue Mar 28 08:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * a29k.h (CONSTANT_ADDRESS_P): Provide consistent definition. - -Tue Mar 28 07:26:41 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (do_xifdef, do_endif): Remove unnecessary pointer comparisons. - -Mon Mar 27 20:45:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call, store_one_arg): Don't set KEEP in calls - to assign_stack_temp. - * function.c (preserve_temp_slots): Clear ADDR_TAKEN on item - that we are preserving. - -Mon Mar 27 14:39:35 1995 Ian Lance Taylor <ian@cygnus.com> - - * mips/mips.h (FIRST_PSEUDO_REGISTER): Increment. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Add new register. - (MD_REG_LAST): Increment. - (ST_REG_FIRST, ST_REG_LAST): Increment. - (HILO_REGNUM): Define. - (enum reg_class): Add HILO_REG. - (REG_CLASS_NAMES): Add "HILO_REG". - (REG_CLASS_CONTENTS): Add HILO_REG initializer, and adjust ST_REGS - and ALL_REGS initializers. - (SECONDARY_RELOAD_CLASS): Remove. - (SECONDARY_INPUT_RELOAD_CLASS): Define. - (SECONDARY_OUTPUT_RELOAD_CLASS): Define. - (REGISTER_MOVE_COST): Treat HILO_REG as MD_REGS. - (REGISTER_NAMES): Add initialization line. - (DEBUG_REGISTER_NAMES): Add "accum". - * mips/mips.md: For each instruction which sets HI or LO, clobber - HILO_REGNUM with (clobber (match_scratch:MODE N "=a")). Change - each explicit reference to register 66 to register 67. - (mulsidi3): Change to define_expand. - (mulsidi3_internal): New name of old mulsidi3. - (mulsidi3_64bit): New insn. - (umulsidi3): Change to define_expand. - (umulsidi3_internal): New name of old umulsidi3. - (umulsidi3_64bit): New insn. - (madddi_64bit, umaddi_64bit): New insns. - (movdi_internal2): Add case for setting HILO_REG to zero. - (reload_indi, reload_outdi): New define_expands. - (movsi_internal1, movsi_internal2): Add cases for setting MD_REGS - to zero, and for setting a general reg to HILO_REG. - (reload_outsi): New define_expand. - * mips/mips.c (mips_reg_names): Add "accum". - (mips_sw_reg_names): Likewise. - (mips_regno_to_class): Map HILO_REGNUM to HILO_REG. - (mips_move_1word): Handle moving HILO_REGNUM to a general - register. Make sure that the normal MD_REG cases aren't used for - HILO_REGNUM. Handle moving zero to a MD_REG. - (mips_move_2words): Make sure that the normal MD_REG cases aren't - used for HILO_REGNUM. Handle moving zero to a MD_REG. - (override_options): Set mips_char_to_class for 'a' and 'b'. - (mips_secondary_reload_class): Add in_p argument. Handle - HILO_REGNUM. - -Mon Mar 27 07:16:05 1995 Warner Losh <imp@village.org> - - * gcc.c: Removed __NetBSD__ from conditional. - Declare strerror if HAVE_STRERROR is defined; otherwise - declare sys_errlist and sys_nerr. - (my_strerror): New function. - -Fri Mar 24 18:08:14 1995 Jason Merrill <jason@python.cygnus.com> - - * i386/linux.h (LIB_SPEC): Don't try to link with libraries we - know only exist in archive form unless -static. - -Fri Mar 24 16:12:16 1995 Doug Evans <dje@cygnus.com> - - * Makefile.in (multilib.h): Depend on Makefile, not config.status. - -Fri Mar 24 15:01:17 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.h (TARGET_MULTIPLE_SET): New target_flags bit that - indicates -mmultiple or -mno-multiple was explicitly passed by the - user, and not set as part of the cpu defaults. - (TARGET_SWITCHES): Set TARGET_MULTIPLE_SET bit for both -mmultiple - and -mno-multiple. - - * rs6000/rs6000.c (rs6000_override_options): If -mmultiple or - -mno-multiple was explicitly used, don't override the setting with - the processor default. - -Wed Mar 22 21:42:13 1995 Doug Evans <dje@cygnus.com> - - * i960/i960.c (i960_function_arg_advance): Ensure all regs marked - as used if stack is also used (for va_start). - (i960_setup_incoming_varargs): Rewrite to be similar to Intel's - version, but don't allocate reg block unless necessary. - * ginclude/va-i960.h (varargs va_start): Save g14 explicitly. - Account for arguments preceding va_alist. - -Wed Mar 22 13:24:55 1995 Torbjorn Granlund <tege@adder.cygnus.com> - - * pa.c (singlemove_string): Handle SFmode constants again. Simplify. - (zdepi_cint_p): Make some variables HOST_WIDE_INT. - (lhs_lshift_cint_operand): Likewise. - (output_and): Likewise. - (output_ior): Likewise. - -Wed Mar 22 12:40:09 1995 Jim Wilson <wilson@chestnut.cygnus.com> - - * sh.md (udivsi3): Don't clobber register 6. - (udivsi3, divsi3, mulsi3_call): Use a pseudo-reg with regclass 'z' - for output rather than hard register 0. - (block_move_real): Don't clobber registers 4 and 5. - - * mips.c (mips_select_section): Apply constant DEC_INITIAL tests - only to VAR_DECLs. - -Wed Mar 22 03:53:17 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> - - * config.sub (rm400, rm600): New machine names. - (sinix5.*, sinix): New os aliases. - (mips-siemens): Default os to sysv4. - -Mon Mar 20 21:56:47 1995 Per Bothner <bothner@kalessin.cygnus.com> - - Merged Paul Eggert's patch to cccp.c of Wed Mar 8 18:21:51 1995: - * cpplib.c (do_include): Fix type typo: pcfbuflimit is char *, not int. - - Merged Doug Evans' patch to cccp.c of Mon Feb 27 17:06:47 1995: - * cpplib.c (do_include): Check for redundant file before opening in - relative path case. Don't call fstat unnecessarily. - - Merged J.T. Conklin's patch to cccp.c of Wed Feb 22 20:29:31 1995: - * cpperror.c: Removed __NetBSD__ from conditional. - - Merged Kenner's patch to cccp.c & cexp.y of Tue Sep 20 17:49:47 1994: - * cppexp.c (struct operation): Make value by HOST_WIDE_INT. - (cpp_parse_expr): Change return type to HOST_WIDE_INT. - * cpplib (eval_if_expr): Likewise. - (do_if, do_elif): Update appropriately. - * cpplib.h (cpp_parse_expr): Removed, to avoid defining HOST_WIDE_INT. - - Merged Paul Eggert's patch to cccp.c of Mon Aug 8 19:42:09 1994: - * cpplib.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)'. - -Tue Mar 21 00:10:50 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * x-pa (CC): Add "-Dbsd4_4". - -Mon Mar 20 18:40:31 1995 Per Bothner <bothner@kalessin.cygnus.com> - - * toplev.c (print_error_function): New function hook. - (default_print_error_function): New function. Default value - of print_error_function. Code moved here from report_error_function. - (report_error_function): Use print_error_function hook. - -Mon Mar 20 20:27:43 1995 Doug Evans <dje@cygnus.com> - - * cccp.c (do_xifdef): Handle c++ comments. - (do_endif): Likewise. - -Mon Mar 20 15:31:45 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * configure (i386 configurations): Prepend i386/ to t-crt*. - -Mon Mar 20 07:58:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stmt.c (fixup_gotos): Add missing call from last change. - - * objc/misc.c: Put Alpha-specific decls before #include of runtime.h. - - * alpha.h (EXTRA_SECTIONS): Write zeros first time in .rdata. - -Sat Mar 18 16:37:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * flow.c (mark_used_regs, case SUBREG): Set reg_changes_size even - for integer modes. - (mark_used_regs): Set reg_changes_size for RHS, if necessary. - * combine.c (gen_lowpart_for_combine): Set reg_changes_size, if needed. - * reload.c (push_reload): Reload a SUBREG if paradoxical and - class is CLASS_CANNOT_CHANGE_SIZE. - * reload1.c (gen_reload): Handle paradoxical SUBREGs. - * alpha.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Need GENERAL_REGS - for paradoxical SUBREG and FLOAT_REGS. - (SECONDARY_NEEDED_MODE): Use actual mode for 4 bytes or wider. - * alpha.md (movsi): Allow FP regs and add case for store of FP reg. - Remove cvtlq from MEM to FP reg case. - - * rtl.h (emit_insns_after): Add declaration. - * stmt.c (fixup_gotos): Do a cleanup for a block when it is exited - even if label if not defined yet. - - * function.c (pop_function_context): Fix error in last change; - reference old value of current_function_decl before we modify it. - -Fri Mar 17 21:57:44 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * toplev.c (rest_of_compilation): Handle -Wreturn-type properly - for inlines we aren't compiling yet. - -Fri Mar 17 21:26:48 1995 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__register_exceptions): Handle empty tables. - -Fri Mar 17 11:48:31 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.c (winnt_function_prologue): Deleted. - (gen_stdcall_suffix): New function. - -Thu Mar 16 17:36:52 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * svr4.h (LINK_SPEC): If the user did not specify -h name, use the - output file name, if any. - * sparc/sol2.h (LINK_SPEC): Ditto. Also, if the user did not - specify -R path, add an -R for each -L. - - Move SunOS 4-specific assembler switches into the appropriate place. - * m68k/sun[23].h (ASM_SPEC): Add %{R} %{j} %{J} %{h} %{d2} - %{keep-local-as-symbols:-L}. - * i386/sun.h (ASM_SPEC): Add %{R} %{keep-local-as-symbols:-L}. - * sparc/sparc.h (ASM_SPEC): Ditto. - * gcc.c (default_compilers): Remove %{R} %{j} %{J} %{h} %{d2} - %{keep-local-as-symbols:-L} from assembler rules. - -Thu Mar 16 16:58:09 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/eabi-ctors.c: New file, handle C++ static constructors - and destructors without requiring anything else from a libc. - - * rs6000/t-eabi (LIB2FUNCS_EXTRA): Build eabi-ctors.c. - - * rs6000/eabi.asm: Do not load up register 2 if there is no .got - section. Jump to the __do_global_ctors function at the end of - processing to call C++ static constructors, and it will return to - __eabi's caller. Use normal volatile registers, instead of saving - and restoring registers 30 and 31. - - * rs6000/eabi.h (STARTFILE_SPEC): Define as null. - (LIB_SPEC): Ditto. - (ENDFILE_SPEC): Ditto. - (LIBGCC_SPEC): Always look for libgcc.a. - -Thu Mar 16 17:05:14 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stmt.c (warn_if_unused_value, case SAVE_EXPR): New case. - (warn_if_unused_value, case NOP_EXPR): OK if CALL_EXPR inside. - - * c-common.c (decl_attributes): Allow alignment for TYPE_DECLs. - - * Makefile.in (xsys-protos.h): Fix typo in -U operand. - -Thu Mar 16 13:49:10 1995 Per Bothner <bothner@rtl.cygnus.com> - - * cpplib.c, cpplib.h: New files - a C PreProcessor library. - * cpphash.c, cpphash.h, cppalloc.c, cpperror.c, cppexp.c: - New files - utility features used by cpplib. - * cppmain.c: New file - cpp replacement main program for cpplib. - * Makefile.in: New rules to build cppmain. - -Thu Mar 16 16:11:05 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.h (FUNCTION_PROLOGUE, HAVE_probe, gen_probe): Deleted. - (ENCODE_SECTION_INFO, VALID_MACHINE_DECL_ATTRIBUTE): New macro. - -Thu Mar 16 15:58:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (apply_distributive_law, case SUBREG): Fix typo when - checking for paradoxical SUBREG. - -Wed Mar 15 18:45:08 1995 Doug Evans <dje@cygnus.com> - - * libgcc1-test.c: Renamed from cross-test.c. - * Makefile.in (LIBGCC1_TEST): Renamed from CROSS_TEST. - (all.cross): Delete $(ENQUIRE) dependency. - (libgcc1-test): Renamed from cross-test. - Delete unnecessary gcc-cross and $(LIBGCC) dependencies. - Link with -nostartfiles -nostdlib - `$(GCC_FOR_TARGET) --print-libgcc-file-name`. - (libgcc1-test.o): Renamed from cross-test.o. - Change gcc-cross dependency to xgcc since the latter is used. - -Wed Mar 15 13:49:21 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * tree.c (save_tree_status): Now takes a tree 'context' instead of - a boolean 'toplevel' as an argument. If 'context' is not - current_function_decl, create a new obstack for the new function. - Also save inline_obstacks. - (restore_tree_status): No longer takes a second argument. Also - restore inline_obstacks. - (temporary_allocation): Clear inline_obstacks. - (permanent_allocation): Free up the obstacks in inline_obstacks. - - * function.h (struct function): New fields contains_functions and - inline_obstacks. - - * function.c (push_function_context_to): Now takes a tree - 'context' instead of a boolean 'toplevel' as an argument. - Also save current_function_contains_functions. - (push_function_context): Pass current_function_decl to it. - (pop_function_context_from): Takes 'context' instead of 'toplevel'. - Set current_function_contains_functions properly. - (pop_function_context): Pass current_function_decl to it. - -Wed Mar 15 14:53:09 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.md (abssi2): Turn into a define_expand. If - TARGET_POWER, do old code that uses the abs instruction. If not, - do abs in three instructions, using a temporary register, which - enables generating more reasonable code for sne. Add a recognizer - for negative of the absolute value. Add define_splits for the - PowerPC. - (sne insn): Add a recognizer for sne on the PowerPc to use two - instructions, compared to the four generated using the absolute - value insn. - -Tue Mar 14 18:38:40 1995 J.T. Conklin <jtc@cygnus.com> - - * m68k.md ({add,sub,mul,div}[sdx]f3): Add new patterns for recognizing - SImode, HImode, and QImode operands. - -Mon Mar 13 18:59:36 EST 1995 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (CPP_SPEC): Add PPC403. - (processor_type): Add PPC403. - (RTX_COSTS): Add PPC403. - * powerpc.h (CPP_SPEC): Add PPC403. - * sysv4.h (CPP_SPEC): Add PPC403. - * rs6000.c (processor_target_table): Add PPC403. - * rs6000.md (define_attr cpu and function units): Add PPC403. - -Mon Mar 13 14:40:23 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/rs6000.md (call, call_value insns): Do not put a nop - after a bl instruction on System V.4 and eABI. - - * rs6000/sysv.4 (SUBTARGET_SWITCHES): Add support for - -mno-traceback to suppress the V.4 traceback word. - (ASM_DECLARE_FUNCTION_NAME): Don't put out a traceback work if - -mno-traceback. - -Mon Mar 13 13:36:37 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * t-svr4, i386/t-{crtpic,sol2}, m88k/t-svr4, sparc/t-sol2: - Use -fPIC, rather than -fpic, for building crtstuff. - -Sat Mar 11 17:27:08 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * configure: Use aix3newas.h for AIX 3.2.4 and 5. - * rs6000/aix41.h: Undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. - * rs6000/aix3newas.h: New file. Define ASM_SPEC to -u, and - undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. - -Sat Mar 11 06:42:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * dbxout.c (dbxout_symbol): Properly handle decl whose DECL_NAME - points to a TYPE_DECL with a zero TYPE_NAME. - -Fri Mar 10 18:18:33 1995 Torbjorn Granlund <tege@cygnus.com> - - * pa.h (PROMOTE_MODE): Define. - -Fri Mar 10 14:37:58 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sdbout.c (sdbout_record_type_name): If TYPE_NAME is - a TYPE_DECL, get name from DECL_NAME. - -Fri Mar 10 14:09:26 1995 Doug Evans <dje@cygnus.com> - - * arm/riscix.h (SUBTARGET_SWITCHES): Renamed from - ARM_EXTRA_TARGET_SWITCHES. - * arm/riscix1-1.h (SUBTARGET_SWITCHES): Likewise. - * arm.h (SUBTARGET_SWITCHES): Likewise. - (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. - (TARGET_SWITCHES): Add -msoft-float, -mhard-float. - (BYTES_BIG_ENDIAN): Delete #ifndef/#endif. - (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable fp regs. - (FUNCTION_VALUE): R16 is return reg only if !-msoft-float. - (LIBCALL_VALUE): Likewise. - * arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT. - (*movsf_soft_insn, *movdf_soft_insn): New patterns. - -Fri Mar 10 13:53:46 1995 Jim Wilson <wilson@cygnus.com> - - * reorg.c (steal_delay_list_from_target): Exit at the top if the - branch in SEQ is not a single set. - - * sh.md (movdi define_split, movdf define_split): Correct indentation - and formatting. Make the condition fail if an operand is a MEM - with an auto-inc address. - - * varasm.c (copy_constant): Copy operand of ADDR_EXPR if it is a - constant. - - * mips/abi64.h (SETUP_INCOMING_VARARGS): Correct arguments to - move_block_from_reg call. - - * expr.c (expand_assignment): When offset is zero, make new MEM - before setting MEM_VOLATILE_P. - - * reload.c (find_reloads, case 'o'): Accept a fully reloaded - auto-increment address. - - * combine.c (max_uid_cuid): New static variable. - (INSN_CUID): Call abort if INSN is out of range. - (combine_instructions): Set max_uid_cuid. Set uid_cuid directly - instead of through INSN_CUID. - (get_last_value): Use prev_real_insn instead of prev_nonnote_insn. - Ignore USE insns generated by combine. - -Fri Mar 10 13:47:08 1995 Rod Barman <rodb@cs.ubc.ca> - - * m68k/fpgnulib.c (__fixdfsi): Catch values < 0.5 in magnitude. - -Fri Mar 10 12:02:33 1995 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Fix `typedef struct term;' on hppa1.1-hp-hpux9. - -Fri Mar 10 05:50:11 1995 Oliver Kellogg (Oliver.Kellogg@RST13.DASA.DBMAIL.d400.de) - - * 1750a.c (sectname): Reverse Init and Normal. - (print_operand_address, case PLUS): Add case for LABEL_REF. - (print_operand_address, case LABEL_REF): Split fom SYMBOL_REF. - (print_operand_address, case CODE_LABEL): New case. - (ASM_FILE_END): Delete. - * 1750a.h (FUNCTION_EPILOGUE): Restore stack before freeing local vars. - (DEFAULT_SIGNED_CHAR): Now 1. - (DATA_SECTION_ASM_OP): Use pseudo-op for read-only data (later copied). - (JUMP_TABLES_IN_TEXT_SECTION): Define. - (ASM_OUTPUT_ASCII): Split into multiple lines if long. - (ASM_OUTPUT_{CHAR,SHORT,INT,LONG_INT}): Split up. - (ASM_OUTPUT_COMMON): Call check_section. - -Thu Mar 9 12:46:53 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (movsf): Do not call truncdfsf2 for non PowerPC - when expanding a store to memory and -msoft-float was used. - -Thu Mar 9 08:51:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-decl.c (start_function): Handle new parameter ATTRIBUTES. - * c-tree.h (start_function): Add new parameter. - * c-lang.c (finish_file): Pass new parm to start_function. - * objc-act.c (build_module_descriptor, really_start_method): Likewise. - * c-parse.in (fndef, nested_function): Pass prefix_attributes - to start_function. - (setspecs): Save prefix_attributes in declspec_stack. - (decl rules): Restore prefix_attributes along with current_declspecs. - (setattrs): Concatenate prefix_attributes to previous value. - * c-common.c (decl_attributes): Handle prefix and suffix attributes - the same way. - - * print-tree.c (print_node): Fix typo in printing large INTEGER_CST. - - * varasm.c (assemble_variable): Consistently use DECL_SIZE for - everything. - - * c-typeck.c (convert_for_assignment): Fix typo in testing for - pointer to function type. - - * varasm.c (record_constant_1): Handle NON_LVALUE_EXPR. - Rewrite to use switch instead of if/then/elseif/else. - -Wed Mar 8 18:21:51 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (do_include): Fix type typo: pcfbuflimit is char *, not int. - -Wed Mar 8 17:30:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (force_fit_type): Always propagate OVERFLOW. - - * rtl.def (INLINE_HEADER): Add new "e" field. - * rtl.h (FORCED_LABELS): New field; other fields adjusted. - (gen_inline_header_rtx): New parm FORCED_LABELS. - * emit-rtl.c (gen_inline_header): Add new parm FORCED_LABELS. - * integrate.c (initialize_for_inline, output_inline_function): - Handle FORCED_LABELS. - -Wed Mar 8 13:47:20 1995 Jason Merrill (jason@cygnus.com) - - * alpha.h (WORD_SWITCH_TAKES_ARG): Add -rpath. - (LINK_SPEC): Pass through -taso and -rpath. - * alpha/osf12.h (LINK_SPEC): Ditto. - -Wed Mar 8 09:59:56 1995 Michael Meissner <meissner@cygnus.com> - - * rs6000/eabi.asm: Rewrite so that the initialized pointers go - into the .got2 section, which allows eabi.asm to be assembled with - the -mrelocatable option. Move the data picked up from the bl - instruction to before the traceback tag. - - * rs6000/sysv4.h (CPP_SPEC): Define _RELOCATABLE if -mrelocatable - switch is used. - - * libgcc2.c (__new_handler): Don't initialize the pointer variable - with the address of __default_new_handler, which may not work in - some shared library mechanisms. - (__builtin_new): If __new_handler is NULL, call the function - __default_new_handler. - -Tue Mar 7 17:34:59 1995 Ian Lance Taylor <ian@cygnus.com> - - * i960.h (PROCESS_PRAGMA): Define. - (ROUND_TYPE_ALIGN): Pass maximum of COMPUTED and SPECIFIED to - i960_round_align. - (ROUND_TYPE_SIZE): Delete. - * i960.c (process_pragma): Uncomment, and rewrite for gcc 2. - (i960_round_size): Delete. - (i960_round_align): Don't adjust suggested alignment downward. - Restrict alignment to value set by #pragma align. - -Tue Mar 7 12:14:46 1995 Doug Evans <dje@cygnus.com> - - * configure (sparc64-*-elf): Add crtbegin.o, crtend.o to extra_parts. - * sparc/sp64-elf.h (TARGET_VERSION): Define. - (CPP_PREDEFINES): Delete sun, sparc, unix. Delete OS assertions. - (ASM_SPEC): Define. - (LINK_SPEC): Delete solaris stuff, this is an embedded target. - (STARTFILE_SPEC, ENDFILE_SPEC): Define. - -Mon Mar 6 17:54:01 1995 Doug Evans <dje@cygnus.com> - - * Makefile.in (install-common): Fix typo in installation of cpp. - Likewise with gcc-cross. - -Mon Mar 6 02:29:05 1995 Jeffrey A. Law <law@mole.gnu.ai.mit.edu> - - * pa.md (movsicc): New expander. - -Fri Mar 3 13:34:20 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000/sysv4.h (ASM_SPEC): If -mrelocatable was passed to - compiler, pass it on to the assembler. - -Fri Mar 3 12:11:28 1995 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Add fixes for VxWorks header files. - * ginclude/stddef.h: If VxWorks typedef macros are defined, invoke - them as appropriate. - -Fri Mar 3 05:48:54 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (dump_single_macro): Fix typo: % wasn't properly - doubled in printf formats. - -Thu Mar 2 19:44:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * expr.c (expand_expr, CLEANUP_POINT_EXPR): Force the operand out - of memory before running cleanups. - -Thu Mar 2 19:15:24 1995 Paul Eggert <eggert@twinsun.com> - - * cccp.c (rescan): Prevent accidental token-pasting to - get !=, *=, /=, ==, or ^=. - -Thu Mar 2 15:37:13 1995 Jason Merrill <jason@phydeaux.cygnus.com> - - * c-typeck.c (build_binary_op): Avoid spurious warning - comparing enumerator to unsigned variable. - -Thu Mar 2 18:18:38 1995 J.T. Conklin <jtc@netbsd.org> - - * m68k.md (sqrtsf2,sqrtdf2): Use fp precision specifiers. - -Thu Mar 2 18:09:01 1995 Stephen L Moshier (moshier@world.std.com) - - * c-lex.c (yylex, case !NOT_FLOAT): Remove previous change. - -Thu Mar 2 15:26:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Makefile.in (bootstrap*): Pass new STAGE_PREFIX to recursive makes. - -Wed Mar 1 14:52:16 1995 Ian Lance Taylor <ian@cygnus.com> - - * i960/i960-coff.h (ASM_FILE_START): Define. - (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Define. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Define. - (INT_ASM_OP): Define. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. - * i960/vx960-coff.h (CPP_PREDEFINES): Define. - (CPP_SPEC): Define. - (CC1_SPEC): Default to -mca. - -Wed Mar 1 11:10:54 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000/rs6000.c (output_prologue): Do not emit the word that - gives the PC relative location to the local GOT table for the - -mrelocatable option here. - * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Emit it here. - - * t-eabi (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build -msoft-float - and -mrelocatable versions of the library. - - * rs6000/powerpc.h (CPP_PREDEFINES): Define the cpu and machine as - powerpc, not rs6000. - - * libgcc2.c (_unwind_function): Clone for powerpc, using the - PowerPC mnemonics. - - * rs6000/rs6000.md (uminsi3, umaxsi3): Silence warnings that - -2147483648 is too large to fit in a signed integer on 32-bit - hosts. - -Wed Mar 1 06:48:31 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (decode_field_reference): Don't check TREE_CODE - of EXP; let get_inner_reference decide if have reference. - Allow no bit reference if have AND_MASK. - (all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p. - (unextend): New function. - (fold_truthop): For constant cases, use new function, rework - conversion, and warn if comparison can never be true. - - * expr.c (store_expr): Do conversion in two steps for promoted lhs. - -See ChangeLog.9 for earlier changes. diff --git a/gcc/FSFChangeLog.11 b/gcc/FSFChangeLog.11 deleted file mode 100755 index 2bc3d59..0000000 --- a/gcc/FSFChangeLog.11 +++ /dev/null @@ -1,14493 +0,0 @@ -Wed Dec 31 18:40:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stmt.c (expand_asm_operands): Treat ASM with no outputs as volatile. - -Wed Dec 31 08:03:45 1997 Paul Eggert <eggert@twinsun.com> - - * toplev.c (flag_verbose_asm): Default to 0, not 1. - - * i386/bsd386.h (ASM_COMMENT_START): Define to " #". - -Tue Dec 30 17:38:55 1997 Jim Wilson <wilson@cygnus.com> - - * unroll.c (find_splittable_givs): Handle givs with - dest_reg created by loop. - -Tue Dec 30 14:21:33 1997 Ian Lance Taylor <ian@cygnus.com> - - * svr4.h (LINK_SPEC): Never specify -h. - * ptx4.h (LINK_SPEC): Likewise. - * rs6000/sysv4.h (LINK_SPEC): Likewise. - * sparc/sol2.h (LINK_SPEC): Likewise. - -Tue Dec 30 06:15:23 1997 Philippe De Muyter <phdm@macqel.be> - - * libgcc2.c (_eh_compat): Do not include stdlib.h, but provide a - private extern declaration for malloc. - -Mon Dec 29 06:56:41 1997 Laurent Guerby <guerby@gnat.com> - - * Makefile.in (stmp-int-hdrs): Add "touch". - -Sun Dec 28 19:36:05 1997 Stephen L Moshier <moshier@mediaone.net> - - * mips.h (CACHE_FLUSH_FUNC): New, defaults to _flush_cache. - (INITIALIZE_TRAMPOLINE): Use it. - * mips/ultrix.h (CACHE_FLUSH_FUNC): Define as cacheflush. - * mips/news4.h (CACHE_FLUSH_FUNC): Likewise. - -Sun Dec 28 08:19:13 1997 Paul Eggert <eggert@twinsun.com> - - * arm.c: Don't include assert.h. - * i960.c: Likewise. - (i960_arg_size_and_align): Rewrite to avoid assert. - * m88k.c: Don't include assert.h. - (expand_block_move): Rewrite to avoid assert. - * except.c: Don't include assert.h. - (scan_region): Rewrite to avoid assert. - (save_eh_status, restore_eh_status, scan_region): Don't bother - testing whether pointer is null. - * dwarfout.c, dwarf2out.c: Do not include assert.h. - (assert): New macro, since we can't use system assert. - -Sat Dec 27 19:08:17 1997 Stephen L Moshier <moshier@mediaone.net> - - * mips/ultrix.h (DWARF2_UNWIND_INFO): Define as 0. - -Fri Dec 26 05:57:06 1997 Philippe De Muyter <phdm@macqel.be> - - * m68k/mot3300.h (FINALIZE_TRAMPOLINE): Macro defined. - * libgcc2.c (__clear_insn_cache): New sysV68-specific helper function - for trampolines. - -Thu Dec 25 15:22:43 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rs6000.c (function_arg_padding): All aggregates pad upward. - -Wed Dec 24 18:05:13 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * sparc.c: Add prototypes for static functions. - (check_pic): Check for form of pic_pc_rtx, not it itself. - (pic_setup_code): New function, from finalize_pic. - (finalize_pic): Call pic_setup_code and insert after nonlocal_receiver. - * sparc.md (nonlocal_goto_receiver): New pattern. - -Tue Dec 23 05:54:38 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_builtin_setjmp): Call builtin_setjmp_receiver. - * mips.md (builtin_setjmp_receiver): New pattern. - - * crtstuff.c (__do_global_ctors_aux): Add missing call to - FORCE_INIT_SECTION_ALIGN and go back to text section. - * i386/sol2.h (FORCE_INIT_SECTION_ALIGN): Remove loop. - - * expr.c (do_store_flag): For shift, get bit count using tree_pow2. - -Tue Dec 23 05:21:18 1997 Paul Eggert <eggert@twinsun.com> - - * genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT too. - -Mon Dec 22 19:30:59 1997 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * sdbout.c (plain_type_1): Add missing checks for named types "char" - and "int" and check for int by size first. - -Mon Dec 22 19:13:58 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * m68k/xm-mot3300.h (ADD_MISSING_{POSIX,XOPEN}): Define. - * m88k/xm-sysv3.h: Likewise. - - * configure.in (getrlimit, setrlimit): Call AC_CHECK_FUNCS. - * cccp.c (main): Check HAVE_{G,S}ETRLIMIT in addition to RLIMIT_STACK. - * toplev.c (main): Likewise. - - * fixincludes (target_canonical): New variable. - (size_t): Add support for Motorola's stdlib.h which fails to provide - a definition for size_t. - (str{len,spn,cspn} return value): Handle different layout on sysV88. - (fabs/hypot): Provide a fake for hypot which is broken on - m88k-motorola-sysv3; emit a prototype for fabs on m88k-motorola-sysv3. - - * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in definition. - (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. - -Mon Dec 22 19:05:49 1997 Richard Henderson <rth@cygnus.com> - - * sparc.md (jump): Don't use the annul bit around an empty loop. - -Mon Dec 22 18:52:56 1997 Robert Lipe <robertl@dgii.com> - - * i386/x-sco5 (CLIB) Deleted. - (ALLOCA) Added. - * i386/xm-sco5.h (USE_C_ALLOCA) Added. - -Mon Dec 22 18:42:16 1997 Philippe De Muyter <phdm@macqel.be> - - * m68k/mot3300Mcrt0.S (mcount): Function removed. - (__stop_monitor): New function. - * m68k/mot3300-crt0.S (__stop_monitor): New (empty) function. - (mcount, mcount%, monitor): Common symbols removed. - * m68k/mot3300.h (FUNCTION_PROFILER): USE_GAS and !USE_GAS versions - fixed and merged. - (EXIT_BODY): Always call __stop_monitor without tricky tests. - -Mon Dec 22 18:35:05 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * objc/Make-lang.in (runtime-info.h, libobjc_entry.o): Create in - build directory. - (libobjc.a): Update dependency list. - (libobjc.dll): Likewise. Use libobjc_entry.o from build directory. - (objc/sendmsg.o): Add -Iobjc to find runtime-info.h. - (objc.mostlyclean): Remove runtime-info.h. - -Mon Dec 22 18:27:47 1997 Paul Eggert <eggert@twinsun.com> - - * libgcc2.c (_eh_compat): New section. - * Makefile.in (LIB2FUNCS): Add _eh_compat. - -Mon Dec 22 17:52:37 1997 Marcus G. Daniels <mgd@wijiji.santafe.edu> - - * objc/init.c (_objc_load_callback): Don't initialize. - -Sun Dec 21 15:06:00 1997 Paul Eggert <eggert@twinsun.com> - - * mips/xm-iris5.h (HAVE_INTTYPES_H): Force undefined. - -Sun Dec 21 14:51:51 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * dwarf2out.c (add_bound_info, case COMPONENT_REF): New case. - -Sun Dec 14 06:49:05 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Use placeholder_list - expression in preference to any other if correct type. - - * i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC - register used. - -Sat Dec 13 06:11:32 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * frame.h (__register_frame_info_table): Fix typo in declaration. - -Fri Dec 12 07:55:18 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * function.c (purge_addressof_1): For (mem (address (mem ...)), - when collapsing, preserve mode of outer MEM. - - * frame.c (__register_frame_info): Renamed from __register_frame. - (__register_frame_info_table, __deregister_frame_info): Similarly. - * frame.h (__{,de}register_frame_info): Likewise. - (__register_frame_info_table): New declaration. - * crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame. - (frame_dummy, __do_global_ctors): Likewise for __register_frame. - * collect2.c (write_c_file_{stat,glob}): Rename __register_frame - to __register_frame_info and similarly for __deregister_frame and - __register_frame_table. - - * sched.c (remove_dependencies): Set RTX_INTEGRATED_P on dependency - we delete. Properly update prev for multiple consecutive deletions. - (priority): Skip deleted dependence. - - * integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL, - look inside a (mem (addressof (mem ...))). - -Fri Dec 12 05:49:58 1997 Paul Eggert <eggert@twinsun.com> - - * collect2.c (write_c_file_glob): - Allocate initial frame object in static storage and pass its address. - -Thu Dec 11 18:01:31 1997 Philippe De Muyter <phdm@macqel.be> - - * acconfig.h (NEED_DECLARATION_GETENV): Define slot added. - -Thu Dec 11 17:54:23 1997 Paul Eggert <eggert@twinsun.com> - - * crtstuff.c (__do_global_ctors): Fix typo in last change. - -Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * libgcc2.c (__bb_exit_func): Fix test of return value of fopen. - -Wed Dec 10 07:07:37 1997 Bernd Schmidt <crux@starsky.Informatik.RWTH-Aachen.DE> - * combine.c (simplify_rtx, case ABS): Don't get confused by a - VOIDmode operand. - -Tue Dec 9 17:44:14 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (FUNCTION_ARG_PADDING): Define. - * rs6000.c (function_arg_padding): New function. - -Tue Dec 9 08:53:56 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. - -Mon Dec 8 19:23:58 1997 Pat Rankin <rankin@eql.caltech.edu> - - * toplev.c (get_run_time): [#if VMS] Cast arg in times call. - - * vax/xm-vms.h (HAVE_UNISTD_H): Define for DEC C. - * make-cccp.com [CC]: Add /Prefix=All for DEC C. - -Mon Dec 8 08:09:17 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stmt.c (expand_decl_cleanup_no_eh): Properly return a value. - - * fold-const.c (fold_convert): Don't flag overflow when converting - pointer to integer. - -Sun Dec 7 09:42:05 1997 Pat Rankin <rankin@eql.caltech.edu> - - * make-gcc.com (@make-l2): Pass along any command line arguments. - * make-l2.com: Add latent support to compile cp/inc/* if `cc1plus' - is specified [currently disabled]. - * make-cc1.com: When building with GNU C, use -O2. - * make-cccp.com: Likewise. - -Sun Dec 7 06:56:48 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * crtstuff.c (__do_global_ctors): Add missing arg to __register_frame. - - * collect2.c (write_c_file_stat): Fix error in last change; - use __SIZE_TYPE__, not size_t. - -Sun Dec 7 05:50:43 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c (strings.h): Fix misspelling of `include' introduced - in last change to this file. - -Sat Dec 6 18:54:11 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha/vms.h (CPP_PREDEFINES): Remove redundant setting - of GCC version and unneeded setting of __VMS_VER. - -Fri Dec 5 07:24:36 1997 Richard Stallman <rms@gnu.org> - - * sparc/linux64.h (TARGET_VERSION): Write "GNU/Linux". - * sparc/linux.h, sparc/linux-aout.h, rs6000/linux.h: Likewise. - * m68k/linux.h, arm/linux.h, alpha/{linux,elf}.h: Likewise. - * listing: Change linux to gnu-linux. - -Fri Dec 5 06:23:22 1997 Paul Eggert <eggert@twinsun.com> - - Alter C startup code so that it doesn't invoke malloc on Solaris. - * frame.h (struct object): Decl moved here from frame.c. - * frame.c (struct object): Move decl to frame.h. - ("frame.h"): Include after <stddef.h>, so that size_t is defined. - (__register_frame, __register_frame_table, __deregister_frame): - It's now the caller's responsibility to allocate storage for object. - * crtstuff.c (frame_dummy), collect2.c (write_c_file_stat): - Allocate initial frame object in static storage and pass its address. - * crtstuff.c (<stddef.h>, "frame.h"): Include. - * Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS): - Depend on defaults.h and frame.h. - - * Makefile.in (RTL_H, TREE_H): Add gansidecl.h. - (DEMANGLE_H): New macro. All dependencies on demangle.h - changed to $(DEMANGLE_H). - (RECOG_H): Likewise. - (libgcc2.a, stmp-multilib): Add dependencies on frame.h, gansidecl.h. - (collect.o): Add dependency on gansidecl.h. - (gcc.o, choose-temp.o, pexecute.o, prefix.o): Likewise. - (obstack.o, choose-temp.o, pexecute.o): Add dependency on $(CONFIG_H). - -Fri Dec 5 06:20:06 1997 Dean Deaver <deaver@amt.tay1.dec.com> - - * arm.md (casesi_internal): Add USE of label. - -Fri Dec 5 05:59:44 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (sys/times.h): Check for this instead of times.h. - * cpplib.c, toplev.c: Properly test for and include sys/times.h. - -Thu Dec 4 12:30:40 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (final_prescan_insn): Use local label prefix when emitting - .uses pseudo-ops. - -Thu Dec 4 07:00:48 1997 Richard Earnshaw <rearnsha@arm.com> - - * arm.c (arm_finalize_pic): Use an offset of 4 when adjusting the - GOT address. - -Thu Dec 4 06:58:32 1997 Dean Deaver <deaver@amt.tay1.dec.com> - - * genoutput.c (scan_operands): Treat format of "u" like "e". - -Thu Dec 4 06:28:33 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * msdos/top.sed, winnt/config-nt.sed: Change version to 2.8.0. - - * stmt.c (pushcase_range): Clean up handling of "infinite" values. - -Wed Dec 3 09:03:35 1997 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE> - - * i386.c (notice_update_cc): Remove bogus Pentium GCC code. - -Wed Dec 3 08:46:32 1997 Paul Eggert <eggert@twinsun.com> - - * arm.h (CPP_ARCH_DEFAULT_SPEC): Fix misspelling: `TARGET_CPU_DEFUALT'. - (TARGET_SWITCHES): Fix misspelling: `no-apcs-rentrant'. - * pa.c (override_options): Fix misspelling: `compatable'. - * enquire.c (main): Fix misspelling in diagnostic: `mallocatable'. - * gcov.c (function_summary): Fix misspelling in diagnostic: `funcion'. - * objc/thr-decosf1.c (__objc_thread_id): Fix misspelling in code: - `pthread_getuniqe_np'. - - * tahoe.c (extensible_operand): Renamed from extendable_operand. - All callers changed. - * dwarf2.h (enum dwarf_discrim_list): Renamed from dwarf_descrim_list. - * dwarf2out.c: Fix misspellings in forward static function - declarations: `add_AT_setion_offset', `add_sibling_atttributes'. - * dwarfout.c: Fix misspellings in forward static function - declarations: `langauge_attribute', `geneate_new_sfname_entry'. - * stmt.c, tree.h (start_cleanup_deferral): - Renamed from start_cleanup_deferal. - (end_cleanup_deferral): Renamed from end_cleanup_deferal. - * toplev.c (rest_of_compilation): Rename local var from - inlineable to inlinable. - -Wed Dec 3 06:17:03 1997 Jason Merrill <jason@yorick.cygnus.com> - - * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. - -Wed Dec 3 06:06:38 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (gen_type_die, case POINTER_TYPE): See TREE_ASM_WRITTEN - before the recursive call. - -Wed Dec 3 05:57:29 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (AC_HEADER_{STDC,TIME}): Add calls. - (AC_CHECK_HEADERS): Add fcntl.h times.h, sys/times.h, - sys/resource.h, and sys/param.h. - (getenv): Check if need declaration. - * cccp.c: Remove obsolete ways of including headers and use autoconf - symbols instead. - Include gansidecl.h; remove things defined there. - See if getenv needs to be declared. - * cpplib.c: Likewise. - * cexp.y: Use autoconf symbols to select what include files are needed. - * genattrtab.c, toplev.c: Likewise. - -Tue Dec 2 21:44:25 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload1.c (reload): Make copy of MEM before setting - req_equiv_mem if the address is a PLUS. - -Tue Dec 2 07:03:47 1997 Pat Rankin <rankin@eql.caltech.edu> - - * vax/xm-vms.h (STDC_HEADERS, HAVE_STDLIB, HAVE_STRING): Define. - (mesg_implicit_function_declaration): New macro. - - * make-l2.com: Compile libgcc2.c with `-fexceptions' specified. - -Mon Dec 1 17:44:59 1997 Jeffrey A Law (law@cygnus.com) - - * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to - output ASCII by default; only use ASM_OUTPUT_DWARF_STRING if - flag_debug_asm is on. - (output_die, output_pubnames, output_line_info): Likewise. - -Mon Dec 1 17:15:30 1997 Philip Blundell <pb@nexus.co.uk> - - * arm/linux.h (SUBTARGET_CPU_DEFAULT): Define instead - of TARGET_CPU_DEFAULT. - -Mon Dec 1 16:51:23 1997 J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * i386/mingw32.h (MATH_LIBRARY): Set to "-lcrtdll". - -Mon Dec 1 16:46:57 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-aux-info.c: Add prototypes for static functions. - * c-lex.c, emit-rtl.c, rtl.c, xcoffout.c: Likewise. - - * i386.h (TARGET_SWITCHES): Add entries for "windows" and "dll". - -Mon Dec 1 16:42:20 1997 Jim Wilson <wilson@cygnus.com> - - * mips.md (fix_trunc{dfsi,sfsi,dfsi}2): Add '*' in operand 3. - -Sun Nov 30 20:25:59 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (get_inner_reference): For ARRAY_REF, if need - WITH_RECORD_EXPR, make it with the ARRAY_REF as exp. - - * expr.c (store_constructor): Use TARGET, not EXP, for - WITH_RECORD_EXPR when offset has a placeholder. - -Sun Nov 30 11:19:00 1997 J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * objc/Make-lang.in (libobjc.dll): Rename -dll flag to -mdll. - -Sun Nov 30 08:42:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * stmt.c (expand_end_bindings): Cleanups and incoming gotos are - not incompatible. - -Sun Nov 30 05:45:06 1997 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * jump.c (jump_optimize): Use find_insert_position in two more places. - -Sat Nov 29 13:47:40 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha/vms.h (HAVE_STRERROR, HAVE_{LIMITS,STDDEF,TIME}_H): Define. - -Sat Nov 29 08:29:47 1997 J.J.van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * configure.in: Add check for kill. - * gcc.c: Define kill as raise if not HAVE_KILL. - -Sat Nov 29 06:18:08 1997 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * jump.c (find_insert_position): New function. - (jump_optimize): Use it when making new copy of insn after test. - -Sat Nov 29 05:54:57 1997 Douglas Rupp <rupp@gnat.com> - - * alpha/vms.h (BIGGEST_ALIGNMENT, ENCODE_SECTION_INFO): No longer - override. - -Sat Nov 29 05:43:37 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * getpwd.c (getpwd, [VMS]): Only add extra arg if VMS. - - * alpha/xm-vms.h (HAVE_VPRINTF, HAVE_PUTENV): Define. - - * cccp.c (index, rindex): Add conditional defs to strchr and strrchr.s - * cpplib.c: Likewise. - * gcov.c: Include gansidecl.h. - -Fri Nov 28 21:17:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * objc/objc-act.c: Include "output.h". - - * objc/Make-lang.in (objc-parse.o, objc-act.o): Also depend on - $(srcdir)/output.h. - - * objc/Object.m (+conformsTo:): Surround assignment with parentheses. - - * objc/archive.c, objc/class.c, objc/encoding.c: Finish prototyping. - * objc/init.c, objc/objc-act.c, objc/objc-api.h: Likewise. - * objc/runtime.h, objc/sendmsg.c: Likewise. - -Fri Nov 28 19:15:53 1997 Mark Kettenis <kettenis@phys.uva.nl> - - * objc/thr-posix.c (__objc_mutex_allocate): Allocate - mutex type instead of assuming it fits in a void * type. - (__objc_mutex_deallocate): Free mutex type. - (__objc_mutex_lock): Pass mutex type instead of pointer to it. - (__objc_mutex_{try,un}lock): Likewise. - (__objc_condition_allocate): Allocate condition type instead - of assuming it fits in a void * type. - (__objc_condition_deallocate): Free condition type. - (__objc_condition_wait): Pass condition type instead of pointer to it. - (__objc_condition_{broadcast,signal}): Likewise. - -Fri Nov 28 17:07:25 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (function_arg_partial_nregs): Undo 11/26 change. - -Fri Nov 28 12:34:03 1997 Scott Christley <scottc@net-community.com> - - * objc/Make-lang.in (runtime-info.h): Add comment in file. - - * objc/selector.c: Replace all occurences of sarray_get - with sarray_get_safe. - * objc/sendmsg.c: Likewise. - - * protoize.c (include_defaults): Add component element as in cccp.c. - * nextstep.h (INCLUDE_DEFAULTS): Add component element. - (ASM_COMMENT_START): Correct assembly comment string. - * objc/Make-lang.in (objc/{NXConstStr,Object,Protocol,linking): - Compile with GNU runtime. - -Fri Nov 28 12:27:50 1997 Ovidiu Predescu <ovidiu@net-community.com> - - Generate platform information required by ObjC runtime. - * toplev.c (lang_options): New ObjC specific compiler flag. - * objc/Make-lang.in: Add target to generate runtime-info.h file. - * objc/objc-act.c (print_struct_values): New variable. - (generate_struct_by_value_array): New function. - (lang_init): Call generate_struct_by_value_array if requested. - (lang_decode_option): Check for new compiler flag.s - * objc/sendmsg.c (__objc_get_forward_imp): Check size of type - for determining proper forwarding function. - -Fri Nov 28 05:58:30 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * regclass.c (record_address_regs): Use REG_OK_FOR_{INDEX,BASE}, - not the REGNO versions. - -Thu Nov 27 16:28:04 1997 Scott Snyder <snyder@d0sgif.fnal.gov> - - * dwarf2out.c (outout_call_frame_info): Ensure info has proper - alignment. - - * libgcc2.c (__throw): Initialize HANDLER. - -Thu Nov 27 16:23:25 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * tree.h, rtl.h: See if need declarations for free. - * tree.c, bc-optab.c: Get the declaration of free from stdlib.h. - -Thu Nov 27 07:21:54 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.h: Add outer_context_label_stack. - * except.c: Likewise. - (expand_start_all_catch): Push the outer_context for the try block - onto outer_context_label_stack. - (expand_end_all_catch): Use it and pop it. - - * except.c (expand_start_all_catch): One more do_pending_stack_adjust. - - * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. - -Thu Nov 27 07:15:10 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. - (print_operand{,_address}): Use SMALL_DATA_REG for register involved in - small data relocations. - - * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if - -dynamic linker is not used. - - * rs6000.md (call insns): For local calls, use @local suffix under - System V; don't use @plt under Solaris. - -Wed Nov 26 15:12:32 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. - - * toplev.c (flag_exceptions): Default value is 2. - (compile_file): If flag_exceptions still has the value 2, then - set it to 0. - -Wed Nov 26 14:58:42 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (output_function_profiler): Put label address in r0, and - store LR in 4(sp) for System V/eabi. - - * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 - byte boundary, and maintain stack backchain. - - (Originally from Geoffrey Keating) - * rs6000.c (function_arg): Excess floating point arguments don't - go into GPR registers after exhausting FP registers under the - System V.4 ABI. - (function_arg_partial_nregs): Likewise. - - * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt - suffix to calls. - -Wed Nov 26 14:09:01 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarfout.c (output_type): If finalizing, write out nested types - of types we've already written. - - * toplev.c (main): Complain about -gdwarfn. - -Wed Nov 26 12:37:56 1997 J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * mingw32.h (PATH_SEPARATOR): Moved to xm-mingw32.h - * xm-mingw32.h (PATH_SEPARATOR): Moved here from mingw32.h. - - * getpwd.c (getpwd): Use VMS implementation of _WIN32 unless cygwin32. - -Wed Nov 26 12:26:44 1997 John Hassey <hassey@dg-rtp.dg.com> - - * m88k/dgux.h (ASM_CPU_SPEC) : No whitespace allowed. - - * m88k.h (SUPPORTS_ONE_ONLY) : Must be svr4. - - * i386/dgux.h (ASM_OUTPUT_ALIGN): Deleted. - - * i386/dgux.c (output_file_start) : Changed ix86_isa_string - to ix86_arch_string. - - * cplus-dem.c (fancy_abort): Added. - -Wed Nov 26 06:07:50 1997 Richard Earnshaw <rearnsha@arm.com> - - * arm/coff.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_32 to defaults. - - * configure.in (arm*-*-*): Recognize --with-cpu for ARM processors. - -Wed Nov 26 05:05:36 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * libgcc2.c (inhibit_libc): Define #ifdef CROSS_COMPILE. - - * mips/xm-iris6.h (malloc, realloc, calloc): No longer declare. - (USG): Define here. - (xm-iris5.h): No longer include; just include xm-mips.h. - - * mips-tfile.c (parse_def): Properly recognize bitfield and - count array dimensions. - - * protoize.c: Remove declarations of void, exit, and free. - - * i386/mingw32.h (LINK_SPEC, STARTFILE_SPEC): Change -dll to -mdll. - - * configure.in: Check for sys/file.h. - * gcc.c (sys/file.h): Include if HAVE_SYS_FILE_H. - - * configure.in: Only give error on bad --with-cpu value for target. - -Sat Nov 22 19:21:55 1997 Philippe De Muyter <phdm@macqel.be> - - * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. - (ASM_OUTPUT_DWARF_VALUE4): New macro. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is - defined. - (output_call_frame_info): Don't output forward label differences - if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. - Substitute instead simple label and define this label later to be - difference of desired labels after they have been defined. - * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. - - * gcc.c (process_command): Don't take address of function fatal when - calling lang_specific_driver. - -Sat Nov 22 17:08:03 1997 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h (SELECT_RTX_SECTION): Redefine to work with -fpic. - (LIBGCC_SPEC, LIB_SPEC): Link with correct libgcc.a. - (HAVE_ATEXIT): Define. - -Sat Nov 22 12:20:22 1997 Richard Earnshaw <rearnsha@arm.com> - - * arm.md (movsfcc{,_hard}_insn): Specify mode for all alternatives. - -Sat Nov 22 06:56:16 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * function.c (instantiate_decl): Only ignore ADDRESSOF if arg is REG. - - * configure.in: Check for functions before checking which need decls. - (bcopy, bzero, bcmp, index, rindex): Add checks. - (vax-*-sysv*): Fix typo in setting of xm_file. - * aclocal.m4: Add conditional definitions of index and rindex. - * gansidecl.h (bcopy, bzero, bcmp, index, rindex): If don't - have one of these, define macro to use ANSI form. - * pa/xm-pahpux.h (bcopy, bzero, bcmp, rindex, index): No longer define. - * mips/xm-sysv.h, xm-m88k.h, m68k/xm-plexus.h: Likewise. - * m68k/xm-mot3300.h, m68k/xm-m68kv.h, m68k/xm-hp320.h: Likewise. - * winnt/xm-winnt.h, vax/xm-vms.h, m68k/xm-3b1.h: Likewise. - * i386/xm-os2.h, i386/xm-mingw32.h, alpha/xm-vms.h: Likewise. - * xm-svr4.h, xm-svr3.h: Likewise. - * clipper/xm-clix.h: Likewise. - (TARGET_MEM_FUNCTIONS): Define here. - * xm-linux.h (bcmp, bcopy, bzero, index, rindex): No longer undefine. - * xm-convex.h (bcopy, bzero): No longer define. - * vax/xm-vaxv.h, sparc/xm-pbd.h, mips/xm-iris{3,4,5}.h: Likewise. - * m68k/xm-crds.h, m68k/xm-altos3068.h, i386/xm-sun.h: Likewise. - * i386/xm-osf.h, i386/xm-aix.h, xm-i370.h, ns32k/xm-genix.h: Likewise. - -Sat Nov 22 06:46:26 1997 Paul Eggert <eggert@twinsun.com> - - * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: - Don't include <strings.h> unless there's no <string.h>. - -Fri Nov 21 06:46:50 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (i[3456]86-*-freebsd{,elf}*): Delete i386/xm-freebsd.h. - * xm-freebsd.h, i386/xm-freebsd.h: Deleted. - - * i386/xm-cygwin32.h (HAVE_RUSAGE, HAVE_FILE_H): Deleted. - * i386/xm-mingw32.h, rs6000/xm-cygwin32.h: Likewise. - - * xm-std32.h: New file, so far unused. - -Fri Nov 21 05:50:54 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (legitimize_pic_address): Make sure pic register marked used. - - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable if flag_debug_asm, not if flag_verbose_asm. - -Thu Nov 20 16:37:36 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_builtin_apply): Fix typo in last change. - - * expr.c (expand_assignment): If assigning to readonly field, - mark rtx as unchanging. - - * configure.in: Add checks for functions putenv, popen, and vprintf. - (i[3456]86-*-netbsd*): No longer need i386/xm-netbsd.h. - (i860-alliant-*): No longer need i860/xm-fx2800.h. - (m68k-ncr-sysv*): Use xm-svr3.h instead of m68k/xm-tower.h. - (m68k-sun-sunos*): No longer need m68k/xm-sun3.h. - (m68k-*-netbsd*): No longer need m68k/xm-netbsd.h. - (mips-dec-netbsd*): No longer need mips/xm-netbsd.h. - (ns32k-pc532-netbsd*): No longer need ns32k/xm-netbsd.h. - (sparc-*-netbsd*): No longer need sparc/xm-netbsd.h. - (vax-*-netbsd*): No longer need config/xm-netbsd.h. - * arm/xm-netbsd.h: No longer include xm-netbsd.h. - * xm-linux.h (HAVE_VPRINTF, HAVE_POPEN, HAVE_PUTENV): Deleted. - * xm-mips.h (HAVE_VPRINTF, HAVE_PUTENV): Deleted. - * i386/xm-osf.h, xm-arm.h, xm-alpha.h: Likewise. - * xm-sparc.h (HAVE_POPEN): Deleted. - * xm-sh.h (HAVE_VPRINTF): Deleted. - * mips/xm-iris4.h, mips/xm-iris5.h, xm-m88k.h: Likewise. - * m68k/xm-crds.h, m68k/xm-atari.h, m68k/xm-amix.h: Likewise. - * xm-svr3.h, xm-svr4.h, i386/xm-mingw32.h: Likewise. - * i386/xm-os2.h (HAVE_PUTENV): Deleted. - * i386/xm-dos.h, i386/xm-aix.h: Likewise. - * arm/xm-netbsd.h (HAVE_VPRINTF, HAVE_STRERROR): No longer - need undefine. - * xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: Deleted. - * mips/xm-netbsd.h, ns32k/xm-netbsd.h, sparc/xm-netbsd.h: Likewise. - * i860/xm-fx2800.h, m68k/xm-sun3.h, m68k/xm-tower.h: Likewise. - -Thu Nov 20 16:04:24 1997 Richard Earnshaw <rearnsha@arm.com> - - * explow.c (plus_constant_wide, case MEM): If about to call - force_const_mem, generate the rtl in a saveable obstack. - - * arm.md (movhi): Pass the full MEM to storeinthi, storehi and - storehi_bigend. - (storeinthi, storehi, storehi_bigend): Be more conservative about - when not to force a PLUS or MINUS into a REG. Use change_address - to create new MEMs. - -Wed Nov 19 15:16:04 1997 Ulrich Drepper <drepper@cygnus.com> - - * c-common.c (print_char_table): Add a and A to float formats. - (scan_char_table): Likewise. - (check_format_info): Recognize `a' as allocate flag only if used - in correct context. - -Wed Nov 19 12:56:54 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * configure.in: Fix check for <inttypes.h>. - -Tue Nov 18 19:27:01 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (attribute "type"): Add nil. - (movsi_ie): y/y alternative is type nil. - (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X. - (movsf_ie+1): Delete. - -Tue Nov 18 18:38:41 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c (warn_undef): Now static. - (eval_if_expression): Don't warn about undefined preprocessor symbols - in system headers. - * cexp.y (parse_c_expression): - Now takes new arg specifying whether to warn - about undefined preprocessor symbols. - (warn_undef): Now local and static; independent of warn_undef in cccp.c - (yylex): `register' -> `register int', needed for C9X. - - The following changes are only if TEST_EXP_READER is defined: - (expression_signedp): New var. - (start): Set expression_signedp to signedness of expression. - (print_unsigned_host_wide_int): New function. - (main): Use it to print value of expression, instead of hoping that - `long' is long enough. Print "u" after unsigned values. - -Tue Nov 18 18:33:30 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (save_restore_insns): If gp_offset or fp_offset are - large_int, emit two insns instead of one splitable insn. - * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset - from cfa_temp_value, use cfa_offset. Add assert checking that - cfa_reg is SP. - -Tue Nov 18 09:11:58 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (div_and_round_double): Return overflow for - divide-by-zero instead of aborting. - - * tree.c (substitute_in_expr, case TREE_LIST): Fix two typos. - -Tue Nov 18 05:03:52 1997 Jeffrey A Law <law@cygnus.com> - - * arm.c (output_move_double): Allocate 3 entries in otherops array. - -Tue Nov 18 02:41:01 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c (quote_string_for_make): New function. - (deps_output): Use it to fix bug with file name quoting in -M output. - -Mon Nov 17 13:28:33 1997 Philip Blundell <Philip.Blundell@pobox.com> - - * arm/lib1funcs.asm (__div0): Provide GNU/Linux implementation. - * arm/t-linux (LIB1ASMFUNCS): Use it. - -Mon Nov 17 09:13:59 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * function.c (purge_addressof_1): Make copy when substituting argument - of ADDRESSOF. - (fixup_var_refs_1): Likewise. - - * m68k.c: Include tree.h. - -Mon Nov 17 09:01:05 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * getpwd.c (getpwd, [VMS]): Add extra arg of 0 to getcwd call. - - * alpha/vms.h ({OPTIMIZATION,OVERRIDE}_OPTIONS): Delete, for now. - * alpha/xm-vms.h (DIR_SEPARATOR, PATH_SEPARATOR): Delete. - -Mon Nov 17 08:52:45 1997 Richard Earnshaw <rearnsha@arm.com> - - * function.c (fixup_stack_1): Also fix-up refs via ARG_POINTER_REGNUM. - - * configure.in (arm-*-netbsd*): Doesn't need collect2. - -Mon Nov 17 08:50:01 1997 Stephen L Moshier <moshier@world.std.com> - - * i386/isc.h (DWARF2_UNWIND_INFO): Define as 0. - -Mon Nov 17 08:42:28 1997 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * flow.c (propagate_block): Look for pre-inc/dec within PARALLEL. - -Mon Nov 17 03:14:46 1997 Paul Eggert <eggert@twinsun.com> - - * cpplib.c (file_size_and_mode): Remove. - (finclude): Don't assume long and off_t are same size or that - mode_t fits in int. - * cccp.c: (main, finclude, check_precompiled): Don't assume size_t - and off_t are same size. - * gcov.c (read_files): Don't assume off_t and unsigned are same size. - -Sun Nov 16 18:56:40 1997 Scott Christley <scottc@net-community.com> - - * objc/objc-act.c (objc_demangle): New function. - (objc_printable_name): New function. - (init_objc): Change default function. - - * expr.c (expand_builtin_apply): Prefer nonlocal over block. - -Sun Nov 16 18:10:13 1997 Fila Kolodny <fila@ibi.com> - - * i370.c (i370_function_prolog): New function from i370.h. - * i370.h (FUNCTION_PROLOG): Just call i370_function_prolog. - -Sun Nov 16 08:40:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * calls.c (expand_call, store_one_arg): Don't pass QImode arguments - to emit_library_call. - * expr.c (emit_push_insn, expand_assignment, store_expr): Likewise. - (expand_expr, expand_builtin): Likewise. - * function.c (put_var_into_stack, assign_parms): Likewise. - * alpha.c (alpha_builtin_saveregs): Likewise. - * clipper.c (clipper_builtin_saveregs): Likewise. - * m88k.c (m88k_builtin_saveregs): Likewise. - * pa.c (hppa_builtin_saveregs): Likewise. - * sparc.c (sparc_builtin_saveregs): Likewise. - -Sun Nov 16 07:39:08 1997 Paul Eggert <eggert@twinsun.com> - - * real.h (REAL_VALUES_IDENTICAL): New macro. - * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. - * fold-const.c (operand_equal_p): Don't consider -0.0 identical to 0.0. - * tree.c (simple_cst_equal): Likewise. - * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro. - -Sun Nov 16 07:29:12 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * acconfig.h (NEED_DECLARATION_{,R}INDEX): New cases. - * configure.in: See if need declarations for index and rindex. - * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: - Include stdlib.h, string.h, and strings.h, if they exist. - Only declare index and rindex if needed. - * collect2.c: Only declare free if needed. - - * regclass.c (record_address_regs): Refine choice of index and base - when have sum of two regs, one of which is a hard reg. - -Sun Nov 16 07:07:45 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define as in sysv4 and linux - (HAVE_ATEXIT): No longer define. This confused ELF destructors. - (DBX_DEBUGGING_INFO): Define. - -Sat Nov 15 09:55:11 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept MINUS (until reload - knows what to do with it). - -Thu Nov 13 11:07:41 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to - pick apart floating point values, instead of using CONST_DOUBLE_LOW - and CONST_DOUBLE_HIGH. - - * rs6000.md (define_splits for DF constants): Use the appropriate - REAL_VALUE_* interface to pick apart DF floating point constants in - a machine independent fashion. - -Thu Nov 13 07:30:53 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm/netbsd.h (LINK_SPEC): Redefine -- pass -X. - - * arm.md (movsicc_insn): Add extra reload alternatives for better - register tying. - (movsfcc_hard_insn, movsfcc_soft_insn, movdfcc_insn): Likewise. - -Mon Nov 10 19:32:14 1997 Doug Evans <dje@cygnus.com> - - * sparc.md (mov[sdt]f_const_insn): Fix condition to match what - instruction can handle. - -Mon Nov 10 03:02:19 1997 Jason Merrill <jason@yorick.cygnus.com> - - * stmt.c (expand_decl_cleanup_no_eh): New fn. - - * except.c (expand_leftover_cleanups): do_pending_stack_adjust. - -Sun Nov 9 14:34:47 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (lshrdi3_power): Delete '&' from first alternative and - swap instruction order. - -Sun Nov 9 09:51:08 1997 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * machmode.def (QCmode, HCmode): New modes. - -Sun Nov 9 09:24:21 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (sets_function_arg_p): New function. - (combinable_i3pat): Check if combining with any but the first - argument register setting insn for a function call. - - * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid sheduling load from - stack slot. - -Sun Nov 9 09:17:53 1997 Richard Earnshaw (rearnsha@arm.com) - - * loop.c (strength_reduce): If initial value of BIV is equivalent to - a constant, record that as initial value. - (check_dbra_loop): Don't reverse loop if initial value isn't CONST_INT. - -Sun Nov 9 09:12:41 1997 Tristan Gingold <gingold@haendel.enst.fr> - - * expr.c (emit_push_insn): Avoid infinite recursion - when -fcheck-memory-usage. - -Sun Nov 9 08:03:42 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * cse.c (simplify_binary_operation): Fix error in last change. - -Sun Nov 9 07:56:31 1997 Pat Rankin <rankin@eql.caltech.edu> - - * vmsconfig.com [version.opt]: Parse version string more robustly. - [@variable@]: Discard configure tokens when using Makefile.in. - [libgcc2-cxx.list]: Generate this new file for CXX_LIB2FUNCS. - [cp/input.c]: Suppress it as workaround to avoid linker warning. - [objc-parse.y]: Now lives in the objc subdirectory. - * make-cc1.com [objc-parse.{c,y}]: Ditto. - * make-cccp.com [prefix.c]: Compile additional source file. - - * cccp.c (VMS_freopen, VMS_fopen, VMS_open, VMS_fstat): Call - corresponding library routine specified via its ordinary name - rather than with a decc$ prefix. (Reverses Oct 19 change.) - - * cccp.c, cexp.y [HOST_WIDE_INT]: Manually splice long lines - of avoid backslash+newline continuation on #if directives. - -Sun Nov 9 01:54:54 1997 Jeffrey A Law (law@cygnus.com) - - * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions - are shared. - -Sat Nov 8 23:01:37 1997 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * cse.c (simplify_binary_operation): Don't simplify divide by zero - for targets that don't support a representation of INFINITY. - -Sat Nov 8 22:37:29 1997 Richard Earnshaw <rearnsha@arm.com> - - * Makefile.in (cse.o): Depend on expr.h. - * cse.c: Include expr.h. - (fold_rtx, case MEM): For ADDRESSOF, create new MEM. - -Sat Nov 8 19:27:56 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * expr.c (expand_increment): When enqueing a postincrement for a MEM, - use copy_to_reg if address is not a general_operand. - -Sat Nov 8 18:39:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (L_eh): Define __eh_pc here. - Replace __eh_type with generic pointer __eh_info. - -Sat Nov 8 07:03:47 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.h (SECONDARY_OUTPUT_RELOAD_CLASS): If FLOAT_REGS, - need secondary reload for QImode and HImode even if BWX. - - * expmed.c (store_split_bit_field): Force ADDRESSOF into register. - - * cse.c (fold_rtx, case ADDRESSOF): New case (that does nothing). - - * function.c (fixup_var_refs_1, case ADDRESSSOF): Check that - new value is valid for insn. - - * stor-layout.c (get_best_mode): Refine test for field within - unit to work properly for negative positions. - - * print-rtl.c (print_inline_rtx): Save and restore sawclose and indent. - - * reload.c (find_replacement): If PLUS, MINUS, or MULT, see if - either arg contains a replacement. - -Fri Nov 7 10:22:24 1997 Jason Merrill <jason@yorick.cygnus.com> - - * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for - linked once FDEs. - -Fri Nov 7 06:50:57 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.h (FUNCTION_VALUE): Take into account promotion of pointers. - - * unroll.c (back_branch_in_range_p): Refine check for INSN at loop end. - -Wed Nov 5 18:17:50 1997 Paul Eggert <eggert@twinsun.com> - - * fixinc.svr4: Replace `__STDC__ - 0 == 1' - with `defined (__STRICT_ANSI__)'. - -Tue Nov 4 18:32:44 1997 Jim Wilson <wilson@cygnus.com> - - * mips.md (insv, extzv, extv): Add change_address call. - (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. - * mips.c (mips_expand_epilogue): Emit blockage insn before call to - save_restore_insns if no FP and GP will be restored. - - * acconfig.h (HAVE_INTTYPES_H): Undef. - * configure.in (inttypes.h): Check for conflicts between sys/types.h - and inttypes.h, and verify that intmax_t is defined. - * mips/x-iris (CC, OPT, OLDCC): Comment out. - * mips/x-iris3: Likewise. - -Tue Nov 4 17:28:31 1997 Doug Evans <dje@cygnus.com> - - * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. - (yylex): Record wide strings using target endianness, not host. - -Tue Nov 4 16:18:19 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (distdir-start): Add dependency on $(srcdir)/config.in. - -Tue Nov 4 06:14:30 1997 Paul Eggert <eggert@twinsun.com> - - * c-lex.c (yylex): Don't warn about constants like - 9223372036854775807 and 18446744073709551615U on an L32LL64 host - unless pedantic. - -Mon Nov 3 18:42:44 1997 Jim Wilson <wilson@cygnus.com> - - * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. - * i386.md (prologue_{set_got,get_pc}): Add UNSPEC_VOLATILE to pattern. - (prologue_get_pc_and_set_got): New pattern. - -Mon Nov 3 13:42:21 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c, cpplib.c (compare_defs): Don't complain about arg name - respellings unless pedantic. - * cpplib.c (compare_defs): Accept pfile as new arg. - All callers changed. - -Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) - - * global.c (global_alloc): Free the conflict matrix after - reload has finished. - -Thu Oct 30 17:30:42 1997 Doug Evans <dje@cygnus.com> - - * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. - Set extra_parts. - (sparc*-*-*): Recognize --with-cpu=v9. - * sparc/elf.h: New file. - * sparc/t-elf: New file. - -Thu Oct 30 16:36:17 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stmt.c (expand_asm_operand): If error in matching constraint, - don't emit asm. - -Thu Oct 30 12:21:06 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * va-sh.h (__va_arg_sh1): Define. - (va_arg): Use it. - SH3E doesn't use any integer registers for subsequent arguments - once a non-float value was passed in the stack. - * sh.c (machine_dependent_reorg): If optimizing, put explicit - alignment in front label for ADDR_DIFF_VEC. - * sh.h (PASS_IN_REG_P): Fix SH3E case. - (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. - -Tue Oct 28 21:09:25 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.md (btst patterns): Add 5200 support. - -1997-10-28 Brendan Kehoe <brendan@cygnus.com> - - * global.c (global_alloc): Use xmalloc instead of alloca for - CONFLICTS, since max_allocno * allocno_row_words alone can be more - than 2.5Mb sometimes. - -Tue Oct 28 15:06:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including - svr4.h. - -Tue Oct 28 10:19:01 1997 Jason Merrill <jason@yorick.cygnus.com> - - From Brendan: - * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". - -Mon Oct 27 16:01:14 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. - -Mon Oct 27 16:11:52 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (machine_dependent_reorg): When -flag_delayed_branches, - put an use_sfunc_addr before each sfunc. - * sh.md (use_sfunc_addr, dummy_jump): New insns. - (casesi): For TARGET_SH2, emit a dummy_jump after LAB. - -Mon Oct 27 11:49:43 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2.h: Remove dwarf2out prototypes. - * tree.h: And put them here. - * m68k.c, i386.c: Don't include dwarf2.h. - -Mon Oct 27 00:02:13 1997 Paul Eggert <eggert@twinsun.com> - - Remap include files with header.gcc only if user or configuration - file specifies "-remap". - - * cccp.c (remap): New var. - (main): Set it if user specifies "-remap". - (open_include_file): Remap only if `remap' is nonzero. - - * cpplib.h (struct cpp_options): New member `remap'. - * cpplib.c (cpp_options_init): Set remap to 0. - (open_include_file): Remap only if `remap' is nonzero. - (cpp_handle_options): Set remap if user specifies "-remap". - - * i386/cygwin32.h, rs6000/cygwin32.h (CPP_SPEC): Define with -remap. - -Sun Oct 26 11:41:49 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 - bit PC-relative offset. The exception range table pointer is now in - the CIE. - * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. - (count_fdes, add_fdes, get_cie): Adjust. - (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. - - From H.J. Lu: - * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. - -Sat Oct 25 20:29:39 1997 Alexandre Oliva <oliva@dcc.unicamp.br> - - * Makefile.in (float.h-nat): If float.h is to be empty, ensure it is. - -Sat Oct 25 20:16:52 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, - use varargs.h. Wrap header with <>, not "". - -Sat Oct 25 20:10:57 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (EH_FRAME_SECTION_ASM_OP{,_ELF,_COFF}): Define. - (DWARF2_UNWIND_INFO): Likewise. - (EXTRA_SECTIONS): Add in_eh. - -Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. - (TARGET_MULT_BUG): Define. - (TARGET_DEFAULT): Default to TARGET_MULT_BUG. - * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. - -Fri Oct 24 15:43:57 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (toplevel): Move include stdio.h before config.h. - - (Patch from H.J. Lu, Aug 27, 1997) - * rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New; defined as 1. - - (Patch from Jeff Law, Oct 22, 1997) - * rs6000.c (struct machine_function): Add pic_offset_table_rtx. - (rs6000_{save,restore}_machine_status): Save/restore it. - - * rs6000.md (movsi_got_internal_mem): New pattern to work around - case where GOT value did not get a register. - (movsi_got_internal_mem splitter): Split above pattern. - - (Patch from Geoffrey Keating, Oct 21, 1997) - * rs6000.c (rs6000_stack_info): Avoid creating a stack - frame under System V ABI if we only need to save the LR. - - (Patch from Joel Sherrill, Sep 1, 1997) - * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add new macro - EXTRA_SUBTARGET_SWITCHES, which defaults to nothing. - - (Patch from Geoffrey Keating, Oct 20, 1997) - * rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS{,_S}): Add -msdata=none - switch. - -Fri Oct 24 15:25:50 1997 Doug Evans <dje@cygnus.com> - - * sparc.h (ASM_SPEC): Delete. - -Fri Oct 24 13:16:24 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.c (indirect_memory_operand): Delete unused function. - * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. - * mn10200.md (bset, bclr insns): Handle output in a reg too. - - * mn10300.c (symbolic_operand, legitimize_address): New functions. - * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. - -Thu Oct 23 08:03:59 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string - for FILENAME. - -Tue Oct 21 16:18:13 1997 Paul Eggert <eggert@twinsun.com> - - * winnt/win-nt.h (CPP_SPEC): Remove reference to obsolete - option -lang-c-c++-comments. - -Tue Oct 21 10:00:20 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi): Avoid using address registers as - destinations unless absolutely necessary. - - * mn10200.c (expand_prologue): Fix typo. - - * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses. - * mn10200.md (neghi2): Provide an alternative which works if - the input and output register are the same. - - * mn10300.c (print_operand): Handle 'S'. - * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for - shift amount in last alternative - - * mn10300.c (expand_epilogue): Rework to handle register restores - in "ret" and "retf" instructions correctly. - -Tue Oct 21 07:35:19 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (insv): Avoid writing result into a paradoxical subreg. - -Tue Oct 21 07:12:28 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. - -Mon Oct 20 12:04:04 1997 Nick Clifton <nickc@cygnus.com> - - * v850.h (CPP_SPEC): Define __v850__. - (CPP_PREDEFINES): Do not define __v850__. - - * xm-v850.h: Use __v850 rather than __v850__ to identify v850 port. - -Mon Oct 20 17:29:55 1997 Doug Evans <dje@cygnus.com> - - * sparc.h (SPARC_V9,SPARC_ARCH64): Delete. - (DEFAULT_ARCH32_P): New macro. - (TARGET_ARCH{32,64}): Allow compile time or runtime selection. - (enum cmodel): Declare. - (sparc_cmodel_string,sparc_cmodel): Declare. - (SPARC_DEFAULT_CMODEL): Provide default. - (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. - (TARGET_FULLANY): Deleted. - (TARGET_CM_MEDMID): New macro. - (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). - (CPP_SPEC): Rewrite. - (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. - (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (ASM_SPEC): Add %(asm_arch). - (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. - Rename asm_default to asm_cpu_default. - Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, - cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. - (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. - ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. - (MASK_INT64,MASK_LONG64): Delete. - (MASK_ARCH64): Renamed to MASK_64BIT. - (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. - (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. - (TARGET_SWITCHES): Always provide 64 bit options. - (ARCH64_SWITCHES): Delete. - (TARGET_OPTIONS): New option -mcmodel=. - (INT_TYPE_SIZE): Always 32. - (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. - (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... - (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. - (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. - * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by - CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - * sparc/linux.h: Likewise. - * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (LONG_DOUBLE_TYPE_SIZE): Define. - (ASM_SPEC): Add %(asm_arch). - * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (TARGET_CPU_DEFAULT): Add ultrasparc case. - * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete - MASK_LONG64, MASK_MEDANY. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Delete. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (ASM_SPEC): Add %(asm_arch). - (LONG_DOUBLE_TYPE_SIZE): Define. - (DWARF2_DEBUGGING_INFO): Define. - * sparc/splet.h (CPP_SPEC): Delete. - * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. - (BLOCK_PROFILER): Likewise. - * sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. - (sparc_override_options): Handle code model selection. - (sparc_init_expanders): Renamed from sparc64_init_expanders. - * sparc.md: TARGET_<code_model> renamed to TARGET_CM_.... - TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. - (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... - (sethi_di_fullany): Delete. - -Mon Oct 20 17:20:17 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (compute_frame_size): Not a leaf function if profile_flag set. - -Sun Oct 19 17:46:02 1997 Douglas Rupp <rupp@gnat.com> - - * cccp.c (OBJECT_SUFFIX): Add default definition. - (main): Use OBJECT_SUFFIX. - (VMS_{freopen,fopen,open}): Use instead of using macro on - unprefixed name. - (VMS_fstat): Use decc$fstat explicitly, not via macro. - -Sun Oct 19 09:07:38 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * prefix.c (get_key_value): Initialize prefix to null. - * Makefile.in (prefix.o): Properly pass in prefix. - - * objc/Make-lang.in (objc.distdir): Make the objc directory. - * Makefile.in (distdir-start): No longer depend on objc-parse.[cy]. - Don't copy objc files here. - (TAGS): Don't delete objc-parse.y - - * i386/mingw32.h (LIB_SPEC): Add -ladvapi32. - (STARTFILE_SPEC): If -dll, use dllcrt1.o. - (INCOMING_RETURN_ADDR_RTX): Undefine. - - * Makefile.in (float.h-nat): Avoid using /dev/null for input, - since it's not present on all systems. - - * prefix.c : New file. - * Makefile.in (xgcc, cccp, cppmain, fix-header): Add prefix.o. - (prefix.o): New rule. - * cccp.c (update_path): Add extern definition. - (struct default_include): New field `component'. - (default_include): Add initializer for new field to all entries. - (new_include_prefix): Take new arg and call update_path; - all callers changed. - Add trailing "." before doing stat of file. - * cpplib.c (update_path): Add extern definition. - (struct default_include): New field `component'. - (default_include): Add initializer for new field to all entries. - (cpp_start_read): Call update_path. - * gcc.c (upate_path): Add extern definition. - (find_a_file): For MS-DOS-based, consider a drive spec as absolute. - (add_prefix): New arg component and pass to update_path; - all callers changed. - * netbsd.h (INCLUDE_DEFAULTS): Add `component' to values. - * i386/freebsd.h, mips/netbsd.h, winnt/win-nt.h: Likewise. - * i386/mingw32 (STANDARD_INCLUDE_COMPONENT): New macro. - * vax/vms.h (INCLUDE_DEFAULTS): New macro. - * vax/xm-vms.h (INCLUDE_DEFAULTS): Delete from here. - - * sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): New macro. - - * i386.c (ix86_prologue): Conditionalize Dwarf2 calls - on #ifdef INCOMING_RETURN_ADDR_RTX. - * i386.md (allocate_stack): Fix incorrect operand number. - - * alpha.c (vmskrunch): Deleted. - (output_prolog, VMS): Use alloca for entry_label and don't - truncate to 64 characters. - * alpha/vms.h (vmskrunch): No longer define. - (ENCODE_SECTION_INFO): No longer call vmskrunch. - (ASM_DECLARE_FUNCTION_NAME): No longer override. - - * toplev.c (output_quoted_string): Call new OUTPUT_QUOTED_STRING macro. - * i386/mingw32.h (OUTPUT_QUOTED_STRING): New macro. - - * stmt.c (using_eh_for_cleanups_p): New variable. - (using_eh_for_cleanups): New function. - (expand_decl_cleanup): Don't call expand_eh_region_start_tree - unless using EH for cleanups. - - * function.c (purge_addressof_1): When dealing with a - bare (address (mem)), verify that what's inside is valid in insn. - (instantiate_virtual_regs_1, case ADDRESSOF): If have MEM, just - do instantiation inside and leave alone here. - - * fold-const.c (fold, case COND_EXPR): Allow creation - of {MIN,MAX}_EXPR, but preserve info on orginal comparison code. - - * function.h (restore_tree_status): Update prototype. - - * cse.c (cse_basic_block): Flush the hash table every 1,000 insns. - -Sat Oct 18 13:48:14 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * longlong.h (count_leading_zeros): Add missing casts to USItype. - -Sat Oct 18 13:35:09 1997 Marc Lehmann (pcg@goof.com) - - * toplev.c (main): Don't execute "ps" under MSDOS. - -Sat Oct 18 13:26:42 1997 Richard Earnshaw (rearnsha@arm.com) - - * function.c (instantiate_virtual_regs): Don't instantiate the - stack slots for the parm registers until after the insns have had - their virtuals instantiated. - - * varargs.h (va_arg): For ARM systems, definition is endian-dependent. - * stdarg.h (va_arg): Likewise. - -Sat Oct 18 11:23:04 1997 Nick Clifton <nickc@cygnus.com> - - * final.c (end_final): Use ASM_OUTPUT_ALIGNED_DECL_LOCAL if defined. - * varasm.c (assemble_static_space): Likewise. - (assemble_variable): Use ASM_OUTPUT_ALIGNED_DECL_{COMMON,LOCAL} if def. - -Sat Oct 18 11:02:19 1997 Doug Evans <dje@canuck.cygnus.com> - - * expr.c (use_group_regs): Don't call use_reg unless REG. - -Sat Oct 18 10:39:22 1997 Jim Wilson <wilson@cygnus.com> - - * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse - redundant conditional moves to single operand. - - * expmed.c (extract_bit_field): Don't make flag_force_mem disable - extzv for memory operands. - -Sat Oct 18 09:58:44 1997 Jeffrey A Law <law@cygnus.com> - - * ptx4.h: Fix typo. - - * integrate.c (save_for_inline_copying): Avoid undefined pointer - operations. - (expand_inline_function): Likewise. - -Sat Oct 18 09:49:46 1997 Jason Merrill <jason@yorick.cygnus.com> - - * tree.c (restore_tree_status): Also free up temporary storage - when we finish a toplevel function. - (dump_tree_statistics): Print stats for backend obstacks. - - * libgcc2.c (__throw): Don't copy the return address. - * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. - - * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. - * tree.h: Declare them. - - * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). - * toplev.c (main): Initialize exceptions_via_longjmp. - - * tree.c: Add extra_inline_obstacks. - (save_tree_status): Use it. - (restore_tree_status): If this is a toplevel inline obstack and we - didn't want to save anything on it, recycle it. - (print_inline_obstack_statistics): New fn. - * function.c (pop_function_context_from): Pass context to - restore_tree_status. - -Sat Oct 18 09:45:22 1997 Michael Meissner <meissner@cygnus.com> - - * profile.c (get_file_function_name): Remove declaration. - * c-lang.c (finish_file): Likewise. - -Sat Oct 18 09:35:40 1997 Tristan Gingold <gingold@messiaen.enst.fr> - - * expr.c (expand_assignment): If -fcheck-memory-usage, add call to - chkr_check_addr if size not zero. - (expand_expr, case COMPONENT_REF): Likewise. - (expand_builtin): If -fcheck_memory-usage, check memory usage - of operands for strlen, strcpy, and memcpy or don't use builtins - for memcmp and strcmp. - * expr.h (chkr_check_str_libfunc): Declare. - * optabs.c (chkr_check_str_libfunc): New variable. - (init_optabs): Initialize it. - -Sat Oct 18 09:29:21 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * i386/cygwin32.h (ASM_COMMENT_START): Redefine. - -Sat Oct 18 09:23:54 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * frame.c (__frame_state_for): Execute the FDE insns until the - current pc value is strictly bigger than the target pc value. - - * expr.c (expand_expr, case TARGET_EXPR): If target and slot has - no DECL_RTL, then call mark_addressable again for the slot after - we give it RTL. - -Sat Oct 18 08:58:36 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) - - * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Unconditionally define. - * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not - __DOLPHIN__. - - * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment. - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable to let GNU as accept the generated comments. - - * m88k.c (m88k_begin_prologue): Remove superfluous backslash. - -Sat Oct 18 08:50:04 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * flow.c (print_rtl_with_bb): Cast alloca return values. - -Sat Oct 18 08:47:46 1997 Douglas Rupp <rupp@gnat.com> - - * alpha/vms.h (LITERALS_SECTION_ASM_OP, ASM_OUTPUT_DEF): - (EXTRA_SECTION_FUNCTIONS): Add literals_section. - (EXTRA_SECTIONS): Include in_literals. - -Sat Oct 18 08:40:55 1997 Nick Burrett <nick.burrett@btinternet.com> - - * cpplib.c: (initialize_builtins): Cast all string constants for the - function install, to type U_CHAR *. - (eval_if_expression): Likewise. - * cppexp.c: (cpp_lex): Cast string, for cpp_lookup, to type U_CHAR *. - -Sat Oct 18 08:38:13 1997 Ken Raeburn <raeburn@cygnus.com> - - * c-lex.c (check_newline) At `skipline', flush nextchar as well. - -Sat Oct 18 08:17:13 1997 Paul Russell <Paul.Russell@RustCorp.com.au> - - * input.h (struct file_stack): Added indent_level. - * c-lex.c (check_newline): Add {}-count & balance warning. - -Sat Oct 18 06:54:39 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * regclass.c (record_address_regs, case PLUS): Refine how to choose - which is base and index. - - * alpha.h (FUNCTION_VALUE): Use word_mode only for integral types, - not types with integral modes. - - * final.c (alter_cond): Properly conditionalize forward decl. - - * tree.h (SAVE_EXPR_NOPLACEHOLDER): New flag. - * tree.c (contains_placeholder_p, case SAVE_EXPR): Avoid - checking each SAVE_EXPR more than once. - - * rs6000.md (nonlocal_goto_receiver): Don't test pool size. - - * i386.c (load_pic_register): New function. - (ix86_prologue): Code to load PIC register moved to new function. - Don't emit blockage if not generating RTL. - * i386.md (nolocal_goto_receiver): New pattern. - - * i386.c: Major cleanup, mostly reformatting. - Include dwarf2.h. - Remove many spurious casts. - (ix86_{pro,epi}logue): Use proper mode for SET rtx. - -Fri Oct 17 17:13:42 1997 David S. Miller <davem@tanya.rutgers.edu> - - * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. - * sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY. - * sparc.c (output_double_int): Output DI mode values - correctly when HOST_BITS_PER_WIDE_INT is 64. - (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use - fmovd so it works if a quad float ends up in one of the upper 32 - float regs. - * sparc.md (pic_{lo_sum,sethi}_di): New patterns for PIC support - on sparc64. - -Fri Oct 17 16:27:07 1997 Doug Evans <dje@cygnus.com> - - * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. - * sparc.h (PROMOTE_MODE): Promote small ints if arch64. - (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. - (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. - (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. - (SPARC_FP_ARG_FIRST): New macro. - (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. - (NPARM_REGS): There are 32 fp argument registers now. - (FUNCTION_ARG_REGNO_P): Likewise. - (FIRST_PARM_OFFSET): Update to new v9 abi. - (REG_PARM_STACK_SPACE): Define for arch64. - (enum sparc_arg_class): Delete. - (sparc_arg_count,sparc_n_named_args): Delete. - (struct sparc_args): Redefine and use for arch32 as well as arch64. - (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. - (FUNCTION_ARG_ADVANCE): Rewrite. - (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. - (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. - (FUNCTION_ARG_CALLEE_COPIES): Delete. - (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. - (STRICT_ARGUMENT_NAMING): Define. - (doublemove_string): Declare. - * sparc.c (sparc_arg_count,sparc_n_named_args): Delete. - (single_move_string): Use GEN_INT, and HOST_WIDE_INT. - (doublemove_string): New function. - (output_move_quad): Clean up some of the arch64 support. - (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. - Don't add 8 bytes of reserved space if arch64. - (sparc_builtin_saveregs): Combine arch32/arch64 versions. - (init_cumulative_args): New function. - (function_arg_slotno): New static function. - (function_arg,function_arg_partial_nregs): New functions. - (function_arg_{pass_by_reference,advance}): New functions. - (function_arg_padding): New function. - * ginclude/va-sparc.h: Rewrite v9 support. - -Fri Oct 17 13:21:45 EDT 1997 Philip Blundell <pb@nexus.co.uk> - - * arm/netbsd.h (TYPE_OPERAND_FMT): use % not @ to avoid - problems with comments. - -Fri Oct 17 13:00:38 EDT 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm/aout.h (ASM_OUTPUT_LABEL): Define in place of ARM_OUTPUT_LABEL. - * arm/aof.h (ASM_OUTPUT_LABEL): Likewise. - * arm.h (ASM_OUTPUT_LABEL): Delete. - (ASM_OUTPUT_INTERNAL_LABEL): Call ASM_OUTPUT_LABEL directly. - * arm.c (arm_asm_output_label): Delete. - - * arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Do what is needed inline. - * arm.c (output_lcomm_directive): Delete. - - * arm.h (PUSH_ROUNDING): Delete; this is not what happens. - (ACCUMULATE_OUTGOING_ARGS): Define. - (PROMOTE_FUNCTION_ARGS): Define. - (INITIAL_ELIMINATION_OFFSET): Take current_function_outgoing_args_size - into account. - * arm.c (use_return_insn, output_func_epilogue, - arm_expand_prologue): Likewise. - - * arm.c (const_ok_for_arm): If HOST_WIDE_INT more than 32 bits, - insist high bits are all zero or all one. - (output_move_double): Handle case where CONST_INT is more than 32 bits. - - * arm.c (load_multiple_sequence): Support SUBREG of MEM. - (store_multiple_sequence): Likewise. - - * arm.c (arm_gen_load_multiple): New args UNCHANGING_P and IN_STRUCT_P. - Use them if we create any new MEMs; all callers changed. - (arm_gen_store_multiple): Likewise. - (arm_gen_movstrqi): Preserve RTX_UNCHANGING_P and MEM_IN_STRUCT_P - on any MEMs created. - - * arm.h (ASM_OUTPUT_MI_THUNK): Use branch instruction to jump to label. - (RETURN_ADDR_RTX): Use NULL_RTX rather than casting zero. - (output_move_double): Correct typo in prototype. - - * arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid. - - * arm/netbsd.h (CPP_PREDEFINES): Always predefine __arm__. - * arm/xm-netbsd.h (SYS_SIGLIST_DECLARED, HAVE_STRERROR): Define these. - - * arm/t-netbsd (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS) Don't define - these any more. - * configure.in (arm-*-netbsd*): Pick up t-netbsd before arm/t-netbsd. - -Thu Oct 16 19:31:22 1997 Jim Wilson <wilson@cygnus.com> - - * v850.c (ep_memory_offset): New function. - (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. - - * v850.h (CONST_OK_FOR_*): Add and correct comments. - (CONSTANT_ADDRESS_P): Add comment. - (EXTRA_CONSTRAINT): Define 'U'. - * v850.md: Add comments on bit field instructions. - (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. - (lshrsi3): Use N not J constraint. - - * v850.md (v850_tst1+1): New define_split for tst1 instruction. - - * v850.c (reg_or_0_operand): Call register_operand. - (reg_or_int5_operand): Likewise. - * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. - (TARGET_SWITCHES): Add "big-switch". - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, - ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. - (CASE_DROPS_THROUGH): Comment out. - (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. - * v850.md (cmpsi): Delete compare mode. - (casesi): New pattern. - - * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. - * v850.md (ashlsi3): Use SImode not QImode for shift count. - (lshrsi3): Likewise. - - * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete - unreachable switch statement after 'b' support. Remove "b" from - strings for 'b' support. - * v850.md (branch_normal, branch_invert): Change %b to b%b. - -Thu Oct 16 13:08:45 1997 Doug Evans <dje@cygnus.com> - - * configure.in (sparc-*-elf*): New target. - -Wed Oct 15 22:30:37 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * h8300.h (REG_CLASS_CONTENTS): AP is a general register. - (REG_OK_FOR_BASE_P, ! REG_OK_STRICT case): Reject special registers. - -Wed Oct 15 22:00:57 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (movhi+1): Add x/r alternative. - - * sh/elf.h (HANDLE_SYSV_PRAGMA): Undefine. - - * va-sh.h (va_arg): Fix big endian bugs for small integers. - -Wed Oct 15 21:34:45 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for - PPC601. - (umulsidi3,umulsi3_highpart): Likewise. - (smulsi3_highpart_no_mq): Add !TARGET_POWER. - -Wed Oct 15 18:45:31 1997 Doug Evans <dje@cygnus.com> - - * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. - -Wed Oct 15 17:17:33 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (following_call): Fail if the CALL_INSN is an indirect call. - -Wed Oct 1 17:52:09 1997 Douglas Rupp <rupp@gnat.com> - - * vms.h (UNALIGNED_{SHORT,INT,DOUBLE_INT}_ASM_OP): Define. - -Wed Oct 1 16:09:42 1997 Benjamin Kosnik <bkoz@melange.gnu.ai.mit.edu> - - * fixincludes: Fix sys/param.h so that MAXINT will not be redefined - on HPUX. - -Wed Oct 1 08:08:21 1997 Jeffrey A Law <law@chunks.cygnus.com> - - * cse.c (this_insn_cc0_mode): Initialize. - -Wed Oct 1 07:22:12 1997 Richard Henderson <rth@cygnus.com> - - * i386.h (RETURN_ADDR_RTX): Use FRAME arg, not ap. - -Tue Sep 30 19:19:58 1997 Jim Wilson <wilson@cygnus.com> - - * except.c (find_exception_handler_labels): Correct argument to free. - -Fri Sep 26 14:06:45 1997 Mike Stump <mrs@wrs.com> - - * c-decl.c (start_struct): Ensure that structs with forward - declarations are in fact packed when -fpack-struct is given. - -Wed Sep 24 11:31:24 1997 Mike Stump <mrs@wrs.com> - - * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if - packing structure. This allows a structure with only bytes to be - aligned on a byte boundary and have no padding on a m68k. - -Tue Sep 30 11:00:00 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * except.c (find_exception_handler_labels): Free LABELS when done. - -Tue Sep 30 10:47:33 1997 Paul Eggert <eggert@twinsun.com> - - * cexp.y, cppexp.c (HOST_BITS_PER_WIDE_INT): - Define only if not already defined. - -Mon Sep 29 17:55:55 1997 Gavin Koch <gavin@cygnus.com> - - * c-decl.c (warn_implicit): Deleted. - (warn_implicit_int, mesg_implicit_function_declaration}): New vars. - (c_decode_option): For -Wimplicit, set both new variables. - Add -Wimplicit-function-declarations, -Wimplicit-int, - and -Werror-implicit-function-declaration. - (implicitly_declare, grokdeclarator): Use new flags. - * toplev.c (lang_options): Add new -W options. - -Mon Sep 29 17:55:15 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-common.c (check_format_info): Add check for scanf into - constant object or via constant pointer type. - -Mon Sep 29 16:10:12 1997 Richard Henderson <rth@cygnus.com> - - * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne. - (bne): Likewise for cmpeq+beq. - -Mon Sep 29 15:58:22 1997 Doug Evans <dje@cygnus.com> - - * reload1.c (reload_cse_simplify_set): Fix return values. - -Mon Sep 29 08:21:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - - * i386.c (notice_update_cc): Use reg_overlap_mentioned_p. - -Sun Sep 28 18:59:58 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (__throw): Fix thinko. - -Sun Sep 28 12:00:52 1997 Mark Mitchell <mmitchell@usa.net> - - * cplus-dem.c (demangle_template): Add new parameter. Handle new - template-function mangling. - (consume_count_with_underscores): New function. - (demangle_signature): Handle new name-mangling scheme. - -Sun Sep 28 11:19:09 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * flow.c (print_rtl_with_bb): Reformat messages about BB boundaries. - - * calls.c: Include regs.h. - * profile.c: Likewise. - * Makefile.in (calls.o, profile.o): Depend on regs.h. - * except.h (expand_builtin_dwarf_reg_size): Put in #ifdef TREE_CODE. - - * tree.h (get_file_function_name): Add decl. - * dwarf2out.c (output_call_frame_info): Don't cast its result. - -Sun Sep 28 10:58:21 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * Makefile.in (sub-makes): Pass value of LANGUAGES. - -Sun Sep 28 10:52:59 1997 Ian Dall <ian.dall@dsto.defence.gov.au> - - * regs.h (SMALL_REGISTER_CLASSES): Default to 0. - * calls.c (prepare_call_address, expand_call): - Remove #if test on SMALL_REGISTER_CLASSES. - * combine.c (can_combine_p, combinable_i3pat, try_combine): Likewise. - * cse.c (canon_hash): Likewise. - * function.c (expand_function_start): Likewise. - * jump.c (jump_optimize): Likewise. - * local-alloc.c (optimize_reg_copy_1): Likewise. - * loop.c (scan_loop, valid_initial_value_p): Likewise. - * profile.c (output_arc_profiler): Likewise. - * reload.c (push_secondary_reload, push_reload): Likewise. - (combine_reloads): Likewise. - * reload1.c (reload, scan_paradoxical_subregs): Likewise. - (order_regs_for_reload, reload_as_needed): Likewise. - (choose_reload_regs): Likewise. - (merge_assigned_reloads): Declare unconditionally. - -Sat Sep 27 11:02:38 1997 Jason Merrill <jason@yorick.cygnus.com> - - * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. - * tree.h (built_in_function): Likewise. - * expr.c (expand_builtin): Likewise. - * except.h: Likewise. - * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. - * libgcc2.c (copy_reg): New fn. - (__throw): Use it. - -Fri Sep 26 09:00:13 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * frame.c (gansidecl.h): New include, for PROTO. - * dwarf2out.c: Move inclusion of dwarf2.h down. - (dwarf2out_cfi_label): Don't declare here. - * dwarf2.h (dwarf2out_{do_frame,cfi_label,def_cfa}): New declarations. - (dwarf2out_{window_save,args_size,reg_save,return_save}): Likewise. - (dwarf2out_{return_reg,begin_prologue,end_epilogue}): Likewise. - * m68k.c (dwarf2.h): Include. - (output_function_prologue): Add dwarf2 support. - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. - (INCOMING_FRAME_SP_OFFSET): Likewise. - - * integrate.c (copy_rtx_and_substitute, case ADDRESSOF): New case. - - * integrate.c (expand_inline_function): Make sure there is at - least one insn that can be used as an insertion point. - -Fri Sep 26 08:54:59 1997 Paul Eggert <eggert@twinsun.com> - - * c-typeck.c (build_binary_op): Warn about comparing signed vs - unsigned if -W is specified and -Wno-sign-compare is not. - * c-decl.c (warn_sign_compare): Initialize to -1. - (c_decode_option): -Wall no longer implies -Wsign-compare. - -Wed Sep 24 21:34:06 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ - -Wed Sep 24 19:17:08 1997 Doug Evans <dje@cygnus.com> - - * sparc.md (get_pc_via_call): Renamed from get_pc_sp32. - (get_pc_via_rdpc): Renamed from get_pc_sp64. - * sparc.c (finalize_pic): Update call to gen_get_pc_via_call. - -Wed Sep 24 18:38:22 1997 David S. Miller <davem@tanya.rutgers.edu> - - * sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. - (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, - and -malign-functions=. - (sparc_align_{loops,jumps,funcs}_string): Declare. - (sparc_align_{loops,jumps,funcs}): Declare. - (DEFAULT_SPARC_ALIGN_FUNCS): New macro. - (FUNCTION_BOUNDARY): Use sparc_align_funcs. - (STACK_BIAS): Define. - (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT, then perform test. - (SPARC_SETHI_P): New macro. - (CONST_OK_FOR_LETTER_P): Use it. - (ASM_OUTPUT_ALIGN_CODE): Define. - (ASM_OUTPUT_LOOP_ALIGN): Define. - * sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. - (sparc_align_{loops,jumps,funcs}): New globals. - (sparc_override_options): Handle -malign-loops=, -malign-jumps=, - -malign-functions=. - (move_operand): Use SPARC_SETHI_P. - (arith_double_operand): Cast to unsigned HOST_WIDE_INT, then test. - (arith11_double_operand): Likewise. - (arith10_double_operand): Likewise. - (finalize_pic): Finish sparc64 support. - (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of - 64 bit constants if able. - (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. - (sparc_builtin_saveregs [sparc64]): Don't save fp regs if ! TARGET_FPU. - * sparc.md: Use GEN_INT instead of gen_rtx. - (get_pc_sp32): Use for sparc64 as well. - (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. - (sethi_di_sp64_const): Likewise. - (movtf_cc_sp64): Check TARGET_HARD_QUAD. - (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. - (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. - -Wed Sep 24 08:25:28 1997 Alexandre Oliva <oliva@dcc.unicamp.br> - - * i386.md (allocate_stack): Fix typo in last change. - -Tue Sep 23 19:02:46 1997 Doug Evans <dje@cygnus.com> - - * sparc/linux-aout.h (COMMENT_BEGIN): Delete. - * sparc/linux.h (COMMENT_BEGIN): Likewise. - * sparc/linux64.h (COMMENT_BEGIN): Likewise. - -Tue Sep 23 14:48:18 1997 David S. Miller <davem@tanya.rutgers.edu> - - Add sparc64 linux support. - * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h - to xm_file list on 32-bit sparc-linux. - * sparc/xm-sp64.h: New file. - * sparc/linux64.h: New file. - * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. - Don't include xm-sparc.h. - * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. - * glimits.h (LONG_MAX): Handle sparc64. - -Tue Sep 23 08:32:51 1997 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_end_function): Also do dwarf2 thing if - DWARF2_DEBUGGING_INFO. - (final_start_function): Likewise. - -Tue Sep 23 06:55:40 1997 David S. Miller <davem@tanya.rutgers.edu> - - * expmed.c (expand_divmod): If compute_mode is not same as mode, - handle case where convert_modes causes op1 to no longer be CONST_INT. - -Tue Sep 23 00:58:48 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. - -Mon Sep 22 18:26:25 1997 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. - (MULTILIB_DEFAULTS): Define. - (ASM_SPEC, CPP_SPEC): Handle -mcoff. - (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. - (LIBGCC_SPEC): Likewise. - (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. - (SUBTARGET_SWITCHES): Add -mcoff and -melf. - * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. - (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. - (EXTRA_PARTS, TAROUTOPTS): Delete. - (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. - (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. - (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. - -Mon Sep 22 14:42:11 1997 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (find_blocks): Fix thinko in last change. - -Mon Sep 22 16:22:41 1997 David S. Miller <davem@tanya.rutgers.edu> - - * combine.c (try_combine): Use NULL_RTX, not 0, in gen_rtx calls. - * cse.c (cse_main): Likewise. - * emit-rtl.c (gen_label_rtx): Likewise. - * expr.c (init_expr_once): Likewise. - * sched.c (schedule_insns): Likewise. - * varasm.c (immed_double_const): Likewise. - - * sparc.h (INCOMING_FRAME_SP_OFFSET): Define as SPARC_STACK_BIAS. - -Mon Sep 22 16:13:21 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * alpha/linux.h (HANDLE_SYSV_PRAGMA): Define. - -Mon Sep 22 16:02:01 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> - - * c-common.c (decl_attributes): Add support for TYPE_UNUSED on types. - * c-decl.c (finish_decl): Set TREE_USED on decls if TREE_USED on type. - * stmt.c (expand_end_bindings): Check DECL_NAME and DECL_ARTIFICIAL - before unused variable warning. - -Mon Sep 22 14:04:18 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rtlanal.c (computed_jump_p): Fix typo in last change. - - * clipper.md (movstrsi): Use change_address instead of making new MEM. - * dsp16xx.md (movstrqi): Likewise. - * i370.md (movstrsi): Likewise. - * i860.md (movstrsi): Likewise. - * pa.md (movstrsi): Likewise. - * mips.md (movstrsi): Fix (unused) pattern in define_expand. - * pdp11.md (movstrhi): Likewise. - - * alpha.md (allocate_stack): Use virtual_stack_dynamic for result. - * i386.md (allocate_stack): Likewise. - * rs6000.md (allocate_stack): Likewise. - - * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float. - - * function.c (assign_parms): Make max_parm_reg handling more - precise and make it agree with size of parm_reg_stack_loc. - * integrate.c (save_for_inline_{nocopy,copying}): Remove - redundant assignment of max_parm_reg. - - * function.c (assign_parms): Properly set RTX_UNCHANGING_P for - copy of parm. - - * integrate.c (copy_rtx_and_substitute, case SET): Handle - a SET_DEST of the virtual fp or ap specially and undo - the adjustment into the local area as well. - (mark_stores): Don't wipe out map entries for virtual fp and ap. - - * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float. - - * emit-rtl.c (gen_lowpart): Handle ADDRESSOF. - -Mon Sep 22 13:35:56 1997 Doug Evans <dje@cygnus.com> - - * rtlanal.c (replace_regs): Fix up lossage in last patch. - -Sun Sep 21 19:28:48 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (jmp_uses_reg_or_mem): Deleted unused function. - (find_basic_blocks): Use computed_jump_p to determine if a - particular JUMP_INSN is a computed jump. - * reg-stack.c (find_blocks): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - * rtlanal.c (jmp_uses_reg_or_mem): New function. - (computed_jump_p): Likewise. - * rtl.h (computed_jump_p): Declare. - * genattrtab.c (pc_rtx): Define and initialize. - - * cse.c (simplify_relational_operation): Set h0u just like h0s. - Similarly for h1u and h1s. - -Sun Sep 21 14:13:31 1997 Doug Evans <dje@cygnus.com> - - * function.c (instantiate_virtual_regs): Fix thinko in last patch. - -Sun Sep 21 10:33:26 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c, cpplib.c (special_symbol): If STDC_0_IN_SYSTEM_HEADERS - is defined, expand __STDC__ to 0 in system headers. - * i386/sol2.h, rs6000/sol2.h, sparc/sol2.h: - (STDC_0_IN_SYSTEM_HEADERS): New macro. - (CPP_SPEC): Remove -D__STDC__=0; it's no longer needed. - - * fixinc.math (_MATH_H_WRAPPER): Define at the end of the - wrapper, not the start, so that if #include_next gets another - instance of the wrapper, this will follow the #include_next - chain until we arrive at the real <math.h>. - - * fixproto (subdirs_made): New var, to keep track of which - subdirectories we've made (in reverse order). At the end, - attempt to rmdir them all, so that we don't create any empty - directories. - -Sun Sep 21 10:02:07 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * pa.c (move_operand): Respect -mdisable-indexing. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. - -Sun Sep 21 09:29:23 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * function.c (purge_addressof_1): Don't convert (MEM (ADDRESSOF (REG))) - to (SUBREG (REG)) on big endian machines. - Don't fall through to substitute the inner (REG) unchanged - when the above conversion cannot be validated. - -Sat Sep 20 16:22:06 1997 Jason Merrill <jason@yorick.cygnus.com> - - * frame.c (__deregister_frame): Properly check for initialized object. - - * function.c (instantiate_virtual_regs): Instantiate - parm_reg_stack_locs. - -Sat Sep 20 03:07:54 1997 Doug Evans <dje@cygnus.com> - - * sparc/sysv4.h (ASM_COMMENT_START): Delete. - * sparc.h (ASM_COMMENT_START): Define. - * sparc.c (output_function_prologue): Use it. - (sparc_flat_output_function_{epi,pro}logue): Likewise. - -Fri Sep 19 19:43:09 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Fix typo. - - * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. - * mips.h, xm-rs6000.h, rs6000/xm-sysv4.h: Likewise. - -Fri Sep 19 20:10:30 1997 Doug Evans <dje@cygnus.com> - - * rtl.h (find_use_as_address): Delete accidentally added decl. - -Fri Sep 19 08:36:16 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * jump.c (thread_jumps): Check can_reverse_comparison_p before - threading a reversed-condition jump. - -Fri Sep 19 08:16:12 1997 Andrew M. Bishop <amb@gedanken.demon.co.uk>. - - * Add support for new -dI option for cxref, - * cccp.c (dump_includes): New variable. - (struct directive, directive_table): Remove members angle_brackets, - traditional_comments, pass_thru; all code using struct directive - now uses `type' member instead. - (IS_INCLUDE_DIRECTIVE_TYPE): New macro. - (main, handle_directive): Add support for new -dI option. - (do_ident): Avoid unnecessary alloca. - (do_pragma): Avoid unnecessary comparison to newline. - - * cpplib.h (struct cpp_options): New member dump_includes. - * cpplib.c (struct directive, directive_table): Remove members - traditional_comments, pass_thru; all code using struct directive - now uses `type' member instead. - (IS_INCLUDE_DIRECTIVE_TYPE): New macro. - (handle_directive, cpp_handle_options): Add support for new -dI option. - -Fri Sep 19 07:57:19 1997 Pat Rankin <rankin@eql.caltech.edu> - - * vax/xm-vms.h (expand_builtin_{extract,set}_return_addr): New macros. - -Fri Sep 19 07:47:29 1997 Nick Burrett <n.a.burrett@btinternet.com> - - * cpplib.c (pcstring_used, pcfinclude): Delete unused declarations. - (check_preconditions, print_containing_files, pipe_closed): Likewise. - (dump_defn_1, dump_arg_n, make_undef): Likewise. - (trigraph_pcp): Pre-process out decl. - (quote_string): Cast CPP_PWRITTEN macro to char * for sprintf. - (output_line_command): Likewise. - (macro_expand): Likewise. - (do_line): Cast atoi argument to char *. - * genattrtab.c (simplify_by_alternatives): Pre-process out decl. - * genpeep.c (gen_exp): Remove decl. - -Fri Sep 19 07:29:40 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * enquire.c (basic): Elminate dangling else warning. - * except.h (struct function, save_eh_status, restore_eh_status): - Don't declare. - * expr.c (clear_storage): Don't return without a value. - * function.h ({save,restore}_machine_status): Add proper prototype. - ({save,restore}_{tree,eh,stmt,expr,emit,storage}_status): Declare. - * real.h (real_value_truncate): Add proper prototype. - (target_isnan, target_isinf, target_negative, debug_real): Declare. - (assemble_real): Likewise. - * recog.c (strict_memory_address_p, memory_address_p): Don't declare. - (find_single_use_1): Add prototype. - * recog.h (init_recog, init_recog_no_volatile): Declare. - (check_asm_operands, constrain_operands, memory_address_p): Likewise. - (strict_memory_address_p, validate_replace_rtx): Likewise. - (reg_fits_class_p, find_single_use, general_operand): Likewise. - (address_operand, register_operand, scratch_operand): Likewise. - (immediate_operand, const_int_operand, const_double_operand): Likewise. - (nonimmediate_operand, nonmemory_operand, push_operand): Likewise. - (memory_operand, indirect_operand, mode_independent_operand): Likewise. - (comparison_operator, offsettable_{,nonstrict_}memref_p): Likewise. - (offsettable_address_p, mode_dependent_address_p, recog): Likewise. - (add_clobbers): Likewise. - * reload.h (strict_memory_address_p): Don't declare here. - * rtl.h (struct rtvec_def): Make num_elem an integer. - (PUT_NUM_ELEM): Delete cast to unsigned. - (rtx_unstable_p, rtx_varies_p, reg_mentioned_p): Declare. - (reg_{referenced,used_between,referenced_between}_p: Likewise. - ({reg_set,modified,no_labels}_between_p, modified_in_p): Likewise. - (reg_set_p, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. - (note_stores, rtx_equal_p, dead_or_set{,_regno}_p): Likewise. - (remove_note, side_effects_p, volatile_{refs,insn}_p): Likewise. - (may_trap_p, inequality_comparison_p): Likewise. - * rtlanal.c (note_stores, reg_set_p): Don't declare. - (rtx_addr_can_trap_p): Add prototype, make static. - (reg_set_p_1): Add declaration for parameter pat. - * emit-rtl.c: Include recog.h. - * integrate.c: Likewise. - * jump.c: Likewise. - * unroll.c: Likewise. - * Makefile.in (emit-rtl.o, integrate.o, jump.o, unroll.o): Depend - on recog.h. - -Fri Sep 19 06:52:22 1997 Paul Eggert <eggert@twinsun.com> - - * enquire.c (SYS_FLOAT_H_WRAP): New macro. - Include "float.h" if SYS_FLOAT_H_WRAP is nonzero. - (f_define): New argument `req'. - (main): Output `#include_next <float.h>' if wrapping float.h. - (i_define, f_define): Don't output anything if wrapping float.h - and if the system defn is already correct. Put other value tests - inside `#ifdef VERIFY'. - (UNDEFINED): New macro. - (I_MAX, I_MIN, U_MAX, F_RADIX, F_MANT_DIG, F_DIG, F_ROUNDS): - Define even if VERIFY isn't defined, because SYS_FLOAT_H_WRAP may need - these values. Give them the value UNDEFINED if not already defined. - (F_EPSILON, F_MIN_EXP, F_MIN, F_MIN_10_EXP, F_MAX_EXP): Likewise. - (F_MAX, F_MAX_10_EXP): Likewise. - (FPROP): Prefer system float.h definition of F_ROUNDS. - Pass system values to f_define. - * Makefile.in (FLOAT_H_TEST): New var. - (float.h-nat): Make it empty if we can use the system float.h without - change. - (enquire.o): Define SYS_FLOAT_H_WRAP=1 if we can build a wrapper - around the system <float.h>. Remove include/float.h before compiling. - (stmp-headers): Remove include/float.h if we would just be installing - an empty file (which is a placeholder that stands for no file). - - * fix-header.c: Don't munge headers for POSIX and XOPEN, - as this is too error-prone. - (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): New macros, normally undefed. - (POSIX1_SYMBOL, POSIX2_SYMBOL): Now 0 unless ADD_MISSING_POSIX. - (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): Now 0 unless ADD_MISSING_XOPEN. - (main): Ignore symbols whose flags are 0. - -Thu Sep 18 10:43:07 1997 Nick Clifton <nickc@cygnus.com> - - * v850.c (compute_register_save_size): Correct register number. - * v850.md (save_interrupt, return_interrupt): Likewise. - * v850/lib1funcs.asm (save_interrupt): Likewise. - (return_interrupt): Use stack pointer, not element pointer. - -Thu Sep 18 14:22:22 1997 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_scan_insn): Hand BARRIERs to dwarf2 code. - * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. - (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. - - * except.c (end_eh_unwinder): Subtract 1 from return address. - * libgcc2.c (__throw): Likewise. - (find_exception_handler): Don't change PC here. Compare end with >. - -Thu Sep 18 14:01:20 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * configure.in: Make sure to create the stage* and include - symbolic links in each subdirectory. - -Thu Sep 18 13:20:37 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh/lib1funcs.asm (LOCAL): Define. - (whole file): Use it. - -Thu Sep 18 09:52:24 1997 Benjamin Kosnik <bkoz@beauty.cygnus.com> - - * collect2.c (collect_execute): Specify name of new file when - redirecting stdout/stderr. - -Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_peepholes): Don't allow addresses with side - effects for the memory operand. - -Wed Sep 17 18:19:53 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (find_exception_handler): Subtract one from our PC when - looking for a handler, to avoid hitting the beginning of the next - region. - - * except.c (expand_builtin_set_return_addr_reg): Use force_operand. - -Wed Sep 17 18:23:09 1997 Jeffrey A Law (law@cygnus.com) - - * mips/abi64.h (LONG_MAX_SPEC): Define. - * mips.h (LONG_MAX_SPEC): Define. - (CPP_SPEC): Include long_max_spec. - (EXTRA_SPECS): Include long_max_spec. - -Wed Sep 17 14:17:26 1997 Paul Eggert <eggert@twinsun.com> - - * configure.in (AC_CHECK_HEADERS): Add inttypes.h, limits.h. - ({sparc,i[3456]86,powerpcle}-*-solaris2*): Use fixinc.math. - - * fixinc.math (PWDCMD, ORIGDIR, LINKS): Remove. - Remove duplicate test for missing $1. - Don't cd to $INPUT. - Build wrapper around system <math.h> instead of copying it; - this is better if the system <math.h> is updated later by a software - patch or upgrade. - - * cccp.c (HAVE_STDLIB_H, HAVE_UNISTD_H): - Do not define any more; now autoconfed. - <limits.h>: Include if HAVE_LIMITS_H. - (HOST_BITS_PER_WIDE_INT): Remove. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (pcfinclude): Use size_t, not HOST_WIDE_INT, for cast from pointer; - this is less likely to annoy the compiler. - - * cexp.y (HAVE_STDLIB_H): Do not define any more; now autoconfed. - <limits.h>: Include if HAVE_LIMITS_H. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (unsigned_HOST_WIDE_INT, CHAR_BIT): New macros. - (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof. - (MAX_CHAR_TYPE_MASK, MAX_CHAR_TYPE_MASK): Rewrite so that we don't use - HOST_BITS_PER_WIDE_INT in a preprocessor expression, since it now - uses sizeof. - - * cppexp.c: <limits.h>: Include if HAVE_LIMITS_H. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (CHAR_BIT): New macro. - (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof. - * cpplib.c: <limits.h>: Include if HAVE_LIMITS_H. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (HOST_BITS_PER_WIDE_INT): Remove. - -Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) - - * v850.c (construct_save_jarl): Fix thinko in last change. - -Wed Sep 17 15:04:19 1997 Doug Evans <dje@cygnus.com> - - * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, - use sparc.h's copies. - * sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print ascii form - as well. - -Wed Sep 17 14:08:20 1997 Nick Burrett <nick.burrett@btinternet.com> - - * explow.c (allocate_dynamic_stack_space): Make allocate_stack - pass 'target' as an extra operand. - * expr.c (expand_builtin_apply): Use allocate_dynamic_stack_space - to push a block of memory onto the stack. - * alpha.md (allocate_stack): Alter in accordance with new operand. - * i386.md (allocate_stack): Likewise. - * rs6000.md (allocate_stack): Likewise. - -Wed Sep 17 13:34:43 1997 Robert Lipe <robertl@dgii.com> - - * i386/xm-sco5.h (sys_siglist, SYS_SYGLIST_DECLARED): Define. - -Wed Sep 17 13:27:05 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (native): Correct dependency to auto-config.h from - config.h. - -Tue Sep 16 10:02:02 1997 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c (find_exception_handler): Not found is -1. - - * integrate.c (expand_inline_function): Move expand_start_bindings - after expanding the arguments. - - * i386.c (ix86_prologue): Pass SYMBOL_REF to - gen_prologue_{get_pc,set_got}. - * i386.md (prologue_set_got, prologue_get_pc): Adjust. - -Tue Sep 16 07:33:15 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (make_range): Correctly handle cases of converting - from unsigned to signed type. - - * function.c (flush_addressof): New function. - - * combine.c (num_sign_bit_copies): If asking about wider mode, - treat like paradoxical subreg. - -Tue Sep 16 00:26:52 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (simplify_relational_operation): If MODE specifies mode wider - than HOST_WIDE_INT, high word of CONST_INT is derived from sign bit - of low word. - -Tue Sep 16 00:13:20 1997 Nick Clifton <nickc@cygnus.com> - - * v850.c ({register,pattern}_is_ok_for_epilogue): New functions. - (construct_{save,restore}_jr, pattern_is_ok_for_prologue): Likewise. - * v850.h (pattern_is_ok_for_{pro,epi}logue): New predicates. - (register_is_ok_for_epilogue): Likewise. - * v850.md: Replace prologue and epilogue patterns with a - match_parallel pattern. - * v850.c (output_move_single_unsigned): Cope with zero - extending and moving between registers at the same time. - -Mon Sep 15 22:02:46 1997 Jeffrey A Law (law@cygnus.com) - - * fixinc.math: New file to fix math.h on some systems. - * configure.in (*-*-freebsd*, *-*-netbsd*): Use fixinc.math on these - systems. - -Mon Sep 15 18:58:36 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sched.c (update_flow_info) When looking if to set found_split_dest - or found_orig_dest, look at all parts of a PARALLEL. - - * sh.md (casesi_0): Reduce functionality, exclude insns from - mova onwards. Changed expander caller. - (casesi_worker_0): New insn. - (casesi_worker_0+[12]): New define_splits. - (casesi_worker): Need no gen_* function. - (casesi): Use casesi_worker_0 instead of casesi_worker. - * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. - -Mon Sep 15 11:43:38 1997 Jason Merrill <jason@yorick.cygnus.com> - - Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. - * dwarf2.h: Add DW_CFA_GNU_args_size. - * frame.c (execute_cfa_insn): Likewise. - * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. - (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. - (dwarf2out_frame_debug): If this isn't a prologue or epilogue - insn, hand it off to dwarf2out_stack_adjust. - (dwarf2out_begin_prologue): Initialize args_size. - * frame.h (struct frame_state): Add args_size. - * libgcc2.c (__throw): Use args_size. - * final.c (final_scan_insn): If we push args, hand off all insns - to dwarf2out_frame_debug. - * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. - - * dwarf2out.c (dwarf2out_frame_debug): Fix typo. - Handle epilogue restore of SP from FP. - * emit-rtl.c (gen_sequence): Still generate a sequence if the - lone insn has RTX_FRAME_RELATED_P set. - - * frame.c (extract_cie_info): Handle "e" augmentation. - * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the - absence of UNALIGNED_*_ASM_OP. - (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. - (output_call_frame_info): Use "e" instead of "z" for augmentation. - Don't emit augmentation fields length. - (dwarf2out_do_frame): Move outside of #ifdefs. - * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data - opcodes. - - * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. - * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. - * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. - * sparc/sun4gas.h: New file. - * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. - - * collect2.c (write_c_file_stat, write_c_file_glob): Declare - __register_frame_table and __deregister_frame. - -Mon Sep 15 19:04:34 1997 Brendan Kehoe <brendan@cygnus.com> - - * except.c (find_exception_handler_labels): Use xmalloc instead of - alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million - in some cases. - -Sat Sep 13 23:13:51 1997 Paul Eggert <eggert@twinsun.com> - - * cpplib.h (PARAMS): Fix misspelling of __STDC__. - (cpp_get_token): Arg is cpp_reader *, not struct parse_marker *. - - * cpplib.c (cpp_fatal, cpp_file_line_for_message): New decls. - (ppp_hash_cleanup, cpp_message, cpp_print_containing_files): Likewise. - (copy_rest_of_line): Fix typo that prevented recognition of - C++ style comments. - (output_line_command, special_symbol): Use %ld for long, not %d. - - * cppexp.c (xrealloc): Declare first arg as void *, not char *. - (cpp_lex): Cast 2nd arg of cpp_parse_escape from const char ** to - char **. - -Fri Sep 12 16:54:04 1997 Doug Evans <dje@cygnus.com> - - * bitmap.h (bitmap_print): Don't use STDIO_PROTO. - -Fri Sep 12 13:49:58 1997 Jason Merrill <jason@yorick.cygnus.com> - - * except.h: Prototype dwarf2 hooks. - * expr.c: Adjust. - -Thu Sep 11 18:36:51 1997 Jim Wilson <wilson@cygnus.com> - - * local-alloc.c (contains_replace_regs): New function. - (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, - verify that there is no existing REG_EQUIV note, and add a call to - contains_place_regs. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Add __HPUX_ASM__ versions. - -Wed Sep 10 21:49:38 1997 Michael Meissner <meissner@cygnus.com> - - * toplev.c (rest_of_compilation): For passes starting with - flow_analysis, use print_rtl_with_bb instead of print_rtl. - * print-rtl.c (print_rtl_single): Print a single rtl value to a - file. - * flow.c (print_rtl_with_bb): Print which insns start and end - basic blocks. For the start of a basic block, also print the live - information. - * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over - two bitmaps ANDed together. - (bitmap_print): Declare. - * bitmap.c (function_obstack): Don't declare any more. - (bitmap_obstack): Obstack for allocating links from. - (bitmap_obstack_init): New static to say whether to initialize - bitmap_obstack. - (bitmap_element_allocate): Use bitmap_obstack to allocate from. - (bitmap_release_memory): Free all memory allocated from - bitmap_obstack. - (toplevel): Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - - * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke - EXECUTE_IF_AND_IN_BITMAP. - -Wed Sep 10 17:53:33 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (addr_diff_vec_adjust): Properly propagate considered - address changes through alignments. - -Wed Sep 10 13:10:52 1997 Per Bothner <bothner@cygnus.com> - - * stor-layout.c (layout_type): Simplify special BOOLEAN_TYPE handling. - -Wed Sep 10 12:59:57 1997 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() - if DWARF2_UNWIND_INFO. - -Wed Sep 10 15:43:10 1997 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c (demangle_fund_type): Change "complex" to "__complex". - -Wed Sep 10 11:13:53 1997 Paul Eggert <eggert@twinsun.com> - - Handle `extern int errno;' correctly when fixing <errno.h>. - * fix-header.c (recognized_extern): Use name_length when comparing. - * scan-decls.c (scan_decls): Don't ignore the first CPP_NAME in a - declaration, so that we see the `extern' in `extern int errno;'. - -Wed Sep 10 11:49:20 1997 Jason Merrill <jason@yorick.cygnus.com> - - Add support for exception handling using DWARF 2 frame unwind info. - * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, - next_stack_level, in_reg_window): Helper fns. - (__throw): Implement for DWARF2_UNWIND_INFO. - - * expr.c (expand_builtin): Handle builtins used by __throw. - * tree.h (enum built_in_function): Add builtins used by __throw. - * c-decl.c (init_decl_processing): Declare builtins used by __throw. - * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. - * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. - (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_frob_return_addr): Likewise. - (expand_builtin_set_return_addr_reg): Likewise. - (expand_builtin_eh_stub): Likewise. - (expand_builtin_set_eh_regs): Likewise. - (eh_regs): Choose two call-clobbered registers for passing back values. - - * frame.c, frame.h: New files for parsing dwarf 2 frame info. - * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. - (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) - (stmp-multilib): Likewise. - ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. - - * except.c: #include "defaults.h". - (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. - (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. - (register_exception_table_p): New fn. - (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. - (end_eh_unwinder): Likewise. - - * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, - call __register_frame and __deregister_frame as needed. - * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. - * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check - EH_FRAME_SECTION_ASM_OP. - * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. - * mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. - - * dwarf2out.c (output_call_frame_info): If no support for - EXCEPTION_SECTION, mark the start of the frame info with a - collectable tag. - * collect2.c (frame_tables): New list. - (is_ctor_dtor): Recognise frame entries. - (scan_prog_file): Likewise. - (main): Pass -fno-exceptions to sub-compile. Also do collection - if there are any frame entries. - (write_c_file_stat): Call __register_frame_table and - __deregister_frame as needed. - (write_c_file_glob): Likewise. - - * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. - Also require unaligned reloc support. - * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Define here. - * sparc/sysv4.h: Not here. - - * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. - * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. - (dwarf2out_finish): Don't call dwarf2out_frame_finish. - - * libgcc2.c (L_eh): Reorganize, moving code shared by different - EH implementations to the top. - (find_exception_handler): Split out. Start from 0. Compare against - end with >=. - (__find_first_exception_table_match): Use it. - * except.c (output_exception_table): Don't do anything if there's - no table. Don't output a first entry of zeroes. - (eh_outer_context): Adjust properly. - (add_eh_table_entry): Use xrealloc. - * toplev.c (compile_file): Just call output_exception_table. - -Wed Sep 10 11:49:20 1997 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (save_varasm_status): Take the target function context. - * function.c (push_function_context_to): Pass it in. - - * rtl.def (ADDRESSOF): Add new field for original regno. - * function.c (put_reg_into_stack and callers): Add original_regno - argument. - (gen_mem_addressof): Remember the original regno. - * rtl.def (INLINE_HEADER): Add new field for parm_reg_stack_loc. - * rtl.h (PARMREG_STACK_LOC): New macro. - (ADDRESSOF_REGNO): New macro. - * emit-rtl.c (gen_inline_header_rtx): Add parm_reg_stack_loc. - * function.c (max_parm_reg, parm_reg_stack_loc): No longer static. - (assign_parms): Allocate parm_reg_stack_loc on saveable obstack. - * integrate.c (output_inline_function): Set max_parm_reg and - parm_reg_stack_loc from inline header. - (initialize_for_inline): Pass in parm_reg_stack_loc. - -Wed Sep 10 11:30:36 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (override_options): Don't set TARGET_SCHEDULE_PROLOGUE - (ix86_expand_prologue, ix86_expand_epilogue): Emit rtl by default. - -Wed Sep 10 11:30:36 1997 Jason Merrill <jason@cygnus.com> - - * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. - -Wed Sep 10 08:48:44 1997 Jeffrey A Law (law@cygnus.com) - - * xm-m88k.h (USG): Only define if it hasn't already been defined. - - * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. - - * expr.c (do_jump_by_parts_equality_rtx): Don't clobber the - source operand when performing an IOR of the parts. - - * expr.c (emit_block_move): Always return a value. - - * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. - when clearing non-BLKmode data. - - * final.c (shorten_branches): Remove last change for ADDR_VEC - alignment computation. During first pass, assume worst - possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. - -Wed Sep 10 09:33:19 1997 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * explow.c (emit_stack_save, emit_stack_restore): Correctly - handle HAVE_{save,restore}_stack_* evaluating to 0. - -Wed Sep 10 09:27:45 1997 Weiwen Liu <liu@hepvms.physics.yale.edu> - - * Makefile.in (sdbout.o): Add dependency on insn-config.h. - -Wed Sep 10 09:24:56 1997 Nick Burrett <n.a.burrett@btinternet.com> - - * sched.c (birthing_insn_p): Rename prototype decl from birthing_insn. - * final.c (leaf_renumber_regs, alter_cond): Declare prototype only - if LEAF_REGISTERS is defined. - * reload1.c (merge_assigned_reloads): Declare prototype only if - SMALL_REGISTER_CLASSES is defined. - * loop.c (replace_call_address): Pre-process out prototype decl. - * real.c (dectoe, etodec, todec): Declare proto if DEC is defined - (ibmtoe, etoibm, toibm): Declare proto if IBM is defined - -Wed Sep 10 09:13:51 1997 Manfred Hollstein <manfred@s-direktnet.de> - - * configure.in (out_file): Emit definition to config.status. - -Wed Sep 10 08:37:56 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Fix alignment calculation. - Don't count the lengths of deleted instructions. - -Wed Sep 10 08:34:11 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cpplib.c (cpp_start_read): Make known_suffixes static. - -Wed Sep 10 08:27:05 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (print_operand_address) [MOTOROLA]: When compiling - with -fpic (not -fPIC) force the GOT offset to 16 bits. - -Wed Sep 10 08:22:51 1997 Christian Iseli <chris@lslsun.epfl.ch> - - * expr.c (convert_move): Add missing use of trunctqtf2. - -Wed Sep 10 08:17:10 1997 Torbjorn Granlund <tege@pdc.kth..se> - - * except.c (eh_outer_context): Do masking using expand_and. - -Wed Sep 10 07:52:21 1997 Joel Sherrill <joel@OARcorp.com> - - * pa/rtems.h (subtarget_switches): Removed -mrtems subtarget_switch. - * configure.in (sh*-*-rtems*): New target. - * sh.h (TARGET_SWITCHES: Call SUBTARGET_SWITCHES. - (SUBTARGET_SWITCHES): Provide default definition. - -Wed Sep 10 06:33:47 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/mingw32.h ({LIB,LINK}_SPEC): Check for -mwindows, not -windows. - - * alpha/vms.h (ASM_OUTPUT_SECTION): Clear NAME if overlaid. - - * c-parse.in (unary_expr): Test DECL_C_BIT_FIELD, not DECL_BIT_FIELD. - * c-typeck.c (default_conversion): Likewise. - - * tree.c (contains_placeholder_p, substitute_in_expr): - Handle placeholders inside args of CALL_EXPR (and hence in TREE_LIST). - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Check all - expressions in placeholder_list. - -Tue Sep 9 18:10:30 1997 Doug Evans <dje@cygnus.com> - - Add port done awhile ago for the ARC cpu. - * arc.h, arc.c, arc.md, t-arc, xm-arc.h: New files. - * arc/initfini.c, arc/lib1funcs.asm: New files. - * ginclude/va-arc.h: New file. - * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. - * ginclude/varargs.h: Likewise. - * Makefile.in (USER_H): Add va-arc.h. - * configure.in (arc-*-elf*): Recognize. - * longlong.h: Add ARC support. - -Tue Sep 9 01:30:37 1997 Jason Merrill <jason@yorick.cygnus.com> - - * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of - write_symbols. - -Mon Sep 8 15:15:11 1997 Nick Clifton <nickc@cygnus.com> - - * v850.h (ASM_SPEC): Pass on target processor. - (CPP_PREDEFINES): Only define if not already specified. - (TARGET_VERSION): Only define if not already specified. - (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target - processor. - (EXTRA_SWITCHES): Extra entries in the switches array. - (TARGET_DEFAULT): Set default target processor. - -Tue Sep 9 09:50:02 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (alpha*-*-*): Support pca56 and ev6. - - * varasm.c (named_section): Set in section after writing directive. - * dwarf2out.c (output_call_frame_info): Call named_section. - -Mon Sep 8 16:32:43 1997 Jason Merrill <jason@yorick.cygnus.com> - - * mips.c (function_prologue): Set up the CFA when ABI_32. - - * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG - for dwarf2 unwind info. - (output_function_prologue, sparc_flat_output_function_prologue): Same. - - * final.c (final_end_function): Check dwarf2out_do_frame instead - of DWARF2_DEBUG for dwarf2 unwind info. - (final_scan_insn): Likewise. - (final_start_function): Likewise. Initialize dwarf2 frame debug here. - (final): Not here. - - * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if - count > 0. - - * varasm.c (exception_section): Check EXCEPTION_SECTION first. - -Mon Sep 8 14:58:07 1997 Jim Wilson <wilson@cygnus.com> - - * toplev.c (main): Change #elif to #else/#ifdef - - * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. - -Mon Sep 8 08:45:19 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.h (processor_type): Add EV6. - ({TARGET,MASK}_BWX): Renamed from _BYTE_OPS. - ({TARGET,MASK}_{CIX,MAX}): New macros. - (MASK_CPU_EV5): Change bit number. - (MASK_CPU_EV6, {TARGET,MASK}_SUPPORT_ARCH): New macros. - (TARGET_OPTIONS): Rename "byte" to "bwx" and add "cix" and "max". - (MINIMUM_ATOMIC_ALIGNMENT): Rename TARGET_BYTE_OPS to TARGET_BWX. - (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS, ASM_FILE_START): Likewise. - (SECONDARY_MEMORY_NEEDED): Not needed if CIX. - (ASM_FILE_START): Only write if TARGET_SUPPORT_ARCH. - Add "pca56" and "ev6". - * alpha.c (input_operand): Rename TARGET_BYTE_OPS to TARGET_BWX. - (override_options): Likewise; also add new CPU types and subset flags. - * alpha.md: Rename TARGET_BYTE_OPS to TARGET_BWX. - (cpu attr): Add "ev6". - (ev5 function units): Use for ev6 as well, for now. - (ffsdi2): New define_expand and define_insn, for TARGET_CIX. - (sqrt[sd]f2): New patterns, for TARGET_CIX. - (s{min,max}[qh]i3): New patterns, for TARGET_MAX. - (movsi): Use ldf/lsf when appropriate, instead of lds/sts. - (mov[sd]i): Add use of ftio/itof for TARGET_CIX. - * configure.in (alpha*-dec-osf*): Set MASK_SUPPORT_ARCH for >= 4.0B. - Rename MASK_BYTE_OPS to MASK_BWX. - - * i386/mingw32.h (STANDARD_INCLUDE_DIR): New macros. - (STARTFILE_SPEC, PATH_SEPARATOR): Likewise. - - * configure.in (AC_PROG_LN_S): Remove; unneeded. - (*cygwin32*, *mingw32*): Default prefix to /usr. - (symbolic_link): Set to "cp -p" if no "ln -s"; add AC_SUBST. - (configure.lang call): Change remaining use of config.h to auto-conf.h. - - * Makefile.in (LN): Add new symbol. - (FLAGS_TO_PASS): Pass it down. - (stage[1-4]-start): Use $(LN), not "ln -s". - - * mips.h (flag_omit_frame_pointer, frame_pointer_needed, optimize): - Remove declarations: no longer needed. - * pyr.md: Remove unneeded declarations of `optimize'. - * h8300.md: Likewise. - * sparc.c (dwarf2out_cfi_label): Add declaration. - (save_regs, output_function_prologue): Remove cast for it. - (sparc_flat_{save_restore,output_function_prologue): Likewise. - ({save,restore}_regs): No longer inline. - -Mon Sep 8 03:08:35 1997 Jim Wilson <wilson@cygnus.com> - - * i960.h (LINK_SPEC): Handle -mjX and -mrp switches. - - * mips.md (nonlocal_goto_receiver): Define. - - * unroll.c (calculate_giv_inc): Handle increment with code PLUS. - - * alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS - is passed in. - * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to - SFmode for 64 bit hosts. - - * profile.c (output_arc_profiler): Verify next_insert_after is an - INSN before and after skipping a stack pop. Check next_insert_after - for non NULL before deferencing it. - (output_func_start_profiler): Set DECL_EXTERNAL to zero. - - * va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. - - * m68k.md (iorsi_zexthi_ashl16): Disable. - - * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. - -Sun Sep 7 18:30:46 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL - prologue insn, only the first elt is significant. - (output_call_frame_info): For exception handling, always use 4-byte - fields as specified by the dwarf2 spec. - Don't skip trivial FDEs. - -Sun Sep 7 03:35:28 1997 Paul Eggert <eggert@twinsun.com> - - * fix-header.c (std_include_table): Remove bogus entry for popen - under stdio.h with ANSI_SYMBOL. popen is a POSIX2_SYMBOL. - -Fri Sep 5 17:19:58 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (movsf_ie+1): Typo fix. - -Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) - - * v850: New directory for v850 port. - * v850/lib1funcs.asm: New file. - * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. - * ginclude/va-v850.h: New file. - * varargs.h, stdarg.h: Include va-mn10200.h. - * configure.in (mn10200-*-*): New target. - * Makefile.in (USER_H): Add va-mn10200.h. - - * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. - * mips/xm-news.h (SYS_SIGLIST_DECLARED): Define. - * mips/xm-sysv4.h (SYS_SIGLIST_DECLARED): Define. - -Fri Sep 5 03:50:15 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.md (fma patterns): Extend previous -mno-fused-madd - patch to DFmode patterns inadvertently omitted. - -Thu Sep 4 20:06:02 1997 Christian Kuehnke <Christian.Kuehnke@arbi.Informatik.Uni-Oldenburg.DE> - - * sparc.md: Add ultrasparc scheduling support. - * sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. - -Wed Sep 3 20:56:24 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Define. - -Wed Sep 3 20:52:07 1997 Joel Sherrill <joel@OARcorp.com> - - * sh/rtems.h: New file. - -Wed Sep 3 17:30:36 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * reg-stack.c (subst_stack_regs): Pop the stack register for a - computed goto which sets the same stack register. - -Wed Sep 3 17:30:36 1997 Jim Wilson <wilson@cygnus.com> - - * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. - -Wed Sep 3 11:25:19 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload peepholes): Fix typo in last change. - -Wed Sep 3 03:02:02 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (movsi_ie): Move t/r alternative after r/r alternative. - -Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) - - * cccp.c (sys_errlist): Remove special 4.4bsd declaration. - * collect2.c (sys_errlist): Likewise. - * cpplib.c (sys_errlist): Likewise. - * gcc.c (sys_errlist): Likewise. - * protoize.c (sys_errlist): Likewise. - * configure.in: Check for strerror. - * xm-freebsd.h (HAVE_STRERROR): Remove definition. - * xm-gnu.h (HAVE_STRERROR): Likewise. - * xm-linux.h (HAVE_STRERROR): Likewise. - * xm-netbsd.h (HAVE_STRERROR): Likewise. - * alpha/xm-linux.h (HAVE_STRERROR): Likewise. - * i386/xm-bsd386.h (HAVE_STRERROR): Likewise. - * i386/xm-cygwin32.h (HAVE_STRERROR): Likewise. - * i386/xm-dos.h (HAVE_STRERROR): Likewise. - * i386/xm-mingw32.h (HAVE_STRERROR): Likewise. - * pa/xm-pa.h (HAVE_STRERROR): Likewise. - * pa/xm-papro.h (HAVE_STRERROR): Likewise. - * rs6000/xm-cygwin32.h (HAVE_STRERROR): Likewise. - * rs6000/xm-sysv4.h (HAVE_STRERROR): Likewise. - - * collect2.c (SYS_SIGLIST_DECLARED): Renamed from - DONT_DECLARE_SYS_SIGLIST. - * mips-tfile.c (SYS_SIGLIST_DECLARED): Likewise. - * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * alpha/xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * i386/xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * mips/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * rs6000/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * sparc/xm-sol2.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * configure.in: Check for sys_siglist declaration. - - * Makefile.in (libgcc2.a): Add missing "else true" clause. - (stage{1,2,3,4}-start): Likewise. - - * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions - are relative to the next instruction, not the current instruction. - -Tue Sep 2 14:15:32 1997 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (xrealloc): Handle null ptr. - -Tue Sep 2 13:42:38 1997 Paul N. Hilfinger <hilfingr@CS.Berkeley.EDU> - - * fixincludes: Permits spaces between # and define. Discard C++ - comments in sys/pci.h on HP/UX 10.20. - -Tue Sep 2 09:28:31 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. - -Tue Sep 2 00:19:01 1997 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (expand_expr, case COND_EXPR): It's OK to merge two - SAVE_EXPRs. - -Mon Sep 1 23:36:45 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (restore_unscaled_index_insn_codes): New function. - (record_unscaled_index_insn_codes): Likewise. - (output_function_prologue): Call restore_unscaled_index_insn_codes. - (output_function_epilogue): Free memory for unscaled_index_insn_codes. - (pa_reorg): Call record_unscaled_index_insn_codes. - -Mon Sep 1 14:46:09 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (casesi_jump_1, casesi_jump2): Generate expanders. - (casesi_jump): Delete. - (casesi) Use gen_casesi_jump_1 and gen_casesi_jump2 instead of - gen_casesi_jump. - -Mon Sep 1 14:36:36 1997 Paul Eggert <eggert@twinsun.com> - - * sparc/sol2.h (CPP_SPEC): Add -D__STDC__=0 unless -ansi - or -traditional, for compatibility with Sun's practice. - * i386/sol2.h (CPP_SPEC), rs6000/sol2.h (CPP_SPEC): Likewise. - * configure.in ({sparc,i[3456]86,powerpcle}-*-solaris2*): - Set fixincludes=Makefile.in. - -Mon Sep 1 14:08:23 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * Makefile.in (config.status): Depend on version.c. - -Mon Sep 1 13:48:02 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * acconfig.h: Remove include of config2.h. - * configure.in: Build auto-config.h, not config.h, from autoconf data. - Add auto-conf.h in front of all other host_xm_file entries. - Make config.h, not config2.h, from host_xm_file. - * Makefile.in (auto-config.h): New rule; was config.h. - (distclean): Remove auto-config.h, not config2.h. - - * expr.c (do_jump_by_parts_equality_rtx): Try to do by IOR of - all the words. - -Mon Sep 1 13:07:36 1997 Bob Manson <manson@charmed.cygnus.com> - - * sparc/t-vxsparc (TARGET_LIBGCC2_CFLAGS): New definition. - (LIBGCC2_CFLAGS): Deleted. - * m68k/t-vxworks68: Likewise. - * i960/t-vxworks960: Likewise. - * a29k/t-vx29k: Likewise. - -Sun Aug 31 17:12:27 1997 Paul Eggert <eggert@twinsun.com> - - * real.c (EMULONG): Correct typo in spelling of HOST_BITS_PER_LONGLONG. - -Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) - - * mips.md (movstrsi_internal[23]): Set insn type to "store" to - get more accurate schedules. - - * pa.md (reload_peepholes): Make sure operand is a REG before - examining REGNO. Allow general registers too. - -Thu Aug 28 12:34:56 1997 Doug Evans <dje@seba.cygnus.com> - - * reload1.c (reload_cse_no_longer_dead): Don't pass incremented regno - to SET_HARD_REG_BIT, it can be evaluated twice. - -Wed Aug 27 20:15:53 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh/elf.h: (LINK_SPEC): Use shlelf. - (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX, ASM_FILE_START): Redefine. - * sh/lib1funcs.asm (___ashrsi3, ___ashlsi3, ___lshrsi3): - Truncate shift count. Use braf if not SH1. - * sh.c (sfunc_uses_reg): No longer static. - Check for SImode inside the USE. - (shiftcosts, expand_ashiftrt, shl_sext_kind): - Use SH_DYNAMIC_SHIFT_COST. - (sh_dynamicalize_shift_p, output_branchy_insn): New functions. - (output_ieee_ccmpeq, mova_p, cache_align_p, fixup_aligns): Likewise. - (branch_offset, short_cbranch_p, med_branch_p): Likewise. - (braf_branch_p, align_length, fixup_addr_diff_vecs): Likewise. - (addr_diff_vec_adjust, get_dest_uid, gen_far_branch): Likewise. - (split_branches, regs_used, gen_block_redirect): Likewise. - (from_compare): Can't compare non-zero DImode constant directly. - Emit special code for TARGET_SH3E floating point with code == GE. - Force 0.0 into a register for SH3E. - (print_operand): Add ','. - Emit the actual comparison instruction. - (sh_builtin_saveregs): Save floating point registers in order that - allows pre-decrement. - (find_barrier): New arguments num_mova and mova. Changed caller. - When rewinding to before a mova, also restore the last found barrier. - Branch is now known to be shortened. - Prefer barriers where no new alignment is needed. - More generic alignment for cache lines. - Add checks for pieces of code that use more table space than their - own size. - Fix up the barrier we return so that the alignment will always be - after the table. - Remove limit adjustments for table alignment. - Handle PARALLELs correctly. - (machine_dependent_reorg): Add extra pass to split insns. - Don't scan instructions twice for broken moves. - Calculate insn length, call fixup_addr_diff_vecs. - Call split_branches. - Add alignment for loops and after BARRIERs. - Initialize max_uid_before_fixup_addr_diff_vecs. - Advance mdep_reorg_phase. - Clear insn_addresses. - (output_far_jump): Use braf and/or pre-allocated scratch register - when possible. - (expand_ashiftrt): Truncate shift count. - (push_regs): Push PR last. - (sh_expand_epilogue): Pop PR first. - (code_for_indirect_jump_scratch, mdep_reorg_phase): New variables. - (uid_align, uid_align_max): Likewise. - (max_uid_before_fixup_addr_diff_vecs, sh_addr_diff_vec_mode): Likewise. - (braf_label_ref_operand): New predicate. - (initial_elimination_offset): calculate offset from - RETURN_ADDRESS_POINTER_REGNUM starting with total_saved_regs_space. - (output_branch): Expect out-of-range condbranches to have been split. - * sh.md (rotlsi3_16): Named insn. - (rotlsi3): Rewritten to use superoptimizer patterns. - (adddi3, subdi3, ashrsi2_16, ashrsi2_31): Always split. - (movsi_i, movsi_ie): replace t/z alternative with t/r alternative. - Use pcload_si and load_si insn types. - (adddi3+1, subdi3+1, ashrsi2_16+1, ashrsi2_31+1) New define_splits. - (addc, subc, ashlsi_c): New insns. - (attribute "type"): New values dyn_shift, load_si, pcload_si, fmove, - jump_ind, arith3 and arith3b. - (function_unit "fp"): Take fmove into account. - (function_unit "int"): Uses one cycle for !dyn_shift. - (function_unit "memory"): Special case for load_si and pcload_si. - (attribute "in_delay_slot): handle pcload_si. - (cmpgtdi_t, cmpgedi_t, cmpgeudi_t, cmpgtudi_t): Type arith3. - (cmpsi+1, cmpeqdi_t) Type arith3b. - (movsf_ie, alternatives f/fGH/X, f/y/X, y/f/X): Type fmove. - (extendsidi2): Delete. - (cmpeqsi_t-2): Delete. (Redundant with movt.) - (*rotlhi3_8) Name. - (iorsi3, rotlsi3_1, rotlsi3_31, rotlsi3_16, (*rotlhi3_8): Type arith. - (ashlsi3_k, ashlhi3_ki, ashrsi2_16, ashrsi2_31, lshrsi3_m): Likewise. - (lshrsi3_k, lshrhi3_m, lshrhi3_k, ashldi3_k, lshrdi3_k): Likewise. - (ashrdi3_k, xtrct_left, xtrct_right, dect, mova, movt): Likewise. - (movt): Likewise. - (ashlsi3_d, ashrsi3_d, lshrsi3_d): Type dyn_shift. - (indirect_jump_scratch, *casesi_jump_1, *casesi_jump_2): Type jump_ind. - (ashlsi3, ashlsi3_n, lshrsi3, lshrsi3_n): Use sh_dynamicalize_shift_p. - (movsf_ie+1, movsf_ie+2): Exchange. - (cmpeqdi_t-1, cmpeqdi_t, cmpgtdi_t, cmpgedi_t): New insns. - (cmpgeudi_t, cmpgtudi_t, movsi_i_lowpart, ieee_ccmpeqsf_t): Likewise. - (cmpdi, movnegt): New define_expands. - (movsi_ie): Add y,y alternative. - (sge): Use it for ! TARGET_IEEE. Use special code for TARGET_IEEE. - (sle): Use sge. - (align_4, casesi_jump): Now define_expand. - (casesi_0, addr_diff_vec_adjust, align_log): New patterns. - (*casesi_jump_[12]): Likewise. - (casesi): Use casesi_0 and casesi_jump. - (casesi_worker): Depends on the mode used for the table. - (define_delay for cbranches): Test TARGET_SH2. - Changed all callers of from_compare. - (attribute "length"): Take use of braf and scratch registers into - account. - (indirect_jump_scratch, block_branch_redirect): New patterns. - (jump): Call output_far_jump for any jump larger than 4 bytes. - (inverse_branch_true, inverse_branch_false): Remove. - (bne, blt, ble, bltu, bleu): Canonicalize. - (attribute "cpu"): Remove "sh0" alternative. - * sh.h (ADJUST_COST): Lower cost of non-address sfunc dependencies. - Adjust cost of load_si / pcload_si insns when not used for call. - (enum reg_class): Move GENERAL_REGS after FPUL_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. - (REGISTER_MOVE_COST): Add costs for fpul <-> mac, pr moves. - Fix to match default cost in regclass. Move to T reg not costly. - When checking for GENERAL_REGS, check for R0_REGS too. - (INITIALIZE_TRAMPOLINE): Include code for constant parts. - (SHIFT_COUNT_TRUNCATED): Not true for TARGET_SH3. - (CPP_SPEC): Define __sh1__ if no specific cpu is selected. - (FUNCTION_BOUNDARY): Align to cache line boundary. - (optimize, sh_addr_diff_vec_mode, machine_dependent_reorg): Declare. - (addr_diff_vec_adjust, code_for_indirect_jump_scratch): Declare. - (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Declare. - (output_ieee_ccmpeq, output_branchy_insn, sfunc_uses_reg): Declare. - (ASM_OUTPUT_ADDR_DIFF_ELT): Depends on sh_addr_diff_vec_mode. - (PREDICATE_CODES): Add braf_label_ref_operand and register_operand. - (IEEE_BIT, TAGET_IEEE, LOCAL_LABEL_PREFIX, ASSEMBLER_DIALECT): Define. - (CACHE_LOG, enum mdep_reorg_phase_e, TRAMPOLINE_ALIGNMENT): Define. - (SH_DYNAMIC_SHIFT_COST): Define. - (TARGET_SWITCHES): Remove -m0 entry. Add -mieee, -mno-ieee. - (OVERRIDE_OPTIONS): sh_cpu defaults to CPU_SH1. - Initialize sh_addr_diff_vec_mode. - (REG_ALLOC_ORDER): Move FP0 behind FP7. - Move all FP registers in front of the general registers. - (SECONDARY_OUTPUT_RELOAD_CLASS): Add case for MAC_REGS / PR_REGS. - When checking for GENERAL_REGS, check for R0_REGS too. - Fix direction of compares to {FIR,LA}ST_FP_REG. - (SECONDARY_INPUT_RELOAD_CLASS): check for fp_one_operand. - (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN, SH0_BIT): Delete. - (TARGET_SH0, PUSH_ROUNDING, TRAMPOLINE_TEMPLATE): Delete. - (TRAMPOLINE_ALIGN): Delete. - (processor_type): Remove PROCESSOR_SH0. - (ADJUST_INSN_LENGTH): Remove check for preceding BARRIER. - Adjust ADDR_DIFF_VECs. Add code for alignment instructions. - Check if insn needing a delay slot is already inside a SEQUENCE. - - * va-sh.h (__va_rounded_size): Delete. - (__LITTLE_ENDIAN_P, __SCALAR_TYPE, __PASS_AS_FLOAT): Define. - (va_arg): Unify big and little endian code. - Optimization for small integers. - - From Fred Fish: - * sh.h (INITIAL_ELIMINATION_OFFSET): Proper bracketing. - (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. - (SECONDARY_{OUTPUT,INPUT}_RELOAD_CLASS, LIBCALL_VALUE): Likewise. - (ROUND_ADVANCE, FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (FUNCTION_PROFILE, FUNCTION_EPILOGUE, RETURN_ADDR_RTX): Likewise. - (REGNO_OK_FOR_INDEX_P, EXTRA_CONSTRAINT_Q, MODE_DISP_OK_4): Likewise. - (GO_IF_LEGITIMATE_{INDEX,ADDRES}, LEGITIMIZE_ADDRESS): Likewise. - (CONST_COSTS, REGISTER_MOVE_COST, ASM_OUTPUT_CONSTRUCTOR): Likewise. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Likewise. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP, ASM_OUTPUT_LABEL): Likewise. - (ASM_OUTPUT_ALIGN), ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT) Likewise. - (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_INT): Likewise. - (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE): Likewise. - (ASM_OUTPUT_SKIP, FINAL_PRESCAN_INSN, PRINT_OPERAND): Likewise. - (PRINT_OPERAND_ADDRESS, HANDLE_PRAGMA, ADJUST_INSN_LENGTH): Likewise. - (PROMOTE_MODE): Likewise. - (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. - (ASM_OUTPUT_INTERNAL_LABEL): Use %L. - * sh/elf.h: (ASM_OUTPUT_LABELREF): Use %U. - (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. - (ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SOURCE_LINE): Use %L. - -Wed Aug 27 16:42:21 1997 Bob Manson (manson@cygnus.com) - - * t-h8300 (TARGET_LIBGCC2_CFLAGS): New definit. - (LIBGCC2_CFLAGS): Deleted. - * t-mn10200: Likewise. - -Wed Aug 27 17:10:51 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in - last change. - -Wed Aug 27 15:19:55 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * dwarfout.c (dwarfout_start_new_source_file): Strip leading '*'s - from label names. - -Wed Aug 27 14:33:38 1997 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads, case '0'): Reject matching a non-offsettable - address where an offsettable address is required. - -Wed Aug 27 10:38:32 1997 Jeffrey A Law (law@cygnus.com) - - * reorg.c (dbr_schedule): Allow current_function_return_rtx - to be something other than a REG. - * function.c (expand_function_end): Fix current_function_return_rtx - if it was a pseudo. - - * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. - * x-netbsd: Likewise - * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS - (INSTALL_HEADERS): Delete. - * x-dguxbcs: Likewise. - * x-hp3bsd44: Likewise - * x-pa: Likewise. - -Wed Aug 27 07:15:58 1997 Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de> - - * configure.in (AC_PROG_CC, AC_PROG_MAKE_SET): Check for gcc before - testing for flex. - -Wed Aug 27 02:24:35 1997 Jim Wilson <wilson@cygnus.com> - - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check - TYPE_DECL_IS_STUB instead of DECL_NAME. - - * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to - filenames. Use sed to extract base filename for install. - -Wed Aug 27 01:56:18 1997 Doug Evans <dje@seba.cygnus.com> - - * loop.c (combine_movables): Earlier insns don't match later ones. - - * c-decl.c (grokdeclarator): If array index or size calculations - overflow, issue an error. - * fold-const.c (int_const_binop): New static function. - (const_binop, size_binop): Call it. - -Tue Aug 26 17:51:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c (main): Check SCAN_LIBRARIES instead of LDD_SUFFIX - to decide whether to always emit init and fini handles. - -Tue Aug 26 13:51:10 1997 Jim Wilson <wilson@cygnus.com> - - * stor-layout.c (layout_record): Test DECL_PACKED instead of - TYPE_PACKED to determine alignment. - - * combine.c (try_combine): Distribute REG_DEAD notes created for - i3dest_killed similar to the ones created for i2dest_in_i2src - and for i1dest_in_i1src. - -Tue Aug 26 11:36:34 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_final_value): Don't miss a biv increment in a - parallel. - - * loop.c (check_dbra_loop): If the loop biv is only used - for counting, then normalize it so that the initial - value is zero. - -Tue Aug 26 06:19:48 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarfout.c (*_LABEL): Add initial '*'. - -Tue Aug 26 05:27:28 1997 Richard Henderson <rth@cygnus.com> - - * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. - * configure.in (alpha-*-linux-gnulibc1): New target. - (alpha-*-linux-gnu*): Don't build crtbegin/end. - -Mon Aug 25 19:11:38 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * reload1.c (reload_cse_simplify_operands): Fix typo. - -Mon Aug 25 19:04:42 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-typeck.c (common_type): Always prefer long double to double. - -Mon Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (secondary_reload_class): (mem (mem ... )) does not need - secondary reloads. - - * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the - store of the argument registers. - -Sun Aug 24 21:25:06 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * reload1.c (reload_cse_mem_conflict_p, case MEM): Also check - for conflict with the address. - -Sat Aug 23 18:43:22 1997 Jim Wilson <wilson@cygnus.com> - - * acconfig.h (NEED_DECLARATION_CALLOC): Add. - * configure.in: Add GCC_NEED_DECLARATION call for calloc. - * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete - declarations. - - * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. - * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. - -Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns - around branch tables. - * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab - and .end_brtab directives if TARGET_GAS. - -Fri Aug 22 19:17:25 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * function.c (instantiate_virtual_regs_1, case ADDRESSOF): - New case. - (fix_lexical_addr): Handle (addressof (mem ...)). - -Thu Aug 21 17:56:06 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload.c (push_secondary_reload): If SECONDARY_MEM_NEEDED, - call get_secondary_mem for input before adding reload and - for output after. - (push_reload): Likewise. - -Thu Aug 21 15:57:03 1997 Jim Wilson <wilson@cygnus.com> - - * stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test - block_stack before dereferencing it. - -Wed Aug 20 15:45:52 1997 Dave Love <d.love@dl.ac.uk> - - * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from - list. - -Wed Aug 20 15:30:36 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (ix86_prologue, ix86_epilogue): New functions. - ({function,ix86_expand}_{pro,epi}logue, ix86_expand_prologue): - Use ix86_prologue. - -Wed Aug 20 14:57:11 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. - -Tue Aug 19 17:10:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c: Add 'extern' to prepends_underscore. - -Tue Aug 19 15:46:30 1997 Jeffrey A Law (law@cygnus.com) - - * mips/r3900.h (SUBTARGET_CC1_SPEC): Remove some unnecessary stuff. - (MIPS_CPU_STRING_DEFAULT, MIPS_ISA_DEFAULT): Define. - -Mon Aug 18 21:49:02 1997 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR - reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. - -Mon Aug 18 17:39:02 1997 Mike Meissner <meissner@cygnus.com> - - * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single - quotes around the name. - -Mon Aug 18 17:26:42 1997 Doug Evans <dje@cygnus.com> - - * mips.md (movsi_ulw,movsi_usw,loadgp): Give unspec a mode. - -Mon Aug 18 11:05:17 1997 Jeffrey A Law (law@cygnus.com) - - * mips/r3900.h (TARGET_DEFAULT): Turn on MASK_MIPS3900. - -Sun Aug 17 14:39:18 1997 Gavin Koch (gavin@cygnus.com) - - * mips/elf.h (PREFERRED_DEBUGGING_TYPE): Only set if not already set. - * mips.c (TARGET_{SINGLE,SOFT}_FLOAT): Make sure both aren't set. - (PROCESSOR_R3900): Set flag from option. - * mips.h: Add m3900 option. - ({PROCESSOR,TARGET,MASK}_R3900): Define. - (GENERATE_{BRANCHLIKELY,MADD,MULT3): Likewise. - (debugj,MASK_DEBUG_J): Delete to make room for m3900. - (BRANCH_LIKELY_P): Redefine to include 3900. - (GAS_ASM_SPEC,CC1_SPEC): Add m3900 option. - (RTX_COSTS): Add 3900. - * mips.md: Add 3900, including three op madd and mult. - * configure.in (mipstx39{,el}-*-elf*): New cases. - * mips/r3900.h: New file. - -Fri Aug 15 07:34:12 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (umulsi3_highpart, smulsi3_highpart): Add extra reloading - alternatives. - -Fri Aug 15 07:34:12 1997 Torbjorn Granlund <tege@tege.pdc.kth.se> - - * arm.md (umulsi3_highpart, smulsi3_highpart): New patterns. - * arm.c (arm_rtx_costs, case TRUNCATE): New case. - -Fri Aug 15 06:40:03 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * genemit.c (main): Write an include for flags.h. - * genoutput.c (main): Likewise. - - * alpha.c (override_options): Turn off byte insns for cpu=ev4 or ev5. - - * alpha.md (allocate_stack): If stupid reg allocation, add USE - for loop variable. - - * fold-const.c (fold, compare cases): Add calls to `fold' to - previous change. - -Wed Aug 13 17:32:38 1997 Jason Merrill <jason@yorick.cygnus.com> - - * rtl.h ({SET,}ADDRESSOF_DECL): op 1 of ADDRESSOF is now the decl. - * function.c (put_var_into_stack, gen_mem_addressof, - put_addressof_into_stack): Adjust. - - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. - (expand_expr, case VAR_DECL): Lose gen_mem_addressof case. - -Wed Aug 13 17:29:25 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA. - -Wed Aug 13 16:51:35 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * reload1.c (reload_cse_simplify_operands): New function. - (reload_cse_no_longer_dead,reload_cse_delete_death_notes): Likewise. - (no_longer_dead_regs): New static variable. - (reload_cse_simplify_set): Now returns int. - Don't delete death notes on previous insns, call - reload_cse_no_longer_dead instead. - Call validate_change with nonzero value for in_group. - (reload_cse_noop_set_p): Don't delete death notes on previous insns, - call reload_cse_no_longer_dead instead. - (reload_cse_regs): Initialize no_longer_dead_regs and call - reload_cse_delete_death_notes as appropriate. - Call apply_change_group after calling reload_cse_simplify_set. - Call reload_cse_simplify_set on elements of a PARALLEL. - Call reload_cse_simplify_operands if reload_cse_simplify_set could - not simplify things. - -Wed Aug 13 16:18:42 1997 Douglas Rupp <rupp@gnat.com> - - * vms.h (LINK_SPEC): Echo -shared, not -share, to linker. - -Wed Aug 13 12:51:11 1997 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - - * m68k.md: Add braces to clarify nesting. - -Wed Aug 13 12:51:11 1997 Jason Merrill <jason@yorick.cygnus.com> - - * calls.c (expand_call): Use assign_temp and mark_addressable - instead of calling gen_mem_addressof directly. - -Wed Aug 13 12:40:15 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (install-man): Add missing $(exeext). - - * configure.in (alpha*-dec-osf*): Merge various cases; - split off version-specific files in new case statement. - Include osf2or3.h even for OSF1.2. - - * alpha.c (NUM_ARGS): New macro. - (CURRENT_FUNCTION_ARGS_INFO): Deleted. - (alpha_builtin_saveregs): Use new macro. - (function_arg): Deleted. - (alpha_arg_type, alpha_arg_info_reg_val): New functions. - * vms.h (enum avms_arg_type, avms_arg_info): New types. - (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Update definitions - to use new types. - (SETUP_INCOMING_VARARGS): Likewise. - (FUNCTION_ARG{,_PARTIAL_NREGS}, FUNCTION_ARG_ADVANCE): Likewise. - Only update CUM in FUNCTION_ARG_ADVANCE. - -Tue Aug 12 19:27:32 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, - as initial value for real_label_map. - (copy_for_inline): Likewise. - -Tue Aug 12 16:15:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * rtl.h (BYTECODE_LABEL): Use XSTR, not XEXP. - - * calls.c (expand_calls): Properly call any_pending_cleanups. - -Tue Aug 12 12:18:01 1997 Jason Merrill <jason@yorick.cygnus.com> - - * function.c (purge_addressof_1): Add force argument. - (purge_addressof): If there are any ASM_OPERANDS in an insn, always - put ADDRESSOFs into the stack. - - * function.c (setjmp_protect): See through addressof. - (setjmp_protect_args): Likewise. - * calls.c (expand_call): For now, only use addressof if the type - doesn't promote. - * function.c (put_var_into_stack): Likewise. - * expr.c (expand_expr): Likewise. - * toplev.c (rest_of_compilation): Check inlineable instead of - DECL_INLINE. - * function.c (purge_addressof_1): Try recognizing the insn with - and without the SUBREG. If it doesn't work, just put the REG into - the stack. - (gen_mem_addressof): Set the mode of the MEM to the mode of the type. - (put_var_into_stack): Don't be fooled by addressof in an enclosing - scope. - -Sun Aug 10 22:19:19 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * explow.c (probe_stack_range): Add USE for test_addr if -O0. - -Sun Aug 10 22:15:40 1997 Jason Merrill <merrill@churchy.gnu.ai.mit.edu> - - * toplev.c (rest_of_compilation): Move purge_addressof before loop. - -Sun Aug 10 15:25:51 1997 Jim Wilson <wilson@cygnus.com> - - * toplev.c (main): In -g handling code, add code to set len. - - * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN - has integer TYPE_{MAX,MIN}_VALUE before using them. - - * alpha.md (extendqihi2): Use HImode not QImode in force_reg call. - -Sun Aug 10 16:47:34 1997 Nick Burrett <nick.burrett@btinternet.com> - - * arm/aof.h (COMMON_SECTION): New macro, define common_section. - (EXTRA_SECTION_FUNCTIONS): Add COMMON_SECTION. - (EXTRA_SECTIONS): Add in_common. - (ASM_OUTPUT_COMMON): Call common_section() to indicate we've - changed areas. - -Sat Aug 9 20:04:35 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (gen_subprogram_die): Handle redefinition of an - extern inline function. - -Sat Aug 9 13:01:06 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000/sysv4.h (*_SPEC): Add support for -mads and -myellowknife. - Use a common crt0.o for all embedded platforms. Use --start-group - and --end-group instead of -( and -) to allow better cut and pasting - when debugging the linker. Set default start for MVME text. - (TARGET_SWITCHES): Add -mads and -myellowknife. - -Fri Aug 8 20:12:43 1997 Per Bothner <bothner@cygnus.com> - - * dwarf2out.c (gen_enumeration_type_die): - Make code work for a tag name, without a TYPE_STUB_DECL. - (gen_struct_or_union_type_die): Likewise. - -Fri Aug 8 18:10:40 1997 Marc Lehmann <pcg@goof.com> - - * i386/go32.h (HAS_INIT_SECTION, HAVE_ATEXIT): New macros. - -Fri Aug 8 17:30:22 1997 H.J. Lu <hjl@gnu.ai.mit.edu> - - * i386.c (output_pic_addr_const, case PLUS): Emit the constant first. - -Fri Aug 8 17:07:36 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list - template. - - * reg-stack.c (compare_for_stack_reg): Swap only if the source and - destination are both on the regstack. - (subst_stack_regs_pat): Put the destination at the top of the regstack. - -Fri Aug 8 17:03:21 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * i386.md (pop): pop increments the stack pointer. - (prologue_set_stack_ptr): New pattern. - * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr - instead of subsi3. - -Fri Aug 8 17:00:36 1997 Paul Eggert <eggert@twinsun.com> - - * gansidecl.h, halfpic.h (STDIO_PROTO): Remove. - * bitmap.h, c-tree.h, output.h, reload.h, rtl.h (STDIO_PROTO): - Replace with PROTO in include files. - * bc-emit.c: Include <stdio.h> before include files that formerly - used STDIO_PROTO. - * bc-optab.c, c-common.c, c-decl.c, caller-save.c, calls.c: Likewise. - * convex.c, i860.c, mips.c, spur.c, tahoe.c, emit-rtl.c: Likewise. - * explow.c, expmed.c, expr.c, genattrtab.c, halfpic.c: Likewise. - * jump.c, optabs.c, profile.c, recog.c, regclass.c: Likewise. - * rtlanal.c, sdbout.c, unroll.c: Likewise. - * genattrtab.c (main): Generate files that include <stdio.h> - before including files that formerly used STDIO_PROTO. - * genemit.c (main), genextract.c (main), genopinit.c (main): Likewise. - * genoutput.c (output_prologue), genpeep.c (main): Likewise. - * genrecog.c (main): Likewise. - * halfpic.h (PROTO): Use "gansidecl.h" to define this instead. - (half_pic_finish): Declare without prototype; FILE isn't defined. - - * bitmap.c, c-aux-info.c, c-lex.c: Include "config.h" first. - * c-parse.in, c-pragma.c, 1750a.c, a29k.c, alpha.c: Likewise. - * arm.c, clipper.c, dsp16xx.c, elxsi.c, fx80.c, gmicro.c: Likewise. - * h8300.c, i370.c, i386.c, i386/winnt.c, i960.c: Likewise. - * m32r.c, m68k.c, m88k.c, mn10200.c, mn10300.c, ns32k.c: Likewise. - * pa.c, pdp11.c, pyr.c, romp.c, rs6000.c, sparc.c, vax.c: Likewise. - * we32k.c, cppmain.c, dbxout.c, flow.c, fold-const.c: Likewise. - * gcc.c, gcov.c, global.c, integrate.c, local-alloc.c: Likewise. - * loop.c, mips-tdump.c, mips-tfile.c, objc-act.c: Likewise. - * real.c, reg-stack.c, reload.c, reload1.c, reorg.c, sched.c: Likewise. - * stupid.c, tree.c, varasm.c, xcoffout.c: Likewise. - -Fri Aug 8 14:52:35 1997 Jason Merrill <jason@yorick.cygnus.com> - - * function.c (fixup_stack_1): Stack slots can also be relative to - the frame or stack pointers. - -Fri Aug 8 14:13:49 1997 Richard Henderson <richard@gnu.ai.mit.edu> - - * dwarf2out.c (reg_loc_descriptor): Fix prototype. - (concat_loc_descriptor): New function. - (loc_descriptor): Call it. - (add_AT_location_description): Also elide the descriptor if both - halves of a CONCAT are pseudos. - (add_location_or_const_value_attribute): Recognize CONCAT too. - -Fri Aug 8 06:36:29 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * c-common.c (if_stack{,_space,_pointer}): New static variables. - (c_expand_{start_cond,start_else,end_cond}): New functions. - * c-parse.in (compstmt_count): New static variable. - (compstmt_start): New rule. - (compstmt): Use new rule. - (do_stmt_start): Update compstmt_count. - (simple_if, stmt): Use new versions of start_cond, start_else, - and end_cond. - -Thu Aug 7 15:35:25 1997 Jim Wilson <wilson@cygnus.com> - - * mips/iris6.h (TARGET_LONG64): Don't define here. - * mips.c (override_options): Set MASK_LONG64 for ABI_64. - - * mips.c (function_prologue): Don't emit ".ent", ".frame", - ".mask", ".fmask" if flag_inhibit_size_directive is true. - (function_epilogue): Don't emit ".end" if - flag_inhibit_size_directive is true. - - * mips/iris6.h (STARTFILE_SPEC, LIB_SPEC): Move - -L/usr/lib{32,64}/mips? from STARTFILE_SPEC to LIB_SPEC. - -Thu Aug 7 13:14:21 1997 Torbjorn Granlund <tege@tunnis.tmg.se> - - * fold-const.c (fold): Optimize unsigned x <= 0x7fffffff. - -Thu Aug 7 12:46:31 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * explow.c (convert_memory_address, case LABEL_REF): Copy - LABEL_REF_NONLOCAL_P. - - * expr.c (store_constructor): Use CONST0_RTX macro, not always - the integer version, when clearing a register. - - * varasm.c (output_constructor): Correctly check for - multi-word constant. - -Thu Aug 7 10:04:42 1997 Douglas Rupp <rupp@gnat.com> - - * alpha/vms-tramp.asm: New file. - - * gcc.c (execute): Don't allow -pipe on VMS. - - * alpha.c (vmskrunch): Don't strip off trailing digits. - (vms_valid_decl_attribute_p): New function. - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add another quadword of zeros. - (TRAMPOLINE_SIZE): Now 32 bytes. - (INITIALIZE_TRAMPOLINE): Put FNADDR at offset 16, CXT at 24. - (DBX_DEBUGGING_INFO, ASM_FORMAT_PRIVATE_NAME): Always undefine. - (STARTFILE_SPEC): Likewise. - (PREFERRED_DEBUGGING_TYPE): Define to be Dwarf-2. - (VALID_MACHINE_DECL_ATTRIBUTE, ASM_OUTPUT_SECTION{,_NAME}): New macros. - (ASM_OUTPUT_ALIGN{,ED_COMMON}): Redefine. - (LINK_SPEC): Pass -share and -v. - (ENDFILE_SPEC, LIBGCC2_SPEC): Don't redefine. - -Thu Aug 7 06:21:47 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * Eliminate most -Wswitch warnings. - * c-common.c (binary_op_error): Add default case to switch. - (shorten_compare, truthvalue_conversion): Likewise. - * c-iterate.c (collect_iteratores): Likewise. - * c-typeck.c (comptypes, build_component_ref): Likewise. - (build_binary_op, lvalue_p, build_unary_op): Likewise. - (build_modify_expr, initializer_constant_valid_p): Likewise. - (c_expand_return): Likewise. - * calls.c (calls_function_1): Likewise. - * combine.c (find_split_point, simplify_rtx): Likewise. - (simplify_if_then_else, simplify_logical): Likewise. - (extract_left_shift, make_compound_operation, force_to_mode): Likewise. - (known_cond, nonzero_bits, num_sign_bit_copies): Likewise. - (merge_outer_ops, simplify_shift_const, simplify_comparison): Likewise. - (reversible_comparison_p, mark_used_regs_combine): Likewise. - * convert.c (convert_to_integer): Likewise. - * cse.c (canon_hash, exp_equiv_p): Likewise. - (set_nonvarying_address_components, canon_reg): Likewise. - (simplify_unary_operation, simplify_plus_minus): Likewise. - (simplify_relational_operation, fold_rtx): Likewise. - (cse_process_note, count_reg_usage): Likewise. - * dbxout.c (dbxout_symbol): Likewise. - * dwarf2out.c (lookup_cfa_1, print_die): Likewise. - * emit_rtl.c (copy_rtx_if_shared, reset_used_flags): Likewise. - * explow.c (plus_constant_wide, convert_memory_address): Likewise. - (promote_mode, emit_stack_save, emit_stack_restore): Likewise. - * expmed.c (expand_divmod, emit_store_flag): Likewise. - * expr.c (queued_subexp_p, is_zeros_p, safe_from_p): Likewise. - (bc_expand_expr, preexpand_calls, convert_move): Likewise. - * final.c (get_attr_length, final_scan_insn): Likewise. - (walk_alter_subreg, alter_cond): Likewise. - * flow.c (jmp_uses_reg_or_mem, mark_used_regs): Likewise. - * fold-const.c (operand_equal_p, twoval_comparison_p): Likewise. - (eval_subst, invert_truthvalue, range_binop): Likewise. - (make_range, fold): Likewise. - * function.c (fixup_var_refs_1, instantiate_virtual_regs_1): Likewise. - * genattrtab.c (attr_copy_rtx, make_canonical): Likewise. - (encode_units_mask, simplify_test_exp): Likewise. - (find_and_mark_used_attributes, write_test_expr): Likewise. - (simplify_with_current_value_aux, clear_struct_flag): Likewise. - (count_sub_rtxs, gen_insn walk_attr_value): Likewise. - (copy_rtx_unchanging): Likewise. - * genconfig.c (walk_insn_part): Likewise. - * genextract.c (walk_rtx): Likewise. - * genoutput.c (scan_operands): Likewise. - * genpeep.c (match_rtx): Likewise. - * genrecog.c (add_to_sequence): Likewise. - * integrate.c (copy_for_inline, copy_rtx_and_substitute): Likewise. - (subst_constants): Likewise. - * jump.c (duplicate_loop_exit_test, comparison_dominates_p): Likewise. - (mark_jump_label, rtx_renumbered_equal_p): Likewise. - (rtx_equal_for_thread_p): Likewise. - * local-alloc.c (memref_referenced_p): Likewise. - * loop.c (record_excess_regs, reg_in_basic_block_p): Likewise. - (get_condition, replace_call_address): Likewise. - (count_nonfixed_reads, find_and_verify_loops, find_mem_givs): Likewise. - (maybe_eliminate_biv_1, invariant_p, simplify_giv_expr): Likewise. - * optabs.c (emit_float_lib_cmp): Likewise. - * print-tree.c (print_node): Likewise. - * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. - * reload.c (subst_reg_equivs, find_reloads_address_1): Likewise. - (refers_to_regno_for_reload_p, find_equiv_reg): Likewise. - * reload1.c (set_label_offsets, eliminate_regs): Likewise. - (scan_paradoxical_subregs, count_occurrences): Likewise. - * rtl.c (copy_rtx, copy_most_rtx): Likewise. - * rtlanal.c (rtx_varies_p, rtx_addr_can_trap_p): Likewise. - (reg_mentioned_p, reg_referenced_p, modified_between_p): Likewise. - (modified_in_p, refers_to_regno_p, volatile_insn_p): Likewise. - (volatile_refs_p, side_effects_p): Likewise. - (inequality_comparison_p, replace_regs): Likewise. - * sched.c (sched_analyze_2): Likewise. - * stmt.c (expand_return): Likewise. - * tree.c (staticp, unsave_expr_now, contains_placeholder_p): Likewise. - (substitute_in_expr, build_type_attribute_variant): Likewise. - (simple_cst_equal): Likewise. - * unroll.c (remap_split_bivs): Likewise. - * varasm.c (const_hash, compare_constant_1): Likewise. - (decode_rtx_const, output_addressed_constants): Likewise. - (output_constant): Likewise. - * print-tree.c (print_node): Convert switch with one case into an if. - * sched.c (memrefs_conflict_p): Likewise. - * genrecog.c (write_tree_1): Output default case for every switch. - - * profile.c (output_arc_profiler) [SMALL_REGISTER_CLASSES]: - Apply PATTERN only to insns. - -Thu Aug 7 06:13:20 1997 Robert Lipe <robertl@dgii.com> - - * i386/t-sco5 (libgcc2-elf.a): Resync with Makefile.in. - -Wed Aug 6 19:28:05 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (build_abbrev_table): Use xrealloc not xmalloc. - -Wed Aug 6 12:57:24 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (output_call_frame_info): Always emit the info. - (dwarf2out_frame_debug): We can initialize the temp reg in the - epilogue, too. - - * rtl.def: Add ADDRESSOF. - * rtl.h (ADDRESSOF_TYPE, SET_ADDRESSOF_TYPE): New macros. - * Makefile.in (mostlyclean): Remove *.addressof. - * toplev.c (rest_of_compilation): Set DECL_DEFER_OUTPUT on - non-nested inlines. Run purge_addressof after CSE. - (various): Add .addressof RTL dump file. - * rtl.c (copy_rtx): No need to copy ADDRESSOF. - * reload1.c (eliminate_regs): Elide ADDRESSOF. - * recog.c (general_operand): (MEM (ADDRESSOF ())) is a valid operand. - So is (ADDRESSOF ()). - (memory_address_p): (ADDRESSOF ()) is a valid memory address. - * integrate.c (expand_inline_function): If the structure_value_addr - is an ADDRESSOF, we can use it as a constant. - (copy_rtx_and_substitute): Copy a '0' operand over unchanged. - * function.c (fixup_var_refs_1): Remove (ADDRESSOF (MEM ())). - (gen_mem_addressof): New fn. - (put_addressof_into_stack): New fn. - (purge_addressof_1): New fn. - (purge_addressof): New fn. - (instantiate_decl): Don't bother looking into an ADDRESSOF. - (put_var_into_stack): Call gen_mem_addressof for local REGs instead - of calling put_reg_into_stack. - * expr.c (expand_expr, case TARGET_EXPR): Put the temp in a register - if it will fit. - (expand_expr, case ADDR_EXPR): Call gen_mem_addressof to take the - address of a REG. - * explow.c (memory_address): An ADDRESSOF is a valid memory address. - * dwarfout.c (location_or_const_value_attribute): Handle ADDRESSOF. - * dwarf2out.c (add_location_or_const_value_attribute): Handle - ADDRESSOF. - * cse.c (FIXED_BASE_PLUS_P): Add ADDRESSOF. - (NONZERO_BASE_PLUS_P): Add ADDRESSOF. - (canon_hash): Ignore '0' operands. - (find_best_addr): Don't try to replace an ADDRESSOF. - (fold_rtx): If our address has a const equiv of an ADDRESSOF, use it. - * calls.c (expand_call): Put the struct value in a register if - it fits. - -Tue Aug 5 16:10:45 1997 Jason Merrill <jason@yorick.cygnus.com> - - * mips.c (function_arg): Handle passing a struct - containing a double in a DFmode register without the PARALLEL. - -Tue Aug 5 12:27:31 1997 Doug Evans <dje@cygnus.com> - - * configure.in (sparc-*-solaris2): Set float_format to i128. - * config/float-i128.h: New file. - -Mon Aug 4 17:45:19 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (try_combine): If have PARALLEL of independent SETs - and have cc0, ensure insn using CC0 come first. - -Mon Aug 4 15:22:41 1997 Mike Meissner <meissner@cygnus.com> - - * rs6000/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Undef for System V - environments. - -Mon Aug 4 12:34:41 1997 Philip Blundell <pb@nexus.co.uk> - - * configure.in (arm-*-aout): Set tmake_file correctly. - -Mon Aug 4 08:06:48 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload.c (find_reloads_address_1): Don't pass VOIDmode for an - integer argument of push_reload. - - * rtlanal.c (may_trap_p): Fix unintended fall-through so divisions by - non-zero constants are handled properly. Return 1 for FP divisions. - -Mon Aug 4 06:52:20 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-common.c (check_format_info): Store each flag character only - once in the flag_chars array. - -Sun Aug 3 21:57:31 1997 Jim Meyering <meyering@eng.ascend.com> - - * objc/Make-lang.in (objc/*.o): Depend on $(GCC_PASSES). - -Sun Aug 3 21:54:51 1997 Nick Burrett <n.a.burrett@btinternet.com> - - * cpplib.c (cpp_start_read): Recognise suffixes 'cp' and 'c++'. - -Sun Aug 3 19:18:27 1997 Ralf Baechle <ralf@uni-koblenz.de> - - * Makefile.in (mostlyclean): Remove libgcc1-test. - -Sun Aug 3 19:10:27 1997 Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de> - - * Makefile.in (T): Move to place where it can be overridden. - (install_common): Fix permissions of specs and EXTRA_PARTS files. - -Sun Aug 3 19:07:04 1997 Jan-Jaap van der Heijden <J.J.vanderHeijden@student.utwente.nl> - - * gcc.c (default_compilers): Add default entries for Pascal. - -Sun Aug 3 18:38:41 1997 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_return_addr): New function. - (output_epilog): Zero alpha_return_addr_rtx. - * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. - -Sun Aug 3 17:27:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (INSTALL): Build in $(srcdir). - - * config/linux.h (DEFAULT_VTABLE_THUNKS): New macro. - -Sun Aug 3 17:18:31 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com) - - * expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Emit warning - if return address cannot be determined. - -Sun Aug 3 17:04:00 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * stupid.c (stupid_life_analysis): If function receives non-local - goto, don't let any registers live across calls. - - * fold-const.c (merge_ranges): Make sure that if one range is subset - of another, it will always be the second range. Correct (+,-) case to - account for this. - -Sun Aug 3 16:48:30 1997 Paul Eggert <eggert@twinsun.com> - - * c-lex.c (yylex): Remove duplicate check on high bit before - invoking int_fits_type_p. - -Sun Aug 3 16:44:41 1997 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> - - * reload.c (find_equiv_reg): If goal is a pseudo that got memory, a - store into memory makes it invalid. This was handled in the single - set case, but missing in the PARALLEL case. - -Sun Aug 3 09:13:47 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (store_field): Return quickly if EXP is ERROR_MARK. - - * c-typeck.c (unary_complex_lvalue): Don't warn about COMPOUND_EXPR - or COND_EXPR if FUNCTION_TYPE. - - * alpha.h (ASM_SPEC): Add -O0. - - * expr.h (clear_storage): Now returns rtx. - (emit_block_move): Likewise; delete duplicate declaration. - * expr.c (clear_storage, emit_block_move): Return address of - dest if calling memset/memcpy. - (expand_builtin, BUILT_IN_MEM{CPY,SET}): Return value from - clear_storage or emit_block_move if present. - - * c-decl.c (start_function): Reset immediate_size_expand on - error return. - -Sat Aug 2 18:50:43 1997 Paul Eggert <eggert@twinsun.com> - - * tree.c (int_fits_type_p): Negative ints never fit unsigned - types, and unsigned ints with top-bit-set never fit signed types. - -Sat Aug 2 16:25:43 1997 Per Bothner <bothner@frobnitz.gnu.ai.mit.edu> - - * Makefile.in (EXTRA_C_OBJS): Removed. - (C_AND_OBJC_OBJS): New. Subsumes EXTRA_C_OBJS and OBJC_CCOMMON. - * objc/Make-lang.in (OBJC_CCOMMON): Removed. - -Sat Aug 2 16:11:57 1997 Doug Evans <dje@cygnus.com> - - * configure.in: Build .gdbinit for top level build dir here. - (AC_OUTPUT): Pass oldstyle_subdirs to configure.lang. - * configure.lang: Fix building of .gdbinit for oldstyle lang subdirs. - -Sat Aug 2 13:48:15 1997 Ken Raeburn <raeburn@cygnus.com> - - * cse.c (cse_insn): Ignore paradoxical SUBREGs unless we are - looking for such. - -Sat Aug 2 13:25:33 1997 Tristan Gingold (gingold@email.enst.fr) - - * calls.c (expand_call): If -fcheck-memory-usage, use pseudo-register, - check indirectly called function is executable, and set rights of - memory for aggregate as write only. - (store_one_arg): If -fcheck-memory-usage, set rights for pushed - stack argument. - * c-decl.c (init_decl_processing): Add - __builtin_aggregate_incoming_address. - * explow.c (expr_size): Call expand_expr with appropriate flag. - * expr.c (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS): - New case. - (expand_assignment, expand_expr, emit_push_insn, store_expr): - Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap - when -fcheck-memory-usage. - (get_push_address, get_memory_usage_from_modifier): New functions. - * expr.h: Add expand_modifier flags. - (chkr_*_libfunc): New decls. - (memory_use_mode): New declaration. - * flags.h (flag_check_memory_usage, flag_prefix_function_name): New - declaration. - * function.c (put_var_into_stack, assign_parms): If - -fcheck-memory-usage, set the rights of pushed variable. - * optabs.c (chkr_{check_addr,set_right}_libfunc): New definitions. - (chkr_{copy_bitmap,check_exec}_libfunc): Likewise. - (init_optabs): Initialize these chkr_*_libfunc. - * stmt.c (expand_computed_goto): If -fcheck-memory-usage, check that - computed address of a goto is executable. - (expand_asm, expand_asm_operands): If -fcheck-memory-usage, - disallow asm statments. - * toplev.c (flag_check_memory_usage, flag_prefix_function_name): New - variable. - (f_options): Add `check-memory-usage' and `prefix_function_name'. - (main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set - and the machine can't debug without the frame pointer. - * tree.h (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS. - * varasm.c (make_function_rtl, make_decl_rtl): Add a prefix when - flag_prefix_function_name_usage is set. - (assemble_name): Strip the CHKR_PREFIX. - * alpha.c (alpha_builtin_saveregs): If -fcheck-memory-usage, - set rights of saved registers. - * clipper.c (clipper_builtin_saveregs): Likewise. - * m88k.c (m88k_builtin_saveregs): Likewise. - * pa.c (hppa_builtin_saveregs): Likewise. - * sparc.c (sparc_builtin_saveregs): Likewise. - -Sat Aug 2 08:01:12 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-decl.c (grokdeclarator): Give error for `long double' and - refine text of some error messages. - - * alpha.h (FLOAT_VALUE_TYPE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): Define. - * i860.h (FLOAT_VALUE_TYPE): Fix typo; was FLOAT_TYPE_VALLUE. - - * calls.c (store_one_arg): Allow stack_slot to be SP in - ARGS_GROW_DOWNWARD case. - - * c-decl.c (parmlist_tags_warning): Only suppress warning on - union if anonymous. - - * libgcc2.c (_trampoline): Rework last change; both getpagesize - and mprotect are in cygwin32. - - * reload1.c (reload): Add IN_ADDR to IN_ADDR_ADDR when computing - needs since they conflict. - - * print-rtl.c (indent): Move to file level; was static in print_rtx. - (print_inline_rtx): New function. - * reload.c (debug_reload): Rework to make output more compact. - - * dwarfout.c (output_compile_unit_die): Add support for Pascal. - * dwarf2out.c (gen_compile_unit_die): Likewise. - - * c-typeck.c (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array. - - * Makefile.in (OBJC_OBJC): Delete from here. - - * varasm.c (compare_constant_1, case STRING_CST): Compare TYPE_MODE. - (record_constant_1, case STRING_CST): Record TYPE_MODE. - - * tree.c (contains_this_placeholder_p): Delete. - (contains_placeholder_p): Now contains code from above function. - (contains_placeholder_p, case 'r'): Don't look at offset info. - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Find innermost - matching and don't check contains_placeholder_p. - -Fri Aug 1 17:15:07 1997 Per Bothner <bothner@cygnus.com> - - * objc/objc-act.c (lang_init): Don't check_newline #if USE_CPPLIB. - * c-lex.c (lang_init): Remove (recently moved here). - * c-lang.c (lang_init): Restore, but add #if !USE_CPPLIB. - -Fri Aug 1 11:26:45 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too. - -Thu Jul 31 19:37:22 1997 Ian Lance Taylor <ian@cygnus.com> - - * libgcc2.c (getpagesize): Don't compile if __CYGWIN32__. - -Thu Jul 31 16:04:42 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (output_to_reg, output_fix_trunc): Use scratch memory, - if available, instead of dynamically extending the stack. - (put_condition_code, print_operand): Added reverse_cc to reverse the - comparison when $ah is accessed directly instead of using eflags - - * i386.md (*trunc*): Use scratch memory for output_fix_trunc. - (movsicc_1, movhicc_1) Change alternative 3 to: - jCC L1; mov; jmp L2; L1:mov; L2: - (movsfcc, movdfcc, movxfcc): Force constant operands to memory. - (movsfcc_1, movdfcc_1, movxfcc_1): Change alternative 3 as above. - -Thu Jul 31 16:04:42 1997 Jason Merrill <jason@yorick.cygnus.com> - - * i386.h (MAX_FIXED_MODE_SIZE): Define. - -Thu Jul 31 16:04:42 1997 Robert Lipe <robertl@dgii.com> - - * i386/sco5.h (SWITCHES_NEED_SPACES) Define. - Required by the COFF (but not ELF) linker. - -Wed Jul 30 15:03:52 1997 Per Bothner <bothner@cygnus.com> - - * demangle.h (DMGL_JAVA): New option to request Java demangling. - * cplus-dem.c: Various changes to produce Java output when passed - DMGL_JAVA. Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]". - (main): Support --java and -j flags to set DMGL_JAVA. - -Wed Jul 30 08:56:08 1997 Philip Blundell <Philip.Blundell@pobox.com> - - * configure.in (arm-*-*): Replace with arm-*-aout. - * arm/aout.h (SET_ASM_OP): Define by default. - * arm/riscix.h (SET_ASM_OP: Undefine. - * arm.h (CPP_SPEC): Add %(subtarget_cpp_spec). - (SUBTARGET_CPP_SPEC): New macro. - * arm/linux.h: Include aout.h rather than arm.h directly. - (TARGET_CPU_DEFAULT): Define. - ({ASM,CPP}_SPEC): Remove. - * arm/t-linux (MULTILIB_OPTIONS): Use -mapcs-NN instead of -mN. - (LIB1ASMSRC): Use generic ARM version. - (CROSS_LIBGCC1): Define. - * arm/lib1funcs-linux.asm: Remove. - -Tue Jul 29 17:57:47 1997 Per Bothner <bothner@cygnus.com> - - * Add hooks for using autconf-style Makefile.in in language subdirs. - * configure.in (all_outputs, oldstyle_subdirs): New variables. - Pass all_outputs to AC_OUTPUT. - * configure.lang: Only iterate over oldstyle_subdirs. - - * Patches to use cpplib with cc1 #if USE_CPPLIB. - * configure.in (--enable-c-cpplib): New option. - (extra_c_flags, extra_c_objs): New variables. - * Makefile.in (EXTRA_C_OBJS): New variable. - (INTERNAL_CFLAGS): Add @extra_c_flags@. - (C_OBJS): Add $(EXTRA_C_OBJS). - * c-lex.c (generally): Replace getc and ungetc by macros GETC and - UNGETC. Avoid explicit references to finput. - (yy_get_token): New function, that calls cpp_get_token. - (init_parse): New function - calls init_lex. - (finish_parse): New function (called by compile_file). - (GET_DIRECTIVE_LINE): New macro wrapper replaces get_directive_line. - (lang_init): Don't check_newline - already know main_input_filename. - (handle_sysv_pragma): Remove FILE* parameter. - * toplev.c (finput): Remove #if USE_CPPLIB. - (compile_file): #if USE_CPPLIB don't open input file here, - do it in cpp_start_read. Call init_parse instead of init_lex. - At end, call finish_parse instead of fclose(finput). - -Mon Jul 28 15:48:29 1997 Brendan Kehoe <brendan@cygnus.com> - - * integrate.c (expand_inline_function): Use xmalloc instead of - alloca for the LABEL_MAP. - (save_for_inline_copying): Likewise. - -Mon Jul 28 11:22:16 1997 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (compile_file): Also emit any deferred TREE_PUBLIC inlines. - (rest_of_compilation): Use decl_printable_name instead of DECL_NAME - to identify functions in the RTL dump files. - - * dwarf2out.c (add_location_or_const_value_attribute): - leaf_renumber_regs_insn. Also eliminate_regs here. - (add_AT_location_description): Not here. Don't emit anything - for a variable that has been optimized away. - (add_const_value_attribute): Likewise. - - * dwarfout.c (location_or_const_value_attribute): - leaf_renumber_regs_insn. Also eliminate_regs here. - (location_attribute): Not here. - - * stor-layout.c (layout_type): Fix ancient code to match ancient - comment. Use mode of field for one-field structs. - -Sun Jul 27 12:09:02 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * function.c (put_var_into_stack, trampoline_address): Treat - inline_function_decl like current_function_decl. - * expr.c (expand_expr, case LABEL_DECL): Likewise. - (expand_expr, case SAVE_EXPR): Handle top-level SAVE_EXPR by - moving into current function; abort if in incorrect context. - * fold-const.c (fold_range_test, fold): Avoid making SAVE_EXPR - if at top level. - - * dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Delete default value. - - * alpha.h (TARGET_SWITCHES): Add -mno-byte. - - * expr.c (get_inner_unaligned_p): Deleted. - (expand_assignment): Remove special-case of constant array. - (expand_expr, case ARRAY_REF): Likewise, and clean up remaining code. - - * explow.c (probe_stack_range): Do probing with loop if more - than a small number. - -Fri Jul 25 15:42:34 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * configure.in: Finish fixing calculation if default thread - support is enabled. - -Fri Jul 25 15:30:09 1997 Doug Evans <dje@cygnus.com> - - * Makefile.in (native): Depend on config.h. - (gcc.o): Depend on Makefile, not config.status. - -Fri Jul 25 10:56:50 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): If TARGET_BIG_SWITCH, then do not explode - ADDR_VEC insns. Slightly rework code which explodes ADDR_VEC - insns. - * pa.h (TARGET_BIG_SWITCH): Define. - (TARGET_SWITCHES): Add "big-switch" and "no-big-switch". - (CASE_VECTOR_MODE): Use TI or DI depending on TARGET_BIG_SWITCH. - (CASE_DROPS_THROUGH): Remove definition. - (ASM_OUTPUT_ADDR_VEC_ELT): Rewrite to handle TARGET_BIG_SWITCH. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - * pa.md (casesi): Rework to avoid some potential long branch - problems (also makes generated code faster!). Handle - TARGET_BIG_SWITCH. - (casesi0): Corresponding changes. - -Fri Jul 25 08:36:47 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * calls.c: (expand_call): If -fstack-check and temp needed - for arg is too large, use alloca. - * expr.c (expand_expr, case MODIFY_EXPR): Don't preexpand calls - if LHS is an indirect via a constant pointer. - -Thu Jul 24 21:49:11 1997 Pat Rankin <rankin@eql.caltech.edu> - - * bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion. - -Wed Jul 23 23:52:14 1997 Chris Smith <csmith@convex.hp.com> - - * convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization. - -Wed Jul 23 13:00:47 1997 Richard Earnshaw <rearnsha@cambridge.arm.com> - - * configure.in (arm-*-netbsd*): Fix typo setting tmake_file. - -Wed Jul 23 06:39:35 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (alpha*): Put quotes around MASK_GAS. - -Tue Jul 22 15:24:45 1997 Brendan Kehoe <brendan@cygnus.com> - - * tree.c (array_type_nelts): Make sure the domain of TYPE is set - before we try to use it. - -Tue Jul 22 12:26:13 1997 Doug Evans <dje@cygnus.com> - - * sparc.c (gen_v9_scc): Handle early clobber of result. - * sparc.md (seqdi_special): Don't clobber %xcc. - (snedi_special, seqdi_special_trunc, snedi_special_trunc): Likewise. - (snedi_zero, neg_snedi_zero, seqdi_zero, neg_seqdi_zero): Likewise. - (snedi_zero_trunc, seqdi_zero_trunc): Likewise. Renamed from ..._sp64. - (snedi_zero_trunc_sp32, seqdi_zero_trunc_sp32): Delete. - - * Makefile.in (Makefile): Pass xmake_file, tmake_file to - configure.frag - (distclean): Delete Make-host, Make-target. - * configure.in (host_overrides): Set to Make-host. - (dep_host_xmakefile): Loop over all elements in host_make_file. - (target_overrides): Set to Make-target. - (dep_tmake_file): Loop over all elements in tmake_file. - (configure.frag): Pass dep_host_xmake_file, dep_tmake_file. - * configure.frag: New arguments xmake_files, tmake_files. - Build Make-host, Make-target. - -Mon Jul 21 23:17:44 1997 Paul Eggert <eggert@twinsun.com> - - * objc/Make-lang.in, objc/Makefile.in: Comment out lines containing - just formfeeds. - -Mon Jul 21 14:05:46 1997 Doug Evans <dje@cygnus.com> - - * Makefile.in (Makefile): Depend on config.status instead - of configure. - (config.status): Depend on configure. Run config.status --recheck - if out of date. - (cstamp-h.in): Use echo instead of touch. - - * reload1.c (reload_cse_mem_conflict_p): Restore handling of - (mem:BLK const0_rtx) meaning all memory is clobbered. - -Mon Jul 21 06:20:10 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md (iorsi_zexthi_ashl16): Mark output operand as earlyclobber. - -Sun Jul 20 06:11:30 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (alpha*-*-*): Set cpu_type to alpha. - Change "alpha-" to "alpha*-" in all entries. - Set target_cpu_default for ev5 and ev56 systems. - Use symbolic names for target_cpu_default. - * alpha.c (override_options): Set default for alpha_cpu - from TARGET_CPU_DEFAULT. - * alpha.h (MASK_CPU_EV5): New macro. - - * tree.c (contains_placeholder_p): Call contains_this_placeholder_p. - (contains_this_placeholder_p): Renamed from contains_placeholder_p. - Added new arg, PL. - Rework to make more consistent, check more codes, and avoid - undefined fields. - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Pick outermost - object in placeholder_list of right type without a PLACEHOLDER_EXPR. - -Sat Jul 19 18:00:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.c (override_options): Allow processor of ev56 or 21164a. - (input_operand, case MEM): Correct test involving TARGET_BYTE_OPS. - * alpha.h (SECONDARY_{IN,OUT}PUT_RELOAD_CLASS): Don't need for - QImode or HImode if TARGET_BYTE_OPS. - (ASM_FILE_START): Write a .arch directive. - (STACK_CHECK_BUILTIN): New macro. - * alpha.md ({zero_,}extend[qh]i[dsh]i2): Rework TARGET_BYTE_OPS cases. - (mov[hq]i): Likewise. - (extend[qh]i[hsd]i2x): Add missing cases and fix typo in constraint. - (reload_{in,out}[qh]i): Disable for TARGET_BYTE_OPS. - -Fri Jul 18 23:24:57 1997 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (make_decl_rtl): Don't use ASM_FORMAT_PRIVATE_NAME for - local decls with TREE_PUBLIC set. - (bc_make_decl_rtl): Likewise. - -Fri Jul 18 22:16:28 1997 Doug Evans <dje@cygnus.com> - - * configure.in: Invoke AC_CONFIG_HEADER. - Check for string.h, strings.h, stdlib.h, time.h, unistd.h. - Check for whether malloc/realloc/free need to be declared. - (links): Rename config.h to config2.h. - (AC_OUTPUT): Create cstamp-h. - * Makefile.in (config.in,cstamp-h.in): Add rules for. - (config.h,cstamp-h): Add rules for. - (distclean): Delete config2.h, cstamp-h. - (ALL_CFLAGS): Add @DEFS@. - * aclocal.m4, acconfig.h: New files. - - * Makefile.in (distclean): Delete Make-host, Make-target. - * configure.in (host_overrides): Set to host_xmake_file, don't create - Make-host. - (target_overrides): Set to tmake_file, don't create Make-target. - (language subdir support): Keep together. - - * c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl - if inline function and not new definition. - - * configure.in: Don't loop trying to configure language subdirs. - Don't pass to configure.lang variables it doesn't use. - * configure.lang: Delete top level directory from loop. - Delete code not useful for language subdirs. - -Fri Jul 18 08:12:53 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * toplev.c (rest_of_compilation): Call reload_cse_regs here. - * reload1.c (reload): Don't call it here. - (reload_cse_mem_conflict_p): Remove MEM_OFFSET and MEM_MODE args. - (reload_cse_mem_conflict_p, case MEM): Call anti_dependence. - (reload_cse_invalidate_mem): Update call to reload_cse_mem_conflict_p. - (reload_cse_regs): No longer static. - Call init_alias_analysis. - Ignore CLOBBER in a PARALLEL. - -Fri Jul 18 06:44:22 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * objc/Make-lang.in (objc-headers): Fix command for the new build - directory layout, don't pass srcdir variable. - * objc/Makefile.in (copy-headers): Use $(srcdir) from this - makefile, not the parent's. - -Thu Jul 17 16:03:03 1997 Doug Evans <dje@cygnus.com> - - * configure.lang (EXTRA_HEADERS,EXTRA_PASSES,EXTRA_PARTS): Delete. - (EXTRA_PROGRAMS,EXTRA_OBJS,EXTRA_GCC_OBJS,MD_DEPS): Delete. - (version) Delete duplicate entry. - * configure.in (merged_frags): Delete unused variable. - (extra_headers_list): Move setting outside of subdir loop. - (extra_headers,extra_passes): Don't pass to configure.lang. - (extra_programs,extra_parts,extra_objs): Likewise. - (host_extra_gcc_objs,gxx_include_dir,md_cppflags): Likewise. - -Thu Jul 17 07:00:43 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.h (STACK_CHECK_*): Provide default values. - (probe_stack_range): New declaration. - * flags.h (flag_stack_check): Likewise. - * explow.c (allocate_dynamic_stack_space): Call probe_stack_range. - (emit_stack_probe, probe_stack_range): New functions. - * function.c (expand_function_end): If function is non-leaf and stack - checking is requested, emit needed probes. - * reload1.c (reload): If checking stack, verify frame small enough. - * stmt.c (expand_decl): If stack checking, use alloca for large vars. - * toplev.c (flag_stack_check): New variable. - (f_options): Add "stack-check". - - * reorg.c (mark_target_live_regs): Pass FIRST_PSEUDO_REGISTER to - call to EXECUTE_IF_SET_IN_REG_SET. - -Wed Jul 16 14:51:00 1997 Jason Merrill <jason@yorick.cygnus.com> - - * i960.h (ASM_OUTPUT_ALIGNED_BSS): Define. - (ASM_OUTPUT_ALIGNED_LOCAL): Use standard method to convert ALIGN - to power-of-two of bytes. - - * sparc.h (ASM_OUTPUT_ALIGNED_BSS): Define. - * sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Undef before definition. - -Wed Jul 16 14:34:09 1997 Klaus Espenlaub (kespenla@hydra.informatik.uni-ulm.de) - - * calls.c (emit_library_call_value): Initialize all argvec elements. - -Wed Jul 16 14:31:39 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * global.c (global_conflicts): Pass FIRST_PSEUDO_REGISTER to - call to EXECUTE_IF_SET_IN_REG_SET. - -Wed Jul 16 10:57:03 1997 Richard Earnshaw (rearnsha@cambridge.arm.com) - - * From Rob Black (r.black@ic.ac.uk) and Mark Brinicombe - (amb@physig.ph.kcl.ac.uk): - * configure.in (arm-*-netbsd*): New configuration. - * arm/netbsd.h, arm/t-netbsd, arm/xm-netbsd.h: New files. - -Wed Jul 16 10:57:03 1997 Richard Earnshaw (rearnsha@cambridge.arm.com) - - * arm.c (tune_flags): New variable. - (target_{cpu,fpe}_name): Delete. - (arm_fpu_arch): New variable. - (arm_select): Also allow -march=... to configure just the - architecture. - (all_procs): Allow armv{2,2a,3,3m,4,4t} for use with -march=. - (arm_override_options): Handle -march=, but don't let -mcpu= - and -mtune= match the architecture names, since we can only - tune for an implementation. Rework selection of tuning options - for floating point. - (use_return_insn): Support interworking with Thumb code. - (arm_rtx_costs): Rework multiply costs so that cost is based on - the tune, not the architecture. - (f_register_operand): New function. - (output_return_instruction): Support interworking with Thumb code. - (output_func_epilogue): Support interworking with Thumb code. - Remove redundant calculation of code_size. Use floating-point - load-multiples if permitted. - (emit_sfm): New function. - (arm_expand_prologue): Use floating-point store-multiples if - permitted. - - * arm.h (CPP_CPU_ARCH_SPEC): Handle -march=... - (TARGET_OPTIONS): Add arch= and fp=. Delete fpe=. - (enum processor_type): Add PROCESSOR_NONE, for use in all_procs table. - (FP_DEFAULT): Default floating point architecture for generic - back-end. - (PREDICATE_CODES): Add f_register_operand. - - * arm.md (*push_fp_multi): New pattern. - - -Tue Jul 15 22:08:47 1997 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (exeext): Set to build_exeext not exeext. - * configure.in (exeext): Delete redundant set and AC_SUBST call. - Change remaining AC_SUBST to use build_exeext instead of exeext. - -Tue Jul 15 15:48:25 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * configure.in: Fix calculation if default thread support is enabled. - -Tue Jul 15 13:38:46 1997 Mike Meissner <meissner@cygnus.com> - - * rtl.h (replace_regs): Declare. - -Mon Jul 14 16:18:19 1997 Jason Merrill <jason@yorick.cygnus.com> - - * i960.h (ASM_OUTPUT_MI_THUNK): Define. - - * dwarf2out.c (gen_subprogram_die): Remove unreachable and redundant - code. - -Mon Jul 14 14:22:45 1997 Jeffrey A Law (law@cygnus.com) - - * calls.c (emit_library_call): Use right index into argvec array - when iterating over arguments which need to be pushed on the stack. - (emit_library_call_value): Likewise. - -Mon Jul 14 08:17:41 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gcc.c (convert_filename): Fix typo. - -Mon Jul 14 08:10:12 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * configure.in: Clear headers and lib2funcs before re-reading - config-lang.in. - - * m68k/linux.h (LINK_SPEC): Fix last change. - -Mon Jul 14 08:03:38 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * configure.in (sparc-*-linux-gnu{*,libc1*}): Add sparc/t-linux. - * sparc/t-linux: New file. - - * alpha/elf.h (LINK_SPEC): Fix typo. - * configure.in (alpha-*-linux-gnu*): Set tmake_file. - * alpha/t-linux: New file. - -Mon Jul 14 07:41:37 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.c (output_{and,ior,xor}si3): New functions from patterns bodies. - * m68k.h (output_{and,ior,xor}si3): New extern declarations. - * m68k.md (adddi3, subdi3): Allow constant operand. - (anddi3, iordi3, xordi3): New patterns. - ({and,ior,xor}si3_internal): Use corresponding output_???si3 function. - -Mon Jul 14 07:33:11 1997 Fila Kolodny <fila@ibi.com> - - * configure.in (*-*-gnu*): Add crt{begin,end}S.o to extra_parts. - -Mon Jul 14 07:26:36 1997 Craig Burley <burley@gnu.ai.mit.edu> - - * varasm.c (assemble_variable): If low part of size - doesn't fit in an int, variable is too large. - -Mon Jul 14 06:51:37 1997 Mike Meissner <meissner@cygnus.com> - - * bitmap.{h,c}: New files. - * Makefile.in (OBJS): Add bitmap.o. - (BASIC_BLOCK_H): New make variable for basic-block.h, bitmap.h. - ({flow,combine,regclass,local-alloc,reload1,reorg,sched}.o): Use - BASIC_BLOCK_H variable instead of basic-block.h. - * basic-block.h (*REG_SET): Delete old implementation; use bitmap.h. - (regset_{size,bytes}): Delete. - (regs_live_at_setjmp): Declare. - (EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Delete. - * flow.c (init_regset_vector): Make global; don't take basic block - times # of pseduos as argument. - (life_analysis): Change all init_regset_vector calls. - Use free_regset_vector to release arrays only flow uses at end. - (allocate_for_life_analysis): Change init_regset_vector call. - Don't set regset_{size,bytes}. - (free_regset_vector): Call FREE_REG_SET to release any - memory allocated by each vector. - (propagate_block): Call FREE_REG_SET on dead/live. - (mark_used_regs): Don't use REGSET_ELT_TYPE anymore. - * output.h (allocate_for_life_analysis): Add declaration. - (regno_uninitialized, regno_clobbered_at_setjmp): Likewise. - (dump_flow_info, flow_analysis): Likewise. - * regclass.c (init_reg_sets): Invoke INIT_ONCE_REG_SET. - (allocate_reg_info): Invoke MAX_REGNO_REG_SET. - (regset_release_memory): Free basic_block_live_at_start storage. - * reorg.c (mark_target_live_regs): Delete unused variables. - * sched.c (schedule_block): Free space associated with - reg_pending_sets and old_live_regs. - (schedule_insns): Free bb_{dead,live}_regs on first pass. - (sched_analyze_insn): Use EXECUTE_IF_SET_IN_REG_SET and then clear. - * toplev.c (rest_of_compilation): Call regset_release_memory. - -Mon Jul 14 00:14:13 1997 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (main): Prefer DWARF 2 or stabs with -ggdb. - * ns32k/tek6000.h (PREFERRED_DEBUGGING_TYPE): DBX_DEBUG. - * alpha.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG. - * mips.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG. - -Sun Jul 13 15:11:08 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stupid.c (stupid_mark_refs): If setting reg set only in this - insn and not referenced, make REG_UNUSED note. - -Sun Jul 13 14:03:19 1997 Michael Meissner <meissner@cygnus.com> - - * gcc.c (process_command): If -save-temps and -pipe were specified - together, don't do -pipe. - -Sun Jul 13 12:27:03 1997 Doug Evans <dje@cygnus.com> - - * gcc.c (main): Handle blank in version_string when comparing - with compiler_version. - -Sat Jul 12 01:53:55 1997 Jason Merrill <jason@yorick.cygnus.com> - - * sparc.c (output_function_prologue): Fix offset from CFA. - (sparc_flat_output_function_prologue): Likewise. - -Fri Jul 11 09:49:15 1997 Jeffrey A Law (law@cygnus.com) - - * mips.c (epilogue_reg_mentioned_p): Delete unused function. - (mips_epilogue_delay_slots): Likewise. - (function_epilogue): Greatly simplify. - (mips_expand_epilogue): If we have a null prologue/epilogue, - then use a normal return insn. Emit blockage insns before - stack pointer adjustments. - (mips_can_use_return_insn): Renamed from simple_epilogue_p. All - callers changed. Do not use return insns if $31 is live in the - function or if generating profiling information. - * mips.h (DELAY_SLOTS_FOR_EPILOGUE): Delete. - (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. - * mips.md (return): Remove expander and change the pattern to - look like a standard "return" insn. - (return_internal): Show use of $31 explictly. - (epilogue expander): Enable. - -Thu Jul 10 13:04:53 1997 Doug Evans <dje@cygnus.com> - - * cccp.c (INO_T_EQ): Return 0 for MSDOS. - - * Makefile.in (CC): Use autoconf value. - -Tue Jul 8 18:08:00 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (gen_subprogram_die): When handling declarations, test - DECL_CONTEXT not decl_class_context before equate_decl_number_to_die. - -Tue Jul 8 16:47:13 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (movsi define_split): Use unsigned HOST_WIDE_INT, - not unsigned. - -Sat Jul 7 00:01:41 1997 Jim Meyering <meyering@eng.ascend.com> - - * i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES). - -Fri Jul 4 11:45:39 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (DWARF_CIE_HEADER_SIZE, DWARF_FDE_HEADER_SIZE, - size_of_cfi, size_of_fde, calc_fde_sizes, next_fde_offset, - cie_size): Lose. - (ASM_OUTPUT_DWARF_STRING): Move earlier. - (INCOMING_FRAME_SP_OFFSET): Provide default. - (initial_return_save): Adjust for CFA offset. - (dwarf2out_frame_debug): Lookup initial CFA offset when setting up. - (output_call_frame_info): Use label subtraction for length fields. - Add pointer to exception region information in for_eh case. - (dwarf2out_do_frame): New fn. - (dwarf2out_frame_init): Use INCOMING_FRAME_SP_OFFSET. - (dwarf2out_frame_finish): Don't bother emitting .debug_frame for - non-Irix targets. Just emit .eh_frame. - (output_die): Refer to an FDE with label subtraction. - * i386.h (INCOMING_FRAME_SP_OFFSET): Define. - * defaults.h (DWARF2_UNWIND_INFO): Define if - INCOMING_RETURN_ADDR_RTX is provided. - * final.c (final): Don't call dwarf2out_frame_debug unless we are - doing dwarf 2. - -Thu Jul 3 17:37:52 1997 Jim Wilson <wilson@cygnus.com> - - * fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN. - -Wed Jul 2 09:48:03 1997 Michael Meissner <meissner@cygnus.com> - - * loop.c (strength_reduce): Make sure register does not exceed the - table size when looking up the last UID. - -Wed Jul 2 07:47:44 1997 Nick Burrett <n.a.burrett@btinternet.com> - - * genoutput.c (process_template): Place increment expression - outside of putchar function call. - -Wed Jul 2 06:56:52 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * sparc/linux.h (LIBGCC_SPEC): Removed. - (CC1_SPEC): Add %{profile:-p}. - ({CPP,LIB,LINK}_SPEC): Choose glibc 1 or 2 depending on USE_GNULIBC_1. - * configure.in (sparc-*-linux-gnulibc1*): New configuration. - - * configure.in (powerpc-*-linuxgnu*): Default thread_file is posix. - Set xmake_file to x-linux. Add extra_parts. - * rs6000/linux.h (LINK_SPEC): Defined. - - * m68k/linux.h (LINK_SPEC): Pass -shared for -shared. - ({CPP,LINK}_SPEC): Choose for glibc 1 or 2 depending on USE_GNULIBC_1. - * configure.in (m68k-*-linux-gnu*): Default thread_file is `posix'. - (m68k-*-linux-gnulibc1): New configuration. - - * alpha/elf.h (LINK_SPEC): Change ld-gnu.so.1 to ld-linux.so.2. - * configure.in (alpha-*-linux-gnu*): Default thread_file is `posix'. - -Wed Jul 2 06:12:37 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alpha.md (divsi3, modsi3, udivsi3): Comment out. - (extendsfsd2_no_tp): Add alternative with output in MEM, input in REG. - - * configure.in (*-linux*): Add "-gnu" to names to match. - - * libgcc2.c (_trampoline): Add stdcall attribute to VirtualProtect - on i386. - - * objc/objc.gperf: Renamed from gperf. - -Wed Jul 2 05:42:19 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * objc/Make-lang.in ($(srcdir)/objc/objc-parse.c): Fix command - to use the right file names. - -Tue Jul 1 23:25:42 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reorg.c (redundant_insn): If INSN or possible match has REG_UNUSED - note, don't have match. - -Tue Jul 1 18:36:24 1997 Doug Evans <dje@cygnus.com> - - * mips.c (mips_output_external): Don't output .extern's for - variables in user specified sections unless they're .sbss/.sdata. - -Tue Jul 1 18:30:26 1997 Jim Wilson <wilson@cygnus.com> - - * cse.c (find_best_addr): Add missing rtx_cost arguments. - - * fp-bit.c (float_to_usi): Move code for negative numbers before code - for infinity. Modify infinty code to only handle positive infinities. - -Tue Jul 1 11:16:41 1997 Robert Lipe <robertl@dgii.com> - - * fixinc.sco: Restore pwd after copy. - Convert declaration of abs in math.h to prototype. - Fix static functions in sys/stat.h for C++. - -Tue Jul 1 10:55:47 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.md ({add,ior,xor}si3): Change to use define_expand wrapper - and split add/ior/xor of large constants early. - (andsi3): Remove 6/29 code to do and of large constants. - (nor, nand, eqv, maskir): Add names to all logical define_insns. - -Tue Jul 1 09:03:35 1997 Jeffrey A Law (law@cygnus.com) - - * h8300.h (BIGGEST_FIELD_ALIGNMENT): Remove definition. - * mips.h (BIGGEST_FIELD_ALIGNMENT): Likewise. - -Mon Jun 30 14:58:00 1997 Jeffrey A Law (law@cygnus.com) - - * sh.c (sh_expand_epilogue): Emit blockage insn before cutting - back stack. - -Sun Jun 29 11:27:07 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (TARGET_FLAGS): Add -m{,no-}update to suppress - creating load/store with update instructions, and also - -m{,no-}fused-madd to suppress the generation of fused add and - multiply instructions. Move debug flags to TARGET_OPTIONS. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_{INC,DEC} if -mno-update. - (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto. - (rs6000_debug_{name,stack,arg}): Add declarations. - (toc_initialized): Likewise. - (got_no_const_operand): Likewise. - (PREDICATE_CODES): Add got_no_const_operand. - (toc_section): Make toc_initialized a global. - (RTX_COSTS): Set appropriate costs for add, logical operators that - are really two instructions. - - * rs6000.c (rs6000_debug_{name,stack,arg}): Add definitions. - (rs6000_override_options): Process debug flags. - (toc_initialized): Global to say toc initialized. - (small_data_operand): Use #if TARGET_ELF, not #ifdef TARGET_SDATA. - (rs6000_init_expanders): Likewise. - (SMALL_DATA_RELOC): Likewise. - (got_no_const_operand): Recognize SYMBOL_REF and LABEL_REF. - (rs6000_makes_calls): System V profiling doesn't count as a call. - (rs6000_stack_info): Likewise. - (rs6000_output_load_toc_table): Take register number argument to - determine register to load. Generate correct code if more than - one toc table is done in System V due to profiling or non-local - gotos. If System V toc is not initialized, initialize it now. - (rs6000_allocate_stack_space): Move code from output_prolog to - allocate stack space. Take -mno-update into account. - (output_prolog): Call rs6000_allocate_stack_space. Only set - rs6000_pic_func_labelno if not profiling. - (output_function_profiler): Implement System V profiling. - (and_operand): Don't call reg_or_short_operand. - (rs6000_finalize_pic): If not optimizing, insert a USE of the GOT - register as the last insn. - - * rs6000.md (load/store update): Take -mno-update into account. - If -msoft-float, support SF load/store with update to GPR regs. - (allocate_stack): Take -mno-update into account. - (add/subtract + multiply instructions): Take -mno-fused-madd into - account. - (nonlocal_goto_receiver): Specify register # to load. - ({add,and,ior,xor}si3): Recognize operation done with full 32 bit - constant, splitting latter if need be. - (andsi3 define_split): Fix up splitting andsi3 of large constant. - ({ior,xor}si3 define_split): Use GEN_INT to create integer rtx - values. - (movsi_got{,_internal}): Split the load of a CONST into load of - the SYMBOL_REF/LABEL_REF and an add. - (movsi): Know that addsi3 can handle large values now for NT. - - * sysv4.h (TARGET_SDATA): Remove explicit bit for -msdata. - (SUBTARGET_OVERRIDE_OPTIONS): Likewise. - (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. - (SUBTARGET_SWITCHES): Indicate -m{,no-}sdata doesn't set any flags. - (ASM_SPEC): Only pass -m{,no-}reg-names if assembling .s/.S files. - (CC1_SPEC): If -msdata, invoke compiler with -msdata=default. - (PROFILE_BEFORE_PROLOGUE): Likewise. - (RS6000_MCOUNT): Define as "_mcount". - (toc_section): Make toc_initialized a global. - -Fri Jun 27 19:01:11 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/t-linux-gnulibc1: New file. - * configure.in (i[3456]86-*-linux*): Default thread_file is `posix'. - (i[3456]86-*-linux*gnulibc1): New case. - * config/linux.h (LIB_SPEC): Choose for glibc 1 or 2 depending - on USE_GNULIBC_1. - * i386/linux.h (CPP_SPEC, LINK_SPEC): Likewise. - -Fri Jun 27 19:00:52 1997 Ralf Baechle <ralf@waldorf-gmbh.de> - - * config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define. - -Fri Jun 27 18:35:04 1997 Alan Modra <alan@spri.levels.unisa.edu.au> - - * configure.in: Clean up Make-{host,target,hooks} in all - subdirs, not just '.'. - * Makefile.in (distclean): Delete */Make-{host,target,lang,hooks}. - -Fri Jun 27 18:27:11 1997 Fila Kolodny <fila@ibi.com> - - * config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a. - -Fri Jun 27 18:17:44 1997 Doug Evans <dje@cygnus.com> - - * configure.frag: Rewrite. - - * objc/Make-lang.in (OBJC_CCOMMON): Object files don't go in srcdir. - (OBJC_OBJS): Likewise. - (OBJC_O): Likewise. - (objc-parse.o, objc-act.o): Fix rules. - (objc/libobjc files): Fix rules. - -Fri Jun 27 13:23:38 1997 Andrew Cagney <cagney@tpgi.com.au> - - * fp-bit.c (float_to_si): Correct return value when Inf. - -Fri Jun 27 10:47:09 1997 Scott Christley <scottc@net-community.com> - - * Makefile.in (DLLTOOL): Define. - * objc/Make-lang.in (libobjc_entry.o, libobjc_s.a, libobjc.dll): - New targets. - (objc.install-normal): Install Objective-C runtime as a DLL. - (objc.mostlyclean): Clean up files used to build DLL. - * objc/libobjc.def: New file. - * objc/libobjc_entry.c: New file. - - * objc/sendmsg.c (search_for_method_in_list): No longer static. - - * Makefile.in (GCC_THREAD_FILE): Renamed from OBJC_THREAD_FILE. - * configure.lang (GCC_THREAD_FILE): Likewise. - * configure.in (--enable-threads): New parameter. - * objc/Make-lang.in (OBJC_THREAD_FILE): New definition.e - * objc/config-lang.in: Print message about ObjC thread file. - - * cccp.c (INO_T_EQ): Define for Win32 but not Cygwin32. - * i386/mingw32.h: New file. - * i386/xm-mingw32.h: New file. - * configure.in (i[3456]86-*-mingw32): New target. - * protoize.c (link): Eliminate definition on Win32. - - * objc/thr-posix.c (__objc_thread_yield): Use sched_yield instead. - -Fri Jun 27 10:36:41 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS): - Round up when calculating possible end address. - -Wed Jun 25 19:54:29 1997 Jim Wilson <wilson@cygnus.com> - - * unroll.c (final_giv_value): Verify that bl->initial_value is - invariant before trying to use it. - -Wed Jun 25 18:13:05 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per - ABI spec. - -Wed Jun 25 16:56:16 1997 Jason Merrill <jason@yorick.cygnus.com> - - * sparc.h (INCOMING_RETURN_ADDR_RTX): Define. - (DBX_REGISTER_NUMBER): Fix frame pointer regno for -mflat. - * sol2.h (DBX_REGISTER_NUMBER): Likewise. - * sparc.c (save_regs): Emit dwarf2 frame debug info. - (output_function_prologue, sparc_flat_save_restore, - sparc_flat_output_function_prologue): Likewise. - - * dwarf2.h (enum dwarf_call_frame_info): Add DW_CFA_GNU_window_save. - * dwarf2out.c (dwarf_cfi_name, output_cfi): Support it. - (dwarf2out_cfi_label): Make non-static. - (initial_return_save): Support PLUS. - (dwarf2out_window_save, dwarf2out_return_save, - dwarf2out_return_reg): New fns. - - * dwarf2out.c (SECTION_FORMAT): Use PUSHSECTION_FORMAT, if defined. - (DEBUG_INFO_SECTION): Rename from DEBUG_SECTION. - (DEBUG_LINE_SECTION): Rename from LINE_SECTION. - * mips/iris6.h: Likewise. - -Wed Jun 25 16:25:41 1997 Scott Christley <scottc@net-community.com> - - * Makefile.in (GCC_PASSES): Don't define with $(exeext). - * configure.in ({cc,stage_prefix}_set_by_configure): Eliminate extra - comma and don't pass value to configure.lang. - * objc/Make-lang.in (objc-runtime): Add objc-headers. - - * configure.in: Execute configure.frag in a shell. - - * configure.in (cross_overrides, build_overrides): Default to - /dev/null to help platforms where sed cannot handle empty filenames. - - * Reorganize thread implementation to make a clearly defined - front-end/back-end interface. - * objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Completely - rework according to new interface. - * objc/thr-{solaris,win32}.c: Likewise. - * objc/thr.c: Likewise. - * objc/thr.h: Define front-end/back-end interface functions and - structures. - -Wed Jun 25 16:14:10 1997 Ovidiu Predescu <ovidiu@net-community.com> - - * Complete implementation of +load. - * objc/init.c (objc_send_load): New function. - (objc_class_tree): New structure. - (create_tree_of_subclasses_inherited_from): New function. - (__objc_tree_insert_class): New function. - (objc_tree_insert_class): New function. - (objc_preorder_traverse): New function. - (objc_postorder_traverse): New function. - (__objc_tree_print): New function. - (__objc_destroy_class_tree_node): New function. - (class_is_subclass_of_class): New function. - (__objc_exec_class): Allocate class tree list and load hash table. - (__objc_send_message_in_list): Rewrite using hash table. - (__objc_send_load): Remove calls to _objc_load_callback. - (objc_send_load): Make static. Create Tree of classes resembling - class hierarchy for all modules. Call __objc_send_load on all of - the modules in __objc_module_list. - (__objc_create_classes_tree): New function. - - * objc/encoding.h (method_get_sizeof_arguments): Fix typo. - * objc/objc-api.h (OBJC_ERR_BAD_STATE): New error code. - On NeXT redefine object_copy and object_dispose to avoid - a conflict with those defined in system library. - * objc/selector.c (__objc_register_instance_methods_to_class): New - function. - * objc/runtime.h: Likewise. Add missing function prototypes. - -Wed Jun 25 15:09:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (Makefile): Execute configure.frag from srcdir. - - * Makefile.in (configure): Target is $(srcdir)/configure. - -Tue Jun 24 15:18:14 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.h (LIMIT_RELOAD_CLASS): Define. - - * recog.c (constrain_operands): When checking earlyclobbers, use - operands_match_p instead of rtx_equal_p. - - * dwarfout.c (field_byte_offset): Check for object_offset_in_bits - greater than bitpos_int and recompute object_offset_in_bytes if true. - - * mips.md (movdi_internal): Add x/J alternative. - (movdi_internal2): Add x/J alternative; change a/I to a/J. - (movsi_internal1, movsi_internal2): Change x/I alternative to x/J. - -Tue Jun 24 08:49:56 1997 Jeffrey A Law (law@cygnus.com) - - * pa.h (ASM_OUTPUT_SECTION_NAME): Fix typo. - -Mon Jun 23 22:48:00 1997 Jim Wilson <wilson@cygnus.com> - - * unroll.c (find_splittable_givs): Set splittable_regs_updates to - biv_count for reduced givs. - -Mon Jun 23 10:51:53 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.c, mn10200.h, mn10200.md: New files for mn10200 port. - * lib1funcs.asm, divmod.c, udivmod.c, udivmodsi4.c: Likewise. - * t-mn10200, xm-mn10200.h, va-mn10200.h: Likewise. - * Makefile.in (USER_H): Add va-mn10200.h. - * varargs.h, stdarg.h: Include va-mn10200.h. - * configure.in (mn10200-*-*): New target. - -Sun Jun 22 06:47:19 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn. - -Sun Jun 22 06:29:28 1997 J. Kean Johnston <jkj@sco.com> - - * ginclude/stdarg.h: Protect va_list definition from SCO headers. - * ginclude/varargs.h: Likewise. - -Sat Jun 21 20:56:23 1997 Scott Christley <scottc@net-community.com> - - * Make ObjC a front-end language. - * Makefile.in (LANGUAGES, COMPILERS, .PHONY, stmp-int-hdrs): Remove - specific references to ObjC compiler and source files. - ({mostly,dist,maintainer,}clean, install-normal): Likewise - (OBJC_OBJS, OBJC, OBJECTIVE-C, cc1obj, objc-runtime): Rules deleted. - (libobjc.a, sublibobjc.a, objc-parse.{o, c, y}): Rules deleted. - (objc-headers, install-libobjc): Rules deleted. - * objc/Make-lang.in: New file; from rules deleted above. - * objc/config-lang.in: New file. - * objc/Makefile.in: Changes to support ObjC as a front-end language; - renamed from Makefile.in. - * objc-act.{c,h}, objc-parse.{c,y}, objc-tree.def: Moved to objc dir. - -Sat Jun 21 07:54:36 1997 Robert Lipe <robertl@dgii.com> - - * fixinc.sco (math.h): Correct the collision of "exception". - -Sat Jun 21 06:51:40 1997 Peter Gerwinski <peter@agnes.dida.physik.uni-essen.de> - - * rs6000.c (output_epilog): Name is "GNU Pascal", not all caps. - -Sat Jun 21 06:29:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * gcc.c (main): Check for and read ${libdir}/gcc-lib/specs to - override the default specs. - -Fri Jun 20 17:20:15 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (output_block_move): When loading addresses into registers, - add checks for ABI_N32 and ABI_64. - (mips_expand_prologue): Add check for SImode in code splitting - tsize_rtx when it is large_int. - -Fri Jun 20 09:07:31 1997 Russell King <rmk92@ecs.soton.ac.uk> - - * configure.in (arm-*-linuxaout): New target. - * arm/lib1funcs-linux.asm, arm/linux-gas.h: New files. - * arm/linux.h, arm/t-linux, arm/xm-linux.h: New file. - * xm-linux.h: Undef some macros before defining them. - -Thu Jun 19 21:18:20 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (output_line_info): Always use DW_LNE_set_address instead - of DW_LNS_fixed_advance_pc for line number addresses. - (size_of_line_info): Adjust size calculation as per above change. - (text_end_label): Make it static. - -Thu Jun 19 14:55:49 1997 Brendan Kehoe <brendan@cygnus.com> - - * toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero. - -Sun Apr 27 23:19:13 1997 Ulrich Drepper <drepper@cygnus.com> - - * libgcc2.c (__eh_type): Remove `extern' to make this a definition. - -Wed Jun 18 18:10:16 1997 Per Bothner <bothner@cygnus.com> - - * dbxout.c (dbxout_type_fields): Skip field if DECL_IGNORED_P. - -Wed Jun 18 18:04:33 1997 Mike Stump <mrs@cygnus.com> - - * except.c (end_eh_unwinder): If we have a return instruction, we - have to make sure we use it and don't fall off the end of the - function in the unwinder. - -Wed Jun 18 14:27:58 1997 Mike Stump <mrs@cygnus.com> - - * flow.c (find_basic_blocks): Fix end case bug. - -Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__eh_pcnthrow): Add support -fno-sjlj-exceptions - -fPIC exception handling on the SPARC. - * sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. - * libgcc2.c (__eh_ffetmnpc): Remove. - -Mon Jun 16 20:28:51 1997 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c (extract_string): Null-terminate. - -Mon Jun 16 14:38:44 1997 Michael Meissner <meissner@cygnus.com> - - * combine.c (set_nonzero_bits_and_sign_copies): Use REG_SET macros - instead of doing bit operations directly. - (try_combine,reg_dead_at_p): Ditto. - * caller-save.c (save_call_clobbered_regs): Ditto. - * reload1.c (reload): Ditto. - * local-alloc.c (update_equiv_regs,block_alloc): Ditto. - * sched.c (schedule_block): Dito. - -Sun Jun 15 20:46:12 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (dwarf2out_frame_debug): Handle IOR. - (struct limbo_die_struct): Define. - (TYPE_DECL_IS_STUB): Call decl_ultimate_origin if DECL_ABTRACT_ORIGIN - is set. - (limbo_die_count): Delete. - (libmo_die_list): Define. - (new_die): Add die to limbo_die_list instead of incrementing - limbo_die_count. - (add_AT_location_description): Renamed from add_location_attribute. - New parameter attr_kind. - (add_location_or_const_value_attribute, gen_subprogram_die, - add_bound_info): Change call to add_AT_location_description. - (add_bound_info): Add call to contains_placeholder_p. Ignore - MAX_EXPR and VAR_DECL. - (add_subscript_info): Ignore the index type if it is an unnamed - integral type. - (scope_die_for): Move check for function-local tags after code setting - containing_scope, and add check for non-NULL containing_scope - (add_type_attribute): If unnamed type, use TREE_TYPE instead. - (gen_enumeration_type_die, gen_struct_or_union_type_die): Call - add_child_die if die_parent is NULL. - (gen_subprogram_die): Ifdef out DW_AT_static_link code. - (decls_for_scope): Delete decrement of limbo_die_count. - (dwarf2out_finish): Add code to traverse the limbo_die_list, and - call add_child_die if die_parent is NULL. Delete limbo_die_count code. - * mips.c (mips_expand_prologue): If tsize_rtx is large_int, emit two - insns instead of one splitable insn, setting RTX_FRAME_RELATED_P. - -Fri Jun 13 19:33:35 1997 Brendan Kehoe <brendan@cygnus.com> - - * fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h. - -Thu Jun 12 22:53:12 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.md (mov[qhs]i): Remove pair of constraints which allow - offsetable memory addresses to be moved to the same for TARGET_5200. - -Thu Jun 12 15:33:01 1997 Jeffrey A Law (law@cygnus.com) - - * pa.h (SELECT_RTX_SECTION): Place symbolic operands into the - data section. - - * pa.c (emit_move_sequence): Rewrite code to handle arithmetic - involving plabels. - -Wed Jun 11 08:57:14 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * tree.c (unsave_expr_now): Avoid recursing into the parts of - the tree that are RTL. - -Thu Jun 12 09:43:55 1997 Jeffrey A Law (law@cygnus.com) - - * reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn - after the new sequence insn has been spliced into the insn chain. - -Wed Jun 11 23:10:49 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (call, call_value): Use "call" instead of "calls" - for calls to named functions. - -Wed Jun 11 00:22:34 1997 Jim Wilson <wilson@cygnus.com> - - * configure, configure.in: Restore changes from Feb 15 to Apr 13 - lost during conversion to autoconf. - -Tue Jun 10 18:23:35 1997 Mike Stump <mrs@cygnus.com> - - * stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions - aren't on. - -Tue Jun 10 18:22:30 1997 Jason Merrill <jason@yorick.cygnus.com> - - * collect2.c (extract_string): New fn. - (main): Use it. - -Tue Jun 10 17:40:15 1997 Jim Wilson <wilson@cygnus.com> - - * expr.c (emit_group_load): Add case using gen_lowpart. - -Tue Jun 10 17:14:58 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (rs6000_override_options): If -mcpu=403, set -mstrict-align. - - * rs6000/t-ppc{,gas} (MULTILIB_EXTRA_OPTS): Build libraries with - -mstrict-align. - - * configure.in ({powerpc,rs6000}*-*-*): Add embedded targets to - --with-cpu=n support. - -Tue Jun 10 07:06:12 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * flow.c (mark_used_regs): Fix typo in Jun 4 change. - -Mon Jun 9 20:26:26 1997 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (MAYBE_USE_COLLECT2): Renamed from MAYBE_USE_COLLECT. - -Mon Jun 9 19:42:21 1997 Jason Merrill <jason@yorick.cygnus.com> - - * fold-const.c (fold): Don't do COND_EXPR -> MIN_EXPR folding if it - loses information that might be needed by a later use as an lvalue. - -Mon Jun 9 19:10:50 1997 Alexandre Oliva <oliva@dcc.unicamp.br> - - * configure.in: Don't override a user's setting for prefix - on platforms that use the native prefix. - -Mon Jun 9 19:00:49 1997 Brendan Kehoe <brendan@melange.gnu.ai.mit.edu> - - * integrate.c (expand_inline_function): Use the mode of FNDECL's - result rtl, not the result type itself, in setting ARRIVING_MODE. - - * reload1.c (reload): Use xmalloc instead of alloca for the label - offsets in OFFSETS_AT and OFFSETS_KNOWN_AT. - -Mon Jun 9 15:16:52 1997 Mike Stump <mrs@cygnus.com> - - * flow.c (find_basic_blocks): Eliminate more dead code, enables - dead throws to be eliminated. - -Mon Jun 9 17:15:50 1997 Stephen L Moshier <moshier@world.std.com> - - * alpha.c (check_float_value): Underflow and overflow constants - are different for FLOAT_VAX and default targets. - -Mon Jun 9 16:48:21 1997 Scott Christley <scottc@net-community.com> - - * Makefile.in (Makefile): Process language fragments. - * configure.frag: New file. - * configure.in: Move language fragment processing to configure.lang.e - - * Makefile.in (GCC_PASSES): Prevent all compilers from being - built when only the C compiler is needed. - - * configure.in (cross_overrides, build_overrides): Use absolute - path to GCC top-level source directory. - - * configure.in: Save target alias for language directories. - - * configure.in (with-gxx-include-dir): New parameter for - setting the g++ header file directory. - * Makefile.in (gxx_include_dir): Use autoconf variable. - - * configure.in: Add parameter for setting local prefix. - - * configure.lang: New file. - * configure.in: Move language subdirectory Makefile processing - into configure.lang. - -Mon Jun 9 16:44:47 1997 Jim Wilson <wilson@cygnus.com> - - * sched.c (attach_deaths): Fix typo in Jun 4 change. - -Mon Jun 9 15:13:00 1997 Marc Lehmann (pcg@goof.com) - - * varasm.c (assemble_end_function): Switch back to function - section after outputting constant pool. - -Mon Jun 9 14:47:22 1997 Paul Eggert <eggert@twinsun.com> - - * tree.c (change_main_variant): Remove unused function. - (build_array_type): Remove obsolete references to - change_main_variant. - * c-decl.c (complete_array_type): Likewise. - - * c-common.c (c_build_type_variant): Don't futz with main type - variant of array since C Standard requires main type variant of - array-of-const also be array-of-const. - - * Makefile.in: Comment out lines containing just formfeeds. - - * Makefile.in (distclean): Remove config.bak. - (maintainer-clean): Output warning. - Do not remove `configure'. - -Mon Jun 9 14:44:17 1997 J.T. Conklin <jtc@netbsd.org> - - * configure.in (*-*-netbsd): Restore changes of Apr 13th lost in - autoconf conversion: tmake_file now t-netbsd; delete xmake_file. - -Mon Jun 9 14:39:29 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_builtin, case BUILT_IN_FRAME_ADDRESS): - Use correct function name in error message. - - * Makefile.in (diff): Exclude bi-parser.h. - - * i386.h (CC1_CPU_SPEC): Renamed, was CC1_SPEC. - (CC1_SPEC): New macro. - (EXTRA_SPECS): Add "cc1_cpu". - * i386/linux.h (CC1_SPEC): New macro. - -Mon Jun 9 13:23:06 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k/next.h (TARGET_DEFAULT): Use MASK_68040, - not MASK_68040_ALSO. - * m68k/mot3300.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Test #ifdef __mcf52000__, - not if (TARGET_52000); fixed for mc68000 case. - - * m68k/mot3300.h (CPP_SPEC): Define __mc68020__ if no -m[c]68000 - command-line option given. - -Mon Jun 9 09:19:17 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (target_alias): Substitute with target_alias. - - * final.c (final_scan_insn): Use single_set to check cc_status.flags. - -Mon Jun 9 09:09:07 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-common.c (check_format_info): Correct handling of the 'a' flag - which adds another pointer level. - -Sun Jun 8 00:34:25 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (conditional branch insns): Get length right for branches - to targets which can not be reached with a "bl" instruction. - * pa.c (output_cbranch): Handle branches to targets which can not - be reached with a "bl" instruction. - - * pa.md (alternate dbra pattern): Remove incorrect pattern. - -Sat Jun 7 23:30:25 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (struct defer_plab): Renamed to struct deferred_plabel. - Remove "symbol" field and replace with "name" field. - (output_function_epilogue): Don't output deferred plabels here. - (output_deferred_labels): New function. Output them here instead. - (output_call): Rewrite long call support. - * pa.h (ASM_FILE_END): Define. - (LEGITIMATE_CONSTANT_P): Never accept a function_label_operand. - * pa.md (HIGH and LO_SUM of function address): Remove patterns. - -Fri Jun 6 16:09:04 1997 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__eh_ffetmnpc): Add support for machines that cannot - access globals after throw's epilogue when -fno-sjlj-exceptions is - used. - * rs6000.c (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. - * mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise. - (INITIAL_ELIMINATION_OFFSET): Fix RETURN_ADDRESS_POINTER_REGNUM - for 64 bit words, with 32 bit pointers and variable endianness. - -Fri Jun 6 17:27:58 1997 Mike Meissner <meissner@cygnus.com> - - * regclass.c (allocate_reg_info): Fix off by one error. - -Fri Jun 6 17:17:41 1997 Doug Evans <dje@cygnus.com> - - * basic-block.h (EXECUTE_IF_SET_IN_REG_SET): Fix setting of scan_rs_. - (EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Likewise. - (EXECUTE_IF_AND_IN_REG_SET): Likewise. - (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise. - -Fri Jun 6 15:42:59 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare. - -Fri Jun 6 15:12:38 1997 Jim Wilson <wilson@cygnus.com> - - * basic-block.h (REG_SET_TO_HARD_REG_SET): Fix typo. - - * sched.c (update_flow_info): When add extra REG_DEAD note for original - dest, handle case where last insn both uses and sets dest. - -Thu Jun 5 22:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * fixinc.irix: Add declaration of __vfork to unistd.h. - - * i960/vx960-coff.h (CPP_SPEC): Always define CPU, even if they - use -ansi; the VxWorks headers assume it's always present. - * sparc/vxsparc.h (CPP_SPEC): Define, adding the CPU definition to - what came from sparc.h. - (CPP_PREDEFINES): Don't define it here. - -Thu Jun 5 13:40:33 1997 Mike Meissner <meissner@cygnus.com> - - * basic-block.c (OBSTACK_ALLOC_REG_SET): Rename from - OBALLOC_REG_SET. Add obstack pointer parameter. - - * flow.c (function_obstack): Add declaration. - (life_analysis): Don't allocate the space to hold to vector of - regsets here. - (init_regset_vector): Add pointer parameter and delete space - paramter. Use OBSTACK_ALLOC_REG_SET to allocate. Change callers. - (propagate_block): Use ALLOCA_REG_SET instead of bare alloca. - - * sched.c (schedule_block): Fix typo in yesterday's changes. - * reorg.c (mark_target_live_regs): Ditto. - -Thu Jun 5 09:44:49 1997 Jeffrey A Law (law@cygnus.com) - - * sh.c (trap_exit, sp_switch): New variables. - (print_operand, case '@'): If trap_exit is nonzero, then use - a trapa instead of an rte/rts to exit the current function. - (sh_expand_prologue): Switch stacks at function entry as needed. - (sh_expand_epilogue): Similarly at function exit. - (function_epilogue): Clear trap_exit and sp_switch too. - (sh_valid_machine_decl_attribute): New function. - * sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Define. - (sp_switch): Declare. - * sh.md (sp_switch_1, sp_switch_2): New named patterns. - -Wed Jun 4 18:11:14 1997 Michael Meissner <meissner@cygnus.com> - - * basic-block.h (REGSET_ELT_BITS): Make this explicitly unsigned, so - that division and modulus of REGSET_ELT_BITS uses a pure shift. - (*_REG_SET): New macros to abstract the register set interface. - - * caller-save.c (save_call_clobbered_regs): Use new *_REG_SET - macros. - * flow.c (life_analysis,propagate_block,insn_dead_p): Ditto. - (regno_uninitialized,regno_clobbered_at_setjmp,mark_set_1): Ditto. - (mark_used_regs,dump_flow_info,global_conflicts): Ditto. - global.c (mark_elimination): Ditto. - * reorg.c (mark_target_live_regs): Ditto. - * sched.c (sched_{analyze_{1,insn},note_set}): Ditto. - (birthing_insn_p,attach_deaths,unlink_notes,schedule_block): Ditto. - - * sched.c (sometimes structure): Delete offset, bit fields, replace - with regno. - (new_sometimes_live): Take regno argument, not offset and bit. - Change all callers. - -Tue Jun 3 19:18:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * fixincludes: Fix AIX NULL macro use of void*. - -Tue Jun 3 15:21:04 1997 Jason Merrill <jason@yorick.cygnus.com> - - * sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic. - -Mon Jun 2 16:53:53 1997 Michael Meissner <meissner@cygnus.com> - - * loop.c (n_times_{set,used}): Make type int, not short. - (scan_loop): n_times{set,used} are now int pointers. - - * sched.c (sched_reg_n_deaths): Remove unused variable. - (struct sometimes): Make fields int sized, not short. - (schedule_insns): Don't set sched_reg_n_deaths, nobody uses it. - - * regclass.c (allocate_reg_info): Allocate space for reg_renumber, - but don't set unless new argument RENUMBER_P is set. If this is first - call for function and we need to grow space, use free/xmalloc instead - of realloc since we will be initializing the whole array. If number - of registers is < 0, just free up space. - (reg_scan): Update allocate_reg_info call. - * regs.h (allocate_reg_info): Change prototype. - * flow.c (allocate_for_life_analysis): Update allocate_reg_info call. - * local-alloc.c (local_alloc): Call allocate_reg_info to allocate - and initialize the reg_renumber array. - * stupid.c (stupid_life_analysis): Likewise. - -Mon Jun 2 14:50:06 1997 Dave Miller <davem@jenolan.rutgers.edu> - - * sparc.md (v9 eq/ne cond move patterns): Add early clobber - constraint to destination. - -Fri May 30 11:00:44 1997 Michael Meissner <meissner@cygnus.com> - - * regs.h (reg_info): New structure to group the arrays indexed by - register number created by reg_scan and flow_analysis that are - globally visiable. - (reg_n_info): Pointer to the register information array. - (reg_n_{refs,sets,deaths,calls_crossed}): Delete variables. - (reg_changes_size): Likewise. - (REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference - reg_n_info. - (REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Likewise. - (allocate_reg_info): Add declaration. - - * basic-block.h (reg_basic_block): Delete. - (REG_BASIC_BLOCK): Use reg_n_info structure. - - * caller-save.c: Change all references to the above arrays to use - the corresponding macro to access the reg_n_info array. - * combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Likewise. - * loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Likewise. - - * regclass.c (allocate_reg_info): New function to allocate the - reg_info array and initialize the appropriate fields. - (reg_scan): Call it. - * flow.c (allocate_for_life_analysis): Call allocate_reg_info to do - the actual allocation. - -Thu May 29 15:42:59 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md (movsfcc_1, movdfcc_1, movxfcc_1): Use singlemove_string - for float conditional move when destination and operands all differ. - - * i386.h (ASM_OUTPUT_REG_{PUSH,POP}): add %% before register name. - - * go32.h (ASM_OUTPUT_ALIGN): Use .p2align, not byte alignments. - -Wed May 28 20:44:00 1997 Mike Stump <mrs@cygnus.com> - - * except.c (push_eh_entry): Eliminate start of exception region - label, as it isn't used. Rename end_label to outer_context. - (expand_eh_region_start_for_decl): Likewise. - (expand_leftover_cleanups): Likewise. - (expand_start_all_catch): Likewise. - * except.h (eh_entry): Likewise. - * except.c (expand_eh_region_end): Likewise. Jump around the nop - that we insert, so that we can optimize it away, if it is unused, - also so that flow analysis can tell if we fall through to the end - of a function or not so that it can know if a function that returns - a value, in fact does or not. - -Wed May 28 10:50:09 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (jump): Handle out of range unconditional jump - when not optimizing. - -Thu May 22 00:57:07 1997 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_cse_record_set): Ignore values for SREG if - their mode is narrower than DEST_MODE. - - * pa.h (DFMODE_RETURN_STRING): Define. - (SFMODE_RETURN_STRING): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Use them. - -Wed May 21 23:32:02 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (reload_insi): Handle SUBREG properly. - -Tue May 20 22:32:13 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top. - -Tue May 20 16:57:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * cplus-dem.c (do_type): Handle `J'. - (demangle_fund_type): Print "complex" for it. - -Mon May 19 21:01:53 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.c (output_move_qimode): Add coldfire support. - * m68k.h (PUSH_ROUNDING): Add coldfire support. - * m68k.md (scc{,0}_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, - sle, sleu): Add coldfire support. - -Mon May 19 17:53:34 1997 Mike Meissner <meissner@cygnus.com> - - * rs6000.c: (rs6000_pic_func_labelno): New variable. - (rs6000_output_load_toc_table): Use it. - (output_prolog): Store current value. - -Sun May 18 16:32:08 1997 Michael Meissner <meissner@cygnus.com> - - * dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use macros - ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output line - number label. - -Sun May 18 13:55:12 1997 John Vickers (john@rhizik.demon.co.uk) - - * m68k.h (TARGET_SWITCHES): Add new target name, cpu32. - -Sun May 18 13:50:10 1997 Pat Rankin <rankin@eql.caltech.edu> - - * cccp.c (VMS_write, VMS_read): Delete. - (safe_write): If MAX_WRITE_LEN is defined, limit - incremental write attempts to that amount. - (safe_read): Analogous situation for MAX_READ_LEN. - * cpplib.c (safe_read): Likewise. - * vax/xm-vms.h (MAX_WRITE_LEN, MAX_READ_LEN): Define. - - * vax/xm-vms.h (get_dynamic_handler_chain_libfunc): New macro. - (protect_cleanup_actions_with_terminate): New macro. - -Sun May 18 08:50:25 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/linux.h (ASM_COMMENT_START): Define. - * m68k/linux-aout.h (ASM_COMMENT_START): Define. - - * reload1.c (reload_cse_regno_equal_p): Check for value using more - than one register on a big endian machine. - -Sun May 18 08:39:59 1997 Vince Del Vecchio <vdelvecc@spd.analog.com> - - * loop.c (maybe_eliminate_biv_1): In (set (cc0) <biv>) case, - swap compare operands when mult_val < 0 in one additional place. - -Sun May 18 08:33:30 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * dwarf2out.c (ASM_COMMENT_START): Add default definition. - - * Makefile.in (maintainer-claean): Delete configure. - -Sun May 18 08:31:59 1997 Scott Christley <scottc@net-community.com> - - * configure.in: New file. - * Makefile.in: Change to utilize autoconf variables. - * configure: Now an output file. - -Sun May 18 07:48:31 1997 J.T. Conklin <jtc@netbsd.org> - - * m68k.md (mov[qhs]i,movstrict[qs]i, mulsi3): Use 'Q' constraint - for TARGET_5200. - * m68k.h (EXTRA_CONSTRAINT): New macro. - - * m68k.h (TARGET_SWITCHES): Add 68020-60. - Mask out bits which indicate a particular processor when a different - processor is selected. - (MASK_68040_ALSO): Remove. - (MASK_68040): Change to be a single bit. - - * m68k.h (TARGET_ALIGN_INT, MASK_ALIGN_INT): New macros. - (BIGGEST_ALIGNMENT): Determine according to TARGET_ALIGN_INT. - (TARGET_SWITCHES): Add align-int and no-align-int. - - * m68k.md (mov[qhs]i}): Add pair of constraints which allow - offsetable memory addresses to be moved to the same for TARGET_5200. - - * m68k.c (output_move_strict{hi,qi}): New functions. - * m68k.h (output_move_strict{hi,qi}): Declare. - * m68k.md (movstrict*): Changed into define_expands. - Split insns into m68k and coldfire specific versions with appropriate - constraints. - -Sun May 18 07:26:40 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * libgcc2.c (atexit): Cast malloc and realloc calls. - -Sat May 17 16:26:51 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * final.c (profile_function): Call function_section, not - text_section. - -Sat May 17 16:01:00 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * cse.c (notreg_cost): New function, extracted from COST macro. - (COST): Use notreg_cost. - -Sat May 17 15:13:23 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * cse.c (cse_insn): Don't record a SRC that's a MEM and the same - as a REG_EQUIV note if DEST is set more than once. - -Fri May 16 14:50:57 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (output_move_double): Handle loading a general register - from a scaled indexed memory address. - * pa.md (movdf, movdi): Allow scaled loads into general registers. - -Fri May 16 13:31:08 1997 Mike Stump <mrs@cygnus.com> - - * rs6000.c (rs6000_stack_info): Only do eabi setup for "main", - when main is the global main, not some nested routine that - happens to be called main. - -Thu May 15 17:19:50 1997 Mike Stump <mrs@cygnus.com> - - * except.c (expand_start_all_catch): If the machine needs to - perform any actions at the start of an expcetion handler that - hasn't already been done, use gen_exception_receiver to emit it. - (expand_leftover_cleanups): Likewise. - * alpha.md (exception_receiver): Use it. - * pa.h (exception_receiver): Use it. - -Thu May 15 08:36:59 1997 Jeffrey A Law (law@cygnus.com) - - * dbxout.c (dbxout_function_end): Don't subtract one from - the end of function scoping stab. - -Wed May 14 23:27:09 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (adddi3, subdi3): Remove expanders and patterns. - -Wed May 14 18:51:35 1997 Mike Stump <mrs@cygnus.com> - - * function.c (expand_function_end): Make sure we finish off any - leftover exception handlers. - -Tue May 13 14:07:01 1997 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_builtin_setjmp): Remove setting of - current_function_has_nonlocal_goto, as this isn't a goto. - -Tue May 13 14:47:40 1997 Richard Earnshaw (rearnsha@cambridge.arm.com) - - * arm.h (CPP_SPEC): Fix typo invoking cpp_endian. - * arm/t-semi (LIB2FUNCS_EXTRA): Build fp-bit.c when compiling - with -msoft-float. - * arm.c: Add prototypes for all static functions. - (output_multi_immediate, int_log2): Make static. - - * arm.h (*_SPEC): Remove all references to mle/mbe. - * arm/coff.h (MULTILIB_DEFAULTS): Likewise. - * arm/t-bare (MULTILIB_OPTIONS): Change options mbe/mle to mbig-endian - and mlittle-endian. - (MULTILIB_MATCHES): Nothing matches that matters. - -Mon May 12 20:42:20 1997 Mike Stump <mrs@cygnus.com> - - * except.c (expand_start_all_catch): If need nonlocal_goto_receiver, - add one at the start of exception handler. - (expand_leftover_cleanups): Likewise. - -Mon May 12 17:36:28 1997 Jeffrey A Law (law@cygnus.com) - - * mips.c (move_operand): Accept any general operand after reload - has started. - -Fri May 9 14:29:33 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (udivmodhi4, divmodhi4): Remove expander, give - corresponding pattern [u]divmodhir4 name. Clear MDR register - in the udivmodhi4 pattern itself. - (clear_mdr): Delete pattern. - -Thu May 8 18:20:30 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com) - - * arm/aout.h (ASM_OUTPUT_LONG_DOUBLE): Delete call to - arm_increase_location. - (ASM_OUTPUT_{DOUBLE,FLOAT,INT,SHORT,CHAR,BYTE,ASCII,SKIP}): Likewise. - (ASM_OUTPUT_ALIGN): Delete all code refering to arm_text_location. - - * arm.c (arm_increase_location, get_prologue_size): Delete. - (arm_naked_function_p): Add declaration. - (arm_pic_register): Define. - (all_procs): Delete entries for arm{60,620,70,7d,7di,700i,710c}; add - entries for arm{7m,7500fe,8}, strongarm and strongarm110. - (arm_override_options): Rework so that configure can properly set - the default processor type. Add a warning that PIC code is not yet - supported. - (legitimate_pic_operand_p, legitimize_pic_address): New functions. - (is_pic, arm_finalize_pic): New functions. - (arm_adjust_cost): New function. - (const_pool_offset, arm_backwards_branch, short_branch): Delete. - (arm_insn_not_targeted): Delete. - (add_constant): If generating AOF syntax, then handle pic specially. - (output_ascii_pseudo_op): Delete calls to arm_increase_location. - (function_really_clobbers_lr): Calls followed by a barrier don't - clobber the link register. - (output_func_prologue): Handle AOF syntax pic code. - (output_func_epilogue): Handle cases where lr_save_eliminated is set. - Delete call to arm_increase_location. - (arm_asm_output_label): Simplify, since we no-longer need to cache the - label's address. - (aof_pic_entry): New function to keep track of pic symbols. - (aof_dump_pic_table): New function. - - * arm.h (TARGET_CPU_arm*, TARGET_CPU_strongarm*, TARGET_CPU_generic): - define. - (CPP_ARCH_DEFAULT_SPEC): Set up based on setting of TARGET_CPU_DEFAULT. - (CPP_SPEC): Split up into sub-rule calls. - (CPP_CPU_SPEC): Add default definition. - (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC): Add definitions. - (CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC): Add definitions. - (CPP_ENDIAN_SPEC, CPP_ENDIAN_DEFAULT_SPEC): Add definitions. - (CC1_SPEC): Map legacy -m[236] onto -mcpu=.. and -mapcs-{26,32} as - appropriate. Similarly for -mbe and -mle to -m{big,little}-endian. - (EXTRA_SPECS): Define. - (enum processor_type): New types for arm8 and strongarm. - (CONDITIONAL_REGISTER_USAGE): Handle flag_pic. - (LEGITIMIZE_ADDRESS): Likewise. - (ADJUST_COST): Define. - (PIC_OFFSET_TABLE_REGNUM): Define. - (FINALIZE_PIC): Define. - (LEGITIMATE_PIC_OPERAND_P): Define. - (OUTPUT_INT_ADDR_CONST): Define. - (ASM_OUTPUT_MI_THUNK): Delete calls to arm_increase_location. - (MASK_RETURN_ADDR): Use TARGET_APCS_32 not TARGET_6. - - * arm.md (attr cpu): Add new cpu types for arm8 and strongarm. - (attr ldsched): New attribute, set if processor has a load_delay slot. - (function_unit core): Rework to handle load delay slots. - (function_unit loader): New function unit. - (movsi): Handle pic. - (pic_load_addr): New expand. - (*pic_load_addr_based_insn, pic_add_dot_plus_eight): New patterns. - (peepholes to cause flow to return to a label after a function call): - Delete, these have been disabled for a while now. - - * arm/riscix.h (CPP_SPEC): Rewrite using new sub-components. - (SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2. - * arm/riscix1-1.h (CPP_SPEC): Rewrite using new sub-components. - (SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2. - * arm/semi.h: (CPP_SPEC): Delete. - (PROCESSOR_DEFAULT): Delete. - (CPP_APCS_PC_DEFAULT_SPEC): Define. - * arm/semiaof.h (CPP_SPEC): Delete. - (CPP_APCS_PC_DEFAULT_SPEC): Define. - * arm/t-semi (LIBGCC1_TEST): Don't build it. - (MULTILIB_{OPTIONS,DIRNAMES,EXCEPTIONS}): Build a suitable set of - cross libraries. - (LIBGCC): Set to stmp-multilib. - (INSTALL_LIBGCC): Set to install-multilib. - -Thu May 8 15:20:46 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (output_float_compare): For pentiumpro use fcomip - followed by a float stack pop for "compare;pop;pop" cases. - -Thu May 8 13:20:20 1997 Chris Torek <torek@elf.bsdi.com> - - * fold-const.c (fold, truth_andor): Disable optimization for - side effects on RHS. - -Wed May 7 15:43:57 1997 Mike Stump <mrs@cygnus.com> - - * except.c (start_dynamic_handler): Fix so we can use __builtin_setjmp, - and default to using __builtin_setjmp instead of setjmp. - * expr.c (expand_builtin_setjmp): New routine, split out from - existing inline code from expand_builtin. - (expand_builtin): Split out code into expand_builtin_setjmp. - * expr.h (expand_builtin_setjmp): Add declaration. - * libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead - of setjmp. - (__sjpopnthrow): Likewise. - * optabs.c (init_optabs): Likewise. - -Wed May 7 18:01:24 1997 Samuel Figueroa <Samuel_Figueroa@next.com> - - * rs6000.md (insv): Only combine insert with shift if - remaining source bits >= destination field size. - -Tue May 6 15:48:52 1997 Jason Merrill <jason@gerbil.cygnus.com> - - * dwarf2out.c (dwarf2out_begin_prologue): Increment - current_funcdef_number here. - (dwarf2out_end_epilogue): Not here. - -Mon May 5 18:52:32 1997 Jeffrey A Law (law@cygnus.com) - - * h8300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV. - (shift_one, shift_two): Set CC_NO_CARRY as needed. Remove - references to CC_OVERFLOW_0. - (emit_a_shift): Similarly. - * h8300.h (CC_OVERFLOW_0): Remove. - * h8300.md: Use set_zn and set_znv for cc0 tracking. - (bCC): Restore the comparison is CC_OVERFLOW_UNUSABLE is set and - the comparison needs the overflow bits. - - * mn10300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV. - * mn10300.h (CC_NO_CARRY): Define. - * mn10300.md: Use "set_zn" and "set_znv" to more accurately - describe cc0 status. - -Fri May 2 17:00:33 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: Reorganize, moving .debug_frame support to the top - of the file, and compile it if INCOMING_RETURN_ADDR_RTX is defined - even if DWARF2_DEBUGGING_INFO isn't. - (EH_FRAME_SECTION): New macro. - (output_call_frame_info): Handle .eh_frame variant. - (dwarf2out_def_cfa): Update cfa_*{reg,offset}. - (dwarf2out_frame_debug): Move cfa_*{reg,offset} to file scope. - (dwarf2out_end_epilogue): Increment current_funcdef_number here. - (dwarf2out_decl): Not here. - (dwarf2out_frame_init, dwarf2out_frame_finish): New fns. - (dwarf2out_init, dwarf2out_finish): Call them. - (output_die): Add missing 'case 8:' - (dwarf2out_decl): Revert other context_die = NULL change. - (add_bound_info): Restore default case. - -Fri May 2 15:30:16 1997 Doug Evans <dje@seba.cygnus.com> - - * m32r.h (LIT_NAME_P): New macro. - (SMALL_NAME_P): Use it. - (ASM_OUTPUT_ALIGNED_COMMON): Don't output to scommon if -msdata=none. - * m32r.c (addr24_operand): Handle literals. - (m32r_output_function_prologue): Use IMMEDIATE_PREFIX. - (m32r_output_function_epilogue): Likewise. Use shorter add insn if - able. - -Fri May 2 14:40:44 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (RS6000_ALIGN): Macro renamed from ALIGN. - * rs6000.c (rs6000_stack_info): Use it. - -Fri May 2 14:15:54 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (reload_cse_noop_set_p): When checking the values - equivalent to sreg, make sure the mode is right. - -Fri May 2 12:53:03 1997 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_cse_invalidate_regno): Properly set - the mode for invalidate_regno_rtx. - -Thu May 1 14:57:35 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (call_internal_symref): Fix typo. - -Thu May 1 14:44:17 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_asm_file_start): Use new macro TARGET_FILE_SWITCHING. - (mips_asm_file_end): Likewise. - * mips.h (TARGET_FILE_SWITCHING): Define. - (NO_DBX_FUNCTION_END): Define. - -Thu May 1 09:08:40 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (output_addsi3): Replace "\\;" by "\n\t" in - assembler templates. - -Thu May 1 09:00:42 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * integrate.c (subst_constants, case SUBREG): Cancel changes once - done with result. - -Wed Apr 30 19:45:56 1997 Jim Wilson <wilson@cygnus.com> - - * mips.c (override_options): Set mips_split_addresses only if - TARGET_SPLIT_ADDRESSES is set. - * mips.h (MASK_SPLIT_ADDR, TARGET_SPLIT_ADDRESSES): New macros. - (TARGET_SWITCHES): Add -msplit-addresses, -mno-split-addresses. - * configure (mips*-*-ecoff*, mips*-*-elf*): Set MASK_SPLIT_ADDR - bit in target_cpu_default2. - - * flags.h (current_function_is_thunk): Add extern to declaration. - - * dbxout.c (dbxout_function): Test NO_DBX_FUNCTION_END at run time - instead of compile time. - - * unroll.c (set_dominates_use): In second loop, add check for copy_end. - - * mips.md (paradoxical_extendhidi2, paradoxical_extendqidi2): New - patterns. - -Wed Apr 30 02:23:24 1997 Jason Merrill <jason@yorick.cygnus.com> - - * output.h (named_section): Add reloc argument. - (DECL_READONLY_SECTION): New macro. - * varasm.c (named_section): Add reloc argument, pass it to - ASM_OUTPUT_SECTION_NAME. - (UNIQUE_SECTION, UNIQUE_SECTION_P): Provide defaults. - (function_section): Pass reloc argument to named_section. - (variable_section, exception_section): Likewise. - (output_constant_def_contents): Likewise. - (assemble_start_function): Use UNIQUE_SECTION_P. UNIQUE_SECTION is - now a statement. - (assemble_variable): Likewise. - * mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Add reloc arg, - use DECL_READONLY_SECTION. - * psos.h, ptx4.h, a29k.h, alpha/elf.h, arm/coff.h, h8300.h: Likewise. - * i386/go32.h, i386/sco5.h, m68k/coff.h, mips/elf64.h: Likewise. - * mips/netbsd.h, pa.h, rs6000/sysv4.h, sh.h, sparc/sysv4.h: Likewise. - * config/svr4.h (SELECT_SECTION): Use DECL_READONLY_SECTION. - (ASM_OUTPUT_SECTION_NAME): Likewise, add reloc argument. - (MAKE_DECL_ONE_ONLY): Just set DECL_WEAK. - (UNIQUE_SECTION, UNIQUE_SECTION_P): Define. - * i386/cygwin32.h (UNIQUE_SECTION_P): Define. - (SUPPORTS_ONE_ONLY): Define. - (MAKE_DECL_ONE_ONLY): Lose. - (ASM_OUTPUT_SECTION_NAME): Add reloc arg, use DECL_READONLY_SECTION. - * i386/winnt.c (i386_pe_unique_section): Add reloc arg, - use DECL_READONLY_SECTION. - - * mips/iris6.h (CTORS_SECTION_ASM_OP): Change aligment based on ABI. - (DTORS_SECTION_ASM_OP): Likewise. - -Tue Apr 29 16:08:07 1997 Jeffrey A Law (law@cygnus.com) - - * pa/lib1funcs.asm (divnorm, modnorm, exitdiv): Fix code to - negate SImode values. - -Tue Apr 29 12:54:14 1997 Mike Stump <mrs@cygnus.com> - - * except.c (expand_eh_region_start_tree): Add DECL argument so we - can better track why the region was made for error reporting. - * except.h (expand_eh_region_start_tree): Likewise. - * tree.h (expand_dhc_cleanup): Likewise. - (expand_dcc_cleanup): Likewise. - * except.c (expand_eh_region_start_for_decl): New routine. - * except.h (expand_eh_region_start_for_decl): Likewise. - * stmt.c (expand_decl_cleanup): Add DECL to call of - expand_eh_region_start_tree. - (expand_dcc_cleanup): Likewise. - (expand_dhc_cleanup): Likewise. - (expand_start_case): Switches introduce conditional contexts. - (expand_start_case_dummy): Likewise. - (expand_start_case_dummy): Likewise. - (expand_end_case): Likewise. - -Tue Apr 29 11:45:09 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (dwarf2out_decl): Undo earlier change. - (constant_size): Likewise. - (gen_subprogram_die): Handle NULL context_die. - - * mips/iris6.h (ASM_OUTPUT_CONSTRUCTOR): Fix for -mabi=64. - (ASM_OUTPUT_DESTRUCTOR): Likewise. - -Mon Apr 28 09:10:19 1997 Jeffrey A Law (law@cygnus.com) - - * h8300.c (push_order, pop_order): Add missing initializer entries. - -Fri Apr 25 19:39:43 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * h8300.c (output_adds_subs): Check for adding 0. - -Fri Apr 25 14:52:31 1997 Jim Wilson <wilson@cygnus.com> - - * configure (i[3456]86-*-freebsdelf*, i[3456]86-*-freebsd*): Use - t-freebsd instead of x-freebsd. - * i386/t-freebsd: Renamed from x-freebsd. - -Fri Apr 25 12:16:20 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * go32.h (DBX_*): Use definitions from config/dbxcoff.h instead. - -Fri Apr 25 11:55:54 1997 Jason Merrill <jason@yorick.cygnus.com> - - * i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define. - -Thu Apr 24 18:32:56 1997 Jason Merrill <jason@yorick.cygnus.com> - - * i386/winnt.c (i386_pe_unique_section): New fn. - * i386/cygwin32.h (UNIQUE_SECTION): Define. - (MAKE_DECL_ONE_ONLY): Define. - (ASM_OUTPUT_SECTION_NAME): Support DECL_ONE_ONLY. - - * c-decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL. - -Thu Apr 24 17:11:23 1997 Jim Wilson <wilson@cygnus.com> - - * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add - TARGET_5200 support. - -Thu Apr 24 16:39:25 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stmt.c (pushcase_range): Check for null range first. - -Wed Apr 23 23:06:28 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (reload_cse_record_set): Use push_operand to check for - changes to the stack pointer. - -Wed Apr 23 19:56:01 1997 Jason Merrill <jason@yorick.cygnus.com> - - * calls.c (expand_call): If we're in a thunk, pass through invisible - references instead of making a copy. - * flags.h: Add current_function_is_thunk. - * function.c: Likewise. - (init_function_start): Initialize it. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - * function.h (struct function): Add is_thunk. - -Wed Apr 23 17:47:25 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (secondary_reload_class): Handle more cases where we - need secondary reloads. - (impossible_plus_operand): Accept anything that involves addition - of the stack pointer. - * mn10300.md (reload_insi): Always load the stack pointer into - the destination (which is always an address register). - * mn10300.h (STORE_FLAG_VALUE): Remove definition. - * xm-mn10300.h: Declare malloc, realloc, calloc and free. - -Wed Apr 23 14:28:30 1997 Mike Stump <mrs@cygnus.com> - - * expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based - exception handling. - ({sjpopnthrow,terminate,setjmp,longjmp}_libfunc): Likewise. - (get_dynamic_handler_chain_libfunc): Likewise. - * expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise. - (expand_expr, case POPD{C,H}C_EXPR): Likewise. - * stmt.c (mark_block_as_eh_region): Likewise. - (mark_block_as_not_eh_region): Likewise. - (is_eh_region, conditional_contex, expand_start_bindings): Likewise. - (expand_end_bindings, expand_{decl,dcc,dhc}_cleanup): Likewise. - (expand_cleanups): Likewise. - * tree.h (mark_block_as_eh_region): Likewise. - (mark_block_as_not_eh_region, is_eh_region): Likewise. - conditional_context, expand_dhc_cleanup): Likewise. - * except.c (exception_via_longjmp): Likewise. - (protect_cleanup_actions_with_terminate): Likewise. - (current_function_d{h,c}c, add_partial_entry): Likewise. - (get_dynamic_{handler,cleanup}_chain): Likewise. - (start_dynamic_{cleanup, handler}): Likewise. - (expand_eh_region_start{,_tree}, expand_eh_region_end): Likewise. - (emit_throw, expand_leftover_cleanups): Likewise. - (expand_{start,end}_all_catch, protect_with_terminate): Likewise. - ({start,end}_eh_unwinder, init_eh_for_function): Likewise. - ({save,restore}_eh_status, exception_optimize): Likewise. - * optabs.c ({sjthrow,sjpopnthrow,terminate,setjmp}_libfunc): Likewise. - ({longjmp,get_dynamic_handler_chain}_libfunc): Likewise. - (init_optabs): Likewise. - * except.h: Likewise. - * libgcc2.c (__default_terminate): Likewise. - (__terminate, __get_dynamic_handler_chain, __sjthrow): Likewise. - (__sjpopnthrow): Likewise. - * toplev.c (f_options): Likewise. - * tree.def (TRY_CATCH_EXPR, POPDHC_EXPR, POPDCC_EXPR): Likewise. - * pa.h (JMP_BUF_SIZE): Define. - * sparc.h (JMP_BUF_SIZE): Define. - - * expr.h (cleanups_this_call): Transform uses of cleanups_this_call - into uses of the cleanups managed by the block code - (expand_start_bindings and friends). Remove defer_cleanups_to and - expand_cleanups_to, and use start_cleanup_deferal and - end_cleanup_deferal instead. Add exception_region, - target_temp_slot_level, conditional_code, - last_unconditional_cleanup and cleanup_ptr to struct nesting to - facilitate conditional cleanups. - * expr.c (cleanups_this_call, init_expr): Likewise. - ({save,restore}_expr_status, store_expr): Likewise. - (expand_expr, {defer,expand}_cleanups_to): Likewise. - (do_jump, case TRUTH_{AND,OR}IF_EXPR): Likewise. - (do_jump, case COND_EXPR): Likewise. - * stmt.c (struct nesting): Likewise. - (expand_return, expand_start_bindings, expand_end_bindings): Likewise. - (expand_cleanups, {start,end}_cleanup_deferal): Likewise. - * tree.h (start_cleanup_deferal): Likewise. - (end_cleanup_deferal): Likewise. - * calls.c (expand_call): Likewise. - * function.h (struct function): Likewise. - * except.c (asynchronous_exceptions): Support - -fasynchronous_exceptions. - (can_throw): Likewise. - * toplev.c (f_options): Likewise. - - * flags.h (flag_short_temps): Remove support for short temps. - * calls.c (expand_call): Likewise. - * toplev.c (flag_short_temps): Likewise. - - * stmt.c (expand_start_target_temps): Add for convenience. - (expand_end_target_temps): Likewise. - * except.c (jumpif{,not}_rtx): Likewise. - - * stmt.c: Remove all traces of empty_cleanup_list. - -Wed Apr 23 17:26:40 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (reload_cse_mem_conflict_p): Don't assume that a - SUBREG can not conflict with a MEM. - -Wed Apr 23 09:48:58 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (cmphi): Fixed when next CC user is unsigned. - (mov[hq]i-[23]): New patterns for mem-indirect moves. - (movhf,movtqf): Corrected. - * 1750a.c (memop_valid): Memory indirection now valid. - (nonindirect_operand): Remove. - (print_operand): Fix the 'J' output modifier. - * 1750a.h (FRAME_POINTER_REQUIRED): Not required. - (INITIAL_FRAME_POINTER_OFFSET,FIX_FRAME_POINTER_ADDRESS): Undefine. - (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Honor -fomit-frame-pointer. - (ELIMINABLE_REGS,CAN_ELIMINATE,INITIAL_ELIMINATION_OFFSET): Defined. - (PREFERRED_RELOAD_CLASS): Corrected. - (CONST_COSTS,ADDRESS_COST,REGISTER_MOVE_COST,MEMORY_MOVE_COST): - Slight adjustments. - (ASM_APP_ON,ASM_APP_OFF): Corrected. - * ms1750.inc (DUCR.M,DUC.M): Defined. - -Wed Apr 23 09:41:35 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * reload.c (push_reload): Fix last arg of call to find_dummy_reload. - -Wed Apr 23 09:29:14 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure (i[3456]86-next-*, m68k-next-nextstep{2,3}*): - Remove out_file and add extra_objs. - * config/nextstep.c: Add includes for config.h, stdio.h, and flags.h. - * {i386,m68k}/t-next (nextstep.o): New rule. - * m68k/next.h: Remove include of machmode.h. - * {i386,m68k}/next.c: Files deleted. - -Tue Apr 22 20:45:29 1997 Jason Merrill <jason@yorick.cygnus.com> - - * sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000. - -Tue Apr 22 18:21:20 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (gen_variable_dir): Add test for DW_AT_declaration to - the old_die if statement, and delete assertion for it. - (decl_ultimate_origin): Remove last change. - -Tue Apr 22 10:22:27 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (expand_prologue): End the current sequence before - counting the tst insns in the current function. Start a new - one before emitting any prologue instructions. - - * mn10300.h (REGISTER_MOVE_COST): Bump up cost of moves in the - same class. - - * mn10300.md (untyped_call): New expander. - -Mon Apr 21 16:30:21 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * cse.c (fold_rtx, case PLUS): When seeing if negative of constant - is around, make sure not dealing with largest negative. - -Mon Apr 21 13:57:53 1997 Jim Wilson <wilson@cygnus.com> - - * mips/t-ecoff: Set TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS. - - * m68k.c (output_addsi3): New function. From addsi3 pattern. - * m68k.h (output_addsi3): Add declaration. - * m68k.md (movqi+2): Add address registers. - (movxf+1): Disable for TARGET_5200. - (movxf+2): New pattern for TARGET_5200. - (addsi3): Add define_expand. Move code to output_addsi3. - (addsi3_internal): Renamed from addsi3. Disable for TARGET_5200. - (addsi3_5200): New pattern for TARGET_5200. - -Sun Apr 20 10:45:35 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (operand_equal_p): Constants are not equal if there - has been an overflow. - - * toplev.c (compile_file): Shorten "branch-probabilities" in - output of times. - - * alpha/vms.h (MOD[SD]I3_LIBCALL): Call ots$rem, not ots$mod. - (DWARF2_DEBUGGING_INFO): Define. - - * alpha.c (alpha_need_linkage): Call get_identifier. - - * rs6000.c (rs6000_output_load_toc_table): New function. - (output_prolog): Call it instead of doing it directly. - * rs6000.md (nonlocal_goto_receiver): New pattern. - - * dwarf2out.c: Major cleanup; mostly reformatting. - Include expr.h. - Undefine inline ifndef __GNUC__; never define to include static. - Add "static" to header of all inlined functions. - Add declarations for all static functions, with prototypes. - (addr_const_to_string): Use HOST_WIDE_INT_PRINT_* macros. - (add_AT_*, new_{die,loc_descr,cfi): Don't check for xmalloc - returning zero. - (modified_type_die): Add missing parm on recursive call. - ({reg,based}_loc_descriptor): Add missing arg to call to new_loc_descr. - (add_const_value_attribute): Use REAL_VALUE_TYPE for fp calculations. - (output_call_frame_info): Add missing arg to output_cfi call. - (dwarf2out_def_cfa): Local variable OLD_REG must be unsigned long. - * Makefile.in (dwarf2out.o): Includes expr.h. - - * dwarf2out.c: Cast first arg in all calls to bzero to char *. - (decl_ultimate_origin): Return NULL if equal to decl. - (constant_size): Never return more than 4. - (value_format, case 8): New case. - (dwarf2out_frame_debug): Use HARD_FRAME_POINTER_REGNUM. - (based_loc_descr): Likewise. - (add_bound_info): Delete default case. - Add cases for CONVERT_EXPR and NON_LVALUE_EXPR; treat like NOP_EXPR. - Change NOP_EXPR to recursive call. - (add_type_attribute): Ignore unnamed subtype of integral or FP. - (gen_subprogram_die): Use reg_loc_descriptor. - (dwarf2out_decl): Ignore nested functions. - - * fix-header.c, protoize.c, gcov.c: Use symbolic codes for exit. - - * final.c (profile_function): Only call ASM_OUTPUT_REG_{PUSH,POP} - if defined. - - * expr.c ({move,clear}_by_pieces_1, expand_assignment): Ensure - we have unshared rtx before changing flags. - (store_{constructor,field}): Likewise. - (expand_expr, case COMPONENT_REF): Likewise. - (store_expr): Check if TEMP and TARGET are same with rtx_equal_p. - - * emit-rtl.c (change_address, init_emit): Delete forward references. - (rtl_obstack, stack_depth, max_stack_depth): Delete extern decls. - -Fri Apr 18 18:25:52 1997 Jim Wilson <wilson@cygnus.com> - - * function.c (instantiate_decls): For DECL_INCOMING_RTL, use max - of type size and mode size in instantiate_decl call. - - * fixincludes (sys/lc_core.h): Fix OSF1/4.x namespace pollution. - -Wed Apr 16 19:36:53 1997 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (add_bound_info): Use a DIE instead of a location - expression for variable bounds. Trust a MEM rtx even when - optimizing. - (DWARF_FRAME_RETURN_COLUMN): Default to FIRST_PSEUDO_REGISTER. - - * expr.c (expand_expr, case RTL_EXPR): If there is no sequence, - don't set it to const0_rtx. - * tree.c (array_type_nelts): Don't return any SAVE_EXPRs. - -Mon Apr 14 18:12:57 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (RS6000_ITRUNC, RS6000_UITRUNC): Prepend underscores. - (RS6000_MCOUNT): New macro. - (ASM_FILE_START): Use RS6000_MCOUNT. - * rs6000.c (output_function_profiler): Use RS6000_MCOUNT. - * rs6000/aix31.h (RS6000_{ITRUNC,UITRUNC,MCOUNT}): New macros. - -Mon Apr 14 14:37:27 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (can_use_return_insn): Include outgoing argument - area in size computation. - (expand_prologue): Likewise. No longer diddle with sequences. - Put register saves just before outgoing argument area. - (expand_epilogue): Similarly. - (impossible_plus_operand): New function. - * mn10300.h (FRAME_POINTER_REQUIRED): Never require a frame pointer. - (ACCUMULATE_OUTGOING_ARGS, OUTGOING_REG_PARM_STACK_SPACE): Define. - (impossible_plus_operand): Declare. - * mn10300.md (reload_insi): New expander to handle pathological - reload cases. - (addsi3): Fix CC status. - - * mn10300.h (FUNCTION_VALUE): Return addresses in $a0. - (FUNCTION_VALUE_REGNO_P): Corresponding changes. - * mn10300.md (call_value_internal): Allow output to be in an - address register. - - * calls.c (emit_library_call): Handle saving of stack slots when - ACCUMULATE_OUTGOING_ARGS is defined. - (emit_library_call_value): Likewise. - -Mon Apr 14 14:48:15 1997 Jim Wilson <wilson@cygnus.com> - - * sh.md (xtrct_left, xtrct_right): New patterns. - - * combine.c (get_last_value_validate): New argument insn. - Add check for memory reference clobbered by later store. - (record_value_for_reg, get_last_values): Pass in new argument. - -Mon Apr 14 14:03:18 1997 Mike Meissner <meissner@cygnus.com> - - * configure (powerpc --with-cpu=x): Add embedded powerpcs and 604e. - - * rs6000.c (rs6000_override_options): Recognize -mcpu=801, -mcpu=823, - and -mcpu=604e. - -Sun Apr 13 18:43:16 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (invalidate_regno_rtx): New static variable. - (reload_cse_invalidate_regno): Check whether any earlier registers - have a multi-register value which includes the register we are - invalidating. - (reload_cse_regs): Initialize invalidate_regno_rtx. - - * reload1.c (reload_cse_record_set): When setting reg_values for a - copy from one register to another, use gen_lowpart_common to - adjust the value correctly if the mode changes. - -Sun Apr 13 17:24:48 1997 Doug Evans <dje@cygnus.com> - - * expr.c (move_block_from_reg): Try using integral mov operation first. - - * calls.c (expand_call): When copying unaligned values into a register, - zero out the register first rather than emitting a clobber. - - * integrate.c (copy_rtx_and_substitute): If FRAME_GROWS_DOWNWARD - and regno == VIRTUAL_STACK_VARS_REGNUM, round size of stack slot up - before calling assign_stack_temp. - -Sun Apr 13 15:29:38 1997 Ulrich Drepper <drepper@cygnus.com> - - * enquire.c (fake_f_rep): Add missing element name in cast. - -Sun Apr 13 15:20:05 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS): - Fix sign bug in last change. - -Sun Apr 13 15:03:38 1997 J.T. Conklin <jtc@netbsd.org> - - * m68k.md (movstricthi): Remove extraneous comparisons. - - * configure (*-*-netbsd): tmake_file now t-netbsd; delete xmake_file. - * config/t-netbsd: New file. - * config/x-netbsd: Removed. - -Sun Apr 13 14:51:25 1997 Richard Earnshaw (rearnsha@armltd.co.uk) - - * cse.c (canon_reg, cse_insn): Don't examine insn_n_dups if - recog_memoized fails to find a match. - -Sun Apr 13 14:17:26 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (reload_cse_noop_set_p): Add insn parameter. Change - all callers. If deleting the instruction, remove any earlier - REG_DEAD note for DREG. - (reload_cse_simplify_set): If simplifying, remove any earlier - REG_DEAD note for the new source register. - -Sun Apr 13 14:12:08 1997 Pat Rankin <rankin@eql.caltech.edu> - - * libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers. - -Sun Apr 13 12:53:03 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/linux.h (ASM_SPEC): Define. - (STRUCT_VALUE_REGNUM, STATIC_CHAIN_REGNUM, INITIALIZE_TRAMPOLINE): - Remove definitions, undoing the change of Mar 20 1996. - - * m68k.c (output_move_qimode): Optimize pushing one byte if source - operand does not use stack pointer. - - * m68k.md (rotl[shq]i3, rotl[hq]i3+1): Don't directly modify operand. - - * m68k.md (tstdi): Add missing parallel around the pattern. - -Sun Apr 13 12:51:00 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c, cpplib.c (do_include): Diagnose #import and - #include_next if pedantic and if not in a system header. - (do_warning): #warning now causes an error if -pedantic-errors - is given; this is needed since #warning isn't ANSI. - - * toplev.c (lang_options): Add -Wundef, -Wno-undef. - * c-decl.c (c_decode_option): Ignore -Wundef, -Wno-undef. - - * cccp.c, cexp.y (warn_undef): New variable. - * cpplib.h (struct cpp_options): New member warn_undef. - (CPP_WARN_UNDEF): New macro. - - * cccp.c (main), cpplib.c (cpp_handle_options): Set warn_undef - from -Wundef and -Wno-undef. - - * cppexp.c (cpp_lex) New arg skip_evaluation. - (cpp_parse_expr): Pass skip_evaluation to cpp_lex. - Abort if cpp_lex returns NAME. - - * cexp.y (exp), cppexp.c (cpp_lex): Optionally warn about undefined - identifiers that evaluate to 0. - -Sun Apr 13 11:43:16 1997 Joel Sherrill <joel@OARcorp.com> - - * configure (hppa1.1-*-rtems*): New target. - * mips/rtems.h: New file. - -Sun Apr 13 09:48:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gcov.c (print_usage, open_files): Use FATAL_EXIT_CODE. - * collect2.c (fatal_perror, fatal, collect_wait): Likewise. - - * sparc.c (eligible_for_delay_slot): Clean up and make to agree - precisely with patterns in MD file. - * sparc.md (*return_addsi): Change condition to exclude both ints. - (*return_adddi): Likewise. - (*return_subsi): New pattern. - - * recog.c (validate_replace_rtx_1, case MINUS): New case. - -Sun Apr 13 08:20:24 1997 Thomas Bushnell <thomas@gnu.ai.mit.edu> - - * i386/gnu.h (TARGET_VERSION): Redefine. - -Sun Apr 13 08:15:31 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * c-typeck.c (lookup_field): Don't recurse unless FIELD is - a RECORD_TYPE or UNION_TYPE. - - * final.c (profile_function): Save the static chain register - around the call to the profiler function. - - * loop.c (invariant_p, case REG): Pointers into frame are not - invariants if function has nonlocal gotos. - * reload1.c (reload): If function has nonlocal label, mark all - caller-saved regs as used. - -Fri Apr 11 16:49:06 1997 Doug Evans <dje@seba.cygnus.com> - - * m32r.h (REG_ALLOC_ORDER): Restore to original setting. - - * m32r.h (UPPER16_P): Fix calculation. - * m32r.c (two_insn_const_operand): New function. - (m32r_print_operand): Handle 'X'. - * m32r.md (movsi): Tweak. - (*movsi_insn): Output hex value of constants too. - (movsi define_split): Add. - (andsi3,orsi3,xorsi3): Output hex value of constants too. - -Thu Apr 10 18:39:33 1997 Jim Wilson <wilson@cygnus.com> - - * sh.md (sne): Modified to use negc instead of xor. - (sne+1): New define_split for new sne pattern. - * sh.c (output_stack_adjust): Reorganize code for readability. - If size is negative, negate and subtract it instead of adding it. - -Wed Apr 9 13:51:07 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (output_stack_adjust): When splitting an adjustment into two - parts, make sure the stack is aligned at all times. - -Tue Apr 8 12:34:38 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (RETURN_ADDR_RTX): Define. - -Mon Apr 7 19:19:57 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (count_tst_insns): New function. - (expand_prologue): Load zero into data and/or address registers - if any are free and the function has optimizable tst insns. - (output_tst): If a suitable register is known to have the - value zero, use it instead of searching for a suitable register. - * mn10300.h (zero_dreg, zero_areg): Declare. - (FRAME_POINTER_NEEDED): Frame pointers are not needed if the - outgoing argument size is zero. - * mn10300.md (movXX): Optimize loading zero into an address - register if possible. Optimize loading a DF/DI mode value - into an address register from a constant memory address. - (addsi3): Provide alternative which doesn't require a matching - inout operand. - (return): Optimize consecutive return instructions. - -Mon Apr 7 17:30:35 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * mips/iris5.h (SUBTARGET_CC1_SPEC): Define. - (LINK_SPEC, STARTFILE_SPEC): Support -static. - * mips/iris6.h (SUBTARGET_CC1_SPEC): Define. - (STARTFILE_SPEC, LINK_SPEC): Support -static. - * mips.h: (SUBTARGET_CC1_SPEC): Define. - (CC1_SPEC): Add subtarget_cc1_spec. - (EXTRA_SPECS): Add subtarget_cc1_spec. - -Sun Apr 6 12:24:53 1997 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (incscc): Use a match_operand with cc_register to match - the condition code register. - (decscc, *condbranch, *condbranch_reversed, *mov_scc): Likewise. - (*mov_negscc, *mov_notscc, *cond_return): Likewise. - (*cond_return_inverted, *ior_scc, *cond_move): Likewise. - (insv): New expand. - (andsi_notsi_si): Renamed from *andsi_notsi_si. - (andsi_not_shiftsi_si): New insn. - (*minmax_arithsi): Don't match this insn if operand1 is an - eliminable register. - ({sin,cos}*): Delete, since the ARM always emulates these its - faster to call a library function. - (movsicc, *movsicc_insn): Make operand0 an s_register_operand, - and operand3 an arm_not_operand. Use cc_register to match the - condition code register. - (mov[sd]fcc*): Make operand[0,2] s_register_operands, and operand3 - the nonmemory_operand. Use cc_register to match the condition - code register. - (*ifcompare_plus_move): Move before *ifcompare_arith_move. Just do - a split for the output. - (*ifcompare_move_plus): Similarly, but relative - to *ifcompare_move_arith. - (*if_plus_move, *if_move_plus): New patterns. - (*ifcompare_arith_arith): Simplify the alternatives down to just one, - and split the insn before output. - (*if_arith_arith, *if_arith_move, *if_move_arith): New patterns. - (*ifcompare_move_not, *ifcompare_not_move): Simplify and split the - insn before output. - (*if_move_not, *if_not_move): New patterns. - (*ifcompare_shift_move, *ifcompare_move_shift): Simplify and split the - insn before output. - (*if_shift_move, *if_move_shift): New patterns. - (*ifcompare_shift_shift): Simplify and split the insn before output. - (*if_shift_shift): New pattern. - (*ifcompare_not_arith, *ifcompare_arith_not): Simplify and split the - insn before output. - (*if_not_arith, *if_arith_not): New patterns. - (*ifcompare_neg_move, *ifcompare_move_neg): Simplify and split the - insn before output. - (*if_neg_move, *if_move_neg): New patterns. - -Sat Apr 5 20:17:43 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000/sol-ci.asm (_environ): Don't make _envrion a common - variable, the lastest assembler doesn't let common variables also - be a weak symbol. - -Fri Apr 4 18:30:12 1997 Jim Wilson <wilson@cygnus.com> - - * rs6000.md (adddi3): Use non_short_cint_operand instead of - non_add_cint_operand. - -Thu Apr 3 15:08:39 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (can_use_return_insn): Add size of fixed stack space - for function calls into the size of the frame. - (expand_prologue, expand_epilogue): Likewise. - (initial_offset): Corresponding changes.. - * mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define. - (STACK_POINTER_OFFSET): Define. - * mn10300.md (call, call_value expanders): Don't adjust the stack - pointer here anymore. - - * mn10300.md (ashlsi3): Remove some alternatives which are no longer - needed or desired. - -Thu Apr 3 15:06:53 1997 Jim Wilson <wilson@cygnus.com> - - * local-alloc.c (no_conflict_p): Reject sequences with foreign insns. - - * combine.c (move_deaths): Handle partial REG_DEAD note for - multi-reg hard register. - - * function.c (expand_function_start): Emit queue after expanding - each dynamic parameter type. - - * mips.c (mips_move_2words): Add SIGN_EXTEND support for SYMBOL_REF, - LABEL_REF, and CONST operands. - - * dwarf2out.c: Delete comment referring to README.DWARF. - -Wed Apr 2 17:21:23 1997 Jim Wilson <wilson@cygnus.com> - - * rs6000.md (ashrdi3_power): Mark alternative 0 as early_clobber - output. - - * rs6000.md (abssi3_nopower define_split): Switch operands of MINUS. - (nabssi3_nopower define_split): Likewise. - -Tue Apr 1 19:30:01 1997 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (find_exception_table): Fix to logic to deal with - functions that are in their own section, such as template - instantiations, that cause overlapping EH tables. - -Tue Apr 1 17:16:22 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (USER_H): Add va-mn10300.h - - * ginclude/stdarg.h: Include va-mn10300.h. - * ginclude/varargs.h: Likewise. - * ginclude/va-mn10300.h: New file. - * mn10300.c (expand_prologue): If current_function_varargs is nonzero, - flush d0/d1 back into stack. - (mn10300_builtin_saveregs): New function. - (function_arg, function_arg_partial_nregs): New functions. - (initial_offset): Tweak now that the RP save area is allocated - and deallocated around each call again. - * mn10300.h (FIRST_PARM_OFFSET): Now 4. - (FRAME_POINTER_REQUIRED): Require frame pointer for all non-leaf fcns. - (REG_PARM_STACK_SPACE): Now 8 bytes. - (FUNCTION_ARG_REGNO_P): Update for new parameter passing conventions. - (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Likewise. - (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise. - (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (TRAMPOLINE_TEMPLATE): Don't clobber d0 anymore. - (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes. - (EXPAND_BUILTIN_SAVEREGS): Define. - * mn10300.md (call, call_value patterns): Allocate and deallocate - stack slot for return pointer around each call. - - * mn10300.h (RTX_COSTS): Refine. - (CASE_VALUES_THRESHHOLD, NO_FUNCTION_CSE): Likewise. - * mn10300.c (output_tst): New function. - * mn10300.md (movdi, movdf): Improve code to load constants into regs. - (tst insns): Use output_tst to optimize some cases. Add versions to - encourage more zero extensions instead of sign extensions of HImode - and QImode values. - (divsi3, udivsi3): Remove patterns. Replaced by... - (divmodsi4, udivmodsi4): New expanders/patterns. - (andsi3): Optimize "and" operations with certain constants. - -Tue Apr 1 09:14:29 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h: (ADJUST_COSTS): Define. - -Fri Mar 28 17:46:13 1997 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (LANGUAGES): Add gcov. - (OBJS): Add profile.o. - (STAGESTUFF): Add gcov. - (profile.o, gcov.o, gcov): Add rules to build them. - (install-common): Install gcov. - * combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT - REG_NOTES. - * sparc.h (OVERRIDE_OPTIONS): Check profile_arc_flag. - * final.c (LONG_TYPE_SIZE): Define. - (count_instrumented_arcs): New variable. - (end_final, profile_after_prologue, leaf_function_p): Add support - for profile_arc_flag. - (add_bb): Only call CC_STATUS_INIT if HAVE_cc0. - * flags.h (profile_arc_flag, flag_test_coverage, - flag_branch_probabilities): Declare. - * function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER - for last line of function. - * integrate.c (expand_inline_function): Output - NOTE_REPEATED_LINE_NUMBER after inlined call. - * jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable some - optimizations when flag_test_coverage and there is a line number note - in the way. - (invert_jump): Add REG_BR_PROB when flag_branch_probabililties. - * libgcc2.c (__bb_exit_func): Support gcov style output. - * reorg.c (mostly_true_jump): Use REG_BR_PROB notes when - flag_branch_probabilities. - * rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER. - (reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT. - * rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT. - (REG_BR_PROB_BASE): Define. - (NOTE_REPEATED_LINE_NUMBER): Define. - * sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB - notes. - * toplev.c (branch_prob_dump, profile_arc_flag, flag_test_coverage, - flag_branch_probabilities, branch_prob_dump_file, branch_prob_time): - New variables. - (f_options): Add profile-arcs, test-coverage, and - branch-probabilities. - (compile_file): Set branch_prob_time. Pass flag_test_coverage to - init_emit_once. Handle branch_prob_dump. Call init_branch_prob. - Call end_branch_prob. Call output_func_start_profiler. - (rest_of_compilation): Handle branch_prob_dump. Call new - branch_prob pass. - (main): Set branch_prob_dump. - * gcov.c, profile.c, gcov-io.h, gcov.texi: New files. - -Thu Mar 27 16:52:52 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.h (CPP_CPU_DEFAULT): Define if TARGET_CPU_DEFAULT is not set. - * i386.h (STACK_BOUNDARY): Define to always be 32. - - From J"orn Rennecke <amylaar@cygnus.co.uk> - * i386.md: (zero_extendhisi2+[12]): Use true_regnum instead of - REGNO for operand 0. - (zero_extendqisi2+3): Use reg_overlap_mentioned_p instead of REGNO - comparison; use true_regnum instead of REGNO for rtx generation. - -Wed Mar 26 12:34:21 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (reload): Call reload_cse_regs. - (reg_values): New static variable. - (reload_cse_invalidate_regno): New static function. - (reload_cse_mem_conflict_p): New static function. - (reload_cse_invalidate_mem): New static function. - (reload_cse_invalidate_rtx): New static function. - (reload_cse_regs): New static function. - (reload_cse_regno_equal_p): New static function. - (reload_cse_noop_set_p): New static function. - (reload_cse_simplify_set): New static function. - (reload_cse_check_clobbered): New static variable. - (reload_cse_check_src): New static variable. - (reload_cse_check_clobber): New static function. - (reload_cse_record_set): New static function. - -Wed Mar 26 07:34:06 1997 Ulrich Drepper <drepper@cygnus.com> - - * ginclude/stdarg.h (__va_copy): New definition. - -Tue Mar 25 13:43:36 1997 Michael Meissner <meissner@cygnus.com> - - * gcc.c (init_spec): If -v, print out that the default spec values - were being used. Fix prototype to reflect no arguments. - (set_spec): If specs has not been set, set it up with the default - specs. - (read_specs): Move to later in the file so that startfile_prefixes - has been declared. Process "%include <file>" to include another - specs file, aborting if the file can't be found. Process - "%include_noerr <file>: to include another specs file, giving no - error if the file can't be found. Process "%rename var1 var2" to - rename a specs variable. Take new argument that indicates whether - we are processing the main file. Only process % commands if this - is not the main specs file. Change callers. - (main): Do not call init_spec if a specs file was found. - (set_spec,read_specs,do_spec_1): If DEBUG_SPECS is defined, print - debug information. - -Tue Mar 25 14:43:58 1997 Doug Evans <dje@cygnus.com> - - * expr.c (emit_push_insn): Delete emission of CLOBBER - when doing partial push, no longer necessary. - - * c-decl.c (grokdeclarator): Pedwarn qualified void function return - type. - -Tue Mar 25 14:28:15 1997 Richard Earnshaw (rearnsha@armltd.co.uk) - - * reload.c (find_dummy_reload): New parameter earlyclobber. If set - then don't use IN for the reload if it also appears elsewhere in - the insn. All callers changed. - -Tue Mar 25 13:20:18 1997 J.T. Conklin <jtc@cygnus.com> - - * m68k/lb1sf68.asm (udivsi3): Fix hunk from previous patch that - did not apply correctly. - - * m68k.md (tablejump): Use extl to explicitly sign extend - index registeron TARGET_5200. - * m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h} - (ASM_RETURN_CASE_JUMP): Likewise. - - * m68k.md (mulsi3): Changed into define_expand. Split insn into - m68k and coldfire specific versions with appropriate constraints. - - * m68k.md (movqi): Disable use of address registers for - TARGET_5200. - - * m68k/lb1sf68.asm (__modsi3, __umodsi3): Use mulsl instruction - instead of __mulsi3 function call on the coldfire. - - * m68k.md (bne0_di): Fix typo in last change. - - * m68k.md (xorsi3_5200): Correct constraints. - - * m68k.c (output_move_{si,hi,qi}mode): New functions. - * m68k.h (output_move_{si,hi,qi}mode): Declare. - - * m68k.md (move{si,hi,qi,di}): Changed into define_expands. Split - insns into m68k and coldfire specific versions with appropriate - constraints. - -Tue Mar 25 12:18:41 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (GCC_PASSES): Revert previous change; use cc1$(exeext). - -Mon Mar 24 16:12:20 1997 Doug Evans <dje@cygnus.com> - - * m32r/*: New files. - * config.sub: Add m32r. - * configure: Add m32r. - * longlong.h: Add m32r support. - * ginclude/{stdarg.h,varargs.h}: Add m32r support. - * ginclude/va-m32r.h: New file. - -Mon Mar 24 15:53:15 1997 Joel Sherrill <joel@OARcorp.com> - - * rs6000/rtems.h: Change to a near clone of the powerpc-eabi target. - * configure (powerpc*-*-rtems): Move before GNU/Linux configuration. - -Mon Mar 24 14:26:37 1997 Gavin Koch <gavin@cygnus.com> - - * ginclude/va-mips.h: For little endian, eabi, objects - less than __va_reg_size are passed in registers. - -Fri Mar 21 00:48:02 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (print_operand): Handle 'N'. - - * mn10300.c (expand_epilogue): Correctly handle functions - with large frames, but no callee register saves. - - * mn1300.md (movdf, movdi): Handle overlapping moves. - - * pa.c (compute_movstrsi_length): Handle residuals correctly. - -Thu Mar 20 13:53:30 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp - constants to be hard. - -Mon Mar 20 13:53:30 1997 Jim Wilson <wilson@cygnus.com> - - * rs6000.md (movdf/movsf define_splits): Add SUBREG support. - - * rs6000.c (fp_reg_or_mem_operand): Delete. - * rs6000.h (PREDICATE_CODES): Remove fp_reg_or_mem_operand. - (fp_reg_or_mem_operand): Delete declaration. - * rs6000.md (movsf_hardfloat): Use nonimmediate_operand instead - of fp_reg_or_mem_operand. - -Thu Mar 20 08:52:27 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (cmpsi): Handle comparing a register with - itself by adding zero to the reg. Z bit for such an insn is - inverted. - * mn10300.c (notice_update_cc): Handle CC_INVERT. - - * pa.c (emit_move_sequence): Don't lose for a secondary reload - to the SAR register if the input is a MEM with an offset that won't - fit in 14bits. - -Wed Mar 19 17:10:44 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define. - -Wed Mar 19 16:59:34 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c, cpplib.c (do_error, do_warning): Fix memory leak. - - * cccp.c (output_line_directive): Do not output negative line - numbers when analyzing directives like `#line 0'. - - * cexp.y (parse_number, yylex), cccp.c (rescan), cpplib.c - (cpp_get_token): Unless -lang-c89 is specified, allow C9X-style - hexadecimal floating-point numbers as preprocessor numbers. - * cccp.c (c89): New decl. - (main): Set it to 1 if -lang-c89. - * cpplib.h (struct cpp_options): New member c89. - (CPP_C89): New macro. - * cpplib.c (unsafe_chars): `p' is unsafe before `-' or `+', since it - might generate a C9X-style hexadecimal floating-point number. - (cpp_handle_options): Set c89 option to 1 if -lang-c89. - -Tue Mar 18 17:05:57 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.h (STACK_BOUNDARY): Determine according to TARGET_ALIGN_DOUBLE. - - * i386.c (override_options) Make the default alignment 4 for 486, - otherwise 2. - - * i386/freebsd-elf.h (CPP_SPEC): Remove TARGET_CPU_DEFAULT reference. - * i386/linux{,-aout,-oldld}.h (CPP_SPEC): Likewise. - - * i386/go32.h (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, - NO_STAB_H, ASM_FILE_START, DBX_BLOCKS_FUNCTION_RELATIVE, - DBX_FUNCTION_FIRST, DBX_OUTPUT_MAIN_SOURCE_FILE_END, - ASM_OUTPUT_SOURCE_LINE): Added to support stabs. - (ASM_OUTPUT_SECTION_NAME): Support section attribute. - -Tue Mar 18 16:12:28 1997 Jim Wilson <wilson@cygnus.com> - - * final.c (shorten_branches): Split all insns before computing insn - lengths. - (final_scan_insn, case default): If HAVE_ATTR_length defined, call - abort for any insn that has a '#' output template. - - * expr.c (emit_group_load): Call operand_subword instead of creating - an explicit SUBREG. - - * reload1.c (reload_reg_free_before_p, case - RELOAD_FOR_OPERAND_ADDRESS): Conflicts with RELOAD_FOR_OPADDR_ADDR - reloads. - - * configure (alpha-dec-osf[23456789]*): Use install-headers-cpio - for osf4. - - * gcc.c (init_spec): Delete parameter. Always initialize extra_specs. - (process_command, main): Change all callers. - - * combine.c (if_then_else_cond): Call copy_rtx to prevent sharing. - -Tue Mar 18 14:59:12 1997 Ian Lance Taylor <ian@cygnus.com> - - * function.c (assign_parms): Add a REG_EQUIV note to the - instruction which copies a parameter into a pseudo-register - whenever there is an associated stack slot, even if the parameter - actually arrived in a register. - -Tue Mar 18 14:24:48 1997 Doug Evans <dje@cygnus.com> - - * configure (alpha-dec-osf[23]): Separate osf[23] case. - * alpha.h (LIB_SPEC): -lprof1 requires -lpdf for OSF 4. - * alpha/osf2or3.h: New file. - -Tue Mar 18 11:32:10 1997 Jeffrey A Law (law@cygnus.com) - - * m68k.c (m68k_last_compare_had_fp_operands): New variable. - * m68k.h (m68k_last_compare_had_fp_operands): Declare it. - * m68k.md (tst*, cmp*): Turn into define_expand/define_insn pairs. - Keep track of whether test/compare has fp operands. - (seq, sne, sgt, slt, sge, sle): Turn into define_expand/define_insn - pairs. Make expanders FAIL if TARGET_68060 and last comparison/test - had fp operands. - -Tue Mar 18 04:29:29 1997 Richard Earnshaw <rearnsha@armltd.co.uk> - - * arm.md (movhi): Handle generation of large constants during - and after reload. - -Mon Mar 17 17:30:24 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * gmicro.h (RETURN_POPS_ARGS): Make sure FUNDECL is non-nil - before we try to use it. - * m68k.h (RETURN_POPS_ARGS): Likewise. - * ns32k.h (RETURN_POPS_ARGS): Likewise. - * pyr.h (RETURN_POPS_ARGS): Likewise. - -Mon Mar 17 17:13:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS): - Only add padding if a bit field would otherwise span more units - of alignment than its base type. - -Mon Mar 17 17:03:55 1997 J.T. Conklin <jtc@cygnus.com> - - * m68k.md (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0 - instead of tstl when testing address registers on the 68000. - - * m68k/lb1sf68.asm: Fix prologues/epilogues to deal with the lack - of predecrement/postincrement addressing modes in the coldfire - moveml instruction. - -Mon Mar 17 17:00:14 1997 Scott Christley <scottc@net-community.com> - - * Fix long standing bug where first method call for a class could - result in a garbled stack or produce an incorrect return value. - * objc/sendmsg.c (__objc_block_return): Remove function. - (__objc_word_return, __objc_double_return): Remove functions. - (__objc_get_forward_imp): New function. - (__objc_init_dispatch_tables): Install zero instead of - __objc_init_install_dtable. - (__objc_init_install_dtable): No longer call the method but - allow objc_msg_lookup return it for normal execution. - (obj_msg_lookup): Differentiate between when a method isn't - implemented and when the dispatch table needs to be installed. - Return the IMP when the dispatch table is installed versus - having __objc_init_install_dtable call it. - (get_imp): Install dispatch table if needed and return IMP - from the newly installed dispatch table. - (__objc_responds_to): Install dispatch table if needed before - checking if method is implemented. - -Mon Mar 17 16:29:38 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.c (build_{index,range}_type): Ensure expressions for min - and max value are in same obstack as type. - -Mon Mar 17 15:44:18 1997 Pat Rankin <rankin@eql.caltech.edu> - - * cccp.c [#if VMS] (O_RDONLY, O_WRONLY): Delete (redundant). - (BSTRING): Delete (obsolete; usage occurs prior to definition). - (do_include): Handle old VAX C style includes better. - -Mon Mar 17 13:46:47 1997 Paul Eggert <eggert@twinsun.com> - - * cexp.y, cppexp.c (parse_number): Invalid integer constants are - errors if pedantic. - * cexp.y (yylex): Invalid multibyte characters are errors if pedantic. - * cppexp.c (cpp_lex): Likewise. - * cppexp.c (cpp_parse_escape): Character constants that do not fit are - errors if pedantic. - - * c-parse.in (expr_no_commas): Do not store temporary - skip_evaluation increments on yacc value stack. - -Sun Mar 16 19:54:49 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Refine which - object is picked. - -Sun Mar 16 15:45:45 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Adjust BENEFIT appropriately if an - autoincrement memory reference will eliminate add insns. - -Sun Mar 16 08:41:40 1997 Scott Christley <scottc@net-community.com> - - * i386.md (untyped_call): Re-enable code. - * objc/sendmsg.c (__objc_block_return): New function. - (__objc_word_return, __objc_double_return): New functions. - (__objc_init_install_dtable): Call appropriate return function - based upon method type. - * objc/thr-pthreads.c: Correct include path. - -Sat Mar 15 07:58:33 1997 Scott Christley <scottc@net-community.com> - - * objc-act.c (OBJC_VERSION): Increment version. - * objc/init.c (OBJC_VERSION): Likewise. - -Sat Mar 15 07:58:00 1997 Ovidiu Predescu <ovidiu@net-community.com> - - * Implement +load. - * objc/init.c (objc_send_load, __objc_send_load): New functions. - (__objc_send_message_in_list): New function. - (__objc_force_linking): New function. - (__objc_exec_class): Don't call _objc_load_callback here. - * objc/linking.m: New file. - * objc/sendmsg.c (class_add_method_list): Check for the +load method - when adding a methods list to a class. - * objc/Makefile (OBJC_O): Add linking.m. - - * Allow methods defined in categories to override methods that are - defined in the class implementation. - * objc/sendmsg.c (__objc_install_methods_in_dtable): New function. - (class_add_method_list): Don't check anymore for duplicate methods. - - * config/nextstep.h (INCLUDE_DEFAULTS): Define to something useful - when cross-compiling. - - * The static instances list moved from the objc_module struct to - objc_symtab struct, at the end of defs array. This now allows the NeXT - gdb to work with binaries generated for the GNU ObjC runtime. - * objc-act.c (build_objc_symtab_template): Make sure - defs in objc_symtab is a NULL terminated array. - (init_def_list): Attach statics to end of def list. - (init_objc_symtab): Take statics list into account. - (init_module_descriptor, build_module_descriptor): Don't add statics. - (generate_static_references): Indicate that statics are used. - (finish_objc): Process statics in the beginning. - * objc/objc-api.h (objc_module): Eliminate statics variable. - * objc/init.c (__objc_exec_class): Access statics from their - new place in the defs variable. - -Sat Mar 15 07:29:15 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload.c: Include expr.h. - (find_reloads_address, find_reloads_address_1): New argument INSN. - (find_reloads_address_1): Reload inside of p{re,ost}_{in,de}c - instead of entire p{re,ost}_{in,de}c where appropriate. - * Makefile.in (reload.o): Added expr.h to dependencies list. - -Sat Mar 15 07:17:12 1997 Richard Henderson <rth@tamu.edu> - - * reload.h (eliminate_regs): Add STORING arg. - * reload1.c (eliminate_regs): Likewise. - (eliminate_regs, case SET): Pass that we are storing to recursive call. - (eliminate_regs, case SUBREG): If storing and same number of words, - use larger mode. - * caller-save.c, dbxout.c, dwarfout.c, dwarf2out.c, reload.c, sdbout.c: - Change all calls to eliminate_regs. - -Fri Mar 14 14:18:49 1997 Ian Lance Taylor <ian@cygnus.com> - - * cplus-dem.c: Add prototypes for all static functions. - (mystrstr): Make static. Make arguments and result const. - (cplus_match): Remove; not used. - -Fri Mar 14 10:15:35 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (const_costs): Remove unused function. - * mn10300.h (CONST_COSTS): Rework to generate better code. - - * mn10300.c (print_operand): Handle 'H' and 'L' output - modifers for high/low part of a 64bit value. - * mn10300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Handle 'G' - (LEGITIMATE_CONSTANT_P): Allow any constant. - * mn10300.md (movdi, movdf): Implement. - (adddi3, subdi3): New expanders and patterns. - - * mn10300.c (print_operand): Handle 'A' modifier for an - address which can't be simple register indirect. - * mn10300.h (EXTRA_CONSTRAINT): Handle 'R' for bit ops. - * mn10300.md: Add patterns to test, set and clear bitfields. - - * mn10300.c (can_use_return_insn): New function. - (expand_epilogue): Emit a RETURN insn if possible. - * mn10300.md (return): New pattern. - - * mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'N'. - * mn10300.md (andsi3): Catch "and 255,dn" and "and 65535,dn" - which were not turned into zero_extend patterns. - - * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Handle symbolic - constant as an index/base too. - - * mn10300.md (movsi): Allow SP to be loaded/saved with - reg+d8 addresses. - - * mn10300.md (cmpsi): Allow second operand to be a constant. - (subsi3): Likewise. - - * mn10300.md (sign extension patterns): Fix thinko when - extending from memory. - - * mn10300.md (tst peepholes): Add peepholes for test/branch - based on N bit being set/clear and the data value being tested dies. - -Tue Mar 11 17:07:51 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (expand_prologue): Rework so that eliminating - the frame pointer produces faster/smaller code. - (expand_epilogue): Likewise. - (initial_offset): New function for argument pointer and frame pointer - elimination. - * mn10300.h (FIRST_PSEUDO_REGISTER): Bump to 10. - (FIXED_REGISTERS): Add argument pointer register, it's a fake fixed - register. - (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Corresponding changes. - (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Likewise. - (REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise. - (reg_class, REG_CLASS_NAMES): Delete unwanted DATA_OR_SP_REGS class. - (PREFERRED_OUTPUT_RELOAD_CLASS): Define. - (FIRST_PARM_OFFSET): No longer include register save area in - computation. - (STACK_POINTER_REGNUM): Is now register 9. - (ARG_POINTER_REGNUM): Is now register 8. - (FRAME_POINTER_REQUIRED): Refine. - (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Define. - (CAN_DEUG_WITHOUT_FP): Define. - * mn10300.md (return_internal): Break into two patterns. - - * mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'M' too. - (REGISTER_MOVE_COST): Fix errors and refine. - - * mn10300.c (notice_update_cc): SET_ZN_C0 insns leave the - overflow bit in an unuseable state. Rename CC_SET to CC_TST. - * mn10300.md (cc attributes): "set" is gone, replaced by - "tst". Update attributes on various insns. - - * mn10300.md: Improve sign and zero extension instructions. - (ashlsi3): Improve. Handle address registers too. - (add peephole): Combine two consecutive adjustments of a register - into a single adjustment. - -Tue Mar 11 17:18:40 1997 Brendan Kehoe <brendan@melange.gnu.ai.mit.edu> - - * cplus-dem.c (gnu_special): Call demangled_fund_type for other - __t* symbols. - -Mon Mar 10 16:10:34 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * emit-rtl.c (subreg_lowpart_p): Return 0 if SUBREG_REG is VOIDmode. - * combine.c (simplify_rtx, case SUBREG): Fix direction of test when - calling operand_subword; use inline code intead of subreg_lowpart_p. - -Fri Mar 7 09:22:28 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (expand_{pro,epi}logue): Rework to avoid - unnecessary "add" operations. - (expand_epilogue): Likewise. - * mn10300.h (STARTING_FRAME_OFFSET): Is zero after the last - round of prologue/epilogue changes. - (FIRST_PARM_OFFSET): Is now 16 (-4 for REG_PARM_STACK_SPACE + 20 for - register save area). - (REG_PARM_STACK_SPACE): Define as 4 bytes. - (OUTGOING_REG_PARM_STACK_SPACE): Define so caller allocates it. - * mn10300.md (call{,_value} expander): Don't emit insns to adjust the - stack here anymore. - - * mn10300.md (bCC patterns): Just use "bCC target". - -Tue Mar 4 13:21:41 1997 Jim Wilson <wilson@cygnus.com> - - * rs6000.md (movsi): Don't emit a USE insn for LABEL_REFs. - -Thu Mar 6 16:29:13 1997 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (modified_type_die): Initialize item_type to NULL. - Move equate_type_number_to_die call before use of sub_die, and move - recursive modified_type_die calls on item_type after it. - - * dwarfout.c (root_type_1, write_modifier_bytes_1): New functions. - (root_type): Call root_type_1. - (write_modifier_bytes): Call write_modifier_bytes_1. - (output_type, case POINTER_TYPE): Set TREE_ASM_WRITTEN before - recursive call. - -Wed Mar 5 14:30:49 1997 Torbjorn Granlund <tege@quiet.matematik.su.se> - - Partially undo Jan 11 changes (nor takes only register ops): - * mips.md (*norsi3_const, *nordi3_const): Delete bogus patterns. - * mips.c (complemented_arith_operand): Delete function. - (print_operand): Don't handle `e' for CONST_INT. - * mips.h (PREDICATE_CODES): Delete complemented_arith_operand. - -Tue Mar 4 16:38:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil - before we try to use it. - * i386/{isc,next,sco,sco5,scodbx}.h (RETURN_POPS_ARGS): Likewise. - -Mon Mar 3 20:17:54 1997 Gavin Koch <gavin@cygnus.com> - - * ginclude/va-mips.h: __mips_single_float should have - the same effect on vararg lists as __mips_soft_float. - -Mon Mar 3 18:12:01 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (DBX_CONTIN_LENGTH): Undo 2/26 change. - -Mon Mar 3 13:08:20 1997 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_rtx): Do nothing with (truncate:mode) if - mode is a partial integer mode. - -Sun Mar 2 17:41:18 1997 Ulrich Drepper <drepper@cygnus.com> - - * ginclude/varargs.h: Add definition of __va_copy. - * va-alpha.h, va-clipper.h, va-h8300.h, va-i860.h: Likewise. - * va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-ppc.h: Likewise. - * va-sh.h, va-sparc.h, va-spur.h: Likewise. - -Sun Mar 2 13:25:49 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (process_init_element): Warn and truncate if upper - bound of index is out of range. - -Fri Feb 28 16:08:47 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000/sol-c0.c (_start): Disable loading up r13 and r2 with the - SDA base registers for now. - - * rs6000.md (movsi): Emit a USE insn when putting the - label of constants into the TOC, so that the constant is still - emitted when expensive optimizations are used. - -Thu Feb 27 17:54:42 1997 Karl Heuer <kwzh@gnu.ai.mit.edu> - - * fixinc.ptx: Fix sed expression looking for <sys/types.h> in pwd.h. - -Thu Feb 27 12:11:16 1997 Dennis Glatting <dennis.glatting@plaintalk.bellevue.wa.us> - - * fixincludes: Remove more cases of __const__ from math.h on NeXT. - -Wed Feb 26 14:52:27 1997 Michael Meissner <meissner@cygnus.com> - - * reload.c (debug_reload): Remove extra argument to fprintf. - * rs6000.c (output_toc): Make fprintf calls type correct. - - * rs6000.h (DBX_CONTIN_LENGTH): Define as 4000 to avoid AIX - assembler line limit. - -Mon Feb 24 17:56:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4. - -Mon Feb 24 17:33:57 1997 Michael Meissner <meissner@cygnus.com> - - * rs6000/xm-sysv4.h (HAVE_STRERROR): Define. - -Sun Feb 23 17:18:28 1997 Jim Wilson <wilson@cygnus.com> - - * rs6000.md (floatsidf2_loadaddr): Correct syntax for cau instruction. - (load_multiple, store_multiple): Call change_address instead of - creating MEM from scratch. - -Thu Feb 20 16:39:15 1997 Jim Wilson <wilson@cygnus.com> - - * unroll.c (unroll_loop): Add check for naive loop that ends with - conditional branch that does not branch back to loop start. - - * reload1.c (reload): Move assign_stack_local call into main loop. - -Thu Feb 20 11:40:46 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (zero extension patterns): Turn into define_expand and - define_insn pair. - -Wed Feb 19 17:05:38 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (emit_move_sequence): Don't copy 0.0 (double precision) - directly to memory, go through a reg if reload hasn't started. - * pa.md (main movdf pattern): Don't allow 0.0 (double precision) - to be copied directly to memory. - - * pa/pa-hpux10.h (MD_EXEC_PREFIX): Define appropriately for hpux10. - (MD_STARTFILE_PREFIX): Similarly. - - * pa.h (ASM_OUTPUT_SECTION_NAME): Surround the section name - with '$' if not using GAS. - -Wed Feb 19 16:43:47 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sched.c (schedule_insns): If there was no first scheduling pass, - split instructions after reload. - (update_flow_info): Tolerate some idiosyncrasies after reload. - -Wed Feb 19 11:13:51 1997 Jeffrey A Law (law@cygnus.com) - - * combine.c (find_split_point): Don't turn a SIGN_EXTEND into - a series of shifts if either mode is a partial integer mode. - -Mon Feb 17 08:06:02 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * rs6000.c ({,non_}short_cint_operand): Use (unsigned HOST_WIDE_INT). - (non_add_cint_operand, includes_rshift_p): Likewise. - * rs6000.h (CONST_OK_FOR_LETTER_P): Likewise. - (LEGITIMATE_ADDRESS_INTEGER_P, LEGITIMIZE_ADDRESS): Likewise. - -Sun Feb 16 07:55:19 1997 J"orn Rennecke (amylaar@cygnus.co.uk) - - * libgcc2.c (__negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2): - Use ANSI style definition with full prototype. - (__muldi3, __udiv_w_sdiv, __udivmoddi4, __divdi3, __moddi3) : Likewise. - (__udivmoddi4, __udivdi3, __cmpdi2, __ucmpdi2) : Likewise. - (__fixunstfdi, __fixtfdi, __fixunsxfdi, __fixxfdi) : Likewise. - (__fixunsdfdi, __fixdfdi, __floatdixf, __floatditf) : Likewise. - (__floatdidf, __floatdisf, __fixunsxfsi, __fixunsdfsi) : Likewise. - (__gcc_bcmp, __eprintf, gopen, gclose, __bb_init_file) : Likewise. - (__bb_init_trace_func, __clear_cache, mprotect) : Likewise. - (__enable_execute_stack, cacheflush, exit) : Likewise. - (find_exception_table, __find_first_exception_table_match) : Likewise. - -Sun Feb 16 07:52:02 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (mulqihi3): Corrected. - (tst{hf,tqf}): Simplified. - (movqi): Removed redundant alternative. - (addqi-3,addqi-2,addqi-1): Set/Reset Bit patterns by C. Nettleton. - (many patterns): Introduced operand output modifiers d,t,b,B,w. - * 1750a.c (print_operand): New operand output modifiers d,t,b,B,w. - (simple_memory_operand): Removed. - (one_bit_set_p, which_bit): Added from C. Nettleton's m1750 config. - -Sun Feb 16 07:43:37 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c (special_symbol): Don't treat "L" in "L'...'" as identifier. - (check_macro_name, collect_expansion, rescan): Likewise. - * cpplib.c (special_symbol, check_macro_name, collect_expansion): - Likewise. - - * cexp.y (parse_c_expression): Don't check for null lexptr - or *lexptr == 0. If yyparse returns nonzero value, abort. - - * cexp.y (yylex): Use is_space, not is_hor_space, to find keyword end. - (is_space): New decl. - (is_hor_space): Removed. - * cccp.c (is_space): Now external. - (is_hor_space): Now static. - -Sun Feb 16 04:55:11 1997 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c, tree.h (decl_printable_name): Change arguments. - * c-common.c (declare_function_name): Reflect above change. - * final.c (final_start_function): Likewise. - * function.c (init_function_start): Likewise. - * toplev.c (decl_name): Likewise. - (announce_function): Likewise. - (v_message_with_decl): Likewise. - * dwarf2out.c (dwarf2_name): New fn, uses decl_printable_name. - (add_pubname): Use it. - (add_name_and_src_coords_attributes): Use it, add - DW_AT_MIPS_linkage_name if appropriate. - (output_aranges): Use DW_AT_MIPS_linkage_name if present. - -Sat Feb 15 18:45:30 1997 J.T. Conklin <jtc@cygnus.com> - - * m68k.md (cmpsi): Added insn with appropriate constraints for - TARGET_5200; changed condition of existing insn to !TARGET_5200. - -Sat Feb 15 18:26:50 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k/hp320.h (PRINT_OPERAND_FLOAT): Removed. - (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined. - (PRINT_OPERAND): Turned off: use default. - * m68k/news.h (PRINT_OPERAND): Turned off: use default. - (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined. - * m68k/tower-as.h (PRINT_OPERAND): Turned off: use default. - (ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined. - * m68k/crds.h (PRINT_OPERAND): Turned off: use default. - (ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined. - (SGS_NO_LI,STRUCTURE_SIZE_BOUNDARY,IMMEDIATE_PREFIX): Defined. - (NEED_PROBE): Defined instead of HAVE_probe and gen_probe. - (FUNCTION_{PRO,EPI}LOGUE): Do not access FPA registers. - * m68k.c (output_function_prologue): Add CRDS and MOTOROLA probe code. - (print_operand): Do not output '.' if CRDS. - - * gcc.c (set_spec): Fix comment-in-comment typo. - -Sat Feb 15 17:54:23 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (COMPILERS): Moved before GCC_PASSES. - (GCC_PASSES): Use $(COMPILERS) instead of cc1$(exeext). - -Sat Feb 15 17:25:44 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * gcc.c (process_command): Allocate space for terminating null. - -Sat Feb 15 17:21:34 1997 Pat Rankin <rankin@eql.caltech.edu> - - * vax.h (FUNCTION_PROLOGUE): Adjust size by STARTING_FRAME_OFFSET. - * vax/vms.h (FUNCTION_PROLOGUE): Delete. - -Sat Feb 15 08:48:14 1997 Douglas B. Rupp (rupp@gnat.com) - - * configure: Fix setting of CC in no-symlink case. - -Sat Feb 15 08:42:17 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * expmed.c (expand_divmod): Prefer divmod in same mode over div - in wider mode. - -Sat Feb 15 08:27:50 1997 J"orn Rennecke (amylaar@cygnus.co.uk) - - * fold-const.c (fold): Don't assume a nonexplicit constant cannot - equal an explicit one. - - * i386.md (zero_extendqi[hs]i2+3): Ensure operating on REG. - -Sat Feb 15 08:11:04 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (i[3456]86-*-solaris2*): Correct tm.h filename in - stabs case. - - * a29k.h (STORE_FLAG_VALUE): Write so works on both 32 and 64-bit host. - -Fri Feb 14 16:03:37 1997 Robert Lipe <robertl@dgii.com> - - * i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies. - -Fri Feb 14 16:00:23 1997 H.J. Lu <hjl@gnu.ai.mit.edu> - - * config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set - current-section variable to text. - -Wed Feb 12 16:07:34 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * fixinc.irix: New file. - * configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix. - -Wed Feb 12 15:40:20 1997 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (LIBGCC2_DEBUG_CFLAGS): New macro. - (LIBGCC2_CFLAGS): Use it. - - * dwarfout.c (output_type): Do early exit only if TYPE_CONTEXT is NULL - or if TYPE_CONTEXT is another type (e.g. a nested type). - -Tue Feb 11 15:53:51 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM. - Need not save MACL/MACH when not live or in leaf function. - -Mon Feb 10 14:46:32 1997 Jeffrey A Law (law@cygnus.com) - - * stmt.c (group_case_nodes): Recognize more opportunities to - group case nodes. - -Sun Feb 9 14:05:48 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (assign_stack_temp): Clear MEM flags from reuse. - -Sat Feb 8 17:37:47 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * local-alloc.c (update_equiv_regs): Fix error in last change. - -Fri Feb 7 12:42:34 1997 Mike Stump <mrs@cygnus.com> - - * pa.h (RETURN_ADDR_RTX): Fix to ignore export stubs. - * pa.c (return_addr_rtx): Define. - -Fri Feb 7 13:56:56 1997 Doug Evans <dje@cygnus.com> - - * cse.c (invalidate_from_clobbers): Delete unnecessary test for - (clobber nil). - - * toplev.c (main): Delete redundant settings of flag_no_inline - and warn_inline if not optimizating. - -Fri Feb 7 10:45:02 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (stmp-multilib-sub): Add missing "else true" - clauses to work around make bug on some systems. - -Fri Feb 7 08:19:43 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (const_binop): Don't call size_int if low < 0. - - * function.c (instantiate_virtual_regs_1, case USE, CLOBBER): - Fix error in last change. - -Thu Feb 6 17:09:17 1997 Mike Stump <mrs@cygnus.com> - - * except.c (find_exception_handler_labels): Initialize label array - with zeroes. - -Wed Feb 5 22:11:55 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (post_ldwm): Fix typos. - -Wed Feb 5 15:57:42 1997 Doug Evans <dje@cygnus.com> - - * m68k/vxm68k.h (WCHAR_TYPE,WCHAR_TYPE_SIZE,SIZE_TYPE): Fix. - (PTRDIFF_TYPE): Define. - -Wed Feb 5 11:19:13 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload1.c (alter_reg): Don't ask assign_stack_local to round up - to a multiple of BIGGEST_ALIGNMENT, unless a register appears in a - paradoxical subreg. - -Tue Feb 4 19:29:40 1997 Jim Wilson <wilson@cygnus.com> - - * reload.c (find_reloads_address_1, case POST_INC): Don't use - ADDR_TYPE here. - -Tue Feb 4 12:33:45 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis): Delete obvious no-op moves - which use SUBREGs. - -Mon Feb 3 20:00:35 1997 Jim Wilson <wilson@cygnus.com> - - * jump.c (find_cross_jump): Don't allow old-style and volatile asms - to match. - -Mon Feb 3 15:51:31 1997 Doug Evans <dje@cygnus.com> - - * sparc/sol2.h (ASM_SHORT,ASM_LONG): Set to .uahalf/.uaword. - * sparc/sysv4.h (ASM_LONG): Define. - (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Use ASM_LONG. - -Mon Feb 3 13:01:46 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload.h (enum reload_type): Add RELOAD_FOR_INPADDR_ADDRESS and - RELOAD_FOR_OUTADDR_ADDRESS. - * reload.c (ADDR_TYPE): New macro. - (push_secondary_reload): Check for new reload types. - (combine_reloads): Likewise. - (find_reloads): Likewise. Convert INPADDR_ADDRESS and - OUTADDR_ADDRESS to OPADDR_ADDR. Check OPADDR_ADDR when looking - for merges. - (find_reloads_address): When reloading an address, use the - ADDR_TYPE macro to get the type of the new reload. - (find_reloads_address_1): Likewise. - (reload_when_needed_name): Add new reload types. - * reload1.c (reload): Add in_addr_addr and out_addr_addr fields to - insn_needs struct. Use them for new reload types, and when - computing in_max and out_max. - (reg_used_in_inpaddr_addr): New static array. - (reg_used_in_outaddr_addr): New static array. - (mark_reload_reg_in_use): Handle new reload types. - (clear_reload_reg_in_use, reload_reg_free_p): Likewise. - (reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise. - (reloads_conflict, merge_assigned_reloads): Likewise. - (emit_reload_insns): Likewise. - (choose_reload_regs): Save arrays for new reload types. - -Sun Feb 2 19:43:17 1997 Scott Christley <scottc@net-community.com> - - * objc/selector.c (__sel_register_typed_name): Eliminate compiler - warnings with explicit cast. - - * Add condition mutex support to the objc runtime. - * objc/thr-mach.c (objc_condition_{,de}allocate): New functions. - (objc_condition_{wait,broadcast,signal}): New functions. - * objc/thr-pthreads.c (objc_condition_{,de}allocate): New functions. - (objc_condition_{wait,broadcast,signal}): New functions. - * objc/thr-solaris.c (objc_condition_{,de}allocate): New functions. - (objc_condition_{wait,broadcast,signal}): New functions. - * objc/thr.h: Prototypes for new functions. - - * objc/init.c (__objc_runtime_mutex): Eliminate leading underscore - from name of objc mutex and thread structures. - * objc/runtime.h: Likewise. - * objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Likewise. - * objc/thr-{solaris,win32}.c: Likewise. - * objc/thr.{c,h}: Likewise. - - * Major reorganization of objc error handling. - * objc/Object.m (-error:): Call objc_error function instead of - using function pointer. - * objc/archive.c: Replace call to abort or __objc_fatal functions - with call to objc_error function throughout the complete file. - * objc/class.c (objc_get_class): Replace call to abort function - with call to objc_error function. - * objc/encoding.c (objc_sizeof_type, objc_alignof_type): Replace - call to abort function with call to objc_error function. - (objc_skip_typespec): Likewise. - * objc/init.c (init_check_module_version): Replace call to - abort function with call to objc_error function. - * objc/misc.c (objc_verror): New function. - (objc_fatal): Remove function. - (objc_set_error_handler): New function. - (_objc_error_handler): New global variable. - (__alpha__): Remove unneeded code. - (objc_error): Allow user specified error handler function to - trap and handle the objc error. Added an error code parameter - which indicates the specific error that occured. - (objc_malloc, objc_atomic_malloc): Replace call to objc_fatal - function with call to objc_error function. - (objc_valloc, objc_realloc, objc_calloc): Likewise. - * objc/objc-api.h: Declare error handling functions and typedef - for user specified error handler function. Define error codes - used by the runtime library. - * objc/runtime.h: Remove error handling declarations. - * objc/sendmsg.c (__objc_forward): Replace call to abort function - with call to objc_error function. - -Sun Feb 2 19:42:52 1997 Thomas Baier <baier@ci.tuwien.ac.at> - - * objc/hash.c (hash_delete): Step through the hash nodes - versus using hash_next to increase efficiency. - * objc/archive.c (__objc_finish_read_root_object): Use hash - table instead of list. - -Sun Feb 2 08:25:05 1997 Ovidiu Predescu <ovidiu@net-community.com> - - * objc-act.c (encode_aggregate_within): New function. - (encode_aggregate): Generates encodings for unions similar - to those for structs except surrounded by parenthesis instead - of braces. - -Sun Feb 2 07:15:54 1997 Mat Hostetter (mat@lcs.mit.edu) - - * c-decl.c (start_function): Fix improper installation of last change. - -Sun Feb 2 06:50:55 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (output_scc_di): Add missing CC_STATUS_INIT. - -Sun Feb 2 06:39:55 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (process_init_element): When popping levels, don't - blow up if constructor_max_index not set due to previous error. - - * combine.c (find_split_point, case SET): Fix error in last change. - -Sun Feb 2 06:28:56 1997 Paul Eggert <eggert@twinsun.com> - - * cccp.c (rescan): Insert a space after `.' as well, - to prevent accidental token-pasting (e.g. `.x' -> `.10'). - -Sun Feb 2 06:08:14 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.c (modregno_adjust): Fixed case when reg_renumber invalid. - -Sat Feb 1 19:11:08 1997 J.T. Conklin <jtc@rhino.cygnus.com> - - * m68k.md (movqi): Enable use of clr and st insns on TARGET_5200. - * m68k.c (output_move_simode_const): Likewise. - -Sat Feb 1 18:54:00 1997 Douglas B. Rupp (rupp@gnat.com) - - * gcc.c (process_command): Fix improper use of strncpy. - -Fri Jan 31 15:35:08 1997 Mike Stump <mrs@cygnus.com> - - * libgcc2.c: Remove extern for malloc and realloc. - -Fri Jan 31 17:08:11 1997 Ian Lance Taylor <ian@cygnus.com> - - * local-alloc.c (update_equiv_regs): If register which is equivalent - to some value is only used in one place, and we can't substitute value - for use, move register assignment to just before use. - -Fri Jan 31 15:57:25 1997 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md (idiv,imul,fpmul): Added new functional units for pentiumpro. - - * i386.c (pentiumpro_cost): Added new cost structure for pentiumpro. - (override_options): Set ix86_cost to appropriate cost structure. - -Thu Jan 30 09:34:26 1997 J.T. Conklin <jtc@rhino.cygnus.com> - - * m68k.md (stack adjust peepholes): Use lea instead of - add.w when adding 16 bit constants on all but TARGET_68040. - -Thu Jan 30 08:58:08 1997 Ralf Baechle <ralf@waldorf-gmbh.de> - - * function.c (TRAMPOLINE_ALIGNMENT): Provide default. - (expand_function_end): Use TRAMPOLINE_ALIGNMENT instead - of FUNCTION_BOUNDARY. - * varasm.c (TRAMPOLINE_ALIGNMENT): Provide default. - (assemble_trampoline_template): Use TRAMPOLINE_ALIGNMENT instead - of FUNCTION_BOUNDARY. - -Wed Jan 29 18:16:02 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (REG_CLASS_CONTENTS): Add rap to GENERAL_REGS and its - superclasses. - - * sh.md (movsi_i, movsi_ie, movhi_i, movhi+1): Use type pcload for - immediate operands where appropriate. - (movsf_ie+1): Fail when loading anything but a MEM into - a floating point reguister. - -Wed Jan 29 16:00:31 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * varasm.c (force_const_mem): Set MARK instead of clearing it. - (output_constant_pool): Only mark constant pool if -O. - Check mark flag unconditionally. - (mark_constant_pool): Start by clearing all mark flags. - - * tree.c (copy_node): Clear TREE_ASM_WRITTEN. - - * flow.c (regno_uninitialized): Return 0 if reg is used for args. - -Wed Jan 29 15:23:59 1997 Ian Lance Taylor <ian@cygnus.com> - - * combine.c (try_combine): Clear reg_n_refs if i2dest is not - mentioned in newi2pat. - -Tue Jan 28 16:00:23 1997 Stan Cox (coxs@dg-rtp.dg.com) - - From Robert Lipe <robertl@dgii.com> - * i386/sco5.h (SCO_DEFAULT_ASM_COFF): Remove bytecode stuff. - (ASM_OUTPUT_ASCII): Use .ascii in both ELF and COFF modes. - (ASM_OUTPUT_SECTION_NAME): Handle alternate sections for COFF. - The OpenServer 5.0.0 assembler gives an error for section - names over 6 characters long, so we catch the "obvious" case - and shorten it. - - * m88k.h (ASM_OUTPUT_SECTION_NAME): Undefine; fails - for exception sections. The 88k ABI specifies 'section' - instead of '.section'. - -Mon Jan 27 13:32:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (shl_and_kind): Fix typo. - * sh.md (and_shl_scratch): Fix typo for length 8. - -Mon Jan 27 08:56:03 1997 Jeffrey A Law (law@cygnus.com) - - * fixincludes (sys/time.h): Fix incorrect forward structure - declaration on hpux10.20. - -Mon Jan 27 09:05:35 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (simplify_rtx): Don't do anything with if_then_else_cond - result if both one arm and the input are a comparison. - (simplify_{rtx,if_then_else,logical,shift_const}): Don't - test STORE_FLAG_VALUE with #if; properly test for just sign bit. - (num_sign_bit_copies, if_then_else_cond): Likewise. - * expmed.c (emit_store_flag): Properly test for STORE_FLAG_VALUE - of just sign bit. - * fold-const.c (fold): Don't make COND_EXPR when both expr and - one part are comparisons. - * a29k.h (STORE_FLAG_VALUE): Make negative. - -Fri Jan 24 16:42:26 1997 Ian Lance Taylor <ian@cygnus.com> - - * varasm.c (struct pool_constant): Add mark field. - (force_const_mem): Clear mark field in new constant pool entry. - (output_constant_pool): Call mark_constant_pool. - (mark_constant_pool, mark_constants): New static functions. - -Thu Jan 23 15:04:17 1997 Ian Lance Taylor <ian@cygnus.com> - - * cse.c (COST): Get the right cost for a SUBREG of a register when - truncation is free. - -Thu Jan 23 11:19:40 1997 Mike Stump <mrs@cygnus.com> - - * Makefile.in (objc-headers): Don't try and install the headers if - the objc directory has been removed. - -Wed Jan 22 13:26:25 1997 Brendan Kehoe <brendan@lisa.cygnus.com> - - * i960.c (process_pragma): Call ungetc on the last character - that was read by the while loop, to make sure the parser sees it. - -Tue Jan 21 17:20:30 1997 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (output_toc): Move STRIP_NAME_ENCODING to common - code, so the test for vt's works with -mminimal-toc. - -Tue Jan 21 16:03:35 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (mark_all_temps_used): Set KEEP as well. - -Tue Jan 21 12:16:15 1997 Doug Evans <dje@seba.cygnus.com> - - * stor-layout.c (layout_record): Correct test for whether field spans - its unit of alignment in case where field_size == type_align. - -Mon Jan 20 20:27:54 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips.md (probe): Comment out. - -Sun Jan 19 20:54:45 1997 John F. Carr <jfc@mit.edu> - - * integrate.c (expand_inline_function): Handle a PARALLEL containing - a RETURN the same as a RETURN. - -Sun Jan 19 20:35:28 1997 Pat Rankin <rankin@eql.caltech.edu> - - * vmsconfig.com: Change all hardcoded references of "vax" to - use variable expansion instead. - (arch_indx, arch): New variables. - - * vax.c (not_qsort): Don't declare alloca. - * vax/xm-vms.h: Declare alloca here. - Do most of the VAX C-specific set up for DEC C. - #if DEC C, undefine QSORT_WORKAROUND and qsort. - * make-gcc.com, make-cccp.com, make-cc1.com: Support building - with GNU C vs VAX C vs DEC C from the DCL command line. - -Sun Jan 19 17:20:50 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (movh[if]-1): Corrected. - (movtqf-1): Deleted. - * 1750a.c (add_1_to_mem): Deleted. - (output_operand_address): Added output modifier 'A'. - -Sun Jan 19 17:17:54 1997 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.md (ashrdi_const, ashrdi3): Allow 31 as shift count. - - * m68k.h (CONST_OK_FOR_LETTER_P): Recognize 'N', 'O' and 'P'. - * m68k.md (rotl[shq]i3, strict_low_part rotl): Allow 'N', 'O' - or 'P' operands. - -Sun Jan 19 17:09:17 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md (addsi3): Fix previous change: {add,sub}qw should - be {add,sub}ql. For other uses of {add,sub}q don't check for address - register and always use {add,sub}ql. - -Sun Jan 19 15:05:42 1997 Peter Seebach <seebs@solon.com> - - * c-decl.c (start_decl): Add code for -Wmain. - (c_decode_option): Add -fhosted, -ffreestanding, and -Wmain. - * toplev.c (lang_options): Likewise. - * c-tree.h (warn_main, flag_hosted): New variables. - -Sun Jan 19 14:35:41 1997 Alex Garthwaite (alex@samwise.cis.upenn.edu) - - * fixinc.svr4: Fix problems with symlinks to ".". - -Sun Jan 19 14:21:46 1997 Craig Burley <burley@gnu.ai.mit.edu> - - * loop.c (check_final_value): Handle insns with no luid's. - -Sun Jan 19 08:57:26 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.md (arg_home): Add CLOBBER of MEM and USE of arg regs. - * vms.h (SETUP_INCOMING_VARARGS): Delete duplicate definition. - - * toplev.c (set_float_handler): Set up signal catcher on first call - in case a front end has disabled it. - - * cccp.c, cexp.y: #define __attribute__ to be null if - compiling with GCC older than 2.7, not 2.6. - - * toplev.c (main): If PREFERRED_DEBUGGING_TYPE used and set - to NO_DEBUG, say debugging not supported. - * mips/sni-svr4.h (PREFERRED_DEBUGGING_TYPE): Undefine. - - * i386/xm-cygwin32.h (DIR_SEPARATOR): Define. - - * explow.c (convert_memory_address, case SYMBOL_REF): - Copy CONSTANT_POOL_ADDRESS_P. - * integrate.c (save_constants): Make (address (const ..)) to record - both modes. - (copy_for_inline, copy_rtx_and_substitute, restore_constants): Use - both modes when restoring constant pool entry for ADDRESS. - - * alpha.h (MINIMUM_ATOMIC_ALIGNMENT): New macro. - - * function.c (instantiate_virtual_regs_1, case USE, case CLOBBER): - Properly handle case of shared MEM whose replacement is not valid. - -Sat Jan 18 14:08:31 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (get_unwidened): Don't crash if FIELD_DECL not layed out. - - * varasm.c (const_hash): Treat NON_LVALUE_EXPR like CONVERT_EXPR. - (compare_constant_1, copy_constant, bc_assemble_integer): Likewise. - (const_hash, compare_constant_1): Use switch, not if-then-else. - -Fri Jan 17 17:10:20 1997 Ian Lance Taylor <ian@cygnus.com> - - * mips.h (STACK_POINTER_OFFSET): Don't define. - -Thu Jan 16 14:51:03 1997 Bob Manson <manson@charmed.cygnus.com> - - * cplus-dem.c: Fix indenting; note that this file also lives in - libiberty. - (do_type, case 'M'): Check for a template as well as a class. - -Thu Jan 16 15:08:26 1997 Michael Meissner <meissner@tiktok.cygnus.com> - - * gcc.c (cross_compile): Change to be a char * like all of the - other specs. - (process_command): Change how cross_compile is tested. - (main): Likewise. - (struct spec_list): Merge with the format used by EXTRA_SPECS. - Add name length field to speed up repeated calls to strcmp. Add - flag to say spec was allocated. Add pointer to char * so that - static spec fields can be updated. - (extra_specs): Use struct spec_list as type. - (static_specs): Static list of predefined specs. - (init_specs): New function, initialize the specs list. Link in - the default specs and any specs defined via EXTRA_SPECS. - (set_spec): No longer special case predefined specs. - (process_command,validate_all_switches): Ditto. - (process_command): Call init_specs for -dumpspecs. - (do_spec_1): Use name length field to avoid calling strncmp when - it is going to fail. - (main): Call init_spec. Don't handle EXTRA_SPECS here. - -Thu Jan 16 17:07:54 1997 Eddie C. Dost <ecd@skynet.be> - - * configure: Add sparc-linux{,aout} support. - * ginclude/va-sparc.h: Likewise. - * sparc/linux.h: New file. - * sparc/linux-aout.h: New file. - * sparc/xm-linux.h: New file. - -Thu Jan 16 16:19:13 1997 Jim Wilson <wilson@cygnus.com> - - * configure (sparc-*-aout*): Add libgloss.h to tm_file. - (sparclite-*-coff*): Change "= to =". - -Thu Jan 16 12:53:15 CST 1997 Joel Sherrill <joel@OARcorp.com> - - * rs6000/rtems.h: Change from being sysv4 based to being eabi based. - -Thu Jan 16 13:40:51 1997 Jim Wilson <wilson@cygnus.com> - - * mips.h (LINKER_ENDIAN_SPEC): Define. - (LINK_SPEC): Add linker_endian_spec. - (EXTRA_SPECS): Add linker_endian_spec. - -Thu Jan 16 08:02:13 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (bCC, inverted bCC): Use bCC .+X instead of bCC 0f. - -Wed Jan 15 14:06:28 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload.h (reload_address_base_reg_class): Declare. - (reload_address_index_reg_class): Declare. - * reload1.c (reload_address_base_reg_class): Define. - (reload_address_index_reg_class): Define. - (init_reload): Initialize reload_address_{base,index}_reg_class. - * reload.c (find_reloads_address): Use - reload_address_base_reg_class rather than BASE_REG_CLASS. Use - reload_address_index_reg_class rather than INDEX_REG_CLASS. - (find_reloads_address_1): Likewise. - -Tue Jan 14 15:26:33 1997 Ian Lance Taylor <ian@cygnus.com> - - * reload.c (REGNO_MODE_OK_FOR_BASE_P): Define if not defined. - (REG_MODE_OK_FOR_BASE_P): Define if not defined. - (find_reloads_address): Use REG[NO]_MODE_OK_FOR_BASE_P rather than - REG[NO]_OK_FOR_BASE_P. - (find_reloads_address_1): Likewise. - Add mode parameter; change all callers. - - * reload1.c (eliminate_regs_in_insn): Handle more cases when - eliminating the frame pointer to the hard frame pointer. - - * varasm.c (force_const_mem): Copy a CONST_INT rtx like a CONST rtx. - - * varasm.c (assemble_end_function): Call - output_after_function_constants. - (after_function_constants): New static variable. - (output_after_function_constants): New static function. - (output_constant_def): Check CONSTANT_AFTER_FUNCTION_P. - -Mon Jan 13 16:44:40 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41. - -Sun Jan 12 20:54:01 1997 Jim Wilson <wilson@cygnus.com> - - * libgloss.h (LINK_SPEC): Delete. - (STARTFILE_SPEC): Delete spurious newline. - -Sat Jan 11 00:13:03 1997 Torbjorn Granlund <tege@quiet.matematik.su.se> - - * mips.md (norsi3, nordi3): Use canonical RTL. Prepend `*' to pattern - name. Don't match immediates. - (norsi3_const, nordi3_const): New patterns. - (anddi3, iordi3, xordi3): Test TARGET_64BIT, not mips_isa - in length attribute calculation. - * mips.c (complemented_arith_operand): New function. - (print_operand): Handle `e' for CONST_INT. - * mips.h (PREDICATE_CODES): Add complemented_arith_operand. - -Fri Jan 10 14:11:53 1997 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000/aix41.h (SUBTARGET_SWITCHES): Add threads and pe. - (CPP_SPEC): Add mpe and mthreads cases. - (LIB_SPEC): Add mpe and mthreads cases to variant from rs6000.h. - (STARTFILE_SPEC): Add mpe and mthreads support. - -Fri Jan 10 07:12:26 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * i386/cygwin32.h (LINK_SPEC): New definition. - - * Makefile.in (FLAGS_TO_PASS): Add STAGE_PREFIX, set by configure. - * configure: Initialize exeext. - Update STAGE_PREFIX in Makefile. - - * dwarfout.c (dwarfout_line): Push to LINE_SECTION after calling - lookup_filename. - -Thu Jan 9 12:06:04 1997 Jim Wilson <wilson@cygnus.com> - - * i386.md (addsidi3_2): Add & to operand 0 of alternative 5. - -Thu Jan 9 12:06:04 1997 Stan Cox <coxs@dg-rtp.dg.com> - - From Linus Torvalds and Mat Hostetter: - * i386.c (i386_sext16_if_const): Added to sign extend HImode constant. - (i386_aligned_reg_p): Added to tell if an rtx is aligned. - (i386_cc_probably_useless_p): Don't trust cc bits. - * i386.h (TARGET_ZERO_EXTEND_WITH_AND): Don't do this for p6. - * i386.md (cmpsf_ccfpeq+2): Use SImode test instruction. - (movhi+1): Use movz instead of mov on p6. - (addsi3): Add 128 by subtracting -128. - (zero_extendhisi2): Use SImode move if aligned. - ({add,sub,and,ior,xor}hi3): Likewise. - -Tue Jan 7 16:58:27 1997 Jason Merrill <jason@yorick.cygnus.com> - - * c-parse.in (extension): New rule for __extension__. - (extdef, unary_expr, decl, component_decl): Use it. - -Mon Jan 6 15:44:37 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.c: Now includes regs.h. - ({movcnt,mod}_regno_adjust): Corrected typos. - * 1750a.md (movhi): Corrected case of moving constant to memory. - -Mon Jan 6 08:00:57 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * mips.h: Delete redundant definitions of compiler and library fns. - - * dwarfout.c (type_attribute): Ignore any subtype for now. - - * fold-const.c (operand_equal_p): Rework to consider two - expressions that have embedded identical SAVE_EXPRs as - equivalent; also handle some more cases. - -Sun Jan 5 23:54:34 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (pic_load_label): Fix test for using just an - ldo rather than an addil;ldo sequence to load the label's - address. - -Sun Jan 5 07:26:47 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case COMPONENT_REF): Fix error in last - change: don't suppress conversion if just EXPAND_SUM. - -Sat Jan 4 18:44:01 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.h (struct tree_decl): saved_insns.i is HOST_WIDE_INT. - - * fold-const.c (const_binop): Rework to only make constants in - one place; always use size_int if small enough and of sizetype. - (size_int): Call force_fit_type. - (fold): Avoid ever changing type of input tree. - - * expr.c (get_inner_reference): Fix type error. - (expand_expr, case COMPONENT_REF): Don't convert if modifier - is EXPAND_CONST_ADDRESS, EXPAND_SUM, or EXPAND_INITIALIZER. - * tree.c (staticp, case COMPONENT_REF, BIT_FIELD_REF): Not - static if bitfield. - - * expr.c (expand_expr, case COMPONENT_REF): If taking value - from a CONSTRUCTOR, must mask/sign-extend if bitfield. - (expand_builtin, case BUILT_IN_LONGJMP): Pass type, not IDENTIFIER, - to second arg of RETURN_POPS_ARGS. - - * expr.c (expand_expr, case COND_EXPR): Add additional cases - to "singleton" cases. - * tree.c (integer_pow2): Mask value to width of type. - (tree_log2): New function. - - * expmed.c (store_fixed_bit_field): If not SLOW_UNALIGNED_ACCESS, - treat everything as maximally aligned. - - * combine.c (find_split_point, case SET): If SET_SRC is NE and - STORE_FLAG_VALUE is -1, see if we can convert into NEG of shift. - (force_to_mode, case NE): Make condition stricter. - - * calls.c (emit_library_call_value): Remove redundant check for - outmode != VOIDmode. - -Sat Jan 4 08:12:16 1997 J.T. Conklin <jtc@rhino.cygnus.com> - - * Optimizations from John Vickers (john@rhizik.demon.co.uk): - * m68k.c (output_function_{pro,epi}logue): Use addq/subq when - adjusting stack pointer by small displacements. - * m68k.md (addsi3, addhi3): Use two addqw (or subqw) insns when - adding (or subtracting) small integer constants (8 < N <= 16) to - both address and data registers. - -Sat Jan 4 07:06:07 1997 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * loop.c (basic_induction_var): Return 0 if SUBREG is not a - promoted variable. - -Sat Jan 4 06:22:36 1997 Doug Rupp (rupp@gnat.com) - - * alpha.c (vmskrunch): Try to not chop trailing uppercase letters. - * alpha/vms.h (ENDFILE_SPEC): Use "gnu", not "gnu_cc". - - * cccp.c (PRINTF_PROTO): Use __printf__ in __attribute__, not printf. - * cexp.y (PRINTF_PROTO): Likewise. - -Fri Jan 3 09:01:00 1997 Craig Burley <burley@gnu.ai.mit.edu> - - * alpha.md (cmov): Fix operand numbers in case involving DF target, - DF comparison, and SF source. - -Fri Jan 3 08:19:46 1997 Paul Eggert <eggert@twinsun.com> - - * cpplib.c (macroexpand): Delete any no-reexpansion marker following - identifier at beginning of an argu concatenated with what precedes it. - -Fri Jan 3 07:59:21 1997 Ken Rose (rose@netcom.com) - - * reorg.c (fill_slots_from_thread): Skip moved insn in all three cases. - -Fri Jan 3 07:51:44 1997 Bob Manson <manson@cygnus.com> - - * function.c ({push,pop}_function_context_to): Save and restore - current_function_args_info. - * function.h (struct function): New field args_info. - -Fri Jan 3 06:55:09 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * jump.c (rtx_equal_for_thread_p): Return 0 for floating-point. - - * reload.c (find_reloads): If replaced a PLUS or MULT with a - simple operand, start over again. - - * va-alpha.h: Check for __VMS__, not VMS. - -Thu Jan 2 08:52:51 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure: Finish restoring change of default of objc threads to - "single" for Linux-based GNU systems. - -Mon Dec 30 17:03:46 1996 Jeffrey A Law (law@cygnus.com) - - * pa.c (fmpy_operands): Remove. No longer needed. - (combinable_add, combinable_copy, combinable_fmpy): Likewise. - (combinable_fadd, combineable_fsub): Likewise. - (pa_reorg): Call pa_combine_instructions. - (pa_combine_instructions): Combine instructions to make things - like fmpyadd and fmpysub. - (pa_can_combine_p): Helper function for pa_combine_instructions. - * pa.md (pa_combine_type): New attribute. Set it appropriately - for various insns. - (define_delays): Use a separate define_delay for unconditional - branches. - (fmpyadd, fmpysub peepholes): Remove, no longer needed. - (fmpyadd, fmpysub insns): Add variant with fadd/fsub first, - then the fmpy. - -Mon Dec 30 14:43:51 1996 Jim Wilson <wilson@cygnus.com> - - * reg-stack.c (subst_stack_regs_pat): Set src_note explicitly, instead - of using invalid aggregate initialization. - - * print-tree.c (print_node): Don't try to print nonexistent - TYPE_ATTRIBUTES field of a decl node. - -Mon Dec 30 10:30:25 1996 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> - - * config.sub: Handle hiuxmpp as system type. - -Thu Dec 26 13:33:27 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (init_v4_pic): Explicitly set the length. - -Mon Dec 23 19:39:38 1996 Jim Wilson <wilson@cygnus.com> - - * mips.h (FUNCTION_ARG_REGNO_P): Correct for TARGET_SOFT_FLOAT and - TARGET_FLOAT64 cases. - - * integrate.c (function_cannot_inline_p): Reject function with - PARALLEL result. - (expand_inline_function): Abort if function result not handled. - -Sat Dec 21 04:02:46 1996 Jason Merrill <jason@gerbil.cygnus.com> - - * mips.c (save_restore_insns): Mark large frame setup insns - as frame-related. - (mips_expand_prologue): Likewise. - - * dwarf2out.c (dwarf2out_frame_debug): Support MIPS large frames. - (add_bound_info): Use default lower bounds. - Handle simple variable bounds with a DIE ref. - Don't generate a NULL loc descr. - (add_subscript_info): Always add lower bound. - (gen_formal_parameter_die): Always equate_decl_number_to_die. - (gen_variable_die): Likewise. Don't use the old die for automatic - variables. - -Wed Dec 18 10:23:46 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (notice_update_cc): Enable this code. - * mn10300.h (CC_OVERFLOW_UNUSABLE): Define. - * mn10300.md (tstsi): Use "set_zn_c0" instead of "set" for cc status. - (addsi3 pattern): Break "inc" into two different alternatives - since "inc dn" sets cc0, but "inc an" does not. - (multiply and divide patterns): Fix cc status. - (bCC, inverted bCC): Restore any comparison which needs the - overflow bits when CC_OVERFLOW_UNUSABLE is set. - (zero and sign extensions): Fix cc status. - (movm_store): Likewise. - -Tue Dec 17 15:02:44 1996 Jim Wilson <wilson@cygnus.com> - - * sched.c (update_flow_info): When add REG_DEAD notes for dest of - last insn, add check for global_regs. - -Tue Dec 17 11:07:26 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/win-nt.h (HAS_INIT_SECTION): Delete, so that __main is - called from main. - -Mon Dec 16 15:28:44 1996 Jim Wilson <wilson@cygnus.com> - - * combine.c (nonzero_bits): Ifdef out calls to num_sign_bit_copies. - Add dummy define/undef for num_sign_bit_copies. - - * dwarfout.c (location_or_const_value_attribute, case CONCAT): Add. - - * combine.c (simplify_comparison): Use mode_width as shift count - only if it is less than or equal to HOST_BITS_PER_WIDE_INT. - -Mon Dec 16 10:10:11 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (expand_epilogue): Restore registers in the - "ret" instruction instead of a separate movm instruction. - Support possible stack deallocation in "ret" instruction too. - * mn10300.md (return_internal): Use "ret" instead of "rets"; - restore registers and deallocate stack as needed. - (load_movm): Delete unused pattern. - - * mn10300.h (SMALL_REGISTER_CLASSES): Define. - -Fri Dec 13 14:46:54 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (dect): Rewrite pattern so that it can be combined. - -Fri Dec 13 13:14:51 1996 Ian Lance Taylor <ian@cygnus.com> - - * varasm.c (output_constant_pool): If ASM_OUTPUT_POOL_EPILOGUE is - defined, call it. - -Thu Dec 12 20:04:55 1996 Jason Merrill <jason@yorick.cygnus.com> - - * rtl.h (RTX_FRAME_RELATED_P): New macro. - (struct rtx_def): Add frame_related bitfield. - * final.c (final_scan_insn): Call dwarf2out_frame_debug. - Don't call dwarf2out_begin_function. - (final): Initialize dwarf2out_frame_debug. - * dwarf2out.c (dwarf2out_begin_function): Remove. - (dwarf2out_init): Use INCOMING_RETURN_ADDR_RTX. - (DWARF_CIE_DATA_ALIGNMENT): Generalize. - (DWARF_FRAME_REGNUM): Don't add 1. - (decode_cfi_rtl): Lose. - (dwarf2out_def_cfa): Now takes reg and offset directly. - (reg_save): Likewise. - (dwarf2out_reg_save): Now takes offset. - (initial_return_save): Grok INCOMING_RETURN_ADDR_RTX. - Replaces dwarf2out_return_save. - (dwarf2out_cfi_label): New fn. - (add_fde_cfi): Use it. - (dwarf2out_frame_debug): New fn. - * mips.h (DWARF_FRAME_REGNUM): Tweak r31. - (INCOMING_RETURN_ADDR_RTX): Define. - * mips.c (mips_expand_prologue): Set RTX_FRAME_RELATED_P as needed. - (save_restore_insns): Likewise. - * i386.c (ix86_expand_prologue): Likewise. - * i386.h (INCOMING_RETURN_ADDR_RTX): Define. - (DWARF_FRAME_RETURN_COLUMN): Define. - - * dwarf2out.c (add_AT_long_long): Renamed from add_AT_double fo - clarity. - (print_die): Adjust. - (add_AT_float): New fn. - (add_const_value_attribute): Support fp values. - (size_of_die): Use blocks for long_long and fp values. - (value_format, output_die): Likewise. - (output_loc_operands): Don't support DW_OP_const8?. - -Thu Dec 12 19:49:09 1996 Ian Lance Taylor <ian@cygnus.com> - - * varasm.c (CONSTANT_POOL_BEFORE_FUNCTION): Define if not - defined. - (assemble_start_function): Check CONSTANT_POOL_BEFORE_FUNCTION - to decide whether to call output_constant_pool. - (assemble_end_function): Likewise. - - * calls.c: Check SMALL_REGISTER_CLASSES at run time, not just - compile time. - * combine.c, cse.c, function.c, jump.c, local-alloc.c: Likewise. - * loop.c, reload.c, reload1.c: Likewise. - * dsp16xx.h (SMALL_REGISTER_CLASSES): Define with value. - * h8300.h (SMALL_REGISTER_CLASSES): Likewise. - * i386.h (SMALL_REGISTER_CLASSES): Likewise. - * pdp11.h (SMALL_REGISTER_CLASSES): Likewise. - * sh.h (SMALL_REGISTER_CLASSES): Likewise. - -Thu Dec 12 15:25:39 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (sysv call insns): If flag_pic add @plt suffix. - - * rs6000.md (fix_truncdfsi2_store): Fix offsets > 32k. - - * rs6000/t-ppccomm: New file for common parts of embedded and - System V target Makefile support. - - * rs6000/t-ppcos: New file for System V OS target Makefile - support. - - * rs6000/t-solaris: Delete, merge into rs6000/t-ppcos. - - * rs6000/t-{ppc,ppcgas}: Only keep the multilib specific parts, - moving the rest to rs6000/t-ppccomm. - - * configure (powerpc*-*-*): For embedded and System V - configurations, add rs6000/t-ppccomm. - For GNU/Linux and Solaris, use t-ppcos. - - * ginclude/ppc-asm.h (cr*, f*): Add new macros for register names. - - * rs6000/sol-c0.c (_start): Fix uninitialized data bug. - - * rs6000.md (init_v4_pic): Add @local to call. - (icbi,dcbst,sync,isync): Delete PowerPC cache control insns. - - * rs6000/sysv4.h (ASM_SPEC): On explicit -mcall-solaris, pass - -msolaris to the assembler. - - * rs6000.c (rs6000_sync_trampoline): Delete. - (rs6000_trampoline_template): Aix & System V don't need template now. - (rs6000_initialize_trampoline): For System V, call the function - __trampoline_setup to set up the trampoline. - - * rs6000.h (TRAMPOLINE_TEMPLATE): Delete here. - * rs6000/win-nt.h (TRAMPOLINE_TEMPLATE): Add it here. - - * rs6000/tramp.asm: New file, setup trampolines properly on System - V systems, properly flushing the caches. - -Thu Dec 12 10:53:10 1996 Jeffrey A Law (law@cygnus.com) - - * reorg.c (fill_slots_from_thread): Don't call eligible_for_delay - with an insn with asm operands. - - * expmed.c (emit_store_flag_force): Fix typos/thinkos. - -Thu Dec 12 08:09:20 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * i386.c (i386_return_pops_args): Libcalls ignore TARGET_RTD. - -Thu Dec 12 07:56:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.h (maybe_get_identifier): New declaration. - - * calls.c (emit_library_call): Don't pass VOIDmode to type_for_mode. - - * va-alpha.h: Add definitions for VMS; they differ from Unix. - - * Makefile.in (stamp-objlist): Handle first character of object - file being a digit. - - * 1750a.h (function_arg, {movcnt,mod}_regno_adjust): Add decls. - (branch_or_jump): Likewise. - (FUNCTION_ARG): Remove cast of function_arg result to rtx. - * 1750a.md: Remove unneeded casts to char *. - -Thu Dec 12 05:55:27 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (arm_gen_constant, case [IX]OR): Don't invert constant if - loading into temporary. - -Wed Dec 11 18:57:21 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * toplev.c (rest_of_compilation): Make sure unwinder RTL is saved. - - * collect2.c (write_c_file): Wrap the ctor/dtor lists and fns - with `extern "C" { ... }'. - -Wed Dec 11 17:46:48 1996 John F. Carr <jfc@mit.edu> - - * tree.h (tree_decl): Reorder field declarations to reduce size - on 64 bit machines. - - * combine.c (try_combine): When splitting an insn, check for the - new I2 setting a SUBREG. - -Wed Dec 11 17:00:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of - using "%ld". - (output_prolog): Don't print useless comment for VMS. - - * alpha.c (output_prolog): SIZE is now HOST_WIDE_INT. - * alpha.md (mov[hq]i unnamed): Split up for TARGET_BYTE_OPS and not. - - * function.c (fixup_var_refs_1, case ZERO_EXTRACT): Don't call - fixup_memory_subreg if no longer SUBREG of MEM. - -Wed Dec 11 14:10:48 1996 Jeffrey A Law (law@cygnus.com) - - * mn10300.c: New file for Matsushita MN10300 port. - * mn10300.h, mn10300.md, t-mn10300, xm-mn10300.h: Likewise. - * config.sub: Recognize mn10300 as a basic machine type. - * configure: Similarly. - * ginclude/stdarg.h: mn10300 is little endian. - * ginclude/varargs.h: Likewise. - -Wed Dec 11 09:09:10 1996 Nagai Takayuki <nagai@ics.es.osaka-u.ac.jp> - - * libgcc2.c (cacheflush): Add SONY NEWS-OS 4.2 version. - -Wed Dec 11 09:01:39 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * calls.c (emit_library_call, emit_library_call_value): - Don't pass an identifier node as function type for - library functions, but rather build a function type that - has a return type with the correct mode. - * i386.c (i386_return_pops_args): Don't test for IDENTIFIER_NODE. - * i386/isc.h (obsolete RETURN_POPS_ARGS): Test first argument - for IDENTIFIER_NODE. - * i386/next.h (RETURN_POPS_ARGS): Likewise. - * i386/sco.h (RETURN_POPS_ARGS): Likewise. - * i386/sco5.h (RETURN_POPS_ARGS): Likewise. - * i386/scodbx.h (RETURN_POPS_ARGS): Likewise. - * m68k.h (RETURN_POPS_ARGS): Likewise. - * ns32k.h (RETURN_POPS_ARGS): Likewise. - * pyr.h (RETURN_POPS_ARGS): Likewise. - * gmicro.h (RETURN_POPS_ARGS): Likewise; fix typo. - -Tue Dec 10 17:36:47 1996 J.T. Conklin <jtc@rhino.cygnus.com> - - * Add optimizations from John Vickers (john@rhizik.demon.co.uk) - * m68k.h (TARGET_CPU32): New macro. - * m68k.md (add[hs]i3): Only use two addq.w or subq.w instructions - when adding or subtracting constants 8 < N < 16 on TARGET_CPU32. - Use lea instead of add.w when adding 16 bit constants to address - registers on all but TARGET_68040. - * m68k.c (output_function_{pro,epi}logue): Use lea instead of add.w - when adjusting stack pointer on all but TARGET_68040. - -Tue Dec 10 15:55:23 1996 Ian Lance Taylor <ian@cygnus.com> - - * optabs.c (emit_unop_insn): Treat ZERO_EXTEND like SIGN_EXTEND. - -Tue Dec 10 13:47:24 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * combine.c (combinable_i3pat): Bring back to sync with can_combine_p. - - * sh.h (ADJUST_INSN_LENGTH): Don't break from loop when LOOP_BEG found. - Calculate padding in new variable pad. - -Mon Dec 9 18:00:38 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (output_uleb128): Output value in human-readable comment. - (output_sleb128): Likewise. - (various): Adjust. - (output_call_frame_info): Only output info if it's interesting. - (add_src_coords_attributes): New fn. - (add_name_and_src_coords_attributes): Split out from here. - (gen_enumeration_type_die): Add src coordinates. - (gen_struct_or_union_type_die): Likewise. - (dwarf2out_finish): Call output_call_frame_info for all targets. - -Thu Dec 5 11:25:30 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (add_pure_or_virtual_attribute): Only add - AT_containing_type if -g2 or higher. - - * dwarf2out.c (gen_struct_or_union_type_die): Make sure that - the type for AT_containing_type has been generated. - (gen_decl_die): Likewise. - - * dwarf2out.c (type_tag): Check DECL_IGNORED_P. - (add_pure_or_virtual_attribute): Check DECL_VINDEX instead. - (scope_die_for): Likewise. - * dwarfout.c (type_tag): Likewise. - -Wed Dec 4 22:51:38 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (decode_cfi_rtl): Support getting a CONST_INT. - (dwarf2out_begin_function): Adjust. - (reg_save): Divide offset by the alignment. - (output_cfi): Support having more than one advance_loc. - (output_call_frame_info): Re-initialize current_label. - (dwarf2out_begin_prologue): Initialize current_label to NULL. - (lookup_cfa, lookup_cfa_1): New fns. - (dwarf2out_def_cfa): Call lookup_cfa. - (dwarf2out_finish): Don't generate CIE CFIs. - (dwarf2out_init): Generate them here. - (DWARF_FRAME_RETURN_COLUMN): Use PC_REGNUM. - - (add_pure_or_virtual_attribute): Note virtual context. - (gen_formal_parameter_die): Return the die. - (gen_formal_types_die): Set AT_artificial on `this'. - (gen_subprogram_die): Add AT_accessibility. - (gen_variable_die): Likewise. - (gen_field_die): Likewise. Don't generate location attribute for - union members. - (gen_struct_or_union_type_die): Note where our vtable lives. - (gen_decl_die): Handle anonymous union fields. - (dwarf2out_decl): Always output `bool'. - -Mon Dec 2 03:55:15 1996 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_end_function): Don't call dwarf2out_end_function. - - * dwarf2out.c (output_line_info): Emit special opcodes for each line - entry, even if the line number doesn't change. - (pend_type, output_pending_types_for_scope): New fns. - (gen_struct_or_union_type_die): Use them to defer generating member - dies if we're in the middle of some other context. - (gen_type_die): Still put nested types in the right place. - (dwarf2out_decl): Call output_pending_types_for_scope. - - * dwarf2out.c (dw_fde_struct): Replace end_prologue, begin_epilogue - with current_label. - (DWARF_CIE_INSN_SIZE, DWARF_CIE_SIZE): Remove. - (DWARF_CIE_HEADER_SIZE): The size without the initial insns. - (size_of_cfi): Revert. - (decode_cfi_rtl, add_fde_cfi, dwarf2out_def_cfa, reg_save, - dwarf2out_reg_save, dwarf2out_return_save): New fns. - (dwarf2out_begin_function): Use them to generate CFIs. - (dwarf2out_finish): Use them to generate E CFIs. - Don't set next_fde_offset. - (calc_fde_sizes): Initialize cie_size. - (output_call_frame_info): Don't generate CIE CFIs. - (dwarf2out_end_function): Remove. - - * tree.c (maybe_get_identifier): New fn. - * varasm.c (assemble_name): Use it instead of get_identifier. - -Fri Nov 29 15:13:39 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * jump.c (jump_optimize): Don't move initialization if there is a - label between it and the jump for if (foo) bar++ to bar += (foo !=0) - -Wed Nov 27 16:21:14 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * Remove change of Oct 4. - * i386.h (outer_function_chain): Remove. - (current_function_calls_alloca): Remove. - (rtx_equal_function_value_matters): Remove. - (N_REGS_USED, N_ALLOCATABLE_REGISTERS): Remove. - * i386.md (adddi3_1, subdi3_1): Remove. - (adddi3, subdi3): Revert. - (movsf, movsf_mem, movsf_normal, movdf, movdf_mem, movdf_mem+1): - Likewise. - (movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise. - (adddi3_1, subsidi3, subdi3_1): Likewise. - (addsidi3_1, addsidi3_2, subsidi3): Likewise. - (addsidi3_1, addsidi3_2, adddi3, subsidi3): Disable the problem - reload alternatives. - -Wed Nov 27 16:21:14 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * i386.md (ashldi3_non_const_int, ashrdi3_non_const_int): - Use a hidden branch to handle shifts > 32 bit. - (lshrdi3_non_const_int): Likewise. - (floatdixf2): Don't use unnecessary XFmode operation. - -Wed Nov 27 15:23:41 1996 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (assemble_variable): Don't emit DWARF. - - * toplev.c (rest_of_type_compilation): Don't emit DWARF. - (main): Just let -gdwarf mean DWARF v1; remove -gdwarf-1. - - * dwarfout.c (decl_class_context): New fn. - (output_global_subroutine_die): Fix declaration case. - (output_global_variable_die): Likewise. - (output_type): Note when we are in a class defn. If we're a nested - type and our context hasn't been written, do that. Do early exit - for nested types. - (output_decl): Output the class context for fns and vars. - Don't emit detailed parm info for a fn declaration. - Use TYPE_DECL_IS_STUB, is_redundant_typedef. - (type_ok_for_scope): Support emitting nested types later. - (is_redundant_typedef): New fn. - (TYPE_DECL_IS_STUB): New macro. - (output_compile_unit_die): Check use_gnu_debug_info_extensions. - (output_local_subroutine_die, output_global_subroutine_die, - dwarfout_begin_function, dwarfout_end_function, dwarfout_line, - generate_macinfo_entry, dwarfout_init, dwarfout_finish): Likewise. - - * dwarf2out.c (decl_class_context): Static. - (lookup_type_die): Use TYPE_SYMTAB_POINTER. - (equate_type_number_to_die): Likewise. - (gen_subprogram_die): If we're in class context, it's a decl. - (gen_variable_die): Likewise. - (gen_decl_die): Output the containing type. - (dwarf2out_init): Lose type_die_table code. - -Wed Nov 27 08:30:54 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * Makefile.in (DRIVER_DEFINES): New macro, with the macro - definitions for the driver. - (gcc.o): Make rule use $(DRIVER_DEFINES). - * gcc.c (process_command) [LANG_SPECIFIC_DRIVER]: Call - lang_specific_driver, passing along the addr of FATAL for errors - along with our ARGC and ARGV. - -Wed Nov 27 08:21:13 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.md (iorsi_zexthi_ashl16): New pattern. - (ashrsi_16): New name for old unnamed pattern. - - * objc/misc.c (stdlib.h): Define __USE_FIXED_PROTOTYPES__ before - including stdlib.h. - -Wed Nov 27 08:17:34 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * i386.md (decrement_and_branch_until_zero+[3-8]): Add missing - CC_STATUS_INIT. - (decrement_and_branch_until_zero+[5-8]): Delete redundant assignment. - -Wed Nov 27 07:56:27 1996 J.T. Conklin <jtc@rhino.cygnus.com> - - * m68k.md ({and,ior,xor}si3_internal): Removed !TARGET_5200 from - conditionals now that entire insn is disabled when !TARGET_5200. - -Wed Nov 27 07:52:32 1996 Oliver Kellogg <kellogg@space.otn.dasa.de> - - * 1750a.md (movhi pattern): Fixed MEM to MEM move problem. - -Tue Nov 26 14:50:54 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (move_by_pieces): Abort only if length positive at end. - * function.c (frame_offset, get_frame_size): Make HOST_WIDE_INT. - * function.h (struct function): Make frame_offset be HOST_WIDE_INT. - (get_frame_size): Add definition. - * reload1.c (reload): Make starting_frame_size be HOST_WIDE_INT. - -Mon Nov 25 16:55:14 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (dwarf2out_finish): Don't emit call frame info - for non-MIPS targets. - (is_redundant_typedef): New fn. - (modified_type_die): Refer to typedef DIEs where appropriate. - (gen_typedef_die): Support DECL_ORIGINAL_TYPE. - (gen_type_die): Likewise. Use is_redundant_typedef. - (gen_subprogram_die): Don't force a spec DIE for local class methods. - -Mon Nov 25 15:09:12 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * gcc.c (handle_braces): Rework last change. - -Mon Nov 25 13:49:51 1996 Jim Wilson <wilson@cygnus.com> - - * configure (build_exeext, exeext): New variables. Use sed to insert - build_exeext value into Makefile exeext rule. - (*-*-cygwin32): Set exeext. - * i386/x-cygwin32 (exeext): Delete. - * rs6000/x-cygwin32 (exeext): Delete. - - * dwarf.h (enum dwarf_location_atom): Add OP_MULT. - * dwarfout.c (output_mem_loc_descriptor, case MULT): Add. - * dwarfout2.c (mem_loc_descriptor, case MULT): Add. - - * dwarfout.c (dwarf_fund_type_name, case FT_unsigned_int64): Fix typo. - -Sun Nov 24 21:42:01 1996 J.T. Conklin <jtc@rhino.cygnus.com> - - * m68k.md (andsi3): Changed into define_expand. - (andsi3_internal): Rename from old andsi3, changed condition - to !TARGET_5200. - (andsi2_5200): New insn. - (iorsi3): Change into define_expand. - (iorsi2_internal): Rename from old iorsi3, changed condition - to !TARGET_5200. - (iorsi2_5200): New insn. - (xorsi3): Change into define_expand. - (xorsi2_internal): Rename from old xorsi3, changed condition - to !TARGET_5200. - (xorsi2_5200): New insn. - -Sun Nov 24 21:31:32 1996 John F. Carr <jfc@mit.edu> - - * i386.h (N_ALLOCATABLE_REGISTERS): Remove extra backslash at - end of macro definition. - - * cpplib.c (LOCAL_INCLUDE_DIR): Remove default definition. - (include_defaults_array): Do not use LOCAL_INCLUDE_DIR or - TOOL_INCLUDE_DIR if they are not defined. - * cccp.c: Likewise. - - * Makefile.in (cppmain.o): New rule. - -Sun Nov 24 19:14:50 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * fold-const.c (merge_ranges): In (+,-) case, if lower bounds are - the same the result is always false. - -Sun Nov 24 18:48:31 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-typeck.c (build_indirect_ref): Don't give warning for - dereferencing void * if evaluation is being skipped. - - * c-decl.c (poplevel): Don't call output_inline_function if - DECL_SAVED_INSNS is not set. - - * gcc.c (give_switch): Add new arg, INCLUDE_BLANKS. - (handle_braces): All callers changed. - Add support for new construct: %{S*^}. - -Sun Nov 24 18:44:48 1996 Paul Eggert <eggert@twinsun.com> - - * c-parse.in (unary_expr, expr_no_commas): Increment skip_evaluation - when analyzing an expression that is known not to be evaluated. - (sizeof, alignof): New rules. - * c-tree.h (skip_evaluation): New variable. - * c-common.c (skip_evaluation): Likewise. - (overflow_warning, unsigned_conversion_warning): Don't warn about - potential runtime errors when skipping evaluation. - * c-typeck.c (build_binary_op): Likewise. - (build_conditional_expr): op1 now always nonnull. - -Sun Nov 24 17:06:58 1996 Bernd Schmidt (crux@Pool.Informatik.RWTH-Aachen.DE) - - * toplev.c (rest_of_compilation): Call regscan before each - jump threading pass. - -Sun Nov 24 16:37:18 1996 Dave Love <d.love@dl.ac.uk> - - * configure (objc_thread_file): Set conditionally in each case so - may be overidden with `--enable-objcthreads=posix'. - Change GNU/Linux default to `single'. - -Fri Nov 22 17:53:15 1996 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (assemble_variable): Output DWARF in the third case, too. - - * dwarf2out.c (decls_for_scope): Only add DIEs with no parents to - our scope. - (gen_subroutine_type_die): Parm types go under the fn type DIE. - - * Makefile.in ($(T)crt{begin,end}.o): Move CRTSTUFF_T_CFLAGS after - general flags. - - * mips/t-iris6 (CRTSTUFF_T_CFLAGS): Define. - * mips.c (compute_frame_size): Fix fp_save_offset. - - * dwarf2out.c (new_die): If we get a NULL parent, inc limbo_die_count. - (decls_for_scope): Decrement limbo_die_count as appropriate. - (dwarf2out_finish): Check for good limbo_die_count. - (size_of_cfi): If regno too big for DW_CFA_offset, use offset_extended - instead. - (output_call_frame_info): Add disabled code for specifying ABI. - (dwarf2out_begin_function): Note all saved regs. - - * dwarf2out.c (gen_subprogram_die): Have a DIE for each fn at - toplevel. - (scope_die_for): Only use the NULL for fns and tags. - -Tue Nov 21 15:53:51 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * sh.c (output_stack_adjust): New argument TEMP. Changed all callers. - If the adjust cannot be done with one, but can be done with two - CONST_OK_FOR_I constants, do it that way. - -Thu Nov 21 14:25:55 1996 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Include <stdio.h> in <assert.h> even if not C++ if - stderr needs to be defined. - -Wed Nov 20 15:38:13 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_type_compilation): Do output function-scope tags - for DWARF 2. - * c-decl.c (pushtag): Set TYPE_CONTEXT on the tag. - * toplev.c, varasm.c: s/dwarf2out_file_scope_decl/dwarf2out_decl/g. - * dwarf2out.c (add_prototyped_attribute): Use a value of 1. - (gen_subprogram_die): Support AT_static_link. - (dwarf2out_decl): Rename from dwarf2out_file_scope_decl. - Give nested fns and tags a die_parent of NULL. - (decls_for_scope): Fix the die_parent for nested fns and tags. - (scope_die_for): If we get a context of NULL, just return it. - -Tue Nov 19 18:21:11 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (gen_subprogram_die): Support block extern decls. - (gen_variable_die): Likewise. - (gen_decl_die): Emit block extern function decls. - - * c-decl.c (implicitly_declare): Set DECL_ARTIFICIAL. - -Tue Nov 19 16:50:32 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set - extra_headers to ppc-asm.h. - (powerpc*-{linux,solaris,rtems,vxworks}): Likewise. - (powerpc*-{winnt,pe,cygwin32}): Likewise. - - * rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set here. - -Mon Nov 18 14:51:46 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (DWARF_CIE_INSN_SIZE): New macro. - (DWARF_CIE_HEADER_SIZE): Use it. - (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): New macros. - (output_call_frame_info, dwarf2out_begin_function): Use them. - For the MIPS, output the first CFA insn in the CIE. - * dwarf2.h (enum dwarf_call_reg_usage): Lose. - (dwarf_macinfo_record_type): Fix spelling. - * mips/mips.h (DWARF_FRAME_REGNUM, DWARF_FRAME_RETURN_COLUMN): Define. - - * dwarf2out.c (base_type_die): Just generate the DIEs as needed, - rather than building up some table. - (init_base_type_table): Lose. - (add_subscript_info): Use add_type_attribute. Don't give an upper - bound for an array of unknown size. - (gen_unspecified_parameters_die): Remove DWARF-1 kludge. - (dwarf2out_init): Lose call to init_base_type_table. - (is_c_family, is_fortran): New fns. - (gen_compile_unit_die): Recognize GNU F77. - (gen_array_type_die): Use AT_declaration for an array of unknown size. - (modified_type_die): Take TYPE_MAIN_VARIANT before passing it - to build_type_variant, so we ignore named variants. - (dwarf2out_file_scope_decl): Don't generate DIEs for built-in structs, - either; they will be emitted if they are used. - From wilson: - (gen_array_type_die): Force the element type out first on IRIX 6. - -Sun Nov 17 20:23:11 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (get_inner_reference): Fix error in previous change. - -Sat Nov 16 06:08:27 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * emit-rtl.c (operand_subword): Avoid confusion if sizeof (float) - is less than a full word. - - * alpha.h (MASK_BYTE_OPS): Now define as 1024. - * alpha/vms.h (TARGET_DEFAULT): Use symbolic values. - - * expr.c (get_inner_reference): Add new arg PALIGNMENT and compute it. - (expand_assignment, do_jump): Pass new arg to get_inner_reference. - (expand_expr, case COMPONENT_REF): Likewise. - * fold-const.c (optimize_bit_field_compare, decode_field_reference): - Likewise. - * tree.h (get_inner_reference): Add new arg. - - * Add support for Alpha/VMS, mostly from - Klaus Kaempf (kkaempf@progis.de) - * configure (alpha-dec-vms*): New target. - * alpha.c (override_options): Handle VAX format floating-point. - (print_operand, case ',', '-'): New cases. - (alpha_builtin_saveregs): Handle VMS convention. - (alpha_sa_{mask,size}, alpha_pv_save_size, alpha_using_fp): - New versions for VMS. - (output_{pro,epi}logue, function_arg): Likewise. - (direct_return): Never true on VMS. - (check_float_value): Return 0 for VMS. - (vmskrunch, alpha_{need,write}_linkage): New function. - * alpha.h ({MASK,TARGET}_{OPEN_VMS,FLOAT_VAX}): New macros. - (TARGET_SWITCHES): Add float-vax and float-ieee. - ({FUNCTION,LIBCALL}_VALUE, FUNCTION_VALUE_REGNO_P): R1 and R33 - are also return registers. - (ASM_OUTPUT_DOUBLE): Support both floating-point formats. - (PRINT_OPERAND_FUNCT_VALID_P): Add ',' and '-'. - * alpha.md ({div,mod}[sd]i3): Only for VMS. - (fp operations): Add modifiers for multiple floating-point formats. - (call patterns): Handle new calling sequence for VMS. - (tablejump): Make new pattern for VMS. - (nonlocal_goto_receiver, arg_home): New patterns. - * alpha/t-vms, alpha/vms.h, alpha/xm-vms.h: New files. - -Fri Nov 15 17:38:20 1996 Doug Evans <dje@seba.cygnus.com> - - * sdbout.c (current_file): New global. - (PUT_SDB_SRC_FILE): New PUT_SDB_FOO macro. - (sdbout_init): Initialize current_file ifdef MIPS_DEBUGGING_INFO. - (sdbout_{start_new,resume_previous}_source_file): New functions. - * toplev.c (debug_{start,end}_source_file): Call them if SDB_DEBUG. - * mips.h (PUT_SDB_SRC_FILE): Define. - -Fri Nov 15 16:11:25 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarfout.c (dwarfout_line): Don't emit line number info for - functions outside of .text. - -Fri Nov 15 15:52:42 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386/386bsd.h (COMMENT_BEGIN): Delete. - * i386/freebsd.h (COMMENT_BEGIN): Likewise. - * i386/netbsd.h (COMMENT_BEGIN): Likewise. - * i386/unix.h (COMMENT_BEGIN): Likewise. - -Fri Nov 15 13:22:42 1996 Jim Wilson <wilson@cygnus.com> - - * fold-const.c (unextend): Rewrite type conversions to avoid overflow. - -Fri Nov 15 12:11:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (try_combine): Properly copy an rtvec. - * emit-rtl.c (gen_rtvec_vv): New function. - (copy_rtx_if_shared): Call it. - * integrate.c (copy_for_inline): Likewise. - * reload1.c (eliminate_regs): Likewise. - * rtl.h (gen_rtvec_vv): Declare. - * genattrtab.c (simplify_cond): Make TESTS an array of rtunions. - * genextract.c (main): Use loop, not bcopy, to set recog_operands - from an rtvec. - * rtl.c (rtvec_alloc): Clear rtwint instead of rtvec. - - * machmode.h (HOST_PTR_PRINTF): Handle char * wider than long. - (HOST_WIDE_INT_PRINT_{DEC,UNSIGNED,HEX,DOUBLE_HEX}): New macros. - * final.c (asm_fprintf): Use "ll" prefix for a long long HOST_WIDE_INT. - (output_{asm_insn,addr_const}): Use HOST_WIDE_INT_PRINT_*. - * print-tree.c (print_node{,_brief}, case INTEGER_CST): Likewise. - * print-rtl.c (print_rtx, case 'w'): Use HOST_WIDE_INT_PRINT_DEC. - - * unroll.c (iteration_info): Fix code so that it knows iteration_var - is a HOST_WIDE_INT, not a long. - - * fold-const.c (operand_equal_p): Do comparison with REAL_VALUES_EQUAL. - (make_range): Properly decide when to get TREE_TYPE of arg0. - Handle EXP being an INTEGER_CST at end. - (fold_range_test): Handle return of 0 from make_range. - (fold, case TRUTH_AND_EXPR): Handle first arg of 0. - (fold, case TRUTH_OR_EXPR): Handle first arg of 1. - - * c-common.c (decl_attributes, case A_ALIAS): Add missing parens. - -Fri Nov 15 06:37:54 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * fold-const.c (range_binop): Set SNG1 to zero if ARG1 is a - not a lower or upper bound. - -Thu Nov 14 23:08:25 1996 Jason Merrill <jason@yorick.cygnus.com> - - * flags.h (debug_info_type): Add DWARF2_DEBUG. - * toplev.c (main): Support DWARF2_DEBUG. Add -gdwarf-1, -gdwarf-2 - options. Check debug level after choosing type. - (debug_{start,end}_source_file, debug_{define,undef}): New functions. - (compile_file): Support dwarf2 separately from dwarf1. - (rest_of_type_compilation, rest_of_compilation): Likewise. - * final.c (final_start_function): Likewise. - (final_end_function, final_scan_insn, output_source_line): Likewise. - * varasm.c (assemble_variable): Likewise. - * dwarfout.c: Don't check DWARF_VERSION. - * dwarf2out.c: s/dwarfout/dwarf2out/g. Check DWARF2_DEBUGGING_INFO. - * c-lex.c (check_newline): Use debug_* instead of calling *out - functions directly. - * svr4.h (DWARF2_DEBUGGING_INFO): Define. - * mips/iris6.h (PREFERRED_DEBUGGING_TYPE): DWARF2_DEBUG. - (DWARF2_DEBUGGING_INFO): Define instead of DWARF_DEBUGGING_INFO. - (LINK_SPEC): Pass -w through. - * mips.h (PREFERRED_DEBUGGING_TYPE): Don't check `len'. - -Thu Nov 14 17:25:47 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.c (dosize): Don't clobber static chain reg if needed by - current function. - -Wed Nov 13 17:05:19 1996 Jason Merrill <jason@yorick.cygnus.com> - - * Makefile.in (stage?-start): Keep a copy of EXTRA_MULTILIB_PARTS - in the build directory. - -Tue Nov 12 23:17:17 1996 Jeffrey A Law (law@cygnus.com) - - * pa.c (print_operand, case 'Y'): Fix comparisons to handle - NaNs properly in all cases. - -Tue Nov 12 18:47:24 1996 Jim Wilson <wilson@cygnus.com> - - * expr.c (emit_group_store): For REG case, call gen_lowpart if - modes are different. - -Tue Nov 12 18:24:40 1996 Doug Rupp (rupp@gnat.com) - - * gcc.c (exit): If VMS, define as __posix_exit. - (option_map): Add define-macro and undefine-macro. - -Tue Nov 12 17:55:10 1996 Torbjorn Granlund <tege@tege.pdc.kth.se> - - * alpha.c (input_operand): If TARGET_BYTE_OPS accept HImode and QImode. - * alpha.h (MASK_BYTE_OPS): New define. - (TARGET_BYTE_OPS): New define. - (TARGET_SWITCHES): Handle -mbyte. - (LOAD_EXTEND_OP): When MODE is not SImode, return ZERO_EXTEND. - * alpha.md (zero_extendqidi2): Handle TARGET_BYTE_OPS. - (zero_extend{hidi,qisi,hisi}2): Likewise. - (extendqisi2): Use extendqidi2x if TARGET_BYTE_OPS. - (extendqidi2): Likewise. - (extendqidi2x): New pattern. - (extendhisi2): Use extendhidi2x if TARGET_BYTE_OPS. - (extendhidi2): Likewise. - (extendhidi2x): New pattern. - (movhi): Handle TARGET_BYTE_OPS. - (movhi matcher): Output ldwu and stw. - (movqi): Handle TARGET_BYTE_OPS. - (movqi matcher): Output ldbu and stb. - -Tue Nov 12 16:53:37 1996 Rob Savoye <rob@chinadoll.cygnus.com> - - * configure (hppa1.1-pro*, i960-*-coff*,m68k-*-aout*): Add libgloss.h. - (m68k-*-coff*, mips*-*-elf*, sparc*-*-aout*, sparc*-*-coff*): Likewise. - * config/libgloss.h: New file. - -Tue Nov 12 16:21:45 1996 Joern Rennecke <amylaar@cygnus.com> - - * jump.c (jump_optimize): Fix bug in Sep 23 change. - -Tue Nov 12 16:15:31 1996 Andrew Cagney (cagney@tpgi.com.au) - - * global.c (prune_references): Add missing symmetic CONFLICTP call. - -Tue Nov 12 14:34:40 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.c (output_function_{pro,epi}logue): Save and restore - fp-registers only if TARGET_68881. - - * m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Prefix labels with "L%". - (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - - * m68k/mot3300.h (TARGET_DEFAULT): Use MASK_68040_ALSO, not MASK_68040. - * m68k/next.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise. - - * fixproto (std_files): Add sys/socket.h. - - * m68k.md (movqi): Emit 'st' for INTVAL & 255 == 255, not INTVAL == -1. - (seq,sne,sgt,sgtu,slt,sltu,sge,sgeu,sle,sleu): Allow "m" as operand 0. - -Tue Nov 12 14:17:45 1996 Paul Eggert <eggert@twinsun.com> - - * c-decl.c (grokdeclarator): Generate a warning if -Wimplicit, - unless a warning was already generated by -Wreturn-type. - -Tue Nov 12 14:11:02 1996 Pat Rankin <rankin@eql.caltech.edu> - - * Make qsort callback routines conform to the ANSI/ISO standard. - * c-decl.c (field_decl_cmp): Use `const void *' arguments. - * global.c (allocno_compare): Likewise. - * reload1.c (hard_reg_use_compare, compare_spill_regs): Likewise. - (reload_reg_class_lower): Likewise. - * stupid.c (stupid_reg_compare): Likewise. - * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise. - (QTY_CMP_PRI, QTY_CMP_SUGG): New macros. - (qty_compare_1, qty_sugg_compare_1): Use them. - -Tue Nov 12 13:20:25 1996 Jim Wilson <wilson@cygnus.com> - - * fold-const.c (merge_ranges): In (+,-) case, treat subset specially - if lower bounds are the same. - -Tue Nov 12 13:10:01 1996 J.T. Conklin <jtc@cygnus.com> - - * m68k.md (addsi3): If TARGET_5200, use the lea insn to add small - constants to address registers. - (negsi2): Change into define_expand. - (negsi2_internal): Rename from old negsi2, changed condition - to !TARGET_5200. - (negsi2_5200): New insn. - (one_cmplsi2): Change into define_expand. - (one_cmplsi2_internal): Rename from old one_cmplsi2, changed - condition to !TARGET_5200. - (one_cmplsi2_5200): New insn. - (negdi2_5200): Corrected constraints. - (one_cmpldi2): Changed condition to !TARGET_5200. - - * m68k.c (m68k_align_loops_string, m68k_align_jumps_string): New vars. - (m68k_align_funcs_string, m68k_align_loops): Likewise. - (m68k_align_jumps, m68k_align_funcs): Likewise. - (override_options): New function. - * m68k.h (TARGET_OPTIONS): Added alignment options. - (MAX_CODE_ALIGN, ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): - New macros. - (FUNCTION_BOUNDARY): Use value derrived from m68k_align_funcs - instead of constant. - - * m68k.c (output_function_{pro,epi}logue): Fix typo in last change. - -Tue Nov 12 09:26:51 1996 Torbjorn Granlund <tege@wombat.gnu.ai.mit.edu> - - * i386.md (parallel inc/dec and branch-if-zero/nonzero): Use `+' in - constraint. - -Mon Nov 11 15:12:22 1996 Jason Merrill <jason@yorick.cygnus.com> - - * libgcc2.c: Also define WEAK_ALIAS if ASM_OUTPUT_WEAK_ALIAS. - * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Define. - * varasm.c (assemble_alias): Use ASM_OUTPUT_WEAK_ALIAS. - - * dwarf2out.c (TYPE_USED_FOR_FUNCTION): Lose. - (gen_compile_unit_die): Only append -g with -g2 or better. - (scope_die_for): Don't emit any type info with -g1. - (gen_subprogram_die): Likewise. - (gen_decl_die): Likewise. - (dwarfout_file_scope_decl): Likewise. - (dwarfout_init): Likewise. - - * mips/iris6.h (TYPE_ASM_OP): Define. - (SIZE_ASM_OP): Define. - (ASM_WEAKEN_LABEL): Define. - (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_ALIGNED_LOCAL): Don't use ASM_DECLARE_OBJECT_NAME. - (ASM_OUTPUT_ALIGNED_BSS): Define. - (ASM_DECLARE_OBJECT_NAME): Redefine to emit .size directive. - (ASM_FINISH_DECLARE_OBJECT): Define. - (ASM_OUTPUT_DEF): Don't define. - -Fri Nov 8 20:38:51 1996 Jim Wilson <wilson@cygnus.com> - - * function.c (expand_function_end): Handle BLKmode structures returned - in registers. - -Fri Nov 8 20:27:07 1996 Jason Merrill <jason@yorick.cygnus.com> - - * stor-layout.c (layout_record): Check for VAR_DECL instead - of TREE_STATIC. - - * varasm.c (assemble_variable): Do write out DWARF for - record-scope variables. - * toplev.c (rest_of_type_compilation): Do write out DWARF for - record-scope types. - - * dwarf2out.c (gen_enumeration_type_die): Set TREE_ASM_WRITTEN on a - complete enum type. - (gen_struct_or_union_type_die): Don't recurse between nested classes. - (gen_type_die): Write out nested classes by writing out their context. - -Fri Nov 8 17:40:27 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * emit-rtl.c (change_address): If MEMREF isn't changing, - return the old one. - - * expr.c (expand_assignment): Remove bogus resetting of alignment - to inner alignment. - (expand_expr, case COMPONENT_REF): Likewise. - -Fri Nov 8 16:31:31 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * reg-stack.c (compare_for_stack_reg, subst_stack_regs_pat): - Add support for float conditional move. - -Thu Nov 7 07:46:07 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_record): Treat constant size as variable if - it overflows. - * fold-const.c (const_binop, case *_DIV_EXPR): Don't do special - sizetype case if a constant overflows. - (size_binop): Use integer_{zero,one}p instead of explicit test. - * tree.c (integer_{zero,one,all_ones,pow2}p, real_{zero,one,two}p): - Return 0 if TREE_CONSTANT_OVERFLOW. - -Wed Nov 6 17:53:33 1996 Torbjorn Granlund <tege@wombat.gnu.ai.mit.edu> - - * i386.md (parallel inc and branch-if-zero/nonzero): Add two - new pattern variants. Change incrementing pattern to use incl/jnz. - -Wed Nov 6 09:46:10 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (override_options): Set defaults for -march and -mcpu. - (output_float_compare): Use cc_status.flags to mark if this - comparison can be done with fcomi. - (output_fp_cc0_set): A conditional move may be in a PARALLEL. - - * i386.h (CC_FCOMI): Define - - * i386.md (sgt,sgtu,sge,sle,bgt,blt,bge,ble): Use CC_FCOMI - (movsicc_1,movhicc_1): Use correct size suffix. - (movsfcc_1,movdfcc_1): Cleanup default move case. - -Wed Nov 6 09:46:10 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * i386.h (HARD_REGNO_MODE_OK): If long double isn't XFmode, can't - allow XFmode. - -Tue Nov 5 22:49:56 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (define_split for and_shl_scratch): - Use rtx_equal_p on the operands to find out which alternative is used. - * sh.c (gen_shl_and): Try to generate shorter constant for and. - -Mon Nov 4 19:13:52 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: Clean up unused variables. - Use ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL, shorten label names. - (loc_descriptor): Use reg_loc_descriptor. - (TYPE_DECL_IS_STUB): New macro. - (gen_decl_die): Use it. - (dwarfout_file_scope_decl): Use it. - -Mon Nov 4 10:23:46 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro - and structures inside #ifndef __VA_PPC_H__ to allow reinclusion. - - * rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or TARGET_TOC. - (LEGITIMATE_LO_SUM_ADDRESS_P, LEGITIMIZE_ADDRESS): Likewise. - - * rs6000.md (movsi): Don't call elf_{high,low} if -fpic. - - * rs6000/cygwin32.h (STARTFILE_SPEC): Eliminate empty %{}. - -Sun Nov 3 15:56:35 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (TARGET_TOC): Plain -fpic does not require a TOC. - ({MINIMAL_TOC,CONST}_SECTION_ASM_OP): -fpic should be treated like - -mrelocatable in these cases. - (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. - (ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section. - -Fri Nov 1 19:57:13 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (based_loc_descr): Use DBX_REGISTER_NUMBER. The - "frame base" is just the frame or stack reg without an offset. - (gen_subprogram_die): Likewise. - (dwarfout_begin_function): Use DBX_REGISTER_NUMBER. - -Fri Nov 1 09:50:05 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (make_range): Don't merge unsigned case with range - containing upper bound; instead merge just with zero and convert - a range with no upper bound to opposite one with no lower bound. - (merge_ranges): In (+,-) case, don't treat subset specially if - the upper bounds are the same; fix typo in others case here. - -Thu Oct 31 20:12:13 1996 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (make_range, case PLUS_EXPR): Correct - normalization of an unsigned range that wraps around zero. - -Thu Oct 31 21:06:37 1996 Jason Merrill <jason@yorick.cygnus.com> - - * mips/t-iris6 (EXTRA_MULTILIB_PARTS): Define. - (EXTRA_PARTS): Don't define. - - * dwarf2out.c (gen_struct_or_union_type_die): Use AT_specification - for nested types defined outside their containing class. Lose - is_complete. - (gen_enumeration_type_die): Lose is_complete. - (gen_type_die): Lose is_complete. - (add_name_and_src_coords_attributes): Tweak. - (gen_subroutine_type_die): Use scope_die_for. - (gen_ptr_to_mbr_type_die): Likewise. - (gen_subprogram_die): Support AT_artificial. - (gen_variable_die): Likewise. - (dwarfout_file_scope_decl): Lose finalizing. - -Thu Oct 31 18:43:18 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * pa.c (emit_move_sequence): Refine previous change. - -Thu Oct 31 13:25:32 1996 Jim Wilson <wilson@cygnus.com> - - * crtstuff.c: Put HAS_INIT_SECTION ifdefs around Irix6 support. - - * tree.c (decl_function_context): Handle QUAL_UNION_TYPE. - - * calls.c (expand_call): Disable special handling for const calls - that return a PARALLEL rtx. - * expr.c (expand_expr, case CONSTRUCTOR): Don't use a PARALLEL - target. - -Thu Oct 31 11:45:00 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/t-{ppcgas,ppc,solaris} (EXTRA_MULTILIB_PARTS): Add - {e,s}crt{i,n,0}.o. - ({stmp,install}-crt): Delete, no longer used. - ({,INSTALL_}LIBGCC): Remove {stmp,install}-crt rule. - -Thu Oct 31 02:49:58 1996 Torbjorn Granlund <tege@nada.kth.se> - - * i386.md (parallel inc and branch-if-zero/nonzero): - Check for -1, not zero. - -Wed Oct 30 15:50:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (range_binop): Strip NOPs from result and - verify it's an INTEGER_CST. - (make_range, case BIT_NOT_EXPR): Fix typo in constant for PLUS_EXPR. - - * stor-layout.c (layout_record): Use HOST_WIDE_INT for size. - - * stmt.c (expand_asm_operands): Disallow matching constraints - on output and validate the numbers on inputs. - -Tue Oct 29 16:21:59 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * gcc.c (process_command,main): Process -specs=file and -specs - file after reading the main specs file to allow the user to - override the default. - (DEFAULT_WORD_SWITCH_TAKES_ARG): Add specs to list. - (option_map): Likewise. - -Tue Oct 29 15:49:18 1996 Jason Merrill <jason@yorick.cygnus.com> - - * Makefile.in (stmp-multilib): Pass $flags to s-m-sub in - MULTILIB_CFLAGS. - (stmp-multilib-sub): Build EXTRA_MULTILIB_PARTS. - ($(T)crt*.o): Add $(T), lose stamp-crt rule, use MULTILIB_CFLAGS. - (install-multilib): Install EXTRA_MULTILIB_PARTS. - -Mon Oct 28 20:09:39 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (shl_sext_ext): Don't accept simple left/right shift variant. - * sh.c (EXT_SHIFT_SIGNED): New macro. - (shl_sext_kind, gen_shl_sext): try left shift - sign extend - - left shift - arithmetic right shift in case 2. - -Mon Oct 28 14:55:42 1996 Jim Wilson <wilson@cygnus.com> - - * configure (sh-*-*): Set float_format to sh. - * config/float-sh.h: New file. - -Mon Oct 28 14:26:08 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips/mips.h (RTX_COSTS): Add cases for SIGN_EXTEND and ZERO_EXTEND. - - * m68k/lb1sf68.asm: Change # to IMM in udivsi3 __mcf5200__. - - * combine.c (simplify_rtx): Add some optimizations for TRUNCATE. - (expand_compound_operation): Add some optimizations for ZERO_EXTEND. - -Mon Oct 28 14:11:20 1996 Gavin Koch <gavin@cygnus.com> - - * varasm.c (make_decl_rtl,assemble_variable): - Allow named sections for uninitialized variables. - -Mon Oct 28 13:08:51 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * pa.c (emit_move_sequence): If reload in progress, replace - reference to pseudo with reference to corresponding MEM. - - * c-typeck.c ({un,}signed_type): If can't do anything, call - signed_or_unsigned_type. - (signed_or_unsigned_type): If already right signedness, return. - -Mon Oct 28 13:05:26 1996 Stephen Williams (steve@icarus.com) - - * i960.h: Add specification for -Jx types. - * i960/t-960bare: Include multilib support for Jx types. - -Mon Oct 28 10:06:00 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/t-{ppc{,gas},solaris} (install-crt): Depend on - installdirs, not install-dir. - - * rs6000/sysv4.h (TARGET_TOC): -fpic does not use a TOC area. - -Mon Oct 28 09:07:42 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (delete_output_reload): Don't use delete_insn - when deleting all stores into a replaced pseudo. - - * sh.md (movsf_ieq, movsf_ie): Merged the former into the latter. - Changed matching define_split appropriately. - (movsf): Changed appropriately. - (reload_insf) Define. - * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Define. - -Mon Oct 28 08:38:23 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * dsp16xx.h (ASM_OUTPUT_BYTE): Adjust definition to actual type of - VALUE, which is HOST_WIDE_INT. - -Mon Oct 28 07:36:07 1996 Ulrich Drepper <drepper@cygnus.com> - - * ginclude/stddef.h: Make sure file is processed if some of the - known __need_* macros is defined. - -Sun Oct 27 21:37:59 1996 J.T. Conklin <jtc@cygnus.com> - - * m68k.c (output_function_prologue): Adjust SP then use movmel with - plain address indirect mode for TARGET_5200. - (output_function_epilogue): Disable moveml and use several movel's - instead for TARGET_5200. - (output_function_{pro,epi}logue): Use lea instruction to adjust - stack pointer for short displacements for TARGET_5200. - -Sun Oct 27 15:27:45 1996 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (merge_ranges): Fix thinko/typo. - -Sat Oct 26 22:07:04 1996 Ian Lance Taylor <ian@cygnus.com> - - * expr.c (convert_modes): Before returning a const_double for a - large unsigned value, zero extend an integer value if necessary. - -Sat Oct 26 15:24:55 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k/x-mot3300 (XCFLAGS): Disable native assembler's jump - optimization for expr.o and cp/decl.o. - -Sat Oct 26 14:04:09 1996 Ben Harris <bjh21@cam.ac.uk> - - * m68k.c (output_function_prologue): Add REGISTER_PREFIX to stack - probe instruction. - -Sat Oct 26 13:59:05 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * explow.c (allocate_dynamic_stack_space): Delete reference to - nonexistant macro ALLOCATE_OUTGOING_ARGS. - - * next.h (CPP_PREDEFINES): Add -D_NEXT_SOURCE. - -Sat Oct 26 13:50:49 1996 Mark Mitchell (mitchell@centerline.com) - - * configure (i486-ncr-sysv4*): Use i386/sysv4gdb if stabs and gas. - -Sat Oct 26 12:20:35 1996 John F. Carr <jfc@mit.edu> - - * configure: Support --with-cpu=* for SPARC. Or target default - values instead of adding them. - * sparc.c (cpu_default): Add entries for v8 and supersparc. - * sparc.h: Define TARGET_CPU values for v8 and supersparc. - -Sat Oct 26 11:38:01 1996 Kamil Iskra <iskra@student.uci.agh.edu.pl> - - * collect2.c (dump_file): Call fclose for opened files. - -Sat Oct 26 11:29:29 1996 J"orn Rennecke (amylaar@cygnus.co.uk) - - * jump.c (jump_optimize): Fix second error in last change. - - * svr3.h: Fix typo which makes comment text be non-comment. - -Fri Oct 25 16:18:39 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/t-winnt (LIBGCC1): Don't build libgcc1. - (EXTRA_PARTS): Build crti.o, crtn.o. - (stmp-crt): Remove old multilib support. - -Thu Oct 24 15:09:14 1996 Jim Wilson <wilson@cygnus.com> - - * fold-const.c (make_range, case PLUS_EXPR): Normalize an unsigned - range that wraps around 0. - -Thu Oct 24 14:37:17 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.md: Change predicates for 64 bit arithmetic operations - so that they accept sign extended registers as operands. - (extendsidi2): Accept hi or lo as input. - * mips.c (movdi_operand, se_register_operand, - se_reg_or_0_operand, se_uns_arith_operand, se_arith_operand, - se_nonmemory_operand, se_nonimmediate_operand): New functions. - (mips_move_2words): Handle a SIGN_EXTEND source. - (print_operand): Handle a SIGN_EXTEND operand. - (mips_secondary_reload_class): Handle a SIGN_EXTEND rtx. - * mips.h: Declare new mips.c functions. - (PREDICATE_CODES): Add new functions. - -Thu Oct 24 07:41:14 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (make_range, comparison cases): When making range - for unsigned to merge in, use full range. - - * stor-layout.c (GET_MODE_ALIGNMENT): Delete definition; duplicate. - -Thu Oct 24 07:28:53 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (emit_reload_insns): Check for second_reloadreg - in SECONDARY_OUTPUT_RELOAD_CLASS / PRESERVE_DEATH_INFO_REGNO_P case. - -Wed Oct 23 14:27:43 1996 Mike Stump <mrs@cygnus.com> - - * crtstuff.c (__do_global_dtors_aux): Allow finalization code to - be run more than once. - * libgcc2.c (__do_global_dtors): Ditto. - -Wed Oct 23 20:42:23 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * sh.c (dump_table): handle SFmode and DFmode. - (broken_move): handle simple PARALLEL. - (machine_dependent_reorg, pc-relative move generation): Likewise. - * sh.h (CONST_DOUBLE_OK_FOR_LETTER_P): always true for 'F' . - (LEGITIMATE_CONSTANT_P): accept SFmode and DFmode. - * sh.md (movdf_k, movsf_i, movsf_ie): new alternative for - pc-relative load. - (movsf_ieq): new define_insn with matching define_split. - (movsf): use it where appropriate. - (consttable_sf, consttable_df): new define_insns. - -Wed Oct 23 17:48:32 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * svr4.h (MAKE_DECL_ONE_ONLY): Fix typo in use of macro parameter. - -Wed Oct 23 17:46:13 1996 Pat Rankin <rankin@eql.caltech.edu> - - * cexp.y (yylex): Cast string literal to U_CHAR* for lookup() call. - -Wed Oct 23 14:50:04 1996 Jason Merrill <jason@yorick.cygnus.com> - - * stmt.c (expand_return): Expand cleanups. Make sure we get pseudo - and provide target in non-BLKmode case. Get proper return type of fn. - -Wed Oct 23 14:16:06 1996 Ian Lance Taylor <ian@cygnus.com> - - * reload.c (find_reloads): Handle any unary operator. - * recog.c (constrain_operands): Likewise. - - * mips.md: Remove extendsidi2 define_expand. - Rename extendsidi2_internal define_insn to extendsidi2, and add a - register to register case. - -Wed Oct 23 14:08:31 1996 Jim Wilson <wilson@cygnus.com> - - * a29k.c (a29k_makes_calls): New global variable. - (compute_regstack_size, a29k_compute_reg_names): New functions. - (output_prolog): Much code moved to two new functions. - Use a29k_makes_calls instead of makes_calls. - * a29k.h (ASM_DECLARE_FUNCTION_NAME): Call a29k_compute_reg_names. - - * calls.c (expand_call): In target code, move PARALLEL case above - target != case. - - * mips.c (block_move_load_store, block_move_sequence): Delete. - (block_move_loop): New parameter orig_dest. Call change_address to - create new MEM instead of gen_rtx. - (expand_block_move): New local orig_dest. Pass it to block_move_loop. - Call change_address to create new MEM instead of gen_rtx. - -Wed Oct 23 10:30:32 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (combine_givs): When combining a DEST_REG giv with its - only use, always set the benefit of the combined giv to that of - the DEST_REG giv. - - * emit-rtl (gen_lowpart_common): When converting a floating - point value into an integer, use WORD as (first) word. - - * combine.c (can_combine_p): When SMALL_REGISTER_CLASSES is defined, - avoid substituting a return register into I3. - - * optabs.c (emit_libcall_block): Before adding an REG_EQUAL note, - check that it will really apply to a single instruction. - (expand_binop, expand_fix): Likewise. - -Wed Oct 23 10:20:52 1996 Stephen L Moshier (moshier@world.std.com) - - * real.c (exact_real_inverse): New function, if REAL_ARITHMETIC. - * fold-const.c (exact_real_inverse): Likewise, if no REAL_ARITHMETIC. - (fold, case RDIV_EXPR): Turn divide by constant into multiplication - by the reciprocal, if optimizing and result is exact. - * real.h (exact_real_inverse): Declare. - -Wed Oct 23 00:12:52 1996 Torbjorn Granlund <tege@nada.kth.se> - - * expr.h (emit_store_flag_force): Declare. - -Tue Oct 22 18:32:20 1996 Jim Wilson <wilson@cygnus.com> - - * unroll.c (unroll_loop): Always reject loops with unbalanced blocks. - -Tue Oct 22 18:27:06 1996 Ian Lance Taylor <ian@cygnus.com> - - * config/fp-bit.c (float_to_usi): Correct thinko: avoid negative shift. - (df_to_sf): Remember any discarded nonzero bits in the low order - guard bit. - - * ginclude/va-mips.h: Add support for -mips1 and -msoft-float when - using -mabi=eabi. - * mips/abi64.h (SETUP_INCOMING_VARARGS): When MIPS EABI, handle - TARGET_SINGLE_FLOAT or ! TARGET_FLOAT64 correctly when saving - floating point registers to the stack. - * mips/mips.c (mips_function_value): If TARGET_SINGLE_FLOAT, use - GP_RETURN for floating point types larger than 4 bytes. - -Tue Oct 22 09:43:49 1996 Geoffrey Noer <noer@cygnus.com> - - * rs6000/cygwin32.h (LIB_SPEC): Add -lkernel32 all of the time, - and {user,gdi,comdlg}32 if -mwindows. - -Tue Oct 22 05:24:05 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (scope_die_for): Don't skip lexical blocks. - (gen_lexical_block_die): Call push_decl_scope. - (gen_subprogram_die): Never refer to the function symbol. - (dwarfout_begin_prologue): Likewise. - -Mon Oct 21 20:22:49 1996 Torbjorn Granlund <tege@nada.kth.se> - - * expmed.c (emit_store_flag_force): New function. - * optabs.c (expand_binop): Use it. - - * expr.c (do_store_flag): Don't check if target is 0 in code - emitting store flag as compare-branch. - -Mon Oct 21 17:58:33 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.c (override_options): Correct typo (MASK_64BIT should - have been TARGET_64BIT). - -Mon Oct 21 13:58:54 1996 Jim Wilson <wilson@cygnus.com> - - * unroll.c (loop_comparison_code): New static variable. - (unroll_loop): Add check for loop_comparison_code - (loop_iterations): Set loop_comparison_code. - - * sh.c (gen_shl_sext): Add missing parameter to shl_sext_kind call. - - * mips.h (INITIAL_FRAME_POINTER_OFFSET): Delete. - - * loop.c (strength_reduce): Add check for ! bl->reversed to - auto_inc_opt code. - -Mon Oct 21 12:28:15 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * jump.c (jump_optimize): Fix bug in Oct. 14 change. - -Mon Oct 21 07:59:16 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_expr): Disable optimization of using convert - if exp's type is a subtype. - - * c-typeck.c (build_array_ref): If -Wchar-subscripts, also warn - in case when pointer is being indexed. - -Mon Oct 21 07:39:31 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * jump.c (jump_optimize): Use emit_store_flag even if branches - are cheap, if the store is even cheaper. - -Sun Oct 20 20:01:09 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload1.c (reload_reg_free_p, reloads_conflict): RELOAD_OTHER - and RELOAD_FOR_OTHER_ADDRESS conflict. - - * i386.md (ffs[sh]i2): Add missing CC_STATUS_INIT. - -Fri Oct 18 13:32:13 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (float conversion insns): Generate correct code - if the bit 15 of rs6000_fpmem_offset is non-zero. - -Thu Oct 17 23:22:03 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarfout.c (data_member_location_attribute): Support binfos. - (output_inheritance_die): New fn. - (output_type): Use it. - - * dwarf2out.c (value_format): Split out from... - (output_value_format): Here. - (build_abbrev_table): Use value_format. - (size_of_locs): New fn. - (size_of_die): Don't assume a loc needs a 2-byte length. - (value_format, output_die): Likewise. - -Thu Oct 17 14:46:14 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.c (override_options): In 64 bit EABI mode, set TARGET_LONG64. - -Thu Oct 17 11:34:51 1996 Bob Manson <manson@cygnus.com> - - * expr.c (do_jump): Conditionalize cleanups for the COND_EXPR case, - similarly to the way TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR are - handled. - -Thu Oct 17 01:20:16 1996 Jim Wilson <wilson@cygnus.com> - - * m68k.h (MASK_68040_ALSO): New macro. - (TARGET_SWITCHES): Option -m68020-40 includes MASK_68040_ALSO. - -Wed Oct 16 16:25:38 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (scope_die_for): Also support decls, add asserts. - (modified_type_die): Modified types all go under comp_unit_die. - (add_type_attribute): Just pass context_die through. - (various): Revert useless lookup_type_die change. - (gen_subprogram_die): Use scope_die_for. Call push_decl_scope. - (gen_inlined_subroutine_die): Call push_decl_scope. - (gen_struct_or_union_type_die): Likewise. - (gen_decl_die): Don't call push_decl_scope. - - * mips/iris6.h (*_SPEC): Replace enumeration of !mabi= with !mabi*. - (ASM_OUTPUT_{CON,DE}STRUCTOR): Enable. - (STARTFILE_SPEC): Support -mips4, -shared. - (ENDFILE_SPEC): Likewise. - (LIB_SPEC): Support -shared, avoid warning 84. - (LIBGCC_SPEC): Define. - (LINK_SPEC): Support -shared, remove -woff 84. - * mips/t-iris6 (EXTRA_PARTS): Add crtstuff. - * crtstuff.c: Support Irix 6. - * configure: Don't use collect2 for Irix 6. - * libgcc2.c (__main): Don't use any of this stuff if HAS_INIT_SECTION. - -Wed Oct 16 11:46:37 1996 Mike Stump <mrs@cygnus.com> - - * elxsi.h (CHECK_FLOAT_VALUE): Removed. - -Wed Oct 16 14:19:38 1996 Jim Wilson <wilson@cygnus.com> - - * iris6.h (CPP_PREDEFINES): Add -D_LONGLONG. - (CPP_SPECS): Remove -D_LONGLONG. - -Wed Oct 16 03:34:42 1996 Torbjorn Granlund <tege@nada.kth.se> - - * i386.md (parallel inc/dec and branch-if-zero/nonzero): New patterns. - -Tue Oct 15 22:28:11 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.h (enum mips_abi_type): Add ABI_EABI. - (CPP_SPEC): Define __mips_soft_float if -msoft-float, and - __mips_eabi if -mabi=eabi. - (INITIAL_ELIMINATION_OFFSET, CUMULATIVE_ARGS, - GO_IF_LEGITIMATE_ADDRESS, CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT, - LEGITIMIZE_ADDRESS): Add support for MIPS EABI. - * mips/abi64.h (STACK_BOUNDARY, MIPS_STACK_ALIGN, - FUNCTION_ARG_PADDING, RETURN_IN_MEMORY, SETUP_INCOMING_VARARGS): - Add support for MIPS EABI. - (FUNCTION_ARG_PASS_BY_REFERENCE): Define. - (FUNCTION_ARG_CALLEE_COPIES): Define. - * mips.c (mips_const_double_ok, function_arg_advance, - function_arg, function_arg_partial_nregs, override_options, - compute_frame_size): Add support for MIPS EABI. - (function_arg_pass_by_reference): New function. - * ginclude/va-mips.h: Add support for MIPS EABI. - -Tue Oct 15 19:10:08 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_type_compilation): Don't write out - DWARF for function-scope types yet. - (compile_file): Do send vars with no RTL to the DWARF code. - -Tue Oct 15 17:54:43 1996 Doug Evans <dje@cygnus.com> - - * loop.c (strength_reduce): Avoid taking PATTERN of a label. - -Tue Oct 15 16:52:33 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips/iris6.h: (SUBTARGET_CPP_SIZE_SPEC): Define. - (SUBTARGET_CPP_SPEC): Remove definitions of __SIZE_TYPE__ and - __PTRDIFF_TYPE__, now in SUBTARGET_CPP_SIZE_SPEC. - -Tue Oct 15 11:19:17 1996 Lee Iverson <leei@Canada.AI.SRI.COM> - - * mips.h (CPP_SPEC): Restore -D_LANGUAGE_C for Objective C. - -Mon Oct 14 18:03:35 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (gen_decl_die): Do generate dies for classes with -g1. - (dwarfout_file_scope_decl): Likewise. - -Mon Oct 14 16:31:44 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * jump.c (jump_optimize): Check for if (...) { x = a; goto l; } x = b; - -Mon Oct 14 14:19:49 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (modified_type_die): Don't bother with AT_address_class. - (add_data_member_location_attribute): Handle getting a binfo. - (add_location_or_const_value_attribute): Handle a decl with no RTL. - (add_pure_or_virtual_attribute): Add AT_vtable_elem_location. - (add_name_and_src_coords_attributes): Only use DECL_ASSEMBLER_NAME - for staticp things. - (gen_subprogram_die): Set up AT_inline for abstract decls. - (gen_inheritance_die): New fn. - (gen_member_die): Also emit info for base classes. - -Sat Oct 12 00:07:00 1996 Doug Evans <dje@cygnus.com> - - * fold-const.c (make_range): Handle NULL operand 0 like in BIND_EXPRs. - -Fri Oct 11 15:42:22 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_compilation): If we did a - save_for_inline_copying, reset DECL_ABSTRACT_ORIGIN for the - function when we're done. - - * toplev.c (main): DWARF works with C++ now. - - * dwarf2out.c (gen_subprogram_die): Disable MIPS_AT_has_inline - support for now. - -Fri Oct 11 14:31:10 1996 Torbjorn Granlund <tege@nada.kth.se> - - * dwarfout.c: (output_bound_representation): Fix typo in prototype. - -Fri Oct 11 12:19:21 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.h ({,SUBTARGET_}MIPS_AS_ASM_SPEC): Define. - ({GAS,TARGET,SUBTARGET}_ASM_SPEC): Define. - (SUBTARGET_ASM_{OPTIMIZING,DEBUGGING}_SPEC): Define. - (ASM_SPEC): Rewrite to use above specs. - (SUBTARGET_CPP{,_SIZE}_SPEC): Define. - (CPP_SPEC): Use above specs. Don't define _LANGUAGE_C if C++ or - Objective C. - ({,SUBTARGET_}EXTRA_SPECS): Define. - * mips/dec-bsd.h ({CPP,ASM}_SPEC): Don't define. - * mips/dec-osf1.h (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SIZE_SPEC): Define. - * mips/elf64.h (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - * mips/gnu.h (TARGET_DEFAULT): Define. - (ASM_SPEC): Don't define. - * mips/iris3.h (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - * mips/iris4loser.h (ASM_SPEC): Don't define. - (SUBTARGET_MIPS_AS_ASM_SPEC): Define. - (SUBTARGET_ASM_OPTIMIZING_SPEC): Define. - * mips/iris5.h (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - * mips/iris6.h ({CPP,ASM}_SPEC): Don't define. - (SUBTARGET_{CPP,ASM,MIPS_AS_ASM,ASM_DEBUGGING}_SPEC): Define. - * mips/netbsd.h ({CPP,ASM}_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - * mips/osfrose.h ({CPP,ASM,ASM_FINAL}_SPEC): Don't define. - (SUBTARGET_CPP{,_SIZE}_SPEC): Define. - * mips/sni-svr4.h (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SIZE_SPEC): Define. - -Thu Oct 10 17:58:49 1996 Jason Merrill <jason@yorick.cygnus.com> - - * mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Define. - (DWARF_OFFSET_SIZE): Define. - - * dwarf2out.c (most everywhere): Support SGI/MIPS -mabi=64 by fixing - code which assumed pointers are 4 bytes long, parameterizing many - sizes on DWARF_OFFSET_SIZE and using DELTA instead of DELTA4, - DATA instead of DATA4, FORM_ref instead of FORM_ref4. - (DWARF_ROUND, UNALIGNED_DOUBLE_INT_ASM_OP): New macros. - (UNALIGNED_WORD_ASM_OP, ASM_OUTPUT_DWARF_DELTA): Likewise. - (ASM_OUTPUT_DWARF_DATA, DW_FORM_data, DW_FORM_ref): New macros. - (gen_variable_die): Only equate_decl_number_to_die if - decl is TREE_STATIC. - (get_AT): Fix thinko. - - * dwarf2out.c (constant_size): New fn. - (size_of_die): Use it instead of assuming 4 bytes. - (output_value_format, output_die): Likewise. - (build_abbrev_table): Need new abbrev if size of constant differs. - (dwarf_attr_name): Add new SGI/MIPS extensions. - (gen_subprogram_die): Support DW_AT_MIPS_has_inlines. - (gen_inlined_subroutine_die): Likewise. - -Thu Oct 10 16:38:58 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.md (mov[sd]fcc): Use register_operand, not reg_or_0_operand, - for source predicates. - -Thu Oct 10 15:19:38 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (floatsidf2_load): For large stack frames, do not - generate an illegal memory reference. - (movdi, movdf define_splits): Fix code so that it works for either - big or little endian hosts generating code for either big or - little endian targets. - - (from Jim Wilson) - * rs6000.c (rs6000_save_toc_p): Delete global variable. - (rs6000_{save,restore}_machine_status): Do not save/restore it. - (rs6000_init_expanders): Do not initialize it. - (rs6000_stack_info): Always create TOC save space. - - * rs6000.md (NT indirect call insns): Do not set - rs6000_save_toc_p. - - * rs6000.h (rs6000_save_toc_p): Delete declaration. - -Wed Oct 9 18:06:54 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.h (EMPTY_FIELD_BOUNDARY): Define as 32. - * mips/abi64.h (EMPTY_FIELD_BOUNDARY): Don't define. - - * mips/abi64.h (TARGET_DEFAULT, TARGET_LONG64, CPP_PREDEFINES, - CPP_SPEC): Move from here... - * mips/iris6.h: ...to here. - -Wed Oct 9 16:43:51 1996 Jim Wilson <wilson@cygnus.com> - - * configure (i[3456]86-dg-dgux): Use install-headers-cpio. - - * expr.c (store_constructor): Delete unnecessary increment. - -Wed Oct 9 16:29:22 1996 Gavin Koch <gavin@cetus.cygnus.com> - - * cccp.c (do_include): Treat ENOTDIR like ENOENT when an open fails. - -Wed Oct 9 16:26:57 1996 Paul Eggert <eggert@twinsun.com> - - * gcc.c (default_compilers): -ansi no longer implies -$ to cpp. - * c-lex.c (yylex): Treat `$' just like `_', except issue a - diagnostic if !dollars_in_ident or if pedantic. - * c-decl.c (dollars_in_ident): DOLLARS_IN_IDENTIFIERS is now Boolean. - (c_decode_option): -fdollars-in-identifiers is now independent - of -ansi, of -traditional, and of DOLLARS_IN_IDENTIFIERS. - * cexp.y (initialize_random_junk): Ignore DOLLARS_IN_IDENTIFIERS. - * cccp.c (dollars_in_ident): Remove; replaced by is_idchar['$']. - (main): Initialize is_idchar and is_idstart directly when given -$. - Ignore DOLLARS_IN_IDENTIFIERS. - (rescan): Diagnose $ in identifier if pedantic. - (initialize_char_syntax): Assume $ is allowed in identifier; - `main' will change this if -$ is given. - * cpplib.h (DOLLARS_IN_IDENTIFIERS): Remove. - * cpplib.c (cpp_options_init): Ignore DOLLARS_IN_IDENTIFIERS. - (parse_name): Diagnose $ in identifier if pedantic. - (cpp_handle_options): -traditional no longer messes with - dollars_in_ident. - * i386/dgux.h, m68k/apollo68.h (DOLLARS_IN_IDENTIFIERS): Remove. - * m88k.h, mips.h, nextstep.h, pa.h (DOLLARS_IN_IDENTIFIERS): Remove. - * vax/ultrix.h, vax/vms.h (DOLLARS_IN_IDENTIFIERS): Remove. - * convex.h (OVERRIDE_OPTIONS): Don't need to set - dollars_in_ident any more, since -ansi doesn't change it. - -Wed Oct 9 07:35:47 1996 Doug Evans <dje@cygnus.com> - - * Allow prefix attributes in more places. - * c-parse.in: Update number of shift/reduce conflicts. - ({typed_declspecs,reserved_declspecs,declmods}_no_prefix_attr): New. - (current_declspecs): Initialize to NULL_TREE. - (fndef): Pass current_declspecs, not $1, to start_function. - (old_style_parm_decls): Renamed from xdecls. - (datadecl, declmods): Add references to new rules. - (setspecs): Call split_specs_attrs. - (absdcl1): Remove case with setattrs. - * c-common.c (split_specs_attrs): New function. - -Wed Oct 9 05:48:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sdbout.c: Include defaults.h. - * Makefile.in (sdbout.o): Make dependency list match included files. - - * fold-const.c (range_test): Function deleted. - (range_binop, make_range, build_range_check): New functions. - (merge_ranges, fold_range_test): Likewise. - (fold_truthop): No longer call range_test. - (fold, case TRUTH_{AND,OR}{,IF}_EXPR): Call fold_range_test. - -Tue Oct 8 22:03:32 1996 Torbjorn Granlund <tege@nada.kth.se> - - * configure: Set cpu_type for pyramid. - -Tue Oct 8 21:54:04 1996 Jason Merrill <jason@yorick.cygnus.com> - - * final.c (final_start_function): Call dwarfout_begin_prologue. - - * dwarf2out.c (pubname_*, arange_*): New data for .debug_pubnames - and .debug_aranges sections. - (add_pubname): New fn. - (size_of_pubnames): Reimplement. - (output_pubnames): Likewise. - (add_arange): New fn. - (size_of_aranges): Include function sections. - (output_aranges): Likewise. - (gen_variable_die): Call add_pubname. - (add_name_and_src_coords_attributes): Use DECL_ASSEMBLER_NAME for now. - (decl_start_label): Renamed from function_start_label. - (gen_subprogram_die): If weak or one_only, use a local label for - AT_low_pc. Call add_pubname and add_arange. - (dwarfout_begin_prologue): New fn. Start up FDE here. - (dwarfout_begin_function): Not here. - (get_AT): Split out. Look in specification and abstract_origin DIEs. - (get_AT_low_pc, get_AT_string, get_AT_flag, get_AT_unsigned, - get_AT_hi_pc): Use it. - (dwarfout_finish): Variables can produce pubnames, too. - -Tue Oct 8 19:35:40 1996 Torbjorn Granlund <tege@nada.kth.se> - - * m88k/dgux.h (CPP_SPEC): Avoid newline in the string. - - * final.c (final): Update insn_current_address before calling - final_scan_insn. - -Tue Oct 8 17:52:02 1996 Jim Wilson <wilson@cygnus.com> - - * unroll.c (unroll_loops): Set local_regno only if set_dominates_use - returns true. - (set_dominates_use): New function. - -Tue Oct 8 16:01:37 1996 Doug Evans <dje@cygnus.com> - - * c-typeck.c (decl_constant_value): Delete test for ! TREE_PUBLIC. - -Tue Oct 8 10:36:44 1996 Jeffrey A Law (law@cygnus.com) - - * pa.c (hppa_legitimize_address): Remove test code accidentally left - in during last change. - -Mon Oct 7 19:55:02 1996 Jim Wilson <wilson@cygnus.com> - - * sched.c (schedule_block): Before scheduling, add code to make all - call used regs not fixed or global live when we see a CALL_INSN. - During scheduling, change existing code to use same test. - - * varasm.c (bss_section): Delete unused parameters. - -Mon Oct 7 16:24:21 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2.h: Add new SGI/MIPS attributes. - - * dwarf2out.c (*_separate_line_info_*): Parallel line number - information for functions defined in sections other than .text. - (size_of_line_info): Support it. - (output_line_info, dwarfout_line): Likewise. - (gen_compile_unit_die): Don't add high/low_pc or stmt_list - attributes here. - (dwarfout_finish): Add them here if appropriate. - (remove_AT): Free removed attribute properly. - (gen_type_die): Don't assume a nested type is complete. - (dwarfout_finish): Don't emit line info if it would be empty. - - * dwarfout.c (output_block): Don't emit a DIE for a body block. - (output_decls_for_scope): Don't increment next_block_number for the - outer block. - (output_decl): Start from the outer block, not - the first inner block since there can be more than one in C++. - (type_tag): Handle C++ TYPE_NAME. - (output_type): Fix handling of TYPE_METHODS. - (output_decl): Don't output a DIE for artificial typedefs. - -Mon Oct 7 15:47:29 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (movdi define_splits): Fix previous change to work - on both little and big endian hosts. - -Sun Oct 6 16:52:34 1996 Jeffrey A Law (law@cygnus.com) - - * pa.h (combinable_fsub): Don't return without a value. - -Sun Oct 6 14:05:39 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (mov{df,di} define_splits): Use split_double to - properly split CONST_DOUBLEs. - (movdi): Likewise. - -Sat Oct 5 08:43:14 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * i386/cygwin32.h (LIB_SPEC): Add support for -mwindows. - Always pass -lkernel32. - (LIBGCC_SPEC): Don't delete. - (STARTFILE_SPEC): Remove always-true conditionalization. - (LONG_DOUBLE_TYPE_SIZE): Use default. - -Fri Oct 4 17:22:53 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_type_compilation): Don't emit DWARF for member - types of a type we haven't emitted yet. - (compile_file): Still emit DWARF for pending tagged types. - - * final.c (final_scan_insn): Do emit DWARF labels for level 1 blocks. - - * dwarf2out.c (gen_subprogram_die): Start from the outer block, not - the first inner block since there can be more than one in C++. - (gen_lexical_block_die): Keep track of the block depth. - (gen_block_die): Don't emit a DIE for a body block. - (gen_inlined_subroutine_die): Don't emit anything for an - abstract instance. - (decls_for_scope): Don't increment next_block_number for the - outer block. - -Fri Oct 4 15:27:55 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (PRESERVE_DEATH_INFO_REGNO_P): Define. - - * sh.c (sfunc_uses_reg): New function. - (noncall_uses_reg, machine_dependent_reorg, final_prescan_insn): - Handle special functions like function calls for purposes of relaxing. - (noncall_uses_reg): Added some missing cases of registers - being used in non-call instructions. - -Fri Oct 4 10:51:40 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c: Tear out backchaining brain damage. - (remove_AT, remove_children): New functions. - (modified_type_die): Call gen_type_die instead of backchaining. - (gen_subprogram_die): Don't generate a new specification DIE for - member functions defined in the class; use the declaration DIE instead. - (gen_struct_or_union_type_die): Support DW_AT_declaration. - (gen_type_die): Don't set TREE_ASM_WRITTEN on incomplete structs. - (gen_decl_die): Revert previous change; it's much simpler to emit - the class from rest_of_type_compilation. - -Fri Oct 4 09:54:21 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * Make sure we have enough registers for the insns we recognize. - * i386.h (flag_omit_frame_pointer, outer_function_chain): Declare. - (current_function_calls_alloca): Likewise - (rtx_equal_function_value_matters): Likewise - (N_REGS_USED, N_ALLOCATABLE_REGISTERS): Define. - - * i386.md (adddi3_1, subdi3_1): Insns renamed from adddi3 and subdi3; - added missing earlyclobbers. - (adddi3_1): Removed duplicates from commutativity. - (adddi3, subdi3): New define_expands. - (movsf, movsf_mem, movsf_normal, movdf, movdf_mem , movdf_mem+1): Take - number of used vs. available registers into account. - (movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise. - (adddi3_1, subsidi3, subdi3_1): Likewise. - (addsidi3_1, addsidi3_2, subsidi3): Need no generate function. - - * i386.c (asm_output_function_prefix): Don't use - ASM_DECLARE_FUNCTION_NAME if it is not defined. - -Fri Oct 4 07:01:55 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_decl): Don't turn off DECL_BIT_FIELD - if DECL's alignment is less than its type. - -Thu Oct 3 19:42:30 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (rest_of_type_compilation): Also do this for DWARF. - (compile_file): Don't try to write out DWARF for vars with no RTL. - -Thu Oct 3 18:31:28 1996 Doug Evans <dje@cygnus.com> - - * ginclude/{stdarg.h,varargs.h}: Use #include "", not #include <>. - -Wed Oct 2 17:29:53 1996 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Add a hack to the big sed script to work around a - bug in the sed implementation on HP/UX 10.20. - -Wed Oct 2 16:53:56 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (modified_type_die): Don't generate redundant DIEs. - (gen_{array,pointer,reference,ptr_to_mbr}_type_die): Likewise. - (gen_{subroutine,string,set}_type_die): Likewise. - - * dwarf2out.c: Undo text_end_label, add_src_coords changes. - (addr_const_to_string): Fix typos. - (decl_class_context, get_AT_unsigned): New functions. - (gen_subprogram_die): Only emit src coords info for a specification - if they changed. - (gen_variable_die): Support DW_AT_declaration and DW_AT_specification. - (gen_decl_die): Avoid generating redundant DIEs for member functions - and variables. - -Wed Oct 2 11:22:50 1996 Jeffrey A Law (law@cygnus.com) - - * pa.h (EXTRA_CONSTRAINT): Loosen conditions for match of - 'Q' and 'T' while reload is running. - * pa.c (hppa_legitimize_address): Rework to generate more - indexed and scaled indexed addressing. - * pa.md (scaled indexed store): Add define_splits to undo - pessimizations created by hppa_legitimize_address for integer stores. - - * pa.c (remove_useless_addtr_insns): New function. - (pa_reorg): Delete code to remove useless add,tr insns. - Instead call remove_useless_addtr_insns. - (output_function_prologue): Call remove_useless_addtr_insns - to catch any add,tr insns created by reorg. - - * pa.c (secondary_reload_class): Remove duplicate/useless code. - - * pa.h (PARSE_LDD_OUTPUT): Handle output from hpux10.20 "chatr". - -Tue Oct 1 17:23:32 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dwarf2out.c (text_end_label): New static. - (size_of_line_info): The final entry is smaller. - (output_aranges): Use TEXT_SECTION instead of TEXT_BEGIN_LABEL and - text_end_label instead of TEXT_END_LABEL. - (gen_compile_unit_die): Likewise. - (output_line_info): Likewise. Use a fixed advance for the last entry. - (dwarfout_init): Don't output starting labels. - (dwarfout_finish): Set up text_end_label. Don't output ending labels. - - (add_pure_or_virtual_attribute): Don't say pure virtual for now. - (type_tag): Handle C++ TYPE_NAME. - (gen_formal_parameter_die): Support DW_AT_artificial. - (gen_formal_types_die): Do emit the type for 'this'. - (gen_member_die): Fix handling of TYPE_METHODS. - (gen_decl_die): Do output a DIE for member function declarations. - Don't output a DIE for artificial typedefs. - - (add_member_attribute): Remove, not in DWARF-II. - (gen_array_type_die): Remove ref to add_member_attribute. - (gen_set_type_die, gen_entry_point_die, gen_enumeration_type_die, - gen_subprogram_die, gen_variable_die, gen_field_die, - gen_pointer_type_die, gen_reference_type_die, gen_ptr_to_mbr_type_die, - gen_string_type_die, gen_struct_or_union_type_die, - gen_subroutine_type_die, gen_typedef_die): Likewise. - - (get_AT_flag): New fn. - (add_src_coords_attributes): Split out... - (add_name_and_src_coords_attributes): From here. - (gen_subprogram_die): Support DW_AT_declaration and - DW_AT_specification. - - (gen_compile_unit_die): Don't emit full pathname for source file; - comment claimed that SGI required it, but they don't emit it either. - Append -g to producer rather than replacing it. - -Tue Oct 1 14:19:23 1996 Jim Wilson <wilson@cygnus.com> - - * gcc.c (used_arg): When call xmalloc for mswitches, pass 1 if - n_switches is zero. - -Mon Sep 30 17:46:26 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (gen_shl_and, gen_shl_sext): Use gen_lowpart to - generate rtx in the appropriate mode for zero/sign-extension. - Don't generate a zero bit shift. - (gen_shl_sext) Directly use gen_ashift instead of gen_ashrsi3. - -Mon Sep 30 17:17:56 1996 Ian Lance Taylor <ian@cygnus.com> - - * fixinc.svr4: In math.h, redefine exception to __math_exception - for C++, to avoid conflict with <exception>. - * fixincludes: Likewise. - Fix check for class in math.h to not match fp_class. - -Mon Sep 30 17:15:19 1996 Jim Wilson <wilson@cygnus.com> - - * iris6.h (ASM_SPEC): Add -w. - (STARTFILE_SPEC): Add mips3 to n32 pathnames. - Add -L/usr/lib32/mips for n32 cases. - (ENDFILE_SPEC): Add mips3 to n32 pathnames. - -Mon Sep 30 13:20:31 1996 Ian Lance Taylor <ian@cygnus.com> - - * genopinit.c (gen_insn): Look through the modes in reverse order, - to avoid stopping early on CC when EXTRA_CC_MODES is used. - - * fixincludes: Add extern "C" to <sys/mman.h> on HP/UX. - -Sun Sep 29 12:39:18 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * c-typeck.c (pointer_diff): Do not do default conversions when - doing the minus expression, in case restype is a short type. - -Sun Sep 29 11:22:10 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (build_complex): Add new argument, TYPE. - * tree.h (build_complex): Likewise. - * c-lex.c (yylex): Add new arg, TYPE, to call to build_complex. - * fold-const.c (const_binop): Likewise. - (fold, case CONJ_EXPR, COMPLEX_EXPR): Likewise. - * varasm.c (copy_constant, case COMPLEX_CST): Likewise. - * expr.c (expand_expr, case COMPONENT_REF): Don't try to directly - load a complex. - * recog.c (register_operand): Don't reject subreg of complex mode. - * emit-rtl.c (mark_user_reg): New function. - * function.c (assign_parms): Use it. - * stmt.c (expand_decl): Likewise, and simplify code. - - * tree.c (contains_placeholder): Return 1 for PLACEHOLDER_EXPR. - - * expr.c (store_expr): memset/bzero gets ptr_mode, not Pmode. - - * stmt.c (expand_asm_operands): Fix errors in previous patches. - - * x-linux: Simplify, but ensure headers aren't changed. - - * getpwd.c: No longer include direct.h for _WIN32. - - * configure (i[3456]86-*-isc*): Remove bogus echo. - (m68k-apple-aux*): a-ux.h renamed from aux.h. - (CC): Escape "$" char in "no-symlink" case for bash/cygwin32 bug. - - * Makefile.in (installdirs): Renamed from install-dir. - Create $(prefix) and $(exec_prefix) if doesn't exist. - (install-float): Reflect new name for installdirs. - (install-{common,info,man,libgcc,multilib,libobjc}): Likewise. - (install-{include-dir,assert-h,collect2}): Likewise. - - * reload1.c (gen_reload): Handle SUBREG in PLUS specially too. - Change calls to emit_move_insn to recursive calls. - - * stmt.c (fixup_gotos): When running undefined labels, if no cleanup - actions for this block, don't clear BEFORE_JUMP. - -Fri Sep 27 13:48:21 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * c-decl.c (init_decl_processing): Create short int types before - creating size_t in case a machine description needs to use - unsigned short for size_t. - -Fri Sep 27 12:28:54 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * gcc.c (do_spec_1): Allow -A in %[Spec]. - - * i386.h (CPP_CPU_SPEC): New. Added for defining the submodel. - - * i386.c (asm_output_function_prefix, function_prologue, - ix86_expand_prologue): Make the routine that sets the GOT (when pic - is enabled) a function, to assist debugging. - - * i386.md (gen_prologue_get_pc): Call the function created above. - (divdf3): Added. - - * i386/dgux.h (CPP_PREDEFINES, CPP_SPEC): Reference CPP_CPU_SPEC. - Use svr4 assembler directive .backalign instead of .align. - (align to x bytes if it takes no more than y bytes to do so.) - - * i386/{aix386ng.h,dgux.h} (CPP_SPEC): Use %[cpp_cpu]. - * i386/{freebsd-elf,gas,isc,linux-aout}.h: Likewise. - * i386/{linux-oldld,linux,osfelf,osfrose,sco,sco4}.h: Likewise. - * i386/{sco4dbx,sco5,sol2,sysv3}.h: Likewise. - -Thu Sep 26 17:58:34 1996 Torbjorn Granlund <tege@matematik.su.se> - - * m68k.md (mulsidi3 matcher): Change predicate const_int_operand - to const_sint32_operand. Get rid of bogus range condition. - -Thu Sep 26 17:12:00 1996 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (stmp-int-hdrs): Don't cd to srcdir before copying - header files to objdir. - -Wed Sep 25 21:22:57 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (FIRST_PSEUDO_REGISTER, ARG_POINTER_REGNUM): Bump up by one. - (FIXED_REGISTERS): Add entry for MAC register. - (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise. - (HARD_REGNO_NREGS): Handle MAC register. - (HARD_REGNO_MODE_OK, REGNO_OK_FOR_BASE_P, REGISTER_NAMES): Likewise. - (enum reg_class): New MAC_REGS register class. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Corresponding changes. - (REG_CLASS_FROM_LETTER): Likewise. - (REGISTER_MOVE_COST): Make copies to/from MAC register expenseive. - (CONDITIONAL_REGISTER_USAGE): Define. - * h8300.md (movsi_h8300hs): Renamed from movsi_h8300h. - Handle moves to/from the MAC register. - (mac): Two new patterns to use the mac instruction. - - * h8300.c (notice_update_cc): Fix CC_SET case. - (restore_compare_p): Remove unused function. - * h8300.md: Handle "set" vs "set_zn_c0" correctly. - (bCC patterns): No longer need to call restore_compare_p. - - * h8300.c (get_shift_alg): Fix HImode ASHIFTRT by 13 or 14 bits. - -Wed Sep 25 18:52:19 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * sh.md (insv): New pattern. - -Wed Sep 25 16:47:26 1996 Doug Evans <dje@seba.cygnus.com> - - * sparc/t-sunos41 (MULTILIB_{OPTIONS,DIRNAMES,MATCHES}): Create - multilib versions of -fpic and -fPIC. - (TARGET_LIBGCC2_CFLAGS): Comment out. - - * sparc.c (print_operand): Handle new codes H/L. - * sparc.md (lo_sum_di_sp32): Add little endian support. - (adddi3_sp32,subdi3_sp32,mulsidi3_sp32,const_mulsidi3): Likewise. - (umulsidi3_sp32,const_umulsidi3,smacdi,umacdi,anddi3_sp32): Likewise. - (iordi3_sp32,xordi3_sp32,negdi2_sp32): Likewise. - -Wed Sep 25 15:32:35 1996 Jim Wilson <wilson@cygnus.com> - - * expmed.c (store_bit_field): Don't make flag_force_mem disable insv - for memory operands. - - * function.c (instantiate_decl): Always store addr back into x. - -Tue Sep 24 19:37:00 1996 Jim Wilson <wilson@cygnus.com> - - * reload.c (push_secondary_reload): Do strip paradoxical SUBREG - even if reload_class is CLASS_CANNOT_CHANGE_SIZE. Change reload_mode - to mode in SECONDARY_MEMORY_NEEDED and get_secondary_mem calls. - - * reload1.c (emit_reload_insns): For output part of RELOAD_OTHER, - emit after RELOAD_FOR_OUTPUT, in reverse order of reload number, - but not separately. - -Tue Sep 24 18:13:07 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * expr.c (emit_group_load): Allow target to be smaller than source. - -Tue Sep 24 17:40:39 1996 Doug Evans <dje@cygnus.com> - - * m68k/a-ux.h: Renamed from aux.h because of MSDOS. - -Tue Sep 24 08:33:53 1996 David S. Miller (davem@caip.rutgers.edu) - - * tree.c (copy_node): Fix error in last change. - -Tue Sep 24 08:29:03 1996 James G. Smith <jsmith@cygnus.co.uk> - - * gcc.c (used_arg): Fix multilib_matches parsing to not corrupt - entry parameter. - -Tue Sep 24 08:22:18 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (get_condition): Use rtx_equal_p to compare rtx. - -Tue Sep 24 08:14:01 1996 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * integrate.c (expand_inline_function): Avoid creating paradoxical - subreg wider than BITS_PER_WORD as inlined function result. - -Tue Sep 24 08:00:15 1996 Paul Eggert <eggert@twinsun.com> - - * cccp.c (struct directive, directive_table, handle_directive): - pass_thru now 1 for #define and 2 for #pragma. - (handle_directive): When deciding whether to suppress comment at end - of directive, ignore tabs and spaces after comment. Remove redundant - limit test. With -dD -C, copy comment when isolating definition. - (skip_to_end_of_comment): With -C, don't copy newline at end - of C++ comment. - - * fixinc.ptx, fixinc.svr4, fixincludes: Insert newlines just before - end of 'sed' command strings if last 'sed' command is 'a' or 'i'. - -Tue Sep 24 07:28:58 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (PREFERRED_DEBUGGING_TYPE): If no debugging formats are - supported, set to NO_DEBUG. - (main): Don't do setting of PREFERRED_DEBUGGING_TYPE here. - -Mon Sep 23 22:45:15 1996 Sean McNeil <sean@mcneil.com> - - * rs6000/vxppc.h, sparc/vxsim.h: New files. - * configure (powerpc-*-vxworks*, sparc-*-vxsim*): New targets. - * objc/objc.h (BOOL): Define BOOL as int for VxWorks. - -Mon Sep 23 21:23:27 1996 Klaus K"ampf (kkaempf@progis.de) - - * explow.c (promote_mode, case REFERENCE_TYPE): New case. - -Mon Sep 23 21:15:43 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-decl.c (finish_struct): Check PCC_BITFIELD_TYPE_MATTERS value. - - * dbxout.c (dbxout_symbol): Fix forgotten case in last change: - check DECL_ARTIFICIAL also when using the short cut way. - -Mon Sep 23 15:55:24 1996 David S. Miller (davem@caip.rutgers.edu) - - * tree.c (copy_node): Abort if don't know size of node. - - * tree.c (build1): Clean up initialization of OBSTACK. - -Mon Sep 23 15:35:33 1996 Jason Merrill <jason@yorick.cygnus.com> - - * Makefile.in (stmp-multilib): Depend on $(LANG_LIB2FUNCS). - - * dbxout.c (dbxout_function): Don't check DECL_SECTION_NAME before - calling dbxout_function_end. - -Mon Sep 23 14:41:12 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * combine.c (can_combine_p): Even if SMALL_REGISTER_CLASSES, - know lifetime not extended if all_adjacent set. - - * stmt.c (expand_asm_operands): Handle '+' constraint. - * cse.c (fold_rtx): Fold inside ASM_OPERANDS. - - * expr.c (expand_increment): If postincrement for MEM can't use add - directly, load address in reg and enqueue increment and store of reg. - - * loop.c (check_dbra_loop): Don't assume label must be second part of - if_then_else in condjump. - - * jump.c (jump_optimize): In no-nop move deletion, don't test - PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is performed. - Check for REG_UNUSED note on to-be deleted insn before searching for - preceding instruction to delete note from. - If PRESERVE_DEATH_INFO_REGNO_P is true for SREG, replace INSN with USE. - - * reload1.c (reload): Initialize the previous_offset fields - in reg_eliminate before calling setup_save_areas. - - * reload1.c (emit_reload_insns): Declare and set this_reload_insn. - - * expr.c (var_rtx): New function. - (expand_expr, case COND_EXPR): Also use target if same as singleton. - -Mon Sep 23 14:22:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * recog.c (constrain_operands): Don't test clobbered constraints. - - * reload1.c (emit_reload_insns): For output part of RELOAD_OTHER, - put in front of anything previous for that output, but not separately. - -Sun Sep 22 21:06:46 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (decl_attribtes, case A_SECTION): Allow for static - local variable. - -Sun Sep 22 11:30:27 1996 Christian Iseli (christian.iseli@di.epfl.ch) - - * expr.c (convert_move): Replace explicit checks for FP extend ops - with use of can_extend_p. - Add missing tests for FP trunc operations. - -Sun Sep 22 11:20:02 1996 Pat Rankin <rankin@eql.caltech.edu> - - * dwarfout.c (DWARF_VERSION): Define as 1 if not already defined. - * dwarf2out.c (DWARF_VERSION): Likewise. - -Sun Sep 22 11:12:20 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * c-decl.c (pushdecl): Check new declaration actually conflicts before - warning about implicit external vs. static declarations. - - * loop.c (combine_givs): Improve combining DEST_REG giv with only use. - -Sun Sep 22 10:50:03 1996 Scott Christley <scottc@net-community.com> - - * Create consistent mechanism for memory allocation and release - so that garbage collection routines can be easily subsititued - for the ANSI standard malloc, realloc, free, etc. - * objc/archive.c: Replace use of __objc_xmalloc and free - with objc_malloc and objc_free. - * objc/hash.c: Replace use of __objc_xcalloc and free - with objc_calloc and objc_free. - * objc/init.c: Replace use of free with objc_free. - * objc/misc.c (objc_malloc): Renamed from __objc_xmalloc. - (objc_realloc): Renamed from __objc_realloc. - (objc_atomic_malloc, objc_valloc): New functions. - (objc_calloc): Renamed from __objc_calloc. - (objc_free): New function. - * objc/objc-api.h (_objc_malloc): New function pointer. - (_objc_atomic_malloc, _objc_valloc): Likewise. - (_objc_realloc, _objc_calloc, _objc_free): Likewise - * objc/objc-list.h: Replace use of __obj_xmalloc and free - with objc_malloc and objc_free. - * objc/objects.c: Likewise. - * objc/sarray.c: Replace use of __objc_xmalloc and free - with objc_malloc and objc_free. - * objc/sarray.h (__objc_xmalloc, __objc_xrealloc): Delete. - * objc/selector.c: Replace use of __objc_xcalloc, __objc_xrealloc, - and __objc_xmalloc with objc_calloc, objc_realloc, and objc_malloc. - * objc/thr-decosf1.c: Replace use of __objc_xmalloc and free - with objc_malloc and objc_free. - * objc/thr-irix.c, objc/thr-mach.c, objc/thr-os2.c: Likewise. - * objc/thr-posix.c, objc/thr-pthreads, objc/thr-single: Likewise. - * objc/thr-solaris.c, objc/thr-win32.c, objc/thr.c: Likewise. - -Sun Sep 22 05:26:01 1996 Jason Merrill <jason@yorick.cygnus.com> - - * configure: Set up LANG_LIB2FUNCS and LANG_EXTRA_HEADERS. - * Makefile.in (libgcc2.a): Include LANG_LIB2FUNCS. - (USER_H): Add LANG_EXTRA_HEADERS. - (LANG_LIB2FUNCS): New macro. - (LANG_EXTRA_HEADERS): New macro. - (stmp-int-hdrs): Don't hardwire ginclude. - (stamp-objlist): Don't depend on Makefile. - -Sat Sep 21 18:00:10 1996 Stephen L Moshier (moshier@world.std.com) - - * alpha.md (alpha_swapped_comparison_operator pattern): Fix asm - operand typo in last change. - -Sat Sep 21 07:11:51 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * defaults.h (ASM_OUTPUT_LABELREF): Provide default definition - if not already defined. - * 1750a.h (USER_LABEL_PREFIX): Define instead of ASM_OUTPUT_LABELREF. - * a29k.h, alpha.h, convex.h, dsp16xx.h, elxsi.h, fx80.h: Likewise. - * gmicro.h, h8300.h, i386/sun386.h, i860.h, i960.h, ns32k.h: Likewise. - * pdp11.h, pyr.h, romp.h, sh.h, sparc.h, spur.h, tahoe.h: Likewise. - * vax.h, we32k.h: Likewise. - * i386/att.h (USER_LABEL_PREFIX): Redefine, not ASM_OUTPUT_LABELREF. - * i386/bsd.h, i386/lynx.h, i386/sco5.h, i860/fx2800.h: Likewise. - * m68k/3b1.h, m68k/mot3300.h, m68k/tower-as.h, m68k/tower.h: Likewise. - * ptx4.h, sparc/pbd.h, svr3.h, svr4.h: Likewise. - * i386/osfrose.h, m88k.h (USER_LABEL_PREFIX): Redefine. - * nextstep.h (USER_LABEL_PREFIX): Redefine. - (ASM_OUTPUT_LABELREF) Use USER_LABEL_PREFIX. - * arm/aout.h, mips.h (ASM_OUTPUT_LABELREF): Delete. - * rs6000/lynx.h (USER_LABEL_PREFIX): Undefine. - * rs6000.h, rs6000/win-nt.h (USER_LABEL_PREFIX): Define. - -Thu Sep 19 00:05:53 1996 Jason Merrill <jason@yorick.cygnus.com> - - * configure: Move i[3456]86-*-gnu* case after linux and don't - treat linux-gnu like other gnu systems. - -Wed Sep 18 20:51:09 1996 Jason Merrill <jason@yorick.cygnus.com> - - * cplus-dem.c (demangle_template): Fix handling of address args. - (gnu_special): Handle type_info stuff. - -Wed Sep 18 17:57:55 1996 Patrik Lantto (patrik@opq.se) - - * jump.c (jump_optimize): Insert conditional move after jump - insn instead of before. - -Wed Sep 18 17:33:36 1996 Richard Henderson <rth@tamu.edu> - - * alpha.h (PREDICATE_CODES): Add alpha_swapped_comparison_operator. - * alpha.c (alpha_swapped_comparison_operator): New function. - (print_operand): Support unsigned codes for %D, %c, and %d. - * alpha.md: Add pattern for b%c with swapped comparisons with 0. - Delete three unnamed cmp patterns that are strict subsets of it. - - * alpha.c (alpha_emit_set_long_const): Save one instruction - when -O2 and high word == low word. - -Tue Sep 17 22:46:15 1996 Jason Merrill <jason@yorick.cygnus.com> - - * i386/unix.h (ASM_OUTPUT_MI_THUNK): Handle functions - returning an aggregate. - - * varasm.c (supports_one_only): New function. - (make_decl_one_only): Likewise. - * svr4.h (MAKE_DECL_ONE_ONLY): Define. - * tree.h (DECL_ONE_ONLY): New macro. - - * varasm.c (assemble_variable): Fix setting of - first_global_object_name. - (assemble_start_function): Likewise. - -Tue Sep 17 19:42:39 1996 Doug Evans <dje@wabamun.cygnus.com> - - * i386/t-cygwin32 (winnt.o): Compile properly. - -Tue Sep 17 15:47:20 1996 Ian Lance Taylor <ian@cygnus.com> - - * Add support for R5000, and finish MIPS4 support. - * mips.h (enum processor_type): Add PROCESSOR_R5000. - (gen_conditional_move): Declare. - (CONDITIONAL_REGISTER_USAGE): Mark ST_REGS as fixed if not - HARD_FLOAT, or if mips_isa < 4. - (FIRST_PSEUDO_REGISTER): Change to 76. - (FIXED_REGISTERS): Add condition code registers. - (CALL_USED_REGISTERS): Likewise. - (ST_REG_LAST): Change to 74. - (RAP_REG_NUM): Change to 75. - (ST_REG_P): Look for any condition code register. - (REG_CLASS_CONTENTS): Update for new condition code registers. - (RTX_COSTS): Add cases for R5000. - (REGISTER_MOVE_COST): Add cases for condition code registers. - (PREDICATE_CODES): Add "const_float_1_operand". - (EXTRA_CC_{MODES,NAME}, SELECT_CC_MODE): Remove. - (REGISTER_NAMES): Add entries for new condition code registers. - (DEBUG_REGISTER_NAMES): Likewise. - (ADDITIONAL_REGISTER_NAMES): Remove FPSW_REGNUM. - * mips.md (cpu attribute): Add R5000. - (function units): Add cases for the R5000. - ({madd,msub,nmadd,nmsub}.d): Only available if TARGET_DOUBLE_FLOAT. - (recip.d, recip.s, rsqrt.d, rsqrt.s): New define_insn patterns. - (movcc): New pattern to move condition code values. - (reload_incc, reload_out_cc): New define_expand patterns. - (lwxc1, ldxc1, swxc1, sdxc1): Several new define_insn patterns. - (various): Replace CC_FP with CC. - (branch_fp_ne, branch_fp_eq): Match any condition code register. - (branch_fp_ne_rev, branch_fp_eq_rev): Remove. - (seq_df, slt_df, sle_df): Match any condition code register. - (sgt_df, sge_df, seq_sf, slt_sf, sle_sf, sgt_sf, sge_sf): Likewise. - (sne_df, sne_sf): Remove. - (FP conditional moves): Match any condition code register. - Require TARGET_HARD_FLOAT and, if appropriate, TARGET_DOUBLE_FLOAT. - (movsicc): Just call gen_conditional_move. - (movdicc, movsfcc, movdfcc): New define_expand patterns. - * mips.c (mips_reg_names): Add condition code registers. - (mips_sw_reg_names, mips_regno_to_class): Likewise. - (const_float_1_operand): New function. - (mips_move_1word): Treat CCmode as SImode. Handle move from - ST_REG to GR_REG if mips_isa >= 4. Only permit move from GR_REG - to ST_REG is mips_isa < 4. - (gen_conditional_branch): Rewrite. Just use CCmode, not extra - condition modes. - (gen_conditional_move): New function. - (override_options): Recognize vr5000. Look for just CCmode, not - extra condition modes. If mips_isa >= 4, permit CCmode in GR_REGS - and FP_REGS. - (print_operand): Handle %Z. - (mips_secondary_reload_class): Require a data register to copy a - value out of a condition code register. Require a floating point - register to copy a value into a condition code register. - -Tue Sep 17 15:10:29 1996 Joern Rennecke <amylaar@cygnus.co.uk> - - * sh.md: New define_splits to recombine output from LEGITIMIZE_ADDRESS. - * sh.h (LEGITIMIZE_ADDRESS): Typo fixes (x -> X). - -Mon Sep 16 23:00:35 1996 Jim Wilson <wilson@cygnus.com> - - * configure (build_broken_install): Renamed from host_broken_install. - Set from build not host. - (build_install_headers): Renamed from host_install_headers. Set from - build not host. - -Mon Sep 16 22:38:55 1996 Stu Grossman (grossman@critters.cygnus.com) - - * configure (m68k-*-coff*): Use dbx debug format by default. - * gcc.c (link_command_spec): Move -T to end of link command line. - * m68k/m68kemb.h (LINK_SPEC, SUBTARTGET_SWITCHES): Delete. - (LIB_SPEC): Define to just -lc. - (STARTFILE_SPEC): Define to empty. - -Mon Sep 16 13:12:27 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (ext_shift_insns, ext_shift_amounts): New arrays. - (gen_ashift_hi, gen_shifty_hi_op, shl_and_kind): New functions. - (rtx_equal_function_value_matters): Declare. - (shl_and_length, shl_and_src_length, gen_shl_and): New functions. - (shl_sext_kind, shl_sext_length, gen_shl_sext): Likewise. - * sh.md (ashlhi3_k, lshrhi3_m): New patterns. - (lshrhi3, shl_sext_ext, shl_sext_sub): - New insn patterns with matching define_split. - (and_shl_scratch): Likewise, but also with unnamed variants. - -Sat Sep 14 17:05:07 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * gcc.c (convert_filename): Don't start looking for '.' until - after last directory separator. - - * i386.md (clrstrsi): Correct check for constant size. - - * Based on code by sac@cygnus.com. - * i386/cygwin32.h (CHECK_STACK_LIMIT): Make consistent with MD file. - * i386.c ({function,ix86_expand}_prologue): Use __alloca to allocate - stack if desired and beyond CHECK_STACK_LIMIT in size. - * i386.h ({MASK,TARGET}_STACK_PROBE): New macros. - (TARGET_SWITCHES): Add -mstack-arg-probe. - * i386.md (allocate_stack{,_worker}): New patterns. - -Fri Sep 13 18:23:18 1996 Joel Sherrill <joel@OARcorp.com> - - * sparc/lb1spc.asm (.div, .rem): Fixed typo so sign is returned - correctly. TOPBITS was 2 and should have been 4. - -Thu Sep 12 21:51:56 1996 Jim Wilson <wilson@cygnus.com> - - * mips.md (call_value_multiple_internal0): Change from define_insn to - define_expand. - -Thu Sep 12 19:22:14 1996 Doug Evans <dje@seba.cygnus.com> - - * sparc.md (move_pic_label_si): Operand one is label_ref now. - * sparc.c (emit_move_sequence): Pass label_ref to - gen_move_pic_label_si to not lose flags. - -Wed Sep 11 12:10:08 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Makefile.in (GCC_PASSES): Add $(exeext) to names. - (FLAGS_TO_PASS): Add CLIB. - (c-pragma.o): Add dependencies on except.h, function.h, defaults.h. - -Tue Sep 10 22:25:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (i[3456]86-*-cygwin32): Use xm-cygwin32.h and xm-i386.h. - Set fixincludes to Makefile.in and objc_thread_file to win32. - * i386/xm-cywin32.h: Don't include xm-i386.h. - * i386/x-cygwin32, rs6000/x-cygwin32 (STMP_FIXPROTO, exeext): New defs. - - * gcc.c (HAVE_EXECUTABLE_SUFFIX): New macro. - (convert_filename): New function. - (process_command, case 'o'): Call it. - (process_command, default case): Likewise; delete old code. - -Tue Sep 10 21:08:43 1996 Torbjorn Granlund <tege@albert.gnu.ai.mit.edu> - - * i386.md (decrement_and_branch_until_zero matcher): Fix typo. - -Tue Sep 10 19:04:19 1996 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_move_2words): Rewrite 32 bit shifts as 16 bit shifts. - -Tue Sep 10 10:39:07 1996 Jeffrey A Law (law@cygnus.com) - - * pa/pa-gas.h (DBX_DEBUGGING_INFO): Remove all #define - and #undef statements related to debugging information. - * pa/pa-hpux.h, pa-hpux7.h: Likewise - * pa.c (override_options): Disable "-g" and issue a warning - if it's used when !TARGET_GAS. - -Mon Sep 9 17:57:49 1996 Doug Evans <dje@wabamun.cygnus.com> - - * sparc.h ({MASK,TARGET}_FPU_SET): Define. - (TARGET_SWITCHES): Record if -m{,no-}fpu passed. - * sparc.c (sparc_override_options): Don't clobber explicit - -m{,no-}fpu setting with cpu default. - -Mon Sep 9 15:57:57 1996 Joel Sherrill <joel@OARcorp.com> - - * configure (mips64orion-*-rtems*): New target. - * mips/rtems64.h: New file. - -Sat Sep 7 22:07:53 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_field): If storing a record on big endian targets, - set up so we store the high-order bits. - (expand_expr, case COMPONENT_REF): Likewise for loads. - -Thu Sep 5 14:59:47 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (LEGITIMIZE_ADDRESS): Define nonempty. - -Thu Sep 5 10:43:36 1996 Jeffrey A Law (law@cygnus.com) - - * pa.md (mov{si,di,sf}): Handle 'R' constraints as needed. - -Wed Sep 4 17:13:28 1996 Bob Manson <manson@charmed.cygnus.com> - - * except.c: (add_partial_entry): New routine. - (expand_start_try_stmts): Moved from cp/except.c. - (expand_start_all_catch): Move functionality of expand_end_try_stmts - here. - -Wed Sep 4 12:30:02 1996 Mike Stump <mrs@cygnus.com> - - * except.c (emit_unwinder): Ensure CLOBBER and USE insns come last, - if present. - -Tue Sep 3 12:01:43 1996 Ian Lance Taylor <ian@cygnus.com> - - * configure (sh-*-elf*): New target. - * sh/elf.h: New file. - -Fri Aug 30 17:52:26 1996 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (gen_formal_types_die): Delete extra argument from - gen_type_die call. - -Fri Aug 30 15:40:40 1996 James G. Smith <jsmith@cygnus.co.uk> - - * mips/elf64.h: Allow MULTILIB_DEFAULTS to be defined - before this file is included. - -Fri Aug 30 15:00:06 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md: (movsicc,movhicc): Allow reload from memory. - - * i386.c (override_options): Don't thread the prologue if profiling. - -Fri Aug 30 15:00:06 1996 James Hawtin <cgjwh@sunrise.co.uk> - - * i386/t-sol2 (gcrt1.o): Added for profiling Solaris 2 - * i386/sol2.h (STARTFILE_SPEC): New. - * i386/gmon-sol2.c, i386/sol2-gc1.asm: New files. - -Thu Aug 29 22:08:03 1996 Jim Wilson <wilson@cygnus.com> - - * except.c (add_eh_table_entry): Multiply realloc size by sizeof int. - -Thu Aug 29 15:15:31 1996 Jeffrey A Law (law@cygnus.com) - - * pa.md (fcmp patterns): Don't try to eliminate useless add,tr - insns here. - * pa.c (pa_reorg): Do elimination of useless add,tr insns here instead. - (print_operand, case 'y'): Remove this code. - -Wed Aug 28 16:19:34 1996 Doug Evans <dje@cygnus.com> - - * toplev.c (print_single_switch): Ultrix fprintf returns 0 for success. - - * toplev.c (main): Rewrite -g parsing. - -Mon Aug 26 16:15:49 1996 Fred Fish <fnf@cygnus.com> - - * Makefile.in (objc-parse.y): Fix typo in name of temp file. - -Mon Aug 26 14:08:37 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (mark_all_temps_used): Fix error in last change. - -Sun Aug 25 22:27:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (mark_all_temps_used): New function. - -Fri Aug 23 11:34:57 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Fixes to make -fPIC - really the same as -mrelocatable. - (ASM_SPEC): Pass -K PIC to the assembler if -fpic/-fPIC. - - * rs6000/sol2.h (ASM_CPU_SPEC): Remove passing -K PIC to the - assembler if -fpic/-fPIC. - - * bi-{arity,opcode,opname}.c (fancy_abort): Define, so that - -Dabort=fancy_abort works again. - -Thu Aug 22 11:39:34 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/t-ppcgas ({stmp,install}-crt): Only build and install the - eabi ecrt[in].o object files in eabi multilib directories, only - build and install the solaris scrt[in0].o object files in solaris - directories. - (MULTILIB_MATCHES): Remove matches for solaris, linux to other - switches. - -Tue Aug 20 18:49:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or - -mrelocatable-lib, don't make read-only sections. - -Mon Aug 19 18:42:13 1996 Doug Evans <dje@cygnus.com> - - * sparc.h ({MASK,TARGET}_LITTLE_ENDIAN): Define. - (LIBGCC2_WORDS_BIG_ENDIAN): Add little endian support. - * sparc/sp64-elf.h ({CPP,ASM,LINK}_SPEC): Add little endian support. - (SUBTARGET_SWITCHES): Recognize -m{big,little}-endian. - ({BYTES,WORDS}_BIG_ENDIAN): Likewise. - * sparc/splet.h (SUBTARGET_SWITCHES): Recognize -m{big,little}-endian. - ({CPP,ASM,LINK}_SPEC): Add little endian support. - ({BYTES,WORDS}_BIG_ENDIAN): Likewise. - * sparc/t-splet (MULTILIB_{OPTIONS,DIRNAMES}): Likewise. - - * sparc/lynx-ng.h (CPP_SPEC): Use %(cpp_cpu). - -Sat Aug 17 15:23:39 1996 Geoffrey Noer <noer@cygnus.com> - - * i386/cygwin32.h (CPP_PREDEFINES): Define _WIN32, not WIN32. - Define only __CYGWIN32__, not CYGWIN32 or __CYGWIN32. - * rs6000/cygwin32.h (CPP_PREDEFINES): Likewise. - * cccp.c (absolute_filename): Drive specifiers make the pathname - absolute in cygwin32. - * choose-temp.c: Delete !defined(_WIN32) condition when including - sys/file.h (NO_SYS_FILE_H is still used). - * gcc.c: Change ifndef _WIN32 to ifndef NO_SYS_FILE_H when deciding - whether to include sys/file.h. - (execute): -pipe is supported for cygwin32. - * getopt.c: Change win32 test from WIN32 to _WIN32. - * pexecute.c: Update test for win32 (&& ! cygwin32). - * protoize.c: Likewise. - (kill): Delete decl. - * toplev.c: Update test for win32 (&& ! cygwin32). - * ginclude/stdarg.h: Change __WIN32__ to _WIN32. - * ginclude/varargs.h: Likewise. - * ginclude/va-ppc.h: Likewise. - -Fri Aug 16 16:02:09 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (rs6000_got_register): Make sure pic_offset_table_rtx - allocated, even if current_function_uses_pic_offset_table set. - -Fri Aug 16 15:56:04 1996 J. Kean Johnston <hug@netcom.com> - - * i386/sco5.h (CLASS_LIKELY_SPILLED_P): Deleted. - (STARTFILE_SPEC): Insert crtbegin.o in correct place, and correct - versions of values-X?.o. - (SWITCH_TAKES_ARG): Extend DEFAULT_SWITCH_TAKES_ARG, not replace. - (CPP_SPEC): Add -Di386, and correctly include extra directories. - Define HAVE_ATEXIT in ELF mode for global destructors. - -Thu Aug 15 16:42:44 1996 Doug Evans <dje@cygnus.com> - - * sparc.c (label_ref_operand): New function. - (emit_move_sequence): Pass label_ref to gen_move_label_di to not - lose flags. - * sparc.md (move_label_di): Operand one is label_ref now. - * genattrtab.c (write_test_expr): Allow label_ref in match_dup. - - * sys-protos.h (gethostid): Make return type `int' ifdef __alpha__. - * gen-protos.c: Delete support for SYS_PROTO_OVERRIDES. - * alpha.h (SYS_PROTO_OVERRIDES): Delete. - -Thu Aug 15 17:36:09 1996 Mike Stump <mrs@cygnus.com> - - * libgcc2.c (__throw): New routine. - (__eh_pc): New data object for exception handling. - - * except.c (eh_saved_pc): New object so we can call - assemble_external. - (expand_internal_throw_indirect): Call assemble_external for __eh_pc. - (end_eh_unwinder): Likewise. - (init_eh): Initialize eh_saved_pc. - -Thu Aug 15 13:02:42 1996 Mike Stump <mrs@cygnus.com> - - * arm.h (RETURN_ADDR_RTX): Define. - - * expr.c (expand_builtin_return_addr): Fix order of parameters. - -Wed Aug 14 19:48:00 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> - - * stmt.c (expand_return): In code for doing scc with jumps, - stick to default handling if we have corresponding scc pattern. - -Wed Aug 14 10:31:28 1996 Jeffrey A Law (law@cygnus.com) - - * pa.c (override_options): Treat TARGET_FAST_INDIRECT_CALLS - just like TARGET_NO_SPACE_REGS. - (output_millicode_call): Likewise. - * pa.h (TARGET_FAST_INDIRECT_CALLS): Define. - (TARGET_SWITCHES): Add "fast-indirect-calls". - * pa.md (TARGET_FAST_INDIRECT_CALLS): Treat just like - TARGET_NO_SPACE_REGS in various call/millicode call patterns. - - * pa.c (print_operand): Use the right comparison operator - for reversed EQ and NE comparisons. - - * pa.h (OUTPUT_MI_THUNK): Define. - -Wed Aug 14 11:40:49 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * ginclude/va-ppc.h: Add Windows NT support. - * ginclude/{varargs,stdarg}.h: For PowerPC Windows NT, include - va-ppc.h, instead of using the default handling. - -Tue Aug 13 18:30:10 1996 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Remove duplicate volatile from sig_atomic_t in AIX - sys/signal.h - -Tue Aug 13 16:51:37 1996 Jim Wilson <wilson@cygnus.com> - - * i960-coff.h (LIB_SPEC): Undef. - - * sh.h (PROFILE_BEFORE_PROLOGUE): Define. - -Tue Aug 13 11:36:02 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * gcc.c (set_spec,process_command): Dump and load the compiler - version number in the specs file. - - * rs6000.c (output_toc): Fix last change, so that it doesn't use - an uninitialized variable if -mminimal-toc. - (output_prolog): Increment probe_labelno after last use. - - * rs6000/t-ppcgas (MULTILIB_*): Build far fewer multilib - libraries. Build all libraries with -mrelocatable-lib and - -mno-eabi. Build special GNU/Linux and Solaris libraries. - * rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in - t-ppcgas. - * rs6000/(linux,sol2,sysv4,sysv4le).h (MULTILIB_DEFAULTS): Likewise. - -Tue Aug 13 11:36:02 1996 Jeffrey A Law (law@cygnus.com) - - * rs6000.c (handle_mac_pragma): Initialize "psize". - -Mon Aug 12 18:14:35 1996 Jim Wilson <wilson@cygnus.com> - - * gcc.c (used_arg): Initialize cnt to zero. - -Mon Aug 12 14:03:16 1996 Jim Wilson <wilson@cygnus.com> - - From Mike Stump: - * sh.c (regno_reg_class): Change entry 23 from NO_REGS to GENERAL_REGS. - (initial_elimination_offset): New variable live_regs_mask. Add - code to handle RETURN_ADDRESS_POINTER_REGNUM. - * sh.h (RAP_REG, RETURN_ADDRESS_POINTER_REGNUM): Define. - (ELIMINABLE_REGS): Add RETURN_ADDRESS_POINTER_REGNUM support. - (RETURN_ADDR_RTX): Define. - (REGISTER_NAMES): Add rap. - - * iris5.h (DOLLARS_IN_IDENTIFIERS): Undefine. - - * m68kemb.h (LIB_SPEC): Always emit -lc. - -Mon Aug 12 12:30:25 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (rs6000_got_register): Test variable - current_function_uses_pic_offset_table to see whether or not a GOT - register has been created already. - - * Makefile.in (multilib.h): Move to stamp-mlib. - (stamp-mlib): Use move-if-change to conditionally update - multilib.h. Pass MULTILIB_EXTRA_OPTS to genmultilib. - (STAGESTUFF): Add stamp-mlib. - (mostlyclean): Delete tmp-mlib.h. - - * genmultilib: Take fifth argument for options to all multilib builds. - Restructure output so we pass synonym switches and extra arguments - separately, and not exponentially slow down genmultilib. - - * gcc.c (toplevel): Rearrange multilib support so we support passing - synonyms separately from normal switches. Add support for passing - additional switches for all multilib builds. Dump and restore value - of MULTILIB_DEFAULTS. - (setspec, process_command, main): Likewise. - (used_arg,default_arg,print_multilib_info): Likewise. - -Mon Aug 12 07:46:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Add test - and call for nonlocal_goto_receiver pattern. - * stmt.c (expand_end_bindings): Likewise. - - * stmt.c (expand_asm_operands): Fix off-by-one error when - scanning constraints. - -Sun Aug 11 22:48:02 1996 Jason Merrill <jason@yorick.cygnus.com> - - * expr.c (store_expr): Handle COND_EXPR cleanups like expand_expr. - -Sun Aug 11 22:42:36 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * optabs.c (expand_abs): When OP0 and TARGET are the same - pseudo register, it is safe to use TARGET. - - * local-alloc.c (reg_equiv_replace): New variable. - (update_equiv_regs): Set reg_equiv_replacement for all REG_EQUIV - notes encountered or generated. - -Sun Aug 11 22:27:14 1996 Scott Christley <scottc@net-community.com> - - * objc/hash.c (hash_is_key_in_hash): Function somehow got lost. - -Sun Aug 11 21:43:15 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * ginclude/stddef.h (__need_wint_t): Move #undef to right place. - -Sun Aug 11 17:46:22 1996 J"orn Rennecke <amylaar@cygnus.co.uk> - - * c-decl.c (finish_struct): If pedantic, also warn if struct/union - has no named members. - -Sun Aug 11 17:32:52 1996 Joel Sherrill <joel@OARcorp.com> - - * i386/rtems.h: Renamed from i386/i386-rtems.h - * i960/rtems.h: Renamed from i960/i960-rtems.h - * m68k/rtems.h: Renamed from m68k/m68k-rtems.h - * rs6000/rtems.h: Renamed from rs6000/powerpc-rtems.h - * sparc/rtems.h: Renamed from sparc/sparc-rtems.h - * config/t-rtems: New file. - * configure (i386-*-rtems*): Added t-rtems to tmake_file. - Renamed i386/i386-rtems.h to i386/rtems.h. - (i960-*-rtems*): Added t-rtems to tmake_file. - Renamed i960/i960-rtems.h to i960/rtems.h. - Added original tm.h file and dbxcoff.h. - (m68k-*-rtems*): Added t-rtems to tmake_file. - Renamed m68k/m68k-rtems.h to m68k/rtems.h. - (powerpc-*-rtems*): Added t-rtems to tmake_file. - Renamed rs6000/powerpc-rtems.h to rs6000/rtems.h. - (sparc-*-rtems*): Added t-rtems to tmake_file. - Renamed sparc/sparc-rtems.h to sparc/rtems.h. - -Fri Aug 9 16:05:13 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md: (untyped_call) Avoid SIGFPE. - - * i386.c (output_float_compare): Don't try to initialize - aggregate local variable; use assignment statements instead. - - * i386.h (RTX_COSTS): rtx_cost should pass two parameters. - - * i386/go32.h (ASM_OUTPUT_SECTION_NAME): New. - -Fri Aug 9 16:00:11 1996 Jim Wilson <wilson@cygnus.com> - - * winnt.c (gen_stdcall_suffix): Round parameter size to PARM_BOUNDARY. - -Thu Aug 8 17:42:35 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (output_toc): If we are emitting a reference to a - vtable, don't put in the section name, just use the symbol. - -Wed Aug 7 19:03:36 1996 Jim Wilson <wilson@cygnus.com> - - * sh.md (casesi_jump): New pattern. - (casesi): Generate RTL to match it. - -Wed Aug 7 14:10:07 1996 Jason Merrill <jason@yorick.cygnus.com> - - * ginclude/stddef.h (NULL): Use __null for G++. - -Tue Aug 6 17:37:53 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (STACK_BOUNDARY): Always define as 64. - (ABI_STACK_BOUNDARY): Define as 64/128 based on the -mno-eabi - switch. - - * rs6000.c (rs6000_stack_info): Use ABI_STACK_BOUNDARY, not - STACK_BOUNDARY. Define ABI_STACK_BOUNDARY as STACK_BOUNDARY #ifndef. - -Tue Aug 6 14:29:43 1996 Doug Evans <dje@fallis.cygnus.com> - - * gen-protos.c (overrides): New static local. - (add_hash,parse_fn_proto): New static functions. - (main): Add prototypes from SYS_PROTO_OVERRIDES to hash table before - parsing sys-protos.h. Reserve entry 0 in std_protos. - * alpha.h (SYS_PROTO_OVERRIDES): Define. - -Mon Aug 5 16:53:36 1996 Doug Evans <dje@fallis.cygnus.com> - - * sparc/t-splet (MULTILIB_OPTIONS): Add mbroken-saverestore. - (MULTILIB_DIRNAMES): Add brknsave. - - * stor-layout.c (layout_record): Correct overflow test for 0 sized - fields. - -Mon Aug 5 16:12:19 1996 Jim Wilson <wilson@cygnus.com> - - * alpha.c (alpha_output_filename): When emitting stabs, don't - disable them if using GNU as. - (alpha_output_lineno): Likewise, when not using GNU as. - - * sh.c (arith_reg_operand): Reject SUBREG of an invalid hard reg. - - * sparc/lite.h (aoutos.h): Don't include it. - * configure (sparclite-*-aout*): Add aoutos.h to tm_file. - -Sat Aug 3 23:13:55 1996 Jeffrey A Law (law@cygnus.com) - - * combine.c (rtx_equal_for_field_assignment_p): Check for - get_last_value returning (CLOBBER (CONST_INT 0)). - -Sat Aug 3 20:19:14 1996 Jim Wilson <wilson@cygnus.com> - - * i960.md (subsi3+1): Handle case where first operand is constant - but second operand is not. - - * m68k/vxm68k.h (WCHAR_TYPE_SIZE): Undef, then define to 16. - -Fri Aug 2 15:46:19 1996 Jeffrey A Law (law@cygnus.com) - - * pa/pa-hpux.h (LINK_SPEC): Don't link in PA1.1 specific - libraries when creating shared libraries. - * pa/pa-hpux9.h, pa/pa-hpux10.h: Likewise. - -Fri Aug 2 13:36:42 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (output_float_compare): fcomi should be followed by the - correct conditional jump instead of fcom/pfstsw/and/jne - (override_options): Added -mbranch-cost to set BRANCH_COST. - - * i386.md (sgt+1,slt+1,sge+1,sle+1,bgt+1,blt+1,bge+1,ble+1,bleu+4) - Added TARGET_CMOVE check for fcomi. - (movsicc_1+1,movhicc_1+1): Added to handle the general case. - - * i386.h (i386_branch_cost, i386_branch_cost_string): Added. - -Fri Aug 2 11:53:55 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * sparc/vxsparc.h (CPP_PREDEFINES): Add `-DCPU=SPARC'. - -Thu Aug 1 23:56:01 1996 Jeffrey A Law (law@cygnus.com) - - * pa.h (ASM_OUTPUT_INT): Remove all hacks for exception table. - -Thu Aug 1 10:08:14 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> - - * m68k.h (RTX_COSTS, case PLUS): Get operand order right. - -Wed Jul 31 15:06:46 1996 Doug Evans <dje@cygnus.com> - - * sparc.md (negtf2,abstf2): Fix v9 case. - -Wed Jul 31 09:49:25 1996 Jeffrey A Law (law@cygnus.com) - - * pa.h (ASM_OUTPUT_INT): Use an 'E%' prefix for items in - the exception table if TARGET_GAS && ! TARGET_PORTABLE_RUNTIME. - -Tue Jul 30 15:37:31 1996 Jim Wilson <wilson@cygnus.com> - - * i386/cygwin32.h (dbxcoff.h): Include. - (DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): - Move definitions before include of dbxcoff.h. - (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_MAIN_SOURCE_FILE_END): Delete. - (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_FUNCTION_FIRST): Delete. - -Tue Jul 30 15:03:53 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> - - * i960.md (eq reg (const_int 0)): New pattern. - -Tue Jul 30 11:15:44 1996 Jeffrey A Law (law@cygnus.com) - - * pa.h (RETURN_ADDR_RTX): Offset is -20 from the frame, not +20! - -Mon Jul 29 12:16:17 1996 Jeffrey A Law (law@cygnus.com) - - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix thinko in last change. - -Fri Jul 26 18:19:47 1996 Doug Evans <dje@cygnus.com> - - * dwarfout.c (output_bound_representation): Fix typo. - -Thu Jul 25 16:00:10 1996 Mike Stump <mrs@cygnus.com> - - * expr.c (do_jump, case TRUTH_ORIF_EXPR): Ensure end of an - exception region comes after its start. - (do_jump, case TRUTH_ANDIF_EXPR): Likewise. - -Thu Jul 25 13:36:42 1996 Stan Cox <coxs@equinox> - - * i386.c (output_float_compare): Added support for Pentium Pro - fcomi instruction which sets EFLAGS instead of FPU Status Word. - -Wed Jul 24 21:48:08 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (canon_hash, cse_insn): MEM is not unchanging if it is - in the frame (since the temp slot might be reused). - -Wed Jul 24 17:34:06 1996 J"orn Rennecke (amylaar@cygnus.com) - - * sh.md (branch_true, branch_false, inverse_branch_true): Express - tests of the T bit as comparisons against zero, rather than one. - (inverse_branch_false, beq, bne, bgt, blt, ble, bge, bgtu): Likewise. - (bltu, bgeu, bleu, casesi): Likewise. - -Wed Jul 24 15:58:06 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md: (mov{sf,df,xf}cc{,_1}): New patterns for P6 FP cmove. - * i386.c (put_condition_code, print_operand, output_fp_cc0_set): - Support fcmov suffixes. - -Wed Jul 24 10:53:38 1996 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Relax "mode" test. Allow scaled - indexed addressing modes. - (output_fp_move_double): Tweak output strings to work with updated - 'F' and 'M' output modifiers. - (print_operand): Collapse 'F' and 'M' into a single hunk of code. - For auto-increment modes output "s,ma" and "s,mb". - For scaled indexing modes output "x,s" - For other addresses, output nothing for 'M' and "s" for 'F'. - * pa.h (EXTRA_CONSTRAINT): Don't accept scaled indexed addresses - for 'Q' and 'T'. Do accept scaled indexed addresses for 'R'. - (GO_IF_LEGITIMATE_ADDRESS): Accept scaled indexed addresses - for SFmode and DFmode. - * pa.md: Remove all scaled indexed load patterns. - (movsi patterns): Accept scaled indexed addresses in some - cases. Update output strings for updated 'M' and 'F' output modifiers. - (movhi, movqi, movsf, movdf, movdi patterns): Likewise. - -Tue Jul 23 23:10:41 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.h (struct tree_int_cst): Add field for TREE_CST_RTL. - * varasm.c (decode_addr_const, output_constant_def): AllowINTEGER_CST. - -Tue Jul 23 16:42:09 1996 Jim Wilson <wilson@cygnus.com> - - * sh.c (reg_unused_after): Handle JUMP_INSN inside a sequence. - -Tue Jul 23 16:33:25 1996 Mike Stump <mrs@cygnus.com> - - * Make exception handling work better when optimizations are on. - * except.c, except.h: New files. - * Makefile.in (OBJS): Add except.o. - (except.o): Add. - (stmt.o, final.o): Add except.h. - * rtl.c (note_insn_name): Add NOTE_INSN_EH_REGION_{BEG,END}. - * rtl.h: Likewise. - * arm.h (MASK_RETURN_ADDR): Define. - * pa.h (MASK_RETURN_ADDR, RETURN_ADDR_RTX): New macros. - * sparc.h (DOESNT_NEED_UNWINDER): Define if not doing a flat function. - * mips.h (RETURN_ADDR_RTX): Improve. - * vax.h (RETURN_ADDR_RTX): Improve. - * toplev.c (rest_of_compilation): Use find_handler_labels. - (main, interim_eh{,_hook}): Remove interim_eh_hook support. - (flag_exceptions): New flag; also add to table. - (compile_file): Emit the exception table in the backend now. - * final.c (final_scan_insn): Support ASM_OUTPUT_EH_REGION_{BEG,END}. - (final_scan_insn): Redo handler labels, implement - NOTE_INSN_EH_REGION_BEG and NOTE_INSN_EH_REGION_END and use them - instead of CODE_LABELs. - (final): Add call to check_handler_labels. - * libgcc2.c (L_eh): Add support for EH_TABLE_LOOKUP. - * sparc.md (return): Add a reference to the return address register. - * flow.c (find_basic_blocks): Add support for handler_labels. - * loop.c (find_and_verify_loops): Likewise. - * jump.c (jump_optimize): Likewise. - Add call to check_handler_labels. Add call to exception_optimize. - * sched.c (sched_analyze): Smuggle exception region notes around. - (unlink_notes, reemit_notes, schedule_block): Likewise. - (sched_analyze): Add extra element since we remove two at a time. - * integrate.c (save_for_inline_copying): Add support for exception - regions. - (expand_inline_function): Likewise. - (function_cannot_inline_p): Don't inline functions that have EH - regions before NOTE_INSN_FUNCTION_BEG. - (finish_inline): Use FIRST_FUNCTION_INSN, not NEXT_INSN. - * function.c (expand_start_all_catch): New function. - * function.h: Add exception handling support information. - * expr.c (expand_expr, {defer,expand}_cleanups_to, do_jump): Transform - interim_eh_hook into calls to expand_ehregion_{start,end}. - * stmt.c (expand_{decl_cleanup,cleanups}): Likewise. - (init_stmt_for_function): Call init_eh. - (save_stmt_status): Call save_eh_status. - (restore_stmt_status): Call restore_eh_status. - * expr.h (throw_libfunc): Add. - * optabs.c (throw_libfunc): Initialize. - * print-rtl.c (print_rtx): Add support for exception regions. - * rs6000.c (EXCEPTION_SECTION): Define. - * output.h (exception_section): Declare. - * varasm.c (exception_section): Define. - * i386.c, i960.c, rs6000.c: Include except.h for function.h. - * c-pragma.c, emit-rtl.c, expr.c, final.c, flow.c: Include except.h. - * function.c, integrate.c, jump.c, loop.c, objc-act.c: Likewise. - * stmt.c, stor-layout.c, toplev.c, tree.c, varasm.c: Likewise. - -Tue Jul 23 12:32:54 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (rs6000_replace_regno): Set pic_offset_table_rtx so - that other phases will use the PIC register instead of the - placeholder. - - * rs6000.md (movsi_got*): Eliminate -fPIC code, keep -fpic code. - (movsi): Only call movsi_got if -fpic, not -fPIC. - - * sysv4.h (OVERRIDE_OPTIONS): Improve error messages. Always set - -msdata=data by default, even if -fpic/-fPIC/-mrelocatable. Treat - -fPIC the same as -mrelocatable-lib and vica versa. - - * t-ppcgas: (MULTILIB_*): Use -mreloctable-lib, instead of - -mrelocatable. Map Solaris into mcall-sysv-noeabi case. Build - -mrelocatable-lib libraries under non-eabi case. When linking, if - -fpic, -fPIC, or -shared, link in the -mrelocatable-lib libraries. - -Mon Jul 22 19:34:20 1996 Jim Wilson <wilson@cygnus.com> - - * iris6.h (ASM_SPEC): Change {% to %{. - - * dwarf2out.c (output_call_frame_info): Change FDE CIE offset to - be section name rather than 0. - (gen_subprogram_die): Only emit DW_AT_external if origin is NULL. - Only call equate_decl_number_to_die if origin is NULL. - (dwarfout_begin_function): In code that computes offset of frame - pointer, change 4 to UNITS_PER_WORD. - - * combine.c (undo_all): Clear previous_undos field. - -Mon Jul 22 19:10:45 1996 Ian Lance Taylor <ian@cygnus.com> - - * configure: Don't change target_alias to target in Makefile. - -Sat Jul 20 09:28:38 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * dwarfout.c (output_bound_representation): Treat default case - as variable bounds, then look inside for SAVE_EXPR. - - * mips.h (INITIALIZE_TRAMPOLINE): Use `_flush_cache'; flush data - cache too. - -Sat Jul 20 09:24:13 1996 Marco Walther (Marco.Walther@mch.sni.de). - - * configure (mips-sni-sysv4): New target. - * mips/sni-gas.h, mips/sni-svr4.h, mips/x-sni-svr4: New files. - -Fri Jul 19 17:44:13 1996 Stan Coxs <coxs@dg-rtp.dg.com> - - * i386.md: (leave): Clobbers esp and ebp. - - * i386.h: (TARGET_USE_Q_REG): Support inline strlen on PentiumPro - -Fri Jul 19 15:56:18 1996 Ian Lance Taylor <ian@cygnus.com> - - * m68k/t-m68kbare (MULTILIB_OPTIONS): Add m5200. - (MULTILIB_EXCEPTIONS): Define. - * m68k/lb1sf68.asm: Add MCF5200 support. - * m68k.md (adddi_sexthishl32): Set condition to !TARGET_5200. - (subdi_sexthishl32, ashrdi3, ashrhi3): Likewise. - (negdi2): Change into define_expand. - (negdi2_internal): Rename from old negdi2; condition now !TARGET_5200. - (negdi2_5200): New insn. - * m68k.c (output_function_prologue): Don't use add.w if TARGET_5200. - (output_function_epilogue): Likewise. - - * m68k.md (movqi): Remove complex cases which move between address reg - and memory; rely on secondary reloads instead. - -Fri Jul 19 12:22:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * fixproto (std_files): Add utime.h. - -Fri Jul 19 10:59:46 1996 Jeffrey A Law (law@cygnus.com) - - * m68k/m68kemb.h: Remove '\' at EOF. - -Fri Jul 19 09:59:00 1996 Joel Sherrill <joel@OARcorp.com> - - * m68k/coff.h (STARTFILE_SPEC): Add #undef before definition. - -Fri Jul 19 09:44:45 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * m68k.h (LEGITIMATE_INDEX_P): Coldfire does not have scale - by 8 addressing modes. - - * m68k-none.h: Use MASK_* macros instead of explicit constants. - -Fri Jul 19 09:08:53 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.md (negdi2): Undo last change: don't apply neg to address regs. - -Fri Jul 19 09:03:01 1996 Robert Wilhelm (rwilhelm@Physik.TU-Muenchen.DE) - - * toplev.c (main): Correct typo in error message. - -Thu Jul 18 20:29:33 1996 Jim Wilson <wilson@cygnus.com> - - * Makefile.in (OBJS): Add dwarf2out.o. - (dwarf2out.o): New rule. - * dwarf2.h, dwarf2out.c: New files. - * dwarfout.c: Check DWARF_VERSION macro. - - * mips/iris6.h (DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): - Move after header files are included. - (iris5.h): Include instead of iris5gas.h. - (MACHINE_TYPE): Change 5.x to 6.x. - (DEBUG_SECTION, LINE_SECTION): Add debug_ to name, fix attributes. - (SFNAMES_SECTION, SRCINFO_SECTION, MACINFO_SECTION, PUBNAMES_SECTION, - ARANGES_SECTION): Fix attributes. - (DWARF_VERSION, MIPS_DEBUGGING_INFO, ASM_DECLARE_FUNCTION_NAME, - ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED, - FRAME_SECTION, ABBREV_SECTION): Define. - (DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, MIPS_DEBUGGING_INFO, - DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_INFO): Delete undefs at - end of file. - * mips.c (function_{pro,epi}logue): Use FUNCTION_NAME_ALREADY_DECLARED. - -Thu Jul 18 19:24:19 1996 David Mosberger-Tang <davidm@azstarnet.com> - - * alpha/elf.h (INT_ASM_OP): Change from ".long" to ".quad". - -Thu Jul 18 19:20:58 1996 Ulrich Drepper <drepper@myware.rz.uni-karlsruhe.de> - - * stddef.h: Undefine __need_wint_t. - -Thu Jul 18 19:06:35 1996 J.T. Conklin <jtc@hippo.cygnus.com> - - * longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd - for the '020, '030, '040, and '332. Define count_leading_zeros - for the '020, '030, '040, and '060. - - * m68k.md: Add TARGET_5200 to conditions which determine whether - the extbl instruction is emitted. - (mulsi3): Enable pattern with TARGET_5200. - - * m68k.md (add patterns): Don't use two addqw instructions when - adding small (8 < N <= 16) integers to address registers on 68040. - -Thu Jul 18 18:06:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure: Write target_alias in Makefile. - (i[3456]86-*-sco3.2v4*): Set truncate_target. - * Makefile.in (target_alias): New and used for all current uses - of `target'. - -Thu Jul 18 17:46:02 1996 Dave Love <d.love@dl.ac.uk> - - * gcc.c (default_compilers): Extra Fortran extensions. - -Wed Jul 17 10:28:10 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> - - * expmed.c (expand_mult_highpart): Revert last change. - -Tue Jul 16 12:51:59 1996 Doug Evans <dje@cygnus.com> - - * sparc/sparc-rtems.h: #include "sparc/sparc-aout.h" -> sparc/aout.h. - -Mon Jul 15 14:42:06 1996 Jim Wilson <wilson@cygnus.com> - - * mips/iris6.h (LINK_SPEC): Add -woff 84. - -Fri Jul 12 17:34:01 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi.asm (__eabi): Convert pointers in the Global Offset - Table if -mrelocatable. Move loops into separate subroutines for - ease of debugging. Reorganize code somewhat. - - * rs6000/rs6000.c (small_data_operand): Allow small data under - Solaris. - - * rs6000/sol-c0.c (_start): Initialize r13 to point to the small - data operand. - - * rs6000/sol-c{i,n}.asm (_init, _fini): Enable shared library - support. - - * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Default to - -msdata=data, even if -fpic or -mrelocatable. Allow -mrelocatable - and -mno-eabi. - (CPP_SYSV_SPEC): If -fpic, define __PIC__ and __pic__ to 1. If - -fPIC, define them to 2. - (CPP_ENDIAN_SPEC): Push definition of macros for specific endian - targets to new specs. - (CPP_ENDIAN_DEFAULT_SPEC): Define to use CPP_ENDIAN_BIG_SPEC. - (CPP_ENDIAN_{LITTLE,BIG,SOLARIS}_SPEC): New specs for little - endian mode, big endian mode, and Solaris, which can't define - _LITTLE_ENDIAN. Define __LITTLE_ENDIAN__ in all cases for little - endian systems. Define __BIG_ENDIAN__ in all cases for big endian - systems. - (SUBTARGET_EXTRA_SPECS): Add new specs. - - * rs6000/{eabile,sysv4le}.h (CPP_ENDIAN_DEFAULT_SPEC): Define to - use CPP_ENDIAN_LITTLE_SPEC. - - * rs6000/sol2.h (CPP_ENDIAN_LITTLE_SPEC): Define as - CPP_ENDIAN_SOLARIS_SPEC so that _LITTLE_ENDIAN is not define. - -Fri Jul 12 17:34:01 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.c (function_arg): Add IBM AIX XL compiler broken FP arg - passing compatibility mode. - * rs6000.h (TARGET_XL_CALL): Define default. - * aix3newas.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define. - * aix41.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define. - -Fri Jul 12 15:04:43 1996 Doug Evans <dje@cygnus.com> - - * arm.h (ASM_OUTPUT_MI_THUNK): Handle fns returning structures. - - * ptx4.h ({ASM,LINK}_SPEC): %{V} %{v:%{!V:-V}} -> %{v:-V}. - * svr4.h ({ASM,LINK}_SPEC): Likewise. - * dsp16xx/dsp16xx.h ({ASM,LINK}_SPEC): Likewise. - * i386/dgux.h (LINK_SPEC): Likewise. - * i386/sol2.h (LINK_SPEC): Likewise. - * m88k/dgux.h ({LINK,ASM_CPU}_SPEC): Likewise. - * sparc/sol2.h ({ASM,LINK}_SPEC): Likewise. - * sparc/sp64-elf.h ({ASM,LINK}_SPEC): Likewise. - * sparc/sysv4.h (ASM_SPEC): Likewise. - -Thu Jul 11 17:29:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (GOT_TOC_REGNUM): New macro for r2, which is used as a - marker for the GOT/TOC register to be allocated later. - (MACHINE_DEPENDENT_REORG): Call rs6000_reorg. - (rs6000_reorg): Add declaration. - - * rs6000.c (rs6000_got_register): Return REG 2, not a pseudo - register in order to work with inlined functions. - (rs6000_replace_regno): New function to replace a register with a - new pseudo register. - (rs6000_finalize_pic): Loop through all insns, replacing any - GOT_TOC_REGNUM registers with new pseudo register, and adding - initialization of GOT register if it was created. - (rs6000_reorg): New function to check whether the GOT_TOC register - marker was removed. - -Thu Jul 11 10:12:50 1996 Jeffrey A Law (law@cygnus.com) - - * h8300.h (OK_FOR_U): If generating H8/S code, accept - SYMBOL_REF and SYMBOL_REF + CONST_INT. - - * h8300.c ({shift,rotate}_one): Emit tabs between opcode and - operands to be consistent with the rest of the compiler. - (shift_two, rotate_two): Define. - (get_shift_alg): Accept new argument "assembler2_p" for - rotate/shift by two insns. All callers changed. Rework - to generate more efficient code on the H8/300, H8/300H, and H8/S. - Try to simplify somewhat. - (emit_a_shift): Use shift-by-two insns when they're available. - Emit tabs between opcode and operands to be consistent with - the rest of the compiler. - -Wed Jul 10 19:32:17 1996 Jim Wilson <wilson@cygnus.com> - - * mips/iris6.h (ASM_SPEC): Correct typos in Jun 18 change. - -Wed Jul 10 18:56:38 1996 Ian Lance Taylor <ian@cygnus.com> - - * sh.c (machine_dependent_reorg): When looking for instruction that - sets register in LOG_LINKS, skip link if REG_NOTE_KIND is not zero. - -Wed Jul 10 15:02:18 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (rs6000_got_register): New function to return a pseudo - register to hold the pic register. Abort if reload is in progress - or done. - (num_insns_constant): Allow SFmode and DFmode. - - * rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Redo 'G' so that it - means a constant that takes exactly two insns. - (rs6000_got_register): Add declaration. - - * rs6000.md (movsi_got): Move setup of pic register to - rs6000_got_register. - (movsf): If -msoft-float, don't force constants to memory. - (mov{sf,df} insns): If soft floating point, allow any constant to - be loaded. Add define_splits that allow the 604 to use both - integer units for loading constants. Make sure insn length is - correct. - -Tue Jul 9 17:05:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (easy_fp_constant): All FP constants are considered - hard for -fpic and hardware floating point, so that the GOT - register is created. - -Tue Jul 9 15:21:27 1996 Jim Wilson <wilson@cygnus.com> - - * x-iris6 (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. - -Mon Jul 8 18:00:33 1996 Jim Wilson <wilson@cygnus.com> - - * sh.h (enum reg_class): Add new class GENERAL_FP_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. - - * cse.c (note_mem_written): Varying structure memory access with - AND address can alias scalars. - * sched.c ({true,anti,output}_dependence): Likewise. - - * sh.c (calc_live_regs): For pragma_interrupt case, exclude call - clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG. - - * calls.c (expand_call): For assign_stack_temp call in PARALLEL case, - get mode from type instead of using BLKmode. - * function.c (aggregate_value_p): If hard_function_value returns - a non-REG, then return 0. - - * mips.c (function_arg): Add explicit checks for FIELD_DECLs. - (mips_function_value): Add explicit checks for FIELD_DECLs, and save - them in the array FIELDS. When returning structure with 1 float field, - enclose it in a PARALLEL and set the PARALLEL mode correctly. - * mips.md (call_value): Call gen_call_value_multiple_internal0 - only if there are multiple return values. Strip the PARALLEL off - if there is only one return value. - -Mon Jul 8 16:27:33 1996 Jeffrey A. Law <law@cygnus.com> - - * First cut at support for the H8/S. - * h8300.c (h8300_init_once): Handle the H8/S (treat it - like the H8/300H). - (dosize, adds_subs_operand, one_insn_adds_subs_operand): Likewise. - (output_adds_subs, const_costs, print_operand): Likewise. - (output_simode_bld, h8300_adjust_insn_length): Likewise. - (push_order, pop_order): Reverse. - (function_prologue): Try to use ldm.l and stm.l insns - on the H8/S. Minor cleanups. - (function_epilogue): Likewise. - (asm_file_start): Emit ".h8300s" when compiling for the H8/S. - * h8300/h8300.h (CPP_SPEC): Handle the H8/S. - (TARGET_H8300S): New target. - (TARGET_SWITCHES): Add "-ms" and "-mno-s". - (BITS_PER_WORD): Handle the H8/S (treat it like the H8/300H). - (UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY): Likewise. - (BIGGEST_ALIGNMENT, BIGGEST_FIELD_ALIGNMENT): Likewise. - (INITIALIZE_TRAMPOLINE, MOVE_MAX, Pmode): Likewise. - * h8300.md: Handle H8/S just like H8/300H - throughout the entire file. - * t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries too. - (MULTILIB_DIRNAMES): Put H8/S libraries in "h8300s" directory. - * h8300/lib1funcs.asm: Emit ".h8300s" pseudo-op when generating - h8300s object files. Otherwise treat the H8/S just like the H8/300H. - * ginclude/stdarg.h: Handle the H8/S. - * ginclude/varargs.h: Likewise. - -Mon Jul 8 14:50:58 1996 Doug Evans <dje@cygnus.com> - - * sparc/sol2.h (LINK_SPEC): Don't pass `-z text' if - -shared -mimpure-text. - -Sun Jul 7 18:03:46 1996 Torbjorn Granlund <tege@noisy.tmg.se> - - * m68k/lb1sf68.asm (__udivsi3): Use faster tstw instead of btst. - -Thu Jul 4 11:44:39 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (get_inner_reference): Delete using alternate mode for - bitfield; we don't make bitfields anymore if not needed. - -Wed Jul 3 18:23:17 1996 Stephen L Moshier (moshier@world.std.com) - - * c-common.c (record_function_format): Define as static. - - * collect2.c (at SUNOS4_SHARED_LIBRARIES): Fix reference to unistd.h. - -Wed Jul 3 17:35:20 1996 Gavin Koch <gavin@cygnus.com> - - * c-typeck.c (default_conversion): Add bitfield promotions. - -Wed Jul 3 17:09:22 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * gcc.c (default_compilers): Add null entries for languages we - heard of. - (main): If found one of those entries, say compiler not installed. - -Wed Jul 3 12:52:53 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.c (fmpy_operands): Define. - (combinable_{fmpy,add,fsub}): New function. - * pa.md (parallel_addb, parallel_movb): New patterns. - (fmpyadd, fmpysub): New patterns. - - * pa.c (fmpy{add,sub}operands): Tighten checks. Allow SFmode. - -Tue Jul 2 18:57:15 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.c (ireg_or_int5_operand): New function. - (output_parallel_movb, output_parallel_addb): Likewise. - (combinable_copy, combinable_add, following_call): Likewise. - (pa_adjust_insn_length): Handle parallel unconditional branches. - (output_movb): Handle case were destination is %sar. - * pa.h: Declare new functions. - * pa.md (parallel_branch): New "type" attribute. - (delay slot descriptions): Don't allow "parallel_branches" in - delay slots. Fill "parallel_branches" like "branch" insns. - (movb patterns): Handle %sar as destination register. - - * expr.c (compare): If function pointers need canonicalization - before comparisons, canonicalize them. - (do_store_flag): Do not use an sCC insn for a function pointer - comparison if function pointers need canonicalization before - comparing. - -Tue Jul 2 17:56:37 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h ({START,END}FILE_LINUX_SPEC): If -mnewlib is not - used, use the crtbegin/crtend that 2.7.2 used. - -Sat Jun 29 07:10:02 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders. - (RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing - argument area. - (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise. - (frame_pointer_needed): Add external declaration. - (rs6000_{save,restore}_machine_status): Ditto. - (rs6000_init_expanders): Likewise. - - * rs6000.c (rs6000_{save,restore}_machine_status): New functions - to save and restore the globals needed on a per function basis. - (rs6000_init_expanders): Initialize globals needed on a per - function basis, and set up so the above save/restore functions are - called when processing nested functions. - (output_epilog): Don't initialize per function globals here. - (rs6000_stack_info): Change where fpmem save area is to below local - variables, and not just below the outgoing argument area. - - * rs6000.md (floatsidf2*, fix_truncdfsi2*): Rewrite conversion - routines to track new location of the fpmem save area. Allocate a - new base register temp for the routines in case the stack frame is - more than 32k in size. - -Sat Jun 29 05:44:37 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * explow.c (convert_memory_address, case PLUS): Fix error in - last change. - -Fri Jun 28 23:30:48 1996 Jeffrey A. Law <law@cygnus.com> - - * reload1.c (choose_reload_regs): Properly mark spill registers - as in use for inherited reloads. - -Fri Jun 28 18:37:20 1996 Stephen L Moshier <moshier@world.std.com> - - * objc/sarray.c (ifdef __alpha__): Don't declare `free'. - * objc/thr-decosf1.c (objc_thread_id): Use pthread_getunique_np - to obtain a thread ID value. - (objc_mutex_allocate): Cast mutex->owner to _objc_thread_t. - (objc_mutex_{deallocate,unlock}): Likewise. - (objc_mutex_{try,un,}lock): Declare thread_id as _objc_thread_t. - - * real.c (asctoeg): `0.0eX' is zero, regardless of the exponent X. - -Fri Jun 28 18:33:13 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * vax.md (rotl): Remove extraneous `$'. - - * combine.c (previous_num_undos): Deleted variable. - (MAX_UNDO): Deleted macro. - (struct undo): New field, next. - (struct undobuf): Deleted num_undos and undo. - New fields undos, frees, and previous_undos. - (SUBST, SUBST_INT): Rework to allocate memory and chain undo entries. - (combine_instructions): Initialize undobuf.{undos,previous_undos}, - not undobuf.num_undo and previous_num_undos. - (try_combine): Likewise. - (undo_all, gen_rtx_combine): Rework to use new data structures. - -Fri Jun 28 16:48:25 1996 Scott Christley <scottc@net-community.com> - - * objc/sendmsg.c (__objc_block_forward): New function. - (get_imp, objc_msg_lookup): Use different forwarding function - when the returning a floating point value. - -Fri Jun 28 16:25:25 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * configure: Allow multiple makefile frags. - (i[3456]86-*-linux*oldld*): Add i386/t-crtstuff as target frag. - (i[3456]86-*-linux*aout*, i[3456]86-*-linux*): Likewise. - (m68k-*-linux*aout*): Add t-linux-aout as target frag. - (m68k-*-linux*): Add t-linux as target frag. - * Makefile.in (Makefile): xmake_file and tmake_file now already - contain the $(srcdir)/config prefix. - - * config/t-linux (BOOT_CFLAGS): Removed, no longer necessary. - (CRTSTUFF_T_CFLAGS): Don't define. - (CRTSTUFF_T_CFLAGS_S): Define this instead. - * config/t-linux-aout (BOOT_CFLAGS): Removed. - * m68k/t-linux: Remove variables now in t-linux. - -Fri Jun 28 15:06:05 1996 John F. Carr <jfc@mit.edu> - - * alpha.c (alpha_emit_conditional_move): Emit correct code when - incoming comparison code is NE. - -Fri Jun 28 14:35:45 1996 J.T. Conklin <jtc@hippo.cygnus.com> - - * c-decl.c (init_decl_processing): Register __builtin_memset - and memset as builtin functions. - * expr.c (expand_builtin, case BUILTIN_MEMSET): Open code memset - where val == 0. - -Fri Jun 28 14:10:03 1996 Richard Henderson <rth@tamu.edu> - - * alpha/linux.h (FUNCTION_PROFILER): _mcount has non-standard linkage. - * alpha/elf.h (LINK_SPEC): Bring emulation name into sync - with Cygnus snapshot. - - * alpha.h ({MASK,TARGET}_BUILD_CONSTANTS): New macros. - (TARGET_SWITCHES): New target option build-constants. - * alpha.c (alpha_emit_set_long_const): New function. - * alpha.md (movdi): Call it. - * expmed.c (expand_mult_highpart): Use op1 not wide_op1 in - expansion of mul_highpart. - - * alpha.c (output_{pro,epi}log): Flag_inhibit_size_directive - should supress .ent, .end, and accompanying directives. - (alpha_output_lineno): Fix polarity on GAS test. - * alpha.h (NO_DBX_FUNCTION_END): New macro. - * dbxout.c (dbxout_function): Respect NO_DBX_FUNCTION_END. - * alpha/elf.h: New file. - * alpha/linux.h (INITIALIZE_TRAMPOLINE): New definition. - * alpha/xm-linux.h (HAVE_STRERROR): Define. - * configure (alpha*-linux*ecoff*): New target, was alpha-*-linux*. - (alpha-*-linux*): Use elf.h. - * crtstuff.c (init_dummy): Only i386-linux (at most) - needs ___brk_addr hack. - -Thu Jun 27 20:23:30 1996 Jon Buller (jonb@metronet.com) - - * ns32k.c (split_di): New; from i386.c. - * ns32k.md (adddi3, subdi3, negdi3): New patterns. - -Thu Jun 27 19:42:50 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (force_to_mode, case NE): Fix typo and logical error. - (simplify_comparison): Don't swap args if op1 is CONST_INT. - -Thu Jun 27 18:49:35 1996 Jim Wilson <wilson@cygnus.com> - - * expmed.c (extract_bit_field): Check TRULY_NOOP_TRUNCATION before - making a SUBREG of a REG. - -Thu Jun 27 11:03:59 1996 Ian Lance Taylor <ian@cygnus.com> - - * mips.h (CC1_SPEC): Put spaces between the -mips* cases. - * mips/osfrose.h (CC1_SPEC): Likewise. - - * sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if insn is - inside sequence. - -Wed Jun 26 19:09:43 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (CMP_PSI): Delete. - (FUNCTION_POINTER_COMPARISON_MODE): Likewise. - * pa.md (cmppsi): Delete expander. - (canonicalize_funcptr_for_compare): Renamed from plabel_dereference, - turned into an expander + anonymous pattern. - -Tue Jun 25 22:36:11 1996 Doug Evans <dje@seba.cygnus.com> - - * gcc.c (PEXECUTE_VERBOSE): Define. - (execute): Pass PEXECUTE_VERBOSE to pexecute if -v. - -Tue Jun 25 12:23:54 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (FINALIZE_PIC): Define to call rs6000_finalize_pic. - (rs6000_finalize_pic): Add declaration. - (svr4_traceback): Delete unused declaration. - - * rs6000.md (movsi_got): Don't emit gen_init_v4_pic insn. - (V.4 call insns): Do not use @plt for PIC calls. - - * rs6000.c (print_operand_address): Handle LABEL_REF just like - SYMBOL_REF. - (rs6000_finalize_pic): Define, emit the gen_init_v4_pic insn - before all other insns if needed for V.4 PIC calls. - - * eabi-ci.asm (_GLOBAL_OFFSET_TABLE_): Do not provide a default - definition, since it interferes with the linker generated version. - -Tue Jun 25 01:17:50 1996 Jeffrey A. Law <law@cygnsu.com> - - * h8300.c (function_prologue): Update "monitor" prologues. - (function_epilogue): Similarly. - - * pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are - loaded "statically". - -Mon Jun 24 19:48:36 1996 Joel Sherrill <joel@merlin.gcs.redstone.army.mil> - - * configure ({i386,i960,m68k,powerpc,sparc}-rtems): New targets. - * i386/go32-rtems.h, i386/i386-rtems.h: New files. - * i960/i960-rtems.h: New file. - * m68k/m68k-rtems.h: New file. - * rs6000/powerpc-rtems.h: New file. - * sparc/sparc-rtems.h: New file. - -Mon Jun 24 23:09:22 1996 Paul Eggert <eggert@twinsun.com> - - * cccp.c: (create_definition): Diagnose `#define #' only once. - -Mon Jun 24 11:42:58 1996 Jim Wilson <wilson@cygnus.com> - - * i386/cygwin32.h, rs6000/cygwin32.h (CPP_PREDEFINES): For consistency, - change to define WIN32, WINNT, and CYGWIN32. - -Mon Jun 24 10:46:50 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (floatsidf2*): Move the xor of the argument into the - define_insn, since it confuses inline function expands. - -Fri Jun 21 20:40:17 1996 Jim Wilson <wilson@cygnus.com> - - * mips.md (call_internal1, call_value_internal1): Delete obsolete code. - (call_internal2, call_value_internal2, call_value_multiple_internal2): - Delete obsolete code. Explicitly load SYMBOL_REF into register. - (call_value): Change Pmode to SImode in gen_call_value_internal0 call. - -Thu Jun 20 12:20:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure (*-aix*): If building a cross compiler, use t-xnewas - instead of t-newas. - - * rs6000.c (num_insns_constant_wide): Fix typo if HOST_WIDE_INT - has more than 32 bits. - -Wed Jun 19 17:50:33 1996 Richard Henderson <richard@atheist.tamu.edu> - - * combine.c (move_deaths): New parameter maybe_kill_insn. - Don't move note if reg killed by maybe_kill_insn. - (try_combine): Pass new arg to move_deaths. - -Wed Jun 19 10:44:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * toplev.c (flag_keep_static_consts): Define. - (f_options): Add "keep-static-consts" entry. - (compile_file): Check it in addition to !optimize for emitting - static const variables. - -Tue Jun 18 23:37:20 1996 Doug Evans <dje@cygnus.com> - - * i386/cygwin32.h (ASM_OUTPUT_SOURCE_LINE): Local symbols begin with L. - -Tue Jun 18 12:00:11 1996 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (asm_output_aligned_bss): Don't emit a skip of size 0. - -Tue Jun 18 06:24:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (expand_inline_function): Add missing call to - force_operand when getting structure_value_addr into reg. - - * alpha.c (override_options): Allow EV4/5 or 21064/21164 for cpu. - Clean up handling of floating-point options. - * alpha.h (TARGET_SWITCHES): Have all -mieee options turn - on MASK_IEEE_CONFORMANT. - (TARGET_DEFAULT): Use symbolic value. - * alpha.md: When not involving named pattern, update condition - to include alpha_tp != ALPHA_TP_INSN. - Don't do float_extend as part of other pattern when ALPHA_TP_INSN. - (extendsfsd2): Split into two patterns, depending on - value of alpha_tp. - - * mips/iris6.h (ASM_SPEC): Treat -o32 as -32 and -n64 same as -64. - * mips.c (override_options): Likewise. - - * genattrtab.c (fatal): Declare A1 and A2 as char *. - - * function.c (find_temp_slot_from_address): Check for overlap - from BASE_OFFSET if X is PLUS of virtual_stack_vars_rtx and const. - - * flow.c (flow_analysis): Fix typo in last change. - - * expr.c (expand_builtin, case BUILT_IN_{SET,LONG}JMP): Properly - handle case when ptr_mode != Pmode. - - * combine.c (try_combine): Don't use split if dest of new I2 - is used between I2 and I3. - - * c-typeck.c (pointer_int_sum): Convert integer to both signedness - and precision of sizetype. - * explow.c (convert_memory_address, case PLUS, MULT): Don't commute - operation with extension if not adding small integer. - - * Makefile.in (BOOT_LANGUAGES): New variable. - (bootstrap): Use it to select languages for stage1. - * configure (extra_host_objs): New variable. - Separate files needed for target and host and concatenate list. - (extra_gcc_objs): Use setting for host, not target. - (objc_thread_file): Start with it as null, then don't include "thr-". - Print name of file after others and in same format. - (alpha-*-winnt*, i[3456]86-*-winnt): oldnames.o is in extra_host_objs. - (all_boot_languages): New variable. - Set from boot_language variable in config-lang.in. - Defines value of BOOT_LANGUAGES in Makefile. - (Makefile): Set target to the canonical form of target. - -Mon Jun 17 22:37:07 1996 Mike Meissner <meissner@rtl.cygnus.com> - - * rs6000/win-nt.h (ASM_DECLARE_FUNCTION_NAME): Put function - descriptor in .reldata, not .text. - -Mon Jun 17 16:05:34 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * ginclude/stddef.h (wint_t): Don't wrap with #ifndef __cplusplus. - -Mon Jun 17 15:03:20 1996 Jim Wilson <wilson@cygnus.com> - - * mips.c (mips_split_addresses): New variable. - (simple_memory_operand): Add comment about mode check. Add check - for LO_SUM. - (call_insn_operand): OP is now an addresses instead of a MEM. - (move_operand, mips_check_split): New functions. - (mips_count_memory_refs): Add check for LO_SUM. - (mips_move_1word): Add HIGH support. - (mips_address_cost): Delete check for HIGH. - (output_block_move): Handle LO_SUM addresses. - (override_options): Set mips_split_addresses. - (print_operand_address): Add LO_SUM support. - * mips.h (mips_split_addresses, mips_check_split, move_operand): - New declarations - (GO_IF_LEGITIMATE_ADDRESS): Reject constant addresses when - mips_split_addresses is TRUE. Add LO_SUM support. - (LEGITIMIZE_ADDRESS): Add LO_SUM support. - (PREDICATE_CODES): Modify call_insn_operand support. Add - move_operand. - * mips.md (memory): Change r4100/r4300 support. - (imuldiv): Add r4300 support. - (high, low): New patterns. - (movsi, movdi): Add LO_SUM support. - (movsi_internal1, movsi_internal2): Use move_operand instead of - general_operand. - (movstrsi_internal, movstrsi_internal2): Delete R constraint. - (call, call_value): Pass address instead of MEM to call_insn_operand. - Call gen_call_{value_}internal0 instead of internal1. - (call_internal0, call_value_internal0, call_multiple_internal0): - New patterns. - (call_internal1, call_internal2, call_value_internal1, - call_value_internal2, call_value_multiple_internal2): Add explicit - MEM before target address. - -Sun Jun 16 23:05:16 1996 Jeffrey A. Law <law@cygnus.com> - - * configure (hppa*-hp-hpux10*): Use new pa-hpux10 configuration file. - (hppa*-hp-hpux*): Use hpux9 configuration files by default. - * pa/pa-hpux10.h: New file. - * pa/pa-ghpux9.h: Deleted. No longer used. - -Sat Jun 15 04:35:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> - - * i386/gnu.h (LINK_SPEC): Remove -rpath /lib/ option. - Ignore -ibcs option. - -Thu Jun 13 14:49:41 1996 Jim Wilson <wilson@cygnus.com> - - * gen-protos.c (main): Change argv[i] to argv[0][i]. - -Thu Jun 13 10:46:24 1996 Doug Evans <dje@cygnus.com> - - * gcc.c (pfatal_pexecute): Delete code to check errno < sys_nerr. - -Wed Jun 12 21:47:10 1996 Eliot Dresselhaus <dresselh@rft30.nas.nasa.gov> - - * alpha.c (alpha_cpu, alpha_cpu_string): New variables. - (override_options): Process -mcpu= value. - (alpha_adjust_cost): Handle adjustments for EV5. - * alpha.h (enum processor_type): New enum. - (alpha_cpu, alpha_cpu_string): New declarations. - (target_options): Add "cpu=". - (RTX_COSTS): Adjust values for EV5. - * alpha.md: Add scheduling rules for EV5. - -Tue Jun 11 17:51:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (check_format_info): Change text of message about use - of `0' with precision. - -Tue Jun 11 15:14:10 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.h (TARGET_SCHEDULE_PROLOGUE): New. Allows prologue to - be emitted as asm or rtl. - - * i386.c (function_prologue): Emit prologue as asm. - (override_options): Don't emit rtl for prologue if -fpic. - -Tue Jun 11 14:41:01 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi.asm (__eabi): Fix normal code so that it properly - loads up r2/r13 if needed again. - - * rs6000/sysv4.h (CPP_ENDIAN_SPEC): Call cpp_endian_default, not - cpp_endian_default_spec. - -Mon Jun 10 15:10:56 1996 Jeffrey A. Law <law@cygnus.com> - - * local-alloc.c (update_equiv_regs): Ignore insns that read or - write registers that are likely to be spilled. - - * pa.h (cmp_type): Add CMP_PSI. - (FUNCTION_POINTER_COMPARISON_MODE): Define. - * pa.md (cmppsi): New expander. - (plabel_dereference): New pattern - -Mon Jun 10 14:56:14 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sol2.h (SKIP_ASM_OP): Delete, Solaris accepts .space, - like rest of PowerPC V4 ports. - - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Emit .lcomm if not - using the .sbss area. If using the .sbss area, put out - appropriate .size directive. - -Mon Jun 10 14:53:38 1996 Doug Evans <dje@cygnus.com> - - * Move fork/exec/wait handling into file of its own. - * pexecute.c: New file. - * Makefile.in (pexecute.o): Add rule. - (xgcc): Link in pexecute.o. - (protoize,unprotoize): Likewise. - * gcc.c (_WIN32): Don't include process.h or declare spawnv{,p}. - (pexecute,pwait): Add prototypes. - (PEXECUTE_{FIRST,LAST,SEARCH}): Define. - (execv,execvp): Delete decls. - (perror_exec): Delete. - (pfatal_pexecute): New function. - (pexecute support): Delete. - (execute): -pipe not supported if _WIN32 or OS2. - Update call to pexecute. Fatal error if pexecute fails. Call pwait. - * protoize.c: Include gansidecl.h. - (my_execvp): Delete. - (choose_temp_base,pexecute,pwait): Declare. - (PEXECUTE_{FIRST,LAST,SEARCH}): Define. - (execvp): Delete decl. - (usage): Fix typo. - (gen_aux_info_file): Rewrite to use pexecute/pwait. - - * gcc.c (do_spec_1): Allow leading text in version string. - Delete support for default minor number = 0. - -Mon Jun 10 11:49:53 1996 Scott Christley <scottc@net-community.com> - - * objc/Makefile (libobjc.a): Don't delete the library. - - * objc/thr.h (objc_set_thread_callback): New function. - (objc_thread_callback): Typedef for the hook function. - * objc/thr.c (__objc_thread_detach_function): Clear thread storage. - Call the thread hook function when first becoming multi-threaded. - (objc_set_thread_callback): New function. - - * objc/selector.c (__sel_register_typed_name): Additional parameter - that indicates whether name and type parameters are constant or not. - * objc/runtime.h (__sel_register_typed_name): Likewise. - * objc/init.c (__sel_register_typed_name): Likewise. - - * objc/init.c (__objc_init_protocols): Need to unlock mutex. - -Mon Jun 10 11:44:44 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc/t-sol2 (gmon.o): Depend on stmp-int-hdrs. - (crt1.o, crti.o, crtn.o, gcrt1.o): Depend on $(GCC_PASSES). - -Mon Jun 10 11:29:46 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * flow.c (flow_analysis, find_basic_blocks): Ignore - nonlocal_label_list for CALL_INSN that has a REG_RETVAL. - - * c-common.c (decl_attributes, case A_T_UNION): Don't look at fields - of union if there aren't any. - -Sat Jun 8 22:13:33 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (ix86_expand_prologue): Keep pic register load ahead - of reference which may use a pic register. - -Sat Jun 8 22:13:33 1996 Jim Wilson <wilson@cygnus.com> - - * i386.md (strlensi_unroll4, strlensi_unroll5): Use + not =& for - constraint for input/output operand 2. - -Sat Jun 8 22:13:33 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.h (CONST_COSTS): Even integer constants have a cost. - (RTX_COSTS): Take costs of subexpressions into account. - If a multiply is actually a shift, use the cost of the shift. - * i386/unix.h (SHIFT_DOUBLE_OMITS_COUNT): New macro. - * i386/{gas, next, seq-gas}.h (SHIFT_DOUBLE_OMITS_COUNT): Redefine - as zero. - * i386.c (print_operand): new letter 's'. - -Sat Jun 8 15:13:33 1996 Jim Wilson <wilson@cygnus.com> - - * mips.c (override_options): Add vr4100 and vr4300 support. - * mips.h (enum processor_type): Likewise. - (MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros. - (TARGET_SWITCHES): Add -mfix4300 option. - * mips.md (cpu, memory, imuldiv, adder, mult, divide): Add - vr4100 and vr4300 support. - (muldf3, mulsf3): Add vr4300 support. - (muldf3_internal, muldf_r4300, mulsf3_internal, mulsf_r4300): New - patterns. - -Sat Jun 8 14:35:23 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * toplev.c (main): Re-enable -gxcoff+. - -Sat Jun 8 14:20:14 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * m68k/lb1sf68.asm (__{eq,ne,gt,lt,ge,le}{df,sf}2): Removed - extraneous comments, constants, labels, etc. - - * m68k/altos3068.h (TARGET_DEFAULT): Use MASK_* macros - instead of explicit constants in definitions or conditionals. - * m68k/{apollo68, aux, ccur-GAS, dpx2, hp320, hp3bsd}.h: Likewise. - * m68k/{hp3bsd44, isi-nfp, isi, linux-aout, linux}.h): Likewise. - * m68k/{lynx-ng, lynx, m68k-none, m68k-psos, m68kv4}.h): Likewise. - * m68k/{mot3300, netbsd, news, next, pbb, plexus, sun2o4}.h): Likewise. - * m68k/{sun3, sun3n, tower}.h): Likewise. - -Sat Jun 8 13:55:23 1996 Matthias Pfaller (leo@marco.de) - - * ns32k.md (define_insns for ffs[qhs]i2): Deleted. - (define_expand for ffssi2): New pattern. - -Sat Jun 8 13:44:14 1996 Stephen L Moshier (moshier@world.std.com) - - * reload.c (find_equiv_reg): Set need_stable_sp if GOAL is the - stack pointer. - -Sat Jun 8 13:36:05 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (fixup_var_refs_1, case SIGN_EXTEND): Handle - paradoxical SUBREGs as first operand. - (fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as - first operand of a ZERO_EXTRACT in SET_DEST. - - * c-common.c (enum attrs): Add A_FORMAT_ARG. - (init_attribute): Initialize it. - (decl_attributes, case A_FORMAT): Clean up error messages. - (decl_attributes, case A_FORMAT_ARG): New case. - (struct international_format_info): New structure and typedef. - (international_format_list): New variable. - (record_international_format): New function. - (init_format_info): Call it for gettext, dcgettext, and dcgettext. - (check_format_info): See if format arg is call to - internationalization function. - -Fri Jun 7 20:04:40 1996 Jim Wilson <wilson@cygnus.com> - - * gcc.c (MULTILIB_SELECT): Delete definition. - (multilib_select): Delete static initializer. - (multilib_obstack, multilib_raw): New global variables. - (multilib.h): Include inside multilib_raw definition. - (main): Set multilib_select from multilib_raw. - * genmultilib: Change output to be a sequence of short strings - separated by commas rather than a single long macro definition. - - * cse.c (simplify_binary_operation, case MULT): Check for case - where width is larger than HOST_BITS_PER_WIDE_INT, and upper most - bit is set. We can not generate a simple shift in this case. - - * gsyms.h (enum sdb_type): Add T_LNGDBL if EXTENDED_SDB_BASIC_TYPES. - (enum sdb_masks): Add EXTENDED_SDB_BASIC_TYPES masks. - * sdbout.c (gsyms.h): Include if CROSS_COMPILE is defined. - (plain_type_1): Use TYPE_PRECISION instead of TYPE_SIZE. - Add check for LONG_DOUBLE_TYPE_SIZE if EXTENDED_SDB_BASIC_TYPES. - * i960.h (EXTENDED_SDB_BASIC_TYPES): Define. - (PUT_SDB_TYPE): Delete now unnecessary shifting and masking. - - * i960.h (i960_output_move_{double,quad}): Declare. - -Fri Jun 7 19:22:09 1996 Scott Christley <scottc@net-community.com> - - * Makefile.in (OBJC_THREAD_FILE): New variable. - * configure (objc_thread_file): Set new variable to appropriate - values based upon target operating system; default is `thr-single'. - * objc/Makefile (OBJC_THREAD_FILE): Add target and dependency. - (thr.o): Remove OS specific thread files as dependencies. - * objc/thr-decosf1.c: Now compiles as a separate source file, so - include appropriate Objective-C headers. - * objc/thr-{mach,os2,posix,irix,single,solaris,win32}.c: Likewise. - * objc/thr.c: Remove inclusion of source files. - * objc/thr.h (__objc_thread_exit_status): Declare global variable. - * objc/thr-pthreads.c: New file. - -Fri Jun 7 19:04:04 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * m68k.h (TARGET_SWITCHES): Treat -m68302 like -m68000 and -m68332 - like -m68020; remove -mno-68302 and -mno-68332. - -Fri Jun 7 12:06:12 1996 Per Bothner <bothner@deneb.cygnus.com> - - * expr.c (safe_from_p): Allow Chill-style variable-sized arrays. - -Thu Jun 6 23:11:11 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (h8300_monitor_function_p): New function. - (h8300_os_task_function_p): Likewise. - (os_task, monitor): Variables to note if the current - function is an os_task or monitor. - (function_prologue): Set monitor and/or os_task as needed. Handle - os_task and monitor functions. - (function_epilogue): Clear monitor and os_task. Handle os_task and - monitor functions. - (h8300_valid_machine_decl_attribute): Accept "OS_Task" and - "monitor". - -Thu Jun 6 20:01:54 1996 Per Bothner <bothner@cygnus.com> - - * gen-protos.c (progname): New variable (needed by cppalloc.c). - (main): Set progname. - - * cpplib.h (struct parse_file): Removed. - (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, CPP_OUT_BUFFER): New macros. - * cpphash.c (cpp_lookup): Change struct parse_file -> cpp_reader. - - * cpplib.c (init_parse_option): Renamed to cpp_options_init. - (push_parse_file): Renamed to ... - (cpp_start_read): Change to return 1 on success, 0 on failure. - (init_parse_file): Renamed to cpp_reader_init. - * cppmain.c (main): Use CPP_SET_WRITTEN and cpp_fatal. - Use renamed function names, and return protocols. - * fix-header.c (read_scan_file): Likewise. - - * cpperror.c (cpp_message): Generalize for "fatal" errors. - (cpp_fatal): New function (just calls cpp_message). - * cpplib.c (cpp_start_read, cpp_handle_options, cpp_finish, - parse_goto_mark, parse_move_mark): Use cpp_fatal rather than fatal. - - * fix-header.c (check_macro_names): Fix struct parse_file->cpp_reader. - * cpplib.c (newline_fix): Remove unused function. - -Thu Jun 6 19:47:26 1996 Jim Wilson <wilson@cygnus.com> - - Changes to support parameters and return values in multiple - non-contiguous locations. - * calls.c (expand_call): Handle NIL in PARALLEL. Handle PARALLEL - parameter in REG. Handle PARALLEL return value in VALREG. - (emit_library_call, emit_library_call_value): Abort for PARALLEL. - (store_one_arg): Delete code for handling EXPR_LIST. - * expr.c (emit_group_load, emit_group_store): New functions. - (use_group_regs): New function. - (emit_push_insn): Handle PARALLEL parameter in REG. - (expand_assignment): Handle PARALLEL to_rtx. - (store_expr): Handle PARALLEL target. - * expr.h (emit_group_load, emit_group_store, use_group_regs): New - declarations. - * function.c (assign_parms): Handle PARALLEL parameter in ENTRY_PARM. - * stmt.c (expand_value_return): Handle PARALLEL return_reg. - - * mips/abi64.h (TYPE_DEPENDENT_REG): Delete. - * mips.c (function_arg): Return PARALLEL for structure with - aligned double fields. - (type_dependent_reg): Delete. - (mips_function_value): Return PARALLEL for structure - with two floating point fields. - * mips/mips.md (call_value): Handle PARALLEL in operands[0]. - (call_value_multiple_internal2): New pattern. - * pa.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST. - * rs6000.c (init_cumulative_args): Change EXPR_LIST to PARALLEL - in comments. - (function_arg): Generate PARALLEL instead of EXPR_LIST. - -Thu Jun 6 18:21:27 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (assign_parms): Tighten up code that makes REG_EQUIV - notes for parms. - - * fold-const.c (fold): Don't do anything with evaluated SAVE_EXPR. - -Thu Jun 6 17:54:07 1996 J.T. Conklin <jtc@cygnus.com> - - * m68k.h (TARGET_SWITCHES): Group all floating point options. - When an fp option is selected, unset bits used for other mutually - exclusive fp options. - (OVERRIDE_OPTIONS): Remove special case for SUPPORT_SUN_FPA; - bits used for 68881 and SKY are now cleared by TARGET_SWITCHES. - - * m68k.md (movsi_const0, movhi): Favor clr with TARGET_5200. - (add[qhs]3): Don't use two addqw/subqw insns to add small integers to - an address register with TARGET_68060. - (stack push peephole): Use moveq.l with TARGET_5200 (when appropriate). - - * m68k.h (MASK_5200, TARGET_5200): New macros. - (TARGET_SWITCHES): Add "m5200". - (LEGITIMATE_INDEX_P): Add TARGET_5200 to conditional expression. - * m68k.c (const_method): Do not synthesize long constants - with byte or word operations with TARGET_5200. - * m68k.md: Disable byte and word arithmetic, rotate, integer - divide, dbcc, etc. insns for TARGET_5200. - * m68k-none.h: (CPU_FPU_SPEC, CPP_SPEC, ASM_SPEC): Support m5200. - -Thu Jun 6 17:32:32 1996 Paul Eggert <eggert@twinsun.com> - - * fixproto (subdirs): Work around Solaris 2.5 - /usr/xpgr/bin/sed problem with \+\+. - -Thu Jun 6 15:06:27 1996 Jim Wilson <wilson@cygnus.com> - - * c-decl.c (grokdeclarator): Call pop_obstacks after creating - TYPE_DECL. - - * loop.c (strength_reduce): If HAVE_cc0 defined, disable auto_inc_opt - if it would put an insn between a cc0 setter/user pair. - -Thu Jun 6 13:06:54 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): If __sun__ is - defined, treat that as little endian. - -Wed Jun 5 20:04:53 1996 Jim Wilson <wilson@cygnus.com> - - * i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED. - - * sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define. - * sh.md (branch_true): Add comment about T-bit compares. - -Tue Jun 4 23:08:34 1996 Per Bothner <bothner@deneb.cygnus.com> - - * cpplib.h, cpplib.c: Remove support for !STATIC_BUFFERS. - * cpplib.h: Use unsigned char rather than U_CHAR. - * cpplib.h (cpp_reader): Add destructor #ifdef __cplusplus. - (cpp_cleanup): New prototype. - * cpplib.c (special_symbol, do_once, do_include, cpp_get_token): - Compare cpp_buffer against CPP_NULL_BUFFER, not NULL. - - * cpplib.c (dump_special_to_buffer): New function. - (initialize_builtins): Use it. - -Wed Jun 5 19:10:22 1996 Jeffrey A. Law <law@cygnus.com> - - * pa/pa.h (TEXT_SPACE_P): Fix thinko in last change. - -Wed Jun 5 16:25:51 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (ASM_DEFAULT_SPEC): Default to "", not -mpwr. - - * sysv4.h (SUBTARGET_SWITCHES): Add -mshlib. - (LINK_PATH_SPEC): Add -compat-bsd support from Solaris. - (LINK_SPEC): Eliminate %{b} and %{G}, since they conflict with GCC - switches. Defer shared library support to LINK_SHLIB_SPEC. Defer - target selection to LINK_TARGET_SPEC. - (LINK_SHLIB_SPEC): Provide two different versions, depending on - whether shared libraries are default or not. Make shared - libraries not default until linker is fixed. - (LINK_OS_*_SPEC): New specs for OS specific linker switches. - (SUBTARGET_EXTRA_SPECS): Add new specs. - - * {sol2,sysv4}.h (LINK_SPEC): Move Solaris link into general link spec. - - * {sysv4,sysv4le,eabile}.h (LINK_TARGET_SPEC): Only pass -oformat - to the linker if the user is changing the default endian format. - - * {sol2,linux,eabisim,eabilesim}.h (LINK_OS_DEFAULT_SPEC): Define - to use the appropriate OS link spec. - -Wed Jun 5 16:35:10 1996 Ian Lance Taylor <ian@cygnus.com> - - * ginclude/stddef.h: Fix typo: TYPE_ptrdiff_t to _TYPE_ptrdiff_t. - -Wed Jun 5 15:52:57 1996 Per Bothner <bothner@kalessin.cygnus.com> - - * varasm.c (output_constructor): Handle RANGE_EXPR in array index. - -Wed Jun 5 13:45:54 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sparc.md (*call_{address,symbolic}_struct_value_sp32): Allow - operand 2 to be const0_rtx. - -Tue Jun 4 16:43:44 1996 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (make_decl_rtl): Don't update DECL_ASSEMBLER_NAME for - local statics. - - * c-decl.c (start_decl): Always set DECL_COMMON on statics. - * varasm.c (assemble_variable): Only treat vars with DECL_COMMON - as common. - -Tue Jun 4 14:55:49 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.c (reloc_needed): New function. - * pa.h (TEXT_SPACE_P): Variables/constants with initializers - requiring relocs never live in the text space. - -Tue Jun 4 14:10:46 1996 Ian Lance Taylor <ian@cygnus.com> - - * sh.c (fp_zero_operand): Do not accept minus zero. - - * sh.h (ASM_OUTPUT_LOOP_ALIGN): Define. - (ASM_OUTPUT_ALIGN_CODE): Define. - (ADJUST_INSN_LENGTH): Add in bytes that may be added by - alignment. - * sh.c (output_branch): Run ADJUST_INSN_LENGTH in reverse to get - correct length. Just call abort rather than returning "bad". - (find_barrier): Adjust limits for possible alignment. - -Tue Jun 4 09:35:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/t-solaris: New target config file for PowerPC Solaris - without gas. - - * rs6000/t-ppc: Eliminate all multilib varients except for - software floating point. - - * configure (powerpcle-*-solaris*): If not --with-gnu-as, use - t-solaris, not t-ppc. - - * rs6000/sol2.h (MULTILIB_DEFAULTS): Add correct defaults for - Solaris. - - * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): Clone from svr4.h, omit - @progbits, since Solaris assembler doesn't like it. - (LIB_SOLARIS_SPEC): If -msolaris-cclib, add libabi.a. - ({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use explicit - pathnames for the Solaris compiler start/end files. - (ASM_SPEC): Pass -mno-regnames to the assembler. - -Mon Jun 3 19:40:10 1996 Jim Wilson <wilson@cygnus.com> - - * mips/abi64.h (CPP_SPEC): Make -mabi=n32 the default. - * mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT, MULTILIB_DEFAULTS, - ASM_SPEC, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. - * mips.md (tablejump_internal4+1): Fix typo in condition. - * mips/x-iris6 (CC, OLDCC): Define to be `cc -32'. - -Mon Jun 3 07:57:35 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.def ([LR]SHIFT_EXPR): Remove `a' from printed names. - - * sparc.md (call): Mask unimp operand to 12 bits, just like Sun. - - * expr.c (store_field): Fix typo in last change; update TARGET addr. - - * c-decl.c (start_struct): Set TYPE_PACKED from flag_pack_struct. - (start_enum): Likewise but from flag_short_enums. - (finish_enum): Test TYPE_PACKED, not flag_short_enums. - * stor-layout.c (layout_decl): Test DECL_PACKED and TYPE_PACKED - instead of flag_pack_struct. - (layout_record): Likewise. - -Sun Jun 2 19:41:14 1996 Jim Wilson <wilson@cygnus.com> - - * mips.md (tablejump_internal3, tablejump_internal4): New patterns. - (tablejump): Use them for PIC code. - -Fri May 31 17:26:53 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.c (ix86_expand_epilogue): Don't generate references to an - exposed vacated stack. - * i386.md (epilogue_set_stack_ptr): New. - -Fri May 31 15:07:49 1996 Jim Wilson <wilson@cygnus.com> - - * mips/abi64.h: Add -mabi=n32 support. - (ABI_64BIT): Delete. - (TARGET_LONG64, CPP_SPEC, STACK_BOUNDARY, MIPS_STACK_ALIGN, - GP_ARG_LAST, FP_ARG_LAST, SUBTARGET_CONDITIONAL_REGISTER_USAGE, - MAX_ARGS_IN_REGISTER, FUNCTION_ARG_PADDING, RETURN_IN_MEMORY, - SETUP_INCOMING_VARARGS): Modify. - (REG_PARM_STACK_SPACE): Ifdef out. - (TARGET_DEFAULT, SUBTARGET_TARGET_OPTIONS): Define. - * mips/iris6.h: Add -mabi=n32 support. - (TARGET_DEFAULT, ASM_OUTPUT_INTERNAL_LABEL, - ASM_GENERATE_INTERNAL_LABEL): Delete. - (MULTILIB_DEFAULTS, ASM_SPEC, EXTRA_SECTION_FUNCTIONS, - ASM_OUTPUT_ALIGNED_LOCAL, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): - Modify. - (MIPS_ABI_DEFAULT, LOCAL_LABEL_PREFIX): Define. - * mips.c: Add -mabi=n32 support. - (mips_const_double_ok, mips_move_1word, mips_move_2words, - function_arg, override_options, mips_asm_file_start, - compute_frame_size, save_restore_insns, function_prologue, - mips_expand_prologue, function_epilogue, mips_function_value): Modify. - (mips_abi, mips_abi_string): Define - * mips.h: Add -mabi=n32 support. - (ABI_64BIT): Delete. - (TARGET_OPTIONS, INITIAL_ELIMINATION_OFFSET, GO_IF_LEGITIMATE_ADDRESS, - CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT_P, LEGITIMIZE_ADDRESS, - ASM_OUTPUT_ADDR_DIFF_ELT): Modify. - (enum mips_abi_type, SUBTARGET_TARGET_OPTIONS): Define. - (mips_abi, mips_abi_string): Declare. - * mips.md (jump, tablejump_internal1, tablejump_internal2): Add - -mabi=n32 support. - * mips/t-iris6 (MULTILIB_OPTIONS): Add -mabi=n32 support. - * mips/xm-irix6.h (HOST_BITS_PER_LONG): Use _MIPS_SZLONG not 64. - * ginclude/va-mips.h (va_start): Add -mabi=n32 support. - -Fri May 31 14:45:30 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -msolaris-cclib to use - the Sun compiler's crt files instead of ours. - ({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use the Sun - compiler's crt files instead of ours. - (SUBTARGET_OVERRIDE_OPTIONS): Don't set -msdata=data for Solaris. - (SBSS_SECTION_ASM_OP): For Solaris, don't use @nobits. - (CPP_OS_SOLARIS_SPEC): Remove -Asystem(unix) and -Asystem(svr4). - - * rs6000/t-ppc{,gas} (MULTILIB*): Add Solaris specific multilibs. - - * rs6000/eabi{,le}sim.h (*_DEFAULT_SPEC): Rather than using - duplicate definitions, just use %(...) so that there is only one - place in the specs file where the switches are defined. - * rs6000/{linux,sol2}.h (*_DEFAULT_SPEC): Ditto. - - * rs6000/sol2.h (CPP_PREDEFINES): Use the standard one in sysv4.h. - (RS6000_ABI_NAME): Default is solaris. - (ASM_OUTPUT_ALIGNED_LOCAL): Don't redefine. - - * rs6000/sol-c{i.asm,n.asm,c0.c}: Provide more things that Solaris - needs for program startup. - -Thu May 30 21:57:34 1996 Mike Stump <mrs@cygnus.com> - - * tree.def (OFFSET_REF): Remove. - * expr.c (expand_expr, case OFFSET_REF): Likewise. - * tree.c (substitute_in_expr): Remove OFFSET_REF code. - -Wed May 29 14:54:44 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/eabi.asm (__eabi): If not -mrelocatable, don't assemble - relocatable functions, so that it can be assembled with the - Solaris assembler. - - * rs6000/sysv4.h (CPP_SYSV_SPEC): Define _RELOCATABLE if - -mrelocatable-lib as well as -mrelocatable. - - * rs6000.c (rs6000_file_start): New function to print some more - information to the asm file. - * rs6000/{sysv4,win-nt,rs6000}.h (ASM_FILE_START): Call it. - -Tue May 28 15:21:24 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77. - ({FIXED,CALL_USED}_REGISTERS): Add support for fpmem pseudo register. - (REG_ALLOC_ORDER, HARD_REGNO_{NREGS,MODE_OK}): Likewise. - (REGISTER_MOVE_COST, reg_class, REG_CLASS_{NAMES,CONTENTS}): Likewise. - (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. - (CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Likewise. - (rs6000_stack, {,DEBUG_}REGISTER_NAMES): Ditto. - (FPMEM_{REGNO_P,REGNUM}): New macros for fpmem register. - (rs6000_fpmem_{offset,size}): New global variables. - (RS6000_VARARGS_OFFSET): Fpmem temporary storage is located - between outgoing arg area and varargs save area. - (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise. - (PREDICATE_CODES): Add fpmem_operand. - ({count_register,fpmem}_operand): Add declarations. - - * rs6000.c ({rs6000,alt}_reg_names): Add support for fpmem 'register'. - (rs6000_fpmem_{offset,size}): New global variables. - (fpmem_operand): Return true for fpmem registers. - (gpc_reg_operand): The fpmem register is not general purpose. - (includes_rshift_p): Add casts to silence warnings from Solaris - PowerPC host compiler. - (print_operand): Add 'v' operand type for the upper 16 bits of - signed constants, to placate the Solaris assembler. - ({rs6000,debug}_stack_info): Add support for fpmem 'register'. - (output_epilog): Likewise. - - * rs6000.md (addsi3,movsi,movsf,movdi): Use %v for constants with - the upper 16 bits, to get the sign correct for PowerPC Solaris. - (float{,uns}sidf2,fix_truncdfsi2): Rewrite to use 'register' 76 - for the memory location used to convert between float and integer. - - * sysv4.h (ASM_OUTPUT_{CON,DE}STRUCTOR): Use code laid down in - .init and .fini for making constructors and destructors under - Solaris. - (ASM_SPEC): Do not pass -u to the assembler. - (CC1_SPEC): -mrelocatable implies -meabi. - - * sol2.h (RS6000_ABI_NAME): Default ABI is Solaris, not System V.4. - (ASM_OUTPUT_ALIGNED_LOCAL): Don't define Solaris specific method. - -Mon May 27 06:39:13 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_builtin, case BUILT_IN_{LONG,SET}JMP): - Convert block address from ptr_mode to Pmode. - -Sun May 26 20:05:43 1996 Doug Evans <dje@cygnus.com> - - * gcc.c (MSDOS pexecute): Call xmalloc, not malloc. - -Sun May 26 08:31:54 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (vax-*-{sysv}): tm_file and xm_file now list. - (vax-*-ultrix): tm_file is now list. - (we32k-att-sysv*): xm_file now list. - * vax/xm-netbsd.h: Deleted. - * vax/netbsd.h: No longer include vax.h and config/netbsd.h. - * vax/ultrix.h, vax/vaxv.h: No longer include vax.h. - * vax/xm-vaxv.h: No longer include xm-vax.h. - * xm-we32k.h: No longer include xm-svr3.h. - - * configure: Separately set target_cpu_default for two - case statements and then combine if both set. - (alpha-*-winnt3): tm_file and xm_file are now list. - Set target_cpu_default to 64. - * winnt/config-nt.bat: Make .h files properly for Alpha. - * alpha.h (WINDOWS_NT): No longer defined and used. - (MASK_WINDOWS_NT, TARGET_WINDOWS_NT): New macros. - (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_WINDOWS_NT. - * alpha.c (output_prolog): Test TARGET_WINDOWS_NT, not WINDOWS_NT. - * alpha.md: Likewise. - * alpha/config-nt.sed: Properly set tm_file and {build,host}_xm_file. - * alpha/win-nt.h: Don't include alpha.h - (WINDOWS_NT): No longer define. - * alpha/xm-winnt.h: Don't include xm-alpha.h and winnt/xm-winnt.h. - -Fri May 24 12:34:22 1996 Doug Evans <dje@seba.cygnus.com> - - * configure (cpu_type): Add case for arm. - (sparclet-*-aout*): Delete extra_headers. - - * varasm.c (asm_output_bss): New argument DECL. - Use ASM_DECLARE_OBJECT_NAME if defined. - (asm_output_aligned_bss): Likewise. - (assemble_variable): Pass DECL to ASM_OUTPUT{,_ALIGNED}_BSS. - * arm/aout.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * h8300.h (ASM_OUTPUT_BSS): Update. - * i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * i386/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * m68k/coff.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * m68k/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * m68k/m68k-aout.h (ASM_OUTPUT_BSS): Update. - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * rs6000/win-nt.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update. - -Thu May 23 19:55:52 1996 Jim Wilson <wilson@cygnus.com> - - * combine.c (set_nonzero_bits_and_sign_copies): Set reg_sign_bit_copies - to one not zero to indicate value is unknown. - -Thu May 23 18:39:24 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * config/netbsd.h (SWITCH_TAKES_ARG): Add -R. - (LINK_SPEC): Add %{R*}. - - * m68k/lb1sf68.asm: Construct exception masks at compile time - instead of or'ing in bits at run time. - -Thu May 23 15:53:06 1996 Ian Lance Taylor <ian@cygnus.com> - - * sh.md: Add new instruction types fp and fpdiv. Set new - instruction types where appropriate. Add function unit fp. - Claim that store instructions use function unit memory. - -Thu May 23 00:36:19 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH on H8/300H. - * h8300.md: Use "m" rather than "o" constraint everywhere appropriate. - Cleanup use of "i" and "n" constraints. - -Wed May 22 17:43:37 1996 Jim Wilson <wilson@cygnus.com> - - * fixincludes (pthread.h): Add extern to __page_size* declarations - for AIX 4.1.x. - - * combine.c (nonzero_bits): Don't assume arg pointer has same - alignment as stack pointer. - -Wed May 22 16:09:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (LINK_START_DEFAULT_SPEC): Spell macro correctly. - (LIB_DEFAULT_SPEC): Provide default version. - -Wed May 22 11:23:57 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.md (return_pop_internal): new pattern. - (pop): disable emitting of bogus move instruction. - * i386.c (ix86_expand_epilogue): use gen_return_pop_internal to - simultanously return and pop args; removed stray semicolon. - * config/linux-aout.h, config/linux.h (SET_ASM_OP): Added for - __attribute__ ((alias ())) support. - -Wed May 22 08:06:42 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu.edu> - - * combine.c (init_reg_last_arrays, setup_incoming_promotions): - Correct prototypes. - -Tue May 21 13:42:17 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.md (div and mode patterns): Rewrite. - - * pa.c (basereg_operand): Never accept a CONST_INT. - -Tue May 21 12:26:40 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * pa/pa-hpux9.h, pa-osf.h (LINK_SPEC): Provide version for Snake. - -Tue May 21 07:20:48 1996 Pat Rankin <rankin@eql.caltech.edu> - - * vax.h (TARGET_NAME): Define unless already defined. - (TARGET_VERSION): Print TARGET_NAME. - * vax/vms.h (TARGET_NAME): Always redefine. - (TARGET_VERSION): Delete; retain vax.h definition. - -Mon May 20 14:00:44 1996 Jim Wilson <wilson@cygnus.com> - - * sh.c (output_file_start): Delete misplaced semicolon. - -Mon May 20 11:58:15 1996 Jeffrey A. Law <law@cygnus.com> - - * reorg.c (relax_delay_slots): Call update_block before - redirecting a branch past a redundant insn. - -Sun May 19 16:40:53 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * Makefile.in (libobjc.a, sublibobjc.a): 'specs' added to - dependencies. - -Sun May 19 12:25:48 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure: Add new switch to provide default for cpu_type; - delete numerous settings of it in main switch. - (hppa): Reflect rerrangements below; use new configure features. - * pa/pa-gas.h, pa/pa-pro-end.h: New files. - * pa/pa1.h, pa/pa1-osf.h, pa/pa1-ghpux.h, pa/pa1-oldas.h: Deleted. - * pa/pa1-ghpux9.h, pa/pa1-hpux9.h, pa/pa1-hpux.h: Deleted. - * pa/pa1-ghiux.h, pa/pa1-hiux.h, pa/pa-ghpux.h: Deleted. - * pa/pa-gux7.h, pa/pa-ghiux.h: Deleted. - * pa/pa-hiux.h: No longer include pa-hpux.h. - * pa/pa-hpux.h: No longer include pa.h. - (TARGET_DEFAULT): Unset before setting. - (LINK_SPEC): Provide option for pa1. - * pa/pa-hpux7.h: No longer include pa.h. - (HP_FP_ARG_DESCRIPTOR_REVERSED): Don't define here. - * pa/pa-hpux9.h, pa/pa-oldas.h: No longer include pa-hpux.h. - (TARGET_DEFAULT): Don't need to set here. - * pa/pa-osf.h: No longer include pa.h. - (TARGET_DEFAULT): Don't define; identical to default. - * pa/pa-pro.h: No longer include pa.h. - Move definitions after include to new file pa-pro-end.h. - * pa.h (TARGET_SWITCHES): Include TARGET_CPU_DEFAULT. - (TARGET_CPU_DEFAULT): Provide default value. - (CPP_SPEC): Test TARGET_CPU_DEFAULT too. - - * Makefile.in (function.o): Includes bc-emit.h. - (reg-stack.o): Includes insn-flags.h. - * expr.h (function_value): Deleted; no such function. - (bc_build_calldesc, bc_runtime_type_code): New declarations. - * c-decl.c: Add prototypes for all static functions. - * c-iterate.c: Likewise. - * dbxout.c: Likewise. - (adspath): Delete; never used and has numerous parse errors. - * dwarfout.c: If not GNUC, make `inline' null; otherwise, leave alone. - Add `static' to inline functions. - Add prototypes for static function. - * expr.c (bc_runtime_type_code): Delete redundant declaration. - * function.c: Include bc-emit.h. - ({save,restore}_machine_status): Add prototype for args. - (bc_runtime_type_code, bc_build_calldesc): Delete redundant decls. - (bc_emit_trampoline, bc_end_function): Likewise. - * reg-stack.c: Include insn-flags.h. - Add prototypes for static functions. - (gen_jump, gen_movdf, gen_movxf): Delete redundant declarations. - (find_regno_note, emit_jump_insn_before, emit_label_after): Likewise. - (swap_rtx_condition): Now static. - * sdbout.c: Add prototypes for static functions. - (sdbout_parms, sdbout_reg_parms): Delete extra parm to plain_type. - -Sun May 19 11:50:10 1996 John Carr <jfc@mit.edu> - - * alpha.c (alpha_emit_conditional_move): Compare to 0 in correct mode. - -Sat May 18 20:17:27 1996 Jim Wilson <wilson@cygnus.com> - - * sh.c (prepare_move_operands): If source is r0, and dest is reg+reg - MEM, then copy source to a pseudo-reg. - * sh.md (untyped_call): New pattern. - - * unroll.c (copy_loop_body): When update split DEST_ADDR giv, - check to make sure it was split. - (find_splittable_givs): Fix reversed test of verify_addresses result. - -Sat May 18 10:26:04 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (unsave_expr_now): Avoid use of NULL_RTX since no rtl.h. - - * configure: Set cpu_default, tm_file, and xm_file early. - Remove redundant settings of those, tmake_file, and xmake_file. - Use ${tm_file} and ${xm_file} to refer to the main files. - Sort some entries for consistency and reformat some others. - (rs6000, powerpc): Remove bogus test on host == target. - (alpha-*-linux): xm-linux.h no longer includes xm-alpha. - (alpha-*-osf*): Remove redundant setting of target_cpu_default. - (*-convex-*): Use target_cpu_default instead of separate .h files. - (clipper-intergraph-clix*): clix.h no longer includes any files. - (i860, i960, pdp11): Reflect removal of includes listed below. - * alpha/xm-linux.h: No longer include xm-alpha.h. - * clipper/clix.h: No longer include clipper.h and svr3.h. - * convex.h: Provide a default for TARGET_DEFAULT. - Take "or" of TARGET_DEFAULT and TARGET_CPU_DEFAULT everywhere. - * convex/convex{1,2,32,34,38}.h: Deleted. - * i860/bsd-gas.h: No longer include bsd.h. - * i860/bsd.h: No longer include i860.h. - * i860/fx2800.h: No longer include i860/sysv4.h. - (OUTPUT_TDESC): No longer define. - (ASM_FILE_END): Move redefinition to here. - * i860/mach.h: No longer include i860.h. - * i860/paragon.h, i860/sysv3.h: No longer include i860.h and svr3.h. - * i860/sysv4.h: No longer include i860.h and svr4.h. - (ASM_FILE_END): Delete redefinition from here. - * i860/xm-fx2800.h: No longer include xm-i860.h. - * i860/xm-paragon.h, i860/xm-sysv{3,4}.h: Deleted. - * i960/i960-coff.h: No longer include i960.h and dbxcoff.h. - * i960/vx960-coff.h: No longer include i960-coff.h. - * i960/vx960.h: No longer include i960.h. - * pdp11/2bsd.h: No longer include pdp11.h. - - * i370/i370.h: Renamed from mvs.h. - * i370/i370.c: Renamed from mvs370.c. - * i370/t-i370: Renamed from t-mvs. - * i370/xm-i370.h: Renamed from xm-mvs.h. - * configure (i370-*-mvs*): Use default names for all files. - - * c-parse.in: Update number of shift/reduce conflicts for objc. - -Sat May 18 08:20:17 1996 Dennis Glatting (dennisg@plaintalk.bellevue.wa.us) - - * m68k/next.h (FINALIZE_TRAMPOLINE): Add missing backslashes. - -Fri May 17 19:57:20 1996 Pat Rankin <rankin@eql.caltech.edu> - - * vax/xm-vms.h (dbxout_resume_previous_source_file): New macro. - -Fri May 17 14:20:13 1996 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_expr, cond TARGET_EXPR): Make TARGET_EXPRs - redoable for UNSAVE_EXPR. - * stmt.c (expand_decl_cleanup): Wrap the cleanup in an UNSAVE_EXPR - to that we can redo it. - * tree.c (unsave_expr_now): Handle TARGET_EXPRs fully now. - * tree.def (TARGET_EXPR): Add a fourth field so that TARGET_EXPRs - are redoable. - - * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++ - frontend to the backend where it belongs. - * tree.c (unsave_expr{,_now}): Likewise. - * tree.def (UNSAVE_EXPR): Likewise. - * tree.h (unsave_expr{,_now}): Likewise. - -Fri May 17 15:04:40 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (lshrsi3 insns): Add special case code for shifting by - 0 to avoid bad code generated with no optimization. - -Fri May 17 13:50:55 1996 Jason Merrill <jason@yorick.cygnus.com> - - * i386/unix.h (ASM_OUTPUT_MI_THUNK): Define. - * i386/{att.h,bsd.h,sun386.h} (ASM_OUTPUT_MI_THUNK): Delete. - -Fri May 17 13:34:28 1996 Ian Lance Taylor <ian@cygnus.com> - - * fp-bit.c (_fpdiv_parts): Correct sign handling when - dividing zero or infinity by something. - -Fri May 17 12:36:36 1996 Doug Evans <dje@seba.cygnus.com> - - Standardize option output in assembler files. - * Makefile.in (toplev.o): Pass -DTARGET_NAME. - * arm/aout.h (ASM_OUTPUT_OPTIONS): Delete. - (ASM_FILE_START): Delete option output support. - * arm.c (output_option, output_options, m_options): Delete. - * m88k.c (output_file_start): Delete option output support. - * m88k.h (ASM_COMMENT_START): Define. - * mips.c (target_switches, print_options): Delete. - (mips_asm_file_start): Put output of -G,Cpu,ISA here. - * mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #". - * rs6000.c (output_option, m_options, output_options): Delete. - * rs6000.h (ASM_OUTPUT_OPTIONS): Delete. - (ASM_COMMENT_START): Define. - (ASM_FILE_START): Delete option output support. - * rs6000/sysv4.h (ASM_FILE_START): Likewise. - * rs6000/win-nt.h (ASM_FILE_START): Likewise. Delete duplicate. - * sh.c (output_option, m_options, output_options): Delete. - (output_file_start): Delete option output support. - * sh.h (ASM_FILE_START): Likewise. - (ASM_COMMENT_START): Define. - * dwarfout.c (*): flag_verbose_asm renamed to flag_debug_asm. - * flags.h (flag_debug_asm): Declare. - * toplev.c (print_version): New function. - (print_single_switch): New arguments pos, max, indent, sep, term. - (print_switch_values): New arguments pos, max, indent, sep, term. - Update call to print_single_switch. Output options passed and - options enabled. - (MAX_LINE): New macro. - (flag_debug_asm): Define. - (compile_file): Output options to assembler file. - (main): Recognize -dA. Call print_version. Update call to - print_switch_values. - (line_position): Deleted. - -Fri May 17 10:50:44 1996 Stan Cox (coxs@dg-rtp.dg.com) - - * i386.c (function_prologue, ix86_expand_prologue, - function_epilogue, ix86_expand_epilogue): Generate prologue and - epilogue as RTL (prior to scheduling) instead of emitting asm. - (override_options): If only -march is given, make it the default -mcpu. - * i386.h (FUNCTION_BEGIN_EPILOGUE): Renamed from FUNCTION_EPILOGUE. - * i386.md (return, return_internal, prologue, prologue_set_got, - prologue_get_pc, epilogue, leave, pop): New patterns for emitting - asm from prologue and epilogue RTL. - * m88k/t-dgux (T_CFLAGS): Delete. - * m88k/x-dgux (X_CFLAGS): New. - -Fri May 17 09:54:23 1996 Jim Meyering (meyering@asic.sc.ti.com) - - * Makefile.in (stamp-crt{,S}): Use -o to avoid conflicts if - both of these are built in parallel. - -Fri May 17 08:55:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (store_split_bit_field): Don't assume the alignment - of VALUE is the same as the record. - - * configure: Write #define TARGET_CPU_DEFAULT into tm.h - instead of defining MAYBE_TARGET_DEFAULT in Makefile. - (alpha-*-linux): Set target_cpu_default to 4 and xmake_file to none. - (alpha-*-osf*): Set target_cpu_default to 4 if --gas. - * Makefile.in (gcc.o, toplev.o, $(out_object_file)): - Remove MAYBE_TARGET_DEFAULT. - - * combine.c (insn_cuid): New function. - (INSN_CUID): Sometimes call it. - -Fri May 17 08:12:37 1996 Scott Christley <scottc@net-community.com> - - * objc/sendmsg.c (objc_get_uninstalled_dtable): New function. - * objc/objc-api.h (objc_get_uninstalled_dtable): New declaration. - - * objc/thr-os2.c, objc/thr-posix.c, objc/thr-mach.c: New files. - * objc/THREADS.MACH: New file. - - * objc/sendmsg.c (nil_method): Deleted from here. - * objc/nil_method.c: New file. - * Makefile (OBJC_O): Add dependency for nil_method.c. - - * objc/hash.c (hash_is_key_in_hash): New function. - * objc/hash.h: Include objc/objc.h here instead of in objc/hash.c - to get BOOL typedef. - -Fri May 17 08:01:48 1996 Doug Rupp (rupp@gnat.com) - - * msdos/configur.bat: If Ada subdirectory present, adjust Makefile. - -Fri May 17 07:40:04 1996 Ulrich Drepper (drepper@cygnus.com) - - * stddef.h: If need_wint_t defined, nothing in this file is needed. - (_WINT_T, __WINT__TYPE__, wint_t): Define under certain circumstances. - -Thu May 16 18:53:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold, case EQ_EXPR): When folding VAR++ = CONST, - mask the new const if VAR is a bitfield reference; also for VAR--. - -Thu May 16 18:29:03 1996 Doug Evans <dje@seba.cygnus.com> - - * varasm.c (function_section): Delete flag_function_sections support. - (assemble_start_function): Put it here. Use UNIQUE_SECTION if defined. - -Wed May 15 13:35:11 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.{h,c,md} (rs6000_pic_register): Delete all uses, use - pic_offset_table_rtx instead. - - * rs6000.md (move_to_float): Rewrite so that it uses the register - allocator to allocate the stack temp, instead of calling - rs6000_stack_temp. - (fix_truncdfsi2): Likewise. - - * rs6000.c (rs6000_stack_temp): Delete, no longer used. - -Wed May 15 10:39:27 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define. - -Sat May 11 07:42:59 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_field): Support BLKmode bitfield if aligned on - byte boundary using emit_block_move. - (expand_expr, case COMPONENT_REF): Likewise. - -Fri May 10 18:33:39 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (alpha-*-linux): Reverse order in tm_file list. - Delete xmake_file. - * alpha/x-linux: Deleted. - * alpha/linux.h (ASM_FINAL_SPEC): Add #undef. - * alpha/xm-linux.h: Remove bogus trailing #endif. - - * loop.c (maybe_eliminate_biv_1): Disable all but two cases - of biv elimination with givs and restrict those two cases to - an ADD_VAL that is an address. - - * flow.c (mark_set_1, mark_used_regs): Clean up usages - of ALL_NEEDED; change to SOME_NOT_NEEDED and set properly. - -Fri May 10 11:37:38 1996 Jason Merrill <jason@yorick.cygnus.com> - - * toplev.c (compile_file): Don't warn about artificial functions - declared static and not defined. - -Thu May 9 22:03:28 1996 Doug Evans <dje@cygnus.com> - - * varasm.c (assemble_start_function): ASM_DECLARE_FUNCTION_NAME - needn't consider bytecodes. - (assemble_variable): ASM_DECLARE_OBJECT_NAME needn't - consider bytecodes. - * toplev.c (rest_of_decl_compilation): Likewise with - ASM_FINISH_DECLARE_OBJECT. - * arm/aof.h (ASM_DECLARE_{FUNCTION,OBJECT}_NAME): Delete bytecode - support. - * vax/vms.h (ASM_DECLARE_OBJECT_NAME): Likewise. - -Thu May 9 19:36:13 1996 Jim Wilson <wilson@cygnus.com> - - * sh.h (SET_ASM_OP): Define. - -Thu May 9 13:31:58 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sysv4.h (SUBTARGET_{SWITCHES,OPTIONS}): Add support for - finer grain control on -msdata, so that eabi people can specify to - compile sdata code to only use r13 instead of r2/r13. Make - -mrelocatable-lib turn off -msdata, just like -m relocatable does. - (SUBTARGET_OVERRIDE_OPTIONS): Ditto. - (ENCODE_SECTION_INFO): Move to rs6000.c. - (ASM_SPEC): -msdata=eabi sets -memb also. - (CC1_SPEC): -mno-sdata gets converted to -msdata=none. - - * rs6000.c (rs6000_sdata{,_name}): Add support for finer grain - control on -msdata. - (output_options, small_data_operand, print_operand): Likewise. - (rs6000_select_section): Likewise. - (rs6000_encode_section_info): Move here from sysv4.h, section - names are stored as STRING nodes, not IDENTIFIER. - -Wed May 8 21:04:49 1996 Doug Evans <dje@cygnus.com> - - * function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE. - * pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE. - -Tue May 7 13:42:57 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c: Include obstack.h. - (bit_memory_operand): New function. - (print_operand): Append ":16" to a memory reference to - the tiny data area. - (h8300_tiny_data_p): New function. - (h8300_valid_machine_decl_attribute): Accept "tiny_data". Fix typo. - (h8300_encode_label): New function. - (h8300_adjust_insn_length): References to the tiny data section - are two bytes shorter than normal accesses on the H8/300H. - * h8300.h (OK_FOR_U): Fix thinko. - (ENCODE_SECTION_INFO): Encode info for tiny data variables. - (STRIP_NAME_ENCODING): Define. - * h8300.md (movqi insn): Fix length for a constant load. - (movstrictqi, movhi, movstricthi): Likewise. - (memory btst patterns): Add register to the constraints to keep - reload happy. - - * h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int))) - is valid U operand if SYMBOL_REF_FLAG is set on SYMBOL_REF. - * h8300.md (memory btst patterns): New patterns. - - * h8300.c (h8300_eightbit_data_p): Renamed from h8300_tiny_data_p. - (h8300_eightbit_data_p): Check for the "eightbit_data" - attribute instead of "tiny_data". - (h8300_valid_machine_decl_attribute): Likewise. - * h8300.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p - instead of h8300_tiny_data_p. - - * h8300.h (READONLY_DATA_SECTION): Define. - (EXTRA_SECTIONS): Add in_readonly_data. - (READONLY_DATA_SECTION_ASM_OP): Define. - (EXTRA_SECTION_FUNCTINOS): Add readonly_data. - -Tue May 7 09:26:24 1996 Jason Merrill <jason@yorick.cygnus.com> - - * varasm.c (make_decl_rtl): Update DECL_ASSEMBLER_NAME for local - statics. Remove reference to flag_no_common. - -Mon May 6 21:38:36 1996 Paul Eggert <eggert@twinsun.com> - - * cpplib.c (skip_comment, handle_directive): Don't use uninit vars. - -Mon May 6 18:47:36 1996 Doug Evans <dje@cygnus.com> - - * dbxout.c (dbxout_function): When deciding to call dbxout_function_end - change test from flag_function_sections to DECL_SECTION_NAME != NULL. - - * varasm.c (named_section): Accept any decl. - -Mon May 6 16:41:08 1996 Stan Cox (coxs@dg-rtp.dg.com) - - * final.c (final_scan_insn): Modify conditional moves whose cc is - nonstandard. - - * c-common.c (decl_attributes): Chain multiple attributes correctly. - -Mon May 6 15:41:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stmt.c (expand_decl): Don't deduce alignment of SIZE from - DECL_ALIGN; use TYPE_ALIGN instead. - - * function.c (assign_parms): Set RTX_UNCHANGING_P in stack_parm - if parm is read-only. - - * c-common.c (truthvalue_conversion, case ADDR_EXPR): Don't - treat address of external decl as always nonzero. - -Mon May 6 11:33:57 1996 Jason Merrill <jason@yorick.cygnus.com> - - * c-decl.c (start_decl): Check -fno-common here. - * varasm.c (assemble_variable): Instead of here. - * final.c (end_final): Likewise. - * c-common.c (init_attributes, decl_attributes): Add A_COMMON. - -Mon May 6 11:12:39 1996 Mike Stump <mrs@cygnus.com> - - * expr.c (expand_increment): Add third parameter to know when to - ignore the result value. - (store_constructor): Likewise - (expand_expr, case {PRE,POST}{INC,DEC}REMENT_EXPR): Likewise. - * tree.c (stabilize_reference): Always ignore the first operand of - COMPOUND_EXPRs. - -Mon May 6 13:14:45 1996 Jim Wilson <wilson@cygnus.com> - - * sh.c (gen_shifty_op): Truncate VALUE to avoid out of bounds array - access. - - * expr.c (expand_expr, case INDIRECT_REF): Delete obsolete code - to special case a SAVE_EXPR operand. - -Mon May 6 10:00:12 1996 Pat Rankin <rankin@eql.caltech.edu> - - * vax.h (ASM_OUTPUT_MI_THUNK): Define. - -Mon May 6 09:49:10 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k/linux.h: Use the new trampoline definition. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Deleted. - (INITIALIZE_TRAMPOLINE): Changed. - (FINALIZE_TRAMPOLINE, CLEAR_INSN_CACHE): New. - -Mon May 6 09:43:55 1996 Patrick J. LoPresti (patl@lcs.mit.edu) - - * rtlanal.c (rtx_addr_varies_p): Scan operands of type `E'. - -Mon May 6 09:04:40 1996 H.J. Lu (hjl@gnu.ai.mit.edu) - - * x-linux{,-aout} (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): Deleted. - * config/t-linux (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): New, - moved from x-linux. - * t-linux-aout: New file. - * configure (i[3456]86-*-linux*oldld*, i[3456]86-*-linux*aout*): - Set tmake_file to t-linux-aout. - -Sun May 5 22:13:22 1996 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (gxx_include_dir): Change to $(prefix)/include/g++. - (old_gxx_include_dir): New - defined as $(libdir)/g++-include. - (cccp.o, cpplib.o): Also pass OLD_GPLUSPLUS_INCLUDE_DIR (set - from $(old_gxx_include_dir)). - * cccp.c (include_defaults_array): For C++, also search - OLD_GPLUSPLUS_INCLUDE_DIR. - * cpplib.c (default_include): Likewise. - * configure: Remove no-longer-needed support for --gxx-include-dir. - -Sun May 5 21:59:53 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-lex.c (check_newline): Fix #pragma parsing; issue error message - for directive that starts with `p' but isn't `pragma'. - -Sun May 5 13:13:40 1996 Jeremy Bettis <jeremy@hksys.com> - - * objc/hash.c (hash_value_for_key): Prevent endless loop when 0 was - stored in a hashtable. - -Sun May 5 13:09:54 1996 Satoshi Adachi (adachi@wisdom.aa.ap.titech.ac.jp) - - * m68k/newsgas.h (SET_ASM_OP, ASM_WEAKEN_LABEL): Define. - -Sun May 5 12:48:08 1996 Stephen L Moshier (moshier@world.std.com) - - * tree.c (build_real_from_int_cst): Remove spurious test for - REAL_IS_NOT_DOUBLE. - -Sat May 4 12:17:58 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.h (ASM_OUTPUT_MI_THUNK): Moved here from aout.h. Rewrite to be - independent of the selected assembler, and to use optimal number of - instructions. - * arm/aout.h (ASM_OUTPUT_MI_THUNK): Delete. - - * arm/aout.h (ASM_OUTPUT_OPTIONS): Define. - (ASM_FILE_START): Call ASM_OUTPUT_OPTIONS. - (BSS_SECTION_OP): Define. - (ASM_OUTPUT_ALIGN): Don't output anything if byte alignment is wanted. - (ASM_OUTPUT_ALIGNED_BSS): Define. - * arm.h (target_cpu_name): Delete. - (TARGET_SWITCHES): Delete "be" and "le". - (TARGET_OPTIONS): Delete "cpu-", add "tune=". - (struct arm_cpu_select): New struct. - (PROCESSOR_DEFAULT, TARGET_CPU_DEFAULT): Define. - (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Cmode. - (CANONICALIZE_COMPARISON): Define. - * arm.c (arm_select): Declare and initialize. - (all_procs): Add arm7100. - (arm_override_options): Parse arm_select structure to determine - selected architecture and tuning parameters. - (output_option, output_options): New functions. - (arm_canonicalize_comparison): New function. - (arm_gen_movstrqi): Don't add a writeback of the index registers for - the last instructions. - (arm_select_cc_mode): Detect case where mode is carry out of unsigned - arithmetic. - (output_lcomm_directive): Use bss_section (), and use alignment - rather than rounding. - (get_arm_condition_code): Handle CC_Cmode. - (final_prescan_insn): Avoid boundary case where we would occasionally - inline MAX_INSNS_SKIPPED+1 insns. Allow call_insns to be inlined in - APCS_32 mode if they are the last insn in the block. - * arm.md (*addsi3_compareneg): Delete potentially unsafe insn. - (*addsi3_compare_op[12]): New insns. - (*compare_addsi2_op[01]): New insns. - (*addsi3_carryin, *addsi3_carryin_alt[12]): New insns. - (*cmp_ite1): Use arm_add_operand instead of arm_rhs_operand. - * semi.h (PROCESSOR_DEFAULT): Default to PROCESSOR_ARM6. - -Fri May 3 10:52:11 1996 1996 Stan Cox (coxs@dg-rtp.dg.com) - - * i386.md (movesicc, movehicc) Pentium Pro conditional move insns. - - * i386.h (TARGET_PENTIUMPRO, TARGET_CMOVE, BRANCH_COST, - ASM_OUTPUT_FUNCTION_PREFIX): New macros for conditional move. - - * i386.c (asm_output_function_prefix, function_prologue): Setup - pic on Pentium Pro so a return will match the call. - (print_operand, put_condition_code): Output conditional move suffixes. - -Fri May 3 10:52:11 1996 Jason Merrill <jason@yorick.cygnus.com> - - * i386/{att.h,gas.h,bsd.h,sub386.h} (ASM_OUTPUT_MI_THUNK): Define. - -Wed May 1 17:54:51 1996 Doug Evans <dje@cygnus.com> - - * sparc.h (ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize. - -Wed May 1 13:28:32 1996 Jason Merrill <jason@yorick.cygnus.com> - - * i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Define. - * i386/sysv4.h: Likewise. - * sparc/sysv4.h: Likewise. - -Wed May 1 01:44:47 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (h8300_adjust_insn_length): Adjust the cost of - shifts by small constant values. - * h8300.md: Remove names from many patterns which don't need them. - (compare insns): Don't underestimate lengths. - (andqi3 expander): Remove constrains. - (andhi3): Don't underestimate length. - (andsi3): Don't underestimate length. Improve code when upper - or lower half of destination is being cleared. - (indirect_jump_h8300, indirect_jump_h8300h): Simplify. - (shift insns): Remove useless "I" constraint. - - * h8300.md (bcs type): Remove "bcs" type attribute and all references. - (bcs insns): Delete. No longer needed. - (setcc from bitfield): Rewrite to use zero_extract. Provide - QImode, HImode and SImode variants. - -Tue Apr 30 18:13:09 1996 Jason Merrill <jason@yorick.cygnus.com> - - * svr4.h (SELECT_SECTION): If RELOC is true, put it in data. - -Tue Apr 30 17:26:30 1996 Jason Merrill <jason@yorick.cygnus.com> - - * fold-const.c (fold): Don't call convert to recreate tree nodes - we already have. - -Tue Apr 30 16:52:41 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (one_insn_adds_subs_operand): New function. - (h8300_adjust_insn_length): New function. - * h8300.h (ADJUST_INSN_LENGTH): Define. - * h8300.md: Remove obsolete comments. - (move patterns): Tweak constraints. - (tst patterns): Use "register_operand" for predicate. - (adds pattern): Use one_insn_adds_subs_operand to get length - computation correct. - (subs pattern): Similarly. - (movstrhi): Remove unused expander. - (fancy*, pxor, and-not patterns): Remove. No longer needed. - -Tue Apr 30 13:35:06 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/sol-c0.c (_start): Temporarily display calling - __do_global_ctors, since the Solaris linker doesn't handle the - relocations properly. - -Mon Apr 29 13:03:12 1996 Doug Evans <dje@cyguns.com> - - * sparc/vxsparc.h: sparc-aout.h renamed to aout.h. - -Mon Apr 29 00:35:15 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (names_small): Remove "BAD" postfix from %r7 byte registers. - (rtx_equal_function_value_matters): Remove extra declaration. - (output_simode_bld): New function. - * h8300.h (NO_FUNCTION_CSE): Do define this. - (reg_class): Remove LONG_REGS, SP_REG, SP_AND_G_REGS. - (REG_CLASS_{NAMES,CONTENTS,FROM_LETTER}): Corresponding changes. - (REGNO_REG_CLASS): Corresponding changes. - (output_simode_bld): Declare. - * h8300.md: Nuke comments for stuff which has been fixed. - (all patterns): Remove references to register class "a" (SP_REGS) - which no longer exists. - (many patterns): Accept auto-inc auto-dec addresses in more cases. - (zero_extendqisi2): New pattern for the H8/300. - (zero_extendhisi2): Only use zero_extendhisi2_h8300 when not - optimizing. - (extendhisi2): Only use extendhisi2_h8300 when not optimizing. - (extendqisi2): New pattern for the H8/300. - (bitfield related patterns): Completely rewrite. - (fancy_bclr, fancy_btst): Deleted. - (addhi3 pattern for h8300): Handle case where we can't make matching - constraints (works around hard to fix reload problem). - (stack_pointer_manip): Delete. - (and not patterns): New combiner patterns. - - * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Make sure the - final $CODE$ subspace is in the $TEXT$ space. - -Sun Apr 28 14:52:21 1996 Jason Merrill <jason@yorick.cygnus.com> - - * svr4.h (ASM_OUTPUT_SECTION_NAME): If no decl is specified, - make the section read/write data. - -Sat Apr 27 10:28:59 1996 Michael Meissner <meissner@wogglebug.tiac.net> - - * rs6000/t-ppcgas (MULTILIB_EXCEPTIONS): Don't allow -mrelocatable - and -mcall-sysv-noeabi. - - * rs6000/sysv.h (SUBTARGET_OVERRIDE_OPTIONS): The -mcall-aix - option sets -meabi. Don't allow -mrelocatable without -meabi. - -Fri Apr 26 16:10:46 1996 Doug Evans <dje@cygnus.com> - - * sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on - operand 0. - -Fri Apr 26 14:36:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * i960/t-{960bare,vxworks960} (MULTILIB*): Add - soft-float multilib support. - -Fri Apr 26 06:38:56 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_decl): Turn off DECL_BIT_FIELD for BLKmode - that's properly aligned and a multiple of a byte. - -Thu Apr 25 22:43:19 1996 Doug Evans <dje@cygnus.com> - - * i386/gas.h (ASM_OUTPUT_ALIGN): #if 0 out again. - Undoes change of Apr. 9. - * i386/go32.h (ASM_OUTPUT_ALIGN): Define. - -Thu Apr 25 14:05:33 1996 Richard Kenner (kennervlsi1.ultra.nyu.edu) - - * calls.c (expand_call): In inlining case, if BEFORE_CALLS is - zero, start looking at first insn (one more place). - - * expr.c (expand_builtin, case BUILT_IN_SETJMP): CLOBBER the - static chain after label at setjmp point. - -Thu Apr 25 09:02:24 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (print_operand{,_address}): Correct compile error if - TARGET_EABI is not defined. Also, just call small_data_operand, - without testing the ABI. - (rs6000_select_section): Ditto. - - * rs6000/sysv4.h (CC1_SPEC): For -mcall-solaris, don't pass - -mno-main-init. - -Wed Apr 24 18:26:48 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * collect2.c (handler): Delete export_file when we get a signal. - -Wed Apr 24 14:54:44 1996 Jeffrey A. Law <law@cygnus.com> - - * pa/pa1-ghpux.h (LINK_SPEC): Define. Link in PA1.1 libraries - by default. - * pa/{pa1-ghpux9.h, pa1-hpux.h, pa1-hpux9.h}: Likewise. - -Wed Apr 24 11:12:06 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * configure (powerpc{,le}-*-eabi*): Use t-ppc{,gas}, instead of - t-eabi{,gas}. - (powerpc-*-linux,powerpcle-*-solaris): Add definitions. - (MULTILIB_DIRNAMES): Pick shorter names for the multilib - directories. - (MULTILIB_*): Do not build -msdata versions of the library. Build - both system V and eabi versions of the libraries. - - * rs6000/t-ppc{,gas} (MULTILIB*): Don't build -msdata versions of - the libraries. Split -mcall-sysv libraries into - -mcall-sysv-{eabi,noeabi} varients. - (LIB2FUNCS_EXTRA): Add eabi.S, eabi-ctors.c. - (eabi.S): Use eabi.S, not eabi.s for eabi.asm. - (crt files): Add support for Solaris crt files. - - * rs6000/sol{2.h,-c0.c,-ci.asm,-cn.asm}: New files for Solaris. - - * rs6000/linux.h: New file for Linux-based GNU system support. - - * rs6000/eabi-ci.asm (ppc-asm.h): Include. - (.got section): Correct attribute. - - * rs6000/eabi-c{i,n}.asm (.init,.finit): Add support for System V - style .init/.fini sections, that constructors and destructors - place a bl <func> in the appropriate section. - - * rs6000/eabi-ctors.c (__do_global_{c,d}tors): Call __init, and - __fini to handle constructors/destructors in the .init, .fini - sections. - - * rs6000/{eabi,sysv}.h: Move most eabi configuration stuff from - eabi.h to sysv.h. - - * rs6000/sysv.h (TARGET_*): Convert -mcall-xxx from switch into option. - Add -mcall-{solaris,linux,sysv-eabi,sysv-noeabi} options. - Add -m{,no-}eabi options to control whether we adhere to - the System V spec or the EABI spec. Add -m{,no-}regnames to - control whether registers are printed out as %r0 instead of 0. - (SUBTARGET_OVERRIDE_OPTIONS): Add support for new -mcall options. - (FP_ARG_MAX_REG): Use new macros for ABI conformance. - (RS6000_REG_SAVE): Likewise. - (STACK_BOUNDARY,BIGGEST_ALIGNMENT): If eabi, align to 8 byte - boundary, otherwise 16 byte. - (EXTRA_SECTIONS): Add .init, .fini sections. - (*_SPEC): Reorganize so that the different targets all have sub - specs that go in the specs file. Add support for linux and - Solaris targets. - - * rs6000/{sysv4,eabi}*.h (*_SPECS): Only override the default - spec, all other specs moved to sysv4.h. - (RS6000_ABI_NAME): Use RS6000_ABI_NAME to set the default ABI - name, not TARGET_DEFAULTS. - - * rs6000/xm-sysv4.h (alloca): Properly declare alloca if compiler - is not GCC. - (DONT_DECLARE_SYS_SIGLIST): Define. - - * rs6000.c (rs6000_abi_name): New global for getting the results - of -mcall-xxx. - (rs6000_reg_names): New global for holding the normal register names. - (alt_reg_names): Alternate register names for -mregnames. - (rs6000_override_options): If -mregnames, copy alt_reg_names into - rs6000_reg_names. - (input_operand): Recognize ABI_SOLARIS. - (small_data_operand, init_cumulative_args): Likewise. - (function_arg{,_boundary,_advance,_partial_nregs}): Likewise. - (function_arg_pass_by_reference, setup_incoming_varargs): Likewise. - ({rs6000,debug}_stack_info, output_{prolog,epilog}): Likewise. - (print_operand): %$ prints '.' on Solaris, '$' elsewhere. - (print_operand{,_address}): If not eabi, use @sdarel for small - data references. - (rs6000_stack_info): Only emit __eabi call if TARGET_EABI. - - * rs6000.h (*_SPECS): Move the System V specs to svr4.h. - (ABI_SOLARIS): New ABI, mostly like System V. - (EXTRA_CONSTRAINT): Use ABI_SOLARIS like ABI_V4. - (RETURN_ADDRESS_OFFSET, (LEGITIMATE_SMALL_DATA_P): Likewise. - (RETURN_IN_MEMORY): On Solaris, small structures are returned in regs. - (REGISTER_NAMES): Use rs6000_reg_names array, instead of string - literals. - (DEBUG_REGISTER_NAMES): Define. - (ADDITIONAL_REGISTER_NAMES): Add sp, toc aliases. - (PRINT_OPERAND_PUNCT_VALID_P): Recognize $ as a punctuation char. - - * rs6000.md (got & call patterns): Use ABI_SOLARIS to mean the - same as ABI_V4. - (branch patterns): Use %$ for the current location, not just $. - - * va-ppc.h: Add Solaris support. - -Tue Apr 23 20:02:13 1996 Doug Evans <dje@cygnus.com> - - * sparc.c (output_function_prologue): In -mbroken-saverestore - case, %sp = %fp - size. - * sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete. - * sparc.md (isa attribute): Add sparclet. - (*smacsi,*smacdi,*umacdi): Use match_operand, not match_dup - for third arg. - (*mulsidi3_sp32,const_mulsidi3,*umulsidi3_sp32,const_umulsidi3): Use - smuld,umuld for sparclet. - -Tue Apr 23 16:28:28 1996 Michael Meissner <meissner@wombat.gnu.ai.mit.edu> - - * m68k/m68kemb.h: Add {LINK,STARTFILE,LIB,SUBTARGET}_SPEC, so - gcc will use libgloss for supported target boards {idp,mvme,bcc}. - -Tue Apr 23 16:00:28 1996 Per Bothner <bothner@cygnus.com> - - * expr.c (store_constructor): Fix test for missing array elements. - -Tue Apr 23 11:21:09 1996 Stephen L Moshier (moshier@world.std.com) - - * i386/sco5.h (BSS_SECTION_ASM_OP): Use `data' directive. - (ASM_OUTPUT_ALIGNED_LOCAL): Generate an `lcomm' directive. - (TARGET_DEFAULT): Include TARGET_IEEE_FP. - (CPP_PREDEFINES): Include Di386. - -Mon Apr 22 12:00:46 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (BIGGEST_FIELD_ALIGNMENT): Delete. - (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Define. - * sysv4.h (BIGGEST_FIELD_ALIGNMENT): Delete. - (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine. - * win-nt.h (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine. - -Sun Apr 21 17:52:36 1996 Jim Wilson <wilson@cygnus.com> - - * m68k/coff.h (ASM_OUTPUT_SECTION): Test DECL before - dereferencing it. - - * cse.c (cse_process_notes): Handle SUBREG like ZERO_EXTEND. - -Sun Apr 21 12:57:12 1996 Doug Evans <dje@cygnus.com> - - * arm/aout.h (ASM_OUTPUT_MI_THUNK): Define. - -Sun Apr 21 09:50:09 1996 Stephen L Moshier (moshier@world.std.com) - - * choose-temp.c: Include sys/types.h before sys/file.h for sco3.2v5. - -Sun Apr 21 08:42:13 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (check_float_value): Cast args of bcopy to avoid warnings. - -Sat Apr 20 21:22:21 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * stor-layout.c (layout_record): Use ADJUST_FIELD_ALIGN to modify - alignment of fields within records. - -Sat Apr 20 19:55:33 1996 Niels Moller <nisse@lysator.liu.se> - - * c-parse.in (typespec): Made <SomeProtocol> equivalent - to (id <SomeProtocol>). - (non_empty_protocolrefs): New nonterminal. - -Sat Apr 20 08:34:02 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * stmt.c (check_for_full_enumeration_handling): Call case_tree2list - before checking for case expressions not corresponding to enumerators. - (mark_seen_cases): If SPARSENESS == 2, exploit AVL order. - Else, convert tree to list. - Set xlo to -1 if SPARSENESS == 1 search failed. - (expand_end_case): Avoid calling case_tree2list on list. - -Fri Apr 19 16:54:57 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000/win-nt.h (BIGGEST_FIELD_ALIGNMENT): Set to 64, not - 32 that AIX uses. - -Fri Apr 19 16:40:38 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * i386.md (movqi): Handle QImode values in %si and %di. - -Thu Apr 18 20:56:56 1996 Jim Wilson <wilson@cygnus.com> - - * sh.md (lshrsi3): Change gen_ashlsi3_d to gen_lshrsi3_d. - -Thu Apr 18 15:49:28 1996 Per Bothner <bothner@cygnus.com> - - * sparc.h (ASM_OUTPUT_MI_THUNK): Define. - -Thu Apr 18 15:19:26 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.md: Remove "type" attribute from all patterns except those - which have varying length branches. Eliminate obsolete "type" - attributes. Add "length" and "cc" attributes to insns without them; - fix some length computations. Remove patterns which are commented out. - - * h8300.md (zero extension expanders and insns): Simplify, fix various - length problems, provide optimized versions for the h8300 and h8300h. - (sign extension expanders and insns): Likewise. Make them - nearly identical to zero_extension patterns and insns. - -Wed Apr 17 18:50:16 1996 Jeffrey A. Law <law@cygnus.com> - - * pa.h (SELECT_SECTION): Define. Never place a something - into the read-only data section if it requires a reloc. - - * pa.md (rotlsi3): Delete unnecessary and incorrect pattern. - -Wed Apr 17 17:15:40 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.md (movdi): Never FAIL, even if operand[1] is not a - general operand, due to being in volatile memory. - -Wed Apr 17 15:20:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - - * c-lex.c (check_newline): Rewrite to use tokens. - (handle_sysv_pragma): Take a token instead of a character. - * i960.c (process_pragma): Take the IDENTIFIER_POINTER tree - node instead of a character. - * sh.c (handle_pragma): Likewise. - * config/nextstep.c (handle_pragma): Likewise. - * h8300.c (handle_pragma): Likewise. - * i960.h (HANDLE_PRAGMA): Expect/pass 2nd arg of NODE, not CH. - * sh.h (HANDLE_PRAGMA): Likewise. - * config/nextstep.h (HANDLE_PRAGMA): Likewise. - * h8300.h (HANDLE_PRAGMA): Likewise. - -Wed Apr 17 14:28:43 1996 Doug Evans <dje@cygnus.com> - - * choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H. - #include <stdio.h>. - (choose_temp_base): Make tmp,usrtmp, static locals. - -Wed Apr 17 08:41:02 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_emit_conditional_move): Fix some bugs in previous - change and do some cleanup. - -Tue Apr 16 18:53:05 1996 Jim Wilson <wilson@cygnus.com> - - * reload.c (push_reload): Add extra reload for inside of SUBREG if - it is CONSTANT_P. - - * expr.c (do_store_flag): Rewrite last change to avoid compiler - warnings. - - * reload.c (push_reload): When reuse an old reload, set the modes - to be the larger of the old and new modes. - - * i960/t-960bare (xp-bit.c): Fix typo in source file name. - -Tue Apr 16 18:09:16 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.md (andhi3): If 2nd operand is a CONST_INT that meets 'J' - constraint, then only two bytes are needed for this insn. Improve - code generated for the h8300h when both operands are registers. - (iorhi3, xorhi3): Likewise. Rework to be nearly identical to andhi3. - (andsi3): If 2nd operand is a CONST_INT that meets the 'J' - constraint, then only two bytes are need for this insn. - Improve code generated for the h8300h regardless of the - type of the 2nd operand. Make this pattern work on the h8300 too. - (iorsi3, xorsi3): Likewise. Rework to be nearly identical to andsi3. - (iorqi3_internal): Make this pattern look more like andqi3_internal. - (one_cmplhi2, one_cmplsi2): Fix length computation for H8300H. - -Tue Apr 16 17:43:25 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.md (addsidi3_2): Handle non-MEM overlap case. - -Tue Apr 16 16:59:49 1996 Richard Henderson <rth@tamu.edu> - - * function.c (expand_function_end): Allow TRAMPOLINE_TEMPLATE - to be omitted on systems for which it is not cost effective. - * varasm.c (assemble_trampoline_template): No such function - if no TRAMPOLINE_TEMPLATE. - * m68k.h: Greatly simplify the run-time trampoline code: - (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): Delete define. - (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed. - (TRAMPOLINE_ALIGN): No point aligning to cache line. - (FINISH_INIT_TRAMPOLINE): New define. - * m68k/next.h: Instead of redefining INITIALIZE_TRAMPOLINE, - make use of the new FINISH_INIT_TRAMPOLINE. - * m68k/{m68k.h,next.h,aux.h} (FINISH_INIT_TRAMPOLINE): - Rename to FINALIZE_TRAMPOLINE. - * m68k/{linux.h,m68kv4.h}: Override trampoline macros. - -Tue Apr 16 16:02:50 1996 David Edelsohn <edelsohn@mhpcc.edu> - - * combine.c (make_field_assignment): Allow XOR in final case. - -Tue Apr 16 11:33:53 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * m68k.h (TARGET_SWITCHES): Don't remove MASK_68060 with -msoft-float. - - * m68k.h (MULL_COST, MULW_COST, RTX_COSTS): Add costs for TARGET_68060. - * m68k.md (ashlsi_16, lshrsi_16): Disable pattern for TARGET_68060; - this special case is not faster for that cpu. - -Tue Apr 16 10:54:55 1996 Eliot Dresselhaus <dresselh@rft30.nas.nasa.gov> - - * alpha.c (alpha_emit_conditional_move): New function. - * alpha.h (alpha_emit_conditional_move): Declare it. - * alpha.md (cmov* define_expands): Use it. - -Tue Apr 16 09:06:17 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * function.h (struct function): New field returns_pointer. - * function.c (push_function_context_{to,from}): Save and restore - current_function_returns_pointer. - - * config/svr4.h (ENDFILE_SPEC): Add missing `%s'. - - * configure (m68k-*-linux*aout*): Set tmake_file to m68k/t-linux-aout. - (m68k-*-linux*): Set extra_parts. - * m68k/t-linux (INSTALL_ASSERT_H): New definition. - (CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): New definitions. - * m68k/t-linux-aout: New file. - * m68k/linux.h (LIB_SPEC): Deleted. - (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Define. - - * m68k.h (TRAMPOLINE_ALIGNMENT): Specify alignment in bits, not bytes. - -Tue Apr 16 08:53:17 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * final.c (final_scan_insn): Allow removal of redundant test and - compare instructions that use clobbers. - -Tue Apr 16 06:22:00 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-decl.c (clear_limbo_values): New function. - (pushdecl): Call it for function body blocks. - - * objc/thr-decosf1.c (_objc_thread_id): Correct return type from - int to _objc_thread_id. - - * expr.c (expand_builtin, case BUILT_IN_LONGJMP): Make a decl - for __dummy, so we can call make_function_rtl on it. - - * expr.c (expand_assignment): Don't pre-evaluate RHS if a CALL_EXPR - with a variable-size return. - -Mon Apr 15 17:38:45 1996 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Fix undefined VOIDFUNCPTR in VxWorks 5.2 <time.h>. - -Mon Apr 15 15:12:16 1996 Jim Wilson <wilson@cygnus.com> - - * expr.c (do_store_flag): Before calling exact_log2, remove any - sign extension bits. - - * reload1.c (emit_reload_insns): Call reload_reg_reaches_end_p for - every reg of multi-reg spill register. Invalidate old info for multi - reg spill registers when only part survives to the end. - -Mon Apr 15 14:49:12 1996 Mike Stump <mrs@cygnus.com> - - * function.c (preserve_temp_slots): Only preserve temporaries that - happen to be at the current level. - -Mon Apr 15 14:08:12 1996 Doug Evans <dje@canuck.cygnus.com> - - * gansidecl.h: New file. - * choose-temp.c: New file. - * Makefile.in (xgcc): Depend on and link in choose-temp.o. - (collect2): Likewise. - (choose-temp.o): Add rule for. - * collect2.c: #include "gansidecl.h". - (const,PROTO): Delete. - (P_tmpdir): Delete. - (choose_temp_base): Declare as extern, delete internal copy. - (main): Update call to choose_temp_base. - * cpphash.c: #include "gansidecl.h". - (NULL,const,volatile): Delete. - * demangle.h: #include "gansidecl.h". - (PROTO,PTR,const): Delete. - * expr.h (const): Delete. - * fix-header.c: #include "gansidecl.h". - (const): Delete. - * gcc.c: #include "gansidecl.h". - (PROTO,VPROTO,PVPROTO,VPROTO,VA_START,NULL): Delete. - (GENERIC_PTR,NULL_PTR,P_tmpdir): Delete. - (choose_temp_base): Declare as extern, delete internal copy. - (concat): Rewrite to take a variable number of arguments. - (choose_temp_base_try,concat[346]): Delete. - (translate_options,set_spec,process_command,do_spec_1, - is_directory,main): Always use concat, not concat[346]. Pass - NULL_PTR as trailing arg to concat. - * genattr.c (main): Delete printing of "#define PROTO". - * machmode.h: #include "gansidecl.h". - (PROTO): Delete. - (HAVE_MACHINE_MODES): Move definition to standard place. - * recog.h: #include "gansidecl.h". - (PROTO,const): Delete. - * rtl.h: #include "gansidecl.h". - (PROTO,VPROTO,PVPROTO,VPROTO,VA_START,STDIO_PROTO): Delete. - (NULL,GENERIC_PTR,NULL_PTR): Delete. - * tree.h: Likewise. - -Mon Apr 15 08:49:20 1996 Tom May (ftom@netcom.com) - - * cse.c (invalidate_skipped_set): Ignore CLOBBER after calling - note_mem_written, not before. - -Mon Apr 15 08:22:03 1996 Philippe De Muyter <phdm@info.ucl.ac.be> - - * m68k.md (tstdi): Optimized for "d" case. - (movqi): Allow moving "i" into "a". - (zero_extendsidi2): Alternatives merged. - (extendplussidi): Fixed when operands 0 and 1 share a register. - (adddi_sexthishl32): Constraints reordered for better reload. - (adddi3,subdi_sexthishl32,subdi3,negdi2): Likewise. - (ashldi_sexthi): Accept "m" as operand 0. - (ashldi_const32): Alternatives merged. - (ashift patterns): Output "lsl" instead of "asl". - (beq0_di): If condition codes already set, output only branch insn. - (bne0_di,bge0_di,blt0_di): Likewise. - * m68k.c (notice_update_cc, case ASHIFT{,RT}, LSHIFTRT, ROTATE{,RT}): - Don't set CC_NO_OVERFLOW. - * m68k.h (TARGET_SWITCHES): Fix typo in "c68000" entry. - -Mon Apr 15 08:06:17 1996 Stephen L Moshier (moshier@world.std.com) - - * real.c (eadd1): Check for overflow on X plus X. - -Mon Apr 15 08:02:24 1996 J.T. Conklin <jtc@cygnus.com> - - * i386/netbsd.h (HAVE_SYSV_PRAGMA): Removed definition. - * config/netbsd.h (HAVE_SYSV_PRAGMA): Define. - (SET_ASM_OP): Define. - -Mon Apr 15 07:28:54 1996 Fila Kolodny <fila@ibi.com> - - * configure: Add definition for host= into Makefile. - * build-make (CC): Pass -b $(host), not target. - -Mon Apr 15 05:12:39 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (bc_expand_increment): Change declaration to return void. - - * toplev.c (max_label_num_after_reload): New variable. - (rest_of_compilation): Set it. - * reorg.c (find_dead_or_set_registers): Only kill spill regs after - label made before jump2. - - * combine.c (expand_field_assignment): Take SUBREG_WORD into - account when have STRICT_LOW_PART. - (make_extraction): Make a STRICT_LOW_PART at any low-order word. - -Mon Apr 15 03:43:11 1996 Jeffrey A. Law <law@cygnus.com> - - * flags.h (flag_function_sections): Declare. - * toplev.c (flag_function_sections): Define. - (compile_file): Add warnings when -ffunction-sections is - used with -g, or profiling. Disable -ffunction-sections - when profiling is used. Add warning when -ffunction-sections - is used on a target that doesn't support it. - * varasm.c (named_section): Make a copy of the section name - in case the original is in temporary storage. - (function_section): Set DECL_SECTION_NAME for each function - if flag_function_sections is on and the target supports it. - * dbxout.c (dbxout_function_end): New function. - (dbxout_function): Call dbxout_function_end if using extensions - and flag_function_sections is on. - * sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Prefix a function - section's name with ".text%" when -ffunction-sections. - -Sun Apr 14 19:37:43 1996 Doug Evans <dje@cygnus.com> - - * toplev.c (main): Delete redundant test for -p used with -fbytecode. - -Sun Apr 14 19:01:59 1996 John F. Carr <jfc@mit.edu> - - * c-decl.c (finish_enum): Don't crash if no type can represent all - enumeration values. - -Sun Apr 14 18:56:40 1996 J.T. Conklin <jtc@rtl.cygnus.com> - - * m68k.md (ftruncdf2): Enable for m68060 systems. - -Sun Apr 14 18:49:30 1996 David L. Reese (david.reese@east.sun.com) - - * fold-const.c (range_test): Don't convert hi_cst or lo_cst - to unsigned when folding signed range tests. - -Sun Apr 14 08:56:27 1996 Stephen L Moshier <moshier@world.std.com> - - * real.h (ereal_from_{int,uint}): Add new arg, MODE. - (REAL_VALUE_FROM{,_UNSIGNED}_INT): New arg, MODE. - * real.c (ereal_from_{int,uint}): New arg, MODE. - * cse.c (simplify_unary_operation): Add new arg to REAL_VALUE_FROM_INT. - * fold-const.c (fold_convert): Likewise. - * tree.c (real_value_from_int_cst): New arg, TYPE. - Pass mode to REAL_VALUE_FROM_INT. - (build_real_from_int_cst): Properly deal with truncation. - -Sun Apr 14 08:21:29 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (try_combine): When substituting in output of I2, - ensure dest isn't clobbered in I2. - - * combine.c (combine_instructions): In initial scan of insns, - handle a REG_INC note's affect on sign bit copies and nonzero bits. - (set_nonzero_bits_and_sign_copies): Treat a zero SET arg as a CLOBBER. - -Sun Apr 14 07:52:28 1996 Manor Askenazi <manor@santafe.edu> - - * objc/encoding.c (objc_skip_typespec): Don't abort for _C_UNDEF. - -Sat Apr 13 20:35:36 1996 Richard Henderson (richard@atheist.tamu.edu) - - * configure (m68k-apple-aux*): Rework to take advantange - of list of tm.h files and support all four gas/gld options. - * m68k/auxas.h, m68k/auxgas.h, m68k/auxgld.h, m68k/auxld.h: New files. - * m68k/auxstd.h, m68k/auxgnu.h: Deleted. - -Sat Apr 13 20:18:11 1996 Stephen L Moshier <moshier@world.std.com> - - * alpha.c (check_float_value): New function. - * alpha.h (CHECK_FLOAT_VALUE): Define. - (ASM_OUTPUT_FLOAT): Print the value in hex. - -Sat Apr 13 15:08:45 1996 Doug Evans <dje@canuck.cygnus.com> - - * configure: New target arm{,el}-*-coff*. - (cpu_default): Sort alphabetically. - * arm/coff.h: New file. - * arm/t-bare: New file. - * arm/arm.c (use_return_insn): Don't use return for naked functions. - (arm_valid_machine_decl_attribute): New function. - (arm_naked_function_p): New function. - (output_func_prologue): Naked functions don't have prologues. - (arm_expand_prologue): Likewise. - (output_func_epilogue): Likewise with epilogues. - -Sat Apr 13 11:31:32 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (adds_subs_operand): Fix thinko in last change. - - * h8300.md (subhi3): Turn into a define_expand. - (subhi3 using adds_subs): New pattern. - (H8300 subhi): Derived from old subhi pattern. Simplified. - (H8300H subhi): Likewise. - (subsi using adds_subs): New pattern. Only used on H8300H. - (subsi_h8300): Allow "a" registers as destination. - (subsi_h8300h): Allow "a" registers as destination. Simplify. - - * h8300.md (bcs_qiqi, bcs_hihi, bs_hiqi): Fix thinkos - in last change. - -Sat Apr 13 08:59:48 1996 Fila Kolodny <fila@ibi.com> - - * i370/mvs.h (ASM_DECLARE_FUNCTION_NAME): Don't write anything to - asm file, because everything is handled in FUNCTION_PROLOGUE. - -Sat Apr 13 07:55:38 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_emit_set_const_1): Renamed from - alpha_emit_set_const and static. - Remove change of Nov 26; again use normal mechanism for SImode. - (alpha_emit_set_const): New function. - -Fri Apr 12 18:19:39 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (adds_subs_operand, output_adds_subs): New functions. - * h8300.md (addhi3): Turn into a define_expand. - (addhi3 using adds_subs): New pattern. - (H8300 addhi): Derived from old addhi pattern. Simplified. - (H8300H addhi): Likewise. - (addsi using adds_subs): New pattern. Only used on H8300H. - (addsi_h8300): Allow "a" registers as destination. - (addsi_h8300h): Simplify. Allow "a" registers as destination. - - * h8300.md (bcs): New attribute type. - (default_length): Compute correct length for bcs insns. - (bcs_qiqi, bcs_hihi, bs_hiqi): Use new type and update - to account for correct length computation. - - * h8300.md (movhi_internal): Demand at least one operand to be reg. - (movsi_h8300{{,h}): Optimize loading certain constants. - - * h8300.h (NO_FUNCTION_CSE): Comment out. - (FUNCTION_ARG_REGNO_P): Properly define for TARGET_QUICKCALL. - (RETURN_IN_MEMORY): Don't return small structs in regs. - - * h8300.c (const_costs): -4 and 4 are cheap on the h8300h. - (notice_update_cc): Remove references to "value2" field. - - * h8300.c (dosize): Remove unused "fped" argument. All callers - changed. Handle add/sub of 5-8 bytes efficiently on the h8300h. - - * h8300.c (print_operand): Handle new 'R' case for accessing - the 8-bit area. Make code for 'Y' fall into code for 'R' when - operand is not a register. Update some comments. - (h8300_tiny_data_p): New function. - (h8300_valid_machine_decl_attribute): Handle "tiny_data" attribute. - * h8300.h (OK_FOR_U): Handle memory references into 8-bit area. - (ENCODE_SECTION_INFO): Mark SYMBOL_REFs which refer to 8-bit area. - * h8300.md (many patterns): Use 'R' rather than 'X' for - operands that may be memory accesses into the 8-bit area. - (btst pattern): New pattern to set the cc0 (zbit) based on - data in the 8-bit area. - - * h8300.md (one_cmplsi2): Fix length computation for h8300h. - -Fri Apr 12 14:34:39 1996 Doug Evans <dje@cygnus.com> - - * arm.md (*ldmsi,*stmsi): Use (mem (match_operand ...)) - to avoid using indirect_operand (reload problems). - * arm/semi.h (CPP_PREDEFINES): Define __semi__ instead of semi. - * arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. - (ASM_OUTPUT_ADDR_{VEC,DIFF_ELT}): Likewise. - -Fri Apr 12 09:43:30 1996 Jason Merrill <jason@yorick.cygnus.com> - - * dbxout.c (dbxout_typedefs): Don't emit incomplete types yet. - (dbxout_symbol): Use DECL_ARTIFICIAL to recognize C++ implicit - typedefs. - -Thu Apr 11 21:56:26 1996 Doug Evans <dje@cygnus.com> - - * i386/t-winnt (winnt.o): Rewrite based on .c.o rule. - (oldnames.o,spawnv.o): Add rules for. - -Thu Apr 11 07:25:06 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call): In inlining case, if BEFORE_CALLS is - zero, start looking at first insn. - - * expr.c (preexpand_calls, case CALL_EXPR): Rework to properly - avoid expanding functions returning variable size objects. - - * integrate.c (expand_inline_function): When comparing types - of formal and actual, use TYPE_MAIN_VARIANT. - -Thu Apr 11 00:48:29 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300/lib1funcs.asm (modnorm): New function(s). Like divnorm, - but gets the sign bit right for modulo operations. - (__modhi3, modsi3): Use modnorm. - - * h8300.c (dosize): On h8300h, do 4 byte adjusts using adds and subs. - * h8300.h (LONG_LONG_TYPE_SIZE): Always make this 32bits. - Reverses change from Apr 2, 1996. - -Wed Apr 10 18:39:52 1996 Doug Evans <dje@canuck.cygnus.com> - - * sparc.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete. - (FUNCTION_PROFILER): Use ASM_GENERATE_INTERNAL_LABEL instead. - - * sparc.c (sparc_override_options): 90c701 renamed to tsc701. - (eligible_for_epilogue_delay_slot): Don't allow anything if - -mbroken-saverestore. - (output_function_prologue): Only use trivial save's if - -mbroken-saverestore. - * sparc.h (CPP_SPEC): Handle -mcpu={sparclet,tsc701}. - (ASM_SPEC): Likewise. - ({MASK,TARGET}_BROKEN_SAVERESTORE): Define. - (enum processor_type): 90C701 renamed to TSC701. - * sparc.md (attr cpu): 90c701 renamed to tsc701. - * sparc/splet.h (SUBTARGET_SWITCHES): Recognize -mbroken-saverestore. - -Wed Apr 10 17:56:02 1996 Stan Cox <coxs@dg-rtp.dg.com> - - * m88k/dgux.h (EXTRA_SPECS): Define. - (ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS. - * m88k/dguxbcs.h (ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS. - * m88k/m88k.c (output_ascii) Output literal HT. - -Wed Apr 10 17:28:37 1996 James Carlson (carlson@xylogics.com) - - * configure: Work around AIX bug when defining SUBDIRS. - -Wed Apr 10 17:22:42 1996 Paul Eggert <eggert@twinsun.com> - - * cexp.y (parse_number): Don't reject long long constants unless - pedantic. - -Wed Apr 10 17:19:56 1996 Stephen L. Moshier (moshier@world.std.com) - - * real.c (e64toe): Properly distinguish between NaN and infinity - bit patterns for real-words-big-endian targets. - -Wed Apr 10 17:17:26 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * real.c (endian): Add two explicit casts. - (e64toe): Support ARM extended precision fp format. - Check negative infinities properly for NaNs. - (toe64): Support ARM extended precision fp format. - -Tue Apr 9 12:53:31 1996 Doug Evans <dje@canuck.cygnus.com> - - * i386/gas.h (ASM_OUTPUT_ALIGN): Define and use .balign. - -Tue Apr 9 12:48:45 1996 Stephen L Moshier (moshier@world.std.com) - - * sparc.c (fp_zero_operand): Exclude -0.0. - -Tue Apr 9 07:11:24 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c: Fix typo in last change. - - * tree.c (substitute_in_expr): Don't return new expression if - nothing changed. - (substitute_in_type): Deleted, not used. - * tree.h (substitute_in_type): Delete declaration. - -Mon Apr 8 16:30:18 1996 Jeffrey A. Law <law@cygnus.com> - - * flow.c (find_auto_inc): Also make sure there aren't - any sets of the incremented register between the memory - reference and increment insn. - -Mon Apr 8 15:41:14 1996 John Polstra (jdp@polstra.com) - - * configure (i[3456]86-*-freebsdelf*): New target. - * i386/freebsd-elf.h: New file. - * i386/x-freebsd (USER_H): New define; to null. - -Mon Apr 8 14:44:41 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-decl.c (finish_function): Always warn if main doesn't return int. - -Mon Apr 8 13:01:37 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * rs6000.c (got_operand): New function, returns true if the - operand can go in V.4's GOT. - (rs6000_pic_register): New variable. - (output_epilog): Reset rs6000_pic_register. - - * rs6000.h (rs6000_pic_register, got_operand, flag_pic): Add decls. - (PREDICATE_CODES): Add got_operand. - - * rs6000.md (movsi): Add support for V.4's -fpic and -FPIC. - (init_v4_pic): Initialize the V4 pic register if needed. - (call patterns): If -fpic/-fPIC, call function with @plt suffix. - - * t-eabigas (MULTILIB_DIRNAMES): Remove errant pic directory. - - * rs6000.c (output_prolog): Correctly store & restore the - arguments to main in their correct save location, when calling the - start function. - -Mon Apr 8 13:01:37 1996 David Reese <Dave.Reese@East.Sun.COM> - - * rs6000.c (print_operand): Use reg_names to print registers. - -Fri Apr 5 00:40:19 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (h8300_valid_machine_decl_attribute): Use underscores, - not dashes in attributes. - (h8300_funcvec_function_p): Corresponding changes. - (h8300_interrupt_function_p): Likewise. - - * pa.h (INIT_CUMULATIVE_INCOMING_ARGS): Initialize "indirect" - field to zero. - -Thu Apr 4 12:52:11 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * loop.c (combine_givs): Use new macro GIV_SORT_CRITERION. - New variable giv_array. Loop over giv_array instead of following - next_iv links. - (giv_sort): New function. - * sh.h (GIV_SORT_CRITERION): Define. - - * c-typeck.c (push_init_level): When output alignment for structure - field, add check to verify it is the next field to be output. - -Thu Apr 4 12:19:26 1996 David Mosberger-Tang <davidm@AZStarNet.com> - - * alpha.c: Don't include stamp.h for Linux-based GNU systems. - -Thu Apr 4 12:17:08 1996 Richardg Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc/Makefile: Rename thread* to thr*. - * objc/thread.c: Rename thread-* to thr-*. - * objc/thr-decosf1.c: Renamed from thread-decosf1.c - * objc/thr-irix.c: Renamed from thread-irix.c. - * objc/thr-single.c: Renamed from thread-single.c. - * objc/thr-solarius.c: Renamed from thread-solaris.c. - * objc/thr-win32.c: Renamed from thread-win32.c. - * objc/objc-api.h: Include thr.h, not thread.h. - * objc/runtime.h, objc/sarray.h: Likewise. - - * i386.md (ashldi3_const_int): Don't recognize if won't match - constraint of operand 2. - -Thu Apr 4 11:40:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> - - * config/fp-bit.c (EXTENDED_FLOAT_STUBS): If EXTENDED_FLOAT_STUBS - is defined, define all of the XF/TF functions that might be - generated that we don't have code for yet. - - * i960/t-(vxworks960,960bare): (LIB2FUNCS_EXTRA): Make and - compile xp-bits.c that defines EXTENDED_FLOAT_STUBS. - - From: steve chamberlain <sac@slash.cygnus.com> - * i386/x-cygwin32 (LANGUAGES): Delete. - * i386/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe. - * rs6000/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe. - -Wed Apr 3 14:10:16 1996 Jim Wilson <wilson@chestnut.cygnus.com> - - * expr.c (emit_push_insn): Clobber register only if it is non-zero. - -Wed Apr 3 11:31:55 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.h (h8300_funcvec_function_p): Declaration moved here. - * h8300.c (h8300_funcvec_function_p): Declaration removed from here. - * h8300.md (tstqi): Tweak to work like other tstXX patterns. - (cmphi): Turn into a define_expand. Add two anonymous - matterns to match the output of the cmphi expander. - (cmpsi): Accept constants as the second input operand. - -Tue Apr 2 13:52:30 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.md (movqi_internal): Remove useless alternative(s). Fix - lengths and simplify by reordering remaining alternatives. - (movstrictqi, movhi_internal, movstricthi): Likewise. - (movsi_h8300h, movsf_h8300h): Likewise. - - * h8300/h8300.c (extra_pop): Remove unused variable. - (current_function_anonymous_args): Likewise. - (function_prologue): Remove incorrect varargs/stdarg - related code. - (function_epilogue): Likewise. - (function_arg): Never pass unnamed arguments in registers. - * h8300.h (LONG_LONG_TYPE_SIZE): Use 64bits when ints are 32bits. - (SETUP_INCOMING_VARARGS): Remove definition. - -Mon Apr 1 16:59:48 1996 Ian Lance Taylor <ian@cygnus.com> - - * fixincludes: Fix signal prototype on SunOS to avoid pedantic C++ - error. - -Mon Apr 1 16:16:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (get_inner_reference): When finding mode to access bitfield - that ends up properly aligned, use mode class of its type unless - type's mode was BLKmode. - -Mon Apr 1 13:45:30 1996 Jeffrey A. Law <law@cygnus.com> - - * h8300.c (interrupt_handler): Renamed from pragma_interrupt. - All references changed. - (function_prologue): Set interrupt_handler if the current - function has the "interrrupt-handler" attribute. - (small_call_insn_operand): New function. - (h8300_interrrupt_function_p): New function. - (h8300_funcvec_function_p): New function. - (h8300_valid_machine_decl_attribute): New function. - * h8300.h (VALID_MACHINE_DECL_ATTRIBUTE): Define. - * h8300.md (call insns): Handle calls through the - function vector. Indirect calls and calls through - the function vector have a length of two bytes. - -See ChangeLog.10 for earlier changes. - -Use a consistent time stamp format in ChangeLog entries. -Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/FSFChangeLog.12 b/gcc/FSFChangeLog.12 deleted file mode 100755 index ecb2919..0000000 --- a/gcc/FSFChangeLog.12 +++ /dev/null @@ -1,1244 +0,0 @@ -Sat May 2 20:39:22 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (fold): When commutting COND_EXPR and binary operation, - avoid quadratic behavior if have nested COND_EXPRs. - -Tue Apr 28 17:30:05 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * mips.h (HOST_WIDE_INT): Define if not already. - (compute_frame_size, mips_debugger_offset): Return HOST_WIDE_INT. - (DEBUGGER_{AUTO,ARG}_OFFSET): Cast second arg to HOST_WIDE_INT. - * /mips.c (mips_debugger_offset): Now returns HOST_WIDE_INT. - Likewise for internal variable frame_size. - - * final.c (alter_subreg): Make new SUBREG if reload replacement - scheduled inside it. - - * dwarf2out.c (add_bound_info, case SAVE_EXPR): Pass - SAVE_EXPR_RTL address through fix_lexical_addr. - -Mon Apr 27 18:57:18 1998 Jim Wilson <wilson@cygnus.com> - - * mips/sni-svr4.h (CPP_PREDEFINES): Add -Dsinix and -DSNI. - -Mon Apr 20 14:48:29 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.md (mov{sf,df} define_splits): When splitting move of - constant to int reg, don't split insns that do simple AND and OR - operations; just split each word and let normal movsi define split - handle it further. - -Sun Apr 19 20:21:19 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * real.h (C4X_FLOAT_FORMAT): New macro. - * real.c (c4xtoe, etoc4x, toc4x): New functions. - -Sun Apr 19 20:17:32 1998 Niklas Hallqvist <niklas@petra.appli.se> - - * m68k.c (notice_update_cc): Use modified_in_p to check for update. - -Sun Apr 19 18:48:07 1998 K. Richard Pixley <rich@kyoto.noir.com> - - * fixincludes: Discard empty C++ comments. - Special case more files with C++ comments nested in C comments. - -Sun Apr 19 18:30:11 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md ({add,sub}di3): Optimize for constant operand. - -Sun Apr 19 18:27:11 1998 Alan Modra <alan@spri.levels.unisa.edu.au> - - * i386.c (output_387_binary_op): Swap operands when popping if result - is st(0). - -Sun Apr 19 17:58:01 1998 Peter Jeremy <peter.jeremy@alcatel.com.au> - - * expr.c (do_jump_by_parts_equality_rtx): Now public. - * expmed.c (do_cmp_and_jump): New function. - (expand_divmod): Use do_cmp_and_jmp instead of emit_cmp_insn and - emit_jump_insn. - -Sun Apr 19 07:48:37 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-typeck.c (build_c_cast): Check underlying type when seeing - if discarding const or volatile. - - * c-decl.c (pushdecl): Avoid duplicate warning about implicit redecl. - - * configure.in (stab.h): Check for it. - (i386-*-vsta): Include xm-i386.h too. - * dbxout.c (stab.h): Include based on autoconf results. - * vax/xm-vms.h (NO_STAB_H): Deleted. - * alpha/xm-vms.h, xm-mips.h, i386/xm-mingw32.h, i386/go32.h: Likewise. - * i386/xm-cygwin32.h: Likewise. - * i386/xm-vsta.h (NO_STAB_H): Likewise. - (i386/xm-i386.h): No longer include. - - * mips.c: Cleanups and reformatting throughout. - ({expand,output}_block_move): Use HOST_WIDE_INT for sizes. - (mips_debugger_offset, compute_frame_size): Likewise. - (save_restore_insns, mips_expand_{pro,epi}logue): Likewise. - (siginfo): Deleted. - (override_options): Don't set up to call it; don't call setvbuf. - -Mon Apr 13 06:40:17 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * configure.in (sparc-*-vxsim*): Include xm-siglist.h and - define USG and POSIX. - -Sun Apr 12 21:59:27 1998 Jeffrey A. Law <law@cygnus.com> - - * calls.c (expand_call): Fix typo in STRICT_ARGUMENT_NAMING. - -Sun Apr 12 21:42:23 1998 D. Karthikeyan <karthik@cdotd.ernet.in> - - * m68k.h (TARGET_SWITCHES): Add missing comma. - -Sun Apr 12 21:33:33 1998 Eric Valette <valette@crf.canon.fr> - - * configure.in (i[34567]86-*-rtemself*): New configuration. - * i386/rtemself.h: New file. - -Sun Apr 12 21:08:28 1998 Jim Wilson <wilson@cygnus.com> - - * loop.c (loop_optimize): Reset max_uid_for_loop after - find_and_verify_loops call. - (strength_reduce): In auto_inc_opt code, verify v->insn has valid - INSN_LUID. - -Sun Apr 12 20:54:59 1998 Richard Earnshaw (rearnsha@arm.com) - - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. - -Sun Apr 12 20:47:37 1998 Pat Rankin <rankin@eql.caltech.edu> - - * cccp.c (eprint_string): New function. - (do_elif, do_else, verror): Use it instead of fwrite(,,,stderr). - (error_from_errno, vwarning): Likewise. - ({verror,vwarning,pedwarn}_with_line): Likewise. - (pedwarn_with_file_and_line, print_containing_files): Likewise. - -Sun Apr 12 20:40:44 1998 Richard Henderson <rth@dot.cygnus.com> - - * configure.in (alpha*-*-linux-gnu*): Add alpha/t-crtbe. - Add crt{begin,end}.o in extra_parts and delete crt{begin,end}S.o.o - * alpha/t-crtbe, alpha/crt{begin,end}.asm: New files. - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_trunc[ds]fdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - -Sun Apr 12 13:09:46 1998 Scott Christley <scottc@net-community.com> - - * objc/encoding.c (objc_sizeof_type, _C_VOID): New case. - -Sun Apr 12 13:04:55 1998 Nikolay Yatsenko (nikolay@osf.org) - - * configure.in (i[34567]86-*-osf1*): New entry. - * i386/osf1-c[in].asm: New files for OSF/1. - * i386/osf1elf{,gdb}.h, i386/[xt]-osf1elf, i386/xm-osf1elf.h: Likewise. - -Sun Apr 12 10:03:51 1998 Noel Cragg <noel@red-bean.com> - - * fixincludes: Remove specification of parameters when renaming - functions in Alpha DEC Unix include files. - -Sun Apr 12 07:33:46 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * mips.c (large_int): Use HOST_WIDE_INT, not int. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - - * toplev.c (main): Sort order of handling of -d letters. - Use `F' instead of `D' for addressof_dump. - - * libgcc2.c (_eh_compat): Deleted. - * Makefile.in (LIB2FUNCS): Delete _eh_compat. - - * configure.in (alpha*-*-linux-gnu*): Don't include alpha/xm-linux.h. - - * c-common.c (check_format_info): Properly test for nested pointers. - - * pa.md (casesi0): Add missing mode for operand 0. - - * function.c (purge_addressof_1, case MEM): If BLKmode, put ADDRESSOF - into stack. - - * c-parse.in (label): Give warning if pedantic and label not integral. - - * c-decl.c (grokdeclarator): Don't warn about return type if in - system header. - - * reload.c (reload_nongroup): New variable. - (push{_secondary,}_reload): Initialize it. - (find_reloads): Compute it. - (debug_reload): Print it. - * reload.h (reload_nongroup): Declare. - * reload1.c (reload): Use reload_nongroup instead of local computation. - Check caller_save_spill_class against any nongroup reloads. - (reloads_conflict): No longer static. - -Sun Apr 12 05:52:18 1998 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * vax.md (call patterns): Operand 1 is always a CONST_INT. - -Sat Apr 11 16:01:11 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * convert.c (convert_to_{pointer,integer,real,complex}): Use switch. - Add missing integer-like types. - Simplify return of zero in error case. - (convert_to_pointer): Remove dubious abort. - (convert_to_integer, case POINTER_TYPE): Make recursive call. - (convert_to_integer, case COND_EXPR): Always convert arms. - * tree.c (type_precision): Deleted. - - * cccp.c (do_warning): Give pedantic warning if -pedantic and not - in system file. - * cpplib.c (do_warning): Likewise. - - * function.c (target_temp_slot_level): Define here. - (push_temp_slots_for_target, {get,set}_target_temp_slot_level): New. - * stmt.c (target_temp_slot_level): Don't define here. - * expr.h (temp_slot_level): New declaration. - -Fri Apr 10 16:35:48 1998 Paul Eggert <eggert@twinsun.com> - - * c-common.c (decl_attributes): Support strftime format checking. - (record_function_format, {check,init_function}_format_info): Likewise. - (enum format_type): New type. - (record_function_format): Now static; takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change a `pedwarn' to `warning'. - * c-tree.h (record_function_format): Remove decl. - -Thu Apr 2 17:34:27 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * regclass.c (memory_move_secondary_cost): Protect uses of - SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS with #ifdef tests. - -Thu Apr 2 07:06:57 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.c (standard_68881_constant_p): Don't use fmovecr on 68060. - -Thu Apr 2 06:19:25 1998 Ken Raeburn <raeburn@cygnus.com> - - * Makefile.in (version.c): Put "cvs log" output in build directory. - - * reload.h (MEMORY_MOVE_COST): Define here if not already defined. - (memory_move_secondary_cost): Declare. - * regclass.c (MEMORY_MOVE_COST): Don't define default here. - (memory_move_secondary_cost) [HAVE_SECONDARY_RELOADS]: New function. - (regclass, record_reg_classes, copy_cost, record_address_regs): - Pass register class and direction of move to MEMORY_MOVE_COST. - (top_of_stack) [HAVE_SECONDARY_RELOADS]: New static array. - (init_regs) [HAVE_SECONDARY_RELOADS]: Initialize it. - * reload1.c (MEMORY_MOVE_COST): Don't define default here. - (emit_reload_insns, reload_cse_simplify_set): Pass register class - and direction of move to MEMORY_MOVE_COST. - * 1750a.h (MEMORY_MOVE_COST): Add extra ignored arguments. - * a29k.h, alpha.h, arc.h, arm.h, dsp16xx.h, i386.h, m32r.h: Likewise. - * m88k.h, rs6000.h: Likewise. - * mips.h (MEMORY_MOVE_COST): Likewise. - Add memory_move_secondary_cost result to cpu-specific cost. - -Mon Mar 30 13:56:30 1998 Jim Wilson <wilson@cygnus.com> - - * mips/ultrix.h (SUBTARGET_CPP_SPEC): Define. - -Wed Mar 25 16:09:01 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum direction. - (function_arg_padding): Declare. - - * rs6000.c: Include stdlib.h if we have it. - (function_arg_padding): Change return type to int, cast enum's to int. - - (From Kaveh R. Ghazi <ghazi@caip.rutgers.edu>) - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg[12]'. - - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Likewise. - - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. - -Wed Mar 25 02:39:01 1998 Paul Eggert <eggert@twinsun.com> - - * configure.in (i[[34567]]86-*-solaris2*, powerpcle-*-solaris2*, - sparc-*-solaris2*): Use fixinc.svr4 if Solaris 2.0 through 2.4. - -Mon Mar 23 07:27:19 1998 Philippe De Muyter <phdm@macqel.be> - - * m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. - - * m68k.md (zero_extend[qh]idi2, iordi_zext): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iorsi_zexthi_ashl16): Avoid "0" constraint for operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. - -Mon Mar 23 07:12:05 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * final.c (only_leaf_regs_used): If pic_offset_table_rtx used, - make sure it is a permitted register. - -Sun Mar 22 06:57:04 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expmed.c (extract_bit_field): Don't confuse SUBREG_WORD with - endian adjustment in SUBREG case. - Don't abort if can't make SUBREG needed for extv/extzv. - -Sat Mar 21 08:02:17 1998 Richard Gorton <gorton@amt.tay1.dec.com> - - * alpha.md (zero_extendqi[hsd]i2): Use "and", not "zapnot". - -Sat Mar 21 07:47:04 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * unroll.c (verify_addresses): Use validate_replace_rtx. - (find_splittable_givs): If invalid address, show nothing same_insn. - -Fri Mar 20 10:24:12 1998 Philippe De Muyter <phdm@macqel.be> - - * fold-const.c (fold, case CONVERT_EXPR): Replace sign-extension of - a zero-extended value by a single zero-extension. - -Thu Mar 19 14:59:32 1998 Andrew Pochinsky <avp@ctp.mit.edu> - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Fix error in last change. - -Thu Mar 19 14:48:35 1998 Michael Meissner <meissner@cygnus.com> - - * gcc.c (default_arg): Don't wander off the end of allocated memory. - - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. - -Thu Mar 19 06:17:59 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (toplev.o): Depend on Makefile. - -Wed Mar 18 17:40:09 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * expr.c (convert_move): Add [QH]Imode/P[QH]Imode conversions. - * machmode.def (PQImode, PHImode): New modes. - -Wed Mar 18 17:11:18 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.md (movsf+1): Optimize moving a CONST_DOUBLE zero. - -Wed Mar 18 17:07:54 1998 Ken Raeburn <raeburn@cygnus.com> - - * regclass.c (init_reg_sets): Delete init of reg-move cost tables. - (init_reg_sets_1): Put it here. - -Wed Mar 18 16:43:11 1998 Jim Wilson <wilson@cygnus.com> - - * i960.md (tablejump): Handle flag_pic. - - * profile.c (branch_prob): If see computed goto, call fatal. - - * calls.c (expand_call): Fix typos in n_named_args computation. - -Wed Mar 18 05:54:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. - - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. - - * function.c (fixup_var_refs_insns): Also delete insn storing pseudo - back into arg list. - - * combine.c (gen_binary): Don't make AND that does nothing. - (simplify_comparison, case AND): Commute AND and SUBREG. - * i386.h (CONST_CONSTS, case CONST_INT): One-byte integers are cost 0. - -Mon Mar 16 15:57:17 1998 Geoffrey Keating <geoffk@ozemail.com.au> - - * rs6000.c (small_data_operand): Ensure any address referenced - relative to small data area is inside SDA. - -Sun Mar 15 16:01:19 1998 Andrew Pochinsky <avp@ctp.mit.edu> - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Write nop's. - -Sun Mar 15 15:53:39 1998 Philippe De Muyter <phdm@macqel.be> - - * libgcc2.c (exit): Don't call __bb_exit_func if HAVE_ATEXIT. - -Sun Mar 15 15:44:41 1998 Paul Eggert <eggert@twinsun.com> - - * cccp.c: Fix bugs relating to NUL in input file name, - e.g. with `#line 2 "x\0y"'. - (PRINTF_PROTO_4): New macro. - (struct {file_buf,definition,if_stack}): New member nominal_fname_len. - (main, expand_to_temp_buffer): Store length of input file names. - (finclude, create_definition, do_line, conditional_skip): Likewise. - (skip_if_group, macroexpand): Likewise. - (make_{definition,undef,assertion}): Likewise. - (special_symbol, do_include): Use stored length of input file names. - (do_define, do_elif, do_else, output_line_directive, verror): Likewise. - (error_from_errno, vwarning, verror_with_line): Likewise. - (vwarning_with_line, pedwarn_with_file_and_line): Likewise. - (print_containing_files): Likewise. - (do_line): Fix off-by-1 problem: 1 too many bytes were being allocated. - (quote_string, pedwarn_with_file_and_line): New arg specifies length. - All callers changed. - -Sun Mar 15 15:38:16 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-typeck.c: Collect pending initializers in AVL tree instead of list. - (add_pending_init, pending_init_member): New functions. - (output_init_element): Use them. - (output_pending_init_elements): Rewritten to exploit AVL order. - -Sun Mar 15 05:10:49 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gnu.h (GNU_CPP_PREDEFINES): Deleted; not valid in traditional C. - * {i386,mips}/gnu.h (CPP_PREDEFINES): Don't call GNU_CPP_PREDEFINES. - - * flow.c (insn_dead_p): A CLOBBER of a dead pseudo is dead. - - * alpha.h (REG_ALLOC_ORDER): Put $f1 after other nonsaved. - - * sparc.c (sparc_type_code): Fix error in previous change. - -Sat Mar 14 05:45:21 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/xm-aix.h, i386/xm-osf.h (i386/xm-i386.h): Don't include. - (USG): Don't define. - * i386/xm-isc.h (i386/xm-sysv3.h): Don't include. - * i386/xm-sco.h (i386/xm-sysv3.h): Likewise. - (BROKEN_LDEXP, SMALL_ARG_MAX, NO_SYS_SIGLIST): Don't define. - * m68k/xm-3b1.h (m68k/xm-m68k.h): Don't include. - (USG): Don't define. - * m68k/xm-atari.h (m68k/xm-m68kv.h): Don't include. - (HAVE_VPRINTF, FULL_PROTOTYPES): Don't define. - * m68k/xm-crds.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, unos, USG): Don't define. - * m68k/xm-mot3300.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, NO_SYS_SIGLIST): Don't define. - * m68k/xm-plexus.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, USG): Don't define. - * m88k/xm-sysv3.h (m88k/xm-m88k.h): Don't include. - * m68k/xm-next.h (m68k/xm-m68k.h): Don't include. - * ns32k/xm-pc532-min.h (ns32k/xm-ns32k.h): Don't include. - (USG): Don't define. - * rs6000/xm-mach.h: Don't include xm-rs6000.h. - * rs6000/xm-cygwin32.h (rs6000/xm-rs6000.h): Don't include. - (NO_STAB_H): Don't define. - * sparc/xm-linux.h (xm-linux.h): Don't include. - * sparc/xm-sol2.h (sparc/xm-sysv4.h): Don't include. - * a29k/xm-unix.h, alpha/xm-linux.h, arm/xm-linux.h: Deleted. - * arm/xm-netbsd.h, i386/xm-bsd386.h, i386/xm-gnu.h: Deleted. - * i386/xm-linux.h, i386/xm-sun.h, i386/xm-sysv3.h: Deleted. - * i386/xm-winnt.h, m68k/xm-altos3068.h, m68k/xm-amix.h: Deleted. - * m68k/xm-amix.h, m68k/xm-hp320.h, m68k/xm-linux.h: Deleted. - * m68k/xm-m68kv.h, mips/xm-iris5.h, ns32k/xm-genix.h: Deleted. - * sparc/xm-pbd.h, vax/xm-vaxv.h, xm-svr3.h, xm-linux.h: Deleted. - * configure.in: Reflect above changes. - - * xm-siglist.h, xm-alloca.h: New files. - * i386/xm-sysv4.h (i386/xm-i386.h, xm-svr4.h): Don't include. - (USE_C_ALLOCA, SMALL_ARG_MAX): Don't define. - * i386/xm-sco5.h (i386/xm-sysv3.h): Don't include. - (SYS_SIGLIST_DECLARED, USE_C_ALLOCA): Don't define. - * rs6000/xm-sysv4.h, sparc/xm-sysv4.h: Don't include xm-svr4.h. - * xm-svr4.h, i386/xm-dgux.h, mips/xm-news.h, mips/xm-sysv4.h: Deleted. - * configure.in: Reflect above changes. - - * configure.in ({,host_,build_}xm_defines): New variables. - Set to USG instead of including xm-usg.h. - Write #define lines in config.h files from xm_defines vars. - * xm-usg.h: Deleted. - -Fri Mar 13 07:10:59 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * calls.c (expand_call): Fix typo in previous change. - - * sparc.c (sparc_type_code): Avoid infinite loop when have - pointer to array of same pointer. - (sparc_type_code, case REAL_TYPE): Process subtypes here too. - - * mips/bsd-4.h, mips/iris3.h, mips/news{4,5}.h: Don't include mips.h. - * mips/news5.h, mips/osfrose.h, mips/svr{3,4}-4.h: Likewise. - * mips/ultrix.h: Likewise. - * mips/cross64.h: Don't include iris6.h. - * mips/ecoff.h: Don't include mips.h or gofast.h. - * mips/elforion.h: Don't include elf64.h. - * mips/iris4.h: Don't include iris3.h. - * mips/iris4loser.h: Don't include iris4.h. - * mips/iris5gas.h: Don't include iris5.h. - * mips/elflorion.h, mips/nws3250v4.h, mips/xm-iris{3,4}.h: Deleted. - * mips/xm-nws3250v4.h, mips/xm-sysv.h: Deleted. - * mips/rtems64.h: Don't include elflorion.h. - * mips/sni-gas.h: Don't include sni-svr4.h. - * mips/svr4-t.h: Don't include svr4-5.h. - * mips/dec-osf1.h: Also include mips.h. - * mips/ecoffl.h, mips/elf.h: Also include mips.h and gofast.h. - * mips/iris5.h: Also include iris3.h and mips.h. - * xm-usg.h: New file. - * mips/xm-iris5.h: Don't include xm-mips.h; don't define USG. - * mips/xm-news.h, mips/xm-sysv4.h: Don't include xm-sysv.h. - * configure.in: Reflect above changes. - -Thu Mar 12 07:18:48 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.h (STRICT_ARGUMENT_NAMING): Provide default value of 0. - * calls.c (expand_call): Use value of STRICT_ARGUMENT_NAMING. - * function.c (assign_parm): Likewise. - * mips/abi64.h (STRICT_ARGUMENT_NAMING): Return 0 for ABI_32. - * sparc.h (STRICT_ARGUMENT_NAMING): Only nonzero for V9. - - * calls.c (expand_call, expand_library_call{,_value}, store_one_arg): - Rework handling of REG_PARM_STACK_SPACE to treat return value of - zero as if macro not defined; add new arg to emit_push_insn. - * expr.c (emit_push_insn): New arg, REG_PARM_STACK_SPACE. - * expr.h (emit_push_insn): Likewise. - * mips/abi64.h (REG_PARM_STACK_SPACE): Define. - -Wed Mar 11 06:58:13 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * m68k.h (CONST_OK_FOR_LETTER_P, case 'M'): Correct range check. - -Wed Mar 11 06:15:52 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (emit_push_insn): Use loop to find movstr patterns - instead of explicit tests. - - * Makefile.in (extraclean): Don't delete install1.texi. - -Tue Mar 10 14:27:51 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (make_field_assignment): Don't get confused if OTHER - has VOIDmode and don't do anything if DEST is wider than a host word. - - * vax.c (check_float_value): Cast bcopy args to char *. - -Tue Mar 10 13:56:12 1998 Jim Wilson <wilson@cygnus.com> - - * mips/abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and - TARGET_DEFAULT and define __LONG_MAX__ appropriately. - Add support for -mabi=X, -mlong64, and -mgp{32,64} options. - * mips.c (mips_abi): Change type to int. - * mips.h (enum mips_abi_type): Delete. - (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. - (mips_abi): Change type to int. - -Mon Mar 2 08:06:58 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Version 2.8.1 released. - - * Makefile.in (mostlyclean): Remove duplicate deletion of temp - files. Delete more stamp files and [df]p-bit.c - (clean): Don't delete stamp files here. - (VERSION_DEP): New variable. - (distdir-finish): Pass a value of null for it. - (version.c): Use it. - Avoid broken pipe with cvs log. - - * objc/Make-lang.in (objc/runtime-info.h): Rename emptyfile to - tmp-runtime and delete at end. - -Sun Mar 1 05:50:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.c (build_reference_type): Handle obstacks like - build_pointer_type. - - * Makefile.in (tmp-gcc.xtar): Renamed from gcc.xtar. - (gcc.xtar.gz): Deleted; merged with `dist'. - (diff): Create gcc-$(oldversion)-$(version).diff. - (distdir): Depend on distdir-cvs. - (distdir-cvs): New rule. - (distdir-start): Depend on version.c and TAGS. - (TAGS): Use tmp-tags instead of temp. - (dist): Create gcc-$(version).tar.gz. - - * varasm.c (compare_constant_1): Fix typo in previous change. - - * objc/Make-lang.in (objc-distdir): Properly rebuild objc-parse.c. - -Sat Feb 28 16:58:08 1998 Tristan Gingold <gingold@rossini.enst.fr> - - * stmt.c (expand_decl): If -fcheck-memory-usage, put vars in memory. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{CONST_ADDRESS, INITIALIZER} to MEMORY_USE_DONT. - -Sat Feb 28 08:13:43 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i860/fx2800.h (DATA_ALIGNMENT): Use POINTER_TYPE_P. - * m68k/a-ux.h (FUNCTION_VALUE): Likewise. - * expr.c (get_pointer_alignment, compare, do_store_flag): Likewise. - (expand_builtin): Likewise. - * fold-const.c (force_fit_type, fold_convert, fold): Likewise. - * function.c (assign_parms): Likewise. - * integrate.c (expand_inline_function): Likewise. - * sdbout.c (sdbout_field_types): Likewise. - * tree.c (integer_pow2p, tree_log2, valid_machine_attribute): Likewise. - * stmt.c (expand_decl): Likewise. - ({,bc_}expand_decl_init): Also test for REFERENCE_TYPE. - - * configure.in (version_dep): New variable; if srcdir is CVS working - directory, set to ChangeLog. - (version): Supply default if no version.c. - * Makefile.in (version.c): New rule. - - * gcc.c (snapshot_warning): New function. - (main): Call it for snapshots. - - * dwarf2out.c (expand_builtin_dwarf_reg_size): If reg_raw_mode - not valid for reg, use last size. Also refine range assertion. - -Sat Feb 28 05:04:47 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * enquire.c (cprop): Don't perform exhaustive search for char_min - and char_max when bits_per_byte > 16. - -Thu Feb 26 15:12:03 1998 Christopher Taylor <cit@ckshq.com> - - * fixincludes: Avoid using '0-~' in egrep. - -Thu Feb 26 08:04:05 1998 Tristan Gingold <gingold@messiaen.enst.fr> - - * function.c (assign_parms): Call 'chkr_set_right' when DECL_RTL - is stack_parm. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{SUM, CONST_ADDRESS, INITIALIZER} to MEMORY_USE_RO. - -Thu Feb 26 07:33:53 1998 Paul Eggert <eggert@twinsun.com> - - * c-lex.c (yylex): Don't munge errno before using it. - * cccp.c (error_from_errno, perror_with_name): Likewise. - * cpplib.c (cpp_error_from_errno): Likewise. - * gcc.c (pfatal_pexecute): Likewise. - * protoize.c (safe_write, find_file, process_aux_info_file): Likewise. - (rename_c_file, edit_file): Likewise. - - * c-lex.c (yylex): Remove unused variable exceeds_double. - -Thu Feb 26 07:05:14 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. - -Thu Feb 26 06:45:23 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (distdir-start): Don't copy CVS subdirectory of config. - - * varasm.c ({compare,record}_constant_1, case CONSTRUCTOR): - Handle the case when we have TREE_PURPOSE values. - -Thu Feb 26 05:59:01 1998 Philippe De Muyter <phdm@macqel.be> - - * fixincludes (sys/limits.h): Fix a nested comment problem with - HUGE_VAL definition on sysV68 R3V7.1. - -Wed Feb 25 21:09:38 1998 Philippe De Muyter <phdm@macqel.be> - - * toplev.c (TICKS_PER_SECOND): Renamed from CLOCKS_PER_SECOND. - -Wed Feb 25 20:50:08 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. - -Wed Feb 25 19:50:01 1998 Mikael Pettersson <Mikael.Pettersson@sophia.inria.fr> - - * gcc.c (lookup_compiler): Remove redundant test. - -Wed Feb 25 07:24:22 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * vax.md (call insns): Second operand to CALL rtl is SImode. - - * configure.in (i[34567]86-*-mingw32): Support msv and crt suffix. - * i386/crtdll.h: New file. - - * sparc.c (pic_setup_code): If -O0, write USE of pic_offset_table_rtx. - - * expr.c (safe_from_p): Add new arg, TOP_P; all callers changed. - -Sat Feb 21 07:02:39 1998 Jim Wilson <wilson@cygnus.com> - - * mips/iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * mips/iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. - -Fri Feb 20 08:27:46 1998 Paul Eggert <eggert@twinsun.com> - - * sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using system linker. - * toplev.c (main): Don't default to DWARF2_DEBUG with -ggdb - if LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. - -Fri Feb 20 08:21:49 1998 H.J. Lu (hjl@gnu.org) - - * alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Support shared library. - (LIB_SPEC, DEFAULT_VTABLE_THUNKS): Defined #ifndef USE_GNULIBC_1. - * sparc/linux.h (DEFAULT_VTABLE_THUNKS): Likewise. - (LIB_SPEC): Add -lc for -shared #ifndef USE_GNULIBC_1. - * linux.h (LIB_SPEC): Likewise. - * sparc/linux64.h (LIB_SPEC): Likewise; also updated for glibc 2. - (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - -Fri Feb 20 05:22:12 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (distdir-start): Add dependence on bi-parser.[ch]. - -Thu Feb 19 18:07:11 1998 Jim Wilson <wilson@cygnus.com> - - * m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. - -Wed Feb 18 09:37:29 1998 Paul Eggert <eggert@twinsun.com> - - * fixincludes (stdlib.h): Do not double-wrap the size_t typedef. - -Wed Feb 18 07:32:11 1998 Jim Wilson <wilson@cygnus.com> - - * i960.c (emit_move_sequence): Handle unaligned stores to pseudos. - * i960.md (store_unaligned_[dt]i_reg): Handle register dest. - (store_unaligned_ti_reg): Likewise. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE} [MOTOROLA]): Add %# and %/; - add : to make them into extended asms. - -Wed Feb 18 07:08:05 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reg-stack.c (compare_for_stack_reg): Only handle FP conditional - move as next insn specially. - - * reload.c (find_reloads): Always convert address reload for - non-reloaded operand to RELOAD_FOR_OPERAND_ADDRESS. - - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. - -Sat Feb 14 09:59:00 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] for hard float. - (movdfcc): Only accept fpu_add_operand for operands[3].8 - -Sat Feb 14 09:32:34 1998 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. - -Sat Feb 14 09:27:42 1998 David Edelsohn <edelsohn@mhpcc.edu> - - * rs6000.h (MY_ISCOFF): Check for U803XTOCMAGIC. - -Sat Feb 14 08:29:43 1998 Arvind Sankar <arvind@cse.iitb.ernet.in> - - * t-svr4 (TARGET_LIBGCC_CFLAGS): New definition. - -Sat Feb 14 07:45:16 1998 Ken Rose (rose@acm.org) - - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. - -Sat Feb 14 07:14:02 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload.c (debug_reload): Properly output insn codes. - - * pa.c (emit_move_sequence): If in reload, call find_replacement. - - * gansidecl.h (bcopy, bzero, {,r}index): Don't define if IN_LIBGCC2. - - * combine.c (distribute_notes, case REG_DEAD): When seeing if place - to put new note sets register, use reg_bitfield_target_p, as in - original code. - - * gcc.c (process_command): If file is for linker, set lang to "*". - (lookup_compiler): Return 0 for language of "*". - - * sched.c (attach_deaths, case SUBREG): Fix error in last change. - - * i386.md (mov[sdx]fcc): Disable for now. - (mov[sd]fcc_1): Add earlyclobber for output on last alternative. - -Sat Feb 14 06:42:50 1998 Jason Merrill <jason@yorick.cygnus.com> - - * except.c (get_dynamic_handler_chain): Only make call once per func. - (expand_fixup_region_{start,end}): New functions. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use new functions to protect fixups. - - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Don't init get_dynamic_handler_chain_libfunc. - * expr.h (get_dynamic_handler_chain_libfunc): Deleted. - -Sat Feb 14 06:34:41 1998 Peter Lawrence <Peter.Lawrence@Eng.Sun.COM> - - * optabs.c (emit_conditional_move): Don't reverse condition for FP. - -Fri Feb 13 07:22:04 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (mostlyclean): Only use s-* convention for stamp - files in main dir. - - * configure.in: Add support for i786 (Pentium II); same as i686. - -Thu Feb 12 20:16:35 1998 Michael Meissner <meissner@cygnus.com> - - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. - -Thu Feb 12 10:08:14 1998 John Hassey <hassey@dg-rtp.dg.com> - - * configure.in (i[3456]86-dg-dgux*): Don't need fixincludes. - -Thu Feb 12 07:27:39 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Define. - about system headers. - (LIB_SPEC): Add -ladvapi32 -lshell32. - -Thu Feb 12 07:19:31 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_assignment): Fix typo in checking OFFSET. - - * gbl-ctors.h (atexit): Don't define unless needed. - - * combine.c (distribute_notes): Completely check for note operand being - only partially set on potential note target; adjust what notes - we make in that case. - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,INDEX,RINDEX}): Deleted. - -Wed Feb 11 08:53:27 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * calls.c (emit_call_1): Size args now HOST_WIDE_INT. - (expand_call): struct_value_size now HOST_WIDE_INT. - -Tue Feb 10 09:04:39 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * integrate.c (initialize_for_inline): Ensure DECL_INCOMING_RTL - is always copied. - -Tue Feb 10 06:10:49 1998 Paul Eggert <eggert@twinsun.com> - - * cccp.c (rescan): Fix bug with macro name appearing - immediately after L'x'. - -Mon Feb 9 20:45:32 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * c-common.c (format_char_info): Add new field zlen. - (print_char_table): Remove entry for 'Z' as a format character. - Initialize zlen field as appropriate. - (scan_char_table): Set zlen field to NULL in each entry. - (check_format_info): Recognize 'Z' as a length modifier, with a - warning in pedantic mode. - Avoid infinite loop when a repeated flag character is detected. - -Mon Feb 9 09:24:04 1998 Paul Eggert <eggert@twinsun.com> - - * c-parse.in (primary): Minor wording fix in diagnostic. - -Mon Feb 9 07:50:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-decl.c (grokdeclarator): Remove warning on inline of varargs. - - * reload.c (find_reloads): Check for const_to_mem case before - checking for invalid reload; use force_const_mem if no_input_reloads. - - * function.c (push_function_context_to): Call init_emit last. - - * protoize.c (my_link): Define as -1 in mingw32. - (link): Remove declaration. - - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. - - * integrate.c (expand_inline_function): Clear label_map with bzero. - - * unroll.c (copy_loop_body, case JUMP_INSN): Correct error in last - change: call single_set on COPY, not INSN. - -Sun Feb 8 08:07:37 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * msdos/top.sed, winnt/config-nt.sed: Change version number to 2.8.1. - - * configure.in (i[3456]86-*-sco3.2v5*): Use cpio for headers. - -Sat Feb 7 07:32:46 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386/mingw32.h (LIBGCC_SPEC, STARTFILE_SPEC, MATH_LIBRARY): - Use msvcrt, not crtdll. - -Fri Feb 6 20:32:06 1998 Geert Bosch <bosch@gnat.com> - - * i386/xm-os2.h (EMX, USG, BSTRING, HAVE_{PUTENV,VPRINTF,STRERROR}): - Define ifdef __EMX__. - (strcasecmp): Define to be stricmp if __EMX__. - (spawnv{,p}): Don't define if EMX. - (OBJECT_SUFFIX): Don't define if EMX. - (MKTEMP_EACH_FILE): Define. - -Fri Feb 6 16:37:29 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise for the - respective stageN-start targets. - (objc/sendmsg.o): Depend on objc/runtime-info.h. - -Fri Feb 6 16:27:09 1998 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> - - * stmt.c (expand_asm_operands): Properly treat asm statement - statements with no operands as volatile. - -Fri Feb 6 16:03:25 1998 Greg McGary <gkm@gnu.org> - - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. - -Fri Feb 6 15:57:36 1998 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin32.h (STRIP_NAME_ENCODING): New macro. - -Fri Feb 6 15:50:42 1998 Paul Eggert <eggert@twinsun.com> - - * libgcc2.c (__floatdi[xtds]f): Round properly even when rounding - large negative integer to plus or minus infinity. - -Fri Feb 6 15:45:16 1998 Philippe De Muyter <phdm@macqel.be> - - * sdbout.c (plain_type_1): Return T_DOUBLE, not T_VOID, for - long double #ifndef EXTENDED_SDB_BASIC_TYPES. - -Fri Feb 6 15:23:49 1998 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * vax/ultrix.h (HAVE_ATEXIT): Define. - * x-vax: File deleted. - -Fri Feb 6 14:34:19 1998 Douglas Rupp <rupp@gnat.com> - - * gcc.c (process_command, case "-dumpversion"): Print spec_version. - -Fri Feb 6 11:01:13 1998 Josh Littlefield <josh@american.com> - - * i386/gmon-sol2.c (internal_mcount): Do set-up when program starts - and install hook to do clean-up when it exits. - * i386/sol2-c1.asm (_mcount): Make a weak instead of global symbol. - * i386/sol2dbg.h (ASM_SPEC): Support Solaris bundled assembler's -V - argument; pass -s argument to assembler. - -Fri Feb 6 09:13:21 1998 Jim Wilson (wilson@cygnus.com) - - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. - - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * mips/iris6.h (LINK_SPEC): Hide __frame_dummy too. - -Fri Feb 6 09:08:21 1998 Mike Stump <mrs@wrs.com> - - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload. - * genattrtab.c (reload_completed): Define. - - * configure.in (i960-wrs-vxworks): Same as i960-wrs-vxworks5*. - -Fri Feb 6 08:47:38 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (diff): Add INSTALL, configure, and config.in; - remove objc-*. - * objc/config-lang.in (diff_excludes): Add objc-parse.[cy]. - - * i386/xm-mingw32.h (link): Delete macro. - - * alpha.c (output_prolog): Write out frame sizes as longs and - print too large sizes as zero. - - * function.c (combine_temp_slots): No need to allocate and free rtx. - Don't do anything if too many slots in the list. - (put_var_into_stack): Don't use ADDRESSOF if not optimizing. - - * function.c (purge_addressof_1): Force into mem if VOLATILE reference. - - * calls.c (expand_call): Show VAR_DECL made for structure return - address is used; remove bogus set of MEM_IN_STRUCT_P. - * expr.c (expand_expr, case SAVE_EXPR, case TARGET_EXPR): Show used. - (expand_builtin, case BUILT_IN_LONGJMP): Show __dummy used. - * function.c (put_reg_into_stack): New arg USED_P; all callers changed. - - * expr.c (expand_expr, case SAVE_EXPR): assign_temp with KEEP of 3. - * function.c (var_temp_slot_level): New variable. - (push_function_context_to, pop_function_context_from): Save/restore - it and target_temp_slot_level. - (assign_stack_temp): Implement KEEP of 3. - (push_temp_slots_for_block): New function. - (init_temp_slots): Initialize var_temp_slot_level. - * function.h (struct function, fields {var,target}_temp_slot_level): - New fields. - * stmt.c (expand_start_bindings): Call push_temp_slots_for_block. - - * function.c (struct temp_slot): SIZE, BASE_OFF_SET, and FULL_SIZE - now HOST_WIDE_INT. - (assign_{,outer_}stack_local, assign_{,stack_}temp): Size arg is - now HOST_WIDE_INT. - (assign_stack_temp): Do size computations in HOST_WIDE_INT. - (fixup_var_refs_1, optimize_bit_field, instantiate_decls): Likewise. - (instantiate_virtual_regs_1, fix_lexical_address): Likewise. - * rtl.h (assign_stack_{local,temp}): Size arg is HOST_WIDE_INT. - (assign_temp): Likewise. - * expr.h (struct args_size): Field CONSTANT is now HOST_WIDE_INT. - - * sched.c (attach_deaths, case REG): Don't check for REG_UNUSED. - (attach_deaths, case SUBREG, STRICT_LOW_PART, {ZERO,SIGN}_EXTRACT): - Don't pass set_p of 1 if partial assignment. - - * tree.h (size_in_bytes): Returns HOST_WIDE_INT. - * tree.c (size_in_bytes): Likewise. - Tighen up logic some to avoid returning a bogus value instead of -1. - - * expr.c (get_inner_reference, case ARRAY_EXPR): Make WITH_RECORD_EXPR - just for index. - (expand_expr, case PLACEHOLDER_EXPR): Refine search again; look - at each expression and look for pointer to type. - - * expr.c (safe_from_p, case ADDR_EXPR): If TREE_STATIC, no trampoline. - (expand_expr, case ADDR_EXPR): Likewise. - - * expr.c (emit_block_move): Use conservative range for movstr mode. - - * configure.in: See if "cp -p" works if "ln -s" doesn't; else "cp". - - * combine.c (try_combine.c): Pass elim_i2 and elim_i1 to - distribute_notes for i3dest_killed REG_DEAD note. - - * configure.in (mips-dec-netbsd*): Remove bogus setting of prefix. - - * c-decl.c (duplicate_decls): Set DECL_IGNORED_P in newdecl if - different bindings levels. - - * configure.in: Test ln -s by symlinking gcc.c. - - * configure.in (i[3456]86-dg-dgux): Add wildcard for version. - - * crtstuff.c (__do_global_ctors_aux): Switch back to text section - in proper place. - - * rtlanal.c (rtx_varies_p, case REG): pic_offset_table_rtx is fixed. - * genattrtab.c (pic_offset_table_rtx): Define (dummy). - * cse.c (set_nonvarying_address_components): Understand PIC refs. - - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. - - * i860.c (output_delayed_branch): Add missing arg to recog. - (output_delay_insn): Add missing arg to constrain_operands. - - * configure.in: Truncate target after finished comparing it with host. - - * i386.h (MAX_FIXED_MODE_SIZE): Delete. - - * c-parse.in (expr_no_comma): Clarify undefined error. - - * prefix.c (get_key_value): Don't default to PREFIX here. - (translate_name): Remove bogus addition of "$" if getenv fails; - clean up application of default value of PREFIX. - - * fold-const.c (fold_convert): Call force_fit_type even if input - already overflows. - -Fri Feb 6 07:45:01 1998 Robert Hoehne <robert.hoehne@gmx.net> - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,BCMP,RINDEX,INDEX}): Define. - - * gcc.c (main): Treat paths starting with '$' or DOS drives - as absolute in standard_startfile_prefix. - -Thu Feb 5 21:07:12 1998 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * cpplib.c (IS_INCLUDE_DIRECTIVE_TYPE): Add casts from enum to int. - * cccp.c (IS_INCLUDE_DIRECTIVE_TYPE, handle_directive): Likewise. - -Thu Feb 5 19:00:44 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case CONSTRUCTOR): Correct shift count - when making signed bit field; use EXPAND_NORMAL, not 0. - -Thu Feb 5 17:42:43 1998 Manfred Hollstein <manfred@s-direktnet.de> - - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. - -Thu Feb 5 17:32:01 1998 Robert Hoehne <robert.hoehne@gmx.net> - - * Makefile.in: Changed most stamp-* to s-*. - -Tue Feb 3 19:45:50 1998 James Hawtin <oolon@ankh.org> - - * i386/sol2.h (STARTFILE_SPEC, LIB_SPEC): Update -pg files. - * configure.in (i[3456]86-*-solaris2*): Add gcrt1.o and gmon.o - to extra_parts. - -Tue Feb 3 17:28:48 1998 Christopher C Chimelis <chris@classnet.med.miami.edu> - - * configure.in (alpha*-*-linux-gnu*): Add extra_parts for crtstuff. - -Tue Feb 3 17:18:19 1998 Richard Earnshaw <rearnsha@arm.com> - - * arm.c (find_barrier): Fix one-too-many bug if fail to find barrier. - - * arm.c (arm_reload_in_hi): Handle cases where the MEM is too - complex for a simple offset. - -Tue Feb 3 16:14:21 1998 Robert Hoehne <robert.hoehne@gmx.net> - - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - - * configure.in (i[3456]86-pc-msdosdjgpp*): New entry. - -Tue Feb 3 07:33:58 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * explow.c (probe_stack_range): Properly check for small - number of probes. - - * gcc.c (process_command, case 'V'): Validate arg. - - * configure.in (sbrk): Add check for needed declaration. - * acconfig.h (NEED_DECLARATION_SBRK): New entry. - * toplev.c (sbrk): Update declaration conditional. - * mips-tfile.c (sbrk, free): Likewise. - - * sparc/sysv4.h (DBX_REGISTER_NUMBER): Remove abort. - - * mips.c (mips_expand_prologue): Pass reg 25 to gen_loadgp. - * mips.md (loadgp): Add second operand for register number to add. - (builtin_setjmp_receiver): Pass new label and reg 31 to loadgp. - - * toplev.c: Include insn-codes.h, insn-config.h, and recog.h. - (compile_file): Try to emit nop to separate gcc_compiled symbol. - * Makefile.in (toplev.o): Depends on insn-{codes,config}.h, recog.h. - -Tue Feb 3 06:58:46 1998 Mark Mitchell <mmitchell@usa.net> - - * integrate.c (get_label_from_map): New function. - (expand_inline_function): Use it. - Initialize label_map to NULL_RTX instead of gen_label_rtx. - (copy_rtx_and_substitute): Use get_label_from_map. - * integrate.h (get_label_from_map): New function. - (set_label_from_map): New macro. - * unroll.c (unroll_loop, copy_loop_body): Use them. - -Mon Feb 2 16:33:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * i386.md (mov{si,hi,sf,df,xf}cc{,_1}): Remove cases with branches. - - * rs6000/x-aix31 (INSTALL): Deleted. - * mips/x-dec-osf1, mips/x-osfrose, i386/x-osfrose: Likewise. - * arm/x-riscix: Likewise. - - * c-typeck.c (signed_or_unsigned_type): Properly handle pointer types. - -Mon Feb 2 15:33:58 1998 Michael P. Hayes <michaelh@ongaonga.chch.cri.nz> - - * unroll.c (copy_loop_body): Use single_set instead of - PATTERN to detect increment of an iv inside a PARALLEL. - -Fri Jan 16 20:29:50 1998 Paul Eggert <eggert@twinsun.com> - - * toplev.c (<unistd.h>): New include. - (get_run_time): Prefer CLK_TCK (if available) to HZ, and - prefer sysconf (_SC_CLK_TCK) (if available) to CLK_TCK. - * configure.in (sysconf): Call AC_CHECK_FUNCS. - -Wed Jan 14 20:10:51 1998 Paul Eggert <eggert@twinsun.com> - - * cccp.c: (rescan): Don't report line 0 as the possible real start - of an unterminated string constant. - Don't mishandle backslash-newlines that in are the output of - a macro expansion. Properly skip // style comments between a function - macro name and '(', as well as backslash-newlines in comments there. - (handle_directive): Handle / \ newline * between # and directive name. - In #include directives, \ does not escape ". - (do_include): For `#include "file', do not bother expanding into temp - buffer. When error encountered when expanding, do not try result. - (skip_if_group): When skipping an include directive, use include - tokenization, not normal tokenization. Backslash-newline is still - special when skipping. Handle * \ newline / correctly in comments - when skipping. - (skip_quoted_string): After \ newline, set *backslash_newlines_p - even if count_newlines is 0. - (macroexpand): Newline space is not a special marker inside a string. - (macroexpand, macarg): Do not generate \ddd for control characters - when stringifying; the C Standard does not allow this. - (macarg1): New arg MACRO. All callers changed. - Do not treat /*, //, or backslash-newline specially when processing - the output of a macro. - (discard_comments): Don't go past limit if looking for end of comment. - Discard backslash-newline properly when discarding comments. - (change_newlines): \" does not end a string. - (make_definition): Do not treat backslash-newline specially, as it - has already been removed before we get here. - - * profile.c (output_func_start_profiler): Don't fflush output - if -quiet. - * toplev.c (rest_of_compilation): Likewise. - - * i386/x-sco5 (CC): Remove trailing white space. - * x-convex (CCLIBFLAGS): Likewise. - * arm/t-semi (LIBGCC2_CFLAGS): Likewise. - -Wed Jan 7 18:02:42 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Version 2.8.0 released. - -Wed Jan 7 17:54:41 1998 J. Kean Johnston <jkj@sco.com> - - * i386/sco5.h ({END,START}FILE_SPEC): Link with correct crtbegin.o - and crtend.o when using -static. - -Wed Jan 7 17:49:14 1998 Jan Christiaan van Winkel <Jan.Christiaan.van.Winkel@ATComputing.nl> - - * cppexp.c (gansidecl.h): Include. - -Wed Jan 7 17:45:07 1998 Tristan Gingold <gingold@puccini.enst.fr> - - * expr.c (get_push_address): Use copy_to_reg instead of force_operand. - (emit_push_insn): Avoid null pointer deference if aggregate has no - types. - (expand_expr): Avoid finite but useless recursion. - (expand_builtin): Fix typo in calling function. - * function.c (assign_parms): Avoid useless call to chkr_set_right. - -Wed Jan 7 17:31:13 1998 Christian Iseli <Christian.Iseli@lslsun.epfl.ch> - - * combine.c (force_to_mode): Return if operand is a CLOBBER. - -Wed Jan 7 17:23:24 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * x-rs6000 (INSTALL): Remove. - - * jump.c (jump_optimize): Don't use a hard reg as an operand - of a conditional move if small register classes. - -Wed Jan 7 17:09:28 1998 Jim Wilson <wilson@cygnus.com> - - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use it. - (cse_main): Set it. - -See ChangeLog.11 for earlier changes. - -Use a consistent time stamp format in ChangeLog entries. -Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/c-aux-info.c b/gcc/c-aux-info.c index d86d445..aa00448 100755 --- a/gcc/c-aux-info.c +++ b/gcc/c-aux-info.c @@ -43,67 +43,6 @@ static int deserves_ellipsis PROTO((tree)); static char *gen_formal_list_for_func_def PROTO((tree, formals_style)); static char *gen_type PROTO((char *, tree, formals_style)); static char *gen_decl PROTO((tree, int, formals_style)); - -/* Concatenate a sequence of strings, returning the result. - - This function is based on the one in libiberty. */ - -/* This definition will conflict with the one from prefix.c in - libcpp.a when linking cc1 and cc1obj. So only provide it if we are - not using libcpp.a */ -#ifndef USE_CPPLIB -char * -concat VPROTO((const char *first, ...)) -{ - register int length; - register char *newstr; - register char *end; - register const char *arg; - va_list args; -#ifndef ANSI_PROTOTYPES - const char *first; -#endif - - /* First compute the size of the result and get sufficient memory. */ - - VA_START (args, first); -#ifndef ANSI_PROTOTYPES - first = va_arg (args, const char *); -#endif - - arg = first; - length = 0; - - while (arg != 0) - { - length += strlen (arg); - arg = va_arg (args, const char *); - } - - newstr = (char *) malloc (length + 1); - va_end (args); - - /* Now copy the individual pieces to the result string. */ - - VA_START (args, first); -#ifndef ANSI_PROTOTYPES - first = va_arg (args, char *); -#endif - - end = newstr; - arg = first; - while (arg != 0) - { - while (*arg) - *end++ = *arg++; - arg = va_arg (args, const char *); - } - *end = '\000'; - va_end (args); - - return (newstr); -} -#endif /* ! USE_CPPLIB */ /* Given a string representing an entire type or an entire declaration which only lacks the actual "data-type" specifier (at its left end), diff --git a/gcc/c-common.c b/gcc/c-common.c index a55df35..5f56218 100755 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -30,12 +30,10 @@ Boston, MA 02111-1307, USA. */ #include "c-pragma.h" #include "rtl.h" -#if USE_CPPLIB #include "cpplib.h" cpp_reader parse_in; cpp_options parse_options; static enum cpp_token cpp_token; -#endif #ifndef WCHAR_TYPE_SIZE #ifdef INT_TYPE_SIZE @@ -2781,7 +2779,6 @@ truthvalue_conversion (expr) return build_binary_op (NE_EXPR, expr, integer_zero_node, 1); } -#if USE_CPPLIB /* Read the rest of a #-directive from input stream FINPUT. In normal use, the directive name and the white space after it have already been read, so they won't be included in the result. @@ -2886,90 +2883,6 @@ get_directive_line () char_escaped = (c == '\\' && ! char_escaped); } } -#else -/* Read the rest of a #-directive from input stream FINPUT. - In normal use, the directive name and the white space after it - have already been read, so they won't be included in the result. - We allow for the fact that the directive line may contain - a newline embedded within a character or string literal which forms - a part of the directive. - - The value is a string in a reusable buffer. It remains valid - only until the next time this function is called. - - The terminating character ('\n' or EOF) is left in FINPUT for the - caller to re-read. */ - -char * -get_directive_line (finput) - register FILE *finput; -{ - static char *directive_buffer = NULL; - static unsigned buffer_length = 0; - register char *p; - register char *buffer_limit; - register int looking_for = 0; - register int char_escaped = 0; - - if (buffer_length == 0) - { - directive_buffer = (char *)xmalloc (128); - buffer_length = 128; - } - - buffer_limit = &directive_buffer[buffer_length]; - - for (p = directive_buffer; ; ) - { - int c; - - /* Make buffer bigger if it is full. */ - if (p >= buffer_limit) - { - register unsigned bytes_used = (p - directive_buffer); - - buffer_length *= 2; - directive_buffer - = (char *)xrealloc (directive_buffer, buffer_length); - p = &directive_buffer[bytes_used]; - buffer_limit = &directive_buffer[buffer_length]; - } - - c = getc (finput); - - /* Discard initial whitespace. */ - if ((c == ' ' || c == '\t') && p == directive_buffer) - continue; - - /* Detect the end of the directive. */ - if (looking_for == 0 - && (c == '\n' || c == EOF)) - { - ungetc (c, finput); - c = '\0'; - } - - *p++ = c; - - if (c == 0) - return directive_buffer; - - /* Handle string and character constant syntax. */ - if (looking_for) - { - if (looking_for == c && !char_escaped) - looking_for = 0; /* Found terminator... stop looking. */ - } - else - if (c == '\'' || c == '"') - looking_for = c; /* Don't stop buffering until we see another - one of these (or an EOF). */ - - /* Handle backslash. */ - char_escaped = (c == '\\' && ! char_escaped); - } -} -#endif /* !USE_CPPLIB */ /* Make a variant type in the proper way for C/C++, propagating qualifiers down to the element type of an array. */ diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 71bf948..cf98fbd 100755 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -35,10 +35,8 @@ Boston, MA 02111-1307, USA. */ #include "c-lex.h" #include "toplev.h" -#if USE_CPPLIB #include "cpplib.h" extern cpp_reader parse_in; -#endif /* In grokdeclarator, distinguish syntactic contexts of declarators. */ enum decl_context @@ -608,11 +606,7 @@ c_decode_option (argc, argv) { int strings_processed; char *p = argv[0]; -#if USE_CPPLIB strings_processed = cpp_handle_option (&parse_in, argc, argv); -#else - strings_processed = 0; -#endif /* ! USE_CPPLIB */ if (!strcmp (p, "-ftraditional") || !strcmp (p, "-traditional")) { diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 6ddfd81..5daf7ba 100755 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -38,14 +38,9 @@ Boston, MA 02111-1307, USA. */ #include <locale.h> #endif /* MULTIBYTE_CHARS */ -#if USE_CPPLIB #include "cpplib.h" extern cpp_reader parse_in; extern cpp_options parse_options; -#else -/* Stream for reading from the input file. */ -FILE *finput; -#endif extern void yyprint PROTO((FILE *, int, YYSTYPE)); @@ -57,17 +52,12 @@ tree ridpointers[(int) RID_MAX]; /* Cause the `yydebug' variable to be defined. */ #define YYDEBUG 1 -#if USE_CPPLIB extern unsigned char *yy_cur, *yy_lim; extern int yy_get_token (); #define GETC() (yy_cur < yy_lim ? *yy_cur++ : yy_get_token ()) #define UNGETC(c) ((void)(c), yy_cur--) -#else -#define GETC() getc (finput) -#define UNGETC(c) ungetc (c, finput) -#endif /* the declaration found for the last IDENTIFIER token read in. yylex must look this up to detect typedefs, which get token type TYPENAME, @@ -100,10 +90,6 @@ static int indent_level = 0; /* Number of { minus number of }. */ /* Nonzero if end-of-file has been seen on input. */ static int end_of_file; -#if !USE_CPPLIB -/* Buffered-back input character; faster than using ungetc. */ -static int nextchar = -1; -#endif #ifdef HANDLE_GENERIC_PRAGMAS static int handle_generic_pragma PROTO((int)); @@ -169,22 +155,6 @@ char * init_parse (filename) char *filename; { -#if !USE_CPPLIB - /* Open input file. */ - if (filename == 0 || !strcmp (filename, "-")) - { - finput = stdin; - filename = "stdin"; - } - else - finput = fopen (filename, "r"); - if (finput == 0) - pfatal_with_name (filename); - -#ifdef IO_BUFFER_SIZE - setvbuf (finput, (char *) xmalloc (IO_BUFFER_SIZE), _IOFBF, IO_BUFFER_SIZE); -#endif -#else /* !USE_CPPLIB */ parse_in.show_column = 1; if (! cpp_start_read (&parse_in, filename)) abort (); @@ -196,7 +166,6 @@ init_parse (filename) token buffer. We must arrange to read it out here. */ yy_cur = parse_in.token_buffer; yy_lim = CPP_PWRITTEN (&parse_in); -#endif init_lex (); @@ -206,11 +175,7 @@ init_parse (filename) void finish_parse () { -#if USE_CPPLIB cpp_finish (&parse_in); -#else - fclose (finput); -#endif } void @@ -422,11 +387,6 @@ position_after_white_space () { register int c; -#if !USE_CPPLIB - if (nextchar != -1) - c = nextchar, nextchar = -1; - else -#endif c = GETC(); UNGETC (skip_white_space (c)); @@ -560,13 +520,6 @@ check_newline () /* We invoke HANDLE_PRAGMA before HANDLE_GENERIC_PRAGMAS (if both are defined), in order to give the back end a chance to override the interpretation of generic style pragmas. */ -#if !USE_CPPLIB - if (nextchar >= 0) - { - c = nextchar, nextchar = -1; - UNGETC (c); - } -#endif /* !USE_CPPLIB */ if (TREE_CODE (yylval.ttype) != IDENTIFIER_NODE) goto skipline; @@ -837,10 +790,6 @@ linenum: /* skip the rest of this line. */ skipline: -#if !USE_CPPLIB - if (c != '\n' && c != EOF && nextchar >= 0) - c = nextchar, nextchar = -1; -#endif while (c != '\n' && c != EOF) c = GETC(); return c; @@ -874,11 +823,6 @@ handle_generic_pragma (token) default: handle_pragma_token (token_buffer, NULL); } -#if !USE_CPPLIB - if (nextchar >= 0) - c = nextchar, nextchar = -1; - else -#endif c = GETC (); while (c == ' ' || c == '\t') @@ -1090,11 +1034,6 @@ yylex () register int value; int wide_flag = 0; -#if !USE_CPPLIB - if (nextchar >= 0) - c = nextchar, nextchar = -1; - else -#endif c = GETC(); /* Effectively do c = skip_white_space (c) @@ -1192,11 +1131,7 @@ yylex () } *p = 0; -#if USE_CPPLIB UNGETC (c); -#else - nextchar = c; -#endif value = IDENTIFIER; yylval.itype = 0; @@ -2253,9 +2188,5 @@ void set_yydebug (value) int value; { -#if YYDEBUG != 0 yydebug = value; -#else - warning ("YYDEBUG not defined."); -#endif } diff --git a/gcc/c-tree.h b/gcc/c-tree.h index ebf0d8b..cfbeaa8 100755 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -187,13 +187,8 @@ extern tree convert_and_check PROTO((tree, tree)); extern void overflow_warning PROTO((tree)); extern void unsigned_conversion_warning PROTO((tree, tree)); /* Read the rest of the current #-directive line. */ -#if USE_CPPLIB extern char *get_directive_line PROTO((void)); #define GET_DIRECTIVE_LINE() get_directive_line () -#else -extern char *get_directive_line PROTO((FILE *)); -#define GET_DIRECTIVE_LINE() get_directive_line (finput) -#endif /* Subroutine of build_binary_op, used for comparison operations. See if the operands have both been converted from subword integer types diff --git a/gcc/cccp.1 b/gcc/cccp.1 deleted file mode 100755 index 84eb19e..0000000 --- a/gcc/cccp.1 +++ /dev/null @@ -1,674 +0,0 @@ -.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation \-*-Text-*- -.\" See section COPYING for conditions for redistribution -.TH cpp 1 "30apr1993" "GNU Tools" "GNU Tools" -.SH NAME -cccp, cpp \- The GNU C-Compatible Compiler Preprocessor. -.SH SYNOPSIS -.hy 0 -.na -.TP -.B cccp -.RB "[\|" \-$ "\|]" -.RB "[\|" \-A \c -.I predicate\c -.RB [ (\c -.I value\c -.BR ) ]\|] -.RB "[\|" \-C "\|]" -.RB "[\|" \-D \c -.I name\c -.RB [ =\c -.I definition\c -\&]\|] -.RB "[\|" \-dD "\|]" -.RB "[\|" \-dM "\|]" -.RB "[\|" "\-I\ "\c -.I directory\c -\&\|] -.RB "[\|" \-H "\|]" -.RB "[\|" \-I\- "\|]" -.RB "[\|" "\-imacros\ "\c -.I file\c -\&\|] -.RB "[\|" "\-include\ "\c -.I file\c -\&\|] -.RB "[\|" "\-idirafter\ "\c -.I dir\c -\&\|] -.RB "[\|" "\-iprefix\ "\c -.I prefix\c -\&\|] -.RB "[\|" "\-iwithprefix\ "\c -.I dir\c -\&\|] -.RB "[\|" \-lang\-c "\|]" -.RB "[\|" \-lang\-c++ "\|]" -.RB "[\|" \-lang\-objc "\|]" -.RB "[\|" \-lang\-objc++ "\|]" -.RB "[\|" \-lint "\|]" -.RB "[\|" \-M\ [ \-MG "\|]]" -.RB "[\|" \-MM\ [ \-MG "\|]]" -.RB "[\|" \-MD\ \c -.I file\ \c -\&\|] -.RB "[\|" \-MMD\ \c -.I file\ \c -\&\|] -.RB "[\|" \-nostdinc "\|]" -.RB "[\|" \-nostdinc++ "\|]" -.RB "[\|" \-P "\|]" -.RB "[\|" \-pedantic "\|]" -.RB "[\|" \-pedantic\-errors "\|]" -.RB "[\|" \-traditional "\|]" -.RB "[\|" \-trigraphs "\|]" -.RB "[\|" \-U \c -.I name\c -\&\|] -.RB "[\|" \-undef "\|]" -.RB "[\|" \-Wtrigraphs "\|]" -.RB "[\|" \-Wcomment "\|]" -.RB "[\|" \-Wall "\|]" -.RB "[\|" \-Wtraditional "\|]" -.br -.RB "[\|" \c -.I infile\c -.RB | \- "\|]" -.RB "[\|" \c -.I outfile\c -.RB | \- "\|]" -.ad b -.hy 1 -.SH DESCRIPTION -The C preprocessor is a \c -.I macro processor\c -\& that is used automatically by -the C compiler to transform your program before actual compilation. It is -called a macro processor because it allows you to define \c -.I macros\c -\&, -which are brief abbreviations for longer constructs. - -The C preprocessor provides four separate facilities that you can use as -you see fit: -.TP -\(bu -Inclusion of header files. These are files of declarations that can be -substituted into your program. -.TP -\(bu -Macro expansion. You can define \c -.I macros\c -\&, which are abbreviations -for arbitrary fragments of C code, and then the C preprocessor will -replace the macros with their definitions throughout the program. -.TP -\(bu -Conditional compilation. Using special preprocessing directives, you -can include or exclude parts of the program according to various -conditions. -.TP -\(bu -Line control. If you use a program to combine or rearrange source files into -an intermediate file which is then compiled, you can use line control -to inform the compiler of where each source line originally came from. -.PP -C preprocessors vary in some details. For a full explanation of the -GNU C preprocessor, see the -.B info -file `\|\c -.B cpp.info\c -\&\|', or the manual -.I The C Preprocessor\c -\&. Both of these are built from the same documentation source file, `\|\c -.B cpp.texinfo\c -\&\|'. The GNU C -preprocessor provides a superset of the features of ANSI Standard C. - -ANSI Standard C requires the rejection of many harmless constructs commonly -used by today's C programs. Such incompatibility would be inconvenient for -users, so the GNU C preprocessor is configured to accept these constructs -by default. Strictly speaking, to get ANSI Standard C, you must use the -options `\|\c -.B \-trigraphs\c -\&\|', `\|\c -.B \-undef\c -\&\|' and `\|\c -.B \-pedantic\c -\&\|', but in -practice the consequences of having strict ANSI Standard C make it -undesirable to do this. - -Most often when you use the C preprocessor you will not have to invoke it -explicitly: the C compiler will do so automatically. However, the -preprocessor is sometimes useful individually. - -When you call the preprocessor individually, either name -(\c -.B cpp\c -\& or \c -.B cccp\c -\&) will do\(em\&they are completely synonymous. - -The C preprocessor expects two file names as arguments, \c -.I infile\c -\& and -\c -.I outfile\c -\&. The preprocessor reads \c -.I infile\c -\& together with any other -files it specifies with `\|\c -.B #include\c -\&\|'. All the output generated by the -combined input files is written in \c -.I outfile\c -\&. - -Either \c -.I infile\c -\& or \c -.I outfile\c -\& may be `\|\c -.B \-\c -\&\|', which as \c -.I infile\c -\& -means to read from standard input and as \c -.I outfile\c -\& means to write to -standard output. Also, if \c -.I outfile\c -\& or both file names are omitted, -the standard output and standard input are used for the omitted file names. -.SH OPTIONS -Here is a table of command options accepted by the C preprocessor. -These options can also be given when compiling a C program; they are -passed along automatically to the preprocessor when it is invoked by -the compiler. -.TP -.B \-P -Inhibit generation of `\|\c -.B #\c -\&\|'-lines with line-number information in -the output from the preprocessor. This might be -useful when running the preprocessor on something that is not C code -and will be sent to a program which might be confused by the -`\|\c -.B #\c -\&\|'-lines. -.TP -.B \-C -Do not discard comments: pass them through to the output file. -Comments appearing in arguments of a macro call will be copied to the -output before the expansion of the macro call. -.TP -.B \-traditional -Try to imitate the behavior of old-fashioned C, as opposed to ANSI C. -.TP -.B \-trigraphs -Process ANSI standard trigraph sequences. These are three-character -sequences, all starting with `\|\c -.B ??\c -\&\|', that are defined by ANSI C to -stand for single characters. For example, `\|\c -.B ??/\c -\&\|' stands for -`\|\c -.BR "\e" "\|'," -so `\|\c -.B '??/n'\c -\&\|' is a character constant for a newline. -Strictly speaking, the GNU C preprocessor does not support all -programs in ANSI Standard C unless `\|\c -.B \-trigraphs\c -\&\|' is used, but if -you ever notice the difference it will be with relief. - -You don't want to know any more about trigraphs. -.TP -.B \-pedantic -Issue warnings required by the ANSI C standard in certain cases such -as when text other than a comment follows `\|\c -.B #else\c -\&\|' or `\|\c -.B #endif\c -\&\|'. -.TP -.B \-pedantic\-errors -Like `\|\c -.B \-pedantic\c -\&\|', except that errors are produced rather than -warnings. -.TP -.B \-Wtrigraphs -Warn if any trigraphs are encountered (assuming they are enabled). -.TP -.B \-Wcomment -.TP -.B \-Wcomments -Warn whenever a comment-start sequence `\|\c -.B /*\c -\&\|' appears in a comment. -(Both forms have the same effect). -.TP -.B \-Wall -Requests both `\|\c -.B \-Wtrigraphs\c -\&\|' and `\|\c -.B \-Wcomment\c -\&\|' (but not -`\|\c -.B \-Wtraditional\c -\&\|'). -.TP -.B \-Wtraditional -Warn about certain constructs that behave differently in traditional and -ANSI C. -.TP -.BI "\-I " directory\c -\& -Add the directory \c -.I directory\c -\& to the end of the list of -directories to be searched for header files. -This can be used to override a system header file, substituting your -own version, since these directories are searched before the system -header file directories. If you use more than one `\|\c -.B \-I\c -\&\|' option, -the directories are scanned in left-to-right order; the standard -system directories come after. -.TP -.B \-I\- -Any directories specified with `\|\c -.B \-I\c -\&\|' options before the `\|\c -.B \-I\-\c -\&\|' -option are searched only for the case of `\|\c -.B #include "\c -.I file\c -\&"\c -\&\|'; -they are not searched for `\|\c -.B #include <\c -.I file\c -\&>\c -\&\|'. - -If additional directories are specified with `\|\c -.B \-I\c -\&\|' options after -the `\|\c -.B \-I\-\c -\&\|', these directories are searched for all `\|\c -.B #include\c -\&\|' -directives. - -In addition, the `\|\c -.B \-I\-\c -\&\|' option inhibits the use of the current -directory as the first search directory for `\|\c -.B #include "\c -.I file\c -\&"\c -\&\|'. -Therefore, the current directory is searched only if it is requested -explicitly with `\|\c -.B \-I.\c -\&\|'. Specifying both `\|\c -.B \-I\-\c -\&\|' and `\|\c -.B \-I.\c -\&\|' -allows you to control precisely which directories are searched before -the current one and which are searched after. -.TP -.B \-nostdinc -Do not search the standard system directories for header files. -Only the directories you have specified with `\|\c -.B \-I\c -\&\|' options -(and the current directory, if appropriate) are searched. -.TP -.B \-nostdinc++ -Do not search for header files in the C++ specific standard -directories, but do still search the other standard directories. -(This option is used when building libg++.) -.TP -.BI "\-D " "name"\c -\& -Predefine \c -.I name\c -\& as a macro, with definition `\|\c -.B 1\c -\&\|'. -.TP -.BI "\-D " "name" = definition -\& -Predefine \c -.I name\c -\& as a macro, with definition \c -.I definition\c -\&. -There are no restrictions on the contents of \c -.I definition\c -\&, but if -you are invoking the preprocessor from a shell or shell-like program -you may need to use the shell's quoting syntax to protect characters -such as spaces that have a meaning in the shell syntax. If you use more than -one `\|\c -.B \-D\c -\&\|' for the same -.I name\c -\&, the rightmost definition takes effect. -.TP -.BI "\-U " "name"\c -\& -Do not predefine \c -.I name\c -\&. If both `\|\c -.B \-U\c -\&\|' and `\|\c -.B \-D\c -\&\|' are -specified for one name, the `\|\c -.B \-U\c -\&\|' beats the `\|\c -.B \-D\c -\&\|' and the name -is not predefined. -.TP -.B \-undef -Do not predefine any nonstandard macros. -.TP -.BI "\-A " "name(" value ) -Assert (in the same way as the \c -.B #assert\c -\& directive) -the predicate \c -.I name\c -\& with tokenlist \c -.I value\c -\&. Remember to escape or quote the parentheses on -shell command lines. - -You can use `\|\c -.B \-A-\c -\&\|' to disable all predefined assertions; it also -undefines all predefined macros. -.TP -.B \-dM -Instead of outputting the result of preprocessing, output a list of -`\|\c -.B #define\c -\&\|' directives for all the macros defined during the -execution of the preprocessor, including predefined macros. This gives -you a way of finding out what is predefined in your version of the -preprocessor; assuming you have no file `\|\c -.B foo.h\c -\&\|', the command -.sp -.br -touch\ foo.h;\ cpp\ \-dM\ foo.h -.br -.sp -will show the values of any predefined macros. -.TP -.B \-dD -Like `\|\c -.B \-dM\c -\&\|' except in two respects: it does \c -.I not\c -\& include the -predefined macros, and it outputs \c -.I both\c -\& the `\|\c -.B #define\c -\&\|' -directives and the result of preprocessing. Both kinds of output go to -the standard output file. -.PP -.TP -.BR \-M\ [ \-MG ] -Instead of outputting the result of preprocessing, output a rule -suitable for \c -.B make\c -\& describing the dependencies of the main -source file. The preprocessor outputs one \c -.B make\c -\& rule containing -the object file name for that source file, a colon, and the names of -all the included files. If there are many included files then the -rule is split into several lines using `\|\c -.B \\\\\c -\&\|'-newline. - -`\|\c -.B \-MG\c -\&\|' says to treat missing header files as generated files and assume \c -they live in the same directory as the source file. It must be specified \c -in addition to `\|\c -.B \-M\c -\&\|'. - -This feature is used in automatic updating of makefiles. -.TP -.BR \-MM\ [ \-MG ] -Like `\|\c -.B \-M\c -\&\|' but mention only the files included with `\|\c -.B #include -"\c -.I file\c -\&"\c -\&\|'. System header files included with `\|\c -.B #include -<\c -.I file\c -\&>\c -\&\|' are omitted. -.TP -.BI \-MD\ file -Like `\|\c -.B \-M\c -\&\|' but the dependency information is written to `\|\c -.I file\c -\&\|'. This is in addition to compiling the file as -specified\(em\&`\|\c -.B \-MD\c -\&\|' does not inhibit ordinary compilation the way -`\|\c -.B \-M\c -\&\|' does. - -When invoking gcc, do not specify the `\|\c -.I file\c -\&\|' argument. Gcc will create file names made by replacing `\|\c -.B .c\c -\&\|' with `\|\c -.B .d\c -\&\|' at the end of the input file names. - -In Mach, you can use the utility \c -.B md\c -\& to merge multiple files -into a single dependency file suitable for using with the `\|\c -.B make\c -\&\|' -command. -.TP -.BI \-MMD\ file -Like `\|\c -.B \-MD\c -\&\|' except mention only user header files, not system -header files. -.TP -.B \-H -Print the name of each header file used, in addition to other normal -activities. -.TP -.BI "\-imacros " "file"\c -\& -Process \c -.I file\c -\& as input, discarding the resulting output, before -processing the regular input file. Because the output generated from -\c -.I file\c -\& is discarded, the only effect of `\|\c -.B \-imacros \c -.I file\c -\&\c -\&\|' is to -make the macros defined in \c -.I file\c -\& available for use in the main -input. The preprocessor evaluates any `\|\c -.B \-D\c -\&\|' and `\|\c -.B \-U\c -\&\|' options -on the command line before processing `\|\c -.B \-imacros \c -.I file\c -\&\|' \c -\&. -.TP -.BI "\-include " "file" -Process -.I file -as input, and include all the resulting output, -before processing the regular input file. -.TP -.BI "-idirafter " "dir"\c -\& -Add the directory \c -.I dir\c -\& to the second include path. The directories -on the second include path are searched when a header file is not found -in any of the directories in the main include path (the one that -`\|\c -.B \-I\c -\&\|' adds to). -.TP -.BI "-iprefix " "prefix"\c -\& -Specify \c -.I prefix\c -\& as the prefix for subsequent `\|\c -.B \-iwithprefix\c -\&\|' -options. -.TP -.BI "-iwithprefix " "dir"\c -\& -Add a directory to the second include path. The directory's name is -made by concatenating \c -.I prefix\c -\& and \c -.I dir\c -\&, where \c -.I prefix\c -\& -was specified previously with `\|\c -.B \-iprefix\c -\&\|'. -.TP -.B \-lang-c -.TP -.B \-lang-c++ -.TP -.B \-lang-objc -.TP -.B \-lang-objc++ -Specify the source language. `\|\c -.B \-lang-c++\c -\&\|' makes the preprocessor -handle C++ comment syntax, and includes extra default include -directories for C++, and `\|\c -.B \-lang-objc\c -\&\|' enables the Objective C -`\|\c -.B #import\c -\&\|' directive. `\|\c -.B \-lang-c\c -\&\|' explicitly turns off both of -these extensions, and `\|\c -.B \-lang-objc++\c -\&\|' enables both. - -These options are generated by the compiler driver \c -.B gcc\c -\&, but not -passed from the `\|\c -.B gcc\c -\&\|' command line. -.TP -.B \-lint -Look for commands to the program checker \c -.B lint\c -\& embedded in -comments, and emit them preceded by `\|\c -.B #pragma lint\c -\&\|'. For example, -the comment `\|\c -.B /* NOTREACHED */\c -\&\|' becomes `\|\c -.B #pragma lint -NOTREACHED\c -\&\|'. - -This option is available only when you call \c -.B cpp\c -\& directly; -\c -.B gcc\c -\& will not pass it from its command line. -.TP -.B \-$ -Forbid the use of `\|\c -.B $\c -\&\|' in identifiers. This was formerly required for strict conformance -to the C Standard before the standard was corrected. \c - -This option is available only when you call \c -.B cpp\c -\& directly; -.B gcc\c -\& will not pass it from its command line. -.SH "SEE ALSO" -.RB "`\|" Cpp "\|'" -entry in -.B info\c -\&; -.I The C Preprocessor\c -, Richard M. Stallman. -.br -.BR gcc "(" 1 ");" -.RB "`\|" Gcc "\|'" -entry in -.B info\c -\&; -.I -Using and Porting GNU CC (for version 2.0)\c -, Richard M. Stallman. -.SH COPYING -Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc. -.PP -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. -.PP -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. -.PP -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. diff --git a/gcc/cccp.c b/gcc/cccp.c deleted file mode 100755 index f8c1725..0000000 --- a/gcc/cccp.c +++ /dev/null @@ -1,10833 +0,0 @@ -/* C Compatible Compiler Preprocessor (CCCP) - Copyright (C) 1986, 87, 89, 92-98, 1999 Free Software Foundation, Inc. - Written by Paul Rubin, June 1986 - Adapted to ANSI C, Richard Stallman, Jan 1987 - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -#include "config.h" - -#define PRINTF_PROTO(ARGS, m, n) PVPROTO (ARGS) ATTRIBUTE_PRINTF(m, n) - -#define PRINTF_PROTO_1(ARGS) PRINTF_PROTO(ARGS, 1, 2) -#define PRINTF_PROTO_2(ARGS) PRINTF_PROTO(ARGS, 2, 3) -#define PRINTF_PROTO_3(ARGS) PRINTF_PROTO(ARGS, 3, 4) -#define PRINTF_PROTO_4(ARGS) PRINTF_PROTO(ARGS, 4, 5) - -#include "system.h" -#include <signal.h> - -#ifdef HAVE_SYS_RESOURCE_H -# include <sys/resource.h> -#endif - -typedef unsigned char U_CHAR; - -#include "pcp.h" -#include "prefix.h" - -#ifdef MULTIBYTE_CHARS -#include "mbchar.h" -#include <locale.h> -#endif /* MULTIBYTE_CHARS */ - -#ifndef GET_ENV_PATH_LIST -#define GET_ENV_PATH_LIST(VAR,NAME) do { (VAR) = getenv (NAME); } while (0) -#endif - -#ifndef STANDARD_INCLUDE_DIR -# define STANDARD_INCLUDE_DIR "/usr/include" -#endif - -/* By default, colon separates directories in a path. */ -#ifndef PATH_SEPARATOR -# define PATH_SEPARATOR ':' -#endif - -/* By default, the suffix for object files is ".o". */ -#ifdef OBJECT_SUFFIX -# define HAVE_OBJECT_SUFFIX -#else -# define OBJECT_SUFFIX ".o" -#endif - -/* Windows does not natively support inodes, and neither does MSDOS. */ -#if (defined (_WIN32) && ! defined (__CYGWIN__)) || defined (__MSDOS__) -#define INO_T_EQ(a, b) 0 -#endif - -/* Find the largest host integer type and set its size and type. - Watch out: on some crazy hosts `long' is shorter than `int'. */ - -#ifndef HOST_WIDE_INT -# if HAVE_INTTYPES_H -# include <inttypes.h> -# define HOST_WIDE_INT intmax_t -# else -# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT && HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT) -# define HOST_WIDE_INT int -# else -# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG || ! (defined LONG_LONG_MAX || defined LLONG_MAX)) -# define HOST_WIDE_INT long -# else -# define HOST_WIDE_INT long long -# endif -# endif -# endif -#endif - -#ifndef INO_T_EQ -#define INO_T_EQ(a, b) ((a) == (b)) -#endif - -#ifndef INO_T_HASH -#define INO_T_HASH(a) (a) -#endif - -#ifndef INCLUDE_LEN_FUDGE -#define INCLUDE_LEN_FUDGE 0 -#endif - -/* External declarations. */ - -extern char *version_string; -HOST_WIDE_INT parse_escape PROTO((char **, HOST_WIDE_INT)); -HOST_WIDE_INT parse_c_expression PROTO((char *, int)); - -/* Name under which this program was invoked. */ - -static char *progname = "cpp"; /* CYGNUS LOCAL: initialisation added nickc */ - -/* Nonzero means use extra default include directories for C++. */ - -static int cplusplus; - -/* Nonzero means handle cplusplus style comments */ - -static int cplusplus_comments; - -/* Nonzero means handle #import, for objective C. */ - -static int objc; - -/* Nonzero means this is an assembly file, and allow - unknown directives, which could be comments. */ - -static int lang_asm; - -/* CYGNUS LOCAL chill */ -/* Nonzero means handle CHILL comment syntax - and output CHILL string delimeter for __DATE___ etc. */ - -static int chill; -/* END CYGNUS LOCAL chill */ - -/* Current maximum length of directory names in the search path - for include files. (Altered as we get more of them.) */ - -static int max_include_len; - -/* Nonzero means turn NOTREACHED into #pragma NOTREACHED etc */ - -static int for_lint = 0; - -/* Nonzero means copy comments into the output file. */ - -static int put_out_comments = 0; - -/* Nonzero means don't process the ANSI trigraph sequences. */ - -static int no_trigraphs = 0; - -/* Nonzero means print the names of included files rather than - the preprocessed output. 1 means just the #include "...", - 2 means #include <...> as well. */ - -static int print_deps = 0; - -/* Nonzero if missing .h files in -M output are assumed to be generated - files and not errors. */ - -static int print_deps_missing_files = 0; - -/* Nonzero means print names of header files (-H). */ - -static int print_include_names = 0; - -/* Nonzero means don't output line number information. */ - -static int no_line_directives; - -/* Nonzero means output the text in failing conditionals, - inside #failed ... #endfailed. */ - -static int output_conditionals; - -/* dump_only means inhibit output of the preprocessed text - and instead output the definitions of all user-defined - macros in a form suitable for use as input to cccp. - dump_names means pass #define and the macro name through to output. - dump_definitions means pass the whole definition (plus #define) through -*/ - -static enum {dump_none, dump_only, dump_names, dump_definitions} - dump_macros = dump_none; - -/* Nonzero means pass all #define and #undef directives which we actually - process through to the output stream. This feature is used primarily - to allow cc1 to record the #defines and #undefs for the sake of - debuggers which understand about preprocessor macros, but it may - also be useful with -E to figure out how symbols are defined, and - where they are defined. */ -static int debug_output = 0; - -/* Nonzero means pass #include lines through to the output, - even if they are ifdefed out. */ -static int dump_includes; - -/* Nonzero indicates special processing used by the pcp program. The - special effects of this mode are: - - Inhibit all macro expansion, except those inside #if directives. - - Process #define directives normally, and output their contents - to the output file. - - Output preconditions to pcp_outfile indicating all the relevant - preconditions for use of this file in a later cpp run. -*/ -static FILE *pcp_outfile; - -/* Nonzero means we are inside an IF during a -pcp run. In this mode - macro expansion is done, and preconditions are output for all macro - uses requiring them. */ -static int pcp_inside_if; - -/* Nonzero means never to include precompiled files. - This is 1 since there's no way now to make precompiled files, - so it's not worth testing for them. */ -static int no_precomp = 1; - -/* Nonzero means give all the error messages the ANSI standard requires. */ - -int pedantic; - -/* Nonzero means try to make failure to fit ANSI C an error. */ - -static int pedantic_errors; - -/* Nonzero means don't print warning messages. -w. */ - -static int inhibit_warnings = 0; - -/* Nonzero means warn if slash-star appears in a slash-star comment, - or if newline-backslash appears in a slash-slash comment. */ - -static int warn_comments; - -/* Nonzero means warn if a macro argument is (or would be) - stringified with -traditional. */ - -static int warn_stringify; - -/* Nonzero means warn if there are any trigraphs. */ - -static int warn_trigraphs; - -/* Nonzero means warn if undefined identifiers are evaluated in an #if. */ - -static int warn_undef; - -/* Nonzero means warn if #import is used. */ - -static int warn_import = 1; - -/* Nonzero means turn warnings into errors. */ - -static int warnings_are_errors; - -/* Nonzero means try to imitate old fashioned non-ANSI preprocessor. */ - -int traditional; - -/* Nonzero for the 1989 C Standard, including corrigenda and amendments. */ - -int c89; - -/* Nonzero for the 199x C Standard. */ - -int c9x; - -/* Nonzero causes output not to be done, - but directives such as #define that have side effects - are still obeyed. */ - -static int no_output; - -/* Nonzero means we should look for header.gcc files that remap file names. */ -static int remap; - -/* Nonzero means this file was included with a -imacros or -include - command line and should not be recorded as an include file. */ - -static int no_record_file; - -/* Nonzero means that we have finished processing the command line options. - This flag is used to decide whether or not to issue certain errors - and/or warnings. */ - -static int done_initializing = 0; - -/* Line where a newline was first seen in a string constant. */ - -static int multiline_string_line = 0; - -/* I/O buffer structure. - The `fname' field is nonzero for source files and #include files - and for the dummy text used for -D and -U. - It is zero for rescanning results of macro expansion - and for expanding macro arguments. */ -#define INPUT_STACK_MAX 400 -static struct file_buf { - char *fname; - /* Filename specified with #line directive. */ - char *nominal_fname; - /* The length of nominal_fname, which may contain embedded NULs. */ - size_t nominal_fname_len; - /* Include file description. */ - struct include_file *inc; - /* Record where in the search path this file was found. - For #include_next. */ - struct file_name_list *dir; - int lineno; - int length; - U_CHAR *buf; - U_CHAR *bufp; - /* Macro that this level is the expansion of. - Included so that we can reenable the macro - at the end of this level. */ - struct hashnode *macro; - /* Value of if_stack at start of this file. - Used to prohibit unmatched #endif (etc) in an include file. */ - struct if_stack *if_stack; - /* Object to be freed at end of input at this level. */ - U_CHAR *free_ptr; - /* True if this is a system header file; see is_system_include. */ - char system_header_p; -} instack[INPUT_STACK_MAX]; - -static int last_error_tick; /* Incremented each time we print it. */ -static int input_file_stack_tick; /* Incremented when the status changes. */ - -/* Current nesting level of input sources. - `instack[indepth]' is the level currently being read. */ -static int indepth = -1; -#define CHECK_DEPTH(code) \ - if (indepth >= (INPUT_STACK_MAX - 1)) \ - { \ - error_with_line (line_for_error (instack[indepth].lineno), \ - "macro or `#include' recursion too deep"); \ - code; \ - } - -/* Current depth in #include directives that use <...>. */ -static int system_include_depth = 0; - -typedef struct file_buf FILE_BUF; - -/* The output buffer. Its LENGTH field is the amount of room allocated - for the buffer, not the number of chars actually present. To get - that, subtract outbuf.buf from outbuf.bufp. */ - -#define OUTBUF_SIZE 10 /* initial size of output buffer */ -static FILE_BUF outbuf; - -/* Grow output buffer OBUF points at - so it can hold at least NEEDED more chars. */ - -#define check_expand(OBUF, NEEDED) \ - (((OBUF)->length - ((OBUF)->bufp - (OBUF)->buf) <= (NEEDED)) \ - ? grow_outbuf ((OBUF), (NEEDED)) : 0) - -struct file_name_list - { - struct file_name_list *next; - /* If the following is 1, it is a C-language system include - directory. */ - int c_system_include_path; - /* Mapping of file names for this directory. */ - struct file_name_map *name_map; - /* Non-zero if name_map is valid. */ - int got_name_map; - /* The include directory status. */ - struct stat st; - /* The include prefix: "" denotes the working directory, - otherwise fname must end in '/'. - The actual size is dynamically allocated. */ - char fname[1]; - }; - -/* #include "file" looks in source file dir, then stack. */ -/* #include <file> just looks in the stack. */ -/* -I directories are added to the end, then the defaults are added. */ -/* The */ -static struct default_include { - char *fname; /* The name of the directory. */ - char *component; /* The component containing the directory */ - int cplusplus; /* Only look here if we're compiling C++. */ - int cxx_aware; /* Includes in this directory don't need to - be wrapped in extern "C" when compiling - C++. */ -} include_defaults_array[] -#ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -#else - = { - /* Pick up GNU C++ specific include files. */ - { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, -#ifdef CROSS_COMPILE - /* This is the dir for fixincludes. Put it just before - the files that we fix. */ - { GCC_INCLUDE_DIR, "GCC", 0, 0 }, - /* For cross-compilation, this dir name is generated - automatically in Makefile.in. */ - { CROSS_INCLUDE_DIR, "GCC", 0, 0 }, -#ifdef TOOL_INCLUDE_DIR - /* This is another place that the target system's headers might be. */ - { TOOL_INCLUDE_DIR, "BINUTILS", 0, 0 }, -#endif -#else /* not CROSS_COMPILE */ -#ifdef LOCAL_INCLUDE_DIR - /* This should be /usr/local/include and should come before - the fixincludes-fixed header files. */ - { LOCAL_INCLUDE_DIR, 0, 0, 1 }, -#endif -#ifdef TOOL_INCLUDE_DIR - /* This is here ahead of GCC_INCLUDE_DIR because assert.h goes here. - Likewise, behind LOCAL_INCLUDE_DIR, where glibc puts its assert.h. */ - { TOOL_INCLUDE_DIR, "BINUTILS", 0, 0 }, -#endif - /* This is the dir for fixincludes. Put it just before - the files that we fix. */ - { GCC_INCLUDE_DIR, "GCC", 0, 0 }, - /* Some systems have an extra dir of include files. */ -#ifdef SYSTEM_INCLUDE_DIR - { SYSTEM_INCLUDE_DIR, 0, 0, 0 }, -#endif -#ifndef STANDARD_INCLUDE_COMPONENT -#define STANDARD_INCLUDE_COMPONENT 0 -#endif - { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0 }, -#endif /* not CROSS_COMPILE */ - { 0, 0, 0, 0 } - }; -#endif /* no INCLUDE_DEFAULTS */ - -/* The code looks at the defaults through this pointer, rather than through - the constant structure above. This pointer gets changed if an environment - variable specifies other defaults. */ -static struct default_include *include_defaults = include_defaults_array; - -static struct file_name_list *include = 0; /* First dir to search */ - /* First dir to search for <file> */ -/* This is the first element to use for #include <...>. - If it is 0, use the entire chain for such includes. */ -static struct file_name_list *first_bracket_include = 0; -/* This is the first element in the chain that corresponds to - a directory of system header files. */ -static struct file_name_list *first_system_include = 0; -static struct file_name_list *last_include = 0; /* Last in chain */ - -/* Chain of include directories to put at the end of the other chain. */ -static struct file_name_list *after_include = 0; -static struct file_name_list *last_after_include = 0; /* Last in chain */ - -/* Chain to put at the start of the system include files. */ -static struct file_name_list *before_system = 0; -static struct file_name_list *last_before_system = 0; /* Last in chain */ - -/* Directory prefix that should replace `/usr' in the standard - include file directories. */ -static char *include_prefix; - -/* Maintain and search list of included files. */ - -struct include_file { - struct include_file *next; /* for include_hashtab */ - struct include_file *next_ino; /* for include_ino_hashtab */ - char *fname; - /* If the following is the empty string, it means #pragma once - was seen in this include file, or #import was applied to the file. - Otherwise, if it is nonzero, it is a macro name. - Don't include the file again if that macro is defined. */ - U_CHAR *control_macro; - /* Nonzero if the dependency on this include file has been output. */ - int deps_output; - struct stat st; -}; - -/* Hash tables of files already included with #include or #import. - include_hashtab is by full name; include_ino_hashtab is by inode number. */ - -#define INCLUDE_HASHSIZE 61 -static struct include_file *include_hashtab[INCLUDE_HASHSIZE]; -static struct include_file *include_ino_hashtab[INCLUDE_HASHSIZE]; - -/* Global list of strings read in from precompiled files. This list - is kept in the order the strings are read in, with new strings being - added at the end through stringlist_tailp. We use this list to output - the strings at the end of the run. -*/ -static STRINGDEF *stringlist; -static STRINGDEF **stringlist_tailp = &stringlist; - - -/* Structure returned by create_definition */ -typedef struct macrodef MACRODEF; -struct macrodef -{ - struct definition *defn; - U_CHAR *symnam; - int symlen; -}; - -enum sharp_token_type { - NO_SHARP_TOKEN = 0, /* token not present */ - - SHARP_TOKEN = '#', /* token spelled with # only */ - WHITE_SHARP_TOKEN, /* token spelled with # and white space */ - - PERCENT_COLON_TOKEN = '%', /* token spelled with %: only */ - WHITE_PERCENT_COLON_TOKEN /* token spelled with %: and white space */ -}; - -/* Structure allocated for every #define. For a simple replacement - such as - #define foo bar , - nargs = -1, the `pattern' list is null, and the expansion is just - the replacement text. Nargs = 0 means a functionlike macro with no args, - e.g., - #define getchar() getc (stdin) . - When there are args, the expansion is the replacement text with the - args squashed out, and the reflist is a list describing how to - build the output from the input: e.g., "3 chars, then the 1st arg, - then 9 chars, then the 3rd arg, then 0 chars, then the 2nd arg". - The chars here come from the expansion. Whatever is left of the - expansion after the last arg-occurrence is copied after that arg. - Note that the reflist can be arbitrarily long--- - its length depends on the number of times the arguments appear in - the replacement text, not how many args there are. Example: - #define f(x) x+x+x+x+x+x+x would have replacement text "++++++" and - pattern list - { (0, 1), (1, 1), (1, 1), ..., (1, 1), NULL } - where (x, y) means (nchars, argno). */ - -typedef struct definition DEFINITION; -struct definition { - int nargs; - int length; /* length of expansion string */ - int predefined; /* True if the macro was builtin or */ - /* came from the command line */ - U_CHAR *expansion; - int line; /* Line number of definition */ - char *file; /* File of definition */ - size_t file_len; /* Length of file (which can contain NULs) */ - char rest_args; /* Nonzero if last arg. absorbs the rest */ - struct reflist { - struct reflist *next; - - enum sharp_token_type stringify; /* set if a # operator before arg */ - enum sharp_token_type raw_before; /* set if a ## operator before arg */ - enum sharp_token_type raw_after; /* set if a ## operator after arg */ - - char rest_args; /* Nonzero if this arg. absorbs the rest */ - int nchars; /* Number of literal chars to copy before - this arg occurrence. */ - int argno; /* Number of arg to substitute (origin-0) */ - } *pattern; - union { - /* Names of macro args, concatenated in reverse order - with comma-space between them. - The only use of this is that we warn on redefinition - if this differs between the old and new definitions. */ - U_CHAR *argnames; - } args; -}; - -/* different kinds of things that can appear in the value field - of a hash node. Actually, this may be useless now. */ -union hashval { - char *cpval; - DEFINITION *defn; - KEYDEF *keydef; -}; - -/* - * special extension string that can be added to the last macro argument to - * allow it to absorb the "rest" of the arguments when expanded. Ex: - * #define wow(a, b...) process (b, a, b) - * { wow (1, 2, 3); } -> { process (2, 3, 1, 2, 3); } - * { wow (one, two); } -> { process (two, one, two); } - * if this "rest_arg" is used with the concat token '##' and if it is not - * supplied then the token attached to with ## will not be outputted. Ex: - * #define wow (a, b...) process (b ## , a, ## b) - * { wow (1, 2); } -> { process (2, 1, 2); } - * { wow (one); } -> { process (one); { - */ -static char rest_extension[] = "..."; -#define REST_EXTENSION_LENGTH (sizeof (rest_extension) - 1) - -/* This is the implicit parameter name when using variable number of - parameters for macros using the ISO C 9x extension. */ -static char va_args_name[] = "__VA_ARGS__"; -#define VA_ARGS_NAME_LENGTH (sizeof (va_args_name) - 1) - -/* The structure of a node in the hash table. The hash table - has entries for all tokens defined by #define directives (type T_MACRO), - plus some special tokens like __LINE__ (these each have their own - type, and the appropriate code is run when that type of node is seen. - It does not contain control words like "#define", which are recognized - by a separate piece of code. */ - -/* different flavors of hash nodes --- also used in keyword table */ -enum node_type { - T_DEFINE = 1, /* the `#define' keyword */ - T_INCLUDE, /* the `#include' keyword */ - T_INCLUDE_NEXT, /* the `#include_next' keyword */ - T_IMPORT, /* the `#import' keyword */ - T_IFDEF, /* the `#ifdef' keyword */ - T_IFNDEF, /* the `#ifndef' keyword */ - T_IF, /* the `#if' keyword */ - T_ELSE, /* `#else' */ - T_PRAGMA, /* `#pragma' */ - T_ELIF, /* `#elif' */ - T_UNDEF, /* `#undef' */ - T_LINE, /* `#line' */ - T_ERROR, /* `#error' */ - T_WARNING, /* `#warning' */ - T_ENDIF, /* `#endif' */ - T_SCCS, /* `#sccs', used on system V. */ - T_IDENT, /* `#ident', used on system V. */ - T_ASSERT, /* `#assert', taken from system V. */ - T_UNASSERT, /* `#unassert', taken from system V. */ - T_SPECLINE, /* special symbol `__LINE__' */ - T_DATE, /* `__DATE__' */ - T_FILE, /* `__FILE__' */ - T_BASE_FILE, /* `__BASE_FILE__' */ - T_INCLUDE_LEVEL, /* `__INCLUDE_LEVEL__' */ - T_VERSION, /* `__VERSION__' */ - T_SIZE_TYPE, /* `__SIZE_TYPE__' */ - T_PTRDIFF_TYPE, /* `__PTRDIFF_TYPE__' */ - T_WCHAR_TYPE, /* `__WCHAR_TYPE__' */ - T_USER_LABEL_PREFIX_TYPE, /* `__USER_LABEL_PREFIX__' */ - T_REGISTER_PREFIX_TYPE, /* `__REGISTER_PREFIX__' */ - T_IMMEDIATE_PREFIX_TYPE, /* `__IMMEDIATE_PREFIX__' */ - T_TIME, /* `__TIME__' */ - T_CONST, /* Constant value, used by `__STDC__' */ - T_MACRO, /* macro defined by `#define' */ - T_DISABLED, /* macro temporarily turned off for rescan */ - T_SPEC_DEFINED, /* special `defined' macro for use in #if statements */ - T_PCSTRING, /* precompiled string (hashval is KEYDEF *) */ - T_UNUSED /* Used for something not defined. */ - }; - -struct hashnode { - struct hashnode *next; /* double links for easy deletion */ - struct hashnode *prev; - struct hashnode **bucket_hdr; /* also, a back pointer to this node's hash - chain is kept, in case the node is the head - of the chain and gets deleted. */ - enum node_type type; /* type of special token */ - int length; /* length of token, for quick comparison */ - U_CHAR *name; /* the actual name */ - union hashval value; /* pointer to expansion, or whatever */ -}; - -typedef struct hashnode HASHNODE; - -/* Some definitions for the hash table. The hash function MUST be - computed as shown in hashf () below. That is because the rescan - loop computes the hash value `on the fly' for most tokens, - in order to avoid the overhead of a lot of procedure calls to - the hashf () function. Hashf () only exists for the sake of - politeness, for use when speed isn't so important. */ - -#define HASHSIZE 1403 -static HASHNODE *hashtab[HASHSIZE]; -#define HASHSTEP(old, c) ((old << 2) + c) -#define MAKE_POS(v) (v & 0x7fffffff) /* make number positive */ - -/* Symbols to predefine. */ - -#ifdef CPP_PREDEFINES -static char *predefs = CPP_PREDEFINES; -#else -static char *predefs = ""; -#endif - -/* We let tm.h override the types used here, to handle trivial differences - such as the choice of unsigned int or long unsigned int for size_t. - When machines start needing nontrivial differences in the size type, - it would be best to do something here to figure out automatically - from other information what type to use. */ - -/* The string value for __SIZE_TYPE__. */ - -#ifndef SIZE_TYPE -#define SIZE_TYPE "long unsigned int" -#endif - -/* The string value for __PTRDIFF_TYPE__. */ - -#ifndef PTRDIFF_TYPE -#define PTRDIFF_TYPE "long int" -#endif - -/* The string value for __WCHAR_TYPE__. */ - -/* CYGNUS LOCAL vmakarov */ -#ifndef NO_BUILTIN_WCHAR_TYPE -/* END CYGNUS LOCAL */ -#ifndef WCHAR_TYPE -#define WCHAR_TYPE "int" -#endif -char * wchar_type = WCHAR_TYPE; -#undef WCHAR_TYPE -/* CYGNUS LOCAL vmakarov */ -#endif -/* END CYGNUS LOCAL */ - -/* The string value for __USER_LABEL_PREFIX__ */ - -#ifndef USER_LABEL_PREFIX -#define USER_LABEL_PREFIX "" -#endif -char * user_label_prefix = USER_LABEL_PREFIX; -#undef USER_LABEL_PREFIX - -/* The string value for __REGISTER_PREFIX__ */ - -#ifndef REGISTER_PREFIX -#define REGISTER_PREFIX "" -#endif - -/* The string value for __IMMEDIATE_PREFIX__ */ - -#ifndef IMMEDIATE_PREFIX -#define IMMEDIATE_PREFIX "" -#endif - -/* In the definition of a #assert name, this structure forms - a list of the individual values asserted. - Each value is itself a list of "tokens". - These are strings that are compared by name. */ - -struct tokenlist_list { - struct tokenlist_list *next; - struct arglist *tokens; -}; - -struct assertion_hashnode { - struct assertion_hashnode *next; /* double links for easy deletion */ - struct assertion_hashnode *prev; - /* also, a back pointer to this node's hash - chain is kept, in case the node is the head - of the chain and gets deleted. */ - struct assertion_hashnode **bucket_hdr; - int length; /* length of token, for quick comparison */ - U_CHAR *name; /* the actual name */ - /* List of token-sequences. */ - struct tokenlist_list *value; -}; - -typedef struct assertion_hashnode ASSERTION_HASHNODE; - -/* Some definitions for the hash table. The hash function MUST be - computed as shown in hashf below. That is because the rescan - loop computes the hash value `on the fly' for most tokens, - in order to avoid the overhead of a lot of procedure calls to - the hashf function. hashf only exists for the sake of - politeness, for use when speed isn't so important. */ - -#define ASSERTION_HASHSIZE 37 -static ASSERTION_HASHNODE *assertion_hashtab[ASSERTION_HASHSIZE]; - -/* Nonzero means inhibit macroexpansion of what seem to be - assertion tests, in rescan. For #if. */ -static int assertions_flag; - -/* `struct directive' defines one #-directive, including how to handle it. */ - -#define DO_PROTO PROTO((U_CHAR *, U_CHAR *, FILE_BUF *, struct directive *)) - -struct directive { - int length; /* Length of name */ - int (*func) DO_PROTO; /* Function to handle directive */ - char *name; /* Name of directive */ - enum node_type type; /* Code which describes which directive. */ -}; - -#define IS_INCLUDE_DIRECTIVE_TYPE(t) \ -((int) T_INCLUDE <= (int) (t) && (int) (t) <= (int) T_IMPORT) - -/* These functions are declared to return int instead of void since they - are going to be placed in the table and some old compilers have trouble with - pointers to functions returning void. */ - -static int do_assert DO_PROTO; -static int do_define DO_PROTO; -static int do_elif DO_PROTO; -static int do_else DO_PROTO; -static int do_endif DO_PROTO; -static int do_error DO_PROTO; -static int do_ident DO_PROTO; -static int do_if DO_PROTO; -static int do_include DO_PROTO; -static int do_line DO_PROTO; -static int do_pragma DO_PROTO; -#ifdef SCCS_DIRECTIVE -static int do_sccs DO_PROTO; -#endif -static int do_unassert DO_PROTO; -static int do_undef DO_PROTO; -static int do_warning DO_PROTO; -static int do_xifdef DO_PROTO; - -/* Here is the actual list of #-directives, most-often-used first. */ - -static struct directive directive_table[] = { - { 6, do_define, "define", T_DEFINE}, - { 2, do_if, "if", T_IF}, - { 5, do_xifdef, "ifdef", T_IFDEF}, - { 6, do_xifdef, "ifndef", T_IFNDEF}, - { 5, do_endif, "endif", T_ENDIF}, - { 4, do_else, "else", T_ELSE}, - { 4, do_elif, "elif", T_ELIF}, - { 4, do_line, "line", T_LINE}, - { 7, do_include, "include", T_INCLUDE}, - { 12, do_include, "include_next", T_INCLUDE_NEXT}, - { 6, do_include, "import", T_IMPORT}, - { 5, do_undef, "undef", T_UNDEF}, - { 5, do_error, "error", T_ERROR}, - { 7, do_warning, "warning", T_WARNING}, -#ifdef SCCS_DIRECTIVE - { 4, do_sccs, "sccs", T_SCCS}, -#endif - { 6, do_pragma, "pragma", T_PRAGMA}, - { 5, do_ident, "ident", T_IDENT}, - { 6, do_assert, "assert", T_ASSERT}, - { 8, do_unassert, "unassert", T_UNASSERT}, - { -1, 0, "", T_UNUSED}, -}; - -/* When a directive handler is called, - this points to the # (or the : of the %:) that started the directive. */ -U_CHAR *directive_start; - -/* table to tell if char can be part of a C identifier. */ -U_CHAR is_idchar[256]; -/* table to tell if char can be first char of a c identifier. */ -U_CHAR is_idstart[256]; -/* table to tell if c is horizontal space. */ -static U_CHAR is_hor_space[256]; -/* table to tell if c is horizontal or vertical space. */ -U_CHAR is_space[256]; -/* names of some characters */ -static char *char_name[256]; - -#define SKIP_WHITE_SPACE(p) do { while (is_hor_space[*p]) p++; } while (0) -#define SKIP_ALL_WHITE_SPACE(p) do { while (is_space[*p]) p++; } while (0) - -static int errors = 0; /* Error counter for exit code */ - -/* Name of output file, for error messages. */ -static char *out_fname; - -/* Nonzero to ignore \ in string constants. Use to treat #line 1 "A:\file.h - as a non-form feed. If you want it to be a form feed, you must use - # 1 "\f". */ -static int ignore_escape_flag = 1; - -/* Stack of conditionals currently in progress - (including both successful and failing conditionals). */ - -struct if_stack { - struct if_stack *next; /* for chaining to the next stack frame */ - char *fname; /* copied from input when frame is made */ - size_t fname_len; /* similarly */ - int lineno; /* similarly */ - int if_succeeded; /* true if a leg of this if-group - has been passed through rescan */ - U_CHAR *control_macro; /* For #ifndef at start of file, - this is the macro name tested. */ - enum node_type type; /* type of last directive seen in this group */ -}; -typedef struct if_stack IF_STACK_FRAME; -static IF_STACK_FRAME *if_stack = NULL; - -/* Buffer of -M output. */ -static char *deps_buffer; - -/* Number of bytes allocated in above. */ -static int deps_allocated_size; - -/* Number of bytes used. */ -static int deps_size; - -/* Number of bytes since the last newline. */ -static int deps_column; - -/* Nonzero means -I- has been seen, - so don't look for #include "foo" the source-file directory. */ -static int ignore_srcdir; - -static int safe_read PROTO((int, char *, int)); -static void safe_write PROTO((int, char *, int)); -static void eprint_string PROTO((char *, size_t)); - -int main PROTO((int, char **)); - -static void path_include PROTO((char *)); - -static U_CHAR *index0 PROTO((U_CHAR *, int, size_t)); - -static void trigraph_pcp PROTO((FILE_BUF *)); - -static void newline_fix PROTO((U_CHAR *)); -static void name_newline_fix PROTO((U_CHAR *)); - -static char *get_lintcmd PROTO((U_CHAR *, U_CHAR *, U_CHAR **, int *, int *)); - -static void rescan PROTO((FILE_BUF *, int)); - -static FILE_BUF expand_to_temp_buffer PROTO((U_CHAR *, U_CHAR *, int, int)); - -static int handle_directive PROTO((FILE_BUF *, FILE_BUF *)); - -static struct tm *timestamp PROTO((void)); -static void special_symbol PROTO((HASHNODE *, FILE_BUF *)); - -static int is_system_include PROTO((char *)); -static char *base_name PROTO((char *)); -static int absolute_filename PROTO((char *)); -static size_t simplify_filename PROTO((char *)); - -static char *read_filename_string PROTO((int, FILE *)); -static struct file_name_map *read_name_map PROTO((char *)); -static int open_include_file PROTO((char *, struct file_name_list *, U_CHAR *, struct include_file **)); -static char *remap_include_file PROTO((char *, struct file_name_list *)); -static int lookup_ino_include PROTO((struct include_file *)); - -static void finclude PROTO((int, struct include_file *, FILE_BUF *, int, struct file_name_list *)); -static void record_control_macro PROTO((struct include_file *, U_CHAR *)); - -static char *check_precompiled PROTO((int, struct stat *, char *, char **)); -static int check_preconditions PROTO((char *)); -static void pcfinclude PROTO((U_CHAR *, U_CHAR *, FILE_BUF *)); -static void pcstring_used PROTO((HASHNODE *)); -static void write_output PROTO((void)); -static void pass_thru_directive PROTO((U_CHAR *, U_CHAR *, FILE_BUF *, struct directive *)); - -static MACRODEF create_definition PROTO((U_CHAR *, U_CHAR *, FILE_BUF *)); - -static int check_macro_name PROTO((U_CHAR *, char *)); -static int compare_defs PROTO((DEFINITION *, DEFINITION *)); -static int comp_def_part PROTO((int, U_CHAR *, int, U_CHAR *, int, int)); - -static DEFINITION *collect_expansion PROTO((U_CHAR *, U_CHAR *, int, struct arglist *)); - -int check_assertion PROTO((U_CHAR *, int, int, struct arglist *)); -static int compare_token_lists PROTO((struct arglist *, struct arglist *)); - -static struct arglist *read_token_list PROTO((U_CHAR **, U_CHAR *, int *)); -static void free_token_list PROTO((struct arglist *)); - -static ASSERTION_HASHNODE *assertion_install PROTO((U_CHAR *, int, int)); -static ASSERTION_HASHNODE *assertion_lookup PROTO((U_CHAR *, int, int)); -static void delete_assertion PROTO((ASSERTION_HASHNODE *)); - -static void do_once PROTO((void)); - -static HOST_WIDE_INT eval_if_expression PROTO((U_CHAR *, int)); -static void conditional_skip PROTO((FILE_BUF *, int, enum node_type, U_CHAR *, FILE_BUF *)); -static void skip_if_group PROTO((FILE_BUF *, int, FILE_BUF *)); -static void validate_else PROTO((U_CHAR *, U_CHAR *)); - -static U_CHAR *skip_to_end_of_comment PROTO((FILE_BUF *, int *, int)); -static U_CHAR *skip_quoted_string PROTO((U_CHAR *, U_CHAR *, int, int *, int *, int *)); -static char *quote_string PROTO((char *, char *, size_t)); -static U_CHAR *skip_paren_group PROTO((FILE_BUF *)); - -/* Last arg to output_line_directive. */ -enum file_change_code {same_file, enter_file, leave_file}; -static void output_line_directive PROTO((FILE_BUF *, FILE_BUF *, int, enum file_change_code)); - -static void macroexpand PROTO((HASHNODE *, FILE_BUF *)); - -struct argdata; -static char *macarg PROTO((struct argdata *, int)); - -static U_CHAR *macarg1 PROTO((U_CHAR *, U_CHAR *, struct hashnode *, int *, int *, int *, int)); - -static int discard_comments PROTO((U_CHAR *, int, int)); - -static int change_newlines PROTO((U_CHAR *, int)); - -static char *my_strerror PROTO((int)); -void error PRINTF_PROTO_1((char *, ...)); -static void verror PROTO((char *, va_list)); -static void error_from_errno PROTO((char *)); -void warning PRINTF_PROTO_1((char *, ...)); -static void vwarning PROTO((char *, va_list)); -static void error_with_line PRINTF_PROTO_2((int, char *, ...)); -static void verror_with_line PROTO((int, char *, va_list)); -static void vwarning_with_line PROTO((int, char *, va_list)); -static void warning_with_line PRINTF_PROTO_2((int, char *, ...)); -void pedwarn PRINTF_PROTO_1((char *, ...)); -void pedwarn_with_line PRINTF_PROTO_2((int, char *, ...)); -static void pedwarn_with_file_and_line PRINTF_PROTO_4((char *, size_t, int, char *, ...)); - -static void print_containing_files PROTO((void)); - -static int line_for_error PROTO((int)); -static int grow_outbuf PROTO((FILE_BUF *, int)); - -static HASHNODE *install PROTO((U_CHAR *, int, enum node_type, char *, int)); -HASHNODE *lookup PROTO((U_CHAR *, int, int)); -static void delete_macro PROTO((HASHNODE *)); -static int hashf PROTO((U_CHAR *, int, int)); - -static void dump_single_macro PROTO((HASHNODE *, FILE *)); -static void dump_all_macros PROTO((void)); -static void dump_defn_1 PROTO((U_CHAR *, int, int, FILE *)); -static void dump_arg_n PROTO((DEFINITION *, int, FILE *)); - -static void initialize_char_syntax PROTO((void)); -static void initialize_builtins PROTO((FILE_BUF *, FILE_BUF *)); - -static void make_definition PROTO((char *)); -static void make_undef PROTO((char *, FILE_BUF *)); - -static void make_assertion PROTO((char *, char *)); - -static struct file_name_list *new_include_prefix PROTO((struct file_name_list *, const char *, const char *, const char *)); -static void append_include_chain PROTO((struct file_name_list *, struct file_name_list *)); - -static int quote_string_for_make PROTO((char *, char *)); -static void deps_output PROTO((char *, int)); - -static void fatal PRINTF_PROTO_1((char *, ...)) __attribute__ ((noreturn)); -void fancy_abort PROTO((void)) __attribute__ ((noreturn)); -static void perror_with_name PROTO((char *)); -static void pfatal_with_name PROTO((char *)) __attribute__ ((noreturn)); -static void pipe_closed PROTO((int)) __attribute__ ((noreturn)); - -static void memory_full PROTO((void)) __attribute__ ((noreturn)); -static char *savestring PROTO((char *)); -static void print_help PROTO((void)); - -/* Read LEN bytes at PTR from descriptor DESC, for file FILENAME, - retrying if necessary. If MAX_READ_LEN is defined, read at most - that bytes at a time. Return a negative value if an error occurs, - otherwise return the actual number of bytes read, - which must be LEN unless end-of-file was reached. */ - -static int -safe_read (desc, ptr, len) - int desc; - char *ptr; - int len; -{ - int left, rcount, nchars; - - left = len; - while (left > 0) { - rcount = left; -#ifdef MAX_READ_LEN - if (rcount > MAX_READ_LEN) - rcount = MAX_READ_LEN; -#endif - nchars = read (desc, ptr, rcount); - if (nchars < 0) - { -#ifdef EINTR - if (errno == EINTR) - continue; -#endif - return nchars; - } - if (nchars == 0) - break; - ptr += nchars; - left -= nchars; - } - return len - left; -} - -/* Write LEN bytes at PTR to descriptor DESC, - retrying if necessary, and treating any real error as fatal. - If MAX_WRITE_LEN is defined, write at most that many bytes at a time. */ - -static void -safe_write (desc, ptr, len) - int desc; - char *ptr; - int len; -{ - int wcount, written; - - while (len > 0) { - wcount = len; -#ifdef MAX_WRITE_LEN - if (wcount > MAX_WRITE_LEN) - wcount = MAX_WRITE_LEN; -#endif - written = write (desc, ptr, wcount); - if (written < 0) - { -#ifdef EINTR - if (errno == EINTR) - continue; -#endif - pfatal_with_name (out_fname); - } - ptr += written; - len -= written; - } -} - -/* Print a string to stderr, with extra handling in case it contains - embedded NUL characters. Any present are written as is. - - Using fwrite for this purpose produces undesireable results on VMS - when stderr happens to be a record oriented file, such as a batch log - file, rather than a stream oriented one. */ - -static void -eprint_string (string, length) - char *string; - size_t length; -{ - size_t segment_length; - - do { - fprintf(stderr, "%s", string); - length -= (segment_length = strlen(string)); - if (length > 0) - { - fputc('\0', stderr); - length -= 1; - /* Advance past the portion which has already been printed. */ - string += segment_length + 1; - } - } while (length > 0); -} - - -static void -print_help () -{ - printf ("Usage: %s [switches] input output\n", progname); - printf ("Switches:\n"); - printf (" -include <file> Include the contents of <file> before other files\n"); - printf (" -imacros <file> Accept definition of marcos in <file>\n"); - printf (" -iprefix <path> Specify <path> as a prefix for next two options\n"); - printf (" -iwithprefix <dir> Add <dir> to the end of the system include paths\n"); - printf (" -iwithprefixbefore <dir> Add <dir> to the end of the main include paths\n"); - printf (" -isystem <dir> Add <dir> to the start of the system include paths\n"); - printf (" -idirafter <dir> Add <dir> to the end of the system include paths\n"); - printf (" -I <dir> Add <dir> to the end of the main include paths\n"); - printf (" -nostdinc Do not search the system include directories\n"); - printf (" -nostdinc++ Do not search the system include directories for C++\n"); - printf (" -o <file> Put output into <file>\n"); - printf (" -pedantic Issue all warnings demanded by strict ANSI C\n"); - printf (" -traditional Follow K&R pre-processor behaviour\n"); - printf (" -trigraphs Support ANSI C trigraphs\n"); - printf (" -lang-c Assume that the input sources are in C\n"); - printf (" -lang-c89 Assume that the input is C89; depricated\n"); - printf (" -lang-c++ Assume that the input sources are in C++\n"); - printf (" -lang-objc Assume that the input sources are in ObjectiveC\n"); - printf (" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"); - printf (" -lang-asm Assume that the input sources are in assembler\n"); - printf (" -lang-chill Assume that the input sources are in Chill\n"); - printf (" -std=<std name> Specify the conformance standard; one of:\n"); - printf (" gnu89, gnu9x, c89, c9x, iso9899:1990,\n"); - printf (" iso9899:199409, iso9899:199x\n"); - printf (" -+ Allow parsing of C++ style features\n"); - printf (" -w Inhibit warning messages\n"); - printf (" -Wtrigraphs Warn if trigraphs are encountered\n"); - printf (" -Wno-trigraphs Do not warn about trigraphs\n"); - printf (" -Wcomment{s} Warn if one comment starts inside another\n"); - printf (" -Wno-comment{s} Do not warn about comments\n"); - printf (" -Wtraditional Warn if a macro argument is/would be turned into\n"); - printf (" a string if -tradtional is specified\n"); - printf (" -Wno-traditional Do not warn about stringification\n"); - printf (" -Wundef Warn if an undefined macro is used by #if\n"); - printf (" -Wno-undef Do not warn about testing udefined macros\n"); - printf (" -Wimport Warn about the use of the #import directive\n"); - printf (" -Wno-import Do not warn about the use of #import\n"); - printf (" -Werror Treat all warnings as errors\n"); - printf (" -Wno-error Do not treat warnings as errors\n"); - printf (" -Wall Enable all preprocessor warnings\n"); - printf (" -M Generate make dependencies\n"); - printf (" -MM As -M, but ignore system header files\n"); - printf (" -MD As -M, but put output in a .d file\n"); - printf (" -MMD As -MD, but ignore system header files\n"); - printf (" -MG Treat missing header file as generated files\n"); - printf (" -g Include #define and #undef directives in the output\n"); - printf (" -D<macro> Define a <macro> with string '1' as its value\n"); - printf (" -D<macro>=<val> Define a <macro> with <val> as its value\n"); - printf (" -A<question> (<answer>) Assert the <answer> to <question>\n"); - printf (" -U<macro> Undefine <macro> \n"); - printf (" -u or -undef Do not predefine any macros\n"); - printf (" -v Display the version number\n"); - printf (" -H Print the name of header files as they are used\n"); - printf (" -C Do not discard comments\n"); - printf (" -dM Display a list of macro definitions active at end\n"); - printf (" -dD Preserve macro definitions in output\n"); - printf (" -dN As -dD except that only the names are preserved\n"); - printf (" -dI Include #include directives in the output\n"); - printf (" -ifoutput Describe skipped code blocks in output \n"); - printf (" -P Do not generate #line directives\n"); - printf (" -$ Do not include '$' in identifiers\n"); - printf (" -remap Remap file names when including files.\n"); - printf (" -h or --help Display this information\n"); -} - -int -main (argc, argv) - int argc; - char **argv; -{ - struct stat st; - char *in_fname; - char *cp; - int f, i; - FILE_BUF *fp; - char **pend_files = (char **) xmalloc (argc * sizeof (char *)); - char **pend_defs = (char **) xmalloc (argc * sizeof (char *)); - char **pend_undefs = (char **) xmalloc (argc * sizeof (char *)); - char **pend_assertions = (char **) xmalloc (argc * sizeof (char *)); - char **pend_includes = (char **) xmalloc (argc * sizeof (char *)); - - /* Record the option used with each element of pend_assertions. - This is preparation for supporting more than one option for making - an assertion. */ - char **pend_assertion_options = (char **) xmalloc (argc * sizeof (char *)); - int inhibit_predefs = 0; - int no_standard_includes = 0; - int no_standard_cplusplus_includes = 0; - int missing_newline = 0; - - /* Non-0 means don't output the preprocessed program. */ - int inhibit_output = 0; - /* Non-0 means -v, so print the full set of include dirs. */ - int verbose = 0; - - /* File name which deps are being written to. - This is 0 if deps are being written to stdout. */ - char *deps_file = 0; - /* Fopen file mode to open deps_file with. */ - char *deps_mode = "a"; - /* Stream on which to print the dependency information. */ - FILE *deps_stream = 0; - /* Target-name to write with the dependency information. */ - char *deps_target = 0; - -#if defined (RLIMIT_STACK) && defined (HAVE_GETRLIMIT) && defined (HAVE_SETRLIMIT) - /* Get rid of any avoidable limit on stack size. */ - { - struct rlimit rlim; - - /* Set the stack limit huge so that alloca (particularly stringtab - in dbxread.c) does not fail. */ - getrlimit (RLIMIT_STACK, &rlim); - rlim.rlim_cur = rlim.rlim_max; - setrlimit (RLIMIT_STACK, &rlim); - } -#endif - -#ifdef SIGPIPE - signal (SIGPIPE, pipe_closed); -#endif - - progname = base_name (argv[0]); - - - in_fname = NULL; - out_fname = NULL; - - /* Initialize is_idchar. */ - initialize_char_syntax (); - - no_line_directives = 0; - no_trigraphs = 1; - dump_macros = dump_none; - no_output = 0; - cplusplus = 0; - cplusplus_comments = 1; - - bzero ((char *) pend_files, argc * sizeof (char *)); - bzero ((char *) pend_defs, argc * sizeof (char *)); - bzero ((char *) pend_undefs, argc * sizeof (char *)); - bzero ((char *) pend_assertions, argc * sizeof (char *)); - bzero ((char *) pend_includes, argc * sizeof (char *)); - -#ifdef MULTIBYTE_CHARS - /* Change to the native locale for multibyte conversions. */ - setlocale (LC_CTYPE, ""); - literal_codeset = getenv ("LANG"); -#endif - - /* Process switches and find input file name. */ - - for (i = 1; i < argc; i++) { - if (argv[i][0] != '-') { - if (out_fname != NULL) - { - print_help (); - fatal ("Too many arguments"); - } - else if (in_fname != NULL) - out_fname = argv[i]; - else - in_fname = argv[i]; - } else { - switch (argv[i][1]) { - - case 'i': - if (!strcmp (argv[i], "-include")) { - int temp = i; - - if (i + 1 == argc) - fatal ("Filename missing after `-include' option"); - else - simplify_filename (pend_includes[temp] = argv[++i]); - } - if (!strcmp (argv[i], "-imacros")) { - int temp = i; - - if (i + 1 == argc) - fatal ("Filename missing after `-imacros' option"); - else - simplify_filename (pend_files[temp] = argv[++i]); - } - if (!strcmp (argv[i], "-iprefix")) { - if (i + 1 == argc) - fatal ("Filename missing after `-iprefix' option"); - else - include_prefix = argv[++i]; - } - if (!strcmp (argv[i], "-ifoutput")) { - output_conditionals = 1; - } - if (!strcmp (argv[i], "-isystem")) { - struct file_name_list *dirtmp; - - if (! (dirtmp = new_include_prefix (NULL_PTR, NULL_PTR, - "", argv[++i]))) - break; - dirtmp->c_system_include_path = 1; - - if (before_system == 0) - before_system = dirtmp; - else - last_before_system->next = dirtmp; - last_before_system = dirtmp; /* Tail follows the last one */ - } - /* Add directory to end of path for includes, - with the default prefix at the front of its name. */ - if (!strcmp (argv[i], "-iwithprefix")) { - struct file_name_list *dirtmp; - char *prefix; - - if (include_prefix != 0) - prefix = include_prefix; - else { - prefix = savestring (GCC_INCLUDE_DIR); - /* Remove the `include' from /usr/local/lib/gcc.../include. */ - if (!strcmp (prefix + strlen (prefix) - 8, "/include")) - prefix[strlen (prefix) - 7] = 0; - } - - if (! (dirtmp = new_include_prefix (NULL_PTR, NULL_PTR, - prefix, argv[++i]))) - break; - - if (after_include == 0) - after_include = dirtmp; - else - last_after_include->next = dirtmp; - last_after_include = dirtmp; /* Tail follows the last one */ - } - /* Add directory to main path for includes, - with the default prefix at the front of its name. */ - if (!strcmp (argv[i], "-iwithprefixbefore")) { - struct file_name_list *dirtmp; - char *prefix; - - if (include_prefix != 0) - prefix = include_prefix; - else { - prefix = savestring (GCC_INCLUDE_DIR); - /* Remove the `include' from /usr/local/lib/gcc.../include. */ - if (!strcmp (prefix + strlen (prefix) - 8, "/include")) - prefix[strlen (prefix) - 7] = 0; - } - - dirtmp = new_include_prefix (NULL_PTR, NULL_PTR, prefix, argv[++i]); - append_include_chain (dirtmp, dirtmp); - } - /* Add directory to end of path for includes. */ - if (!strcmp (argv[i], "-idirafter")) { - struct file_name_list *dirtmp; - - if (! (dirtmp = new_include_prefix (NULL_PTR, NULL_PTR, - "", argv[++i]))) - break; - - if (after_include == 0) - after_include = dirtmp; - else - last_after_include->next = dirtmp; - last_after_include = dirtmp; /* Tail follows the last one */ - } - break; - - case 'o': - if (out_fname != NULL) - fatal ("Output filename specified twice"); - if (i + 1 == argc) - fatal ("Filename missing after -o option"); - out_fname = argv[++i]; - if (!strcmp (out_fname, "-")) - out_fname = ""; - break; - - case 'p': - if (!strcmp (argv[i], "-pedantic")) - pedantic = 1; - else if (!strcmp (argv[i], "-pedantic-errors")) { - pedantic = 1; - pedantic_errors = 1; - } else if (!strcmp (argv[i], "-pcp")) { - char *pcp_fname; - if (i + 1 == argc) - fatal ("Filename missing after -pcp option"); - pcp_fname = argv[++i]; - pcp_outfile - = ((pcp_fname[0] != '-' || pcp_fname[1] != '\0') - ? fopen (pcp_fname, "w") - : stdout); - if (pcp_outfile == 0) - pfatal_with_name (pcp_fname); - no_precomp = 1; - } - break; - - case 't': - if (!strcmp (argv[i], "-traditional")) { - traditional = 1; - cplusplus_comments = 0; - } else if (!strcmp (argv[i], "-trigraphs")) { -/* CYGNUS LOCAL chill */ - if (!chill) -/* END CYGNUS LOCAL chill */ - no_trigraphs = 0; - } - break; - - case 'l': - if (! strcmp (argv[i], "-lang-c")) - cplusplus = 0, cplusplus_comments = 1, c89 = 0, c9x = 1, objc = 0; - else if (! strcmp (argv[i], "-lang-c89")) - cplusplus = 0, cplusplus_comments = 0, c89 = 1, c9x = 0, objc = 0; - else if (! strcmp (argv[i], "-lang-c++")) - cplusplus = 1, cplusplus_comments = 1, c89 = 0, c9x = 0, objc = 0; - else if (! strcmp (argv[i], "-lang-objc")) - cplusplus = 0, cplusplus_comments = 1, c89 = 0, c9x = 0, objc = 1; - else if (! strcmp (argv[i], "-lang-objc++")) - cplusplus = 1, cplusplus_comments = 1, c89 = 0, c9x = 0, objc = 1; - else if (! strcmp (argv[i], "-lang-asm")) - lang_asm = 1; - else if (! strcmp (argv[i], "-lint")) - for_lint = 1; -/* CYGNUS LOCAL chill */ - if (! strcmp (argv[i], "-lang-chill")) - objc = 0, cplusplus = 0, chill = 1, /* traditional = 1, */ - no_trigraphs = 1, cplusplus_comments = 0;; -/* END CYGNUS LOCAL chill */ - break; - - case '+': - cplusplus = 1, cplusplus_comments = 1; - break; - - case 's': - if (!strcmp (argv[i], "-std=iso9899:1990") - || !strcmp (argv[i], "-std=iso9899:199409") - || !strcmp (argv[i], "-std=c89") - || !strcmp (argv[i], "-std=gnu89")) - cplusplus = 0, cplusplus_comments = 0, c89 = 1, c9x = 0, objc = 0; - else if (!strcmp (argv[i], "-std=iso9899:199x") - || !strcmp (argv[i], "-std=c9x") - || !strcmp (argv[i], "-std=gnu9x")) - cplusplus = 0, cplusplus_comments = 1, c89 = 0, c9x = 1, objc = 0; - break; - - case 'w': - inhibit_warnings = 1; - break; - - case 'W': - if (!strcmp (argv[i], "-Wtrigraphs")) - warn_trigraphs = 1; - else if (!strcmp (argv[i], "-Wno-trigraphs")) - warn_trigraphs = 0; - else if (!strcmp (argv[i], "-Wcomment")) - warn_comments = 1; - else if (!strcmp (argv[i], "-Wno-comment")) - warn_comments = 0; - else if (!strcmp (argv[i], "-Wcomments")) - warn_comments = 1; - else if (!strcmp (argv[i], "-Wno-comments")) - warn_comments = 0; - else if (!strcmp (argv[i], "-Wtraditional")) - warn_stringify = 1; - else if (!strcmp (argv[i], "-Wno-traditional")) - warn_stringify = 0; - else if (!strcmp (argv[i], "-Wundef")) - warn_undef = 1; - else if (!strcmp (argv[i], "-Wno-undef")) - warn_undef = 0; - else if (!strcmp (argv[i], "-Wimport")) - warn_import = 1; - else if (!strcmp (argv[i], "-Wno-import")) - warn_import = 0; - else if (!strcmp (argv[i], "-Werror")) - warnings_are_errors = 1; - else if (!strcmp (argv[i], "-Wno-error")) - warnings_are_errors = 0; - else if (!strcmp (argv[i], "-Wall")) - { - warn_trigraphs = 1; - warn_comments = 1; - } - break; - - case 'f': - if (!strcmp (argv[i], "-fleading-underscore")) - user_label_prefix = "_"; - else if (!strcmp (argv[i], "-fno-leading-underscore")) - user_label_prefix = ""; - break; - - case 'M': - /* The style of the choices here is a bit mixed. - The chosen scheme is a hybrid of keeping all options in one string - and specifying each option in a separate argument: - -M|-MM|-MD file|-MMD file [-MG]. An alternative is: - -M|-MM|-MD file|-MMD file|-MG|-MMG; or more concisely: - -M[M][G][D file]. This is awkward to handle in specs, and is not - as extensible. */ - /* ??? -MG must be specified in addition to one of -M or -MM. - This can be relaxed in the future without breaking anything. - The converse isn't true. */ - - /* -MG isn't valid with -MD or -MMD. This is checked for later. */ - if (!strcmp (argv[i], "-MG")) - { - print_deps_missing_files = 1; - break; - } - if (!strcmp (argv[i], "-M")) - print_deps = 2; - else if (!strcmp (argv[i], "-MM")) - print_deps = 1; - else if (!strcmp (argv[i], "-MD")) - print_deps = 2; - else if (!strcmp (argv[i], "-MMD")) - print_deps = 1; - /* For -MD and -MMD options, write deps on file named by next arg. */ - if (!strcmp (argv[i], "-MD") - || !strcmp (argv[i], "-MMD")) { - if (i + 1 == argc) - fatal ("Filename missing after %s option", argv[i]); - i++; - deps_file = argv[i]; - deps_mode = "w"; - } else { - /* For -M and -MM, write deps on standard output - and suppress the usual output. */ - deps_stream = stdout; - inhibit_output = 1; - } - break; - - case 'd': - { - char *p = argv[i] + 2; - char c; - while ((c = *p++)) { - /* Arg to -d specifies what parts of macros to dump */ - switch (c) { - case 'M': - dump_macros = dump_only; - no_output = 1; - break; - case 'N': - dump_macros = dump_names; - break; - case 'D': - dump_macros = dump_definitions; - break; - case 'I': - dump_includes = 1; - break; - } - } - } - break; - - case 'g': - if (argv[i][2] == '3') - debug_output = 1; - break; - - case '-': - if (strcmp (argv[i], "--help") != 0) - return i; - print_help (); - exit (0); - break; - - case 'v': - fprintf (stderr, "GNU CPP version %s", version_string); -#ifdef TARGET_VERSION - TARGET_VERSION; -#endif - fprintf (stderr, "\n"); - verbose = 1; - break; - - case 'H': - print_include_names = 1; - break; - - case 'D': - if (argv[i][2] != 0) - pend_defs[i] = argv[i] + 2; - else if (i + 1 == argc) - fatal ("Macro name missing after -D option"); - else - i++, pend_defs[i] = argv[i]; - break; - - case 'A': - { - char *p; - - if (argv[i][2] != 0) - p = argv[i] + 2; - else if (i + 1 == argc) - fatal ("Assertion missing after -A option"); - else - p = argv[++i]; - - if (!strcmp (p, "-")) { - /* -A- eliminates all predefined macros and assertions. - Let's include also any that were specified earlier - on the command line. That way we can get rid of any - that were passed automatically in from GCC. */ - int j; - inhibit_predefs = 1; - for (j = 0; j < i; j++) - pend_defs[j] = pend_assertions[j] = 0; - } else { - pend_assertions[i] = p; - pend_assertion_options[i] = "-A"; - } - } - break; - - case 'U': /* JF #undef something */ - if (argv[i][2] != 0) - pend_undefs[i] = argv[i] + 2; - else if (i + 1 == argc) - fatal ("Macro name missing after -U option"); - else - pend_undefs[i] = argv[i+1], i++; - break; - - case 'C': - put_out_comments = 1; - break; - - case 'E': /* -E comes from cc -E; ignore it. */ - break; - - case 'P': - no_line_directives = 1; - break; - - case '$': /* Don't include $ in identifiers. */ - is_idchar['$'] = is_idstart['$'] = 0; - break; - - case 'I': /* Add directory to path for includes. */ - { - struct file_name_list *dirtmp; - - if (! ignore_srcdir && !strcmp (argv[i] + 2, "-")) { - ignore_srcdir = 1; - /* Don't use any preceding -I directories for #include <...>. */ - first_bracket_include = 0; - } - else { - dirtmp = new_include_prefix (last_include, NULL_PTR, "", - argv[i][2] ? argv[i] + 2 : argv[++i]); - append_include_chain (dirtmp, dirtmp); - } - } - break; - - case 'n': - if (!strcmp (argv[i], "-nostdinc")) - /* -nostdinc causes no default include directories. - You must specify all include-file directories with -I. */ - no_standard_includes = 1; - else if (!strcmp (argv[i], "-nostdinc++")) - /* -nostdinc++ causes no default C++-specific include directories. */ - no_standard_cplusplus_includes = 1; - else if (!strcmp (argv[i], "-noprecomp")) - no_precomp = 1; - break; - - case 'r': - if (!strcmp (argv[i], "-remap")) - remap = 1; - break; - - case 'u': - /* Sun compiler passes undocumented switch "-undef". - Let's assume it means to inhibit the predefined symbols. */ - inhibit_predefs = 1; - break; - - case '\0': /* JF handle '-' as file name meaning stdin or stdout */ - if (in_fname == NULL) { - in_fname = ""; - break; - } else if (out_fname == NULL) { - out_fname = ""; - break; - } /* else fall through into error */ - - default: - fatal ("Invalid option `%s'", argv[i]); - } - } - } - - /* Add dirs from CPATH after dirs from -I. */ - /* There seems to be confusion about what CPATH should do, - so for the moment it is not documented. */ - /* Some people say that CPATH should replace the standard include dirs, - but that seems pointless: it comes before them, so it overrides them - anyway. */ - GET_ENV_PATH_LIST (cp, "CPATH"); - if (cp && ! no_standard_includes) - path_include (cp); - - /* Initialize output buffer */ - - outbuf.buf = (U_CHAR *) xmalloc (OUTBUF_SIZE); - outbuf.bufp = outbuf.buf; - outbuf.length = OUTBUF_SIZE; - - /* Do partial setup of input buffer for the sake of generating - early #line directives (when -g is in effect). */ - - fp = &instack[++indepth]; - if (in_fname == NULL) - in_fname = ""; - fp->nominal_fname = fp->fname = in_fname; - fp->nominal_fname_len = strlen (in_fname); - fp->lineno = 0; - -/* CYGNUS LOCAL vmakarov */ -#ifndef NO_BUILTIN_WCHAR_TYPE -/* END CYGNUS LOCAL */ - /* In C++, wchar_t is a distinct basic type, and we can expect - __wchar_t to be defined by cc1plus. */ - if (cplusplus) - wchar_type = "__wchar_t"; -/* CYGNUS LOCAL vmakarov */ -#endif -/* END CYGNUS LOCAL */ - - /* Install __LINE__, etc. Must follow initialize_char_syntax - and option processing. */ - initialize_builtins (fp, &outbuf); - - /* Do standard #defines and assertions - that identify system and machine type. */ - - if (!inhibit_predefs) { - char *p = (char *) alloca (strlen (predefs) + 1); - - - strcpy (p, predefs); - while (*p) { - char *q; - while (*p == ' ' || *p == '\t') - p++; - /* Handle -D options. */ - if (p[0] == '-' && p[1] == 'D') { - q = &p[2]; - while (*p && *p != ' ' && *p != '\t') - p++; - if (*p != 0) - *p++= 0; - if (debug_output) - output_line_directive (fp, &outbuf, 0, same_file); - make_definition (q); - while (*p == ' ' || *p == '\t') - p++; - } else if (p[0] == '-' && p[1] == 'A') { - /* Handle -A options (assertions). */ - char *assertion; - char *past_name; - char *value; - char *past_value; - char *termination; - int save_char; - - assertion = &p[2]; - past_name = assertion; - /* Locate end of name. */ - while (*past_name && *past_name != ' ' - && *past_name != '\t' && *past_name != '(') - past_name++; - /* Locate `(' at start of value. */ - value = past_name; - while (*value && (*value == ' ' || *value == '\t')) - value++; - if (*value++ != '(') - abort (); - while (*value && (*value == ' ' || *value == '\t')) - value++; - past_value = value; - /* Locate end of value. */ - while (*past_value && *past_value != ' ' - && *past_value != '\t' && *past_value != ')') - past_value++; - termination = past_value; - while (*termination && (*termination == ' ' || *termination == '\t')) - termination++; - if (*termination++ != ')') - abort (); - if (*termination && *termination != ' ' && *termination != '\t') - abort (); - /* Temporarily null-terminate the value. */ - save_char = *termination; - *termination = '\0'; - /* Install the assertion. */ - make_assertion ("-A", assertion); - *termination = (char) save_char; - p = termination; - while (*p == ' ' || *p == '\t') - p++; - } else { - abort (); - } - } - } - - /* Now handle the command line options. */ - - /* Do -U's, -D's and -A's in the order they were seen. */ - for (i = 1; i < argc; i++) { - if (pend_undefs[i]) { - if (debug_output) - output_line_directive (fp, &outbuf, 0, same_file); - make_undef (pend_undefs[i], &outbuf); - } - if (pend_defs[i]) { - if (debug_output) - output_line_directive (fp, &outbuf, 0, same_file); - make_definition (pend_defs[i]); - } - if (pend_assertions[i]) - make_assertion (pend_assertion_options[i], pend_assertions[i]); - } - - done_initializing = 1; - - { /* Read the appropriate environment variable and if it exists - replace include_defaults with the listed path. */ - char *epath = 0; - switch ((objc << 1) + cplusplus) - { - case 0: - GET_ENV_PATH_LIST (epath, "C_INCLUDE_PATH"); - break; - case 1: - GET_ENV_PATH_LIST (epath, "CPLUS_INCLUDE_PATH"); - break; - case 2: - GET_ENV_PATH_LIST (epath, "OBJC_INCLUDE_PATH"); - break; - case 3: - GET_ENV_PATH_LIST (epath, "OBJCPLUS_INCLUDE_PATH"); - break; - } - /* If the environment var for this language is set, - add to the default list of include directories. */ - if (epath) { - int num_dirs; - char *startp, *endp; - - for (num_dirs = 1, startp = epath; *startp; startp++) - if (*startp == PATH_SEPARATOR) - num_dirs++; - include_defaults - = (struct default_include *) xmalloc ((num_dirs - * sizeof (struct default_include)) - + sizeof (include_defaults_array)); - startp = endp = epath; - num_dirs = 0; - while (1) { - char c = *endp++; - if (c == PATH_SEPARATOR || !c) { - endp[-1] = 0; - include_defaults[num_dirs].fname - = startp == endp ? "." : savestring (startp); - endp[-1] = c; - include_defaults[num_dirs].component = 0; - include_defaults[num_dirs].cplusplus = cplusplus; - include_defaults[num_dirs].cxx_aware = 1; - num_dirs++; - if (!c) - break; - startp = endp; - } - } - /* Put the usual defaults back in at the end. */ - bcopy ((char *) include_defaults_array, - (char *) &include_defaults[num_dirs], - sizeof (include_defaults_array)); - } - } - - append_include_chain (before_system, last_before_system); - first_system_include = before_system; - - /* Unless -fnostdinc, - tack on the standard include file dirs to the specified list */ - if (!no_standard_includes) { - struct default_include *p = include_defaults; - char *specd_prefix = include_prefix; - char *default_prefix = savestring (GCC_INCLUDE_DIR); - int default_len = 0; - /* Remove the `include' from /usr/local/lib/gcc.../include. */ - if (!strcmp (default_prefix + strlen (default_prefix) - 8, "/include")) { - default_len = strlen (default_prefix) - 7; - default_prefix[default_len] = 0; - } - /* Search "translated" versions of GNU directories. - These have /usr/local/lib/gcc... replaced by specd_prefix. */ - if (specd_prefix != 0 && default_len != 0) - for (p = include_defaults; p->fname; p++) { - /* Some standard dirs are only for C++. */ - if (!p->cplusplus || (cplusplus && !no_standard_cplusplus_includes)) { - /* Does this dir start with the prefix? */ - if (!strncmp (p->fname, default_prefix, default_len)) { - /* Yes; change prefix and add to search list. */ - struct file_name_list *new - = new_include_prefix (NULL_PTR, NULL_PTR, specd_prefix, - p->fname + default_len); - if (new) { - new->c_system_include_path = !p->cxx_aware; - append_include_chain (new, new); - if (first_system_include == 0) - first_system_include = new; - } - } - } - } - /* Search ordinary names for GNU include directories. */ - for (p = include_defaults; p->fname; p++) { - /* Some standard dirs are only for C++. */ - if (!p->cplusplus || (cplusplus && !no_standard_cplusplus_includes)) { - struct file_name_list *new - = new_include_prefix (NULL_PTR, p->component, "", p->fname); - if (new) { - new->c_system_include_path = !p->cxx_aware; - append_include_chain (new, new); - if (first_system_include == 0) - first_system_include = new; - } - } - } - } - - /* Tack the after_include chain at the end of the include chain. */ - append_include_chain (after_include, last_after_include); - if (first_system_include == 0) - first_system_include = after_include; - - /* With -v, print the list of dirs to search. */ - if (verbose) { - struct file_name_list *p; - fprintf (stderr, "#include \"...\" search starts here:\n"); - for (p = include; p; p = p->next) { - if (p == first_bracket_include) - fprintf (stderr, "#include <...> search starts here:\n"); - if (!p->fname[0]) - fprintf (stderr, " .\n"); - else if (!strcmp (p->fname, "/") || !strcmp (p->fname, "//")) - fprintf (stderr, " %s\n", p->fname); - else - /* Omit trailing '/'. */ - fprintf (stderr, " %.*s\n", (int) strlen (p->fname) - 1, p->fname); - } - fprintf (stderr, "End of search list.\n"); - } - - /* -MG doesn't select the form of output and must be specified with one of - -M or -MM. -MG doesn't make sense with -MD or -MMD since they don't - inhibit compilation. */ - if (print_deps_missing_files && (print_deps == 0 || !inhibit_output)) - fatal ("-MG must be specified with one of -M or -MM"); - - /* Either of two environment variables can specify output of deps. - Its value is either "OUTPUT_FILE" or "OUTPUT_FILE DEPS_TARGET", - where OUTPUT_FILE is the file to write deps info to - and DEPS_TARGET is the target to mention in the deps. */ - - if (print_deps == 0 - && (getenv ("SUNPRO_DEPENDENCIES") != 0 - || getenv ("DEPENDENCIES_OUTPUT") != 0)) { - char *spec = getenv ("DEPENDENCIES_OUTPUT"); - char *s; - char *output_file; - - if (spec == 0) { - spec = getenv ("SUNPRO_DEPENDENCIES"); - print_deps = 2; - } - else - print_deps = 1; - - s = spec; - /* Find the space before the DEPS_TARGET, if there is one. */ - /* This should use index. (mrs) */ - while (*s != 0 && *s != ' ') s++; - if (*s != 0) { - deps_target = s + 1; - output_file = xmalloc (s - spec + 1); - bcopy (spec, output_file, s - spec); - output_file[s - spec] = 0; - } - else { - deps_target = 0; - output_file = spec; - } - - deps_file = output_file; - deps_mode = "a"; - } - - /* For -M, print the expected object file name - as the target of this Make-rule. */ - if (print_deps) { - deps_allocated_size = 200; - deps_buffer = xmalloc (deps_allocated_size); - deps_buffer[0] = 0; - deps_size = 0; - deps_column = 0; - - if (deps_target) { - deps_output (deps_target, ':'); - } else if (*in_fname == 0) { - deps_output ("-", ':'); - } else { - char *p, *q; - int len; - - q = base_name (in_fname); - - /* Copy remainder to mungable area. */ - p = (char *) alloca (strlen(q) + 8); - strcpy (p, q); - - /* Output P, but remove known suffixes. */ - len = strlen (p); - q = p + len; - if (len >= 2 - && p[len - 2] == '.' - && index("cCsSm", p[len - 1])) - q = p + (len - 2); - else if (len >= 3 - && p[len - 3] == '.' - && p[len - 2] == 'c' - && p[len - 1] == 'c') - q = p + (len - 3); - else if (len >= 4 - && p[len - 4] == '.' - && p[len - 3] == 'c' - && p[len - 2] == 'x' - && p[len - 1] == 'x') - q = p + (len - 4); - else if (len >= 4 - && p[len - 4] == '.' - && p[len - 3] == 'c' - && p[len - 2] == 'p' - && p[len - 1] == 'p') - q = p + (len - 4); - - /* Supply our own suffix. */ - strcpy (q, OBJECT_SUFFIX); - - deps_output (p, ':'); - deps_output (in_fname, ' '); - } - } - - /* Scan the -imacros files before the main input. - Much like #including them, but with no_output set - so that only their macro definitions matter. */ - - no_output++; no_record_file++; - for (i = 1; i < argc; i++) - if (pend_files[i]) { - struct include_file *inc; - int fd = open_include_file (pend_files[i], NULL_PTR, NULL_PTR, &inc); - if (fd < 0) { - perror_with_name (pend_files[i]); - return FATAL_EXIT_CODE; - } - finclude (fd, inc, &outbuf, 0, NULL_PTR); - } - no_output--; no_record_file--; - - /* Copy the entire contents of the main input file into - the stacked input buffer previously allocated for it. */ - - /* JF check for stdin */ - if (in_fname == NULL || *in_fname == 0) { - in_fname = ""; - f = 0; - } else if ((f = open (in_fname, O_RDONLY, 0666)) < 0) - goto perror; - - if (fstat (f, &st) != 0) - pfatal_with_name (in_fname); - fp->nominal_fname = fp->fname = in_fname; - fp->nominal_fname_len = strlen (in_fname); - fp->lineno = 1; - fp->system_header_p = 0; - /* JF all this is mine about reading pipes and ttys */ - if (! S_ISREG (st.st_mode)) { - /* Read input from a file that is not a normal disk file. - We cannot preallocate a buffer with the correct size, - so we must read in the file a piece at the time and make it bigger. */ - int size; - int bsize; - int cnt; - - if (S_ISDIR (st.st_mode)) - fatal ("Input file `%s' is a directory", in_fname); - - bsize = 2000; - size = 0; - fp->buf = (U_CHAR *) xmalloc (bsize + 2); - for (;;) { - cnt = safe_read (f, (char *) fp->buf + size, bsize - size); - if (cnt < 0) goto perror; /* error! */ - size += cnt; - if (size != bsize) break; /* End of file */ - bsize *= 2; - fp->buf = (U_CHAR *) xrealloc (fp->buf, bsize + 2); - } - fp->length = size; - } else { - /* Read a file whose size we can determine in advance. - For the sake of VMS, st.st_size is just an upper bound. */ - size_t s = (size_t) st.st_size; - if (s != st.st_size || s + 2 < s) - memory_full (); - fp->buf = (U_CHAR *) xmalloc (s + 2); - fp->length = safe_read (f, (char *) fp->buf, s); - if (fp->length < 0) goto perror; - } - fp->bufp = fp->buf; - fp->if_stack = if_stack; - - /* Make sure data ends with a newline. And put a null after it. */ - - if ((fp->length > 0 && fp->buf[fp->length - 1] != '\n') - /* Backslash-newline at end is not good enough. */ - || (fp->length > 1 && fp->buf[fp->length - 2] == '\\')) { - fp->buf[fp->length++] = '\n'; - missing_newline = 1; - } - fp->buf[fp->length] = '\0'; - - /* Unless inhibited, convert trigraphs in the input. */ - - if (!no_trigraphs) - trigraph_pcp (fp); - - /* Now that we know the input file is valid, open the output. */ - - if (!out_fname || !strcmp (out_fname, "")) - out_fname = "stdout"; - else if (! freopen (out_fname, "w", stdout)) - pfatal_with_name (out_fname); - - output_line_directive (fp, &outbuf, 0, same_file); - - /* Scan the -include files before the main input. */ - - no_record_file++; - for (i = 1; i < argc; i++) - if (pend_includes[i]) { - struct include_file *inc; - int fd = open_include_file (pend_includes[i], NULL_PTR, NULL_PTR, &inc); - if (fd < 0) { - perror_with_name (pend_includes[i]); - return FATAL_EXIT_CODE; - } - finclude (fd, inc, &outbuf, 0, NULL_PTR); - } - no_record_file--; - - /* Scan the input, processing macros and directives. */ - - rescan (&outbuf, 0); - - if (missing_newline) - fp->lineno--; - - if (pedantic && missing_newline) - pedwarn ("file does not end in newline"); - - /* Now we have processed the entire input - Write whichever kind of output has been requested. */ - - if (dump_macros == dump_only) - dump_all_macros (); - else if (! inhibit_output) { - write_output (); - } - - if (print_deps) { - /* Don't actually write the deps file if compilation has failed. */ - if (errors == 0) { - if (deps_file && ! (deps_stream = fopen (deps_file, deps_mode))) - pfatal_with_name (deps_file); - fputs (deps_buffer, deps_stream); - putc ('\n', deps_stream); - if (deps_file) { - if (ferror (deps_stream) || fclose (deps_stream) != 0) - fatal ("I/O error on output"); - } - } - } - - if (pcp_outfile && pcp_outfile != stdout - && (ferror (pcp_outfile) || fclose (pcp_outfile) != 0)) - fatal ("I/O error on `-pcp' output"); - - if (ferror (stdout) || fclose (stdout) != 0) - fatal ("I/O error on output"); - - if (errors) - exit (FATAL_EXIT_CODE); - exit (SUCCESS_EXIT_CODE); - - perror: - pfatal_with_name (in_fname); - return 0; -} - -/* Given a colon-separated list of file names PATH, - add all the names to the search path for include files. */ - -static void -path_include (path) - char *path; -{ - char *p; - - p = path; - - if (*p) - while (1) { - char *q = p; - char c; - struct file_name_list *dirtmp; - - /* Find the end of this name. */ - while ((c = *q++) != PATH_SEPARATOR && c) - continue; - - q[-1] = 0; - dirtmp = new_include_prefix (last_include, NULL_PTR, - "", p == q ? "." : p); - q[-1] = c; - append_include_chain (dirtmp, dirtmp); - - /* Advance past this name. */ - p = q; - if (! c) - break; - } -} - -/* Return the address of the first character in S that equals C. - S is an array of length N, possibly containing '\0's, and followed by '\0'. - Return 0 if there is no such character. Assume that C itself is not '\0'. - If we knew we could use memchr, we could just invoke memchr (S, C, N), - but unfortunately memchr isn't autoconfigured yet. */ - -static U_CHAR * -index0 (s, c, n) - U_CHAR *s; - int c; - size_t n; -{ - char *p = (char *) s; - for (;;) { - char *q = index (p, c); - if (q) - return (U_CHAR *) q; - else { - size_t l = strlen (p); - if (l == n) - return 0; - l++; - p += l; - n -= l; - } - } -} - -/* Pre-C-Preprocessor to translate ANSI trigraph idiocy in BUF - before main CCCP processing. Name `pcp' is also in honor of the - drugs the trigraph designers must have been on. - - Using an extra pass through the buffer takes a little extra time, - but is infinitely less hairy than trying to handle trigraphs inside - strings, etc. everywhere, and also makes sure that trigraphs are - only translated in the top level of processing. */ - -static void -trigraph_pcp (buf) - FILE_BUF *buf; -{ - register U_CHAR c, *fptr, *bptr, *sptr, *lptr; - int len; - - fptr = bptr = sptr = buf->buf; - lptr = fptr + buf->length; - while ((sptr = index0 (sptr, '?', (size_t) (lptr - sptr))) != NULL) { - if (*++sptr != '?') - continue; - switch (*++sptr) { - case '=': - c = '#'; - break; - case '(': - c = '['; - break; - case '/': - c = '\\'; - break; - case ')': - c = ']'; - break; - case '\'': - c = '^'; - break; - case '<': - c = '{'; - break; - case '!': - c = '|'; - break; - case '>': - c = '}'; - break; - case '-': - c = '~'; - break; - case '?': - sptr--; - continue; - default: - continue; - } - len = sptr - fptr - 2; - - /* BSD doc says bcopy () works right for overlapping strings. In ANSI - C, this will be memmove (). */ - if (bptr != fptr && len > 0) - bcopy ((char *) fptr, (char *) bptr, len); - - bptr += len; - *bptr++ = c; - fptr = ++sptr; - } - len = buf->length - (fptr - buf->buf); - if (bptr != fptr && len > 0) - bcopy ((char *) fptr, (char *) bptr, len); - buf->length -= fptr - bptr; - buf->buf[buf->length] = '\0'; - if (warn_trigraphs && fptr != bptr) - warning_with_line (0, "%lu trigraph(s) encountered", - (unsigned long) (fptr - bptr) / 2); -} - -/* Move all backslash-newline pairs out of embarrassing places. - Exchange all such pairs following BP - with any potentially-embarrassing characters that follow them. - Potentially-embarrassing characters are / and * - (because a backslash-newline inside a comment delimiter - would cause it not to be recognized). */ - -static void -newline_fix (bp) - U_CHAR *bp; -{ - register U_CHAR *p = bp; - - /* First count the backslash-newline pairs here. */ - - while (p[0] == '\\' && p[1] == '\n') - p += 2; - - /* What follows the backslash-newlines is not embarrassing. */ - - if (*p != '/' && *p != '*') - return; - - /* Copy all potentially embarrassing characters - that follow the backslash-newline pairs - down to where the pairs originally started. */ - - while (*p == '*' || *p == '/') - *bp++ = *p++; - - /* Now write the same number of pairs after the embarrassing chars. */ - while (bp < p) { - *bp++ = '\\'; - *bp++ = '\n'; - } -} - -/* Like newline_fix but for use within a directive-name. - Move any backslash-newlines up past any following symbol constituents. */ - -static void -name_newline_fix (bp) - U_CHAR *bp; -{ - register U_CHAR *p = bp; - - /* First count the backslash-newline pairs here. */ - while (p[0] == '\\' && p[1] == '\n') - p += 2; - - /* What follows the backslash-newlines is not embarrassing. */ - - if (!is_idchar[*p]) - return; - - /* Copy all potentially embarrassing characters - that follow the backslash-newline pairs - down to where the pairs originally started. */ - - while (is_idchar[*p]) - *bp++ = *p++; - - /* Now write the same number of pairs after the embarrassing chars. */ - while (bp < p) { - *bp++ = '\\'; - *bp++ = '\n'; - } -} - -/* Look for lint commands in comments. - - When we come in here, ibp points into a comment. Limit is as one expects. - scan within the comment -- it should start, after lwsp, with a lint command. - If so that command is returned as a (constant) string. - - Upon return, any arg will be pointed to with argstart and will be - arglen long. Note that we don't parse that arg since it will just - be printed out again. */ - -static char * -get_lintcmd (ibp, limit, argstart, arglen, cmdlen) - register U_CHAR *ibp; - register U_CHAR *limit; - U_CHAR **argstart; /* point to command arg */ - int *arglen, *cmdlen; /* how long they are */ -{ - HOST_WIDE_INT linsize; - register U_CHAR *numptr; /* temp for arg parsing */ - - *arglen = 0; - - SKIP_WHITE_SPACE (ibp); - - if (ibp >= limit) return NULL; - - linsize = limit - ibp; - - /* Oh, I wish C had lexical functions... hell, I'll just open-code the set */ - if ((linsize >= 10) && !bcmp (ibp, "NOTREACHED", 10)) { - *cmdlen = 10; - return "NOTREACHED"; - } - if ((linsize >= 8) && !bcmp (ibp, "ARGSUSED", 8)) { - *cmdlen = 8; - return "ARGSUSED"; - } - if ((linsize >= 11) && !bcmp (ibp, "LINTLIBRARY", 11)) { - *cmdlen = 11; - return "LINTLIBRARY"; - } - if ((linsize >= 7) && !bcmp (ibp, "VARARGS", 7)) { - *cmdlen = 7; - ibp += 7; linsize -= 7; - if ((linsize == 0) || ! ISDIGIT (*ibp)) return "VARARGS"; - - /* OK, read a number */ - for (numptr = *argstart = ibp; (numptr < limit) && ISDIGIT (*numptr); - numptr++); - *arglen = numptr - *argstart; - return "VARARGS"; - } - return NULL; -} - -/* - * The main loop of the program. - * - * Read characters from the input stack, transferring them to the - * output buffer OP. - * - * Macros are expanded and push levels on the input stack. - * At the end of such a level it is popped off and we keep reading. - * At the end of any other kind of level, we return. - * #-directives are handled, except within macros. - * - * If OUTPUT_MARKS is nonzero, keep Newline markers found in the input - * and insert them when appropriate. This is set while scanning macro - * arguments before substitution. It is zero when scanning for final output. - * There are three types of Newline markers: - * * Newline - follows a macro name that was not expanded - * because it appeared inside an expansion of the same macro. - * This marker prevents future expansion of that identifier. - * When the input is rescanned into the final output, these are deleted. - * These are also deleted by ## concatenation. - * * Newline Space (or Newline and any other whitespace character) - * stands for a place that tokens must be separated or whitespace - * is otherwise desirable, but where the ANSI standard specifies there - * is no whitespace. This marker turns into a Space (or whichever other - * whitespace char appears in the marker) in the final output, - * but it turns into nothing in an argument that is stringified with #. - * Such stringified arguments are the only place where the ANSI standard - * specifies with precision that whitespace may not appear. - * - * During this function, IP->bufp is kept cached in IBP for speed of access. - * Likewise, OP->bufp is kept in OBP. Before calling a subroutine - * IBP, IP and OBP must be copied back to memory. IP and IBP are - * copied back with the RECACHE macro. OBP must be copied back from OP->bufp - * explicitly, and before RECACHE, since RECACHE uses OBP. - */ - -static void -rescan (op, output_marks) - FILE_BUF *op; - int output_marks; -{ - /* Character being scanned in main loop. */ - register U_CHAR c; - - /* Length of pending accumulated identifier. */ - register int ident_length = 0; - - /* Hash code of pending accumulated identifier. */ - register int hash = 0; - - /* Current input level (&instack[indepth]). */ - FILE_BUF *ip; - - /* Pointer for scanning input. */ - register U_CHAR *ibp; - - /* Pointer to end of input. End of scan is controlled by LIMIT. */ - register U_CHAR *limit; - - /* Pointer for storing output. */ - register U_CHAR *obp; - - /* REDO_CHAR is nonzero if we are processing an identifier - after backing up over the terminating character. - Sometimes we process an identifier without backing up over - the terminating character, if the terminating character - is not special. Backing up is done so that the terminating character - will be dispatched on again once the identifier is dealt with. */ - int redo_char = 0; - - /* 1 if within an identifier inside of which a concatenation - marker (Newline -) has been seen. */ - int concatenated = 0; - - /* While scanning a comment or a string constant, - this records the line it started on, for error messages. */ - int start_line; - - /* Record position of last `real' newline. */ - U_CHAR *beg_of_line; - -/* Pop the innermost input stack level, assuming it is a macro expansion. */ - -#define POPMACRO \ -do { ip->macro->type = T_MACRO; \ - if (ip->free_ptr) free (ip->free_ptr); \ - --indepth; } while (0) - -/* Reload `rescan's local variables that describe the current - level of the input stack. */ - -#define RECACHE \ -do { ip = &instack[indepth]; \ - ibp = ip->bufp; \ - limit = ip->buf + ip->length; \ - op->bufp = obp; \ - check_expand (op, limit - ibp); \ - beg_of_line = 0; \ - obp = op->bufp; } while (0) - - if (no_output && instack[indepth].fname != 0) - skip_if_group (&instack[indepth], 1, NULL); - - obp = op->bufp; - RECACHE; - - beg_of_line = ibp; - - /* Our caller must always put a null after the end of - the input at each input stack level. */ - if (*limit != 0) - abort (); - - while (1) { - c = *ibp++; - *obp++ = c; - - switch (c) { - case '\\': - if (*ibp == '\n' && !ip->macro) { - /* At the top level, always merge lines ending with backslash-newline, - even in middle of identifier. But do not merge lines in a macro, - since backslash might be followed by a newline-space marker. */ - ++ibp; - ++ip->lineno; - --obp; /* remove backslash from obuf */ - break; - } - /* If ANSI, backslash is just another character outside a string. */ - if (!traditional) - goto randomchar; - /* Otherwise, backslash suppresses specialness of following char, - so copy it here to prevent the switch from seeing it. - But first get any pending identifier processed. */ - if (ident_length > 0) - goto specialchar; - if (ibp < limit) - *obp++ = *ibp++; - break; - - case '%': - if (ident_length || ip->macro || traditional) - goto randomchar; - while (*ibp == '\\' && ibp[1] == '\n') { - ibp += 2; - ++ip->lineno; - } - if (*ibp != ':') - break; - /* Treat this %: digraph as if it were #. */ - /* Fall through. */ - - case '#': - if (assertions_flag) { - if (ident_length) - goto specialchar; - /* Copy #foo (bar lose) without macro expansion. */ - obp[-1] = '#'; /* In case it was '%'. */ - SKIP_WHITE_SPACE (ibp); - while (is_idchar[*ibp]) - *obp++ = *ibp++; - SKIP_WHITE_SPACE (ibp); - if (*ibp == '(') { - ip->bufp = ibp; - skip_paren_group (ip); - bcopy ((char *) ibp, (char *) obp, ip->bufp - ibp); - obp += ip->bufp - ibp; - ibp = ip->bufp; - } - break; - } - - /* If this is expanding a macro definition, don't recognize - preprocessing directives. */ - if (ip->macro != 0) - goto randomchar; - /* If this is expand_into_temp_buffer, - don't recognize them either. Warn about them - only after an actual newline at this level, - not at the beginning of the input level. */ - if (! ip->fname) { - if (ip->buf != beg_of_line) - warning ("preprocessing directive not recognized within macro arg"); - goto randomchar; - } - if (ident_length) - goto specialchar; - - - /* # keyword: a # must be first nonblank char on the line */ - if (beg_of_line == 0) - goto randomchar; - { - U_CHAR *bp; - - /* Scan from start of line, skipping whitespace, comments - and backslash-newlines, and see if we reach this #. - If not, this # is not special. */ - bp = beg_of_line; - /* If -traditional, require # to be at beginning of line. */ - if (!traditional) { - while (1) { - if (is_hor_space[*bp]) - bp++; - else if (*bp == '\\' && bp[1] == '\n') - bp += 2; - else if (*bp == '/' && bp[1] == '*') { - bp += 2; - while (1) - { - if (*bp == '*') - { - if (bp[1] == '/') - { - bp += 2; - break; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, limit - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - bp++; - } - } - /* There is no point in trying to deal with C++ // comments here, - because if there is one, then this # must be part of the - comment and we would never reach here. */ - else break; - } - if (c == '%') { - if (bp[0] != '%') - break; - while (bp[1] == '\\' && bp[2] == '\n') - bp += 2; - if (bp + 1 != ibp) - break; - /* %: appears at start of line; skip past the ':' too. */ - bp++; - ibp++; - } - } - if (bp + 1 != ibp) - goto randomchar; - } - - /* This # can start a directive. */ - - --obp; /* Don't copy the '#' */ - - ip->bufp = ibp; - op->bufp = obp; - if (! handle_directive (ip, op)) { -#ifdef USE_C_ALLOCA - alloca (0); -#endif - /* Not a known directive: treat it as ordinary text. - IP, OP, IBP, etc. have not been changed. */ - if (no_output && instack[indepth].fname) { - /* If not generating expanded output, - what we do with ordinary text is skip it. - Discard everything until next # directive. */ - skip_if_group (&instack[indepth], 1, 0); - RECACHE; - beg_of_line = ibp; - break; - } - *obp++ = '#'; /* Copy # (even if it was originally %:). */ - /* Don't expand an identifier that could be a macro directive. - (Section 3.8.3 of the ANSI C standard) */ - SKIP_WHITE_SPACE (ibp); - if (is_idstart[*ibp]) - { - *obp++ = *ibp++; - while (is_idchar[*ibp]) - *obp++ = *ibp++; - } - goto randomchar; - } -#ifdef USE_C_ALLOCA - alloca (0); -#endif - /* A # directive has been successfully processed. */ - /* If not generating expanded output, ignore everything until - next # directive. */ - if (no_output && instack[indepth].fname) - skip_if_group (&instack[indepth], 1, 0); - obp = op->bufp; - RECACHE; - beg_of_line = ibp; - break; - - case '\"': /* skip quoted string */ - case '\'': - /* A single quoted string is treated like a double -- some - programs (e.g., troff) are perverse this way */ - - /* Handle any pending identifier; - but the L in L'...' or L"..." is not an identifier. */ - if (ident_length) { - if (! (ident_length == 1 && hash == HASHSTEP (0, 'L'))) - goto specialchar; - ident_length = hash = 0; - } - - start_line = ip->lineno; - - /* Skip ahead to a matching quote. */ - - while (1) { - if (ibp >= limit) { - if (ip->macro != 0) { - /* try harder: this string crosses a macro expansion boundary. - This can happen naturally if -traditional. - Otherwise, only -D can make a macro with an unmatched quote. */ - POPMACRO; - RECACHE; - continue; - } - if (!traditional) { - error_with_line (line_for_error (start_line), - "unterminated string or character constant"); - if (multiline_string_line) { - error_with_line (multiline_string_line, - "possible real start of unterminated constant"); - multiline_string_line = 0; - } - } - break; - } - *obp++ = *ibp; - switch (*ibp++) { - case '\n': - ++ip->lineno; - ++op->lineno; - /* Traditionally, end of line ends a string constant with no error. - So exit the loop and record the new line. */ - if (traditional) { - beg_of_line = ibp; - goto while2end; - } - if (c == '\'') { - error_with_line (line_for_error (start_line), - "unterminated character constant"); - goto while2end; - } - if (multiline_string_line == 0) { - if (pedantic) - pedwarn_with_line (line_for_error (start_line), - "string constant runs past end of line"); - multiline_string_line = ip->lineno - 1; - } - break; - - case '\\': -/* CYGNUS LOCAL chill */ - if (chill) - break; -/* END CYGNUS LOCAL chill */ - if (*ibp == '\n') { - /* Backslash newline is replaced by nothing at all, but - keep the line counts correct. But if we are reading - from a macro, keep the backslash newline, since backslash - newlines have already been processed. */ - if (ip->macro) - *obp++ = '\n'; - else - --obp; - ++ibp; - ++ip->lineno; - } else { - /* ANSI stupidly requires that in \\ the second \ - is *not* prevented from combining with a newline. */ - if (!ip->macro) { - while (*ibp == '\\' && ibp[1] == '\n') { - ibp += 2; - ++ip->lineno; - } - } - *obp++ = *ibp++; - } - break; - - case '\"': - case '\'': - if (ibp[-1] == c) - goto while2end; - break; -/* CYGNUS LOCAL chill */ - case '^': - if (chill) - { - /* skip a control sequence in chill. This looks like - ^([b | B | d | D | h | H | o | O']digits) | ^^ */ - if (*ibp == '^') - { - *obp++=*ibp++; - break; - } - if (*ibp == '(') - { - /* skip till closing paran or eol */ - while (*ibp) - { - *obp++ = *ibp++; - if (*ibp == ')') - break; - if (*ibp == '\n' || *ibp == 0) - goto while2end; - } - } - } - break; -/* END CYGNUS LOCAL chill */ -#ifdef MULTIBYTE_CHARS - default: -/* CYGNUS LOCAL chill */ - if (! chill) -/* END CYGNUS LOCAL chill */ - { - int length; - --ibp; - length = local_mblen (ibp, limit - ibp); - if (length > 0) - { - --obp; - bcopy (ibp, obp, length); - obp += length; - ibp += length; - } - else - ++ibp; - } - break; -#endif - } - } - while2end: - break; - -/* CYGNUS LOCAL chill */ - case '-': - if (*ibp == '\\' && ibp[1] == '\n') - newline_fix (ibp); - - if (!(chill && *ibp == '-')) - goto randomchar; - if (ip->macro != 0) - goto randomchar; - if (ident_length) - goto specialchar; - - if (*ibp == '-') { - /* CHILL style comment... */ - start_line = ip->lineno; - - --ibp; /* Back over the dash */ - --obp; - - /* Comments are equivalent to spaces. */ - if (! put_out_comments) - *obp++ = ' '; - else { - /* must fake up a comment here */ - *obp++ = '-'; - *obp++ = '-'; - } - { - U_CHAR *before_bp = ibp+2; - - while (ibp < limit) { - if (*ibp++ == '\n') { - ibp--; - if (put_out_comments) { - bcopy (before_bp, obp, ibp - before_bp); - obp += ibp - before_bp; - } - break; - } - } - break; - } - } - break; -/* END CYGNUS LOCAL chill */ - - case '/': - if (ip->macro != 0) - goto randomchar; - if (*ibp == '\\' && ibp[1] == '\n') - newline_fix (ibp); - if (*ibp != '*' - && !(cplusplus_comments && *ibp == '/')) - goto randomchar; - if (ident_length) - goto specialchar; - - if (*ibp == '/') { - /* C++ style comment... */ - start_line = ip->lineno; - - /* Comments are equivalent to spaces. */ - if (! put_out_comments) - obp[-1] = ' '; - - { - U_CHAR *before_bp = ibp; - - while (++ibp < limit) { - if (*ibp == '\n') - { - if (put_out_comments) { - bcopy ((char *) before_bp, (char *) obp, ibp - before_bp); - obp += ibp - before_bp; - } - break; - } - if (*ibp == '\\') - { - if (ibp + 1 < limit && ibp[1] == '\n') - { - if (warn_comments) - warning ("multiline `//' comment"); - ++ip->lineno; - /* Copy the newline into the output buffer, in order to - avoid the pain of a #line every time a multiline comment - is seen. */ - if (!put_out_comments) - *obp++ = '\n'; - ++op->lineno; - ++ibp; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (ibp, limit - ibp); - if (length > 1) - ibp += (length - 1); - } -#endif - } - } - break; - } - } - - /* Ordinary C comment. Skip it, optionally copying it to output. */ - - start_line = ip->lineno; - - ++ibp; /* Skip the star. */ - - /* If this cpp is for lint, we peek inside the comments: */ - if (for_lint) { - U_CHAR *argbp; - int cmdlen, arglen; - char *lintcmd = get_lintcmd (ibp, limit, &argbp, &arglen, &cmdlen); - - if (lintcmd != NULL) { - op->bufp = obp; - check_expand (op, cmdlen + arglen + 14); - obp = op->bufp; - /* I believe it is always safe to emit this newline: */ - obp[-1] = '\n'; - bcopy ("#pragma lint ", (char *) obp, 13); - obp += 13; - bcopy (lintcmd, (char *) obp, cmdlen); - obp += cmdlen; - - if (arglen != 0) { - *(obp++) = ' '; - bcopy (argbp, (char *) obp, arglen); - obp += arglen; - } - - /* OK, now bring us back to the state we were in before we entered - this branch. We need #line because the #pragma's newline always - messes up the line count. */ - op->bufp = obp; - output_line_directive (ip, op, 0, same_file); - check_expand (op, limit - ibp + 2); - obp = op->bufp; - *(obp++) = '/'; - } - } - - /* Comments are equivalent to spaces. - Note that we already output the slash; we might not want it. - For -traditional, a comment is equivalent to nothing. */ - if (! put_out_comments) { - if (traditional) - obp--; - else - obp[-1] = ' '; - } - else - *obp++ = '*'; - - { - U_CHAR *before_bp = ibp; - - for (;;) { - switch (*ibp++) { - case '*': - if (ibp[-2] == '/' && warn_comments) - warning ("`/*' within comment"); - if (*ibp == '\\' && ibp[1] == '\n') - newline_fix (ibp); - if (*ibp == '/') - goto comment_end; - break; - - case '\n': - ++ip->lineno; - /* Copy the newline into the output buffer, in order to - avoid the pain of a #line every time a multiline comment - is seen. */ - if (!put_out_comments) - *obp++ = '\n'; - ++op->lineno; - break; - - case 0: - if (limit < ibp) { - error_with_line (line_for_error (start_line), - "unterminated comment"); - goto limit_reached; - } - break; -#ifdef MULTIBYTE_CHARS - default: - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (ibp, limit - ibp); - if (length > 1) - ibp += (length - 1); - } - break; -#endif - } - } - comment_end: - - ibp++; - if (put_out_comments) { - bcopy ((char *) before_bp, (char *) obp, ibp - before_bp); - obp += ibp - before_bp; - } - } - break; - - case '$': - if (! is_idchar['$']) - goto randomchar; - if (pedantic) - pedwarn ("`$' in identifier"); - goto letter; - - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - /* If digit is not part of identifier, it starts a number, - which means that following letters are not an identifier. - "0x5" does not refer to an identifier "x5". - So copy all alphanumerics that follow without accumulating - as an identifier. Periods also, for sake of "3.e7". */ - - if (ident_length == 0) { - for (;;) { - if (!ip->macro) { - while (ibp[0] == '\\' && ibp[1] == '\n') { - ++ip->lineno; - ibp += 2; - } - } - c = *ibp++; - if (!is_idchar[c] && c != '.') { - --ibp; - break; - } - *obp++ = c; - /* A sign can be part of a preprocessing number - if it follows an `e' or `p'. */ - if (c == 'e' || c == 'E' || c == 'p' || c == 'P') { - if (!ip->macro) { - while (ibp[0] == '\\' && ibp[1] == '\n') { - ++ip->lineno; - ibp += 2; - } - } - if (*ibp == '+' || *ibp == '-') { - *obp++ = *ibp++; - /* But traditional C does not let the token go past the sign, - and C89 does not allow `p'. */ - if (traditional || (c89 && (c == 'p' || c == 'P'))) - break; - } - } - } - break; - } - /* fall through */ - - case '_': - case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': - case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': - case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': - case 's': case 't': case 'u': case 'v': case 'w': case 'x': - case 'y': case 'z': - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': - case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': - case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': - case 'Y': case 'Z': -/* CYGNUS LOCAL chill */ - if (chill && *ibp == '\'' && - (c == 'd' || c == 'D' || c == 'o' || c == 'O' || - c == 'h' || c == 'H' || c == 'b' || c == 'B')) - { - /* here we skip till end of literal. The reason is, that this - literal may not be terminated by another "'", and therefor - no macro evaluation is done till end of line */ - /* put the "'" */ - *obp++ = *ibp++; - while (*ibp == '_' || (*ibp >= '0' && *ibp <= '9') || - (*ibp >= 'A' && *ibp <= 'F') || (*ibp >= 'a' && *ibp <= 'f')) - *obp++ = *ibp++; - - /* if we have another "'" at the end, put this to obp and - continue */ - if (*ibp == '\'') - *obp++ = *ibp++; - break; - } - /* fall through */ -/* END CYGNUS LOCAL chill */ - letter: - ident_length++; - /* Compute step of hash function, to avoid a proc call on every token */ - hash = HASHSTEP (hash, c); - break; - - case '\n': - if (ip->fname == 0 && *ibp == '-') { - /* Newline - inhibits expansion of preceding token. - If expanding a macro arg, we keep the newline -. - In final output, it is deleted. - We recognize Newline - in macro bodies and macro args. */ - if (! concatenated) { - ident_length = 0; - hash = 0; - } - ibp++; - if (!output_marks) { - obp--; - } else { - /* If expanding a macro arg, keep the newline -. */ - *obp++ = '-'; - } - break; - } - - /* If reprocessing a macro expansion, newline is a special marker. */ - else if (ip->macro != 0) { - /* Newline White is a "funny space" to separate tokens that are - supposed to be separate but without space between. - Here White means any whitespace character. - Newline - marks a recursive macro use that is not - supposed to be expandable. */ - - if (is_space[*ibp]) { - /* Newline Space does not prevent expansion of preceding token - so expand the preceding token and then come back. */ - if (ident_length > 0) - goto specialchar; - - /* If generating final output, newline space makes a space. */ - if (!output_marks) { - obp[-1] = *ibp++; - /* And Newline Newline makes a newline, so count it. */ - if (obp[-1] == '\n') - op->lineno++; - } else { - /* If expanding a macro arg, keep the newline space. - If the arg gets stringified, newline space makes nothing. */ - *obp++ = *ibp++; - } - } else abort (); /* Newline followed by something random? */ - break; - } - - /* If there is a pending identifier, handle it and come back here. */ - if (ident_length > 0) - goto specialchar; - - beg_of_line = ibp; - - /* Update the line counts and output a #line if necessary. */ - ++ip->lineno; - ++op->lineno; - if (ip->lineno != op->lineno) { - op->bufp = obp; - output_line_directive (ip, op, 1, same_file); - check_expand (op, limit - ibp); - obp = op->bufp; - } - break; - - /* Come here either after (1) a null character that is part of the input - or (2) at the end of the input, because there is a null there. */ - case 0: - if (ibp <= limit) - /* Our input really contains a null character. */ - goto randomchar; - - limit_reached: - /* At end of a macro-expansion level, pop it and read next level. */ - if (ip->macro != 0) { - obp--; - ibp--; - /* If traditional, and we have an identifier that ends here, - process it now, so we get the right error for recursion. */ - if (traditional && ident_length - && ! is_idchar[*instack[indepth - 1].bufp]) { - redo_char = 1; - goto randomchar; - } - POPMACRO; - RECACHE; - break; - } - - /* If we don't have a pending identifier, - return at end of input. */ - if (ident_length == 0) { - obp--; - ibp--; - op->bufp = obp; - ip->bufp = ibp; - goto ending; - } - - /* If we do have a pending identifier, just consider this null - a special character and arrange to dispatch on it again. - The second time, IDENT_LENGTH will be zero so we will return. */ - - /* Fall through */ - -specialchar: - - /* Handle the case of a character such as /, ', " or null - seen following an identifier. Back over it so that - after the identifier is processed the special char - will be dispatched on again. */ - - ibp--; - obp--; - redo_char = 1; - - default: - -randomchar: - - if (ident_length > 0) { - register HASHNODE *hp; - - /* We have just seen an identifier end. If it's a macro, expand it. - - IDENT_LENGTH is the length of the identifier - and HASH is its hash code. - - The identifier has already been copied to the output, - so if it is a macro we must remove it. - - If REDO_CHAR is 0, the char that terminated the identifier - has been skipped in the output and the input. - OBP-IDENT_LENGTH-1 points to the identifier. - If the identifier is a macro, we must back over the terminator. - - If REDO_CHAR is 1, the terminating char has already been - backed over. OBP-IDENT_LENGTH points to the identifier. */ - - if (!pcp_outfile || pcp_inside_if) { - for (hp = hashtab[MAKE_POS (hash) % HASHSIZE]; hp != NULL; - hp = hp->next) { - - if (hp->length == ident_length) { - int obufp_before_macroname; - int op_lineno_before_macroname; - register int i = ident_length; - register U_CHAR *p = hp->name; - register U_CHAR *q = obp - i; - int disabled; - - if (! redo_char) - q--; - - do { /* All this to avoid a strncmp () */ - if (*p++ != *q++) - goto hashcollision; - } while (--i); - - /* We found a use of a macro name. - see if the context shows it is a macro call. */ - - /* Back up over terminating character if not already done. */ - if (! redo_char) { - ibp--; - obp--; - } - - /* Save this as a displacement from the beginning of the output - buffer. We can not save this as a position in the output - buffer, because it may get realloc'ed by RECACHE. */ - obufp_before_macroname = (obp - op->buf) - ident_length; - op_lineno_before_macroname = op->lineno; - - if (hp->type == T_PCSTRING) { - pcstring_used (hp); /* Mark the definition of this key - as needed, ensuring that it - will be output. */ - break; /* Exit loop, since the key cannot have a - definition any longer. */ - } - - /* Record whether the macro is disabled. */ - disabled = hp->type == T_DISABLED; - - /* This looks like a macro ref, but if the macro was disabled, - just copy its name and put in a marker if requested. */ - - if (disabled) { -#if 0 - /* This error check caught useful cases such as - #define foo(x,y) bar (x (y,0), y) - foo (foo, baz) */ - if (traditional) - error ("recursive use of macro `%s'", hp->name); -#endif - - if (output_marks) { - check_expand (op, limit - ibp + 2); - *obp++ = '\n'; - *obp++ = '-'; - } - break; - } - - /* If macro wants an arglist, verify that a '(' follows. - first skip all whitespace, copying it to the output - after the macro name. Then, if there is no '(', - decide this is not a macro call and leave things that way. */ - if ((hp->type == T_MACRO || hp->type == T_DISABLED) - && hp->value.defn->nargs >= 0) - { - U_CHAR *old_ibp = ibp; - U_CHAR *old_obp = obp; - int old_iln = ip->lineno; - int old_oln = op->lineno; - - while (1) { - /* Scan forward over whitespace, copying it to the output. */ - if (ibp == limit && ip->macro != 0) { - POPMACRO; - RECACHE; - old_ibp = ibp; - old_obp = obp; - old_iln = ip->lineno; - old_oln = op->lineno; - } - else if (is_space[*ibp]) { - *obp++ = *ibp++; - if (ibp[-1] == '\n') { - if (ip->macro == 0) { - /* Newline in a file. Count it. */ - ++ip->lineno; - ++op->lineno; - } else if (!output_marks) { - /* A newline mark, and we don't want marks - in the output. If it is newline-hyphen, - discard it entirely. Otherwise, it is - newline-whitechar, so keep the whitechar. */ - obp--; - if (*ibp == '-') - ibp++; - else { - if (*ibp == '\n') - ++op->lineno; - *obp++ = *ibp++; - } - } else { - /* A newline mark; copy both chars to the output. */ - *obp++ = *ibp++; - } - } - } - else if (ip->macro) - break; - else if (*ibp == '/') { - /* If a comment, copy it unchanged or discard it. */ - if (ibp[1] == '\\' && ibp[2] == '\n') - newline_fix (ibp + 1); - if (ibp[1] == '*') { - if (put_out_comments) { - *obp++ = '/'; - *obp++ = '*'; - } else if (! traditional) { - *obp++ = ' '; - } - for (ibp += 2; ibp < limit; ibp++) { - /* We need not worry about newline-marks, - since they are never found in comments. */ - if (ibp[0] == '*') { - if (ibp[1] == '\\' && ibp[2] == '\n') - newline_fix (ibp + 1); - if (ibp[1] == '/') { - ibp += 2; - if (put_out_comments) { - *obp++ = '*'; - *obp++ = '/'; - } - break; - } - } - else if (*ibp == '\n') { - /* Newline in a file. Count it. */ - ++ip->lineno; - ++op->lineno; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (ibp, limit - ibp); - if (length > 1) - { - if (put_out_comments) - { - bcopy (ibp, obp, length - 1); - obp += length - 1; - } - ibp += (length - 1); - } - } -#endif - } - if (put_out_comments) - *obp++ = *ibp; - } - } else if (ibp[1] == '/' && cplusplus_comments) { - if (put_out_comments) { - *obp++ = '/'; - *obp++ = '/'; - } else if (! traditional) { - *obp++ = ' '; - } - for (ibp += 2; ; ibp++) - { - if (*ibp == '\n') - break; - if (*ibp == '\\' && ibp[1] == '\n') - { - if (put_out_comments) - *obp++ = *ibp++; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (ibp, limit - ibp); - if (length > 1) - { - if (put_out_comments) - { - bcopy (ibp, obp, length - 1); - obp += length - 1; - } - ibp += (length - 1); - } - } -#endif - } - if (put_out_comments) - *obp++ = *ibp; - } - } else - break; - } - else if (ibp[0] == '\\' && ibp[1] == '\n') { - ibp += 2; - ++ip->lineno; - } - else break; - } - if (*ibp != '(') { - /* It isn't a macro call. - Put back the space that we just skipped. */ - ibp = old_ibp; - obp = old_obp; - ip->lineno = old_iln; - op->lineno = old_oln; - /* Exit the for loop. */ - break; - } - } - - /* This is now known to be a macro call. - Discard the macro name from the output, - along with any following whitespace just copied, - but preserve newlines if not outputting marks since this - is more likely to do the right thing with line numbers. */ - obp = op->buf + obufp_before_macroname; - if (output_marks) - op->lineno = op_lineno_before_macroname; - else { - int newlines = op->lineno - op_lineno_before_macroname; - while (0 < newlines--) - *obp++ = '\n'; - } - - /* Prevent accidental token-pasting with a character - before the macro call. */ - if (!traditional && obp != op->buf) { - switch (obp[-1]) { - case '!': case '%': case '&': case '*': - case '+': case '-': case '.': case '/': - case ':': case '<': case '=': case '>': - case '^': case '|': - /* If we are expanding a macro arg, make a newline marker - to separate the tokens. If we are making real output, - a plain space will do. */ - if (output_marks) - *obp++ = '\n'; - *obp++ = ' '; - } - } - - /* Expand the macro, reading arguments as needed, - and push the expansion on the input stack. */ - ip->bufp = ibp; - op->bufp = obp; - macroexpand (hp, op); - - /* Reexamine input stack, since macroexpand has pushed - a new level on it. */ - obp = op->bufp; - RECACHE; - break; - } -hashcollision: - ; - } /* End hash-table-search loop */ - } - ident_length = hash = 0; /* Stop collecting identifier */ - redo_char = 0; - concatenated = 0; - } /* End if (ident_length > 0) */ - } /* End switch */ - } /* End per-char loop */ - - /* Come here to return -- but first give an error message - if there was an unterminated successful conditional. */ - ending: - if (if_stack != ip->if_stack) - { - char *str; - - switch (if_stack->type) - { - case T_IF: - str = "if"; - break; - case T_IFDEF: - str = "ifdef"; - break; - case T_IFNDEF: - str = "ifndef"; - break; - case T_ELSE: - str = "else"; - break; - case T_ELIF: - str = "elif"; - break; - default: - abort (); - } - - error_with_line (line_for_error (if_stack->lineno), - "unterminated `#%s' conditional", str); - } - if_stack = ip->if_stack; -} - -/* - * Rescan a string into a temporary buffer and return the result - * as a FILE_BUF. Note this function returns a struct, not a pointer. - * - * OUTPUT_MARKS nonzero means keep Newline markers found in the input - * and insert such markers when appropriate. See `rescan' for details. - * OUTPUT_MARKS is 1 for macroexpanding a macro argument separately - * before substitution; it is 0 for other uses. - */ -static FILE_BUF -expand_to_temp_buffer (buf, limit, output_marks, assertions) - U_CHAR *buf, *limit; - int output_marks, assertions; -{ - register FILE_BUF *ip; - FILE_BUF obuf; - int length = limit - buf; - U_CHAR *buf1; - int odepth = indepth; - int save_assertions_flag = assertions_flag; - - assertions_flag = assertions; - - if (length < 0) - abort (); - - /* Set up the input on the input stack. */ - - buf1 = (U_CHAR *) alloca (length + 1); - { - register U_CHAR *p1 = buf; - register U_CHAR *p2 = buf1; - - while (p1 != limit) - *p2++ = *p1++; - } - buf1[length] = 0; - - /* Set up to receive the output. */ - - obuf.length = length * 2 + 100; /* Usually enough. Why be stingy? */ - obuf.bufp = obuf.buf = (U_CHAR *) xmalloc (obuf.length); - obuf.nominal_fname = 0; - obuf.inc = 0; - obuf.dir = 0; - obuf.fname = 0; - obuf.macro = 0; - obuf.if_stack = 0; - obuf.free_ptr = 0; - obuf.system_header_p = 0; - - CHECK_DEPTH ({return obuf;}); - - ++indepth; - - ip = &instack[indepth]; - ip->fname = 0; - ip->nominal_fname = 0; - ip->nominal_fname_len = 0; - ip->inc = 0; - ip->system_header_p = 0; - ip->macro = 0; - ip->free_ptr = 0; - ip->length = length; - ip->buf = ip->bufp = buf1; - ip->if_stack = if_stack; - - ip->lineno = obuf.lineno = 1; - - /* Scan the input, create the output. */ - rescan (&obuf, output_marks); - - /* Pop input stack to original state. */ - --indepth; - - if (indepth != odepth) - abort (); - - /* Record the output. */ - obuf.length = obuf.bufp - obuf.buf; - - assertions_flag = save_assertions_flag; - return obuf; -} - -/* - * Process a # directive. Expects IP->bufp to point after the '#', as in - * `#define foo bar'. Passes to the directive handler - * (do_define, do_include, etc.): the addresses of the 1st and - * last chars of the directive (starting immediately after the # - * keyword), plus op and the keyword table pointer. If the directive - * contains comments it is copied into a temporary buffer sans comments - * and the temporary buffer is passed to the directive handler instead. - * Likewise for backslash-newlines. - * - * Returns nonzero if this was a known # directive. - * Otherwise, returns zero, without advancing the input pointer. - */ - -static int -handle_directive (ip, op) - FILE_BUF *ip, *op; -{ - register U_CHAR *bp, *cp; - register struct directive *kt; - register int ident_length; - U_CHAR *resume_p; - - /* Nonzero means we must copy the entire directive - to get rid of comments or backslash-newlines. */ - int copy_directive = 0; - - U_CHAR *ident, *after_ident; - - bp = ip->bufp; - - /* Record where the directive started. do_xifdef needs this. */ - directive_start = bp - 1; - - ignore_escape_flag = 1; - - /* Skip whitespace and \-newline. */ - while (1) { - if (is_hor_space[*bp]) { - if (*bp != ' ' && *bp != '\t' && pedantic) - pedwarn ("%s in preprocessing directive", char_name[*bp]); - bp++; - } else if (*bp == '/') { - if (bp[1] == '\\' && bp[2] == '\n') - newline_fix (bp + 1); - if (! (bp[1] == '*' || (cplusplus_comments && bp[1] == '/'))) - break; - ip->bufp = bp + 2; - skip_to_end_of_comment (ip, &ip->lineno, 0); - bp = ip->bufp; - } else if (*bp == '\\' && bp[1] == '\n') { - bp += 2; ip->lineno++; - } else break; - } - - /* Now find end of directive name. - If we encounter a backslash-newline, exchange it with any following - symbol-constituents so that we end up with a contiguous name. */ - - cp = bp; - while (1) { - if (is_idchar[*cp]) - cp++; - else { - if (*cp == '\\' && cp[1] == '\n') - name_newline_fix (cp); - if (is_idchar[*cp]) - cp++; - else break; - } - } - ident_length = cp - bp; - ident = bp; - after_ident = cp; - - /* A line of just `#' becomes blank. */ - - if (ident_length == 0 && *after_ident == '\n') { - ip->bufp = after_ident; - return 1; - } - - if (ident_length == 0 || !is_idstart[*ident]) { - U_CHAR *p = ident; - while (is_idchar[*p]) { - if (*p < '0' || *p > '9') - break; - p++; - } - /* Handle # followed by a line number. */ - if (p != ident && !is_idchar[*p]) { - static struct directive line_directive_table[] = { - { 4, do_line, "line", T_LINE}, - }; - if (pedantic) - pedwarn ("`#' followed by integer"); - after_ident = ident; - kt = line_directive_table; - ignore_escape_flag = 0; - goto old_linenum; - } - - /* Avoid error for `###' and similar cases unless -pedantic. */ - if (p == ident) { - while (*p == '#' || is_hor_space[*p]) p++; - if (*p == '\n') { - if (pedantic && !lang_asm) - warning ("invalid preprocessing directive"); - return 0; - } - } - - if (!lang_asm) - error ("invalid preprocessing directive name"); - - return 0; - } - - /* - * Decode the keyword and call the appropriate expansion - * routine, after moving the input pointer up to the next line. - */ - for (kt = directive_table; kt->length > 0; kt++) { - if (kt->length == ident_length && !bcmp (kt->name, ident, ident_length)) { - register U_CHAR *buf; - register U_CHAR *limit; - int unterminated; - int junk; - int *already_output; - - /* Nonzero means do not delete comments within the directive. - #define needs this when -traditional. */ - int keep_comments; - - old_linenum: - - limit = ip->buf + ip->length; - unterminated = 0; - already_output = 0; - keep_comments = traditional && kt->type == T_DEFINE; - /* #import is defined only in Objective C, or when on the NeXT. */ - if (kt->type == T_IMPORT - && !(objc || lookup ((U_CHAR *) "__NeXT__", -1, -1))) - break; - - /* Find the end of this directive (first newline not backslashed - and not in a string or comment). - Set COPY_DIRECTIVE if the directive must be copied - (it contains a backslash-newline or a comment). */ - - buf = bp = after_ident; - while (bp < limit) { - register U_CHAR c = *bp++; - switch (c) { - case '\\': - if (bp < limit) { - if (*bp == '\n') { - ip->lineno++; - copy_directive = 1; - bp++; - } else if (traditional) - bp++; - } - break; - - case '"': - /* "..." is special for #include. */ - if (IS_INCLUDE_DIRECTIVE_TYPE (kt->type)) { - while (bp < limit && *bp != '\n') { - if (*bp == '"') { - bp++; - break; - } - if (*bp == '\\' && bp[1] == '\n') { - ip->lineno++; - copy_directive = 1; - bp++; - } - bp++; - } - break; - } - /* Fall through. */ - case '\'': - bp = skip_quoted_string (bp - 1, limit, ip->lineno, &ip->lineno, ©_directive, &unterminated); - /* Don't bother calling the directive if we already got an error - message due to unterminated string. Skip everything and pretend - we called the directive. */ - if (unterminated) { - if (traditional) { - /* Traditional preprocessing permits unterminated strings. */ - ip->bufp = bp; - goto endloop1; - } - ip->bufp = bp; - return 1; - } - break; - - /* <...> is special for #include. */ - case '<': - if (! IS_INCLUDE_DIRECTIVE_TYPE (kt->type)) - break; - while (bp < limit && *bp != '>' && *bp != '\n') { - if (*bp == '\\' && bp[1] == '\n') { - ip->lineno++; - copy_directive = 1; - bp++; - } - bp++; - } - break; - - case '/': - if (*bp == '\\' && bp[1] == '\n') - newline_fix (bp); - if (*bp == '*' - || (cplusplus_comments && *bp == '/')) { - U_CHAR *obp = bp - 1; - ip->bufp = bp + 1; - skip_to_end_of_comment (ip, &ip->lineno, 0); - bp = ip->bufp; - /* No need to copy the directive because of a comment at the end; - just don't include the comment in the directive. */ - if (!put_out_comments) { - U_CHAR *p; - for (p = bp; *p == ' ' || *p == '\t'; p++) - continue; - if (*p == '\n') { - bp = obp; - goto endloop1; - } - } - /* Don't remove the comments if -traditional. */ - if (! keep_comments) - copy_directive++; - } - break; - - case '\f': - case '\r': - case '\v': - if (pedantic) - pedwarn ("%s in preprocessing directive", char_name[c]); - break; - - case '\n': - --bp; /* Point to the newline */ - ip->bufp = bp; - goto endloop1; - } - } - ip->bufp = bp; - - endloop1: - resume_p = ip->bufp; - /* BP is the end of the directive. - RESUME_P is the next interesting data after the directive. - A comment may come between. */ - - /* If a directive should be copied through, and -C was given, - pass it through before removing comments. */ - if (!no_output && put_out_comments - && (kt->type == T_DEFINE ? dump_macros == dump_definitions - : IS_INCLUDE_DIRECTIVE_TYPE (kt->type) ? dump_includes - : kt->type == T_PRAGMA)) { - int len; - - /* Output directive name. */ - check_expand (op, kt->length + 2); - /* Make sure # is at the start of a line */ - if (op->bufp > op->buf && op->bufp[-1] != '\n') { - op->lineno++; - *op->bufp++ = '\n'; - } - *op->bufp++ = '#'; - bcopy (kt->name, op->bufp, kt->length); - op->bufp += kt->length; - - /* Output arguments. */ - len = (bp - buf); - check_expand (op, len); - bcopy (buf, (char *) op->bufp, len); - op->bufp += len; - /* Take account of any (escaped) newlines just output. */ - while (--len >= 0) - if (buf[len] == '\n') - op->lineno++; - - already_output = &junk; - } /* Don't we need a newline or #line? */ - - if (copy_directive) { - register U_CHAR *xp = buf; - /* Need to copy entire directive into temp buffer before dispatching */ - - cp = (U_CHAR *) alloca (bp - buf + 5); /* room for directive plus - some slop */ - buf = cp; - - /* Copy to the new buffer, deleting comments - and backslash-newlines (and whitespace surrounding the latter). */ - - while (xp < bp) { - register U_CHAR c = *xp++; - *cp++ = c; - - switch (c) { - case '\n': - abort (); /* A bare newline should never part of the line. */ - break; - - /* <...> is special for #include. */ - case '<': - if (! IS_INCLUDE_DIRECTIVE_TYPE (kt->type)) - break; - while (xp < bp && c != '>') { - c = *xp++; - if (c == '\\' && xp < bp && *xp == '\n') - xp++; - else - *cp++ = c; - } - break; - - case '\\': - if (*xp == '\n') { - xp++; - cp--; - if (cp != buf && is_hor_space[cp[-1]]) { - while (cp - 1 != buf && is_hor_space[cp[-2]]) - cp--; - SKIP_WHITE_SPACE (xp); - } else if (is_hor_space[*xp]) { - *cp++ = *xp++; - SKIP_WHITE_SPACE (xp); - } - } else if (traditional && xp < bp) { - *cp++ = *xp++; - } - break; - - case '\'': - case '\"': - { - register U_CHAR *bp1 - = skip_quoted_string (xp - 1, bp, ip->lineno, - NULL_PTR, NULL_PTR, NULL_PTR); - while (xp != bp1) - *cp++ = *xp++; - } - break; - - case '/': - if (*xp == '*' - || (cplusplus_comments && *xp == '/')) { - ip->bufp = xp + 1; - /* If we already copied the directive through, - already_output != 0 prevents outputting comment now. */ - skip_to_end_of_comment (ip, already_output, 0); - if (keep_comments) - while (xp != ip->bufp) - *cp++ = *xp++; - /* Delete or replace the slash. */ - else if (traditional) - cp--; - else - cp[-1] = ' '; - xp = ip->bufp; - } - } - } - - /* Null-terminate the copy. */ - - *cp = 0; - } else - cp = bp; - - ip->bufp = resume_p; - - /* Some directives should be written out for cc1 to process, - just as if they were not defined. And sometimes we're copying - directives through. */ - - if (!no_output && already_output == 0 - && (kt->type == T_DEFINE ? (int) dump_names <= (int) dump_macros - : IS_INCLUDE_DIRECTIVE_TYPE (kt->type) ? dump_includes - : kt->type == T_PRAGMA)) { - int len; - - /* Output directive name. */ - check_expand (op, kt->length + 1); - *op->bufp++ = '#'; - bcopy (kt->name, (char *) op->bufp, kt->length); - op->bufp += kt->length; - - if (kt->type == T_DEFINE && dump_macros == dump_names) { - /* Output `#define name' only. */ - U_CHAR *xp = buf; - U_CHAR *yp; - SKIP_WHITE_SPACE (xp); - yp = xp; - while (is_idchar[*xp]) xp++; - len = (xp - yp); - check_expand (op, len + 1); - *op->bufp++ = ' '; - bcopy (yp, (char *) op->bufp, len); - } else { - /* Output entire directive. */ - len = (cp - buf); - check_expand (op, len); - bcopy (buf, (char *) op->bufp, len); - } - op->bufp += len; - } /* Don't we need a newline or #line? */ - - /* Call the appropriate directive handler. buf now points to - either the appropriate place in the input buffer, or to - the temp buffer if it was necessary to make one. cp - points to the first char after the contents of the (possibly - copied) directive, in either case. */ - (*kt->func) (buf, cp, op, kt); - check_expand (op, ip->length - (ip->bufp - ip->buf)); - - return 1; - } - } - - /* It is deliberate that we don't warn about undefined directives. - That is the responsibility of cc1. */ - return 0; -} - -static struct tm * -timestamp () -{ - static struct tm *timebuf; - if (!timebuf) { - time_t t = time ((time_t *) 0); - timebuf = localtime (&t); - } - return timebuf; -} - -static char *monthnames[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", - }; - -/* - * expand things like __FILE__. Place the expansion into the output - * buffer *without* rescanning. - */ - -static void -special_symbol (hp, op) - HASHNODE *hp; - FILE_BUF *op; -{ - char *buf; - int i, len; - int true_indepth; - FILE_BUF *ip = NULL; - struct tm *timebuf; - - int paren = 0; /* For special `defined' keyword */ - - if (pcp_outfile && pcp_inside_if - && hp->type != T_SPEC_DEFINED && hp->type != T_CONST) - error ("Predefined macro `%s' used inside `#if' during precompilation", - hp->name); - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - if (ip == NULL) { - error ("cccp error: not in any file?!"); - return; /* the show must go on */ - } - - switch (hp->type) { - case T_FILE: - case T_BASE_FILE: - { - FILE_BUF *p = hp->type == T_FILE ? ip : &instack[0]; - char *string = p->nominal_fname; - - if (string) - { - size_t string_len = p->nominal_fname_len; - buf = (char *) alloca (3 + 4 * string_len); - quote_string (buf, string, string_len); - } - else - buf = "\"\""; - - break; - } - - case T_INCLUDE_LEVEL: - true_indepth = 0; - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) - true_indepth++; - - buf = (char *) alloca (8); /* Eight bytes ought to be more than enough */ - sprintf (buf, "%d", true_indepth - 1); - break; - - case T_VERSION: - buf = (char *) alloca (3 + strlen (version_string)); - sprintf (buf, "\"%s\"", version_string); - break; - -#ifndef NO_BUILTIN_SIZE_TYPE - case T_SIZE_TYPE: - buf = SIZE_TYPE; - break; -#endif - -#ifndef NO_BUILTIN_PTRDIFF_TYPE - case T_PTRDIFF_TYPE: - buf = PTRDIFF_TYPE; - break; -#endif - -/* CYGNUS LOCAL vmakarov */ -#ifndef NO_BUILTIN_WCHAR_TYPE -/* END CYGNUS LOCAL */ - case T_WCHAR_TYPE: - buf = wchar_type; - break; -/* CYGNUS LOCAL vmakarov */ -#endif -/* END CYGNUS LOCAL */ - - case T_USER_LABEL_PREFIX_TYPE: - buf = user_label_prefix; - break; - - case T_REGISTER_PREFIX_TYPE: - buf = REGISTER_PREFIX; - break; - - case T_IMMEDIATE_PREFIX_TYPE: - buf = IMMEDIATE_PREFIX; - break; - - case T_CONST: - buf = hp->value.cpval; -#ifdef STDC_0_IN_SYSTEM_HEADERS - if (ip->system_header_p - && hp->length == 8 && bcmp (hp->name, "__STDC__", 8) == 0 - && !lookup ((U_CHAR *) "__STRICT_ANSI__", -1, -1)) - buf = "0"; -#endif - if (pcp_inside_if && pcp_outfile) - /* Output a precondition for this macro use */ - fprintf (pcp_outfile, "#define %s %s\n", hp->name, buf); - break; - - case T_SPECLINE: - buf = (char *) alloca (10); - sprintf (buf, "%d", ip->lineno); - break; - - case T_DATE: - case T_TIME: - buf = (char *) alloca (20); - timebuf = timestamp (); - if (hp->type == T_DATE) - sprintf (buf, "\"%s %2d %4d\"", monthnames[timebuf->tm_mon], - timebuf->tm_mday, timebuf->tm_year + 1900); - else - sprintf (buf, "\"%02d:%02d:%02d\"", timebuf->tm_hour, timebuf->tm_min, - timebuf->tm_sec); - break; - - case T_SPEC_DEFINED: - buf = " 0 "; /* Assume symbol is not defined */ - ip = &instack[indepth]; - SKIP_WHITE_SPACE (ip->bufp); - if (*ip->bufp == '(') { - paren++; - ip->bufp++; /* Skip over the paren */ - SKIP_WHITE_SPACE (ip->bufp); - } - - if (!is_idstart[*ip->bufp]) - goto oops; - if (ip->bufp[0] == 'L' && (ip->bufp[1] == '\'' || ip->bufp[1] == '"')) - goto oops; - if ((hp = lookup (ip->bufp, -1, -1))) { - if (pcp_outfile && pcp_inside_if - && (hp->type == T_CONST - || (hp->type == T_MACRO && hp->value.defn->predefined))) - /* Output a precondition for this macro use. */ - fprintf (pcp_outfile, "#define %s\n", hp->name); - buf = " 1 "; - } - else - if (pcp_outfile && pcp_inside_if) { - /* Output a precondition for this macro use */ - U_CHAR *cp = ip->bufp; - fprintf (pcp_outfile, "#undef "); - while (is_idchar[*cp]) /* Ick! */ - fputc (*cp++, pcp_outfile); - putc ('\n', pcp_outfile); - } - while (is_idchar[*ip->bufp]) - ++ip->bufp; - SKIP_WHITE_SPACE (ip->bufp); - if (paren) { - if (*ip->bufp != ')') - goto oops; - ++ip->bufp; - } - break; - -oops: - - error ("`defined' without an identifier"); - break; - - default: - error ("cccp error: invalid special hash type"); /* time for gdb */ - abort (); - } - len = strlen (buf); - check_expand (op, len); - bcopy (buf, (char *) op->bufp, len); - op->bufp += len; - - return; -} - - -/* Routines to handle #directives */ - -/* Handle #include and #import. - This function expects to see "fname" or <fname> on the input. */ - -static int -do_include (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword; -{ - U_CHAR *importing = keyword->type == T_IMPORT ? (U_CHAR *) "" : (U_CHAR *) 0; - int skip_dirs = (keyword->type == T_INCLUDE_NEXT); - static int import_warning = 0; - char *fname; /* Dynamically allocated fname buffer */ - char *pcftry; - char *pcfname; - char *fbeg, *fend; /* Beginning and end of fname */ - U_CHAR *fin; - - struct file_name_list *search_start = include; /* Chain of dirs to search */ - struct file_name_list *dsp; /* First in chain, if #include "..." */ - struct file_name_list *searchptr = 0; - size_t flen; - - int f = -3; /* file number */ - struct include_file *inc = 0; - - int retried = 0; /* Have already tried macro - expanding the include line*/ - int angle_brackets = 0; /* 0 for "...", 1 for <...> */ - int pcf = -1; - char *pcfbuf; - char *pcfbuflimit; - int pcfnum; - - if (pedantic && !instack[indepth].system_header_p) - { - if (importing) - pedwarn ("ANSI C does not allow `#import'"); - if (skip_dirs) - pedwarn ("ANSI C does not allow `#include_next'"); - } - - if (importing && warn_import && !inhibit_warnings - && !instack[indepth].system_header_p && !import_warning) { - import_warning = 1; - warning ("using `#import' is not recommended"); - fprintf (stderr, "The fact that a certain header file need not be processed more than once\n"); - fprintf (stderr, "should be indicated in the header file, not where it is used.\n"); - fprintf (stderr, "The best way to do this is with a conditional of this form:\n\n"); - fprintf (stderr, " #ifndef _FOO_H_INCLUDED\n"); - fprintf (stderr, " #define _FOO_H_INCLUDED\n"); - fprintf (stderr, " ... <real contents of file> ...\n"); - fprintf (stderr, " #endif /* Not _FOO_H_INCLUDED */\n\n"); - fprintf (stderr, "Then users can use `#include' any number of times.\n"); - fprintf (stderr, "GNU C automatically avoids processing the file more than once\n"); - fprintf (stderr, "when it is equipped with such a conditional.\n"); - } - -get_filename: - - fin = buf; - SKIP_WHITE_SPACE (fin); - /* Discard trailing whitespace so we can easily see - if we have parsed all the significant chars we were given. */ - while (limit != fin && is_hor_space[limit[-1]]) limit--; - fbeg = fend = (char *) alloca (limit - fin); - - switch (*fin++) { - case '\"': - { - FILE_BUF *fp; - /* Copy the operand text, concatenating the strings. */ - { - for (;;) { - for (;;) { - if (fin == limit) - goto invalid_include_file_name; - *fend = *fin++; - if (*fend == '"') - break; - fend++; - } - if (fin == limit) - break; - /* If not at the end, there had better be another string. */ - /* Skip just horiz space, and don't go past limit. */ - while (fin != limit && is_hor_space[*fin]) fin++; - if (fin != limit && *fin == '\"') - fin++; - else - goto fail; - } - } - - /* We have "filename". Figure out directory this source - file is coming from and put it on the front of the list. */ - - /* If -I- was specified, don't search current dir, only spec'd ones. */ - if (ignore_srcdir) break; - - for (fp = &instack[indepth]; fp >= instack; fp--) - { - int n; - char *nam; - - if ((nam = fp->nominal_fname) != NULL) { - /* Found a named file. Figure out dir of the file, - and put it in front of the search list. */ - dsp = ((struct file_name_list *) - alloca (sizeof (struct file_name_list) - + fp->nominal_fname_len)); - strcpy (dsp->fname, nam); - simplify_filename (dsp->fname); - nam = base_name (dsp->fname); - *nam = 0; - /* But for efficiency's sake, do not insert the dir - if it matches the search list's first dir. */ - dsp->next = search_start; - if (!search_start || strcmp (dsp->fname, search_start->fname)) { - search_start = dsp; - n = nam - dsp->fname; - if (n + INCLUDE_LEN_FUDGE > max_include_len) - max_include_len = n + INCLUDE_LEN_FUDGE; - } - dsp[0].got_name_map = 0; - break; - } - } - break; - } - - case '<': - while (fin != limit && *fin != '>') - *fend++ = *fin++; - if (*fin == '>' && fin + 1 == limit) { - angle_brackets = 1; - /* If -I-, start with the first -I dir after the -I-. */ - search_start = first_bracket_include; - break; - } - goto fail; - - default: - - fail: - if (! retried) { - /* Expand buffer and then remove any newline markers. - We can't just tell expand_to_temp_buffer to omit the markers, - since it would put extra spaces in include file names. */ - FILE_BUF trybuf; - U_CHAR *src; - int errors_before_expansion = errors; - trybuf = expand_to_temp_buffer (buf, limit, 1, 0); - if (errors != errors_before_expansion) { - free (trybuf.buf); - goto invalid_include_file_name; - } - src = trybuf.buf; - buf = (U_CHAR *) alloca (trybuf.bufp - trybuf.buf + 1); - limit = buf; - while (src != trybuf.bufp) { - switch ((*limit++ = *src++)) { - case '\n': - limit--; - src++; - break; - - case '\'': - case '\"': - { - U_CHAR *src1 = skip_quoted_string (src - 1, trybuf.bufp, 0, - NULL_PTR, NULL_PTR, NULL_PTR); - while (src != src1) - *limit++ = *src++; - } - break; - } - } - *limit = 0; - free (trybuf.buf); - retried = 1; - goto get_filename; - } - - invalid_include_file_name: - error ("`#%s' expects \"FILENAME\" or <FILENAME>", keyword->name); - return 0; - } - - /* For #include_next, skip in the search path - past the dir in which the containing file was found. */ - if (skip_dirs) { - FILE_BUF *fp; - for (fp = &instack[indepth]; fp >= instack; fp--) - if (fp->fname != NULL) { - /* fp->dir is null if the containing file was specified - with an absolute file name. In that case, don't skip anything. */ - if (fp->dir) - search_start = fp->dir->next; - break; - } - } - - *fend = 0; - flen = simplify_filename (fbeg); - - if (flen == 0) - { - error ("empty file name in `#%s'", keyword->name); - return 0; - } - - /* Allocate this permanently, because it gets stored in the definitions - of macros. */ - fname = xmalloc (max_include_len + flen + 1); - /* + 1 above for terminating null. */ - - system_include_depth += angle_brackets; - - /* If specified file name is absolute, just open it. */ - - if (absolute_filename (fbeg)) { - strcpy (fname, fbeg); - f = open_include_file (fname, NULL_PTR, importing, &inc); - } else { - - struct bypass_dir { - struct bypass_dir *next; - char *fname; - struct file_name_list *searchptr; - } **bypass_slot = 0; - - /* Search directory path, trying to open the file. - Copy each filename tried into FNAME. */ - - for (searchptr = search_start; searchptr; searchptr = searchptr->next) { - - if (searchptr == first_bracket_include) { - /* Go to bypass directory if we know we've seen this file before. */ - static struct bypass_dir *bypass_hashtab[INCLUDE_HASHSIZE]; - struct bypass_dir *p; - bypass_slot = &bypass_hashtab[hashf ((U_CHAR *) fbeg, flen, - INCLUDE_HASHSIZE)]; - for (p = *bypass_slot; p; p = p->next) - if (!strcmp (fbeg, p->fname)) { - searchptr = p->searchptr; - bypass_slot = 0; - break; - } - } - - strcpy (fname, searchptr->fname); - strcat (fname, fbeg); - f = open_include_file (fname, searchptr, importing, &inc); - if (f != -1) { - if (bypass_slot && searchptr != first_bracket_include) { - /* This is the first time we found this include file, - and we found it after first_bracket_include. - Record its location so that we can bypass to here next time. */ - struct bypass_dir *p - = (struct bypass_dir *) xmalloc (sizeof (struct bypass_dir)); - p->next = *bypass_slot; - p->fname = fname + strlen (searchptr->fname); - p->searchptr = searchptr; - *bypass_slot = p; - } - break; - } - if (errno != ENOENT && errno != ENOTDIR) - break; - } - } - - - if (f < 0) { - - if (f == -2) { - /* The file was already included. */ - - /* If generating dependencies and -MG was specified, we assume missing - files are leaf files, living in the same directory as the source file - or other similar place; these missing files may be generated from - other files and may not exist yet (eg: y.tab.h). */ - } else if (print_deps_missing_files - && (system_include_depth != 0) < print_deps) - { - /* If it was requested as a system header file, - then assume it belongs in the first place to look for such. */ - if (angle_brackets) - { - if (search_start) { - char *p = (char *) alloca (strlen (search_start->fname) - + strlen (fbeg) + 1); - strcpy (p, search_start->fname); - strcat (p, fbeg); - deps_output (p, ' '); - } - } - else - { - /* Otherwise, omit the directory, as if the file existed - in the directory with the source. */ - deps_output (fbeg, ' '); - } - } - /* If -M was specified, and this header file won't be added to the - dependency list, then don't count this as an error, because we can - still produce correct output. Otherwise, we can't produce correct - output, because there may be dependencies we need inside the missing - file, and we don't know what directory this missing file exists in. */ - else if (0 < print_deps && print_deps <= (system_include_depth != 0)) - warning ("No include path in which to find %s", fbeg); - else if (f != -3) - error_from_errno (fbeg); - else - error ("No include path in which to find %s", fbeg); - - } else { - - /* Actually process the file. */ - - pcftry = (char *) alloca (strlen (fname) + 30); - pcfbuf = 0; - pcfnum = 0; - - if (!no_precomp) - { - do { - sprintf (pcftry, "%s%d", fname, pcfnum++); - - pcf = open (pcftry, O_RDONLY, 0666); - if (pcf != -1) - { - struct stat s; - - if (fstat (pcf, &s) != 0) - pfatal_with_name (pcftry); - if (! INO_T_EQ (inc->st.st_ino, s.st_ino) - || inc->st.st_dev != s.st_dev) - { - pcfbuf = check_precompiled (pcf, &s, fname, &pcfbuflimit); - /* Don't need it any more. */ - close (pcf); - } - else - { - /* Don't need it at all. */ - close (pcf); - break; - } - } - } while (pcf != -1 && !pcfbuf); - } - - /* Actually process the file */ - if (pcfbuf) { - pcfname = xmalloc (strlen (pcftry) + 1); - strcpy (pcfname, pcftry); - pcfinclude ((U_CHAR *) pcfbuf, (U_CHAR *) fname, op); - } - else - finclude (f, inc, op, is_system_include (fname), searchptr); - } - - system_include_depth -= angle_brackets; - - return 0; -} - -/* Return nonzero if the given FILENAME is an absolute pathname which - designates a file within one of the known "system" include file - directories. We assume here that if the given FILENAME looks like - it is the name of a file which resides either directly in a "system" - include file directory, or within any subdirectory thereof, then the - given file must be a "system" include file. This function tells us - if we should suppress pedantic errors/warnings for the given FILENAME. - - The value is 2 if the file is a C-language system header file - for which C++ should (on most systems) assume `extern "C"'. */ - -static int -is_system_include (filename) - register char *filename; -{ - struct file_name_list *searchptr; - - for (searchptr = first_system_include; searchptr; - searchptr = searchptr->next) - if (! strncmp (searchptr->fname, filename, strlen (searchptr->fname))) - return searchptr->c_system_include_path + 1; - return 0; -} - -/* Yield the non-directory suffix of a file name. */ - -static char * -base_name (fname) - char *fname; -{ - char *s = fname; - char *p; -#if defined (__MSDOS__) || defined (_WIN32) - if (ISALPHA (s[0]) && s[1] == ':') s += 2; -#endif - if ((p = rindex (s, '/'))) s = p + 1; -#ifdef DIR_SEPARATOR - if ((p = rindex (s, DIR_SEPARATOR))) s = p + 1; -#endif - return s; -} - -/* Yield nonzero if FILENAME is absolute (i.e. not relative). */ - -static int -absolute_filename (filename) - char *filename; -{ -#if defined (__MSDOS__) || (defined (_WIN32) && !defined (__CYGWIN__)) - if (ISALPHA (filename[0]) && filename[1] == ':') filename += 2; -#endif -#if defined (__CYGWIN__) - /* At present, any path that begins with a drive spec is absolute. */ - if (ISALPHA (filename[0]) && filename[1] == ':') return 1; -#endif - if (filename[0] == '/') return 1; -#ifdef DIR_SEPARATOR - if (filename[0] == DIR_SEPARATOR) return 1; -#endif - return 0; -} - -/* Remove unnecessary characters from FILENAME in place, - to avoid unnecessary filename aliasing. - Return the length of the resulting string. - - Do only the simplifications allowed by Posix. - It is OK to miss simplifications on non-Posix hosts, - since this merely leads to suboptimal results. */ - -static size_t -simplify_filename (filename) - char *filename; -{ - register char *from = filename; - register char *to = filename; - char *to0; - - /* Remove redundant initial /s. */ - if (*from == '/') { - *to++ = '/'; - if (*++from == '/') { - if (*++from == '/') { - /* 3 or more initial /s are equivalent to 1 /. */ - while (*++from == '/') - continue; - } else { - /* On some hosts // differs from /; Posix allows this. */ - static int slashslash_vs_slash; - if (slashslash_vs_slash == 0) { - struct stat s1, s2; - slashslash_vs_slash = ((stat ("/", &s1) == 0 && stat ("//", &s2) == 0 - && INO_T_EQ (s1.st_ino, s2.st_ino) - && s1.st_dev == s2.st_dev) - ? 1 : -1); - } - if (slashslash_vs_slash < 0) - *to++ = '/'; - } - } - } - to0 = to; - - for (;;) { - if (from[0] == '.' && from[1] == '/') - from += 2; - else - { - /* Copy this component and trailing /, if any. */ - while ((*to++ = *from++) != '/') { - if (!to[-1]) { - /* Trim . component at end of nonempty name. */ - to -= filename <= to - 3 && to[-3] == '/' && to[-2] == '.'; - - /* Trim unnecessary trailing /s. */ - while (to0 < --to && to[-1] == '/') - continue; - - *to = 0; - return to - filename; - } - } - } - - /* Skip /s after a /. */ - while (*from == '/') - from++; - } -} - -/* The file_name_map structure holds a mapping of file names for a - particular directory. This mapping is read from the file named - FILE_NAME_MAP_FILE in that directory. Such a file can be used to - map filenames on a file system with severe filename restrictions, - such as DOS. The format of the file name map file is just a series - of lines with two tokens on each line. The first token is the name - to map, and the second token is the actual name to use. */ - -struct file_name_map -{ - struct file_name_map *map_next; - char *map_from; - char *map_to; -}; - -#define FILE_NAME_MAP_FILE "header.gcc" - -/* Read a space delimited string of unlimited length from a stdio - file. */ - -static char * -read_filename_string (ch, f) - int ch; - FILE *f; -{ - char *alloc, *set; - int len; - - len = 20; - set = alloc = xmalloc (len + 1); - if (! is_space[ch]) - { - *set++ = ch; - while ((ch = getc (f)) != EOF && ! is_space[ch]) - { - if (set - alloc == len) - { - len *= 2; - alloc = xrealloc (alloc, len + 1); - set = alloc + len / 2; - } - *set++ = ch; - } - } - *set = '\0'; - ungetc (ch, f); - return alloc; -} - -/* Read the file name map file for DIRNAME. - If DIRNAME is empty, read the map file for the working directory; - otherwise DIRNAME must end in '/'. */ - -static struct file_name_map * -read_name_map (dirname) - char *dirname; -{ - /* This structure holds a linked list of file name maps, one per - directory. */ - struct file_name_map_list - { - struct file_name_map_list *map_list_next; - char *map_list_name; - struct file_name_map *map_list_map; - }; - static struct file_name_map_list *map_list; - register struct file_name_map_list *map_list_ptr; - char *name; - FILE *f; - size_t dirlen; - - for (map_list_ptr = map_list; map_list_ptr; - map_list_ptr = map_list_ptr->map_list_next) - if (! strcmp (map_list_ptr->map_list_name, dirname)) - return map_list_ptr->map_list_map; - - map_list_ptr = ((struct file_name_map_list *) - xmalloc (sizeof (struct file_name_map_list))); - map_list_ptr->map_list_name = savestring (dirname); - map_list_ptr->map_list_map = NULL; - - dirlen = strlen (dirname); - name = (char *) alloca (dirlen + strlen (FILE_NAME_MAP_FILE) + 1); - strcpy (name, dirname); - strcat (name, FILE_NAME_MAP_FILE); - f = fopen (name, "r"); - if (!f) - map_list_ptr->map_list_map = NULL; - else - { - int ch; - - while ((ch = getc (f)) != EOF) - { - char *from, *to; - struct file_name_map *ptr; - size_t tolen; - - if (is_space[ch]) - continue; - from = read_filename_string (ch, f); - while ((ch = getc (f)) != EOF && is_hor_space[ch]) - ; - to = read_filename_string (ch, f); - - simplify_filename (from); - tolen = simplify_filename (to); - - ptr = ((struct file_name_map *) - xmalloc (sizeof (struct file_name_map))); - ptr->map_from = from; - - /* Make the real filename absolute. */ - if (absolute_filename (to)) - ptr->map_to = to; - else - { - ptr->map_to = xmalloc (dirlen + tolen + 1); - strcpy (ptr->map_to, dirname); - strcat (ptr->map_to, to); - free (to); - } - - ptr->map_next = map_list_ptr->map_list_map; - map_list_ptr->map_list_map = ptr; - - while ((ch = getc (f)) != '\n') - if (ch == EOF) - break; - } - fclose (f); - } - - map_list_ptr->map_list_next = map_list; - map_list = map_list_ptr; - - return map_list_ptr->map_list_map; -} - -/* Try to open include file FILENAME. SEARCHPTR is the directory - being tried from the include file search path. - IMPORTING is "" if we are importing, null otherwise. - Return -2 if found, either a matching name or a matching inode. - Otherwise, open the file and return a file descriptor if successful - or -1 if unsuccessful. - Unless unsuccessful, put a descriptor of the included file into *PINC. - This function maps filenames on file systems based on information read by - read_name_map. */ - -static int -open_include_file (filename, searchptr, importing, pinc) - char *filename; - struct file_name_list *searchptr; - U_CHAR *importing; - struct include_file **pinc; -{ - char *fname = remap ? remap_include_file (filename, searchptr) : filename; - int fd = -2; - - /* Look up FNAME in include_hashtab. */ - struct include_file **phead = &include_hashtab[hashf ((U_CHAR *) fname, - strlen (fname), - INCLUDE_HASHSIZE)]; - struct include_file *inc, *head = *phead; - for (inc = head; inc; inc = inc->next) - if (!strcmp (fname, inc->fname)) - break; - - if (!inc - || ! inc->control_macro - || (inc->control_macro[0] && ! lookup (inc->control_macro, -1, -1))) { - - fd = open (fname, O_RDONLY, 0); - - if (fd < 0) - { - return fd; - } - - if (!inc) { - /* FNAME was not in include_hashtab; insert a new entry. */ - inc = (struct include_file *) xmalloc (sizeof (struct include_file)); - inc->next = head; - inc->fname = fname; - inc->control_macro = 0; - inc->deps_output = 0; - if (fstat (fd, &inc->st) != 0) - pfatal_with_name (fname); - *phead = inc; - - /* Look for another file with the same inode and device. */ - if (lookup_ino_include (inc) - && inc->control_macro - && (!inc->control_macro[0] || lookup (inc->control_macro, -1, -1))) { - close (fd); - fd = -2; - } - } - - /* For -M, add this file to the dependencies. */ - if (! inc->deps_output && (system_include_depth != 0) < print_deps) { - inc->deps_output = 1; - deps_output (fname, ' '); - } - - /* Handle -H option. */ - if (print_include_names) - fprintf (stderr, "%*s%s\n", indepth, "", fname); - } - - if (importing) - inc->control_macro = importing; - - *pinc = inc; - return fd; -} - -/* Return the remapped name of the include file FILENAME. - SEARCHPTR is the directory being tried from the include file path. */ - -static char * -remap_include_file (filename, searchptr) - char *filename; - struct file_name_list *searchptr; -{ - register struct file_name_map *map; - register char *from; - - if (searchptr) - { - if (! searchptr->got_name_map) - { - searchptr->name_map = read_name_map (searchptr->fname); - searchptr->got_name_map = 1; - } - - /* Check the mapping for the directory we are using. */ - from = filename + strlen (searchptr->fname); - for (map = searchptr->name_map; map; map = map->map_next) - if (! strcmp (map->map_from, from)) - return map->map_to; - } - - from = base_name (filename); - - if (from != filename || !searchptr) - { - /* Try to find a mapping file for the particular directory we are - looking in. Thus #include <sys/types.h> will look up sys/types.h - in /usr/include/header.gcc and look up types.h in - /usr/include/sys/header.gcc. */ - - char *dir = (char *) alloca (from - filename + 1); - bcopy (filename, dir, from - filename); - dir[from - filename] = '\0'; - - for (map = read_name_map (dir); map; map = map->map_next) - if (! strcmp (map->map_from, from)) - return map->map_to; - } - - return filename; -} - -/* Insert INC into the include file table, hashed by device and inode number. - If a file with different name but same dev+ino was already in the table, - return 1 and set INC's control macro to the already-known macro. */ - -static int -lookup_ino_include (inc) - struct include_file *inc; -{ - int hash = ((unsigned) (inc->st.st_dev + INO_T_HASH (inc->st.st_ino)) - % INCLUDE_HASHSIZE); - struct include_file *i = include_ino_hashtab[hash]; - inc->next_ino = i; - include_ino_hashtab[hash] = inc; - - for (; i; i = i->next_ino) - if (INO_T_EQ (inc->st.st_ino, i->st.st_ino) - && inc->st.st_dev == i->st.st_dev) { - inc->control_macro = i->control_macro; - return 1; - } - - return 0; -} - -/* Process file descriptor F, which corresponds to include file INC, - with output to OP. - SYSTEM_HEADER_P is 1 if this file resides in any one of the known - "system" include directories (as decided by the `is_system_include' - function above). - DIRPTR is the link in the dir path through which this file was found, - or 0 if the file name was absolute. */ - -static void -finclude (f, inc, op, system_header_p, dirptr) - int f; - struct include_file *inc; - FILE_BUF *op; - int system_header_p; - struct file_name_list *dirptr; -{ - char *fname = inc->fname; - int i; - FILE_BUF *fp; /* For input stack frame */ - int missing_newline = 0; - - CHECK_DEPTH (return;); - - fp = &instack[indepth + 1]; - bzero ((char *) fp, sizeof (FILE_BUF)); - fp->nominal_fname = fp->fname = fname; - fp->nominal_fname_len = strlen (fname); - fp->inc = inc; - fp->length = 0; - fp->lineno = 1; - fp->if_stack = if_stack; - fp->system_header_p = system_header_p; - fp->dir = dirptr; - - if (S_ISREG (inc->st.st_mode)) { - size_t s = (size_t) inc->st.st_size; - if (s != inc->st.st_size || s + 2 < s) - memory_full (); - fp->buf = (U_CHAR *) xmalloc (s + 2); - fp->bufp = fp->buf; - - /* Read the file contents, knowing that s is an upper bound - on the number of bytes we can read. */ - fp->length = safe_read (f, (char *) fp->buf, s); - if (fp->length < 0) goto nope; - } - else if (S_ISDIR (inc->st.st_mode)) { - error ("directory `%s' specified in #include", fname); - close (f); - return; - } else { - /* Cannot count its file size before reading. - First read the entire file into heap and - copy them into buffer on stack. */ - - int bsize = 2000; - int st_size = 0; - - fp->buf = (U_CHAR *) xmalloc (bsize + 2); - - for (;;) { - i = safe_read (f, (char *) fp->buf + st_size, bsize - st_size); - if (i < 0) - goto nope; /* error! */ - st_size += i; - if (st_size != bsize) - break; /* End of file */ - bsize *= 2; - fp->buf = (U_CHAR *) xrealloc (fp->buf, bsize + 2); - } - fp->bufp = fp->buf; - fp->length = st_size; - } - - if ((fp->length > 0 && fp->buf[fp->length - 1] != '\n') - /* Backslash-newline at end is not good enough. */ - || (fp->length > 1 && fp->buf[fp->length - 2] == '\\')) { - fp->buf[fp->length++] = '\n'; - missing_newline = 1; - } - fp->buf[fp->length] = '\0'; - - /* Close descriptor now, so nesting does not use lots of descriptors. */ - close (f); - - /* Must do this before calling trigraph_pcp, so that the correct file name - will be printed in warning messages. */ - - indepth++; - input_file_stack_tick++; - - if (!no_trigraphs) - trigraph_pcp (fp); - - output_line_directive (fp, op, 0, enter_file); - rescan (op, 0); - - if (missing_newline) - fp->lineno--; - - if (pedantic && missing_newline) - pedwarn ("file does not end in newline"); - - indepth--; - input_file_stack_tick++; - output_line_directive (&instack[indepth], op, 0, leave_file); - free (fp->buf); - return; - - nope: - - perror_with_name (fname); - close (f); - free (fp->buf); -} - -/* Record that inclusion of the include file INC - should be controlled by the macro named MACRO_NAME. - This means that trying to include the file again - will do something if that macro is defined. */ - -static void -record_control_macro (inc, macro_name) - struct include_file *inc; - U_CHAR *macro_name; -{ - if (!inc->control_macro || inc->control_macro[0]) - inc->control_macro = macro_name; -} - -/* Load the specified precompiled header into core, and verify its - preconditions. PCF indicates the file descriptor to read, which must - be a regular file. *ST is its file status. - FNAME indicates the file name of the original header. - *LIMIT will be set to an address one past the end of the file. - If the preconditions of the file are not satisfied, the buffer is - freed and we return 0. If the preconditions are satisfied, return - the address of the buffer following the preconditions. The buffer, in - this case, should never be freed because various pieces of it will - be referred to until all precompiled strings are output at the end of - the run. */ - -static char * -check_precompiled (pcf, st, fname, limit) - int pcf; - struct stat *st; - char *fname ATTRIBUTE_UNUSED; - char **limit; -{ - int length = 0; - char *buf; - char *cp; - - if (pcp_outfile) - return 0; - - if (S_ISREG (st->st_mode)) - { - size_t s = (size_t) st->st_size; - if (s != st->st_size || s + 2 < s) - memory_full (); - buf = xmalloc (s + 2); - length = safe_read (pcf, buf, s); - if (length < 0) - goto nope; - } - else - abort (); - - if (length > 0 && buf[length-1] != '\n') - buf[length++] = '\n'; - buf[length] = '\0'; - - *limit = buf + length; - - /* File is in core. Check the preconditions. */ - if (!check_preconditions (buf)) - goto nope; - for (cp = buf; *cp; cp++) - ; -#ifdef DEBUG_PCP - fprintf (stderr, "Using preinclude %s\n", fname); -#endif - return cp + 1; - - nope: -#ifdef DEBUG_PCP - fprintf (stderr, "Cannot use preinclude %s\n", fname); -#endif - free (buf); - return 0; -} - -/* PREC (null terminated) points to the preconditions of a - precompiled header. These are a series of #define and #undef - lines which must match the current contents of the hash - table. */ - -static int -check_preconditions (prec) - char *prec; -{ - MACRODEF mdef; - char *lineend; - - while (*prec) { - lineend = index (prec, '\n'); - - if (*prec++ != '#') { - error ("Bad format encountered while reading precompiled file"); - return 0; - } - if (!strncmp (prec, "define", 6)) { - HASHNODE *hp; - - prec += 6; - mdef = create_definition ((U_CHAR *) prec, (U_CHAR *) lineend, NULL_PTR); - - if (mdef.defn == 0) - abort (); - - if ((hp = lookup (mdef.symnam, mdef.symlen, -1)) == NULL - || (hp->type != T_MACRO && hp->type != T_CONST) - || (hp->type == T_MACRO - && !compare_defs (mdef.defn, hp->value.defn) - && (mdef.defn->length != 2 - || mdef.defn->expansion[0] != '\n' - || mdef.defn->expansion[1] != ' '))) - return 0; - } else if (!strncmp (prec, "undef", 5)) { - char *name; - int len; - - prec += 5; - while (is_hor_space[(U_CHAR) *prec]) - prec++; - name = prec; - while (is_idchar[(U_CHAR) *prec]) - prec++; - len = prec - name; - - if (lookup ((U_CHAR *) name, len, -1)) - return 0; - } else { - error ("Bad format encountered while reading precompiled file"); - return 0; - } - prec = lineend + 1; - } - /* They all passed successfully */ - return 1; -} - -/* Process the main body of a precompiled file. BUF points to the - string section of the file, following the preconditions. LIMIT is one - character past the end. NAME is the name of the file being read - in. OP is the main output buffer. */ - -static void -pcfinclude (buf, name, op) - U_CHAR *buf, *name; - FILE_BUF *op; -{ - FILE_BUF tmpbuf; - int nstrings; - U_CHAR *cp = buf; - - /* First in the file comes 4 bytes indicating the number of strings, */ - /* in network byte order. (MSB first). */ - nstrings = *cp++; - nstrings = (nstrings << 8) | *cp++; - nstrings = (nstrings << 8) | *cp++; - nstrings = (nstrings << 8) | *cp++; - - /* Looping over each string... */ - while (nstrings--) { - U_CHAR *string_start; - U_CHAR *endofthiskey; - STRINGDEF *str; - int nkeys; - - /* Each string starts with a STRINGDEF structure (str), followed */ - /* by the text of the string (string_start) */ - - /* First skip to a longword boundary */ - /* ??? Why a 4-byte boundary? On all machines? */ - /* NOTE: This works correctly even if size_t - is narrower than a pointer. - Do not try risky measures here to get another type to use! - Do not include stddef.h--it will fail! */ - if ((size_t) cp & 3) - cp += 4 - ((size_t) cp & 3); - - /* Now get the string. */ - str = (STRINGDEF *) (GENERIC_PTR) cp; - string_start = cp += sizeof (STRINGDEF); - - for (; *cp; cp++) /* skip the string */ - ; - - /* We need to macro expand the string here to ensure that the - proper definition environment is in place. If it were only - expanded when we find out it is needed, macros necessary for - its proper expansion might have had their definitions changed. */ - tmpbuf = expand_to_temp_buffer (string_start, cp++, 0, 0); - /* Lineno is already set in the precompiled file */ - str->contents = tmpbuf.buf; - str->len = tmpbuf.length; - str->writeflag = 0; - str->filename = name; - str->output_mark = outbuf.bufp - outbuf.buf; - - str->chain = 0; - *stringlist_tailp = str; - stringlist_tailp = &str->chain; - - /* Next comes a fourbyte number indicating the number of keys - for this string. */ - nkeys = *cp++; - nkeys = (nkeys << 8) | *cp++; - nkeys = (nkeys << 8) | *cp++; - nkeys = (nkeys << 8) | *cp++; - - /* If this number is -1, then the string is mandatory. */ - if (nkeys == -1) - str->writeflag = 1; - else - /* Otherwise, for each key, */ - for (; nkeys--; free (tmpbuf.buf), cp = endofthiskey + 1) { - KEYDEF *kp = (KEYDEF *) (GENERIC_PTR) cp; - HASHNODE *hp; - - /* It starts with a KEYDEF structure */ - cp += sizeof (KEYDEF); - - /* Find the end of the key. At the end of this for loop we - advance CP to the start of the next key using this variable. */ - endofthiskey = cp + strlen ((char *) cp); - kp->str = str; - - /* Expand the key, and enter it into the hash table. */ - tmpbuf = expand_to_temp_buffer (cp, endofthiskey, 0, 0); - tmpbuf.bufp = tmpbuf.buf; - - while (is_hor_space[*tmpbuf.bufp]) - tmpbuf.bufp++; - if (!is_idstart[*tmpbuf.bufp] - || tmpbuf.bufp == tmpbuf.buf + tmpbuf.length) { - str->writeflag = 1; - continue; - } - - hp = lookup (tmpbuf.bufp, -1, -1); - if (hp == NULL) { - kp->chain = 0; - install (tmpbuf.bufp, -1, T_PCSTRING, (char *) kp, -1); - } - else if (hp->type == T_PCSTRING) { - kp->chain = hp->value.keydef; - hp->value.keydef = kp; - } - else - str->writeflag = 1; - } - } - /* This output_line_directive serves to switch us back to the current - input file in case some of these strings get output (which will - result in line directives for the header file being output). */ - output_line_directive (&instack[indepth], op, 0, enter_file); -} - -/* Called from rescan when it hits a key for strings. Mark them all - used and clean up. */ - -static void -pcstring_used (hp) - HASHNODE *hp; -{ - KEYDEF *kp; - - for (kp = hp->value.keydef; kp; kp = kp->chain) - kp->str->writeflag = 1; - delete_macro (hp); -} - -/* Write the output, interspersing precompiled strings in their - appropriate places. */ - -static void -write_output () -{ - STRINGDEF *next_string; - U_CHAR *cur_buf_loc; - int line_directive_len = 80; - char *line_directive = xmalloc (line_directive_len); - int len; - - /* In each run through the loop, either cur_buf_loc == - next_string_loc, in which case we print a series of strings, or - it is less than next_string_loc, in which case we write some of - the buffer. */ - cur_buf_loc = outbuf.buf; - next_string = stringlist; - - while (cur_buf_loc < outbuf.bufp || next_string) { - if (next_string - && cur_buf_loc - outbuf.buf == next_string->output_mark) { - if (next_string->writeflag) { - len = 4 * strlen ((char *) next_string->filename) + 32; - while (len > line_directive_len) - line_directive = xrealloc (line_directive, - line_directive_len *= 2); - sprintf (line_directive, "\n# %d ", next_string->lineno); - strcpy (quote_string (line_directive + strlen (line_directive), - (char *) next_string->filename, - strlen ((char *) next_string->filename)), - "\n"); - safe_write (fileno (stdout), line_directive, strlen (line_directive)); - safe_write (fileno (stdout), - (char *) next_string->contents, next_string->len); - } - next_string = next_string->chain; - } - else { - len = (next_string - ? (next_string->output_mark - - (cur_buf_loc - outbuf.buf)) - : outbuf.bufp - cur_buf_loc); - - safe_write (fileno (stdout), (char *) cur_buf_loc, len); - cur_buf_loc += len; - } - } - free (line_directive); -} - -/* Pass a directive through to the output file. - BUF points to the contents of the directive, as a contiguous string. - LIMIT points to the first character past the end of the directive. - KEYWORD is the keyword-table entry for the directive. */ - -static void -pass_thru_directive (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword; -{ - register unsigned keyword_length = keyword->length; - - check_expand (op, 1 + keyword_length + (limit - buf)); - *op->bufp++ = '#'; - bcopy (keyword->name, (char *) op->bufp, keyword_length); - op->bufp += keyword_length; - if (limit != buf && buf[0] != ' ') - *op->bufp++ = ' '; - bcopy ((char *) buf, (char *) op->bufp, limit - buf); - op->bufp += (limit - buf); -#if 0 - *op->bufp++ = '\n'; - /* Count the line we have just made in the output, - to get in sync properly. */ - op->lineno++; -#endif -} - -/* The arglist structure is built by do_define to tell - collect_definition where the argument names begin. That - is, for a define like "#define f(x,y,z) foo+x-bar*y", the arglist - would contain pointers to the strings x, y, and z. - Collect_definition would then build a DEFINITION node, - with reflist nodes pointing to the places x, y, and z had - appeared. So the arglist is just convenience data passed - between these two routines. It is not kept around after - the current #define has been processed and entered into the - hash table. */ - -struct arglist { - struct arglist *next; - U_CHAR *name; - int length; - int argno; - char rest_args; -}; - -/* Create a DEFINITION node from a #define directive. Arguments are - as for do_define. */ - -static MACRODEF -create_definition (buf, limit, op) - U_CHAR *buf, *limit; - FILE_BUF *op; -{ - U_CHAR *bp; /* temp ptr into input buffer */ - U_CHAR *symname; /* remember where symbol name starts */ - int sym_length; /* and how long it is */ - int line = instack[indepth].lineno; - char *file = instack[indepth].nominal_fname; - size_t file_len = instack[indepth].nominal_fname_len; - int rest_args = 0; - - DEFINITION *defn; - int arglengths = 0; /* Accumulate lengths of arg names - plus number of args. */ - MACRODEF mdef; - - bp = buf; - - while (is_hor_space[*bp]) - bp++; - - symname = bp; /* remember where it starts */ - sym_length = check_macro_name (bp, "macro"); - bp += sym_length; - - /* Lossage will occur if identifiers or control keywords are broken - across lines using backslash. This is not the right place to take - care of that. */ - - if (*bp == '(') { - struct arglist *arg_ptrs = NULL; - int argno = 0; - - bp++; /* skip '(' */ - SKIP_WHITE_SPACE (bp); - - /* Loop over macro argument names. */ - while (*bp != ')') { - struct arglist *temp; - - temp = (struct arglist *) alloca (sizeof (struct arglist)); - temp->name = bp; - temp->next = arg_ptrs; - temp->argno = argno++; - temp->rest_args = 0; - arg_ptrs = temp; - - if (rest_args) - pedwarn ("another parameter follows `%s'", - rest_extension); - - if (!is_idstart[*bp]) - { - if (c9x && limit - bp > (long) REST_EXTENSION_LENGTH - && bcmp (rest_extension, bp, REST_EXTENSION_LENGTH) == 0) - { - /* This is the ISO C 9x way to write macros with variable - number of arguments. */ - rest_args = 1; - temp->rest_args = 1; - } - else - pedwarn ("invalid character in macro parameter name"); - } - - /* Find the end of the arg name. */ - while (is_idchar[*bp]) { - bp++; - /* do we have a "special" rest-args extension here? */ - if (limit - bp > (long) REST_EXTENSION_LENGTH - && bcmp (rest_extension, bp, REST_EXTENSION_LENGTH) == 0) { - if (pedantic && !instack[indepth].system_header_p) - pedwarn ("ANSI C does not allow macro with variable arguments"); - rest_args = 1; - temp->rest_args = 1; - break; - } - } - if (bp == temp->name && rest_args == 1) - { - /* This is the ISO C 9x style. */ - temp->name = va_args_name; - temp->length = VA_ARGS_NAME_LENGTH; - } - else - temp->length = bp - temp->name; - if (rest_args == 1) - bp += REST_EXTENSION_LENGTH; - arglengths += temp->length + 2; - SKIP_WHITE_SPACE (bp); - if (temp->length == 0 || (*bp != ',' && *bp != ')')) { - error ("badly punctuated parameter list in `#define'"); - goto nope; - } - if (*bp == ',') { - bp++; - SKIP_WHITE_SPACE (bp); - /* A comma at this point can only be followed by an identifier. */ - if (!is_idstart[*bp] - && !(c9x && limit - bp > (long) REST_EXTENSION_LENGTH - && bcmp (rest_extension, bp, REST_EXTENSION_LENGTH) == 0)) { - error ("badly punctuated parameter list in `#define'"); - goto nope; - } - } - if (bp >= limit) { - error ("unterminated parameter list in `#define'"); - goto nope; - } - { - struct arglist *otemp; - - for (otemp = temp->next; otemp != NULL; otemp = otemp->next) - if (temp->length == otemp->length - && bcmp (temp->name, otemp->name, temp->length) == 0) - { - error ("duplicate argument name `%.*s' in `#define'", - temp->length, temp->name); - goto nope; - } - if (rest_args == 0 && temp->length == VA_ARGS_NAME_LENGTH - && bcmp (temp->name, va_args_name, VA_ARGS_NAME_LENGTH) == 0) - { - error ("\ -reserved name `%s' used as argument name in `#define'", va_args_name); - goto nope; - } - } - } - - ++bp; /* skip paren */ - SKIP_WHITE_SPACE (bp); - /* now everything from bp before limit is the definition. */ - defn = collect_expansion (bp, limit, argno, arg_ptrs); - defn->rest_args = rest_args; - - /* Now set defn->args.argnames to the result of concatenating - the argument names in reverse order - with comma-space between them. */ - defn->args.argnames = (U_CHAR *) xmalloc (arglengths + 1); - { - struct arglist *temp; - int i = 0; - for (temp = arg_ptrs; temp; temp = temp->next) { - bcopy (temp->name, &defn->args.argnames[i], temp->length); - i += temp->length; - if (temp->next != 0) { - defn->args.argnames[i++] = ','; - defn->args.argnames[i++] = ' '; - } - } - defn->args.argnames[i] = 0; - } - } else { - /* Simple expansion or empty definition. */ - - if (bp < limit) - { - if (is_hor_space[*bp]) { - bp++; - SKIP_WHITE_SPACE (bp); - } else if (sym_length) { - switch (*bp) { - case '!': case '"': case '#': case '%': case '&': case '\'': - case ')': case '*': case '+': case ',': case '-': case '.': - case '/': case ':': case ';': case '<': case '=': case '>': - case '?': case '[': case '\\': case ']': case '^': case '{': - case '|': case '}': case '~': - warning ("missing white space after `#define %.*s'", - sym_length, symname); - break; - - default: - pedwarn ("missing white space after `#define %.*s'", - sym_length, symname); - break; - } - } - } - /* Now everything from bp before limit is the definition. */ - defn = collect_expansion (bp, limit, -1, NULL_PTR); - defn->args.argnames = (U_CHAR *) ""; - } - - defn->line = line; - defn->file = file; - defn->file_len = file_len; - - /* OP is null if this is a predefinition */ - defn->predefined = !op; - mdef.defn = defn; - mdef.symnam = symname; - mdef.symlen = sym_length; - - return mdef; - - nope: - mdef.defn = 0; - return mdef; -} - -/* Process a #define directive. -BUF points to the contents of the #define directive, as a contiguous string. -LIMIT points to the first character past the end of the definition. -KEYWORD is the keyword-table entry for #define. */ - -static int -do_define (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword; -{ - int hashcode; - MACRODEF mdef; - - /* If this is a precompiler run (with -pcp) pass thru #define directives. */ - if (pcp_outfile && op) - pass_thru_directive (buf, limit, op, keyword); - - mdef = create_definition (buf, limit, op); - if (mdef.defn == 0) - goto nope; - - hashcode = hashf (mdef.symnam, mdef.symlen, HASHSIZE); - - { - HASHNODE *hp; - if ((hp = lookup (mdef.symnam, mdef.symlen, hashcode)) != NULL) { - int ok = 0; - /* Redefining a precompiled key is ok. */ - if (hp->type == T_PCSTRING) - ok = 1; - /* Redefining a macro is ok if the definitions are the same. */ - else if (hp->type == T_MACRO) - ok = ! compare_defs (mdef.defn, hp->value.defn); - /* Redefining a constant is ok with -D. */ - else if (hp->type == T_CONST) - ok = ! done_initializing; - /* Print the warning if it's not ok. */ - if (!ok) { - /* If we are passing through #define and #undef directives, do - that for this re-definition now. */ - if (debug_output && op) - pass_thru_directive (buf, limit, op, keyword); - -/* CYGNUS LOCAL chill */ - if (!chill || strcmp (mdef.defn->file, "*Initialization*")) -/* END CYGNUS LOCAL chill */ - pedwarn ("`%.*s' redefined", mdef.symlen, mdef.symnam); - if (hp->type == T_MACRO) - pedwarn_with_file_and_line (hp->value.defn->file, - hp->value.defn->file_len, - hp->value.defn->line, - "this is the location of the previous definition"); - } - /* Replace the old definition. */ - hp->type = T_MACRO; - hp->value.defn = mdef.defn; - } else { - /* If we are passing through #define and #undef directives, do - that for this new definition now. */ - if (debug_output && op) - pass_thru_directive (buf, limit, op, keyword); - install (mdef.symnam, mdef.symlen, T_MACRO, - (char *) mdef.defn, hashcode); - } - } - - return 0; - -nope: - - return 1; -} - -/* Check a purported macro name SYMNAME, and yield its length. - USAGE is the kind of name this is intended for. */ - -static int -check_macro_name (symname, usage) - U_CHAR *symname; - char *usage; -{ - U_CHAR *p; - int sym_length; - - for (p = symname; is_idchar[*p]; p++) - ; - sym_length = p - symname; - if (sym_length == 0 - || (sym_length == 1 && *symname == 'L' && (*p == '\'' || *p == '"'))) - error ("invalid %s name", usage); - else if (!is_idstart[*symname] - || (sym_length == 7 && ! bcmp (symname, "defined", 7))) - error ("invalid %s name `%.*s'", usage, sym_length, symname); - return sym_length; -} - -/* Return zero if two DEFINITIONs are isomorphic. */ - -static int -compare_defs (d1, d2) - DEFINITION *d1, *d2; -{ - register struct reflist *a1, *a2; - register U_CHAR *p1 = d1->expansion; - register U_CHAR *p2 = d2->expansion; - int first = 1; - - if (d1->nargs != d2->nargs) - return 1; - if (pedantic - && strcmp ((char *)d1->args.argnames, (char *)d2->args.argnames)) - return 1; - for (a1 = d1->pattern, a2 = d2->pattern; a1 && a2; - a1 = a1->next, a2 = a2->next) { - if (!((a1->nchars == a2->nchars && ! bcmp (p1, p2, a1->nchars)) - || ! comp_def_part (first, p1, a1->nchars, p2, a2->nchars, 0)) - || a1->argno != a2->argno - || a1->stringify != a2->stringify - || a1->raw_before != a2->raw_before - || a1->raw_after != a2->raw_after) - return 1; - first = 0; - p1 += a1->nchars; - p2 += a2->nchars; - } - if (a1 != a2) - return 1; - if (comp_def_part (first, p1, d1->length - (p1 - d1->expansion), - p2, d2->length - (p2 - d2->expansion), 1)) - return 1; - return 0; -} - -/* Return 1 if two parts of two macro definitions are effectively different. - One of the parts starts at BEG1 and has LEN1 chars; - the other has LEN2 chars at BEG2. - Any sequence of whitespace matches any other sequence of whitespace. - FIRST means these parts are the first of a macro definition; - so ignore leading whitespace entirely. - LAST means these parts are the last of a macro definition; - so ignore trailing whitespace entirely. */ - -static int -comp_def_part (first, beg1, len1, beg2, len2, last) - int first; - U_CHAR *beg1, *beg2; - int len1, len2; - int last; -{ - register U_CHAR *end1 = beg1 + len1; - register U_CHAR *end2 = beg2 + len2; - if (first) { - while (beg1 != end1 && is_space[*beg1]) beg1++; - while (beg2 != end2 && is_space[*beg2]) beg2++; - } - if (last) { - while (beg1 != end1 && is_space[end1[-1]]) end1--; - while (beg2 != end2 && is_space[end2[-1]]) end2--; - } - while (beg1 != end1 && beg2 != end2) { - if (is_space[*beg1] && is_space[*beg2]) { - while (beg1 != end1 && is_space[*beg1]) beg1++; - while (beg2 != end2 && is_space[*beg2]) beg2++; - } else if (*beg1 == *beg2) { - beg1++; beg2++; - } else break; - } - return (beg1 != end1) || (beg2 != end2); -} - -/* Read a replacement list for a macro with parameters. - Build the DEFINITION structure. - Reads characters of text starting at BUF until END. - ARGLIST specifies the formal parameters to look for - in the text of the definition; NARGS is the number of args - in that list, or -1 for a macro name that wants no argument list. - MACRONAME is the macro name itself (so we can avoid recursive expansion) - and NAMELEN is its length in characters. - -Note that comments, backslash-newlines, and leading white space -have already been deleted from the argument. */ - -/* If there is no trailing whitespace, a Newline Space is added at the end - to prevent concatenation that would be contrary to the standard. */ - -static DEFINITION * -collect_expansion (buf, end, nargs, arglist) - U_CHAR *buf, *end; - int nargs; - struct arglist *arglist; -{ - DEFINITION *defn; - register U_CHAR *p, *limit, *lastp, *exp_p; - struct reflist *endpat = NULL; - /* Pointer to first nonspace after last ## seen. */ - U_CHAR *concat = 0; - /* Pointer to first nonspace after last single-# seen. */ - U_CHAR *stringify = 0; - /* How those tokens were spelled. */ - enum sharp_token_type concat_sharp_token_type = NO_SHARP_TOKEN; - enum sharp_token_type stringify_sharp_token_type = NO_SHARP_TOKEN; - int maxsize; - int expected_delimiter = '\0'; - - /* Scan thru the replacement list, ignoring comments and quoted - strings, picking up on the macro calls. It does a linear search - thru the arg list on every potential symbol. Profiling might say - that something smarter should happen. */ - - if (end < buf) - abort (); - - /* Find the beginning of the trailing whitespace. */ - limit = end; - p = buf; - while (p < limit && is_space[limit[-1]]) limit--; - - /* Allocate space for the text in the macro definition. - Each input char may or may not need 1 byte, - so this is an upper bound. - The extra 3 are for invented trailing newline-marker and final null. */ - maxsize = (sizeof (DEFINITION) - + (limit - p) + 3); - defn = (DEFINITION *) xcalloc (1, maxsize); - - defn->nargs = nargs; - exp_p = defn->expansion = (U_CHAR *) defn + sizeof (DEFINITION); - lastp = exp_p; - - if (p[0] == '#' - ? p[1] == '#' - : p[0] == '%' && p[1] == ':' && p[2] == '%' && p[3] == ':') { - error ("`##' at start of macro definition"); - p += p[0] == '#' ? 2 : 4; - } - - /* Process the main body of the definition. */ - while (p < limit) { - int skipped_arg = 0; - register U_CHAR c = *p++; - - *exp_p++ = c; - - if (!traditional) { - switch (c) { - case '\'': - case '\"': - if (expected_delimiter != '\0') { - if (c == expected_delimiter) - expected_delimiter = '\0'; - } else - expected_delimiter = c; - break; - - case '\\': - if (p < limit && expected_delimiter) { - /* In a string, backslash goes through - and makes next char ordinary. */ - *exp_p++ = *p++; - } - break; - - case '%': - if (!expected_delimiter && *p == ':') { - /* %: is not a digraph if preceded by an odd number of '<'s. */ - U_CHAR *p0 = p - 1; - while (buf < p0 && p0[-1] == '<') - p0--; - if ((p - p0) & 1) { - /* Treat %:%: as ## and %: as #. */ - if (p[1] == '%' && p[2] == ':') { - p += 2; - goto sharp_sharp_token; - } - if (nargs >= 0) { - p++; - goto sharp_token; - } - } - } - break; - - case '#': - /* # is ordinary inside a string. */ - if (expected_delimiter) - break; - if (*p == '#') { - sharp_sharp_token: - /* ##: concatenate preceding and following tokens. */ - /* Take out the first #, discard preceding whitespace. */ - exp_p--; - while (exp_p > lastp && is_hor_space[exp_p[-1]]) - --exp_p; - /* Skip the second #. */ - p++; - concat_sharp_token_type = c; - if (is_hor_space[*p]) { - concat_sharp_token_type = c + 1; - p++; - SKIP_WHITE_SPACE (p); - } - concat = p; - if (p == limit) - error ("`##' at end of macro definition"); - } else if (nargs >= 0) { - /* Single #: stringify following argument ref. - Don't leave the # in the expansion. */ - sharp_token: - exp_p--; - stringify_sharp_token_type = c; - if (is_hor_space[*p]) { - stringify_sharp_token_type = c + 1; - p++; - SKIP_WHITE_SPACE (p); - } - if (! is_idstart[*p] || nargs == 0 - || (*p == 'L' && (p[1] == '\'' || p[1] == '"'))) - error ("`#' operator is not followed by a macro argument name"); - else - stringify = p; - } - break; - } - } else { - /* In -traditional mode, recognize arguments inside strings and - character constants, and ignore special properties of #. - Arguments inside strings are considered "stringified", but no - extra quote marks are supplied. */ - switch (c) { - case '\'': - case '\"': - if (expected_delimiter != '\0') { - if (c == expected_delimiter) - expected_delimiter = '\0'; - } else - expected_delimiter = c; - break; - - case '\\': - /* Backslash quotes delimiters and itself, but not macro args. */ - if (expected_delimiter != 0 && p < limit - && (*p == expected_delimiter || *p == '\\')) { - *exp_p++ = *p++; - continue; - } - break; - - case '/': - if (expected_delimiter != '\0') /* No comments inside strings. */ - break; - if (*p == '*') { - /* If we find a comment that wasn't removed by handle_directive, - this must be -traditional. So replace the comment with - nothing at all. */ - exp_p--; - while (++p < limit) { - if (p[0] == '*' && p[1] == '/') { - p += 2; - break; - } - } -#if 0 - /* Mark this as a concatenation-point, as if it had been ##. */ - concat = p; -#endif - } - break; - } - } - -#ifdef MULTIBYTE_CHARS -/* CYGNUS LOCAL chill */ - if (! chill) -/* END CYGNUS LOCAL chill */ - { - /* Handle multibyte characters inside string and character literals. */ - if (expected_delimiter != '\0') - { - int length; - --p; - length = local_mblen (p, limit - p); - if (length > 1) - { - --exp_p; - bcopy (p, exp_p, length); - p += length; - exp_p += length; - continue; - } - ++p; - } - } -#endif - - /* Handle the start of a symbol. */ - if (is_idchar[c] && nargs > 0) { - U_CHAR *id_beg = p - 1; - int id_len; - - --exp_p; - while (p != limit && is_idchar[*p]) p++; - id_len = p - id_beg; - - if (is_idstart[c] - && ! (id_len == 1 && c == 'L' && (*p == '\'' || *p == '"'))) { - register struct arglist *arg; - - for (arg = arglist; arg != NULL; arg = arg->next) { - struct reflist *tpat; - - if (arg->name[0] == c - && arg->length == id_len - && bcmp (arg->name, id_beg, id_len) == 0) { - enum sharp_token_type tpat_stringify; - if (expected_delimiter) { - if (warn_stringify) { - if (traditional) { - warning ("macro argument `%.*s' is stringified.", - id_len, arg->name); - } else { - warning ("macro arg `%.*s' would be stringified with -traditional.", - id_len, arg->name); - } - } - /* If ANSI, don't actually substitute inside a string. */ - if (!traditional) - break; - tpat_stringify = SHARP_TOKEN; - } else { - tpat_stringify - = (stringify == id_beg - ? stringify_sharp_token_type : NO_SHARP_TOKEN); - } - /* make a pat node for this arg and append it to the end of - the pat list */ - tpat = (struct reflist *) xmalloc (sizeof (struct reflist)); - tpat->next = NULL; - tpat->raw_before - = concat == id_beg ? concat_sharp_token_type : NO_SHARP_TOKEN; - tpat->raw_after = NO_SHARP_TOKEN; - tpat->rest_args = arg->rest_args; - tpat->stringify = tpat_stringify; - - if (endpat == NULL) - defn->pattern = tpat; - else - endpat->next = tpat; - endpat = tpat; - - tpat->argno = arg->argno; - tpat->nchars = exp_p - lastp; - { - register U_CHAR *p1 = p; - SKIP_WHITE_SPACE (p1); - if (p1[0]=='#' - ? p1[1]=='#' - : p1[0]=='%' && p1[1]==':' && p1[2]=='%' && p1[3]==':') - tpat->raw_after = p1[0] + (p != p1); - } - lastp = exp_p; /* place to start copying from next time */ - skipped_arg = 1; - break; - } - } - } - - /* If this was not a macro arg, copy it into the expansion. */ - if (! skipped_arg) { - register U_CHAR *lim1 = p; - p = id_beg; - while (p != lim1) - *exp_p++ = *p++; - if (stringify == id_beg) - error ("`#' operator should be followed by a macro argument name"); - } - } - } - - if (!traditional && expected_delimiter == 0) { - /* If ANSI, put in a newline-space marker to prevent token pasting. - But not if "inside a string" (which in ANSI mode happens only for - -D option). */ - *exp_p++ = '\n'; - *exp_p++ = ' '; - } - - *exp_p = '\0'; - - defn->length = exp_p - defn->expansion; - - /* Crash now if we overrun the allocated size. */ - if (defn->length + 1 > maxsize) - abort (); - -#if 0 -/* This isn't worth the time it takes. */ - /* give back excess storage */ - defn->expansion = (U_CHAR *) xrealloc (defn->expansion, defn->length + 1); -#endif - - return defn; -} - -static int -do_assert (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op ATTRIBUTE_UNUSED; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - U_CHAR *bp; /* temp ptr into input buffer */ - U_CHAR *symname; /* remember where symbol name starts */ - int sym_length; /* and how long it is */ - struct arglist *tokens = NULL; - - if (pedantic && done_initializing && !instack[indepth].system_header_p) - pedwarn ("ANSI C does not allow `#assert'"); - - bp = buf; - - while (is_hor_space[*bp]) - bp++; - - symname = bp; /* remember where it starts */ - sym_length = check_macro_name (bp, "assertion"); - bp += sym_length; - /* #define doesn't do this, but we should. */ - SKIP_WHITE_SPACE (bp); - - /* Lossage will occur if identifiers or control tokens are broken - across lines using backslash. This is not the right place to take - care of that. */ - - if (*bp != '(') { - error ("missing token-sequence in `#assert'"); - return 1; - } - - { - int error_flag = 0; - - bp++; /* skip '(' */ - SKIP_WHITE_SPACE (bp); - - tokens = read_token_list (&bp, limit, &error_flag); - if (error_flag) - return 1; - if (tokens == 0) { - error ("empty token-sequence in `#assert'"); - return 1; - } - - ++bp; /* skip paren */ - SKIP_WHITE_SPACE (bp); - } - - /* If this name isn't already an assertion name, make it one. - Error if it was already in use in some other way. */ - - { - ASSERTION_HASHNODE *hp; - int hashcode = hashf (symname, sym_length, ASSERTION_HASHSIZE); - struct tokenlist_list *value - = (struct tokenlist_list *) xmalloc (sizeof (struct tokenlist_list)); - - hp = assertion_lookup (symname, sym_length, hashcode); - if (hp == NULL) { - if (sym_length == 7 && ! bcmp (symname, "defined", 7)) - error ("`defined' redefined as assertion"); - hp = assertion_install (symname, sym_length, hashcode); - } - - /* Add the spec'd token-sequence to the list of such. */ - value->tokens = tokens; - value->next = hp->value; - hp->value = value; - } - - return 0; -} - -static int -do_unassert (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op ATTRIBUTE_UNUSED; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - U_CHAR *bp; /* temp ptr into input buffer */ - U_CHAR *symname; /* remember where symbol name starts */ - int sym_length; /* and how long it is */ - - struct arglist *tokens = NULL; - int tokens_specified = 0; - - if (pedantic && done_initializing && !instack[indepth].system_header_p) - pedwarn ("ANSI C does not allow `#unassert'"); - - bp = buf; - - while (is_hor_space[*bp]) - bp++; - - symname = bp; /* remember where it starts */ - sym_length = check_macro_name (bp, "assertion"); - bp += sym_length; - /* #define doesn't do this, but we should. */ - SKIP_WHITE_SPACE (bp); - - /* Lossage will occur if identifiers or control tokens are broken - across lines using backslash. This is not the right place to take - care of that. */ - - if (*bp == '(') { - int error_flag = 0; - - bp++; /* skip '(' */ - SKIP_WHITE_SPACE (bp); - - tokens = read_token_list (&bp, limit, &error_flag); - if (error_flag) - return 1; - if (tokens == 0) { - error ("empty token list in `#unassert'"); - return 1; - } - - tokens_specified = 1; - - ++bp; /* skip paren */ - SKIP_WHITE_SPACE (bp); - } - - { - ASSERTION_HASHNODE *hp; - int hashcode = hashf (symname, sym_length, ASSERTION_HASHSIZE); - struct tokenlist_list *tail, *prev; - - hp = assertion_lookup (symname, sym_length, hashcode); - if (hp == NULL) - return 1; - - /* If no token list was specified, then eliminate this assertion - entirely. */ - if (! tokens_specified) { - struct tokenlist_list *next; - for (tail = hp->value; tail; tail = next) { - next = tail->next; - free_token_list (tail->tokens); - free (tail); - } - delete_assertion (hp); - } else { - /* If a list of tokens was given, then delete any matching list. */ - - tail = hp->value; - prev = 0; - while (tail) { - struct tokenlist_list *next = tail->next; - if (compare_token_lists (tail->tokens, tokens)) { - if (prev) - prev->next = next; - else - hp->value = tail->next; - free_token_list (tail->tokens); - free (tail); - } else { - prev = tail; - } - tail = next; - } - } - } - - return 0; -} - -/* Test whether there is an assertion named NAME - and optionally whether it has an asserted token list TOKENS. - NAME is not null terminated; its length is SYM_LENGTH. - If TOKENS_SPECIFIED is 0, then don't check for any token list. */ - -int -check_assertion (name, sym_length, tokens_specified, tokens) - U_CHAR *name; - int sym_length; - int tokens_specified; - struct arglist *tokens; -{ - ASSERTION_HASHNODE *hp; - int hashcode = hashf (name, sym_length, ASSERTION_HASHSIZE); - - if (pedantic && !instack[indepth].system_header_p) - pedwarn ("ANSI C does not allow testing assertions"); - - hp = assertion_lookup (name, sym_length, hashcode); - if (hp == NULL) - /* It is not an assertion; just return false. */ - return 0; - - /* If no token list was specified, then value is 1. */ - if (! tokens_specified) - return 1; - - { - struct tokenlist_list *tail; - - tail = hp->value; - - /* If a list of tokens was given, - then succeed if the assertion records a matching list. */ - - while (tail) { - if (compare_token_lists (tail->tokens, tokens)) - return 1; - tail = tail->next; - } - - /* Fail if the assertion has no matching list. */ - return 0; - } -} - -/* Compare two lists of tokens for equality including order of tokens. */ - -static int -compare_token_lists (l1, l2) - struct arglist *l1, *l2; -{ - while (l1 && l2) { - if (l1->length != l2->length) - return 0; - if (bcmp (l1->name, l2->name, l1->length)) - return 0; - l1 = l1->next; - l2 = l2->next; - } - - /* Succeed if both lists end at the same time. */ - return l1 == l2; -} - -/* Read a space-separated list of tokens ending in a close parenthesis. - Return a list of strings, in the order they were written. - (In case of error, return 0 and store -1 in *ERROR_FLAG.) - Parse the text starting at *BPP, and update *BPP. - Don't parse beyond LIMIT. */ - -static struct arglist * -read_token_list (bpp, limit, error_flag) - U_CHAR **bpp; - U_CHAR *limit; - int *error_flag; -{ - struct arglist *token_ptrs = 0; - U_CHAR *bp = *bpp; - int depth = 1; - - *error_flag = 0; - - /* Loop over the assertion value tokens. */ - while (depth > 0) { - struct arglist *temp; - int eofp = 0; - U_CHAR *beg = bp; - - /* Find the end of the token. */ - if (*bp == '(') { - bp++; - depth++; - } else if (*bp == ')') { - depth--; - if (depth == 0) - break; - bp++; - } else if (*bp == '"' || *bp == '\'') - bp = skip_quoted_string (bp, limit, 0, NULL_PTR, NULL_PTR, &eofp); - else - while (! is_hor_space[*bp] && *bp != '(' && *bp != ')' - && *bp != '"' && *bp != '\'' && bp != limit) - bp++; - - temp = (struct arglist *) xmalloc (sizeof (struct arglist)); - temp->name = (U_CHAR *) xmalloc (bp - beg + 1); - bcopy ((char *) beg, (char *) temp->name, bp - beg); - temp->name[bp - beg] = 0; - temp->next = token_ptrs; - token_ptrs = temp; - temp->length = bp - beg; - - SKIP_WHITE_SPACE (bp); - - if (bp >= limit) { - error ("unterminated token sequence in `#assert' or `#unassert'"); - *error_flag = -1; - return 0; - } - } - *bpp = bp; - - /* We accumulated the names in reverse order. - Now reverse them to get the proper order. */ - { - register struct arglist *prev = 0, *this, *next; - for (this = token_ptrs; this; this = next) { - next = this->next; - this->next = prev; - prev = this; - } - return prev; - } -} - -static void -free_token_list (tokens) - struct arglist *tokens; -{ - while (tokens) { - struct arglist *next = tokens->next; - free (tokens->name); - free (tokens); - tokens = next; - } -} - -/* Install a name in the assertion hash table. - - If LEN is >= 0, it is the length of the name. - Otherwise, compute the length by scanning the entire name. - - If HASH is >= 0, it is the precomputed hash code. - Otherwise, compute the hash code. */ - -static ASSERTION_HASHNODE * -assertion_install (name, len, hash) - U_CHAR *name; - int len; - int hash; -{ - register ASSERTION_HASHNODE *hp; - register int i, bucket; - register U_CHAR *p, *q; - - i = sizeof (ASSERTION_HASHNODE) + len + 1; - hp = (ASSERTION_HASHNODE *) xmalloc (i); - bucket = hash; - hp->bucket_hdr = &assertion_hashtab[bucket]; - hp->next = assertion_hashtab[bucket]; - assertion_hashtab[bucket] = hp; - hp->prev = NULL; - if (hp->next != NULL) - hp->next->prev = hp; - hp->length = len; - hp->value = 0; - hp->name = ((U_CHAR *) hp) + sizeof (ASSERTION_HASHNODE); - p = hp->name; - q = name; - for (i = 0; i < len; i++) - *p++ = *q++; - hp->name[len] = 0; - return hp; -} - -/* Find the most recent hash node for name "name" (ending with first - non-identifier char) installed by install - - If LEN is >= 0, it is the length of the name. - Otherwise, compute the length by scanning the entire name. - - If HASH is >= 0, it is the precomputed hash code. - Otherwise, compute the hash code. */ - -static ASSERTION_HASHNODE * -assertion_lookup (name, len, hash) - U_CHAR *name; - int len; - int hash; -{ - register ASSERTION_HASHNODE *bucket; - - bucket = assertion_hashtab[hash]; - while (bucket) { - if (bucket->length == len && bcmp (bucket->name, name, len) == 0) - return bucket; - bucket = bucket->next; - } - return NULL; -} - -static void -delete_assertion (hp) - ASSERTION_HASHNODE *hp; -{ - - if (hp->prev != NULL) - hp->prev->next = hp->next; - if (hp->next != NULL) - hp->next->prev = hp->prev; - - /* Make sure that the bucket chain header that the deleted guy was - on points to the right thing afterwards. */ - if (hp == *hp->bucket_hdr) - *hp->bucket_hdr = hp->next; - - free (hp); -} - -/* - * interpret #line directive. Remembers previously seen fnames - * in its very own hash table. - */ -#define FNAME_HASHSIZE 37 - -static int -do_line (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - register U_CHAR *bp; - FILE_BUF *ip = &instack[indepth]; - FILE_BUF tem; - int new_lineno; - enum file_change_code file_change = same_file; - - /* Expand any macros. */ - tem = expand_to_temp_buffer (buf, limit, 0, 0); - - /* Point to macroexpanded line, which is null-terminated now. */ - bp = tem.buf; - SKIP_WHITE_SPACE (bp); - - if (!ISDIGIT (*bp)) { - error ("invalid format `#line' directive"); - return 0; - } - - /* The Newline at the end of this line remains to be processed. - To put the next line at the specified line number, - we must store a line number now that is one less. */ - new_lineno = atoi ((char *) bp) - 1; - - /* NEW_LINENO is one less than the actual line number here. */ - if (pedantic && new_lineno < 0) - pedwarn ("line number out of range in `#line' directive"); - - /* skip over the line number. */ - while (ISDIGIT (*bp)) - bp++; - -#if 0 /* #line 10"foo.c" is supposed to be allowed. */ - if (*bp && !is_space[*bp]) { - error ("invalid format `#line' directive"); - return; - } -#endif - - SKIP_WHITE_SPACE (bp); - - if (*bp == '\"') { - static HASHNODE *fname_table[FNAME_HASHSIZE]; - HASHNODE *hp, **hash_bucket; - U_CHAR *fname, *p; - int fname_length; - - fname = ++bp; - - /* Turn the file name, which is a character string literal, - into a null-terminated string. Do this in place. */ - p = bp; - for (;;) - switch ((*p++ = *bp++)) { - case '\0': - error ("invalid format `#line' directive"); - return 0; - - case '\\': - if (! ignore_escape_flag) - { - char *bpc = (char *) bp; - HOST_WIDE_INT c = parse_escape (&bpc, (HOST_WIDE_INT) (U_CHAR) (-1)); - bp = (U_CHAR *) bpc; - if (c < 0) - p--; - else - p[-1] = c; - } - break; - - case '\"': - *--p = 0; - goto fname_done; - } - fname_done: - fname_length = p - fname; - - SKIP_WHITE_SPACE (bp); - if (*bp) { - if (pedantic) - pedwarn ("garbage at end of `#line' directive"); - if (*bp == '1') - file_change = enter_file; - else if (*bp == '2') - file_change = leave_file; - else if (*bp == '3') - ip->system_header_p = 1; - else if (*bp == '4') - ip->system_header_p = 2; - else { - error ("invalid format `#line' directive"); - return 0; - } - - bp++; - SKIP_WHITE_SPACE (bp); - if (*bp == '3') { - ip->system_header_p = 1; - bp++; - SKIP_WHITE_SPACE (bp); - } - if (*bp == '4') { - ip->system_header_p = 2; - bp++; - SKIP_WHITE_SPACE (bp); - } - if (*bp) { - error ("invalid format `#line' directive"); - return 0; - } - } - - hash_bucket = &fname_table[hashf (fname, fname_length, FNAME_HASHSIZE)]; - for (hp = *hash_bucket; hp != NULL; hp = hp->next) - if (hp->length == fname_length && - bcmp (hp->value.cpval, fname, fname_length) == 0) { - ip->nominal_fname = hp->value.cpval; - ip->nominal_fname_len = fname_length; - break; - } - if (hp == 0) { - /* Didn't find it; cons up a new one. */ - hp = (HASHNODE *) xcalloc (1, sizeof (HASHNODE) + fname_length + 1); - hp->next = *hash_bucket; - *hash_bucket = hp; - - ip->nominal_fname = hp->value.cpval = ((char *) hp) + sizeof (HASHNODE); - ip->nominal_fname_len = hp->length = fname_length; - bcopy (fname, hp->value.cpval, fname_length + 1); - } - } else if (*bp) { - error ("invalid format `#line' directive"); - return 0; - } - - ip->lineno = new_lineno; - output_line_directive (ip, op, 0, file_change); - check_expand (op, ip->length - (ip->bufp - ip->buf)); - return 0; -} - -/* Remove the definition of a symbol from the symbol table. - according to un*x /lib/cpp, it is not an error to undef - something that has no definitions, so it isn't one here either. */ - -static int -do_undef (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword; -{ - int sym_length; - HASHNODE *hp; - U_CHAR *orig_buf = buf; - - /* If this is a precompiler run (with -pcp) pass thru #undef directives. */ - if (pcp_outfile && op) - pass_thru_directive (buf, limit, op, keyword); - - SKIP_WHITE_SPACE (buf); - sym_length = check_macro_name (buf, "macro"); - - while ((hp = lookup (buf, sym_length, -1)) != NULL) { - /* If we are generating additional info for debugging (with -g) we - need to pass through all effective #undef directives. */ - if (debug_output && op) - pass_thru_directive (orig_buf, limit, op, keyword); - if (hp->type != T_MACRO) - warning ("undefining `%s'", hp->name); - delete_macro (hp); - } - - if (pedantic) { - buf += sym_length; - SKIP_WHITE_SPACE (buf); - if (buf != limit) - pedwarn ("garbage after `#undef' directive"); - } - return 0; -} - -/* Report an error detected by the program we are processing. - Use the text of the line in the error message. - (We use error because it prints the filename & line#.) */ - -static int -do_error (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op ATTRIBUTE_UNUSED; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - int length = limit - buf; - U_CHAR *copy = (U_CHAR *) alloca (length + 1); - bcopy ((char *) buf, (char *) copy, length); - copy[length] = 0; - SKIP_WHITE_SPACE (copy); - error ("#error %s", copy); - return 0; -} - -/* Report a warning detected by the program we are processing. - Use the text of the line in the warning message, then continue. - (We use error because it prints the filename & line#.) */ - -static int -do_warning (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op ATTRIBUTE_UNUSED; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - int length = limit - buf; - U_CHAR *copy = (U_CHAR *) alloca (length + 1); - bcopy ((char *) buf, (char *) copy, length); - copy[length] = 0; - SKIP_WHITE_SPACE (copy); - - if (pedantic && !instack[indepth].system_header_p) - pedwarn ("ANSI C does not allow `#warning'"); - - /* Use `pedwarn' not `warning', because #warning isn't in the C Standard; - if -pedantic-errors is given, #warning should cause an error. */ - pedwarn ("#warning %s", copy); - return 0; -} - -/* Remember the name of the current file being read from so that we can - avoid ever including it again. */ - -static void -do_once () -{ - int i; - - for (i = indepth; i >= 0; i--) - if (instack[i].inc) { - record_control_macro (instack[i].inc, (U_CHAR *) ""); - break; - } -} - -/* Report program identification. */ - -static int -do_ident (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - FILE_BUF trybuf; - int len; - - /* Allow #ident in system headers, since that's not user's fault. */ - if (pedantic && !instack[indepth].system_header_p) - pedwarn ("ANSI C does not allow `#ident'"); - - trybuf = expand_to_temp_buffer (buf, limit, 0, 0); - buf = trybuf.buf; - len = trybuf.bufp - buf; - - /* Output expanded directive. */ - check_expand (op, 7 + len); - bcopy ("#ident ", (char *) op->bufp, 7); - op->bufp += 7; - bcopy ((char *) buf, (char *) op->bufp, len); - op->bufp += len; - - free (buf); - return 0; -} - -/* #pragma and its argument line have already been copied to the output file. - Just check for some recognized pragmas that need validation here. */ - -static int -do_pragma (buf, limit, op, keyword) - U_CHAR *buf, *limit ATTRIBUTE_UNUSED; - FILE_BUF *op ATTRIBUTE_UNUSED; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - SKIP_WHITE_SPACE (buf); - if (!strncmp ((char *) buf, "once", 4)) { - /* Allow #pragma once in system headers, since that's not the user's - fault. */ - if (!instack[indepth].system_header_p) - warning ("`#pragma once' is obsolete"); - do_once (); - } - - if (!strncmp ((char *) buf, "implementation", 14)) { - /* Be quiet about `#pragma implementation' for a file only if it hasn't - been included yet. */ - - int h; - U_CHAR *p = buf + 14, *fname; - SKIP_WHITE_SPACE (p); - if (*p != '\"') - return 0; - - fname = p + 1; - if ((p = (U_CHAR *) index ((char *) fname, '\"'))) - *p = '\0'; - - for (h = 0; h < INCLUDE_HASHSIZE; h++) { - struct include_file *inc; - for (inc = include_hashtab[h]; inc; inc = inc->next) { - if (!strcmp (base_name (inc->fname), (char *) fname)) { - warning ("`#pragma implementation' for \"%s\" appears after its #include",fname); - return 0; - } - } - } - } - return 0; -} - -#if 0 -/* This was a fun hack, but #pragma seems to start to be useful. - By failing to recognize it, we pass it through unchanged to cc1. */ - -/* The behavior of the #pragma directive is implementation defined. - this implementation defines it as follows. */ - -static int -do_pragma () -{ - close (0); - if (open ("/dev/tty", O_RDONLY, 0666) != 0) - goto nope; - close (1); - if (open ("/dev/tty", O_WRONLY, 0666) != 1) - goto nope; - execl ("/usr/games/hack", "#pragma", 0); - execl ("/usr/games/rogue", "#pragma", 0); - execl ("/usr/new/emacs", "-f", "hanoi", "9", "-kill", 0); - execl ("/usr/local/emacs", "-f", "hanoi", "9", "-kill", 0); -nope: - fatal ("You are in a maze of twisty compiler features, all different"); -} -#endif - -#ifdef SCCS_DIRECTIVE - -/* Just ignore #sccs, on systems where we define it at all. */ - -static int -do_sccs (buf, limit, op, keyword) - U_CHAR *buf ATTRIBUTE_UNUSED, *limit ATTRIBUTE_UNUSED; - FILE_BUF *op ATTRIBUTE_UNUSED; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - if (pedantic) - pedwarn ("ANSI C does not allow `#sccs'"); - return 0; -} - -#endif /* defined (SCCS_DIRECTIVE) */ - -/* Handle #if directive by - 1) inserting special `defined' keyword into the hash table - that gets turned into 0 or 1 by special_symbol (thus, - if the luser has a symbol called `defined' already, it won't - work inside the #if directive) - 2) rescan the input into a temporary output buffer - 3) pass the output buffer to the yacc parser and collect a value - 4) clean up the mess left from steps 1 and 2. - 5) call conditional_skip to skip til the next #endif (etc.), - or not, depending on the value from step 3. */ - -static int -do_if (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - HOST_WIDE_INT value; - FILE_BUF *ip = &instack[indepth]; - - value = eval_if_expression (buf, limit - buf); - conditional_skip (ip, value == 0, T_IF, NULL_PTR, op); - return 0; -} - -/* Handle a #elif directive by not changing if_stack either. - see the comment above do_else. */ - -static int -do_elif (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - HOST_WIDE_INT value; - FILE_BUF *ip = &instack[indepth]; - - if (if_stack == instack[indepth].if_stack) { - error ("`#elif' not within a conditional"); - return 0; - } else { - if (if_stack->type != T_IF && if_stack->type != T_ELIF) { - error ("`#elif' after `#else'"); - fprintf (stderr, " (matches line %d", if_stack->lineno); - if (! (if_stack->fname_len == ip->nominal_fname_len - && !bcmp (if_stack->fname, ip->nominal_fname, - if_stack->fname_len))) { - fprintf (stderr, ", file "); - eprint_string (if_stack->fname, if_stack->fname_len); - } - fprintf (stderr, ")\n"); - } - if_stack->type = T_ELIF; - } - - if (if_stack->if_succeeded) - skip_if_group (ip, 0, op); - else { - value = eval_if_expression (buf, limit - buf); - if (value == 0) - skip_if_group (ip, 0, op); - else { - ++if_stack->if_succeeded; /* continue processing input */ - output_line_directive (ip, op, 1, same_file); - } - } - return 0; -} - -/* Evaluate a #if expression in BUF, of length LENGTH, then parse the - result as a C expression and return the value as an int. */ - -static HOST_WIDE_INT -eval_if_expression (buf, length) - U_CHAR *buf; - int length; -{ - FILE_BUF temp_obuf; - HASHNODE *save_defined; - HOST_WIDE_INT value; - - save_defined = install ((U_CHAR *) "defined", -1, T_SPEC_DEFINED, - NULL_PTR, -1); - pcp_inside_if = 1; - temp_obuf = expand_to_temp_buffer (buf, buf + length, 0, 1); - pcp_inside_if = 0; - delete_macro (save_defined); /* clean up special symbol */ - - temp_obuf.buf[temp_obuf.length] = '\n'; - value = parse_c_expression ((char *) temp_obuf.buf, - warn_undef && !instack[indepth].system_header_p); - - free (temp_obuf.buf); - - return value; -} - -/* routine to handle ifdef/ifndef. Try to look up the symbol, then do - or don't skip to the #endif/#else/#elif depending on what directive - is actually being processed. */ - -static int -do_xifdef (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword; -{ - int skip; - FILE_BUF *ip = &instack[indepth]; - U_CHAR *end; - int start_of_file = 0; - U_CHAR *control_macro = 0; - - /* Detect a #ifndef at start of file (not counting comments). */ - if (ip->fname != 0 && keyword->type == T_IFNDEF) { - U_CHAR *p = ip->buf; - while (p != directive_start) { - U_CHAR c = *p++; - if (is_space[c]) - ; - /* Make no special provision for backslash-newline here; this is - slower if backslash-newlines are present, but it's correct, - and it's not worth it to tune for the rare backslash-newline. */ - else if (c == '/' - && (*p == '*' || (cplusplus_comments && *p == '/'))) { - /* Skip this comment. */ - int junk = 0; - U_CHAR *save_bufp = ip->bufp; - ip->bufp = p + 1; - p = skip_to_end_of_comment (ip, &junk, 1); - ip->bufp = save_bufp; - } else { - goto fail; - } - } - /* If we get here, this conditional is the beginning of the file. */ - start_of_file = 1; - fail: ; - } - - /* Discard leading and trailing whitespace. */ - SKIP_WHITE_SPACE (buf); - while (limit != buf && is_hor_space[limit[-1]]) limit--; - - /* Find the end of the identifier at the beginning. */ - for (end = buf; is_idchar[*end]; end++); - - if (end == buf) { - skip = (keyword->type == T_IFDEF); - if (! traditional) - pedwarn (end == limit ? "`#%s' with no argument" - : "`#%s' argument starts with punctuation", - keyword->name); - } else { - HASHNODE *hp; - - if (! traditional) { - if (ISDIGIT (buf[0])) - pedwarn ("`#%s' argument starts with a digit", keyword->name); - else if (end != limit) - pedwarn ("garbage at end of `#%s' argument", keyword->name); - } - - hp = lookup (buf, end-buf, -1); - - if (pcp_outfile) { - /* Output a precondition for this macro. */ - if (hp - && (hp->type == T_CONST - || (hp->type == T_MACRO && hp->value.defn->predefined))) - fprintf (pcp_outfile, "#define %s\n", hp->name); - else { - U_CHAR *cp = buf; - fprintf (pcp_outfile, "#undef "); - while (is_idchar[*cp]) /* Ick! */ - fputc (*cp++, pcp_outfile); - putc ('\n', pcp_outfile); - } - } - - skip = (hp == NULL) ^ (keyword->type == T_IFNDEF); - if (start_of_file && !skip) { - control_macro = (U_CHAR *) xmalloc (end - buf + 1); - bcopy ((char *) buf, (char *) control_macro, end - buf); - control_macro[end - buf] = 0; - } - } - - conditional_skip (ip, skip, T_IF, control_macro, op); - return 0; -} - -/* Push TYPE on stack; then, if SKIP is nonzero, skip ahead. - If this is a #ifndef starting at the beginning of a file, - CONTROL_MACRO is the macro name tested by the #ifndef. - Otherwise, CONTROL_MACRO is 0. */ - -static void -conditional_skip (ip, skip, type, control_macro, op) - FILE_BUF *ip; - int skip; - enum node_type type; - U_CHAR *control_macro; - FILE_BUF *op; -{ - IF_STACK_FRAME *temp; - - temp = (IF_STACK_FRAME *) xcalloc (1, sizeof (IF_STACK_FRAME)); - temp->fname = ip->nominal_fname; - temp->fname_len = ip->nominal_fname_len; - temp->lineno = ip->lineno; - temp->next = if_stack; - temp->control_macro = control_macro; - if_stack = temp; - - if_stack->type = type; - - if (skip != 0) { - skip_if_group (ip, 0, op); - return; - } else { - ++if_stack->if_succeeded; - output_line_directive (ip, &outbuf, 1, same_file); - } -} - -/* Skip to #endif, #else, or #elif. adjust line numbers, etc. - Leaves input ptr at the sharp sign found. - If ANY is nonzero, return at next directive of any sort. */ - -static void -skip_if_group (ip, any, op) - FILE_BUF *ip; - int any; - FILE_BUF *op; -{ - register U_CHAR *bp = ip->bufp, *cp; - register U_CHAR *endb = ip->buf + ip->length; - struct directive *kt; - IF_STACK_FRAME *save_if_stack = if_stack; /* don't pop past here */ - U_CHAR *beg_of_line = bp; - register int ident_length; - U_CHAR *ident, *after_ident; - /* Save info about where the group starts. */ - U_CHAR *beg_of_group = bp; - int beg_lineno = ip->lineno; - int skipping_include_directive = 0; - - if (output_conditionals && op != 0) { - char *ptr = "#failed\n"; - int len = strlen (ptr); - - if (op->bufp > op->buf && op->bufp[-1] != '\n') - { - *op->bufp++ = '\n'; - op->lineno++; - } - check_expand (op, len); - bcopy (ptr, (char *) op->bufp, len); - op->bufp += len; - op->lineno++; - output_line_directive (ip, op, 1, 0); - } - - while (bp < endb) { - switch (*bp++) { - case '/': /* possible comment */ - if (*bp == '\\' && bp[1] == '\n') - newline_fix (bp); - if (*bp == '*' - || (cplusplus_comments && *bp == '/')) { - ip->bufp = ++bp; - bp = skip_to_end_of_comment (ip, &ip->lineno, 0); - } - break; - case '<': - if (skipping_include_directive) { - while (bp < endb && *bp != '>' && *bp != '\n') { - if (*bp == '\\' && bp[1] == '\n') { - ip->lineno++; - bp++; - } - bp++; - } - } - break; - case '\"': - if (skipping_include_directive) { - while (bp < endb && *bp != '\n') { - if (*bp == '"') { - bp++; - break; - } - if (*bp == '\\' && bp[1] == '\n') { - ip->lineno++; - bp++; - } - bp++; - } - break; - } - /* Fall through. */ - case '\'': - bp = skip_quoted_string (bp - 1, endb, ip->lineno, &ip->lineno, - NULL_PTR, NULL_PTR); - break; - case '\\': - /* Char after backslash loses its special meaning in some cases. */ - if (*bp == '\n') { - ++ip->lineno; - bp++; - } else if (traditional && bp < endb) - bp++; - break; - case '\n': - ++ip->lineno; - beg_of_line = bp; - skipping_include_directive = 0; - break; - case '%': - if (beg_of_line == 0 || traditional) - break; - ip->bufp = bp - 1; - while (bp[0] == '\\' && bp[1] == '\n') - bp += 2; - if (*bp == ':') - goto sharp_token; - break; - case '#': - /* # keyword: a # must be first nonblank char on the line */ - if (beg_of_line == 0) - break; - ip->bufp = bp - 1; - sharp_token: - /* Scan from start of line, skipping whitespace, comments - and backslash-newlines, and see if we reach this #. - If not, this # is not special. */ - bp = beg_of_line; - /* If -traditional, require # to be at beginning of line. */ - if (!traditional) { - while (1) { - if (is_hor_space[*bp]) - bp++; - else if (*bp == '\\' && bp[1] == '\n') - bp += 2; - else if (*bp == '/' && bp[1] == '*') { - bp += 2; - while (1) - { - if (*bp == '*') - { - if (bp[1] == '/') - { - bp += 2; - break; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, endb - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - bp++; - } - } - /* There is no point in trying to deal with C++ // comments here, - because if there is one, then this # must be part of the - comment and we would never reach here. */ - else break; - } - } - if (bp != ip->bufp) { - bp = ip->bufp + 1; /* Reset bp to after the #. */ - break; - } - - bp = ip->bufp + 1; /* Point after the '#' */ - if (ip->bufp[0] == '%') { - /* Skip past the ':' again. */ - while (*bp == '\\') { - ip->lineno++; - bp += 2; - } - bp++; - } - - /* Skip whitespace and \-newline. */ - while (1) { - if (is_hor_space[*bp]) - bp++; - else if (*bp == '\\' && bp[1] == '\n') - bp += 2; - else if (*bp == '/') { - if (bp[1] == '\\' && bp[2] == '\n') - newline_fix (bp + 1); - if (bp[1] == '*') { - for (bp += 2; ; bp++) { - if (*bp == '\n') - ip->lineno++; - else if (*bp == '*') { - if (bp[-1] == '/' && warn_comments) - warning ("`/*' within comment"); - if (bp[1] == '\\' && bp[2] == '\n') - newline_fix (bp + 1); - if (bp[1] == '/') - break; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, endb - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - } - bp += 2; - } else if (bp[1] == '/' && cplusplus_comments) { - for (bp += 2; ; bp++) { - if (*bp == '\n') - break; - if (*bp == '\\' && bp[1] == '\n') - { - if (warn_comments) - warning ("multiline `//' comment"); - ip->lineno++; - bp++; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, endb - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - } - } else - break; - } else - break; - } - - cp = bp; - - /* Now find end of directive name. - If we encounter a backslash-newline, exchange it with any following - symbol-constituents so that we end up with a contiguous name. */ - - while (1) { - if (is_idchar[*bp]) - bp++; - else { - if (*bp == '\\' && bp[1] == '\n') - name_newline_fix (bp); - if (is_idchar[*bp]) - bp++; - else break; - } - } - ident_length = bp - cp; - ident = cp; - after_ident = bp; - - /* A line of just `#' becomes blank. */ - - if (ident_length == 0 && *after_ident == '\n') { - continue; - } - - if (ident_length == 0 || !is_idstart[*ident]) { - U_CHAR *p = ident; - while (is_idchar[*p]) { - if (*p < '0' || *p > '9') - break; - p++; - } - /* Handle # followed by a line number. */ - if (p != ident && !is_idchar[*p]) { - if (pedantic) - pedwarn ("`#' followed by integer"); - continue; - } - - /* Avoid error for `###' and similar cases unless -pedantic. */ - if (p == ident) { - while (*p == '#' || is_hor_space[*p]) p++; - if (*p == '\n') { - if (pedantic && !lang_asm) - pedwarn ("invalid preprocessing directive"); - continue; - } - } - - if (!lang_asm && pedantic) - pedwarn ("invalid preprocessing directive name"); - continue; - } - - for (kt = directive_table; kt->length >= 0; kt++) { - IF_STACK_FRAME *temp; - if (ident_length == kt->length - && bcmp (cp, kt->name, kt->length) == 0) { - /* If we are asked to return on next directive, do so now. */ - if (any) - goto done; - - switch (kt->type) { - case T_IF: - case T_IFDEF: - case T_IFNDEF: - temp = (IF_STACK_FRAME *) xcalloc (1, sizeof (IF_STACK_FRAME)); - temp->next = if_stack; - if_stack = temp; - temp->lineno = ip->lineno; - temp->fname = ip->nominal_fname; - temp->fname_len = ip->nominal_fname_len; - temp->type = kt->type; - break; - case T_ELSE: - case T_ENDIF: - if (pedantic && if_stack != save_if_stack) - validate_else (bp, endb); - case T_ELIF: - if (if_stack == instack[indepth].if_stack) { - error ("`#%s' not within a conditional", kt->name); - break; - } - else if (if_stack == save_if_stack) - goto done; /* found what we came for */ - - if (kt->type != T_ENDIF) { - if (if_stack->type == T_ELSE) - error ("`#else' or `#elif' after `#else'"); - if_stack->type = kt->type; - break; - } - - temp = if_stack; - if_stack = if_stack->next; - free (temp); - break; - - case T_INCLUDE: - case T_INCLUDE_NEXT: - case T_IMPORT: - skipping_include_directive = 1; - break; - - default: - break; - } - break; - } - } - /* Don't let erroneous code go by. */ - if (kt->length < 0 && !lang_asm && pedantic) - pedwarn ("invalid preprocessing directive name"); - } - } - - ip->bufp = bp; - /* after this returns, rescan will exit because ip->bufp - now points to the end of the buffer. - rescan is responsible for the error message also. */ - - done: - if (output_conditionals && op != 0) { - char *ptr = "#endfailed\n"; - int len = strlen (ptr); - - if (op->bufp > op->buf && op->bufp[-1] != '\n') - { - *op->bufp++ = '\n'; - op->lineno++; - } - check_expand (op, beg_of_line - beg_of_group); - bcopy ((char *) beg_of_group, (char *) op->bufp, - beg_of_line - beg_of_group); - op->bufp += beg_of_line - beg_of_group; - op->lineno += ip->lineno - beg_lineno; - check_expand (op, len); - bcopy (ptr, (char *) op->bufp, len); - op->bufp += len; - op->lineno++; - } -} - -/* Handle a #else directive. Do this by just continuing processing - without changing if_stack ; this is so that the error message - for missing #endif's etc. will point to the original #if. It - is possible that something different would be better. */ - -static int -do_else (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - FILE_BUF *ip = &instack[indepth]; - - if (pedantic) { - SKIP_WHITE_SPACE (buf); - if (buf != limit) - pedwarn ("text following `#else' violates ANSI standard"); - } - - if (if_stack == instack[indepth].if_stack) { - error ("`#else' not within a conditional"); - return 0; - } else { - /* #ifndef can't have its special treatment for containing the whole file - if it has a #else clause. */ - if_stack->control_macro = 0; - - if (if_stack->type != T_IF && if_stack->type != T_ELIF) { - error ("`#else' after `#else'"); - fprintf (stderr, " (matches line %d", if_stack->lineno); - if (! (if_stack->fname_len == ip->nominal_fname_len - && !bcmp (if_stack->fname, ip->nominal_fname, - if_stack->fname_len))) { - fprintf (stderr, ", file "); - eprint_string (if_stack->fname, if_stack->fname_len); - } - fprintf (stderr, ")\n"); - } - if_stack->type = T_ELSE; - } - - if (if_stack->if_succeeded) - skip_if_group (ip, 0, op); - else { - ++if_stack->if_succeeded; /* continue processing input */ - output_line_directive (ip, op, 1, same_file); - } - return 0; -} - -/* Unstack after #endif directive. */ - -static int -do_endif (buf, limit, op, keyword) - U_CHAR *buf, *limit; - FILE_BUF *op; - struct directive *keyword ATTRIBUTE_UNUSED; -{ - if (pedantic) { - SKIP_WHITE_SPACE (buf); - if (buf != limit) - pedwarn ("text following `#endif' violates ANSI standard"); - } - - if (if_stack == instack[indepth].if_stack) - error ("unbalanced `#endif'"); - else { - IF_STACK_FRAME *temp = if_stack; - if_stack = if_stack->next; - if (temp->control_macro != 0) { - /* This #endif matched a #ifndef at the start of the file. - See if it is at the end of the file. */ - FILE_BUF *ip = &instack[indepth]; - U_CHAR *p = ip->bufp; - U_CHAR *ep = ip->buf + ip->length; - - while (p != ep) { - U_CHAR c = *p++; - if (!is_space[c]) { - if (c == '/' - && (*p == '*' || (cplusplus_comments && *p == '/'))) { - /* Skip this comment. */ - int junk = 0; - U_CHAR *save_bufp = ip->bufp; - ip->bufp = p + 1; - p = skip_to_end_of_comment (ip, &junk, 1); - ip->bufp = save_bufp; - } else - goto fail; - } - } - /* If we get here, this #endif ends a #ifndef - that contains all of the file (aside from whitespace). - Arrange not to include the file again - if the macro that was tested is defined. - - Do not do this for the top-level file in a -include or any - file in a -imacros. */ - if (indepth != 0 - && ! (indepth == 1 && no_record_file) - && ! (no_record_file && no_output)) - record_control_macro (ip->inc, temp->control_macro); - fail: ; - } - free (temp); - output_line_directive (&instack[indepth], op, 1, same_file); - } - return 0; -} - -/* When an #else or #endif is found while skipping failed conditional, - if -pedantic was specified, this is called to warn about text after - the directive name. P points to the first char after the directive - name. */ - -static void -validate_else (p, limit) - register U_CHAR *p; - register U_CHAR *limit; -{ - /* Advance P over whitespace and comments. */ - while (1) { - while (*p == '\\' && p[1] == '\n') - p += 2; - if (is_hor_space[*p]) - p++; - else if (*p == '/') { - while (p[1] == '\\' && p[2] == '\n') - p += 2; - if (p[1] == '*') { - /* Don't bother warning about unterminated comments - since that will happen later. Just be sure to exit. */ - for (p += 2; ; p++) { - if (p == limit) - return; - if (*p == '*') { - while (p[1] == '\\' && p[2] == '\n') - p += 2; - if (p[1] == '/') { - p += 2; - break; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (p, limit - p); - if (length > 1) - p += (length - 1); - } -#endif - } - } - } - else if (cplusplus_comments && p[1] == '/') - return; - else break; - } else break; - } - if (*p != '\n') - pedwarn ("text following `#else' or `#endif' violates ANSI standard"); -} - -/* Skip a comment, assuming the input ptr immediately follows the - initial slash-star. Bump *LINE_COUNTER for each newline. - (The canonical line counter is &ip->lineno.) - Don't use this routine (or the next one) if bumping the line - counter is not sufficient to deal with newlines in the string. - - If NOWARN is nonzero, don't warn about slash-star inside a comment. - This feature is useful when processing a comment that is going to - be processed or was processed at another point in the preprocessor, - to avoid a duplicate warning. Likewise for unterminated comment - errors. */ - -static U_CHAR * -skip_to_end_of_comment (ip, line_counter, nowarn) - register FILE_BUF *ip; - int *line_counter; /* place to remember newlines, or NULL */ - int nowarn; -{ - register U_CHAR *limit = ip->buf + ip->length; - register U_CHAR *bp = ip->bufp; - FILE_BUF *op = put_out_comments && !line_counter ? &outbuf : (FILE_BUF *) 0; - int start_line = line_counter ? *line_counter : 0; - - /* JF this line_counter stuff is a crock to make sure the - comment is only put out once, no matter how many times - the comment is skipped. It almost works */ - if (op) { - *op->bufp++ = '/'; - *op->bufp++ = bp[-1]; - } - if (cplusplus_comments && bp[-1] == '/') { - for (; bp < limit; bp++) { - if (*bp == '\n') - break; - if (*bp == '\\' && bp + 1 < limit && bp[1] == '\n') - { - if (!nowarn && warn_comments) - warning ("multiline `//' comment"); - if (line_counter) - ++*line_counter; - if (op) - { - ++op->lineno; - *op->bufp++ = *bp; - } - ++bp; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, limit - bp); - if (length > 1) - { - if (op) - { - bcopy (bp, op->bufp, length - 1); - op->bufp += (length - 1); - } - bp += (length - 1); - } - } -#endif - } - if (op) - *op->bufp++ = *bp; - } - ip->bufp = bp; - return bp; - } - while (bp < limit) { - if (op) - *op->bufp++ = *bp; - switch (*bp++) { - case '\n': - /* If this is the end of the file, we have an unterminated comment. - Don't swallow the newline. We are guaranteed that there will be a - trailing newline and various pieces assume it's there. */ - if (bp == limit) - { - --bp; - --limit; - break; - } - if (line_counter != NULL) - ++*line_counter; - if (op) - ++op->lineno; - break; - case '*': - if (bp[-2] == '/' && !nowarn && warn_comments) - warning ("`/*' within comment"); - if (*bp == '\\' && bp[1] == '\n') - newline_fix (bp); - if (*bp == '/') { - if (op) - *op->bufp++ = '/'; - ip->bufp = ++bp; - return bp; - } - break; -#ifdef MULTIBYTE_CHARS - default: - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - bp--; - length = local_mblen (bp, limit - bp); - if (length <= 0) - length = 1; - if (op) - { - op->bufp--; - bcopy (bp, op->bufp, length); - op->bufp += length; - } - bp += length; - } -#endif - } - } - - if (!nowarn) - error_with_line (line_for_error (start_line), "unterminated comment"); - ip->bufp = bp; - return bp; -} - -/* Skip over a quoted string. BP points to the opening quote. - Returns a pointer after the closing quote. Don't go past LIMIT. - START_LINE is the line number of the starting point (but it need - not be valid if the starting point is inside a macro expansion). - - The input stack state is not changed. - - If COUNT_NEWLINES is nonzero, it points to an int to increment - for each newline passed. - - If BACKSLASH_NEWLINES_P is nonzero, store 1 thru it - if we pass a backslash-newline. - - If EOFP is nonzero, set *EOFP to 1 if the string is unterminated. */ - -static U_CHAR * -skip_quoted_string (bp, limit, start_line, count_newlines, backslash_newlines_p, eofp) - register U_CHAR *bp; - register U_CHAR *limit; - int start_line; - int *count_newlines; - int *backslash_newlines_p; - int *eofp; -{ - register U_CHAR c, match; - - match = *bp++; - while (1) { - if (bp >= limit) { - error_with_line (line_for_error (start_line), - "unterminated string or character constant"); - error_with_line (multiline_string_line, - "possible real start of unterminated constant"); - multiline_string_line = 0; - if (eofp) - *eofp = 1; - break; - } - c = *bp++; - if (c == '\\') { - while (*bp == '\\' && bp[1] == '\n') { - if (backslash_newlines_p) - *backslash_newlines_p = 1; - if (count_newlines) - ++*count_newlines; - bp += 2; - } - if (*bp == '\n') { - if (backslash_newlines_p) - *backslash_newlines_p = 1; - if (count_newlines) - ++*count_newlines; - } - bp++; - } else if (c == '\n') { - if (traditional -/* CYGNUS LOCAL chill */ - || chill -/* END CYGNUS LOCAL chill */ - ) { - /* Unterminated strings and character constants are 'valid'. */ - bp--; /* Don't consume the newline. */ - if (eofp) - *eofp = 1; - break; - } - if (match == '\'') { - error_with_line (line_for_error (start_line), - "unterminated string or character constant"); - bp--; - if (eofp) - *eofp = 1; - break; - } - /* If not traditional, then allow newlines inside strings. */ - if (count_newlines) - ++*count_newlines; - if (multiline_string_line == 0) { - if (pedantic) - pedwarn_with_line (line_for_error (start_line), - "string constant runs past end of line"); - multiline_string_line = start_line; - } - } else if (c == match) - break; -#ifdef MULTIBYTE_CHARS -/* CYGNUS LOCAL chill */ - else if (! chill) -/* END CYGNUS LOCAL chill */ - { - int length; - --bp; - length = local_mblen (bp, limit - bp); - if (length <= 0) - length = 1; - bp += length; - } -#endif - } - return bp; -} - -/* Place into DST a quoted string representing the string SRC. - SRCLEN is the length of SRC; SRC may contain null bytes. - Return the address of DST's terminating null. */ - -static char * -quote_string (dst, src, srclen) - char *dst, *src; - size_t srclen; -{ - U_CHAR c; - char *srclim = src + srclen; - - *dst++ = '\"'; - while (src != srclim) - switch ((c = *src++)) - { - default: - if (ISPRINT (c)) - *dst++ = c; - else - { - sprintf (dst, "\\%03o", c); - dst += 4; - } - break; - - case '\"': - case '\\': - *dst++ = '\\'; - *dst++ = c; - break; - } - - *dst++ = '\"'; - *dst = '\0'; - return dst; -} - -/* Skip across a group of balanced parens, starting from IP->bufp. - IP->bufp is updated. Use this with IP->bufp pointing at an open-paren. - - This does not handle newlines, because it's used for the arg of #if, - where there aren't any newlines. Also, backslash-newline can't appear. */ - -static U_CHAR * -skip_paren_group (ip) - register FILE_BUF *ip; -{ - U_CHAR *limit = ip->buf + ip->length; - U_CHAR *p = ip->bufp; - int depth = 0; - int lines_dummy = 0; - - while (p != limit) { - int c = *p++; - switch (c) { - case '(': - depth++; - break; - - case ')': - depth--; - if (depth == 0) - return ip->bufp = p; - break; - - case '/': - if (*p == '*') { - ip->bufp = p; - p = skip_to_end_of_comment (ip, &lines_dummy, 0); - p = ip->bufp; - } - - case '"': - case '\'': - { - int eofp = 0; - p = skip_quoted_string (p - 1, limit, 0, NULL_PTR, NULL_PTR, &eofp); - if (eofp) - return ip->bufp = p; - } - break; - } - } - - ip->bufp = p; - return p; -} - -/* Write out a #line directive, for instance, after an #include file. - If CONDITIONAL is nonzero, we can omit the #line if it would - appear to be a no-op, and we can output a few newlines instead - if we want to increase the line number by a small amount. - FILE_CHANGE says whether we are entering a file, leaving, or neither. */ - -static void -output_line_directive (ip, op, conditional, file_change) - FILE_BUF *ip, *op; - int conditional; - enum file_change_code file_change; -{ - int len; - char *line_directive_buf, *line_end; - - if (no_line_directives - || ip->fname == NULL - || no_output) { - op->lineno = ip->lineno; - return; - } - - if (conditional) { - if (ip->lineno == op->lineno) - return; - - /* If the inherited line number is a little too small, - output some newlines instead of a #line directive. */ - if (ip->lineno > op->lineno && ip->lineno < op->lineno + 8) { - check_expand (op, 10); - while (ip->lineno > op->lineno) { - *op->bufp++ = '\n'; - op->lineno++; - } - return; - } - } - - /* Output a positive line number if possible. */ - while (ip->lineno <= 0 && ip->bufp - ip->buf < ip->length - && *ip->bufp == '\n') { - ip->lineno++; - ip->bufp++; - } - - line_directive_buf = (char *) alloca (4 * ip->nominal_fname_len + 100); - sprintf (line_directive_buf, "# %d ", ip->lineno); - line_end = quote_string (line_directive_buf + strlen (line_directive_buf), - ip->nominal_fname, ip->nominal_fname_len); - if (file_change != same_file) { - *line_end++ = ' '; - *line_end++ = file_change == enter_file ? '1' : '2'; - } - /* Tell cc1 if following text comes from a system header file. */ - if (ip->system_header_p) { - *line_end++ = ' '; - *line_end++ = '3'; - } -#ifndef NO_IMPLICIT_EXTERN_C - /* Tell cc1plus if following text should be treated as C. */ - if (ip->system_header_p == 2 && cplusplus) { - *line_end++ = ' '; - *line_end++ = '4'; - } -#endif - *line_end++ = '\n'; - len = line_end - line_directive_buf; - check_expand (op, len + 1); - if (op->bufp > op->buf && op->bufp[-1] != '\n') - *op->bufp++ = '\n'; - bcopy ((char *) line_directive_buf, (char *) op->bufp, len); - op->bufp += len; - op->lineno = ip->lineno; -} - -/* This structure represents one parsed argument in a macro call. - `raw' points to the argument text as written (`raw_length' is its length). - `expanded' points to the argument's macro-expansion - (its length is `expand_length'). - `stringified_length' is the length the argument would have - if stringified. - `use_count' is the number of times this macro arg is substituted - into the macro. If the actual use count exceeds 10, - the value stored is 10. - `free1' and `free2', if nonzero, point to blocks to be freed - when the macro argument data is no longer needed. */ - -struct argdata { - U_CHAR *raw, *expanded; - int raw_length, expand_length; - int stringified_length; - U_CHAR *free1, *free2; - char newlines; - char use_count; -}; - -/* Expand a macro call. - HP points to the symbol that is the macro being called. - Put the result of expansion onto the input stack - so that subsequent input by our caller will use it. - - If macro wants arguments, caller has already verified that - an argument list follows; arguments come from the input stack. */ - -static void -macroexpand (hp, op) - HASHNODE *hp; - FILE_BUF *op; -{ - int nargs; - DEFINITION *defn = hp->value.defn; - register U_CHAR *xbuf; - int xbuf_len; - int start_line = instack[indepth].lineno; - int rest_args, rest_zero; - - CHECK_DEPTH (return;); - - /* it might not actually be a macro. */ - if (hp->type != T_MACRO) { - special_symbol (hp, op); - return; - } - - /* This macro is being used inside a #if, which means it must be */ - /* recorded as a precondition. */ - if (pcp_inside_if && pcp_outfile && defn->predefined) - dump_single_macro (hp, pcp_outfile); - - nargs = defn->nargs; - - if (nargs >= 0) { - register int i; - struct argdata *args; - char *parse_error = 0; - - args = (struct argdata *) alloca ((nargs + 1) * sizeof (struct argdata)); - - for (i = 0; i < nargs; i++) { - args[i].raw = (U_CHAR *) ""; - args[i].expanded = 0; - args[i].raw_length = args[i].expand_length - = args[i].stringified_length = 0; - args[i].free1 = args[i].free2 = 0; - args[i].use_count = 0; - } - - /* Parse all the macro args that are supplied. I counts them. - The first NARGS args are stored in ARGS. - The rest are discarded. - If rest_args is set then we assume macarg absorbed the rest of the args. - */ - i = 0; - rest_args = 0; - do { - /* Discard the open-parenthesis or comma before the next arg. */ - ++instack[indepth].bufp; - if (rest_args) - continue; - if (i < nargs || (nargs == 0 && i == 0)) { - /* If we are working on last arg which absorbs rest of args... */ - if (i == nargs - 1 && defn->rest_args) - rest_args = 1; - parse_error = macarg (&args[i], rest_args); - } - else - parse_error = macarg (NULL_PTR, 0); - if (parse_error) { - error_with_line (line_for_error (start_line), parse_error); - break; - } - i++; - } while (*instack[indepth].bufp != ')'); - - /* If we got one arg but it was just whitespace, call that 0 args. */ - if (i == 1) { - register U_CHAR *bp = args[0].raw; - register U_CHAR *lim = bp + args[0].raw_length; - /* cpp.texi says for foo ( ) we provide one argument. - However, if foo wants just 0 arguments, treat this as 0. */ - if (nargs == 0) - while (bp != lim && is_space[*bp]) bp++; - if (bp == lim) - i = 0; - } - - /* Don't output an error message if we have already output one for - a parse error above. */ - rest_zero = 0; - if (nargs == 0 && i > 0) { - if (! parse_error) - error ("arguments given to macro `%s'", hp->name); - } else if (i < nargs) { - /* traditional C allows foo() if foo wants one argument. */ - if (nargs == 1 && i == 0 && traditional) - ; - /* the rest args token is allowed to absorb 0 tokens */ - else if (i == nargs - 1 && defn->rest_args) - rest_zero = 1; - else if (parse_error) - ; - else if (i == 0) - error ("macro `%s' used without args", hp->name); - else if (i == 1) - error ("macro `%s' used with just one arg", hp->name); - else - error ("macro `%s' used with only %d args", hp->name, i); - } else if (i > nargs) { - if (! parse_error) - error ("macro `%s' used with too many (%d) args", hp->name, i); - } - - /* Swallow the closeparen. */ - ++instack[indepth].bufp; - - /* If macro wants zero args, we parsed the arglist for checking only. - Read directly from the macro definition. */ - if (nargs == 0) { - xbuf = defn->expansion; - xbuf_len = defn->length; - } else { - register U_CHAR *exp = defn->expansion; - register int offset; /* offset in expansion, - copied a piece at a time */ - register int totlen; /* total amount of exp buffer filled so far */ - - register struct reflist *ap, *last_ap; - - /* Macro really takes args. Compute the expansion of this call. */ - - /* Compute length in characters of the macro's expansion. - Also count number of times each arg is used. */ - xbuf_len = defn->length; - for (ap = defn->pattern; ap != NULL; ap = ap->next) { - if (ap->stringify) - xbuf_len += args[ap->argno].stringified_length; - else if (ap->raw_before != 0 || ap->raw_after != 0 || traditional) - /* Add 4 for two newline-space markers to prevent - token concatenation. */ - xbuf_len += args[ap->argno].raw_length + 4; - else { - /* We have an ordinary (expanded) occurrence of the arg. - So compute its expansion, if we have not already. */ - if (args[ap->argno].expanded == 0) { - FILE_BUF obuf; - obuf = expand_to_temp_buffer (args[ap->argno].raw, - args[ap->argno].raw + args[ap->argno].raw_length, - 1, 0); - - args[ap->argno].expanded = obuf.buf; - args[ap->argno].expand_length = obuf.length; - args[ap->argno].free2 = obuf.buf; - } - - /* Add 4 for two newline-space markers to prevent - token concatenation. */ - xbuf_len += args[ap->argno].expand_length + 4; - } - if (args[ap->argno].use_count < 10) - args[ap->argno].use_count++; - } - - xbuf = (U_CHAR *) xmalloc (xbuf_len + 1); - - /* Generate in XBUF the complete expansion - with arguments substituted in. - TOTLEN is the total size generated so far. - OFFSET is the index in the definition - of where we are copying from. */ - offset = totlen = 0; - for (last_ap = NULL, ap = defn->pattern; ap != NULL; - last_ap = ap, ap = ap->next) { - register struct argdata *arg = &args[ap->argno]; - int count_before = totlen; - - /* Add chars to XBUF. */ - for (i = 0; i < ap->nchars; i++, offset++) - xbuf[totlen++] = exp[offset]; - - /* If followed by an empty rest arg with concatenation, - delete the last run of nonwhite chars. */ - if (rest_zero && totlen > count_before - && ((ap->rest_args && ap->raw_before != 0) - || (last_ap != NULL && last_ap->rest_args - && last_ap->raw_after != 0))) { - /* Delete final whitespace. */ - while (totlen > count_before && is_space[xbuf[totlen - 1]]) { - totlen--; - } - - /* Delete the nonwhites before them. */ - while (totlen > count_before && ! is_space[xbuf[totlen - 1]]) { - totlen--; - } - } - - if (ap->stringify != 0) { - int arglen = arg->raw_length; - int escaped = 0; - int in_string = 0; - int c; - i = 0; - while (i < arglen - && (c = arg->raw[i], is_space[c])) - i++; - while (i < arglen - && (c = arg->raw[arglen - 1], is_space[c])) - arglen--; - if (!traditional) - xbuf[totlen++] = '\"'; /* insert beginning quote */ - for (; i < arglen; i++) { - c = arg->raw[i]; - - if (! in_string) { - /* Special markers Newline Space - generate nothing for a stringified argument. */ - if (c == '\n' && arg->raw[i+1] != '\n') { - i++; - continue; - } - - /* Internal sequences of whitespace are replaced by one space - except within an string or char token. */ - if (c == '\n' ? arg->raw[i+1] == '\n' : is_space[c]) { - while (1) { - /* Note that Newline Space does occur within whitespace - sequences; consider it part of the sequence. */ - if (c == '\n' && is_space[arg->raw[i+1]]) - i += 2; - else if (c != '\n' && is_space[c]) - i++; - else break; - c = arg->raw[i]; - } - i--; - c = ' '; - } - } - - if (escaped) - escaped = 0; - else { - if (c == '\\') - escaped = 1; - else if (in_string) { - if (c == in_string) - in_string = 0; - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (arg->raw + i, arglen - i); - if (length > 1) - { - bcopy (arg->raw + i, xbuf + totlen, length); - i += length - 1; - totlen += length; - continue; - } - } -#endif - } - } else if (c == '\"' || c == '\'') - in_string = c; - } - - /* Escape these chars */ - if (c == '\"' || (in_string && c == '\\')) - xbuf[totlen++] = '\\'; - /* We used to output e.g. \008 for control characters here, - but this doesn't conform to the C Standard. - Just output the characters as-is. */ - xbuf[totlen++] = c; - } - if (!traditional) - xbuf[totlen++] = '\"'; /* insert ending quote */ - } else if (ap->raw_before != 0 || ap->raw_after != 0 || traditional) { - U_CHAR *p1 = arg->raw; - U_CHAR *l1 = p1 + arg->raw_length; - if (ap->raw_before != 0) { - while (p1 != l1 && is_space[*p1]) p1++; - while (p1 != l1 && is_idchar[*p1]) - xbuf[totlen++] = *p1++; - /* Delete any no-reexpansion marker that follows - an identifier at the beginning of the argument - if the argument is concatenated with what precedes it. */ - if (p1[0] == '\n' && p1[1] == '-') - p1 += 2; - } else if (!traditional) { - /* Ordinary expanded use of the argument. - Put in newline-space markers to prevent token pasting. */ - xbuf[totlen++] = '\n'; - xbuf[totlen++] = ' '; - } - if (ap->raw_after != 0) { - /* Arg is concatenated after: delete trailing whitespace, - whitespace markers, and no-reexpansion markers. */ - while (p1 != l1) { - if (is_space[l1[-1]]) l1--; - else if (l1[-1] == '-') { - U_CHAR *p2 = l1 - 1; - /* If a `-' is preceded by an odd number of newlines then it - and the last newline are a no-reexpansion marker. */ - while (p2 != p1 && p2[-1] == '\n') p2--; - if ((l1 - 1 - p2) & 1) { - l1 -= 2; - } - else break; - } - else break; - } - } - - bcopy ((char *) p1, (char *) (xbuf + totlen), l1 - p1); - totlen += l1 - p1; - if (!traditional && ap->raw_after == 0) { - /* Ordinary expanded use of the argument. - Put in newline-space markers to prevent token pasting. */ - xbuf[totlen++] = '\n'; - xbuf[totlen++] = ' '; - } - } else { - /* Ordinary expanded use of the argument. - Put in newline-space markers to prevent token pasting. */ - if (!traditional) { - xbuf[totlen++] = '\n'; - xbuf[totlen++] = ' '; - } - bcopy ((char *) arg->expanded, (char *) (xbuf + totlen), - arg->expand_length); - totlen += arg->expand_length; - if (!traditional) { - xbuf[totlen++] = '\n'; - xbuf[totlen++] = ' '; - } - /* If a macro argument with newlines is used multiple times, - then only expand the newlines once. This avoids creating output - lines which don't correspond to any input line, which confuses - gdb and gcov. */ - if (arg->use_count > 1 && arg->newlines > 0) { - /* Don't bother doing change_newlines for subsequent - uses of arg. */ - arg->use_count = 1; - arg->expand_length - = change_newlines (arg->expanded, arg->expand_length); - } - } - - if (totlen > xbuf_len) - abort (); - } - - /* If there is anything left of the definition after handling - the arg list, copy that in too. */ - - for (i = offset; i < defn->length; i++) { - /* if we've reached the end of the macro */ - if (exp[i] == ')') - rest_zero = 0; - if (! (rest_zero && last_ap != NULL && last_ap->rest_args - && last_ap->raw_after != 0)) - xbuf[totlen++] = exp[i]; - } - - xbuf[totlen] = 0; - xbuf_len = totlen; - - for (i = 0; i < nargs; i++) { - if (args[i].free1 != 0) - free (args[i].free1); - if (args[i].free2 != 0) - free (args[i].free2); - } - } - } else { - xbuf = defn->expansion; - xbuf_len = defn->length; - } - - /* Now put the expansion on the input stack - so our caller will commence reading from it. */ - { - register FILE_BUF *ip2; - - ip2 = &instack[++indepth]; - - ip2->fname = 0; - ip2->nominal_fname = 0; - ip2->nominal_fname_len = 0; - ip2->inc = 0; - /* This may not be exactly correct, but will give much better error - messages for nested macro calls than using a line number of zero. */ - ip2->lineno = start_line; - ip2->buf = xbuf; - ip2->length = xbuf_len; - ip2->bufp = xbuf; - ip2->free_ptr = (nargs > 0) ? xbuf : 0; - ip2->macro = hp; - ip2->if_stack = if_stack; - ip2->system_header_p = 0; - - /* Recursive macro use sometimes works traditionally. - #define foo(x,y) bar (x (y,0), y) - foo (foo, baz) */ - - if (!traditional) - hp->type = T_DISABLED; - } -} - -/* Parse a macro argument and store the info on it into *ARGPTR. - REST_ARGS is passed to macarg1 to make it absorb the rest of the args. - Return nonzero to indicate a syntax error. */ - -static char * -macarg (argptr, rest_args) - register struct argdata *argptr; - int rest_args; -{ - FILE_BUF *ip = &instack[indepth]; - int paren = 0; - int newlines = 0; - int comments = 0; - char *result = 0; - - /* Try to parse as much of the argument as exists at this - input stack level. */ - U_CHAR *bp = macarg1 (ip->bufp, ip->buf + ip->length, ip->macro, - &paren, &newlines, &comments, rest_args); - - /* If we find the end of the argument at this level, - set up *ARGPTR to point at it in the input stack. */ - if (!(ip->fname != 0 && (newlines != 0 || comments != 0)) - && bp != ip->buf + ip->length) { - if (argptr != 0) { - argptr->raw = ip->bufp; - argptr->raw_length = bp - ip->bufp; - argptr->newlines = newlines; - } - ip->bufp = bp; - } else { - /* This input stack level ends before the macro argument does. - We must pop levels and keep parsing. - Therefore, we must allocate a temporary buffer and copy - the macro argument into it. */ - int bufsize = bp - ip->bufp; - int extra = newlines; - U_CHAR *buffer = (U_CHAR *) xmalloc (bufsize + extra + 1); - int final_start = 0; - - bcopy ((char *) ip->bufp, (char *) buffer, bufsize); - ip->bufp = bp; - ip->lineno += newlines; - - while (bp == ip->buf + ip->length) { - if (instack[indepth].macro == 0) { - result = "unterminated macro call"; - break; - } - ip->macro->type = T_MACRO; - if (ip->free_ptr) - free (ip->free_ptr); - ip = &instack[--indepth]; - newlines = 0; - comments = 0; - bp = macarg1 (ip->bufp, ip->buf + ip->length, ip->macro, &paren, - &newlines, &comments, rest_args); - final_start = bufsize; - bufsize += bp - ip->bufp; - extra += newlines; - buffer = (U_CHAR *) xrealloc (buffer, bufsize + extra + 1); - bcopy ((char *) ip->bufp, (char *) (buffer + bufsize - (bp - ip->bufp)), - bp - ip->bufp); - ip->bufp = bp; - ip->lineno += newlines; - } - - /* Now, if arg is actually wanted, record its raw form, - discarding comments and duplicating newlines in whatever - part of it did not come from a macro expansion. - EXTRA space has been preallocated for duplicating the newlines. - FINAL_START is the index of the start of that part. */ - if (argptr != 0) { - argptr->raw = buffer; - argptr->raw_length = bufsize; - argptr->free1 = buffer; - argptr->newlines = newlines; - if ((newlines || comments) && ip->fname != 0) - argptr->raw_length - = final_start + - discard_comments (argptr->raw + final_start, - argptr->raw_length - final_start, - newlines); - argptr->raw[argptr->raw_length] = 0; - if (argptr->raw_length > bufsize + extra) - abort (); - } - } - - /* If we are not discarding this argument, - macroexpand it and compute its length as stringified. - All this info goes into *ARGPTR. */ - - if (argptr != 0) { - register U_CHAR *buf, *lim; - register int totlen; - - buf = argptr->raw; - lim = buf + argptr->raw_length; - - while (buf != lim && is_space[*buf]) - buf++; - while (buf != lim && is_space[lim[-1]]) - lim--; - totlen = traditional ? 0 : 2; /* Count opening and closing quote. */ - while (buf != lim) { - register U_CHAR c = *buf++; - totlen++; - /* Internal sequences of whitespace are replaced by one space - in most cases, but not always. So count all the whitespace - in case we need to keep it all. */ -#if 0 - if (is_space[c]) - SKIP_ALL_WHITE_SPACE (buf); - else -#endif - if (c == '\"' || c == '\\') /* escape these chars */ - totlen++; - } - argptr->stringified_length = totlen; - } - return result; -} - -/* Scan text from START (inclusive) up to LIMIT (exclusive), - taken from the expansion of MACRO, - counting parens in *DEPTHPTR, - and return if reach LIMIT - or before a `)' that would make *DEPTHPTR negative - or before a comma when *DEPTHPTR is zero. - Single and double quotes are matched and termination - is inhibited within them. Comments also inhibit it. - Value returned is pointer to stopping place. - - Increment *NEWLINES each time a newline is passed. - REST_ARGS notifies macarg1 that it should absorb the rest of the args. - Set *COMMENTS to 1 if a comment is seen. */ - -static U_CHAR * -macarg1 (start, limit, macro, depthptr, newlines, comments, rest_args) - U_CHAR *start; - register U_CHAR *limit; - struct hashnode *macro; - int *depthptr, *newlines, *comments; - int rest_args; -{ - register U_CHAR *bp = start; - - while (bp < limit) { - switch (*bp) { - case '(': - (*depthptr)++; - break; - case ')': - if (--(*depthptr) < 0) - return bp; - break; - case '\\': - /* Traditionally, backslash makes following char not special. */ - if (traditional && bp + 1 < limit && bp[1] != '\n') - bp++; - break; - case '\n': - ++*newlines; - break; - case '/': - if (macro) - break; - if (bp[1] == '\\' && bp[2] == '\n') - newline_fix (bp + 1); - if (bp[1] == '*') { - *comments = 1; - for (bp += 2; bp < limit; bp++) { - if (*bp == '\n') - ++*newlines; - else if (*bp == '*') { - if (bp[-1] == '/' && warn_comments) - warning ("`/*' within comment"); - if (bp[1] == '\\' && bp[2] == '\n') - newline_fix (bp + 1); - if (bp[1] == '/') { - bp++; - break; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, limit - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - } - } else if (bp[1] == '/' && cplusplus_comments) { - *comments = 1; - for (bp += 2; bp < limit; bp++) { - if (*bp == '\n') { - ++*newlines; - break; - } - if (*bp == '\\' && bp + 1 < limit && bp[1] == '\n') - { - ++*newlines; - if (warn_comments) - warning ("multiline `//' comment"); - ++bp; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, limit - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - } - } - break; - case '\'': - case '\"': - { - int quotec; - for (quotec = *bp++; bp + 1 < limit && *bp != quotec; bp++) { - if (*bp == '\\') { - bp++; - if (*bp == '\n') - ++*newlines; - if (!macro) { - while (*bp == '\\' && bp[1] == '\n') { - bp += 2; - ++*newlines; - } - } - } else if (*bp == '\n') { - ++*newlines; - if (quotec == '\'') - break; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - length = local_mblen (bp, limit - bp); - if (length > 1) - bp += (length - 1); - } -#endif - } - } - } - break; - case ',': - /* if we've returned to lowest level and we aren't absorbing all args */ - if ((*depthptr) == 0 && rest_args == 0) - return bp; - break; - } - bp++; - } - - return bp; -} - -/* Discard comments and duplicate newlines - in the string of length LENGTH at START, - except inside of string constants. - The string is copied into itself with its beginning staying fixed. - - NEWLINES is the number of newlines that must be duplicated. - We assume that that much extra space is available past the end - of the string. */ - -static int -discard_comments (start, length, newlines) - U_CHAR *start; - int length; - int newlines; -{ - register U_CHAR *ibp; - register U_CHAR *obp; - register U_CHAR *limit; - register int c; - - /* If we have newlines to duplicate, copy everything - that many characters up. Then, in the second part, - we will have room to insert the newlines - while copying down. - NEWLINES may actually be too large, because it counts - newlines in string constants, and we don't duplicate those. - But that does no harm. */ - if (newlines > 0) { - ibp = start + length; - obp = ibp + newlines; - limit = start; - while (limit != ibp) - *--obp = *--ibp; - } - - ibp = start + newlines; - limit = start + length + newlines; - obp = start; - - while (ibp < limit) { - *obp++ = c = *ibp++; - switch (c) { - case '\n': - /* Duplicate the newline. */ - *obp++ = '\n'; - break; - - case '\\': - if (*ibp == '\n') { - obp--; - ibp++; - } - break; - - case '/': - if (*ibp == '\\' && ibp[1] == '\n') - newline_fix (ibp); - /* Delete any comment. */ - if (cplusplus_comments && ibp[0] == '/') { - /* Comments are equivalent to spaces. */ - obp[-1] = ' '; - ibp++; - while (ibp < limit) - { - if (*ibp == '\n') - break; - if (*ibp == '\\' && ibp + 1 < limit && ibp[1] == '\n') - ibp++; - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length = local_mblen (ibp, limit - ibp); - if (length > 1) - ibp += (length - 1); - } -#endif - } - ibp++; - } - break; - } - if (ibp[0] != '*' || ibp + 1 >= limit) - break; - /* Comments are equivalent to spaces. - For -traditional, a comment is equivalent to nothing. */ - if (traditional) - obp--; - else - obp[-1] = ' '; - while (++ibp < limit) { - if (ibp[0] == '*') { - if (ibp[1] == '\\' && ibp[2] == '\n') - newline_fix (ibp + 1); - if (ibp[1] == '/') { - ibp += 2; - break; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length = local_mblen (ibp, limit - ibp); - if (length > 1) - ibp += (length - 1); - } -#endif - } - } - break; - - case '\'': - case '\"': - /* Notice and skip strings, so that we don't - think that comments start inside them, - and so we don't duplicate newlines in them. */ - { - int quotec = c; - while (ibp < limit) { - *obp++ = c = *ibp++; - if (c == quotec) - break; - if (c == '\n') - { - if (quotec == '\'') - break; - } - else if (c == '\\') { - if (ibp < limit && *ibp == '\n') { - ibp++; - obp--; - } else { - while (*ibp == '\\' && ibp[1] == '\n') - ibp += 2; - if (ibp < limit) - *obp++ = *ibp++; - } - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - ibp--; - length = local_mblen (ibp, limit - ibp); - if (length > 1) - { - obp--; - bcopy (ibp, obp, length); - ibp += length; - obp += length; - } - else - ibp++; - } -#endif - } - } - } - break; - } - } - - return obp - start; -} - -/* Turn newlines to spaces in the string of length LENGTH at START, - except inside of string constants. - The string is copied into itself with its beginning staying fixed. */ - -static int -change_newlines (start, length) - U_CHAR *start; - int length; -{ - register U_CHAR *ibp; - register U_CHAR *obp; - register U_CHAR *limit; - register int c; - - ibp = start; - limit = start + length; - obp = start; - - while (ibp < limit) { - *obp++ = c = *ibp++; - switch (c) { - case '\n': - /* If this is a NEWLINE NEWLINE, then this is a real newline in the - string. Skip past the newline and its duplicate. - Put a space in the output. */ - if (*ibp == '\n') - { - ibp++; - obp--; - *obp++ = ' '; - } - break; - - case '\'': - case '\"': - /* Notice and skip strings, so that we don't delete newlines in them. */ - { - int quotec = c; - while (ibp < limit) { - *obp++ = c = *ibp++; - if (c == quotec) - break; - else if (c == '\\' && ibp < limit && *ibp == '\n') - *obp++ = *ibp++; - else if (c == '\n') - { - if (quotec == '\'') - break; - } - else - { -#ifdef MULTIBYTE_CHARS - /* CYGNUS LOCAL chill */ - if (! chill) - /* END CYGNUS LOCAL chill */ - { - int length; - ibp--; - length = local_mblen (ibp, limit - ibp); - if (length > 1) - { - obp--; - bcopy (ibp, obp, length); - ibp += length; - obp += length; - } - else - ibp++; - } -#endif - } - } - } - break; - } - } - - return obp - start; -} - -/* my_strerror - return the descriptive text associated with an - `errno' code. */ - -static char * -my_strerror (errnum) - int errnum; -{ - char *result; - -#ifndef HAVE_STRERROR - result = (char *) ((errnum < sys_nerr) ? sys_errlist[errnum] : 0); -#else - result = strerror (errnum); -#endif - - if (!result) - result = "undocumented I/O error"; - - return result; -} - -/* error - print error message and increment count of errors. */ - -void -error VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - verror (msg, args); - va_end (args); -} - -static void -verror (msg, args) - char *msg; - va_list args; -{ - int i; - FILE_BUF *ip = NULL; - - print_containing_files (); - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - - if (ip != NULL) { - eprint_string (ip->nominal_fname, ip->nominal_fname_len); - fprintf (stderr, ":%d: ", ip->lineno); - } - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); - errors++; -} - -/* Error including a message from `errno'. */ - -static void -error_from_errno (name) - char *name; -{ - int e = errno; - int i; - FILE_BUF *ip = NULL; - - print_containing_files (); - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - - if (ip != NULL) { - eprint_string (ip->nominal_fname, ip->nominal_fname_len); - fprintf (stderr, ":%d: ", ip->lineno); - } - - fprintf (stderr, "%s: %s\n", name, my_strerror (e)); - - errors++; -} - -/* Print error message but don't count it. */ - -void -warning VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - vwarning (msg, args); - va_end (args); -} - -static void -vwarning (msg, args) - char *msg; - va_list args; -{ - int i; - FILE_BUF *ip = NULL; - - if (inhibit_warnings) - return; - - if (warnings_are_errors) - errors++; - - print_containing_files (); - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - - if (ip != NULL) { - eprint_string (ip->nominal_fname, ip->nominal_fname_len); - fprintf (stderr, ":%d: ", ip->lineno); - } - fprintf (stderr, "warning: "); - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); -} - -static void -error_with_line VPROTO ((int line, char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - int line; - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - line = va_arg (args, int); - msg = va_arg (args, char *); -#endif - - verror_with_line (line, msg, args); - va_end (args); -} - -static void -verror_with_line (line, msg, args) - int line; - char *msg; - va_list args; -{ - int i; - FILE_BUF *ip = NULL; - - print_containing_files (); - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - - if (ip != NULL) { - eprint_string (ip->nominal_fname, ip->nominal_fname_len); - fprintf (stderr, ":%d: ", line); - } - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); - errors++; -} - -static void -warning_with_line VPROTO ((int line, char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - int line; - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - line = va_arg (args, int); - msg = va_arg (args, char *); -#endif - - vwarning_with_line (line, msg, args); - va_end (args); -} - -static void -vwarning_with_line (line, msg, args) - int line; - char *msg; - va_list args; -{ - int i; - FILE_BUF *ip = NULL; - - if (inhibit_warnings) - return; - - if (warnings_are_errors) - errors++; - - print_containing_files (); - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - - if (ip != NULL) { - eprint_string (ip->nominal_fname, ip->nominal_fname_len); - fprintf (stderr, line ? ":%d: " : ": ", line); - } - fprintf (stderr, "warning: "); - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); -} - -/* Print an error message and maybe count it. */ - -void -pedwarn VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - if (pedantic_errors) - verror (msg, args); - else - vwarning (msg, args); - va_end (args); -} - -void -pedwarn_with_line VPROTO ((int line, char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - int line; - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - line = va_arg (args, int); - msg = va_arg (args, char *); -#endif - - if (pedantic_errors) - verror_with_line (line, msg, args); - else - vwarning_with_line (line, msg, args); - va_end (args); -} - -/* Report a warning (or an error if pedantic_errors) - giving specified file name and line number, not current. */ - -static void -pedwarn_with_file_and_line VPROTO ((char *file, size_t file_len, int line, - char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char *file; - size_t file_len; - int line; - char * msg; -#endif - va_list args; - - if (!pedantic_errors && inhibit_warnings) - return; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - file = va_arg (args, char *); - file_len = va_arg (args, size_t); - line = va_arg (args, int); - msg = va_arg (args, char *); -#endif - - if (file) { - eprint_string (file, file_len); - fprintf (stderr, ":%d: ", line); - } - if (pedantic_errors) - errors++; - if (!pedantic_errors) - fprintf (stderr, "warning: "); - - vfprintf (stderr, msg, args); - va_end (args); - fprintf (stderr, "\n"); -} - -/* Print the file names and line numbers of the #include - directives which led to the current file. */ - -static void -print_containing_files () -{ - FILE_BUF *ip = NULL; - int i; - int first = 1; - - /* If stack of files hasn't changed since we last printed - this info, don't repeat it. */ - if (last_error_tick == input_file_stack_tick) - return; - - for (i = indepth; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - break; - } - - /* Give up if we don't find a source file. */ - if (ip == NULL) - return; - - /* Find the other, outer source files. */ - for (i--; i >= 0; i--) - if (instack[i].fname != NULL) { - ip = &instack[i]; - if (first) { - first = 0; - fprintf (stderr, "In file included"); - } else { - fprintf (stderr, ",\n "); - } - - fprintf (stderr, " from "); - eprint_string (ip->nominal_fname, ip->nominal_fname_len); - fprintf (stderr, ":%d", ip->lineno); - } - if (! first) - fprintf (stderr, ":\n"); - - /* Record we have printed the status as of this time. */ - last_error_tick = input_file_stack_tick; -} - -/* Return the line at which an error occurred. - The error is not necessarily associated with the current spot - in the input stack, so LINE says where. LINE will have been - copied from ip->lineno for the current input level. - If the current level is for a file, we return LINE. - But if the current level is not for a file, LINE is meaningless. - In that case, we return the lineno of the innermost file. */ - -static int -line_for_error (line) - int line; -{ - int i; - int line1 = line; - - for (i = indepth; i >= 0; ) { - if (instack[i].fname != 0) - return line1; - i--; - if (i < 0) - return 0; - line1 = instack[i].lineno; - } - abort (); - /*NOTREACHED*/ - return 0; -} - -/* - * If OBUF doesn't have NEEDED bytes after OPTR, make it bigger. - * - * As things stand, nothing is ever placed in the output buffer to be - * removed again except when it's KNOWN to be part of an identifier, - * so flushing and moving down everything left, instead of expanding, - * should work ok. - */ - -/* You might think void was cleaner for the return type, - but that would get type mismatch in check_expand in strict ANSI. */ - -static int -grow_outbuf (obuf, needed) - register FILE_BUF *obuf; - register int needed; -{ - register U_CHAR *p; - int minsize; - - if (obuf->length - (obuf->bufp - obuf->buf) > needed) - return 0; - - /* Make it at least twice as big as it is now. */ - obuf->length *= 2; - /* Make it have at least 150% of the free space we will need. */ - minsize = (3 * needed) / 2 + (obuf->bufp - obuf->buf); - if (minsize > obuf->length) - obuf->length = minsize; - - if ((p = (U_CHAR *) xrealloc (obuf->buf, obuf->length)) == NULL) - memory_full (); - - obuf->bufp = p + (obuf->bufp - obuf->buf); - obuf->buf = p; - - return 0; -} - -/* Symbol table for macro names and special symbols */ - -/* - * install a name in the main hash table, even if it is already there. - * name stops with first non alphanumeric, except leading '#'. - * caller must check against redefinition if that is desired. - * delete_macro () removes things installed by install () in fifo order. - * this is important because of the `defined' special symbol used - * in #if, and also if pushdef/popdef directives are ever implemented. - * - * If LEN is >= 0, it is the length of the name. - * Otherwise, compute the length by scanning the entire name. - * - * If HASH is >= 0, it is the precomputed hash code. - * Otherwise, compute the hash code. - */ - -static HASHNODE * -install (name, len, type, value, hash) - U_CHAR *name; - int len; - enum node_type type; - char *value; - int hash; -{ - register HASHNODE *hp; - register int i, bucket; - register U_CHAR *p, *q; - - if (len < 0) { - p = name; - while (is_idchar[*p]) - p++; - len = p - name; - } - - if (hash < 0) - hash = hashf (name, len, HASHSIZE); - - i = sizeof (HASHNODE) + len + 1; - hp = (HASHNODE *) xmalloc (i); - bucket = hash; - hp->bucket_hdr = &hashtab[bucket]; - hp->next = hashtab[bucket]; - hashtab[bucket] = hp; - hp->prev = NULL; - if (hp->next != NULL) - hp->next->prev = hp; - hp->type = type; - hp->length = len; - hp->value.cpval = value; - hp->name = ((U_CHAR *) hp) + sizeof (HASHNODE); - p = hp->name; - q = name; - for (i = 0; i < len; i++) - *p++ = *q++; - hp->name[len] = 0; - return hp; -} - -/* - * find the most recent hash node for name "name" (ending with first - * non-identifier char) installed by install - * - * If LEN is >= 0, it is the length of the name. - * Otherwise, compute the length by scanning the entire name. - * - * If HASH is >= 0, it is the precomputed hash code. - * Otherwise, compute the hash code. - */ - -HASHNODE * -lookup (name, len, hash) - U_CHAR *name; - int len; - int hash; -{ - register U_CHAR *bp; - register HASHNODE *bucket; - - if (len < 0) { - for (bp = name; is_idchar[*bp]; bp++) ; - len = bp - name; - } - - if (hash < 0) - hash = hashf (name, len, HASHSIZE); - - bucket = hashtab[hash]; - while (bucket) { - if (bucket->length == len && bcmp (bucket->name, name, len) == 0) - return bucket; - bucket = bucket->next; - } - return NULL; -} - -/* - * Delete a hash node. Some weirdness to free junk from macros. - * More such weirdness will have to be added if you define more hash - * types that need it. - */ - -/* Note that the DEFINITION of a macro is removed from the hash table - but its storage is not freed. This would be a storage leak - except that it is not reasonable to keep undefining and redefining - large numbers of macros many times. - In any case, this is necessary, because a macro can be #undef'd - in the middle of reading the arguments to a call to it. - If #undef freed the DEFINITION, that would crash. */ - -static void -delete_macro (hp) - HASHNODE *hp; -{ - - if (hp->prev != NULL) - hp->prev->next = hp->next; - if (hp->next != NULL) - hp->next->prev = hp->prev; - - /* Make sure that the bucket chain header that the deleted guy was - on points to the right thing afterwards. */ - if (hp == *hp->bucket_hdr) - *hp->bucket_hdr = hp->next; - -#if 0 - if (hp->type == T_MACRO) { - DEFINITION *d = hp->value.defn; - struct reflist *ap, *nextap; - - for (ap = d->pattern; ap != NULL; ap = nextap) { - nextap = ap->next; - free (ap); - } - free (d); - } -#endif - free (hp); -} - -/* - * return hash function on name. must be compatible with the one - * computed a step at a time, elsewhere - */ - -static int -hashf (name, len, hashsize) - register U_CHAR *name; - register int len; - int hashsize; -{ - register int r = 0; - - while (len--) - r = HASHSTEP (r, *name++); - - return MAKE_POS (r) % hashsize; -} - - -/* Dump the definition of a single macro HP to OF. */ - -static void -dump_single_macro (hp, of) - register HASHNODE *hp; - FILE *of; -{ - register DEFINITION *defn = hp->value.defn; - struct reflist *ap; - int offset; - int concat; - - - /* Print the definition of the macro HP. */ - - fprintf (of, "#define %s", hp->name); - - if (defn->nargs >= 0) { - int i; - - fprintf (of, "("); - for (i = 0; i < defn->nargs; i++) { - dump_arg_n (defn, i, of); - if (i + 1 < defn->nargs) - fprintf (of, ", "); - } - fprintf (of, ")"); - } - - fprintf (of, " "); - - offset = 0; - concat = 0; - for (ap = defn->pattern; ap != NULL; ap = ap->next) { - dump_defn_1 (defn->expansion, offset, ap->nchars, of); - offset += ap->nchars; - if (!traditional) { - if (ap->nchars != 0) - concat = 0; - if (ap->stringify) { - switch (ap->stringify) { - case SHARP_TOKEN: fprintf (of, "#"); break; - case WHITE_SHARP_TOKEN: fprintf (of, "# "); break; - case PERCENT_COLON_TOKEN: fprintf (of, "%%:"); break; - case WHITE_PERCENT_COLON_TOKEN: fprintf (of, "%%: "); break; - default: abort (); - } - } - if (ap->raw_before != 0) { - if (concat) { - switch (ap->raw_before) { - case WHITE_SHARP_TOKEN: - case WHITE_PERCENT_COLON_TOKEN: - fprintf (of, " "); - break; - default: - break; - } - } else { - switch (ap->raw_before) { - case SHARP_TOKEN: fprintf (of, "##"); break; - case WHITE_SHARP_TOKEN: fprintf (of, "## "); break; - case PERCENT_COLON_TOKEN: fprintf (of, "%%:%%:"); break; - case WHITE_PERCENT_COLON_TOKEN: fprintf (of, "%%:%%: "); break; - default: abort (); - } - } - } - concat = 0; - } - dump_arg_n (defn, ap->argno, of); - if (!traditional && ap->raw_after != 0) { - switch (ap->raw_after) { - case SHARP_TOKEN: fprintf (of, "##"); break; - case WHITE_SHARP_TOKEN: fprintf (of, " ##"); break; - case PERCENT_COLON_TOKEN: fprintf (of, "%%:%%:"); break; - case WHITE_PERCENT_COLON_TOKEN: fprintf (of, " %%:%%:"); break; - default: abort (); - } - concat = 1; - } - } - dump_defn_1 (defn->expansion, offset, defn->length - offset, of); - fprintf (of, "\n"); -} - -/* Dump all macro definitions as #defines to stdout. */ - -static void -dump_all_macros () -{ - int bucket; - - for (bucket = 0; bucket < HASHSIZE; bucket++) { - register HASHNODE *hp; - - for (hp = hashtab[bucket]; hp; hp= hp->next) { - if (hp->type == T_MACRO) - dump_single_macro (hp, stdout); - } - } -} - -/* Output to OF a substring of a macro definition. - BASE is the beginning of the definition. - Output characters START thru LENGTH. - Unless traditional, discard newlines outside of strings, thus - converting funny-space markers to ordinary spaces. */ - -static void -dump_defn_1 (base, start, length, of) - U_CHAR *base; - int start; - int length; - FILE *of; -{ - U_CHAR *p = base + start; - U_CHAR *limit = base + start + length; - - if (traditional) - fwrite (p, sizeof (*p), length, of); - else { - while (p < limit) { - if (*p == '\"' || *p =='\'') { - U_CHAR *p1 = skip_quoted_string (p, limit, 0, NULL_PTR, - NULL_PTR, NULL_PTR); - fwrite (p, sizeof (*p), p1 - p, of); - p = p1; - } else { - if (*p != '\n') - putc (*p, of); - p++; - } - } - } -} - -/* Print the name of argument number ARGNUM of macro definition DEFN - to OF. - Recall that DEFN->args.argnames contains all the arg names - concatenated in reverse order with comma-space in between. */ - -static void -dump_arg_n (defn, argnum, of) - DEFINITION *defn; - int argnum; - FILE *of; -{ - register U_CHAR *p = defn->args.argnames; - while (argnum + 1 < defn->nargs) { - p = (U_CHAR *) index ((char *) p, ' ') + 1; - argnum++; - } - - while (*p && *p != ',') { - putc (*p, of); - p++; - } -} - -/* Initialize syntactic classifications of characters. */ - -static void -initialize_char_syntax () -{ - register int i; - - /* - * Set up is_idchar and is_idstart tables. These should be - * faster than saying (is_alpha (c) || c == '_'), etc. - * Set up these things before calling any routines tthat - * refer to them. - */ - for (i = 'a'; i <= 'z'; i++) { - is_idchar[i - 'a' + 'A'] = 1; - is_idchar[i] = 1; - is_idstart[i - 'a' + 'A'] = 1; - is_idstart[i] = 1; - } - for (i = '0'; i <= '9'; i++) - is_idchar[i] = 1; - is_idchar['_'] = 1; - is_idstart['_'] = 1; - is_idchar['$'] = 1; - is_idstart['$'] = 1; - - /* horizontal space table */ - is_hor_space[' '] = 1; - is_hor_space['\t'] = 1; - is_hor_space['\v'] = 1; - is_hor_space['\f'] = 1; - is_hor_space['\r'] = 1; - - is_space[' '] = 1; - is_space['\t'] = 1; - is_space['\v'] = 1; - is_space['\f'] = 1; - is_space['\n'] = 1; - is_space['\r'] = 1; - - char_name['\v'] = "vertical tab"; - char_name['\f'] = "formfeed"; - char_name['\r'] = "carriage return"; -} - -/* Initialize the built-in macros. */ - -static void -initialize_builtins (inp, outp) - FILE_BUF *inp; - FILE_BUF *outp; -{ - install ((U_CHAR *) "__LINE__", -1, T_SPECLINE, NULL_PTR, -1); - install ((U_CHAR *) "__DATE__", -1, T_DATE, NULL_PTR, -1); - install ((U_CHAR *) "__FILE__", -1, T_FILE, NULL_PTR, -1); - install ((U_CHAR *) "__BASE_FILE__", -1, T_BASE_FILE, NULL_PTR, -1); - install ((U_CHAR *) "__INCLUDE_LEVEL__", -1, T_INCLUDE_LEVEL, NULL_PTR, -1); - install ((U_CHAR *) "__VERSION__", -1, T_VERSION, NULL_PTR, -1); -#ifndef NO_BUILTIN_SIZE_TYPE - install ((U_CHAR *) "__SIZE_TYPE__", -1, T_SIZE_TYPE, NULL_PTR, -1); -#endif -#ifndef NO_BUILTIN_PTRDIFF_TYPE - install ((U_CHAR *) "__PTRDIFF_TYPE__ ", -1, T_PTRDIFF_TYPE, NULL_PTR, -1); -#endif -/* CYGNUS LOCAL vmakarov */ -#ifndef NO_BUILTIN_WCHAR_TYPE -/* END CYGNUS LOCAL */ - install ((U_CHAR *) "__WCHAR_TYPE__", -1, T_WCHAR_TYPE, NULL_PTR, -1); -/* CYGNUS LOCAL vmakarov */ -#endif -/* END CYGNUS LOCAL */ - install ((U_CHAR *) "__USER_LABEL_PREFIX__", -1, T_USER_LABEL_PREFIX_TYPE, - NULL_PTR, -1); - install ((U_CHAR *) "__REGISTER_PREFIX__", -1, T_REGISTER_PREFIX_TYPE, - NULL_PTR, -1); - install ((U_CHAR *) "__IMMEDIATE_PREFIX__", -1, T_IMMEDIATE_PREFIX_TYPE, - NULL_PTR, -1); - install ((U_CHAR *) "__TIME__", -1, T_TIME, NULL_PTR, -1); - if (!traditional) { - install ((U_CHAR *) "__STDC__", -1, T_CONST, "1", -1); - install ((U_CHAR *) "__STDC_VERSION__", -1, T_CONST, "199409L", -1); - } - if (objc) - install ((U_CHAR *) "__OBJC__", -1, T_CONST, "1", -1); -/* This is supplied using a -D by the compiler driver - so that it is present only when truly compiling with GNU C. */ -/* install ((U_CHAR *) "__GNUC__", -1, T_CONST, "2", -1); */ - install ((U_CHAR *) "__HAVE_BUILTIN_SETJMP__", -1, T_CONST, "1", -1); - - if (debug_output) - { - char directive[2048]; - U_CHAR *udirective = (U_CHAR *) directive; - register struct directive *dp = &directive_table[0]; - struct tm *timebuf = timestamp (); - - sprintf (directive, " __BASE_FILE__ \"%s\"\n", - instack[0].nominal_fname); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); - - sprintf (directive, " __VERSION__ \"%s\"\n", version_string); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); - -#ifndef NO_BUILTIN_SIZE_TYPE - sprintf (directive, " __SIZE_TYPE__ %s\n", SIZE_TYPE); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); -#endif - -#ifndef NO_BUILTIN_PTRDIFF_TYPE - sprintf (directive, " __PTRDIFF_TYPE__ %s\n", PTRDIFF_TYPE); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); -#endif - -/* CYGNUS LOCAL vmakarov */ -#ifndef NO_BUILTIN_WCHAR_TYPE -/* END CYGNUS LOCAL */ - sprintf (directive, " __WCHAR_TYPE__ %s\n", wchar_type); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); -/* CYGNUS LOCAL vmakarov */ -#endif -/* END CYGNUS LOCAL */ - - sprintf (directive, " __DATE__ \"%s %2d %4d\"\n", - monthnames[timebuf->tm_mon], - timebuf->tm_mday, timebuf->tm_year + 1900); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); - - sprintf (directive, " __TIME__ \"%02d:%02d:%02d\"\n", - timebuf->tm_hour, timebuf->tm_min, timebuf->tm_sec); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); - - if (!traditional) - { - sprintf (directive, " __STDC__ 1"); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); - } - if (objc) - { - sprintf (directive, " __OBJC__ 1"); - output_line_directive (inp, outp, 0, same_file); - pass_thru_directive (udirective, &udirective[strlen (directive)], - outp, dp); - } - } -} - -/* - * process a given definition string, for initialization - * If STR is just an identifier, define it with value 1. - * If STR has anything after the identifier, then it should - * be identifier=definition. - */ - -static void -make_definition (str) - char *str; -{ - FILE_BUF *ip; - struct directive *kt; - U_CHAR *buf, *p; - - p = buf = (U_CHAR *) str; - if (!is_idstart[*p]) { - error ("malformed option `-D %s'", str); - return; - } - while (is_idchar[*++p]) - ; - if (*p == '(') { - while (is_idchar[*++p] || *p == ',' || is_hor_space[*p]) - ; - if (*p++ != ')') - p = (U_CHAR *) str; /* Error */ - } - if (*p == 0) { - buf = (U_CHAR *) alloca (p - buf + 4); - strcpy ((char *)buf, str); - strcat ((char *)buf, " 1"); - } else if (*p != '=') { - error ("malformed option `-D %s'", str); - return; - } else { - U_CHAR *q; - /* Copy the entire option so we can modify it. */ - buf = (U_CHAR *) alloca (2 * strlen (str) + 1); - strncpy ((char *) buf, str, p - (U_CHAR *) str); - /* Change the = to a space. */ - buf[p - (U_CHAR *) str] = ' '; - /* Scan for any backslash-newline and remove it. */ - p++; - q = &buf[p - (U_CHAR *) str]; - while (*p) { - if (*p == '\"' || *p == '\'') { - int unterminated = 0; - U_CHAR *p1 = skip_quoted_string (p, p + strlen ((char *) p), 0, - NULL_PTR, NULL_PTR, &unterminated); - if (unterminated) - return; - while (p != p1) - *q++ = *p++; - } else if (*p == '\\' && p[1] == '\n') - p += 2; - /* Change newline chars into newline-markers. */ - else if (*p == '\n') - { - *q++ = '\n'; - *q++ = '\n'; - p++; - } - else - *q++ = *p++; - } - *q = 0; - } - - ip = &instack[++indepth]; - ip->nominal_fname = ip->fname = "*Initialization*"; - ip->nominal_fname_len = strlen (ip->nominal_fname); - - ip->buf = ip->bufp = buf; - ip->length = strlen ((char *) buf); - ip->lineno = 1; - ip->macro = 0; - ip->free_ptr = 0; - ip->if_stack = if_stack; - ip->system_header_p = 0; - - for (kt = directive_table; kt->type != T_DEFINE; kt++) - ; - - /* Pass NULL instead of OP, since this is a "predefined" macro. */ - do_define (buf, buf + strlen ((char *) buf), NULL_PTR, kt); - --indepth; -} - -/* JF, this does the work for the -U option */ - -static void -make_undef (str, op) - char *str; - FILE_BUF *op; -{ - FILE_BUF *ip; - struct directive *kt; - - ip = &instack[++indepth]; - ip->nominal_fname = ip->fname = "*undef*"; - ip->nominal_fname_len = strlen (ip->nominal_fname); - - ip->buf = ip->bufp = (U_CHAR *) str; - ip->length = strlen (str); - ip->lineno = 1; - ip->macro = 0; - ip->free_ptr = 0; - ip->if_stack = if_stack; - ip->system_header_p = 0; - - for (kt = directive_table; kt->type != T_UNDEF; kt++) - ; - - do_undef ((U_CHAR *) str, (U_CHAR *) str + strlen (str), op, kt); - --indepth; -} - -/* Process the string STR as if it appeared as the body of a #assert. - OPTION is the option name for which STR was the argument. */ - -static void -make_assertion (option, str) - char *option; - char *str; -{ - FILE_BUF *ip; - struct directive *kt; - U_CHAR *buf, *p, *q; - - /* Copy the entire option so we can modify it. */ - buf = (U_CHAR *) alloca (strlen (str) + 1); - strcpy ((char *) buf, str); - /* Scan for any backslash-newline and remove it. */ - p = q = buf; - while (*p) { - if (*p == '\\' && p[1] == '\n') - p += 2; - else - *q++ = *p++; - } - *q = 0; - - p = buf; - if (!is_idstart[*p]) { - error ("malformed option `%s %s'", option, str); - return; - } - while (is_idchar[*++p]) - ; - SKIP_WHITE_SPACE (p); - if (! (*p == 0 || *p == '(')) { - error ("malformed option `%s %s'", option, str); - return; - } - - ip = &instack[++indepth]; - ip->nominal_fname = ip->fname = "*Initialization*"; - ip->nominal_fname_len = strlen (ip->nominal_fname); - - ip->buf = ip->bufp = buf; - ip->length = strlen ((char *) buf); - ip->lineno = 1; - ip->macro = 0; - ip->free_ptr = 0; - ip->if_stack = if_stack; - ip->system_header_p = 0; - - for (kt = directive_table; kt->type != T_ASSERT; kt++) - ; - - /* Pass NULL as output ptr to do_define since we KNOW it never does - any output.... */ - do_assert (buf, buf + strlen ((char *) buf) , NULL_PTR, kt); - --indepth; -} - -#ifndef DIR_SEPARATOR -#define DIR_SEPARATOR '/' -#endif - -/* The previous include prefix, if any, is PREV_FILE_NAME. - Translate any pathnames with COMPONENT. - Allocate a new include prefix whose name is the - simplified concatenation of PREFIX and NAME, - with a trailing / added if needed. - But return 0 if the include prefix should be ignored, - e.g. because it is a duplicate of PREV_FILE_NAME. */ - -static struct file_name_list * -new_include_prefix (prev_file_name, component, prefix, name) - struct file_name_list *prev_file_name; - const char *component; - const char *prefix; - const char *name; -{ - if (name == 0) - fatal ("Directory name missing after command line option"); - - if (*name == 0) - /* Ignore the empty string. */ - return 0; - - prefix = update_path (prefix, component); - name = update_path (name, component); - - { - struct file_name_list *dir - = ((struct file_name_list *) - xmalloc (sizeof (struct file_name_list) - + strlen (prefix) + strlen (name) + 2)); - size_t len; - strcpy (dir->fname, prefix); - strcat (dir->fname, name); - len = simplify_filename (dir->fname); - - /* Convert directory name to a prefix. */ - if (len && dir->fname[len - 1] != DIR_SEPARATOR) { - if (len == 1 && dir->fname[len - 1] == '.') - len = 0; - else - dir->fname[len++] = DIR_SEPARATOR; - dir->fname[len] = 0; - } - - /* Ignore a directory whose name matches the previous one. */ - if (prev_file_name && !strcmp (prev_file_name->fname, dir->fname)) { - /* But treat `-Idir -I- -Idir' as `-I- -Idir'. */ - if (!first_bracket_include) - first_bracket_include = prev_file_name; - free (dir); - return 0; - } - - /* Add a trailing "." if there is a filename. This increases the number - of systems that can stat directories. We remove it below. */ - if (len != 0) - { - dir->fname[len] = '.'; - dir->fname[len + 1] = 0; - } - - /* Ignore a nonexistent directory. */ - if (stat (len ? dir->fname : ".", &dir->st) != 0) { - if (errno != ENOENT && errno != ENOTDIR) - error_from_errno (dir->fname); - free (dir); - return 0; - } - - if (len != 0) - dir->fname[len] = 0; - - /* Ignore a directory whose identity matches the previous one. */ - if (prev_file_name - && INO_T_EQ (prev_file_name->st.st_ino, dir->st.st_ino) - && prev_file_name->st.st_dev == dir->st.st_dev) { - /* But treat `-Idir -I- -Idir' as `-I- -Idir'. */ - if (!first_bracket_include) - first_bracket_include = prev_file_name; - free (dir); - return 0; - } - - dir->next = 0; - dir->c_system_include_path = 0; - dir->got_name_map = 0; - - return dir; - } -} - -/* Append a chain of `struct file_name_list's - to the end of the main include chain. - FIRST is the beginning of the chain to append, and LAST is the end. */ - -static void -append_include_chain (first, last) - struct file_name_list *first, *last; -{ - struct file_name_list *dir; - - if (!first || !last) - return; - - if (include == 0) - include = first; - else - last_include->next = first; - - if (first_bracket_include == 0) - first_bracket_include = first; - - for (dir = first; ; dir = dir->next) { - int len = strlen (dir->fname) + INCLUDE_LEN_FUDGE; - if (len > max_include_len) - max_include_len = len; - if (dir == last) - break; - } - - last->next = NULL; - last_include = last; -} - -/* Place into DST a representation of the file named SRC that is suitable - for `make'. Do not null-terminate DST. Return its length. */ -static int -quote_string_for_make (dst, src) - char *dst; - char *src; -{ - char *p = src; - int i = 0; - for (;;) - { - char c = *p++; - switch (c) - { - case '\0': - case ' ': - case '\t': - { - /* GNU make uses a weird quoting scheme for white space. - A space or tab preceded by 2N+1 backslashes represents - N backslashes followed by space; a space or tab - preceded by 2N backslashes represents N backslashes at - the end of a file name; and backslashes in other - contexts should not be doubled. */ - char *q; - for (q = p - 1; src < q && q[-1] == '\\'; q--) - { - if (dst) - dst[i] = '\\'; - i++; - } - } - if (!c) - return i; - if (dst) - dst[i] = '\\'; - i++; - goto ordinary_char; - - case '$': - if (dst) - dst[i] = c; - i++; - /* Fall through. This can mishandle things like "$(" but - there's no easy fix. */ - default: - ordinary_char: - /* This can mishandle characters in the string "\0\n%*?[\\~"; - exactly which chars are mishandled depends on the `make' version. - We know of no portable solution for this; - even GNU make 3.76.1 doesn't solve the problem entirely. - (Also, '\0' is mishandled due to our calling conventions.) */ - if (dst) - dst[i] = c; - i++; - break; - } - } -} - - -/* Add output to `deps_buffer' for the -M switch. - STRING points to the text to be output. - SPACER is ':' for targets, ' ' for dependencies. */ - -static void -deps_output (string, spacer) - char *string; - int spacer; -{ - int size = quote_string_for_make ((char *) 0, string); -/* CYGNUS LOCAL vmakarov */ - int spacer_size = spacer == ':' ? 2 : 1; -/* END CYGNUS LOCAL */ - - if (size == 0) - return; - -#ifndef MAX_OUTPUT_COLUMNS -#define MAX_OUTPUT_COLUMNS 72 -#endif - if (MAX_OUTPUT_COLUMNS - spacer_size /* CYGNUS LOCAL vmakarov: spacer_size */ - 2 /*` \'*/ < deps_column + size - && 1 < deps_column) { - bcopy (" \\\n ", &deps_buffer[deps_size], 4); - deps_size += 4; - deps_column = 1; - if (spacer == ' ') - spacer = 0; - } - - if (deps_size + 2 * size + 8 > deps_allocated_size) { - deps_allocated_size = (deps_size + 2 * size + 50) * 2; - deps_buffer = xrealloc (deps_buffer, deps_allocated_size); - } - if (spacer == ' ') { - deps_buffer[deps_size++] = ' '; - deps_column++; - } - quote_string_for_make (&deps_buffer[deps_size], string); - deps_size += size; - deps_column += size; - if (spacer == ':') { -/* CYGNUS LOCAL vmakarov */ - deps_buffer[deps_size++] = ' '; -/* END CYGNUS LOCAL */ - deps_buffer[deps_size++] = ':'; - deps_column++; - } - deps_buffer[deps_size] = 0; -} - -static void -fatal VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - fprintf (stderr, "%s: ", progname); - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - vfprintf (stderr, msg, args); - va_end (args); - fprintf (stderr, "\n"); - exit (FATAL_EXIT_CODE); -} - -/* More 'friendly' abort that prints the line and file. - config.h can #define abort fancy_abort if you like that sort of thing. */ - -void -fancy_abort () -{ - fatal ("Internal gcc abort."); -} - -static void -perror_with_name (name) - char *name; -{ - fprintf (stderr, "%s: %s: %s\n", progname, name, my_strerror (errno)); - errors++; -} - -static void -pfatal_with_name (name) - char *name; -{ - perror_with_name (name); - exit (FATAL_EXIT_CODE); -} - -/* Handler for SIGPIPE. */ - -static void -pipe_closed (signo) - /* If this is missing, some compilers complain. */ - int signo ATTRIBUTE_UNUSED; -{ - fatal ("output pipe has been closed"); -} - -static void -memory_full () -{ - fatal ("Memory exhausted."); -} - -PTR -xmalloc (size) - size_t size; -{ - register PTR ptr = (PTR) malloc (size); - if (!ptr) - memory_full (); - return ptr; -} - -PTR -xrealloc (old, size) - PTR old; - size_t size; -{ - register PTR ptr; - if (old) - ptr = (PTR) realloc (old, size); - else - ptr = (PTR) malloc (size); - if (!ptr) - memory_full (); - return ptr; -} - -PTR -xcalloc (number, size) - size_t number, size; -{ - register size_t total = number * size; - register PTR ptr = (PTR) malloc (total); - if (!ptr) - memory_full (); - bzero (ptr, total); - return ptr; -} - -static char * -savestring (input) - char *input; -{ - size_t size = strlen (input); - char *output = xmalloc (size + 1); - strcpy (output, input); - return output; -} - - diff --git a/gcc/cexp.y b/gcc/cexp.y deleted file mode 100755 index d63c4d1..0000000 --- a/gcc/cexp.y +++ /dev/null @@ -1,1248 +0,0 @@ -/* Parse C expressions for CCCP. - Copyright (C) 1987, 1992, 94 - 97, 1998 Free Software Foundation. - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. - - In other words, you are welcome to use, share and improve this program. - You are forbidden to forbid anyone else to use, share and improve - what you give them. Help stamp out software-hoarding! - - Adapted from expread.y of GDB by Paul Rubin, July 1986. */ - -/* Parse a C expression from text in a string */ - -%{ -#include "config.h" - -#define PRINTF_PROTO(ARGS, m, n) PVPROTO (ARGS) ATTRIBUTE_PRINTF(m, n) - -#define PRINTF_PROTO_1(ARGS) PRINTF_PROTO(ARGS, 1, 2) - -#include "system.h" -#include <setjmp.h> -/* #define YYDEBUG 1 */ - -#ifdef MULTIBYTE_CHARS -#include "mbchar.h" -#include <locale.h> -#endif /* MULTIBYTE_CHARS */ - -typedef unsigned char U_CHAR; - -/* This is used for communicating lists of keywords with cccp.c. */ -struct arglist { - struct arglist *next; - U_CHAR *name; - int length; - int argno; -}; - -/* Find the largest host integer type and set its size and type. - Watch out: on some crazy hosts `long' is shorter than `int'. */ - -#ifndef HOST_WIDE_INT -# if HAVE_INTTYPES_H -# include <inttypes.h> -# define HOST_WIDE_INT intmax_t -# define unsigned_HOST_WIDE_INT uintmax_t -# else -# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT && HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT) -# define HOST_WIDE_INT int -# else -# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG || ! (defined LONG_LONG_MAX || defined LLONG_MAX)) -# define HOST_WIDE_INT long -# else -# define HOST_WIDE_INT long long -# endif -# endif -# endif -#endif - -#ifndef unsigned_HOST_WIDE_INT -#define unsigned_HOST_WIDE_INT unsigned HOST_WIDE_INT -#endif - -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif - -#ifndef HOST_BITS_PER_WIDE_INT -#define HOST_BITS_PER_WIDE_INT (CHAR_BIT * sizeof (HOST_WIDE_INT)) -#endif - -HOST_WIDE_INT parse_c_expression PROTO((char *, int)); - -static int yylex PROTO((void)); -static void yyerror PROTO((char *)) __attribute__ ((noreturn)); -static HOST_WIDE_INT expression_value; -#ifdef TEST_EXP_READER -static int expression_signedp; -#endif - -static jmp_buf parse_return_error; - -/* Nonzero means count most punctuation as part of a name. */ -static int keyword_parsing = 0; - -/* Nonzero means do not evaluate this expression. - This is a count, since unevaluated expressions can nest. */ -static int skip_evaluation; - -/* Nonzero means warn if undefined identifiers are evaluated. */ -static int warn_undef; - -/* some external tables of character types */ -extern unsigned char is_idstart[], is_idchar[], is_space[]; - -/* Flag for -pedantic. */ -extern int pedantic; - -/* Flag for -traditional. */ -extern int traditional; - -/* Flag for -lang-c89. */ -extern int c89; - -#ifndef CHAR_TYPE_SIZE -#define CHAR_TYPE_SIZE BITS_PER_UNIT -#endif - -#ifndef INT_TYPE_SIZE -#define INT_TYPE_SIZE BITS_PER_WORD -#endif - -#ifndef LONG_TYPE_SIZE -#define LONG_TYPE_SIZE BITS_PER_WORD -#endif - -#ifndef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE INT_TYPE_SIZE -#endif - -#ifndef MAX_CHAR_TYPE_SIZE -#define MAX_CHAR_TYPE_SIZE CHAR_TYPE_SIZE -#endif - -#ifndef MAX_INT_TYPE_SIZE -#define MAX_INT_TYPE_SIZE INT_TYPE_SIZE -#endif - -#ifndef MAX_LONG_TYPE_SIZE -#define MAX_LONG_TYPE_SIZE LONG_TYPE_SIZE -#endif - -#ifndef MAX_WCHAR_TYPE_SIZE -#define MAX_WCHAR_TYPE_SIZE WCHAR_TYPE_SIZE -#endif - -#define MAX_CHAR_TYPE_MASK (MAX_CHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT \ - ? (~ (~ (HOST_WIDE_INT) 0 << MAX_CHAR_TYPE_SIZE)) \ - : ~ (HOST_WIDE_INT) 0) - -#define MAX_WCHAR_TYPE_MASK (MAX_WCHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT \ - ? ~ (~ (HOST_WIDE_INT) 0 << MAX_WCHAR_TYPE_SIZE) \ - : ~ (HOST_WIDE_INT) 0) - -/* Suppose A1 + B1 = SUM1, using 2's complement arithmetic ignoring overflow. - Suppose A, B and SUM have the same respective signs as A1, B1, and SUM1. - Suppose SIGNEDP is negative if the result is signed, zero if unsigned. - Then this yields nonzero if overflow occurred during the addition. - Overflow occurs if A and B have the same sign, but A and SUM differ in sign, - and SIGNEDP is negative. - Use `^' to test whether signs differ, and `< 0' to isolate the sign. */ -#define overflow_sum_sign(a, b, sum, signedp) \ - ((~((a) ^ (b)) & ((a) ^ (sum)) & (signedp)) < 0) - -struct constant; - -HOST_WIDE_INT parse_escape PROTO((char **, HOST_WIDE_INT)); -int check_assertion PROTO((U_CHAR *, int, int, struct arglist *)); -struct hashnode *lookup PROTO((U_CHAR *, int, int)); -void error PRINTF_PROTO_1((char *, ...)); -void pedwarn PRINTF_PROTO_1((char *, ...)); -void warning PRINTF_PROTO_1((char *, ...)); - -static int parse_number PROTO((int)); -static HOST_WIDE_INT left_shift PROTO((struct constant *, unsigned_HOST_WIDE_INT)); -static HOST_WIDE_INT right_shift PROTO((struct constant *, unsigned_HOST_WIDE_INT)); -static void integer_overflow PROTO((void)); - -/* `signedp' values */ -#define SIGNED (~0) -#define UNSIGNED 0 -%} - -%union { - struct constant {HOST_WIDE_INT value; int signedp;} integer; - struct name {U_CHAR *address; int length;} name; - struct arglist *keywords; -} - -%type <integer> exp exp1 start -%type <keywords> keywords -%token <integer> INT CHAR -%token <name> NAME -%token <integer> ERROR - -%right '?' ':' -%left ',' -%left OR -%left AND -%left '|' -%left '^' -%left '&' -%left EQUAL NOTEQUAL -%left '<' '>' LEQ GEQ -%left LSH RSH -%left '+' '-' -%left '*' '/' '%' -%right UNARY - -/* %expect 40 */ - -%% - -start : exp1 - { - expression_value = $1.value; -#ifdef TEST_EXP_READER - expression_signedp = $1.signedp; -#endif - } - ; - -/* Expressions, including the comma operator. */ -exp1 : exp - | exp1 ',' exp - { if (pedantic) - pedwarn ("comma operator in operand of `#if'"); - $$ = $3; } - ; - -/* Expressions, not including the comma operator. */ -exp : '-' exp %prec UNARY - { $$.value = - $2.value; - $$.signedp = $2.signedp; - if (($$.value & $2.value & $$.signedp) < 0) - integer_overflow (); } - | '!' exp %prec UNARY - { $$.value = ! $2.value; - $$.signedp = SIGNED; } - | '+' exp %prec UNARY - { $$ = $2; } - | '~' exp %prec UNARY - { $$.value = ~ $2.value; - $$.signedp = $2.signedp; } - | '#' NAME - { $$.value = check_assertion ($2.address, $2.length, - 0, NULL_PTR); - $$.signedp = SIGNED; } - | '#' NAME - { keyword_parsing = 1; } - '(' keywords ')' - { $$.value = check_assertion ($2.address, $2.length, - 1, $5); - keyword_parsing = 0; - $$.signedp = SIGNED; } - | '(' exp1 ')' - { $$ = $2; } - ; - -/* Binary operators in order of decreasing precedence. */ -exp : exp '*' exp - { $$.signedp = $1.signedp & $3.signedp; - if ($$.signedp) - { - $$.value = $1.value * $3.value; - if ($1.value - && ($$.value / $1.value != $3.value - || ($$.value & $1.value & $3.value) < 0)) - integer_overflow (); - } - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - * $3.value); } - | exp '/' exp - { if ($3.value == 0) - { - if (!skip_evaluation) - error ("division by zero in #if"); - $3.value = 1; - } - $$.signedp = $1.signedp & $3.signedp; - if ($$.signedp) - { - $$.value = $1.value / $3.value; - if (($$.value & $1.value & $3.value) < 0) - integer_overflow (); - } - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - / $3.value); } - | exp '%' exp - { if ($3.value == 0) - { - if (!skip_evaluation) - error ("division by zero in #if"); - $3.value = 1; - } - $$.signedp = $1.signedp & $3.signedp; - if ($$.signedp) - $$.value = $1.value % $3.value; - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - % $3.value); } - | exp '+' exp - { $$.value = $1.value + $3.value; - $$.signedp = $1.signedp & $3.signedp; - if (overflow_sum_sign ($1.value, $3.value, - $$.value, $$.signedp)) - integer_overflow (); } - | exp '-' exp - { $$.value = $1.value - $3.value; - $$.signedp = $1.signedp & $3.signedp; - if (overflow_sum_sign ($$.value, $3.value, - $1.value, $$.signedp)) - integer_overflow (); } - | exp LSH exp - { $$.signedp = $1.signedp; - if (($3.value & $3.signedp) < 0) - $$.value = right_shift (&$1, -$3.value); - else - $$.value = left_shift (&$1, $3.value); } - | exp RSH exp - { $$.signedp = $1.signedp; - if (($3.value & $3.signedp) < 0) - $$.value = left_shift (&$1, -$3.value); - else - $$.value = right_shift (&$1, $3.value); } - | exp EQUAL exp - { $$.value = ($1.value == $3.value); - $$.signedp = SIGNED; } - | exp NOTEQUAL exp - { $$.value = ($1.value != $3.value); - $$.signedp = SIGNED; } - | exp LEQ exp - { $$.signedp = SIGNED; - if ($1.signedp & $3.signedp) - $$.value = $1.value <= $3.value; - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - <= $3.value); } - | exp GEQ exp - { $$.signedp = SIGNED; - if ($1.signedp & $3.signedp) - $$.value = $1.value >= $3.value; - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - >= $3.value); } - | exp '<' exp - { $$.signedp = SIGNED; - if ($1.signedp & $3.signedp) - $$.value = $1.value < $3.value; - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - < $3.value); } - | exp '>' exp - { $$.signedp = SIGNED; - if ($1.signedp & $3.signedp) - $$.value = $1.value > $3.value; - else - $$.value = ((unsigned_HOST_WIDE_INT) $1.value - > $3.value); } - | exp '&' exp - { $$.value = $1.value & $3.value; - $$.signedp = $1.signedp & $3.signedp; } - | exp '^' exp - { $$.value = $1.value ^ $3.value; - $$.signedp = $1.signedp & $3.signedp; } - | exp '|' exp - { $$.value = $1.value | $3.value; - $$.signedp = $1.signedp & $3.signedp; } - | exp AND - { skip_evaluation += !$1.value; } - exp - { skip_evaluation -= !$1.value; - $$.value = ($1.value && $4.value); - $$.signedp = SIGNED; } - | exp OR - { skip_evaluation += !!$1.value; } - exp - { skip_evaluation -= !!$1.value; - $$.value = ($1.value || $4.value); - $$.signedp = SIGNED; } - | exp '?' - { skip_evaluation += !$1.value; } - exp ':' - { skip_evaluation += !!$1.value - !$1.value; } - exp - { skip_evaluation -= !!$1.value; - $$.value = $1.value ? $4.value : $7.value; - $$.signedp = $4.signedp & $7.signedp; } - | INT - { $$ = yylval.integer; } - | CHAR - { $$ = yylval.integer; } - | NAME - { if (warn_undef && !skip_evaluation) - warning ("`%.*s' is not defined", - $1.length, $1.address); - $$.value = 0; - $$.signedp = SIGNED; } - ; - -keywords : - { $$ = 0; } - | '(' keywords ')' keywords - { struct arglist *temp; - $$ = (struct arglist *) xmalloc (sizeof (struct arglist)); - $$->next = $2; - $$->name = (U_CHAR *) "("; - $$->length = 1; - temp = $$; - while (temp != 0 && temp->next != 0) - temp = temp->next; - temp->next = (struct arglist *) xmalloc (sizeof (struct arglist)); - temp->next->next = $4; - temp->next->name = (U_CHAR *) ")"; - temp->next->length = 1; } - | NAME keywords - { $$ = (struct arglist *) xmalloc (sizeof (struct arglist)); - $$->name = $1.address; - $$->length = $1.length; - $$->next = $2; } - ; -%% - -/* During parsing of a C expression, the pointer to the next character - is in this variable. */ - -static char *lexptr; - -/* Take care of parsing a number (anything that starts with a digit). - Set yylval and return the token type; update lexptr. - LEN is the number of characters in it. */ - -/* maybe needs to actually deal with floating point numbers */ - -static int -parse_number (olen) - int olen; -{ - register char *p = lexptr; - register int c; - register unsigned_HOST_WIDE_INT n = 0, nd, max_over_base; - register int base = 10; - register int len = olen; - register int overflow = 0; - register int digit, largest_digit = 0; - int spec_long = 0; - - yylval.integer.signedp = SIGNED; - - if (*p == '0') { - base = 8; - if (len >= 3 && (p[1] == 'x' || p[1] == 'X')) { - p += 2; - base = 16; - len -= 2; - } - } - - max_over_base = (unsigned_HOST_WIDE_INT) -1 / base; - - for (; len > 0; len--) { - c = *p++; - - if (c >= '0' && c <= '9') - digit = c - '0'; - else if (base == 16 && c >= 'a' && c <= 'f') - digit = c - 'a' + 10; - else if (base == 16 && c >= 'A' && c <= 'F') - digit = c - 'A' + 10; - else { - /* `l' means long, and `u' means unsigned. */ - while (1) { - if (c == 'l' || c == 'L') - { - if (!pedantic < spec_long) - yyerror ("too many `l's in integer constant"); - spec_long++; - } - else if (c == 'u' || c == 'U') - { - if (! yylval.integer.signedp) - yyerror ("two `u's in integer constant"); - yylval.integer.signedp = UNSIGNED; - } - else { - if (c == '.' || c == 'e' || c == 'E' || c == 'p' || c == 'P') - yyerror ("Floating point numbers not allowed in #if expressions"); - else { - char *buf = (char *) alloca (p - lexptr + 40); - sprintf (buf, "missing white space after number `%.*s'", - (int) (p - lexptr - 1), lexptr); - yyerror (buf); - } - } - - if (--len == 0) - break; - c = *p++; - } - /* Don't look for any more digits after the suffixes. */ - break; - } - if (largest_digit < digit) - largest_digit = digit; - nd = n * base + digit; - overflow |= (max_over_base < n) | (nd < n); - n = nd; - } - - if (base <= largest_digit) - pedwarn ("integer constant contains digits beyond the radix"); - - if (overflow) - pedwarn ("integer constant out of range"); - - /* If too big to be signed, consider it unsigned. */ - if (((HOST_WIDE_INT) n & yylval.integer.signedp) < 0) - { - if (base == 10) - warning ("integer constant is so large that it is unsigned"); - yylval.integer.signedp = UNSIGNED; - } - - lexptr = p; - yylval.integer.value = n; - return INT; -} - -struct token { - char *operator; - int token; -}; - -static struct token tokentab2[] = { - {"&&", AND}, - {"||", OR}, - {"<<", LSH}, - {">>", RSH}, - {"==", EQUAL}, - {"!=", NOTEQUAL}, - {"<=", LEQ}, - {">=", GEQ}, - {"++", ERROR}, - {"--", ERROR}, - {NULL, ERROR} -}; - -/* Read one token, getting characters through lexptr. */ - -static int -yylex () -{ - register int c; - register int namelen; - register unsigned char *tokstart; - register struct token *toktab; - int wide_flag; - HOST_WIDE_INT mask; - - retry: - - tokstart = (unsigned char *) lexptr; - c = *tokstart; - /* See if it is a special token of length 2. */ - if (! keyword_parsing) - for (toktab = tokentab2; toktab->operator != NULL; toktab++) - if (c == *toktab->operator && tokstart[1] == toktab->operator[1]) { - lexptr += 2; - if (toktab->token == ERROR) - { - char *buf = (char *) alloca (40); - sprintf (buf, "`%s' not allowed in operand of `#if'", toktab->operator); - yyerror (buf); - } - return toktab->token; - } - - switch (c) { - case '\n': - return 0; - - case ' ': - case '\t': - case '\r': - lexptr++; - goto retry; - - case 'L': - /* Capital L may start a wide-string or wide-character constant. */ - if (lexptr[1] == '\'') - { - lexptr++; - wide_flag = 1; - mask = MAX_WCHAR_TYPE_MASK; - goto char_constant; - } - if (lexptr[1] == '"') - { - lexptr++; - wide_flag = 1; - mask = MAX_WCHAR_TYPE_MASK; - goto string_constant; - } - break; - - case '\'': - wide_flag = 0; - mask = MAX_CHAR_TYPE_MASK; - char_constant: - lexptr++; - if (keyword_parsing) { - char *start_ptr = lexptr - 1; - while (1) { - c = *lexptr++; - if (c == '\\') - c = parse_escape (&lexptr, mask); - else if (c == '\'') - break; - } - yylval.name.address = tokstart; - yylval.name.length = lexptr - start_ptr; - return NAME; - } - - /* This code for reading a character constant - handles multicharacter constants and wide characters. - It is mostly copied from c-lex.c. */ - { - register HOST_WIDE_INT result = 0; - register int num_chars = 0; - int chars_seen = 0; - unsigned width = MAX_CHAR_TYPE_SIZE; - int max_chars; -#ifdef MULTIBYTE_CHARS - int longest_char = local_mb_cur_max (); - char *token_buffer = (char *) alloca (longest_char); - (void) local_mbtowc (NULL_PTR, NULL_PTR, 0); -#endif - - max_chars = MAX_LONG_TYPE_SIZE / width; - if (wide_flag) - width = MAX_WCHAR_TYPE_SIZE; - - while (1) - { - c = *lexptr++; - - if (c == '\'' || c == EOF) - break; - - ++chars_seen; - if (c == '\\') - { - c = parse_escape (&lexptr, mask); - } - else - { -#ifdef MULTIBYTE_CHARS - wchar_t wc; - int i; - int char_len = -1; - for (i = 1; i <= longest_char; ++i) - { - token_buffer[i - 1] = c; - char_len = local_mbtowc (& wc, token_buffer, i); - if (char_len != -1) - break; - c = *lexptr++; - } - if (char_len > 1) - { - /* mbtowc sometimes needs an extra char before accepting */ - if (char_len < i) - lexptr--; - if (! wide_flag) - { - /* Merge character into result; ignore excess chars. */ - for (i = 1; i <= char_len; ++i) - { - if (i > max_chars) - break; - if (width < HOST_BITS_PER_INT) - result = (result << width) - | (token_buffer[i - 1] - & ((1 << width) - 1)); - else - result = token_buffer[i - 1]; - } - num_chars += char_len; - continue; - } - } - else - { - if (char_len == -1) - warning ("Ignoring invalid multibyte character"); - } - if (wide_flag) - c = wc; -#endif /* ! MULTIBYTE_CHARS */ - } - - if (wide_flag) - { - if (chars_seen == 1) /* only keep the first one */ - result = c; - continue; - } - - /* Merge character into result; ignore excess chars. */ - num_chars++; - if (num_chars <= max_chars) - { - if (width < HOST_BITS_PER_INT) - result = (result << width) | (c & ((1 << width) - 1)); - else - result = c; - } - } - - if (c != '\'') - error ("malformatted character constant"); - else if (chars_seen == 0) - error ("empty character constant"); - else if (num_chars > max_chars) - { - num_chars = max_chars; - error ("character constant too long"); - } - else if (chars_seen != 1 && ! traditional) - warning ("multi-character character constant"); - - /* If char type is signed, sign-extend the constant. */ - if (! wide_flag) - { - int num_bits = num_chars * width; - if (num_bits == 0) - /* We already got an error; avoid invalid shift. */ - yylval.integer.value = 0; - else if (lookup ((U_CHAR *) "__CHAR_UNSIGNED__", - sizeof ("__CHAR_UNSIGNED__") - 1, -1) - || ((result >> (num_bits - 1)) & 1) == 0) - yylval.integer.value - = result & (~ (unsigned_HOST_WIDE_INT) 0 - >> (HOST_BITS_PER_WIDE_INT - num_bits)); - else - yylval.integer.value - = result | ~(~ (unsigned_HOST_WIDE_INT) 0 - >> (HOST_BITS_PER_WIDE_INT - num_bits)); - } - else - { - yylval.integer.value = result; - } - } - - /* This is always a signed type. */ - yylval.integer.signedp = SIGNED; - - return CHAR; - - /* some of these chars are invalid in constant expressions; - maybe do something about them later */ - case '/': - case '+': - case '-': - case '*': - case '%': - case '|': - case '&': - case '^': - case '~': - case '!': - case '@': - case '<': - case '>': - case '[': - case ']': - case '.': - case '?': - case ':': - case '=': - case '{': - case '}': - case ',': - case '#': - if (keyword_parsing) - break; - case '(': - case ')': - lexptr++; - return c; - - case '"': - mask = MAX_CHAR_TYPE_MASK; - string_constant: - if (keyword_parsing) { - char *start_ptr = lexptr; - lexptr++; - while (1) { - c = *lexptr++; - if (c == '\\') - c = parse_escape (&lexptr, mask); - else if (c == '"') - break; - } - yylval.name.address = tokstart; - yylval.name.length = lexptr - start_ptr; - return NAME; - } - yyerror ("string constants not allowed in #if expressions"); - return ERROR; - } - - if (c >= '0' && c <= '9' && !keyword_parsing) { - /* It's a number */ - for (namelen = 1; ; namelen++) { - int d = tokstart[namelen]; - if (! ((is_idchar[d] || d == '.') - || ((d == '-' || d == '+') - && (c == 'e' || c == 'E' - || ((c == 'p' || c == 'P') && ! c89)) - && ! traditional))) - break; - c = d; - } - return parse_number (namelen); - } - - /* It is a name. See how long it is. */ - - if (keyword_parsing) { - for (namelen = 0;; namelen++) { - if (is_space[tokstart[namelen]]) - break; - if (tokstart[namelen] == '(' || tokstart[namelen] == ')') - break; - if (tokstart[namelen] == '"' || tokstart[namelen] == '\'') - break; - } - } else { - if (!is_idstart[c]) { - yyerror ("Invalid token in expression"); - return ERROR; - } - - for (namelen = 0; is_idchar[tokstart[namelen]]; namelen++) - ; - } - - lexptr += namelen; - yylval.name.address = tokstart; - yylval.name.length = namelen; - return NAME; -} - - -/* Parse a C escape sequence. STRING_PTR points to a variable - containing a pointer to the string to parse. That pointer - is updated past the characters we use. The value of the - escape sequence is returned. - - RESULT_MASK is used to mask out the result; - an error is reported if bits are lost thereby. - - A negative value means the sequence \ newline was seen, - which is supposed to be equivalent to nothing at all. - - If \ is followed by a null character, we return a negative - value and leave the string pointer pointing at the null character. - - If \ is followed by 000, we return 0 and leave the string pointer - after the zeros. A value of 0 does not mean end of string. */ - -HOST_WIDE_INT -parse_escape (string_ptr, result_mask) - char **string_ptr; - HOST_WIDE_INT result_mask; -{ - register int c = *(*string_ptr)++; - switch (c) - { - case 'a': - return TARGET_BELL; - case 'b': - return TARGET_BS; - case 'e': - case 'E': - if (pedantic) - pedwarn ("non-ANSI-standard escape sequence, `\\%c'", c); - return 033; - case 'f': - return TARGET_FF; - case 'n': - return TARGET_NEWLINE; - case 'r': - return TARGET_CR; - case 't': - return TARGET_TAB; - case 'v': - return TARGET_VT; - case '\n': - return -2; - case 0: - (*string_ptr)--; - return 0; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - { - register HOST_WIDE_INT i = c - '0'; - register int count = 0; - while (++count < 3) - { - c = *(*string_ptr)++; - if (c >= '0' && c <= '7') - i = (i << 3) + c - '0'; - else - { - (*string_ptr)--; - break; - } - } - if (i != (i & result_mask)) - { - i &= result_mask; - pedwarn ("octal escape sequence out of range"); - } - return i; - } - case 'x': - { - register unsigned_HOST_WIDE_INT i = 0, overflow = 0; - register int digits_found = 0, digit; - for (;;) - { - c = *(*string_ptr)++; - if (c >= '0' && c <= '9') - digit = c - '0'; - else if (c >= 'a' && c <= 'f') - digit = c - 'a' + 10; - else if (c >= 'A' && c <= 'F') - digit = c - 'A' + 10; - else - { - (*string_ptr)--; - break; - } - overflow |= i ^ (i << 4 >> 4); - i = (i << 4) + digit; - digits_found = 1; - } - if (!digits_found) - yyerror ("\\x used with no following hex digits"); - if (overflow | (i != (i & result_mask))) - { - i &= result_mask; - pedwarn ("hex escape sequence out of range"); - } - return i; - } - default: - return c; - } -} - -static void -yyerror (s) - char *s; -{ - error ("%s", s); - skip_evaluation = 0; - longjmp (parse_return_error, 1); -} - -static void -integer_overflow () -{ - if (!skip_evaluation && pedantic) - pedwarn ("integer overflow in preprocessor expression"); -} - -static HOST_WIDE_INT -left_shift (a, b) - struct constant *a; - unsigned_HOST_WIDE_INT b; -{ - /* It's unclear from the C standard whether shifts can overflow. - The following code ignores overflow; perhaps a C standard - interpretation ruling is needed. */ - if (b >= HOST_BITS_PER_WIDE_INT) - return 0; - else - return (unsigned_HOST_WIDE_INT) a->value << b; -} - -static HOST_WIDE_INT -right_shift (a, b) - struct constant *a; - unsigned_HOST_WIDE_INT b; -{ - if (b >= HOST_BITS_PER_WIDE_INT) - return a->signedp ? a->value >> (HOST_BITS_PER_WIDE_INT - 1) : 0; - else if (a->signedp) - return a->value >> b; - else - return (unsigned_HOST_WIDE_INT) a->value >> b; -} - -/* This page contains the entry point to this file. */ - -/* Parse STRING as an expression, and complain if this fails - to use up all of the contents of STRING. - STRING may contain '\0' bytes; it is terminated by the first '\n' - outside a string constant, so that we can diagnose '\0' properly. - If WARN_UNDEFINED is nonzero, warn if undefined identifiers are evaluated. - We do not support C comments. They should be removed before - this function is called. */ - -HOST_WIDE_INT -parse_c_expression (string, warn_undefined) - char *string; - int warn_undefined; -{ - lexptr = string; - warn_undef = warn_undefined; - - /* if there is some sort of scanning error, just return 0 and assume - the parsing routine has printed an error message somewhere. - there is surely a better thing to do than this. */ - if (setjmp (parse_return_error)) - return 0; - - if (yyparse () != 0) - abort (); - - if (*lexptr != '\n') - error ("Junk after end of expression."); - - return expression_value; /* set by yyparse () */ -} - -#ifdef TEST_EXP_READER - -#if YYDEBUG -extern int yydebug; -#endif - -int pedantic; -int traditional; - -int main PROTO((int, char **)); -static void initialize_random_junk PROTO((void)); -static void print_unsigned_host_wide_int PROTO((unsigned_HOST_WIDE_INT)); - -/* Main program for testing purposes. */ -int -main (argc, argv) - int argc; - char **argv; -{ - int n, c; - char buf[1024]; - unsigned_HOST_WIDE_INT u; - - pedantic = 1 < argc; - traditional = 2 < argc; -#if YYDEBUG - yydebug = 3 < argc; -#endif - initialize_random_junk (); - - for (;;) { - printf ("enter expression: "); - n = 0; - while ((buf[n] = c = getchar ()) != '\n' && c != EOF) - n++; - if (c == EOF) - break; - parse_c_expression (buf, 1); - printf ("parser returned "); - u = (unsigned_HOST_WIDE_INT) expression_value; - if (expression_value < 0 && expression_signedp) { - u = -u; - printf ("-"); - } - if (u == 0) - printf ("0"); - else - print_unsigned_host_wide_int (u); - if (! expression_signedp) - printf("u"); - printf ("\n"); - } - - return 0; -} - -static void -print_unsigned_host_wide_int (u) - unsigned_HOST_WIDE_INT u; -{ - if (u) { - print_unsigned_host_wide_int (u / 10); - putchar ('0' + (int) (u % 10)); - } -} - -/* table to tell if char can be part of a C identifier. */ -unsigned char is_idchar[256]; -/* table to tell if char can be first char of a c identifier. */ -unsigned char is_idstart[256]; -/* table to tell if c is horizontal or vertical space. */ -unsigned char is_space[256]; - -/* - * initialize random junk in the hash table and maybe other places - */ -static void -initialize_random_junk () -{ - register int i; - - /* - * Set up is_idchar and is_idstart tables. These should be - * faster than saying (is_alpha (c) || c == '_'), etc. - * Must do set up these things before calling any routines tthat - * refer to them. - */ - for (i = 'a'; i <= 'z'; i++) { - ++is_idchar[i - 'a' + 'A']; - ++is_idchar[i]; - ++is_idstart[i - 'a' + 'A']; - ++is_idstart[i]; - } - for (i = '0'; i <= '9'; i++) - ++is_idchar[i]; - ++is_idchar['_']; - ++is_idstart['_']; - ++is_idchar['$']; - ++is_idstart['$']; - - ++is_space[' ']; - ++is_space['\t']; - ++is_space['\v']; - ++is_space['\f']; - ++is_space['\n']; - ++is_space['\r']; -} - -void -error VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - fprintf (stderr, "error: "); - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); - va_end (args); -} - -void -pedwarn VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - fprintf (stderr, "pedwarn: "); - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); - va_end (args); -} - -void -warning VPROTO ((char * msg, ...)) -{ -#ifndef ANSI_PROTOTYPES - char * msg; -#endif - va_list args; - - VA_START (args, msg); - -#ifndef ANSI_PROTOTYPES - msg = va_arg (args, char *); -#endif - - fprintf (stderr, "warning: "); - vfprintf (stderr, msg, args); - fprintf (stderr, "\n"); - va_end (args); -} - -int -check_assertion (name, sym_length, tokens_specified, tokens) - U_CHAR *name; - int sym_length; - int tokens_specified; - struct arglist *tokens; -{ - return 0; -} - -struct hashnode * -lookup (name, len, hash) - U_CHAR *name; - int len; - int hash; -{ - return (DEFAULT_SIGNED_CHAR) ? 0 : ((struct hashnode *) -1); -} - -PTR -xmalloc (size) - size_t size; -{ - return (PTR) malloc (size); -} -#endif @@ -587,7 +587,6 @@ static struct compiler default_compilers[] = {".c", {"@c"}}, {"@c", { -#if USE_CPPLIB "%{E|M|MM:cpp -lang-c %{ansi:-std=c89} %{std*} %{nostdinc*}\ %{C} %{v} %{A*} %{I*} %{P} %I\ %{C:%{!E:%eGNU C does not support -C without using -E}}\ @@ -651,53 +650,6 @@ static struct compiler default_compilers[] = #endif /* END CYGNUS LOCAL */ }}, -#else /* ! USE_CPPLIB */ - "cpp -lang-c %{ansi:-std=c89} %{std*} %{nostdinc*}\ - %{C} %{v} %{A*} %{I*} %{P} %I\ - %{C:%{!E:%eGNU C does not support -C without using -E}}\ - %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\ - -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\ - %{ansi|std=*:%{!std=gnu*:-trigraphs -D__STRICT_ANSI__}}\ - %{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\ - %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\ - %{traditional} %{ftraditional:-traditional}\ - %{traditional-cpp:-traditional}\ - %{fleading-underscore} %{fno-leading-underscore}\ - %{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %C %{D*} %{U*} %{i*} %Z\ - %i %{!M:%{!MM:%{!E:%{!pipe:%g.i}}}}%{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}} |\n", - /* CYGNUS LOCAL v850/law & --help/nickc */ -#if 1 - "%{!M:%{!MM:%{!E:cc1 %{!pipe:%g.i} %1 \ - %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ - %{g*} %{O*} %{W*} %{w} %{pedantic*} %{ansi} \ - %{traditional} %{v:-version} %{pg:-p} %{p} %{f*}\ - %{aux-info*}\ - %{attr-info*}\ - %{--help:--help} \ - %{offset-info*}\ - %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ - %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\ - %{!S:as %a %Y\ - %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}\ - %{!pipe:%g.s} %A\n }}}}" -#else - /* END CYGNUS LOCAL */ - "%{!M:%{!MM:%{!E:cc1 %{!pipe:%g.i} %1 \ - %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ - %{g*} %{O*} %{W*} %{w} %{pedantic*} %{std*}\ - %{traditional} %{v:-version} %{pg:-p} %{p} %{f*}\ - %{aux-info*}\ - %{--help:--help} \ - %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ - %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\ - %{!S:as %a %Y\ - %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}\ - %{!pipe:%g.s} %A\n }}}}" - /* CYGNUS LOCAL v850/law */ -#endif - /* END CYGNUS LOCAL */ - }}, -#endif /* ! USE_CPPLIB */ {"-", {"%{E:cpp -lang-c %{ansi:-std=c89} %{std*} %{nostdinc*}\ %{C} %{v} %{A*} %{I*} %{P} %I\ @@ -5574,16 +5526,7 @@ lookup_compiler (name, length, language) (!strcmp (cp->suffix, "-") && !strcmp (name, "-")) || (strlen (cp->suffix) < length /* See if the suffix matches the end of NAME. */ -#ifdef OS2 - && ((!strcmp (cp->suffix, - name + length - strlen (cp->suffix)) - || !strpbrk (cp->suffix, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) - && !strcasecmp (cp->suffix, - name + length - strlen (cp->suffix))) -#else - && !strcmp (cp->suffix, - name + length - strlen (cp->suffix)) -#endif + && !strcmp (cp->suffix, name + length - strlen (cp->suffix)) )) { if (cp->spec[0][0] == '@') diff --git a/gcc/toplev.c b/gcc/toplev.c index 83437d6..899c337 100755 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2654,12 +2654,8 @@ compile_file (name) input_file_stack->name = input_filename; /* This may set main_input_filename. */ -#if !USE_CPPLIB - ungetc (check_newline (), finput); -#else check_newline (); yy_cur--; -#endif /* If the input doesn't start with a #line, use the input name as the official input file name. */ @@ -4011,10 +4007,6 @@ display_help () unsigned long i; char * lang; -#ifndef USE_CPPLIB - printf ("Usage: %s input [switches]\n", progname); - printf ("Switches:\n"); -#endif printf (" -ffixed-<register> Mark <register> as being unavailable to the compiler\n"); printf (" -fcall-used-<register> Mark <register> as being corrupted by function calls\n"); printf (" -fcall-saved-<register> Mark <register> as being preserved across functions\n"); @@ -4303,9 +4295,7 @@ main (argc, argv) flag_short_enums = DEFAULT_SHORT_ENUMS; #endif -#if USE_CPPLIB cpplib_init(); -#endif /* Scan to see what optimization level has been specified. That will determine the default value of many flags. */ |