aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
AgeCommit message (Collapse)AuthorFilesLines
2004-08-18darwin.md: Delete the altivec patterns which are handled differently now.Andrew Pinski4-111/+29
2004-08-18 Andrew Pinski <apinski@apple.com> * config/rs6000/darwin.md: Delete the altivec patterns which are handled differently now. (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT (macho_correct_pic_di): Likewise. (call_indirect_nonlocal_darwin64): Likewise. Delete the save world/saveFP/saveVec patterns. Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com> * config/darwin.c (macho_indirect_data_reference): Add DImode case. * config/rs6000/rs6000.md: Include darwin.md. (builtin_setjmp_receiver): Add DImode case. * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to Darwin bits. From-SVN: r86204
2004-08-18Dead code strippingMatt Austern2-1/+2
Dead code stripping * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped. * darwin.c (darwin_file_end): Mark file as potentially strippable. From-SVN: r86203
2004-08-18sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers from ↵J"orn Rennecke3-19/+32
call_used_regs. * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers from call_used_regs. Update call_really_used_regs. (CALL_REALLY_USED_REGISTERS): Define. * sh.c (output_stack_adjust, shmedia_target_regs_stack_space): Replace call_used_regs with call_really_used_regs. (calc_live_regs, sh_media_register_for_return): Likewise. (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise. * sh.md (return_media): Likewise. From-SVN: r86195
2004-08-18darwin.c (machopic_legitimize_pic_address): Only set MEM_READONLY_P in the ↵Andrew Pinski1-1/+1
non TARGET_TOC case. 2004-08-18 Andrew Pinski <apinski@apple.com> * config/darwin.c (machopic_legitimize_pic_address): Only set MEM_READONLY_P in the non TARGET_TOC case. From-SVN: r86194
2004-08-18rtl.def (NIL): Delete.Zack Weinberg16-54/+54
* rtl.def (NIL): Delete. * read-rtl.c (read_rtx): Handle (nil) like (define_constants). Tighten the syntax a little. * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c * config/i386/predicates.md, config/m32r/m32r.h * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h * config/sparc/sparc.h, doc/tm.texi: Replace all occurrences of NIL with UNKNOWN. From-SVN: r86193
2004-08-18save_world/rest_world for ppc-darwin.Fariborz Jahanian4-12/+450
Approved by Geoff Keating. From-SVN: r86191
2004-08-18Hot/cold partitioning update patch.Caroline Tice6-8/+4
Hot/cold partitioning update patch. The problems that this patch attemptd to address/fix are: - Fix places where adding in_unlikely_executed_text to the enum data type "in_section" threw off switch case statements. - Make it work correctly (by turning it off) for functions where user specifies "__attribute__ section" - Make it work correctly (by turning it off) for linkonce sections - Make it work correctly with -ffunction-sections flag - Make it output correct cold section labels - Undo some changes to original assembly code generation - Turn off hot/cold partitioning in the presence of DWARF debugging (for the moment) - Turn off hot/cold partitioning for architectures that do not support named sections - Use variables rather than constants for cold section labels and names (to work correctly with -ffunction-sections, among other things) 2004-08-18 Caroline Tice <ctice@apple.com> * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add "-freorder-blocks-and-partition" to the flags used in second stage of profiledbootstrap. * bb-reorder.c (push_to_next_round_p): Add new variable, next_round_is_last; set and use variable to make sure, when partitioning, that the last trace construction round consists of all (and only) cold basic blocks. (rotate_loop): Don't copy blocks that end in a section crossing jump. (copy_bb): Correctly initialize "partition" of duplicated bb. (add_unlikely_executed_notes): Add a comment. (find_rarely_executed_basic_blocks_and_crossing_edges): Modify to make sure, if function contains hot blocks, that the successors of ENTRY_BLOCK_PTR are hot; also, only look for crossing edges if the architecture supports named sections. (mark_bb_for_unlikely_executed_section): Modify to always insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after the basic block note insn. (fix_crossing_unconditional_branches): Remove extra space. (fix_edges_for_rarely_executed_code): Modify to only do partitioning work if the architecture supports named sections. (reorder_basic_blocks): Modify to only add NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture supports named sections. * c-common.c (handle_section_attribute): Initialize new global variable, user_defined_section_attribute, to true if user has specified one. * cfgcleanup.c (try_forward_edges): Modify to not attempt to forward edges that cross section boundaries. * cfglayout.c (fixup_reorder_chain): Modify to only fix up partitioning information if the architecture supports named sections. * cfgrtl.c (target.h): Add statement to include this. (rtl_split_block): Make sure newly created bb gets correct partition. (try_redirect_by_replacing_jump): Make sure redirection isn't attempting to cross section boundaries. (force_nonfallthru_and_redirect): Only do partition fix up if architecture supports named sections. (rtl_split_edge): Make sure newly created bb ends up in correct partition. (commit_one_edge_insertion): Remove code that incorrectly updated basic block partition; Make sure partition fix up only happens if architecture supports named sections and it's not already done. (rtl_verify_flow_info_1): Fix if-condition on test/error condition that fallthru edges are not allowed to cross section boundaries. * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this. * final.c (final_scan_insn): Remove redundant test from if-statement; change calls to text_section into calls to function_section; add code to only to partitioning fix up if architecture supports named sections. * ifcvt.c (find_if_case_1): Make sure newly created bb has correct partition. (if_convert): Add targetm.have_named_sections to test. * output.h (unlikely_section_label): Extern declaration for new global variable. (unlikely_text_section_name): Likewise. * opts.c (decode_options): If both partitioning and DWARF debugging are turned on, issue a warning that this doesn't work, and change partitiong to basic block reordering (without hot/cold partitions). * passes.c (rest_of_handle_final): Re-set new global variable, user_defined_section_attribute, to false. (rest_of_compilation): Change options for calling partitioning function: Don't call if the user defined the section attribute, and don't call if DECL_ONE_ONLY is true for the current function. * predict.c (choose_function_section): Return immediately if we are doing hot/cold partitioning (i.e. let the basic block partitioning determine where the function belongs). * reg-stack.c (emit_swap_insn): Add condition to step over NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. * toplev.c (user_defined_section_attribute): New global variable. * toplev.h (user_defined_section_attribute): Extern declaration for new global variable. * varasm.c (unlikely_section_label): New global variable. (unlikely_text_section_name): New global variable. (unlikely_text_section): Add code to initialize unlikely_text_section_name if necessary; modify to use unlikely_text_section_name and unlikely_section_label; also to use named_section properly. (in_unlikely_text_section): Modify to work correctly with named_section and to use unlikely_text_section_name. (named_section): Add code to work properly with cold section. (function_section): Clean up if-statement. * config/darwin.c (darwin_asm_named_section): Return to original code, removing use of SECTION_FORMAT_STRING. * config/arm/pe.h (switch_to_section): Add case for in_unlikely_executed_text to switch statement. * config/i386/cygming.h (switch_to_section): Likewise. * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. (SECTION_FORMAT_STRING): Likewise. * config/mcore/mcore.h (switch_to_section): Likewise. * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. From-SVN: r86189
2004-08-18i386.h (FIXED_REGISTERS): Update encoding to be -ffixed-reg safe, by ↵Roger Sayle1-19/+25
preserving the meanings of zero and one. * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be -ffixed-reg safe, by preserving the meanings of zero and one. (CALL_USED_REGISTERS): Likewise. (CONDITIONAL_REGISTER_USAGE): Update to process new encodings. From-SVN: r86185
2004-08-18sh.c (split_branches): Check the result of next_active_insn.Kaz Kojima1-1/+5
* config/sh/sh.c (split_branches): Check the result of next_active_insn. (sh_output_mi_thunk): Call init_flow if basic_block_info is null. Call rtl_register_cfg_hooks. From-SVN: r86181
2004-08-18Part of the vectorizer patch that was accidently left out...:Dorit Nuzman2-0/+6
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. From-SVN: r86180
2004-08-18rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.Richard Henderson22-118/+83
* rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. * alias.c (true_dependence): Update to match new semantics. (canon_true_dependence, write_dependence_p): Likewise. (anti_dependence, output_dependence): Update write_dependence_p args. (unchanging_anti_dependence): Remove. * calls.c (purge_mem_unchanging_flag): Remove. (fixup_tail_calls): Don't call it. (expand_call): Don't add unchanging memory to function usage. * expr.c (emit_block_move_via_libcall): Likewise. (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems. (get_subtarget): Don't use RTX_UNCHANGING_P. (expand_assignment, store_constructor, expand_expr_real_1): Likewise. (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P. * combine.c (get_last_value_validate): Use MEM_READONLY_P. * cse.c (insert): Don't use RTX_UNCHANGING_P. (cse_insn, canon_hash): Use MEM_READONLY_P. * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P instead of RTX_UNCHANGING_P. * explow.c (maybe_set_unchanging): Remove. * expr.h (maybe_set_unchanging): Remove. * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence. * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P. (assign_parm_setup_reg, expand_function_start): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. * ra-rewrite.c (emit_colors): Likewise. * regmove.c (copy_src_to_dest, regmove_optimize): Likewise. (fixup_match_1): Likewise. * reload1.c (reload, alter_reg): Likewise. * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P, not RTX_UNCHANGING_P. (equiv_init_varies_p): Likewise. * loop-invariant.c (check_maybe_invariant): Likewise. * resource.c (mark_referenced_resources, mark_set_resources): Likewise. * loop.c (note_addr_stored): Likewise. (prescan_loop): Likewise. Don't check function usage for clobbered unchanging memory. * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P, not RTX_UNCHANGING_P. (rtx_varies_p, modified_between_p, modified_in_p): Likewise. * varasm.c (force_const_mem): Likewise. * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P. * web.c (entry_register): Likewise. * tree-gimple.h (get_base_address): Move decl ... * tree.h: ... here. * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P. * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too. (alpha_set_memflags): Update to match. * config/darwin.c (machopic_indirect_data_reference): Set MEM_READONLY_P instead of RTX_UNCHANGING_P. (machopic_indirect_call_target): Likewise. (machopic_legitimize_pic_address): Likewise. * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple, arm_gen_store_multiple, arm_gen_movmemqi): Likewise. * config/arm/arm.md (load_multiple, store_multiple): Likewise. * config/frv/frv.md (symGOT2reg): Likewise. * config/i386/i386.c (legitimize_pic_address, legitimize_tls_address, ix86_split_to_parts): Likewise. * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. * config/ia64/ia64.md (load_fptr): Likewise. * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. * config/m68k/m68k.c (legitimize_pic_address): Likewise. * config/mcore/mcore.c (block_move_sequence): Likewise. * config/mn10300/mn10300.md (symGOT2reg): Likewise. * config/pa/pa.c (legitimize_pic_address): Likewise. * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. (rs6000_emit_move): Likewise. * config/s390/s390.c (legitimize_pic_address): Likewise. (legitimize_tls_address): Likewise. * config/s390/s390.md (casesi): Likewise. * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise. * config/sh/sh.md (symGOT2reg): Likewise. * config/sparc/sparc.c (legitimize_pic_address): Likewise. * config/v850/v850.md (casesi): Likewise. * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P. * config/iq2000/iq2000.c (save_restore_insns): Likewise. * config/mips/mips.c (mips_restore_gp): Likewise. (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise. * config/sh/sh.c (sh_reorg): Likewise. From-SVN: r86178
2004-08-18c4x.c (legitimize_operands): Remove calls to preserve_subexpressions_p.Paolo Bonzini1-2/+0
2004-04-18 Paolo Bonzini <bonzini@gnu.org> * config/c4x/c4x.c (legitimize_operands): Remove calls to preserve_subexpressions_p. From-SVN: r86175
2004-08-17arm.md (addsi3, [...]): Rework to avoid use of preserve_subexpressions_p.Richard Earnshaw1-12/+7
* arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to avoid use of preserve_subexpressions_p. From-SVN: r86159
2004-08-17extend.texi: Document new xstormy16 attribute.DJ Delorie4-26/+880
* doc/extend.texi: Document new xstormy16 attribute. * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New. (xstormy16_splittable_below100_or_register): New. (combine_bnp): New. (xstormy16_reorg): New. (TARGET_MACHINE_DEPENDENT_REORG): Define. * config/stormy16/stormy16.md (movqi_internal): Make name public. (movhi_internal): Likewise. (cbhranchhi): Likewise. (cbhranchhi_neg): Likewise. (andhi3): Only allow splittable below100 operands. (iorhi3): Likewise. (peephole2): New and/zero_extend->and peephole. (peephole2): New load/ior/save->set1 peephole. (peephole2): New load/and/save->clr1 peephole. (bclrx, bclrx2, bclr7, bclr15): New. (bsetx, bsetx2, bset7, bset15): New. * config/stormy16/stormy16.c (xstormy16_print_operand): Be more liberal about acceptable 'B' masks. * config/stormy16/stormy16-protos.h (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, xstormy16_below100_operand, xstormy16_below100_or_register, xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. (PREDICATE_CODES): Add new predicates. * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, xstormy16_below100_operand, xstormy16_below100_or_register, xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New. (xstormy16_legitimate_address_p): Allow below100 symbols. (xstormy16_extra_constraint_p): Add 'W' for below100 operands. (xstormy16_expand_move): Leave below100 operands as-is. (xstormy16_encode_section_info): Encode below100 symbols. (xstormy16_strip_name_encoding): New. (xstormy16_print_operand): Print 'b' as shift mask. (xstormy16_attribute_table): Add below100 attributes. (xstormy16_handle_below100_attribute): New. * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100. (XSTORMY16_SECTION_FUNCTION): New. (EXTRA_SECTION_FUNCTIONS): Define using the above. (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols. (ASM_OUTPUT_LABELREF): Define. * config/stormy16/stormy16.md (movqi_internal): Add below100 support. (movhi_internal): Add below100 support. (andhi3): Add below100 support. (iorhi3): Add below100 support. (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New. From-SVN: r86154
2004-08-17* config/darwin.c (macho_indirect_data_reference): Add DImode case.David Edelsohn1-9/+3
From-SVN: r86149
2004-08-17Canonicalize mips nmadd/nmsub patterns.James E Wilson1-4/+52
* config/mips/mips.md: Add canonical nmadd and nmsub patterns for both normal and -ffast-math code. From-SVN: r86148
2004-08-17Canonicalize mips conditional move patterns.James E Wilson2-37/+38
* config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead of VOIDmode for comparison code mode. * config/mips/mips.md: For conditional move patterns, use mode of first compare operand for comparison mode, instead of VOIDmode. From-SVN: r86145
2004-08-17Add -mdynamic-no-pic to compile flags for gcc. On Mac OS X and Darwin,Robert Bowdidge1-0/+1
the compiler generates position-independent-code by default. This allows an object file to be used for a dylib or executable without any thought on the developer's part, but generates less-efficient code. Setting this flag on gcc speeds compiles by 3-5%. * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags. From-SVN: r86141
2004-08-17darwin.md (*call_nonlocal_darwin64): Add #else clause for non Darwin targets.Andreas Tobler1-1/+5
2004-08-17 Andreas Tobler <a.tobler@schweiz.ch> * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause for non Darwin targets. (*call_value_nonlocal_darwin64): Likewise. From-SVN: r86136
2004-08-17Check for Altivec mode when returning altivec register.Fariborz Jahanian1-1/+2
Reviewed by David Edehlson. From-SVN: r86135
2004-08-17Revert 2004-08-16 Stan Shebs <shebs@apple.com>David Edelsohn2-17/+4
Revert 2004-08-16 Stan Shebs <shebs@apple.com> * config/rs6000/rs6000.md: Include darwin.md. (builtin_setjmp_receiver): Add DImode case. * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to Darwin bits. From-SVN: r86132
2004-08-17re PR target/17019 (THUMB: bad switch statement in md code for ↵Daniel Bornstein1-2/+2
addsi3_cbranch_scratch) From Daniel Bornstein <danfuzz@milk.com> PR target/17019 * arm.md (addsi3_cbranch_scratch): Correct case labels. From-SVN: r86114
2004-08-17Makefile.in: Regenerate.Paolo Bonzini1-9/+10
2004-08-17 Paolo Bonzini <bonzini@gnu.org> * Makefile.in: Regenerate. * configure: Regenerate. * Makefile.def (bootstrap-stage): Rename extra_*_flags to stage_*_flags. * Makefile.tpl (configure-[+module+], all-[+module+]): Exit for bootstrapped modules if toplevel bootstrap is going. (GCC bootstrap): Generate per-stage targets for all bootstrapped modules. Adjust for changes in Makefile.def. Enable several rules even in non-bootstrap mode, just to avoid peppering the template with unnecessary "@if/@endif gcc-bootstrap" pairs. (stage-[+prev+]-bubble): Remove. * Makefile.def (Dependencies): Depend on all-build-bison, all-build-flex, all-build-byacc, all-build-texinfo, rather than the host variations. * Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout with BUILD_SUBDIR. (BISON): Update for recent Bisons. (YACC): Fix typo. (cross): Depend on all-build. (all): Do not depend on all-build. (prebootstrap): Remove. (dep-kind): Accept separate prefixes for MODULE and ON variables. (Prebootstrap dependencies): Add them to the per-stage targets and to all-prebootstrap. * configure.in (build_configdirs): Always enable build_tools. (BUILD_DIR_PREFIX): Remove. * Makefile.def (gcc): Add target variable. (gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags. * Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*) in the recursive `make', instead of hardwiring `all'. (Autogenerated TARGET-* variables): New. gcc/ChangeLog: 2004-08-17 Paolo Bonzini <bonzini@gnu.org> * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO. No need to check if in a cross configuration. * configure: Regenerate. * calls.c (precompute_register_parameters): Inline preserve_subexpressions_p (). * expmed.c (expand_mult_const, emit_store_flag): Likewise. * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn): Likewise. * expr.c (get_subtarget): Likewise. * rtl.h (preserve_subexpressions_p): Remove. * stmt.c (preserve_subexpressions_p): Remove. * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR, TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>: Abort on gimplified cases. From-SVN: r86111
2004-08-16c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.Devang Patel3-0/+12
* c-common.c (handle_used_attribute): Set DECL_PRESERVE_P. * print-tree.c (print_node): Print DECL_PRESERVE_P. * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define. (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED * target.h (struct gcc_target): New member, mark_decl_preserved. * hooks.c (hook_void_charptr): Rename to ... (hook_void_constcharptr): ... new name. * hooks.h (hook_void_charptr): Rename to .. (hook_void_constcharptr): ... new name. * tree.h (DECL_PRESERVE_P): New #define. (struct tree_decl): New member, preserve_flag. * varasm.c (assemble_start_function): Mark decl preserved. (assemble_variable): Same. * darwin.c (darwin_mark_decl_preserved): New function. * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define. * darwin-protos.h (darwin_mark_decl_preserved): New decl. * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document. testsuite: * gcc.dg/darwin-20040809-1.c: New test. From-SVN: r86076
2004-08-16Patch to fix -mcpu=G5 interface to EH runtime library.Fariborz Jahanian1-0/+12
Reviewed by Geoff Keating. From-SVN: r86074
2004-08-16Basic support for 64-bit Darwin.Stan Shebs5-12/+444
* config/darwin.c (macho_indirect_data_reference): Add DImode case. (machopic_legitimize_pic_address): Similarly, plus use Pmode instead of SImode. * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit. (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro. (SUBTARGET_SWITCHES): Add -m32 and -m64 flags. (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64. (PROCESSOR_DEFAULT64): Define. * config/rs6000/darwin.md: New file, patterns specific to 64-bit Darwin. * config/rs6000/rs6000.md: Include darwin.md. (builtin_setjmp_receiver): Add DImode case. * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for Darwin. (TARGET_ASM_ALIGNED_DI_OP): Ditto. (rs6000_emit_move): Add DImode case to Darwin bits. (machopic_output_stub): Use .quad if 64-bit. * invoke.texi: Document -m32 and -m64. From-SVN: r86070
2004-08-16* sh.h (PREDICATE_CODES): Remove register_operand entry.Joern Rennecke1-1/+0
From-SVN: r86055
2004-08-15re PR target/14931 (ASM file in GCC for PPC darwin should use the new stub ↵Andreas Tobler1-4/+4
style) 2004-08-15 Andreas Tobler <a.tobler@schweiz.ch> Andrew Pinski <pinskia@physics.uc.edu> PR target/14931 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub style. Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu> From-SVN: r86028
2004-08-15tree.h (build_int_cst): New.Nathan Sidwell13-64/+80
.: * tree.h (build_int_cst): New. (build_int_2): Remove. * tree.c (build_int_2): Remove. (build_int_cst): New. (make_vector_type, build_common_tree_nodes, build_common_tree_nodes_2): Use build_int_cst. * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, expand_builtin_strpbrk, expand_builtin_fputs, build_string_literal, expand_builtin_printf, expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop, fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii, fold_builtin_isdigit, simplify_builtin_strstr, simplify_builtin_strpbrk, fold_builtin_fputs, simplify_builtin_sprintf): Use build_int_cst. * c-common.c (start_fname_decls, fix_string_type, c_common_nodes_and_builtins, c_init_attributes, shorten_compare): Likewise. * c-decl.c (complete_array_type, check_bitfield_type_and_width): Likewise. * c-lex.c (interpret_integer, lex_charconst): Likewise. * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise. * c-pretty-print.c (pp_c_integer_constant): Likewise. * c-typeck.c (really_start_incremental_init, push_init_level, set_nonincremental_init_from_string): Likewise. * calls.c (load_register_parameters): Likewise. * convert.c (convert_to_pointer): Likewise. * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, build_fn_info_type, build_ctr_info_value, build_gcov_info): Likewise. * except.c (init_eh, assign_filter_values, assign_filter_values): Likewise. * expmed.c (store_fixed_bit_field, extract_bit_field, extract_fixed_bit_field, extract_split_bit_field, expand_shift, expand_mult_const, expand_mult_highpart_adjust, extract_high_half, expand_sdiv_pow2, expand_divmod, make_tree): Likewise. * expr.c (convert_move, emit_group_load, emit_group_store, expand_assignment, store_constructor, store_field, expand_expr_real_1, reduce_to_bit_field_precision): Likewise. * fold-const.c (force_fit_type, int_const_binop, fold_convert_const, invert_truthvalue, optimize_bit_field_compare, decode_field_reference, all_ones_mask_p, constant_boolean_node, fold_div_compare, fold, fold_read_from_constant_string, fold_negate_const, fold_abs_const, fold_not_const): Likewise. * function.c (assign_parm_setup_block): Likewise. * stmt.c (shift_return_value, expand_end_case_type, estimate_case_costs): Likewise. * stor-layout.c (layout_type, initialize_sizetypes, set_min_and_max_values_for_integral_type): Likewise. * tree-chrec.c (chrec_fold_multiply_poly_poly, reset_evolution_in_loop): Likewise. * tree-chrec.h (build_polynomial_chrec): Likewise. * tree-complex.c (build_replicated_const): Likewise. * tree-eh.c (honor_protect_cleanup_actions, lower_try_finally_onedest, lower_try_finally_copy, lower_try_finally_switch): Likewise. * tree-mudflap.c (mf_build_string, mx_register_decls, mudflap_register_call, mudflap_enqueue_constant): Likewise. * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): Likewise. * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. * tree-ssa-loop-niter.c (number_of_iterations_cond, loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): Likewise. * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst. * config/arm/arm.c (arm_get_cookie_size): Likewise. * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. * config/i860/i860.c (i860_va_start): Likewise. * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, mips_gimplify_va_arg_expr): Likewise. * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, add_compiler_branch_island): Likewise. * config/s390/s390.c (s390_va_start): Likewise. * config/sh/sh.c (sh_va_start): Likewise. * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Likewise. * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr): Likewise. * objc/objc-act.c (build_objc_string_object, build_objc_symtab_template, init_def_list, init_objc_symtab, init_module_descriptor, generate_static_references, build_selector_translation_table, get_proto_encoding, build_typed_selector_reference, build_selector_reference, build_next_objc_exception_stuff, build_method_prototype_list_template, generate_descriptor_table, generate_protocols, build_protocol_initializer, build_ivar_list_template, build_method_list_template, build_ivar_list_initializer, generate_ivars_list, generate_dispatch_table, generate_protocol_list, build_category_initializer, build_shared_structure_initializer, generate_shared_structures, handle_impent, generate_objc_image_info): Use build_int_cst. ada: * cuintp.c (UI_To_gnu): Use build_int_cst.. * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise. * utils.c (init_gigi_decls): Likewise. * utils2.c (build_call_raise): Likewise. cp: * call.c (convert_class_to_reference, build_user_type_conversion_1, convert_like_real, build_java_interface_fn_ref, build_special_member_call): Use build_int_cst. * class.c (build_vtbl_initializer): Likewise. * cp-gimplify.c (cp_gimplify_expr): Likewise. * cvt.c (cp_convert_to_pointer): Likewise. * decl.c (cxx_init_decl_processing, complete_array_type): Likewise. * decl2.c (start_static_initialization_or_destruction, generate_ctor_or_dtor_function): Likewise. * except.c (build_throw): Likewise. * lex.c (cxx_init): Likewise. * mangle.c (write_integer_cst): Likewise. * rtti.c (build_headof, get_tinfo_decl_dynamic, build_dynamic_cast_1, ptr_initializer, ptm_initializer, get_pseudo_ti_init): Likewise. * search.c (get_dynamic_cast_base_type): Likewise. * tree.c (build_shared_int_cst): Likewise. fortran: * trans-array.c (gfc_trans_array_constructor_value): Use build_int_cst. * trans-const.c (gfc_build_string_const, gfc_init_constants, gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise. * trans-decl.c (gfc_get_symbol_decl): Likewise. * trans-intrinsic.c (gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_len, prepare_arg_info): Likewise. * trans-io.c (add_case, set_error_locus, build_dt, transfer_expr): Likewise. * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause, gfc_trans_stop, gfc_trans_character_select): Likewise. * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise. * trans.c (gfc_trans_runtime_check): Likewise. java: * boehm.c (get_boehm_type_descriptor): Use build_int_cst. * class.c (build_utf8_ref, build_static_field_ref, make_field_value, make_method_value, get_dispatch_table, make_class_data, emit_symbol_table, emit_catch_table): Likewise. * constants.c (get_tag_node, build_ref_from_constant_pool, build_constants_constructor): Likewise. * decl.c (java_init_decl_processing): Likewise. * expr.c (build_java_array_length_access, build_newarray, expand_java_multianewarray, expand_java_pushc, expand_iinc, build_java_binop, build_field_ref, expand_java_add_case, expand_java_call, build_known_method_ref, build_invokevirtual, build_invokeinterface, build_jni_stub): Likewise. * java-gimplify.c (java_gimplify_new_array_init): Likewise. * jcf-parse.c (get_constant): Likewise. * lex.c (do_java_lex): Likewise. * parse.y (patch_binop, patch_unaryop, patch_cast, build_null_of_type, patch_newarray): Likewise. * resource.c (compile_resource_data): Likewise. * typeck.c (build_prim_array_type): Likewise. From-SVN: r86022
2004-08-14* config/mips/mips-protos.h (mips_symbolic_constant_p)Richard Sandiford6-522/+306
(mips_atomic_symbolic_constant_p, mips_stack_address_p) (mips_small_data_pattern_p): Declare. * config/mips/mips.h (CONST_GP_P): Moved from mips.c. (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. * config/mips/mips.c (mips_symbolic_constant_p): Make global. (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions. (uns_arith_operand, const_arith_operand, arith_operand, sle_operand) (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand) (reg_or_const_float_1_operand, hilo_operand, extend_operator) (macc_msac_operand, equality_op, cmp_op, trap_cmp_op) (pc_or_label_operand, call_insn_operand, move_operand) (consttable_operand, symbolic_operand, general_symbolic_operand) (global_got_operand, local_got_operand, stack_operand) (fp_register_operand, lo_operand, fcc_register_operand): Delete. (mips_small_data_pattern_1): Renamed from small_data_pattern_1. (mips_small_data_pattern_p): Replace previous small_data_pattern predicate. Turn into a bool () (rtx) function. * config/mips/predicates.md: New file. * config/mips/mips.md: Include it. Use the target-independent comparison_operator instead of cmp_op. Rename trap_cmp_op to trap_comparison_operator and equality_op to equality_operator. Replace uses of small_int with the equivalent const_arith_operand. Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename const_float_1_operand to const_1_operand. Rename fcc_register_operand to fcc_reload_operand. * config/mips/sb1.md: Rename fp_register_operand to fpr_operand. From-SVN: r86006
2004-08-14PR libstdc++/17005 partial fix.John David Anglin1-1/+12
* pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE except when generating ANSI/C89 code. From-SVN: r86005
2004-08-14alpha.h (PROMOTE_MODE): Don't promote vector types.Richard Henderson2-13/+18
* config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types. * config/alpha/alpha.c (function_value): Use PROMOTE_MODE. From-SVN: r85989
2004-08-13i386.md (call_1, [...]): Use Pmode for constant_call_address_operand.Richard Henderson1-7/+7
* config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode for constant_call_address_operand. (call_value_pop_1, call_value_1): Likewise. (sibcall_value_1, call_value_1_rex64): Likewise. From-SVN: r85981
2004-08-13Fix typo in DFmode divide scheduler patterns.James E Wilson1-2/+2
* config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe): Correct mode from SFmode to DFmode. From-SVN: r85976
2004-08-13darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup...Ziemowit Laski1-3/+3
[gcc/ChangeLog] 2004-08-13 Ziemowit Laski <zlaski@apple.com> * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup, __cstring_object and __image_info sections with the no_dead_strip attribute. From-SVN: r85964
2004-08-13Makefile.in (insn-preds.o): Depend on TREE_H.Richard Henderson5-899/+581
* Makefile.in (insn-preds.o): Depend on TREE_H. * genpreds.c (write_insn_preds_c): Include tree.h. * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand, reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand, const48_operand, and_operand, or_operand, mode_width_operand, mode_mask_operand, mul8_operand, const0_operand, hard_fp_register_operand, hard_int_register_operand, reg_or_cint_operand, some_operand, some_ni_operand, input_operand, samegp_function_operand, direct_call_operand, small_symbolic_operand, global_symbolic_operand, call_operand, symbolic_operand, dtp16_symbolic_operand, dtp32_symbolic_operand, gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand, gottp_symbolic_operand, alpha_comparison_operator, alpha_zero_comparison_operator, alpha_swapped_comparison_operator, signed_comparison_operator, alpha_fp_comparison_operator, divmod_operator, fix_operator, aligned_memory_operand, unaligned_memory_operand, reg_or_unaligned_mem_operand, any_memory_operand, reg_not_elim_operand, normal_memory_operand, reg_no_subreg_operand, addition_operation): Move to predicates.md. (reg_or_const_int_operand): Remove. Replace all users with reg_or_cint_operand. (tls_symbolic_operand_1): Export. Don't check mode or for CONST. (resolve_reload_operand): Split out of aligned_memory_operand. * config/alpha/alpha-protos.h: Update for exports. * config/alpha/alpha.h (PREDICATE_CODES): Remove. * config/alpha/alpha.md: Include predicates.md. * config/alpha/predicates.md: New file. From-SVN: r85953
2004-08-13darwin-c.c (find_subframework_file): Fix spelling of cannot.Andrew Pinski24-69/+69
2004-08-12 Andrew Pinski <pinskia@physics.uc.edu> * config/darwin-c.c (find_subframework_file): Fix spelling of cannot. * config/libgloss.h: Likewise. * config/arm/arm.c (arm_gen_load_multiple): Likewise. * c4x/c4x-modes.def: Likewise. * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise. (c4x_rptb_nop_p): Likewise. (c4x_rptb_valid_p): Likewise. (c4x_rptb_insert): Likewise. (c4x_address_conflict): Likewise. * config/c4x/c4x.md: Likewise. * config/frv/frv.md: Likewise. * config/i386/athlon.md: Likewise. * config/i386/i386.md: Likewise. * config/i386/predicates.md: Likewise. * config/ia64/ia64.c: Likewise. * config/ia64/itanium1.md: Likewise. * config/ia64/itanium2.md: Likewise. * config/iq2000/iq2000.md: Likewise. * config/mcore/mcore.c: Likewise. * config/mips/mips.c: Likewise. * config/mips/r3900.h: Likewise. * config/mips/sb1.md: Likewise. * config/pa/milli64.S: Likewise. * config/pa/pa.c: Likewise. * config/pa/pa.h: Likewise. * config/rs6000/8540.md: Likewise. From-SVN: r85944
2004-08-13* sh.md (cbranch define_delay) Use cond_delay_slot forJ"orn Rennecke1-1/+5
non-anulled condition too. From-SVN: r85941
2004-08-13rs6000.h (PREDICATE_CODES): Remove PARALLEL from any_operand.David Edelsohn1-1/+1
* config/rs6000/rs6000.h (PREDICATE_CODES): Remove PARALLEL from any_operand. From-SVN: r85938
2004-08-13rs6000.c (any_parallel_operand): New predicate.David Edelsohn3-5/+21
* config/rs6000/rs6000.c (any_parallel_operand): New predicate. * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_parallel_operand, lmw_operation, stmw_operation, mfcr_operation, mtcrf_operation. * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use any_parallel_operand. (return_and_restore_fpregs_{si,di}): Same. From-SVN: r85937
2004-08-12i386.c (internal_label_prefix): Export.Richard Henderson5-1237/+880
* config/i386/i386.c (internal_label_prefix): Export. (internal_label_prefix_len, struct ix86_address, ix86_decompose_address, maybe_get_pool_constant, ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes, memory_address_length): Export. (any_fp_register_operand, fp_register_operand, register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand, x86_64_general_operand, x86_64_szext_general_operand, x86_64_nonmemory_operand, x86_64_movabs_operand, x86_64_szext_nonmemory_operand, x86_64_immediate_operand, x86_64_zext_immediate_operand, const_int_1_31_operand, symbolic_operand, pic_symbolic_operand, local_symbolic_operand, tls_symbolic_operand, global_dynamic_symbolic_operand, local_dynamic_symbolic_operand, initial_exec_symbolic_operand, local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand, constant_call_address_operand, const0_operand, const1_operand, const248_operand, const_0_to_3_operand, const_0_to_7_operand, const_0_to_15_operand, const_0_to_255_operand, incdec_operand, shiftdi_operand, reg_no_sp_operand, mmx_reg_operand, general_no_elim_operand, nonmemory_no_elim_operand, index_register_operand, q_regs_operand, flags_reg_operand, non_q_regs_operand, zero_extended_scalar_load_operand, vector_move_operand, no_seg_address_operand, sse_comparison_operator, ix86_comparison_operator, ix86_carry_flag_operator, fcmov_comparison_operator, promotable_binary_operator, cmp_fp_expander_operand, ext_register_operand, binary_fp_operator, mult_operator, div_operator, arith_or_logical_operator, memory_displacement_operand, cmpsi_operand, long_memory_operand, aligned_operand): Move to predicates.md as define_predicates. (tls_symbolic_operand_1): Remove. (x86_64_sign_extended_value): Merge into x86_64_immediate_operand. (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand. (legitimize_address): Merge tls_symbolic_operand contents. (ix86_expand_move): Likewise. * config/i386/i386-protos.h: Update for exports. * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames. (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove. * config/i386/i386.md: Include predicates.md. * config/i386/predicates.md: New file. From-SVN: r85930
2004-08-13re PR c++/16924 (dllexport attribute now causes some symbols _not_ to be ↵Mark Mitchell1-13/+15
exported) PR c++/16924 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DECL. (i386_pe_mark_dllimport): Likewise. (i386_pe_encode_section_info): Likewise, when overriding dllimport attribute. From-SVN: r85924
2004-08-12s390.h (MAX_FIXED_MODE_SIZE): Define.Ulrich Weigand1-0/+5
* config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define. (MOVE_MAX_PIECES): Define. From-SVN: r85909
2004-08-12altivec.h (vec_dst): Fix C++ functions whose first argument is float*.Janis Johnson1-4/+4
2004-08-12 Janis Johnson <janis187@us.ibm.com> * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first argument is float*. From-SVN: r85906
2004-08-12rs6000.c (altivec_init_builtins): Fix argument type for vec_dss.Janis Johnson1-3/+3
2004-08-12 Janis Johnson <janis187@us.ibm.com> * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type for vec_dss. From-SVN: r85903
2004-08-12s390.c (struct s390_frame_layout): New struct as element of struct ↵Andreas Krebbel3-211/+509
machine_function. 2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com> * config/s390/s390.c (struct s390_frame_layout): New struct as element of struct machine_function. (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and changed all uses. (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and changed all uses. (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size) (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros. (s390_frame_area, s390_register_info): New functions. (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check for base register. (s390_return_addr_rtx, s390_return_address_offset) (s390_va_start, s390_gimplify_va_arg) (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack layouts. (s390_frame_info): Functionality partly moved to s390_register_info. Made adaptions for new stack layout. (save_gprs, restore_gprs): Changed meaning of second parameter and adapted all callers. * config/s390/s390.h (s390_backchain_string): New global variable. (MASK_BACKCHAIN): Removed definition. (TARGET_BACKCHAIN): Changed check. (TARGET_KERNEL_BACKCHAIN): New macro. (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain". (TARGET_OPTIONS): Added "backchain", "no-backchain" and "kernel-backchain". (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts. * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN as condition. Adjusted for new stack layout. * doc/invoke.texi: Added documentation for new option "-mkernel-backchain" and adjusted documentation of "-mbackchain" and "-mno-backchain". From-SVN: r85882
2004-08-12lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.Paul Brook1-5/+30
* config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name. (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation. From-SVN: r85879
2004-08-12re PR c++/16276 ([3.4 only] G++ generates local references to linkonce sections)Jakub Jelinek9-1/+15
PR c++/16276 * output.h (default_function_rodata_section, default_no_function_rodata_section): New prototypes. * target.h (struct gcc_target): Add asm_out.function_rodata_section. * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. (TARGET_ASM_OUT): Add it. * varasm.c (default_function_rodata_section, default_no_function_rodata_section): New functions. * final.c (final_scan_insn): Call targetm.asm_out.function_rodata_section instead of readonly_data_section. * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document. * g++.old-deja/g++.other/comdat4.C: New test. * g++.old-deja/g++.other/comdat4-aux.cc: New. From-SVN: r85873
2004-08-12Patch for PR target/16286Ben Elliston1-5544/+5544
2004-08-12 Ben Elliston <bje@au.ibm.com> * config/rs6000/altivec.h: Change vector to __vector throughout. (Except for the `vector' macro itself). [testsuite] 2004-08-12 Ben Elliston <bje@au.ibm.com> * gcc.dg/pr16286.c: New test. From-SVN: r85868
2004-08-12genpreds.c: Add capability to generate predicate bodies as well as function ↵Zack Weinberg3-556/+343
prototypes. * genpreds.c: Add capability to generate predicate bodies as well as function prototypes. Write function prototypes for the generic predicates too. (process_define_predicate, write_tm_preds_h, write_insn_preds_c) (write_predicate_subfunction, mark_mode_tests, add_mode_tests) (write_match_code, write_predicate_expr, write_one_predicate_function) (parse_option): New functions. (output_predicate_decls): Delete. (main): Read the machine description, process DEFINE_PREDICATE or DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c as appropriate. * genrecog.c (struct decision_test): Replace index with struct pred_data pointer. (next_index): Remove, unused. (pred_table, preds, special_mode_pred_table): Delete. (compute_predicate_codes, process_define_predicate): New functions. (validate_pattern, add_to_sequence, write_switch): Update for new data structures. (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. Check both error_count and have_error. * gensupport.c (in_fname, first_predicate): New globals. (define_pred_queue, define_pred_tail): New RTL-pattern queue. (predicate_table, last_predicate, old_pred_table) (old_special_pred_table): New statics. (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate) (add_predicate, init_predicate_table): New functions. (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. (init_md_reader_args_cb): Use the global in_fname. No need to zero it or max_include_len. Call init_predicate_table. (read_rtx): Run the predicate queue after the attribute queue but before all the others. * gensupport.h (in_fname, struct pred_data, first_predicate) (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare. * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE) (DEFINE_SPECIAL_PREDICATE): New RTL codes. * dummy-conditions.c: Don't include bconfig.h, system.h, coretypes.h, tm.h, or system.h. Do include stddef.h. Duplicate declaration of struct c_test from gensupport.h. * Makefile.in (OBJS-common): Add insn-preds.o. (STAGESTUFF, .PRECIOUS): Add insn-preds.c. (insn-preds.c, insn-preds.o): New rules. (s-preds): Also generate insn-preds.c. (dummy-conditions.o, genpreds$(build_exeext), genpreds.o): Update dependencies. (print-rtl.o, print-rtl1.o): Correct dependencies. * recog.h: Delete prototypes of predicate functions. * doc/md.texi (Predicates): New section with complete documentation of operand/operator predicates. Remove some incomplete documentation of predicates from other places. * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to PREDICATE_CODES; indicate that both are deprecated in favor of define_predicate/define_special_predicate. * config/ia64/ia64.c: All predicate function definitions moved to ia64.md, except (small_addr_symbolic_operand, tls_symbolic_operand): Delete. (ia64_expand_load_address, ia64_expand_move): Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand. * config/ia64/ia64.md: All predicates now defined here. (symbolic_operand): Is now a special predicate. * config/ia64/ia64.h: Declare ia64_section_threshold. (PREDICATE_CODES): Delete. From-SVN: r85855