X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=191a52578d79b23cb1ce00ca0e518b5c3065fd44;hb=9a77d564377280c6bc55673d24684b6dd4f40dd2;hp=2a702bfae5dfa68a1d558bbbb531e511721d93f2;hpb=8d079cfe8938b0d7bd21a6d6f0da89a8a7927a0b;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a702bfae5d..191a52578d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,7 +1,930 @@ +2004-02-28 Andrew Pinski + + * config/darwin.h (machopic_finish): Output stub even if the + symbol is already defined. + +2004-02-28 John David Anglin + + * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg. + +2004-02-28 Kazu Hirata + + * genattr.c (main): Don't define + TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE. + * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison. + (DFA_PIPELINE_INTERFACE): Likewise. + * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove. + (DFA_PIPELINE_INTERFACE): Likewise. + +2004-02-28 Richard Sandiford + + * config/mips/mips.md (tstsi, tstdi): Delete. + +2004-02-28 Maciej W. Rozycki + + * config/mips/mips.c (override_options): Remove an obsolete + duplicate definition of the "e" constraint. + * config/mips/mips.h: Update a comment accordingly. + +2004-02-28 Maciej W. Rozycki + + * config/mips/mips.md: Complete the unfinished R4000 + multiply/shift errata workaround. Improve documentation. + (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction + has a hilo hazard. + (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000. + (muldi3, muldi3_internal): Likewise. + (muldi3_internal2): Remove, replacing with... + (muldi3_mult3, muldi3_r4000): ...these new patterns. + (mulsidi3): Take the errata into account. + (mulsidi3_32bit): Remove, replacing with... + (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns. + (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000. + (umulsidi3): Take the errata into account. + (umulsidi3_32bit): Remove, replacing with.. + (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns. + (umulsi3_highpart, umulsi3_highpart_internal): Disable if + TARGET_FIX_R4000. + (smulsi3_highpart, smulsi3_highpart_internal): Likewise. + (smuldi3_highpart, umuldi3_highpart): Likewise. + * doc/invoke.texi: Document the errata workaround. + +2004-02-28 Maciej W. Rozycki + + * config/mips/mips-protos.h (mips_idiv_insns): Declare. + * config/mips/mips.h (MASK_FIX_SB1): Bump. + (MASK_FIX_R4000, TARGET_FIX_R4000): New macros. + (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000. + * config/mips/mips.c (mips_idiv_insns): New function. + (override_options): Make -march=r4000 imply -mfix-r4000 by default. + (mips_output_division): Add a workaround for the R4000 divide/shift + errata. + * config/mips/mips.md (length): Use mips_idiv_insns() to calculate + the length of an "idiv" instruction. + * doc/invoke.texi: Document the new switches. + +2004-02-28 Kazu Hirata + + * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to + TARGET_SCHED_IS_COSTLY_DEPENDENCE. + +2004-02-28 Zdenek Dvorak + + PR optimization/14229 + * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump. + +2004-02-28 Eric Botcazou + + * fold-const.c (fold): Strip NOPs that change the signedness + for RSHIFT too. Expand comment. + +2004-02-27 Ian Lance Taylor + + PR optimization/7871 + * flow.c (mark_set_1): Don't add LOG_LINKS for global registers + from or to call insns. + +2004-02-27 Eric Botcazou + + PR optimization/7871 + * flow.c (propagate_one_insn): Interpret calls as setting global + registers, not merely clobbering them. + +2004-02-27 Dale Johannesen + + * config/darwin.c (machopic_output_possible_stub_label): Remove. + config/darwin-protos.h: Ditto. + config/darwin.h: Remove call to it. + * combine.c (distribute_notes): Do not place a REG_DEAD note + when value is both set and used. + +2004-02-27 Kazu Hirata + + * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 + as well. + * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. + * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. + +2004-02-27 Andrew Pinski + + * c-typeck.c (tagged_types_tu_compatible_p) : + Speedup common case of the type values being in the same order. + +2004-02-27 Steve Ellcey + + * config/ia64/ia64.h (no-inline-float-divide): New option. + * config/ia64/ia64.h (no-inline-int-divide): New option. + * config/ia64/ia64.h (no-inline-sqrt): New option. + (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define. + * config/ia64/hpux.h (TARGET_DEFAULT): Ditto. + * config/ia64/ia64.c (ia64_override_options): Modify error + checking for inlined division/sqrt. + +2004-02-27 Kazu Hirata + + * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c, + ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c, + value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h, + config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update + copyright. + +2004-02-27 Paul Brook + + * function.c (assign_parms): Don't count pretend args for alignment. + +2004-02-27 Richard Henderson + + * passes.c: New file. + * Makefile.in (OBJS-common): Add it. + * diagnostic.c (rtl_dump_and_exit): Move decl ... + * flags.h (rtl_dump_and_exit): ... here. + * output.h (size_directive_output, last_assemble_variable_decl): + Move from toplev.c. + * rtl.h (reg_alloc): Move from toplev.c. + * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT, + struct dump_file_info, enum dump_file_index, dump_file_tbl, + open_dump_file, close_dump_file, rest_of_decl_compilation, + rest_of_type_compilation, rest_of_handle_final, + rest_of_handle_delay_slots, rest_of_handle_stack_regs, + rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, + rest_of_handle_new_regalloc, rest_of_handle_old_regalloc, + rest_of_handle_regrename, rest_of_handle_reorder_blocks, + rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove, + rest_of_handle_tracer, rest_of_handle_if_conversion, + rest_of_handle_if_after_combine, rest_of_handle_web, + rest_of_handle_branch_prob, + rest_of_handle_value_profile_transformations, rest_of_handle_cfg, + rest_of_handle_addressof, rest_of_handle_sibling_calls, + rest_of_handle_jump_bypass, rest_of_handle_inlining, + rest_of_handle_null_pointer, rest_of_handle_combine, + rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, + rest_of_handle_gcse, rest_of_handle_loop_optimize, + rest_of_handle_loop2, rest_of_compilation): Move to passes.c. + (decode_d_option): Use enable_rtl_dump_file. + (compile_file, finalize, do_compile): Move profile+combine+graph + cleanup to finish_optimization_passes. + * toplev.h (init_optimization_passes, finish_optimization_passes, + enable_rtl_dump_file): Declare. + +2004-02-27 Eric Botcazou + Roger Sayle + + * fold-const.c (fold): Revert 2004-02-25 change. Use the original + operands to build a tree with swapped operands. + * expr.c (expand_expr_real) : Consistently use the + 'unsignedp' predicate to specify the signedness. + +2004-02-27 Kazu Hirata + + * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c, + expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c, + params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix + comment typos and formatting. Follow spelling conventions. + +2004-02-26 Aldy Hernandez + + * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and + fix_truncsfsi2. + + * config/rs6000/spe.md: Delete spe_efsctuiz. + Add spe_fixuns_truncsfsi2. + Add spe_fix_truncsfsi2. + +2004-02-26 Eric Christopher + + * c-lex.c (c_lex_string_translate): New variable. + (lex_string): Use to determine string translation. + * c-pragma.h: Prototype. + * c-parse.in (start_string_translation): New. Set above. + (stop_string_translation): Ditto. + (attribute, attribute_list, asm_def, asm_stmt, + asm_operand): Use above functions. + * cp/parser.c (cp_parser_declaration): Translate strings + unless token is RID_EXTERN. Set c_lex_string_translate + for recursive use. + (cp_parser_asm_definition): Only translate argument strings + to asms. + (cp_parser_asm_operand_list): Ditto. + (cp_parser_attribute_list): Do not translate attribute strings. + +2004-02-26 Kazu Hirata + + * stmt.c (expand_start_case_dummy): Remove. + * tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * builtins.c (apply_args_register_offset): Remove. + * tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * stor-layout.c (is_pending_size): Remove. + * tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * recog.c (validate_replace_src): Remove. + * recog.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or + MAYBE_REG_PARM_STACK_SPACE. + * function.c: Likewise. + * system.h (FINAL_REG_PARM_STACK_SPACE): Poison. + (MAYBE_REG_PARM_STACK_SPACE): Likewise. + * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove. + (MAYBE_REG_PARM_STACK_SPACE): Likewise. + +2004-02-26 Kazu Hirata + + * c-decl.c (c_expand_deferred_function): Remove. + * c-tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * postreload.c (reload_cse_move2add): Generate just a PLUS + instead of an entire SET. + +2004-02-26 Jan Hubicka + + * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m + /pentium4m. + * i386.c (override_options): Add support for new CPUs. + * i386.h (TARGET_CPU_DEFAULT_NAMES): New names. + (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New + constants. + * invoke.texi: Extend documentation of -mtune/-march for new CPUs. + +2004-02-26 Bob Wilson + + * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__. + +2004-02-26 Eric Botcazou + + * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'. + (sparc_emit_fixunsdi): New prototype. + * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument. + (sparc_emit_fixunsdi): New function. + * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for + operand 1. Pass SFmode to sparc_emit_floatunsdi. + (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode + to sparc_emit_floatunsdi. + (fixuns_truncsfdi2): New expander. + (fixuns_truncdfdi2): Likewise. + +2004-02-26 Alan Modra + + * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter + unless HAVE_cc0. + +2004-02-25 Richard Henderson + + * explow.c (force_reg): Call mark_reg_pointer as appropriate. + * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't + use (op0-op1) == 0 if op0 is a pointer. + * config/alpha/alpha.md (cmpdi): Use some_operand. + (three comparison combine splits): Remove. + +2004-02-25 Richard Henderson + + PR c/12794 + * c-common.c (handle_alias_attribute): Reject the attribute if + current_function_decl is set. + +2004-02-25 Kelley Cook + + * config.gcc: Add comment describing extra_gcc_objs. + i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs. + * configure.ac (extra_gcc_objs): New substitution variable. + (host_extra_gcc_objs): Don't substitute. + * configure: Regenerate. + * Makefile.in: Use extra_gcc_objs. + +2004-02-25 Kelley Cook + + * doc/contrib.texi: Add an entry for myself. + +2004-02-25 Jan Hubicka + + * basic-block.h (make_eh_edge, break_superblocks): Declare. + * cfgbuild.c (make_eh_edge): Make global. + * cfglayout.c (break_superblocks): Likewise; fix memory leak. + * except.c (build_post_landing_pads, connect_post_landing_pads, + dw2_build_landing_pads, sjlj_emit_function_enter, + sjlj_emit_function_exit, sjlj_emit_dispatch_table, + sjlj_build_landing_pads): Update CFG. + (emit_to_new_bb_before): New function. + (finish_eh_generation): Do not rebuild the CFG. + +2004-02-25 John David Anglin + + * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all + target_cpu_default defines. + * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define. + * pa.h (TARGET_DEFAULT): Likewise. + +2004-02-25 Eric Botcazou + + * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like + comparisons with regard to signedness. + +2004-02-25 Richard Earnshaw + + * arm.c (thumb_legitimize_address): New function. + * arm-protos.h: Prototype it. + * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define. + (LEGITIMIZE_ADDRESS): Use it. + +2004-02-25 J"orn Rennecke + + * reload1.c (reload): Only spill eliminable register with multiple + adjacent elimination alternatives if all alternatives fail. + +2004-02-25 Richard Earnshaw + + * arm.c (arm_legitimate_index_p): For QImode the range of an offset + is -4095...+4095 inclusive. + +2004-02-25 Eric Botcazou + + * doc/install.texi (sparc-sun-solaris2* specific notes): Document + the bootstrap failure with Sun CC 5.4 and 5.5. + +2004-02-24 Kazu Hirata + + * cse.c (cse_change_cc_mode_insns): Stop at any instruction + which modifies NEWREG. + (cse_condition_code_reg): Update the mode of CC_REG in + CC_SRC_INSN on our own. + +2004-02-24 Michael Matz + + * config/i386/i386.c (ix86_comp_type_attributes): Check for + regparm attributes. + +2004-02-24 Richard Henderson + + * toplev.c (dump_file_tbl): Rename from dump_file. + * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c, + cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c, + config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c, + config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c, + loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c, + ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c, + toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c: + s/rtl_dump_file/dump_file/g. + +2004-02-24 Aldy Hernandez + + * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete. + (spe_fixuns_truncsfsi2): Delete. + + * config/rs6000/rs6000.md (fix_truncsfsi2): Delete. + (fixuns_truncsfsi2): Delete. + +2004-02-24 Josef Zlomek + + PR/14240 + * rtlanal.c (replace_label): Fix replacing labels in constant pool. + +2004-02-24 Geoffrey Keating + + * config/darwin.h (TARGET_HAS_F_SETLKW): Define. + +2004-02-24 Jason Merrill + + * tree.c (check_qualified_type): New fn. + (get_qualified_type): Use it. If type already has the desired + quals, just return it. + * tree.h: Declare it. + +2003-02-24 Sanjiv Kumar Gupta + + * target-def.h (TARGET_SCHED_INIT_GLOBAL, + TARGET_SCHED_FINISH_GLOBAL): New macros. + + * target.h (md_init_global, md_finish_global): Function + declarations corresponding to new target macros. + + * haifa-sched.c (sched_init, sched_finish): Allow target to + call the new schedular hooks. + + * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in + call to update_life_info. + + * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable + flag_schedule_insns for SH4. + + * config/sh/sh.c (sh_md_init_global, sh_md_finish_global, + find_set_regmode_weight, find_insn_regmode_weight, + find_regmode_weight), sh_md_init, sh_dfa_new_cycle, + sh_variable_issue, high_pressure, ready_reorder, + rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New + functions used to throttle the insn movement in first + scheduling pass for SH. + + * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and + TARGET_SCHED_FINISH_GLOBAL. + +2004-02-24 Alexandre Oliva + + Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux. + 2004-02-05 Alexandre Oliva + * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for + symbols in sections named by the user. + 2004-01-30 Alexandre Oliva + * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New. + 2004-01-27 Alexandre Oliva + * config.gcc (frv-*-*linux*): Handle like *-*-linux*. + * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by + the above. + 2004-01-20 Alexandre Oliva + * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add + one more pseudo to further improve code generation. + 2004-01-19 Alexandre Oliva + * config/frv/frv.md (movdi_ldd): Introduce explicit indirection + inside UNSPEC. + 2004-01-16 Alexandre Oliva + * config/frv/frv.c (frv_legitimate_address_p): Added + allow_double_reg_p argument. Adjust all callers. Use it to + decide whether to enable double-register indirect addressing. + (frv_funcdesc_alias_set): Remove. + (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into + register. Emit movdi_ldd. + (ldd_address_operand): New. + * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust. + * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. + (PREDICATE_CODES): Add ldd_address_operand. + * config/frv/frv.md (movdi_ldd): New. + (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for + intermediate computations if possible. + (symGOTOFF2reg_i): Fix harmless typo. + 2003-12-18 Alexandre Oliva + * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast + relocated p_vaddr to vaddr type. + * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void. + * config/frv/frv.c (frv_get_funcdesc_alias_set): New. + (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc + MEM, or use a funcdesc alias set. Use regular move instead of + ldd. + (dbl_memory_one_insn_operand): Recognize function descriptors by + type or by alias set, and don't split them. + * config/frv/frv.md (call, call_value): Never use call_internal + for fdpic. + (call_internal, call_value_internal): Never match for FDPIC. + (call_fdpicdi, call_fdpicsi, call_value_fdpicdi, + call_value_fdpicsi): Require FDPIC. + (ldd): Removed. + 2003-12-17 Alexandre Oliva + * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__. + * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more. + (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV + FDPIC. Compute data base address. + * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic + before the other self-specs are processed. + * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): + Build with -fPIC. + 2003-12-15 Alexandre Oliva + * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if + inhibit_libc is defined. + 2003-12-12 Alexandre Oliva + * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for + __FRV_FDPIC__. + (__RELOC_POINTER): Define. + (_Unwind_IteratePhdrCallback): Use it. + * config/frv/frv.h (Twrite): Define. + (TRANSFER_FROM_TRAMPOLINE): Use it. + * config/frv/linux.h (INVOKE__main): Undefine. + (Twrite): Override. + 2003-12-05 Richard Sandiford + * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options. + (-mlibrary-pic): Emphasize that this option generates EABI code. + (-mcpu): Add fr550. + (-mpack): Remove. + 2003-11-30 Alexandre Oliva + * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs + and CONSTs in FDPIC mode. + * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*. + 2003-11-29 Richard Sandiford + * config/frv/frv.c (move_source_operand): Don't accept symbolic + constants. + * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n' + rather than 'i' constraint for the 2-instruction alternative. + (*movsi_2word): New, incorporating existing int_2word_operand splitter. + 2003-11-29 Richard Sandiford + * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from + EXTRA_CONSTRAINT_FOR_Y. + (EXTRA_CONSTRAINT): Remove handling of 'Y'. + * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint. + (addsi3): Change 'Y' constraint to 'Q'. + 2003-11-27 Richard Sandiford + * reload.c (CONST_POOL_OK_P): New macro. + (find_reloads): Use it to decide whether a constant can be forced + into memory. + * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the + constant satisfies got12_operand. + (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC. + (frv_legitimate_address_p): Check for valid unspec offsets using + got12_operand rather than frv_legitimate_fdpic_operand_p. + (frv_legitimate_fdpic_operand_p): Delete. + (frv_emit_movsi): Abort if we try to use the FDPIC register during + or after reload. + (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if + TARGET_FDPIC. + * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE. + 2003-11-19 Richard Sandiford + * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand) + (frv_fdpic_fptr_operand): Don't declare here. + * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand + rather than fdpic_got12_operand. + (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for + got12_operand and const_unspec_operand. + * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand. + (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls. + (symbolic_operand): Remove. + (const_unspec_operand): New predicate. + * config/frv/frv.md (*movsi_got): Use got12_operand. + (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand. + 2003-11-18 Richard Sandiford + * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove. + * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition. + * config/frv/frv.c (frv_unspec): New structure. + (frv_small_data_reloc_p, frv_const_unspec_p): New functions. + (frv_print_operand_memory_reference): Use frv_const_unspec_p to + validate CONST indices. Use frv_output_const_unspec to print them. + (frv_print_operand): Update call to unspec_got_name. Use + frv_output_const_unspec to print constant unspecs. + (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p. + Reject UNSPECs otherwise. + (unspec_got_name): Take the relocation number as argument, not an + rtx containing it. + (frv_output_addr_const_extra): Remove, replacing with... + (frv_output_const_unspec): ...this new function. + (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p. + (gpr_or_int12_operand): Use fdpic_got12_operand. + (dbl_memory_one_insn_operand): Likewise. + (fdpic_got12_operand): Use frv_const_unspec_p. + (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that + are already legitimate. Use frv_small_data_reloc_p when deciding + whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12. + 2003-11-18 Alexandre Oliva + * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export... + * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file. + * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local + label, for real this time. + * config/frv/frv.c (frv_local_funcdesc_p): Update to new + representation of visibility. + (fdpic_got12_operand, symbolic_operand): Mark unused arguments as + such. + 2003-11-17 Richard Sandiford + * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros. + (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp. + * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless + it was explicitly disabled. + (frv_stack_info): There is no need to save the link register in every + frame unless TARGET_LINKED_FP is true. + (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a + frame pointer if the stack pointer might change value. + (frv_return_addr_rtx): Check and process "count" argument. + 2003-11-14 Richard Sandiford + * config/frv/frv-protos.h (frv_legitimize_address): Remove. + (frv_find_base_term): Declare. + * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing. + (FIND_BASE_TERM): Define. + (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand, + small_data_register_operand, small_data_symbolic_operand. Add + symbolic_operand. + * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete. + (frv_print_operand_memory_reference, output_move_single): Remove + special handling for unlegitimized sdata addresses. + (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG + and symbolic addresses. + (frv_legitimize_address, frv_legitimize_fdpic_address): Delete. + (frv_find_base_term): New function. + (int_2word_operand): Check specifically for symbolic address constants. + (pic_register_operand, pic_symbolic_operand): Delete. + (small_data_register_operand, small_data_symbolic_operand): Delete. + (dbl_memory_one_insn_operand): Don't call plus_small_data_p. + Allow UNSPEC_GOT constants if !TARGET_FDPIC. + (move_source_operand): Only accept CONSTs if they're a two-insn + symbolic constant. + (fdpic_got12_operand): Don't require TARGET_FDPIC. + (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses + using gen_symGOTOFF2reg*. + (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases. + (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs + themselves a cost of 3 insns. + * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too. + Change predicate to symbolic_operand. + (*movsi_high_got, *movsi_lo_sum_got): Likewise. + (*movsi_lda_sdata): Delete. + (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete. + 2003-11-05 Alexandre Oliva + * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for + frv-*-*linux*. + * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local + label. + * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before + -multilib-library-pic. + (LINK_SPEC): Add -z text for -mfdpic. + * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC. + * config/frv/frvend.c (__ROFIXUP_END__): Likewise. + * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): + Override. + (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define. + * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use + crtstuff-generated files. + 2003-10-31 Alexandre Oliva + * config.gcc: Add frv-*-*linux*. + * config/frv/linux.h, config/frv/t-linux: New. + 2003-10-06 Alexandre Oliva + * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker + when -mfdpic even if a linker script is explicitly listed. + 2003-10-02 Alexandre Oliva + * config/frv/frv.c (frv_override_options): Clear asm_out + unaligned_op for SImode on FDPIC. + (frv_emit_movsi): Use compute_reloc_for_constant to compute the + argument passed to decl_readonly_section. + (frv_assemble_integer): Revert 2003-09-30's change, but make the + whole block run with FDPIC even with -fno-PIC. + 2003-10-02 Alexandre Oliva + * config/frv/frv.c (frv_cannot_force_const_mem): Don't force + symbol or label plus offset to memory. + (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit + GOTOFF and GPREL for LABEL_REF. + * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with + -mfdpic unless -mno-gprel-ro, -fpic or -fpie. + (MASK_GPREL_RO, TARGET_GPREL_RO): New. + (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro. + * doc/invoke.texi: Document them. + 2003-09-30 Alexandre Oliva + * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare. + (frv_splittable_got_operand): Removed. + * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and + LO_SUM. Add comments. + (frv_override_options): Moved enabling of FDPIC to + DRIVER_SELF_SPECS. Don't enable MASK_DWORD. + (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie. + (frv_legitimize_fdpic_address): Don't duplicate logic in + frv_emit_movsi. + (frv_gen_GPsym2reg): New. + (unspec_got_name): Added gprel. + (frv_expand_fdpic_call): Add support for inlining PLTs. + (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand. + (gpr_or_int12_operand): Added GPREL12. + (pic_symbolic_operand): Match even if !flag_pic for FDPIC. + (small_data_symbolic_operand): Fail if FDPIC. + (fdpic_splittable_got_operand): Removed. + (fdpic_got12_operand): Added GPREL12. + (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL + when appropriate. Fix sdata GOTOFF. + (frv_legitimate_constant_p): Require legitimate PIC operand for + FDPIC with pic, but only a legitimate fdpic operand for non-pic. + (frv_assemble_integer): Move FDPIC funcdesc handling out of + flag_pic case. + (frv_asm_out_constructor, frv_asm_out_destructor): Abort if + frv_assemble_integer fails. + * config/frv/frv.h (DRIVER_SELF_SPECS): New. + (SUBTARGET_DRIVER_SELF_SPECS): New. + (ASM_SPEC): Don't pass -mno-fdpic. + (LINK_SPEC): Pass -melf32frvfd for FDPIC. + (MASK_INLINE_PLT, TARGET_INLINE_PLT): New. + (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and + -multilib-library-pic. + (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand, + condexec_si_media_operator, condexec_sf_add_operator and + condexec_sf_conv_operator. Removed condexec_sf_binary_operator + and condexec_sf_unary_operator. + * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO): + New. + (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before + movsi_internal. Give them internal names. movsi_got has type + int. + (fdpic got splitters): Remove. + (symGPREL2reg, symGPREL2reg_hilo): New. + * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC + to -mlibrary-pic. Map -multilib-library-pic to it. + * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic: + Document. + 2003-09-28 Alexandre Oliva + * config/frv/frv.c (frv_function_symbol_referenced_p): Declare. + (TARGET_CANNOT_FORCE_CONST_MEM): Define to... + (frv_cannot_force_const_mem): New function. + (const_small_data_p, plus_small_data_p): Update comments on sdata + on FDPIC. + (frv_override_options): Set flag_pie for FDPIC too. + (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed, + call-saved registers on FDPIC. + (frv_stack_info): Don't preserve the PIC register on FDPIC, and + don't force LR to be preserved. + (frv_expand_prologue): Likewise. + (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic. + (frv_frame_pointer_required): Don't force it just because the + FDPIC register is used. + (frv_legitimate_address_p) : Accept a legitimate FDPIC + operand only if !condexec_p. + (frv_legitimize_address): Return the FDPIC-legitimized address. + Don't match small data here on FDPIC. + (frv_legitimate_fdpic_operand_p): Don't accept unadorned function + symbols. Use TRUE/FALSE instead of 1/0. + (frv_local_funcdesc_p): New. + (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit + immediates when possible. + (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC. + (dbl_memory_one_insn_operand): Accept addresses that add a REG and + an UNSPEC_GOT. + (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and + 12-bit immediates when possible. + (frv_legitimate_constant_p): In FDPIC, reject SImode operands that + are not legitimate pic operands. + (frv_in_small_data_p): Re-enable for FDPIC. + * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC. + (FRV_GLOBAL_P): Removed. + * config/frv/frv.md: Add modes to CONSTs. + (movsi_got): New. + (movsi_lo_sum_got): Use separate matches instead of match_dup. + (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only. + (fdpic splittable operations): Match on flag_pic != 1. + 2003-09-22 Alexandre Oliva + * config/frv/frv.c (frv_asm_out_constructor, + frv_asm_out_destructor): Pass to frv_assemble_integer the size in + bytes, not bits. + 2003-09-19 Alexandre Oliva + * config/frv/frv.c (frv_assemble_integer): Reject complex + expressions referencing function SYMBOL_REFs. + * config/frv/frv.c (frv_function_symbol_referenced_p): New. + (move_source_operand): Reject CONSTs that reference function + SYMBOL_REFs on FDPIC. + (frv_emit_movsi): If we get such a CONST, break it up. + * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic. + (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC. + * config/frv/frv.c (frv_print_operand) : Recognize PLUS without + MEM. + (frv_assemble_integer): Don't use funcdesc for LABEL_REFs. + (frv_trampoline_size): Increase for FDPIC. + * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC. + (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines. + * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi): + Disable use of GOTOFF for now. + (const_small_data_p, plus_small_data_p, frv_in_small_data_p): + Disable use of small data in FDPIC for now. + (frv_asm_output_mi_thunk): Implement for FDPIC. + * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC. + * config/frv/frv.c (frv_asm_out_constructor): Use + frv_assemble_integer for FDPIC pointers. + (frv_asm_out_destructor): Likewise. + * config/frv/frv.md (ldd): Fix order of operands. Use + address_operand for input. + 2003-09-18 DJ Delorie + * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC. + (unspec_got_name): Correct typo. + (frv_emit_movsi): Pre-expand splittable GOTs. + (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd. + * config/frv/frv.md (lddi): Fix syntax error, rename to ldd. + (symGOT2reg_hilo, symGOTOFF2reg_hilo): New. + * config/frv/t-frv: Add -mfdpic multilibs. + * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic. + (TARGET_SWITCHES): Add -mno-fdpic, fix documentation. + * config/frv/frv.c (frv_override_options): -mfdpic assumes + flag_pic, default to 32-bit pics, require DWORD ops. + (frv_override_options): Add W and Z constraints. + (frv_expand_prologue): No pic prologue for -mfdpic. + (frv_asm_output_mi_thunk): Support -mfdpic (soon). + (frv_print_operand_memory_reference): Handle GOT constants. + (frv_legitimate_address_p): Allow GOT constants. + (frv_legitimize_address): Handle GOT addresses too. + (frv_legitimate_fdpic_operand_p): New. + (frv_legitimize_fdpic_address): New. + (unspec_got_name): New. + (frv_output_addr_const_extra): New. + (frv_expand_fdpic_call): New. + (frv_fdpic_fptr_operand): New. + (gpr_or_int12_operand): Handle GOT operands. + (int_2word_operand): Handle GOT operands. + (fdpic_operand): New. + (fdpic_splittable_got_operand): New. + (fdpic_got12_operand): New. + (frv_emit_movsi): Handle GOT operands. + (frv_assemble_integer): -mfdpic doesn't use rofixups. + (frv_print_operand): Support 'g' code for GOT operands. + * config/frv/frv-protos.h: Add prototypes as needed. + * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, + R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, + R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE, + R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI, + R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI, + R_FRV_GOTOFFLO): New. + (movsi_high_got, movsi_lo_sum_got): New. + (*movsi_pic): Don't use this splitter for -mfdpic. + (addsi3): Allow GOT references also. + (call, call_value): Handle -mfdpic separately. + (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi, + call_value_fdpicsi): New. + (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg, + symGOTOFF2reg_i): New. + * config/frv/frv.h (MASK_FDPIC): New. + (TARGET_FDPIC): New. + (TARGET_SWITCHES): Add -mfdpic. + (FDPIC_FPTR_REGNO): New. + (FDPIC_REGNO): New. + (OUR_FDPIC_REG): New. + (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and + FDPIC_CALL_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs. + (EXTRA_CONSTRAINT): Add it here. + (FRV_GLOBAL_P): New. + (OUTPUT_ADDR_CONST_EXTRA): New. + +2004-02-24 Kazu Hirata + + * config/sparc/sparc.h: Remove commented-out definitions of + TARGET_EDOM and GEN_ERRNO_RTX. + +2004-02-24 Kazu Hirata + + * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace + df_analyse with df_analyze. + +2004-02-24 Alan Modra + + * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not + beginning of block. + +2004-02-23 James E Wilson + + * calls.c (precompute_arguments): Update comment. + +2004-02-23 Kazu Hirata + + * et-forest.c: Replace et_occurences with et_occurrences. + +2004-02-23 Kazu Hirata + + * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse + with iv_analyze. + +2004-02-23 Kelley Cook + + * config/i386/i386.c: Rename pni to sse3. + * config/i386/i386.h: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/pmmintrin.h: Likewise. + * doc/extend.texi: Likewise. + * doc/invoke.texi: Likewise. + +2004-02-23 Zack Weinberg + Kazu Hirata + + Remove -fwritable-strings. + * c-common.c (fix_string_type): Don't check + flag_writable_strings. + (fix_string_type): Likewise. + * c-opts.c (set_std_c89): Don't initialize + flag_writable_strings. + (set_std_c99): Likewise. + * common.opt (fwritable-strings): Remove. + * flags.h: Remove the external declaration of + flag_writable_strings. + * opts.c (common_handle_option) : + Remove. + * toplev.c (flag_writable_strings): Remove. + (f_options): Remove an entry for writable-strings. + * varasm.c (const_hash_1) : Don't check + flag_writable_strings. + (compare_constant) : Likewise. + (build_constant_desc): Likewise. + * config/darwin.c (machopic_select_section): Likewise. + * config/arm/arm.c (AOF_ASSEMBLER): Likewise. + * config/arm/pe.c (arm_pe_encode_section_info): Likewise. + * config/iq2000/iq2000.c (iq2000_select_section): Likewise. + * config/mips/mips.c (mips_select_section): Likewise. + (mips_encode_section_info): Likewise. + * config/pa/pa.c (pa_select_section): Likewise. + * config/pa/pa.h (TEXT_SPACE_P): Likewise. + * config/v850/v850.c (v850_select_section): Likewise. + * doc/invoke.texi (-fwritable-strings): Remove. + (-fno-const-strings): Don't mention -fwritable-strings. + * doc/trouble.texi: Don't mention -fwritable-strings. + +2003-02-23 Nathanael Nerode + + * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57. + +2004-02-23 Dale Johannesen + + * config/rs6000.md (movsf_hardfloat): Add POWER form of nop. + (movdf_hardfloat64): Ditto. + (movdf_softfloat64): Ditto. + 2004-02-23 Fariborz Jahanian * config/rs6000/rs6000.c (function_arg): call to rs6000_mixed_function_arg for DFmode moved to allow - normal DFmode incoming register assignment. + normal DFmode incoming register assignment. 2004-02-23 Dale Johannesen @@ -150,7 +1073,7 @@ merely its number. (rs6000_attribute_table): Add "altivec" attribute. (rs6000_handle_altivec_attribute): New function. - * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe + * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated' maps to). (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward @@ -1327,7 +2250,7 @@ 2004-02-10 Danny Smith PR c/14088 - real.c (real_from_string): Look for 'X' as well as 'x' in + * real.c (real_from_string): Look for 'X' as well as 'x' in hexfloat strings. 2004-02-10 Kazu Hirata