Joseph Myers [Tue, 10 May 2005 12:38:34 +0000 (13:38 +0100)]
re PR c/21342 (some incompatible external declarations not diagnosed)
PR c/21342
* c-decl.c (pushdecl): When there is a declaration in the current
scope and the declarations are external linkage, check for
compatibility with the type in the external scope and update the
type in the external scope with the composite type information.
Do not form a composite type of the new type and the visible type
if they are incompatible.
testsuite:
* gcc.dg/redecl-11.c, gcc.dg/redecl-12.c, gcc.dg/redecl-13.c,
gcc.dg/redecl-14.c, gcc.dg/redecl-15.c: New tests.
From-SVN: r99510
Nathan Sidwell [Tue, 10 May 2005 10:27:44 +0000 (10:27 +0000)]
crtstuff.c: Revert part of 2005-05-08 Change.
* crtstuff.c: Revert part of 2005-05-08 Change.
(IN_LIBGCC2): Define.
From-SVN: r99509
Francois-Xavier Coudert [Tue, 10 May 2005 08:34:58 +0000 (10:34 +0200)]
re PR libfortran/20788 (Loading libgfortran.so clobbers C redirection of stdin/stdout/stderr)
PR libfortran/20788
Missing entry from previous commit:
* io/unix.c (fd_to_stream): Add an avoid_mmap argument indicating
we don't we to mmap this stream. Use fd_open instead of mmap_open
in that case.
(open_external): Call fd_to_stream with avoid_mmap = 0.
(input_stream): Call fd_to_stream with avoid_mmap = 1.
(output_stream): Likewise.
(error_stream): Likewise.
Really committing:
* io/read.c (read_f): Accept 'e', 'E', 'd' and 'D' as first
non-blank characters of a real number.
From-SVN: r99508
Eric Botcazou [Tue, 10 May 2005 07:50:33 +0000 (09:50 +0200)]
sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and remove redundant test.
* config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
remove redundant test.
(fp_mov_p): Accept 0.
(fp_high_losum_p): Remove redundant test.
* config/sparc/predicates.md (const_high_operand): Explicitly test
(not small_int_operand).
(fp_const_high_losum_operand): New.
* config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
(movdi_insn_sp32_v9): Use canonical predicates.
(movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
(movdi_insn_sp64_novis): Delete.
(movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
(movsf_insn_novis): Delete.
(movsf_insn_vis): Rename into movsf_insn.
(movsf_no_f_insn): Rename into movsf_insn_no_fpu.
(movsf_lo_sum): Use fp_const_high_losum_operand.
(movsf_high): Likewise.
(movsf_high_losum splitter): Likewise.
(mov<V32:mode> expander): Use register_or_zero_operand.
(mov<V64:mode> expander): Likewise.
(movdf_insn_sp32): Use register_or_zero_operand.
(movdf_no_e_insn_sp32): Use register_or_zero_operand.
Rename into movdf_insn_sp32_no_fpu.
(movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
Rename into movdf_insn_sp32_v9_no_fpu.
(movdf_insn_v9only_novis): Delete.
(movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
(movdf_insn_sp64_novis): Delete.
(movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
(movdf_no_e_insn_sp64): Use register_or_zero_operand.
Rename into movdf_insn_sp64_no_fpu.
(movtf expander): Use register_or_zero_operand.
(movtf_insn_sp32): Delete.
(movtf_insn_vis_sp32): Use register_or_zero_operand.
Rename into movtf_insn_sp32.
(movtf_no_e_insn_sp32): Use register_or_zero_operand.
Rename into movtf_insn_sp32_no_fpu.
(movtf_insn_hq_sp64): Delete.
(movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
Rename into movtf_insn_sp64_hq.
(movtf_insn_sp64): Delete.
(movtf_insn_vis_sp64): Use register_or_zero_operand.
Rename into movtf_insn_sp64.
(movtf_no_e_insn_sp64): Use register_or_zero_operand.
Rename into movtf_insn_sp64_no_fpu.
From-SVN: r99506
Nathan Sidwell [Tue, 10 May 2005 07:44:42 +0000 (07:44 +0000)]
stormy16.c (xstormy16_emit_cbranch): Use gcc_assert and gcc_unreachable as appropriate.
* config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
gcc_assert and gcc_unreachable as appropriate.
(xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
xstormy16_output_cbranch_si, xstormy16_split_move,
xstormy16_initial_elimination_offset,
xstormy16_encode_section_info, xstormy16_print_operand_address,
xstormy16_expand_call, xstormy16_expand_arith,
xstormy16_output_shift, xstormy16_init_builtins): Likewise.
From-SVN: r99505
Mark Mitchell [Tue, 10 May 2005 05:31:15 +0000 (05:31 +0000)]
typeck.c (build_unary_op): Do not resort to address arithmetic when taking the address of a COMPONENT_REF.
* typeck.c (build_unary_op): Do not resort to address arithmetic
when taking the address of a COMPONENT_REF.
From-SVN: r99503
Paolo Carlini [Tue, 10 May 2005 01:58:19 +0000 (01:58 +0000)]
re PR libstdc++/18604 (Use of unqualified names conflict with names in global namespace)
2005-05-09 Paolo Carlini <pcarlini@suse.de>
Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR libstdc++/18604
* include/bits/deque.tcc: Fully qualify names from namespace std.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/vector.tcc: Likewise.
* include/std/std_bitset.h: Likewise.
* testsuite/23_containers/bitset/18604.cc: New.
* testsuite/23_containers/deque/18604.cc: Likewise.
* testsuite/23_containers/list/18604.cc: Likewise.
* testsuite/23_containers/map/18604.cc: Likewise.
* testsuite/23_containers/set/18604.cc: Likewise.
* testsuite/23_containers/vector/18604.cc: Likewise.
Co-Authored-By: Giovanni Bajo <giovannibajo@gcc.gnu.org>
From-SVN: r99499
Mike Stump [Tue, 10 May 2005 01:43:00 +0000 (01:43 +0000)]
* configure: Regenerate.
From-SVN: r99498
Kazu Hirata [Tue, 10 May 2005 01:39:22 +0000 (01:39 +0000)]
tree-outof-ssa.c (_elim_graph): Change the type of nodes and const_copies to VEC(tree,heap)*.
* tree-outof-ssa.c (_elim_graph): Change the type of nodes and
const_copies to VEC(tree,heap)*.
(new_elim_graph, delete_elim_graph, elim_graph_size,
elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
instead of VARRAY.
From-SVN: r99497
Ben Elliston [Tue, 10 May 2005 01:35:15 +0000 (01:35 +0000)]
* gcc.dg/debug/pr16676.c: New test.
From-SVN: r99496
Mike Stump [Tue, 10 May 2005 01:31:58 +0000 (01:31 +0000)]
libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use quotes on lt_cv_sys_max_cmd_len for now.
* libtool.m4 (AC_LIBTOOL_SYS_MAX_CMD_LEN): Use quotes on
lt_cv_sys_max_cmd_len for now.
From-SVN: r99495
Kazu Hirata [Tue, 10 May 2005 00:57:28 +0000 (00:57 +0000)]
re PR testsuite/21443 (Most testcases with -fdump-tree-store_ccp aren't actually testing CCP itself.)
PR testsuite/21443
* gcc.dg/tree-ssa/
20030731-2.c, gcc.dg/tree-ssa/
20030917-1.c,
gcc.dg/tree-ssa/
20030917-3.c, gcc.dg/tree-ssa/ssa-ccp-1.c,
gcc.dg/tree-ssa/ssa-ccp-2.c, gcc.dg/tree-ssa/ssa-ccp-3.c,
gcc.dg/tree-ssa/ssa-ccp-7.c, gcc.dg/tree-ssa/ssa-ccp-9.c:
Change -O1 to -O2.
* gcc.dg/tree-ssa/
20040721-1.c: Change -O1 to -O2. Add
-fno-tree-dominator-opts.
From-SVN: r99493
David Daney [Tue, 10 May 2005 00:48:49 +0000 (00:48 +0000)]
BitSet.java (get(int, int)): Fix breakage when requested set doesn't start on a multiple of 64.
2005-05-09 David Daney <ddaney@avtrex.com>
* java/util/BitSet.java (get(int, int)): Fix breakage when
requested set doesn't start on a multiple of 64.
From-SVN: r99492
Joseph Myers [Tue, 10 May 2005 00:26:08 +0000 (01:26 +0100)]
inclhack.def (stdio_stdarg_h, [...]): Bypass on *-*-solaris2.1[0-9]*, not just *-*-solaris2.1[0-9].
* inclhack.def (stdio_stdarg_h, stdio_va_list): Bypass on
*-*-solaris2.1[0-9]*, not just *-*-solaris2.1[0-9].
* fixincl.x: Regenerate.
From-SVN: r99487
Joseph Myers [Tue, 10 May 2005 00:19:28 +0000 (01:19 +0100)]
re PR other/21052 (Example does not compile in user docs, type attributes, packed)
PR other/21052
* doc/extend.texi (Type Attributes): Correct example syntax.
From-SVN: r99485
GCC Administrator [Tue, 10 May 2005 00:16:32 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r99483.2
Joseph Myers [Mon, 9 May 2005 23:51:49 +0000 (00:51 +0100)]
re PR c/21160 (documentation for -Wuninitialized out of date)
PR c/21160
* doc/invoke.texi (-Wuninitialized): Update documentation.
From-SVN: r99478
Mark Mitchell [Mon, 9 May 2005 22:54:03 +0000 (22:54 +0000)]
Add missing ChangeLog entry
From-SVN: r99477
Richard Earnshaw [Mon, 9 May 2005 22:09:47 +0000 (22:09 +0000)]
* arm.c (const_ok_for_arm): Use a faster algorithm.
From-SVN: r99476
David Edelsohn [Mon, 9 May 2005 22:04:48 +0000 (22:04 +0000)]
re PR target/21477 (adddi3 becomes external reference rather than instruction on powerpc64)
PR target/21477
* config/rs6000/rs6000.md (add_op2): New.
(add<mode>3): Use it.
From-SVN: r99475
Richard Earnshaw [Mon, 9 May 2005 22:00:06 +0000 (22:00 +0000)]
arm.c (arm_gen_constant): Add new heuristic for generating constant integers that can be expressed as the...
* arm.c (arm_gen_constant): Add new heuristic for generating
constant integers that can be expressed as the difference of two
valid immediates.
From-SVN: r99474
Richard Earnshaw [Mon, 9 May 2005 21:57:47 +0000 (21:57 +0000)]
Revert previous (not the patch described).
From-SVN: r99473
Richard Earnshaw [Mon, 9 May 2005 21:55:08 +0000 (21:55 +0000)]
arm.c (arm_gen_constant): Add new heuristic for generating constant integers that can be expressed as the...
* arm.c (arm_gen_constant): Add new heuristic for generating
constant integers that can be expressed as the difference of two
valid immediates.
From-SVN: r99472
Roger Sayle [Mon, 9 May 2005 20:48:33 +0000 (20:48 +0000)]
c-tree.h (parser_build_unary_op): New prototype.
* c-tree.h (parser_build_unary_op): New prototype.
* c-typeck.c (parser_build_unary_op): New function to construct
a unary operation in the C parser.
* c-parser.c (c_parser_unary_expression): Use the new function
parser_build_unary_op when appropriate.
From-SVN: r99471
Mark Mitchell [Mon, 9 May 2005 20:20:21 +0000 (20:20 +0000)]
re PR target/18655 (Incorrect data in .debug_frame section for PowerPC)
PR 18655
* dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
before outputting DWARF_FRAME_RETURN_COLUMN.
From-SVN: r99470
Tobias Schlüter [Mon, 9 May 2005 18:26:20 +0000 (20:26 +0200)]
match.c (gfc_match_return): Only require space after keyword when it is obligatory.
fortran/
* match.c (gfc_match_return): Only require space after keyword when
it is obligatory. Only give stdwarn to after matching is successful.
* dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
testsuite/
* gfortran.dg/return_1.f90: New test.
From-SVN: r99467
Adrian Straetling [Mon, 9 May 2005 18:22:11 +0000 (18:22 +0000)]
s390.c: (s390_branch_condition_mask...
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_branch_condition_mask,
s390_branch_condition_mnemonic, s390_extra_constraint_str,
s390_const_ok_for_constraint_p, s390_expand_plus_operand,
legitimize_pic_address, s390_emit_tls_call_insn,
legitimize_tls_address, legitimize_tls_address,
s390_expand_addcc, print_shift_count_operand, print_operand,
addr_generation_dependency_p, annotate_constant_pool_refs,
s390_split_branches, find_constant_pool_ref,
replace_constant_pool_ref, s390_add_constant, s390_find_constant,
s390_find_execute, s390_mainpool_start, s390_chunkify_start,
s390_output_pool_entry, s390_function_value,
s390_call_saved_register_used, s390_emit_call): Replace
conditional aborts by gcc_assert and unconditional by gcc_unreachable.
(s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
get_some_local_dynamic_name, s390_function_arg_size,
s390_function_arg_advance, s390_function_arg,
s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
default case by gcc_unreachable.
* config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
conditional abort by gcc_assert.
("doloop_si31"): Replace abort in last else by gcc_unreachable.
("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
From-SVN: r99466
Adrian Straetling [Mon, 9 May 2005 18:15:17 +0000 (18:15 +0000)]
s390.c: (s390_decompose_address...
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_decompose_address,
tls_symbolic_operand, legitimate_pic_operand_p,
legitimate_constant_p, legitimate_reload_constant_p,
s390_expand_plus_operand, legitimate_address_p,
legitimate_la_operand_p, ): Remove 'register' from signature.
(symbolic_reference_mentioned_p,
tls_symbolic_reference_mentioned_p): Remove 'register' from local
variable declarations.
(legitimize_address): Remove 'register' from
signature and local variable declarations.
From-SVN: r99464
Adrian Straetling [Mon, 9 May 2005 18:12:25 +0000 (18:12 +0000)]
s390-protos.h: (s390_match_ccmode...
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390-protos.h: (s390_match_ccmode,
s390_match_ccmode_set, reg_used_in_mem_p,
symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
legitimate_la_operand_p, preferred_la_operand_p,
s390_short_displacement, addr_generation_dependency_p,
legitimate_reload_constant_p, legitimate_address_p): Change return type
into 'bool'.
(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
* config/s390/s390.c: (s390_match_ccmode,
symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
legitimate_reload_constant_p): Change return type into 'bool'.
(preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
Likewise. Additionally adapted comment.
(s390_extra_constraint_p): Change Comment to reflect 'int' return type.
(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
(s390_decompose_address): Change the type of the internal flags
"pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
(struct s390_address): Change type of "pointer" into bool.
* config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
Adapt calls for 's390_tm_ccmode' to the new signature.
From-SVN: r99463
Adrian Straetling [Mon, 9 May 2005 18:09:52 +0000 (18:09 +0000)]
s390.c: (s390_match_ccmode_set...
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_match_ccmode_set,
s390_branch_condition_mnemonic, s390_short_displacement,
s390_decompose_address, get_thread_pointer, legitimize_tls_address,
print_shift_count_operand, get_some_local_dynamic_name,
get_some_local_dynamic_name_1, reg_used_in_mem_p,
addr_generation_dependency_p, s390_split_branches,
annotate_constant_pool_refs, find_constant_pool_ref,
replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
s390_register_info, s390_frame_info, s390_init_frame_layout,
s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
restore_gprs, s390_function_arg_size, s390_function_arg_float,
s390_init_machine_status, s390_assemble_integer, s390_handle_option,
s390_encode_section_info, s390_cannot_force_const_mem,
s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
s390_adjust_priority, s390_issue_rate,
s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
s390_build_builtin_va_list, s390_gimplify_va_arg,
s390_function_ok_for_sibcall, s390_call_saved_register_used,
s390_pass_by_reference, s390_fixed_condition_code_regs,
s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
s390_chunkify_cancel, s390_start_pool, s390_end_pool,
s390_add_pool_insn, s390_find_pool, s390_add_constant,
s390_find_constant, s390_add_execute, s390_find_execute,
s390_execute_label, s390_execute_target, s390_dump_pool,
s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
Move target macro definitions to the end of the file. Move several
functions within the file to assure correct compiling.
From-SVN: r99462
Steven Bosscher [Mon, 9 May 2005 17:52:20 +0000 (17:52 +0000)]
calls.c (purge_reg_equiv_notes): Remove, fold into...
* calls.c (purge_reg_equiv_notes): Remove, fold into...
(fixup_tail_calls): ...here. Only look at insns between the
start of the function and the FUNCTION_BEG insn note.
* gcse.c (one_cprop_pass): Fix typos in dumps.
* tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
From-SVN: r99461
J"orn Rennecke [Mon, 9 May 2005 17:42:55 +0000 (17:42 +0000)]
re PR target/20695 (sh64-*-* port deos not handle 32 / 64 bit conversions properly)
gcc:
2005-05-09 J"orn Rennecke <joern.rennecke@st.com>
* config/sh/sh.h (OVERRIDE_OPTIONS): Don't set flag_finite_math_only
if flag_signaling_nans is set.
For TARGET_SH2E, if flag_finite_math_only is not set, set IEEE_BIT.
* doc/invoke.texi (SH -mieee): Document relation to -ffinite-math-only.
2005-05-06 J"orn Rennecke <joern.rennecke@st.com>
Merge of sh-elf specific patches from sh-elf-4_1-branch:
2005-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (ASM_OUTPUT_REG_PUSH): Provide SHMEDIA version.
(ASM_OUTPUT_REG_POP): Likewise.
2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
and plus_constant.
2005-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (sh_div_strategy): Initialize with
SH_DIV_STRATEGY_DEFAULT.
* config/sh/sh.c (SH_DIV_STR_FOR_SIZE): Define.
(SH_DIV_STRATEGY_DEFAULT): Likewise.
(OPTIMIZATION_OPTIONS): Set sh_div_str to SH_DIV_STR_FOR_SIZE
when optimized for size.
* config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT): Redefine.
(SH_DIV_STR_FOR_SIZE): Likewise.
* config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT): Likewise.
(SH_DIV_STR_FOR_SIZE): Likewise.
2005-05-04 J"orn Rennecke <joern.rennecke@st.com>
* config/sh/sh-modes.def (PDImode): Add.
* config/sh/sh-protos.h (shmedia_prepare_call_address): Declare.
* config/sh/sh.c (print_operand): Handle IF_THEN_ELSE.
(target_reg_operand): Allow PDImode.
(sh_register_move_cost): If neither sh_gettrcost_str nor
TARGET_PT_FIXED is set, assume gettr costs 100.
(shmedia_prepare_call_address): New function.
(sh_gettrcost_str): Initialize to empty string.
(sh_divsi3_libfunc): New variable.
* config/sh/sh.h (PT_FIXED_BIT, TARGET_INVALID_SYMBOLS): Define.
(TARGET_SWITCH_SH5_32_ANY_EXTRA): Likewise.
(TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA): Likewise.
(TARGET_SWITCHES): Use TARGET_SWITCH_SH5_32_ANY_EXTRA and
TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA.
(TARGET_OPTIONS): Add -mdivsi3_libfunc.
(OVERRIDE_OPTIONS): Set sh_divsi3_libfunc if it hasn't been set
by the user.
Also set flag_no_function_cse for (TARGET_SHMEDIA && !TARGET_PT_FIXED).
(HARD_REGNO_MODE_OK): Allow TARGET_REGS in PDImode.
(CONSTRAINT_LEN): Remove debug version.
(SECONDARY_INOUT_RELOAD_CLASS:) Break out of
(SECONDARY_OUTPUT_RELOAD_CLASS). Use EXTRA_CONSTRAINT_Csy for check
if a target register needs a secondary reload through GENERAL_REGS.
(SECONDARY_INPUT_RELOAD_CLASS): Use SECONDARY_INOUT_RELOAD_CLASS.
(sh_divsi3_libfunc): Declare.
(FUNCTION_PROFILER): Provide SHMEDIA version.
* config/sh/predicates.md: New file.
* config/sh/sh.md (predicates.md): Include.
(divsi_inv_call_combine, divsi3): Use sh_divsi3_libfunc.
(reload_insi): Fix predicates and constraints.
(ptabs): New expander.
(*extendsipdi_media, *truncdipdi_media): New insns.
(call, call_value, sibcall): Use shmedia_prepare_call_address.
* doc/invoke.texi (-multcost, -mdiv): Document new SH options.
(-mdivsi3_libfunc, -madjust-unroll, -mindexed-addressing): Likewise.
(-mgettrcost, -mpt-fixed, -minvalid-symbols): Likewise.
2005-04-11 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (print_operand): Remove sh_rep_vec extraction.
(sh_output_mi_thunk): Make i unsigned.
* sh.c (TARGET_ADJUST_UNROLL_MAX): Only redefine if already defined.
(sh_adjust_unroll_max): Only define if TARGET_ADJUST_UNROLL_MAX
is defined. Update label detection code and iteration lookup,
enable basic functionality, but without IV analysis.
2005-04-11 J"orn Rennecke <joern.rennecke@st.com>
* sh.h (OPTIMIZATION_OPTIONS): Don't make setting of
flag_branch_target_load_optimize dependent on TARGET_SHMEDIA.
Set flag_finite_math_only to 2.
If flag_finite_math_only set set to 2, set it to 1 iff
we use SH2E..SH4 arithmetic without full IEEE support.
2005-04-09 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/lib1funcs.asm (ic_invalidate): Fix typos.
* config/sh/t-linux (LIB1ASMFUNCS_CACHE): Add _ic_invalidate_array.
2005-04-06 J"orn Rennecke <joern.rennecke@st.com>
Merge of SuperH / STM SH specific patches, including fix for
PR target/20695:
* config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
when building with libgloss.
(sh*elf): Implement --without-fp option.
(sh64-superh-linux*): Don't multilib.
(sh*-*-linux): Use sh3 as basic multilib.
* config/sh/crt1.asm (SHmedia start): Add code to enable the MMU,
and to set up vbr. Enable FPU before calling set_fpscr.
Load atexit address just before use. Use __SH_FPU_ANY__.
(SH3*/SH4* start): Add code to set up vbr. Use __SH_FPU_ANY__.
Set DN bit in fpscr.
* config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Merge into:
config/sh/sh.h (SH_ASM_SPEC, SUBTARGET_ASM_ISA_SPEC): Here.
* config/sh/lib1funcs.asm (HIDDEN_FUNC, HIDDEN_ALIAS): Define.
(FMOVD_WORKS): Don't define for __SH5__.
(ashiftrt_r4_0, ashiftrt_r4_1, ashiftrt_r4_2, ashiftrt_r4_3): Hide.
(ashiftrt_r4_4, ashiftrt_r4_5, ashiftrt_r4_6, ashiftrt_r4_7): Hide.
(ashiftrt_r4_8, ashiftrt_r4_9, ashiftrt_r4_10, ashiftrt_r4_11): Hide.
(ashiftrt_r4_12, ashiftrt_r4_13, ashiftrt_r4_14, ashiftrt_r4_15): Hide.
(ashiftrt_r4_16, ashiftrt_r4_17, ashiftrt_r4_18, ashiftrt_r4_19): Hide.
(ashiftrt_r4_20, ashiftrt_r4_21, ashiftrt_r4_22, ashiftrt_r4_23): Hide.
(ashiftrt_r4_24, ashiftrt_r4_25, ashiftrt_r4_26, ashiftrt_r4_27): Hide.
(ashiftrt_r4_28, ashiftrt_r4_29, ashiftrt_r4_30, ashiftrt_r4_31): Hide.
(ashiftrt_r4_32, ashrsi3, ashlsi3, lshrsi3, movmem, movstr): Hide.
(movstrSI64, movmemSI64, movstrSI60, movmemSI60): Hide.
(movstrSI56, movmemSI56, movstrSI52, movmemSI52): Hide.
(movstrSI48, movmemSI48, movstrSI44, movmemSI44): Hide.
(movstrSI40, movmemSI40, movstrSI36, movmemSI36): Hide.
(movstrSI32, movmemSI32, movstrSI28, movmemSI28): Hide.
(movstrSI24, movmemSI24, movstrSI20, movmemSI20): Hide.
(movstrSI16,movmemSI16, movstrSI12,movmemSI12): Hide.
(movstrSI8,movmemSI8, movstrSI4,movmemSI4): Hide.
(movmemSI0, movstrSI0): Remove.
(movmemSI4): Schedule last store into rts delay slot.
(movmem): Shorten code. Provide ENDFUNC.
(movmem_i4_even, movmem_i4_odd, movmemSI12_i4, mulsi3): Hide.
(mulsi3): Provide ENDFUNC.
(sdivsi3_i4, sdivsi3_i4, udivsi3_i4, udivsi3, set_fpscr): Hide.
(SH5 sdivsi3): Reimplement, using:
(div_table): New, linear approximation table lookup for division seed.
(sdivsi3_2): New SH5 entry point.
(divdi3): Use hidden alias for udivdi3.
(moddi3): Use hidden alias for umoddi3.
(init_trampoline): Hide. Provide exact ENDFUNC.
(ic_invalidate): Hide. Re-implement SH4 version, using
(ic_invalidate_array): New global.
(GCC_shcompact_return_trampoline, GCC_nested_trampoline): Hide.
(GCC_push_shmedia_regs_nofpu): Only provide for __SH4_NOFPU__.
(GCC_pop_shmedia_regs_nofpu): Likewise.
* config/sh/libgcc-excl.ver (__mulsi3): Add.
* config/sh/linux.h (TARGET_DEFAULT): Include TARGET_OPT_DEFAULT.
* config/sh/sh-protos.h (sh_function_kind): New enum.
(sh_gen_truncate, replace_n_hard_rtx): Declare.
(function_symbol): Update declaration.
(shmedia_cleanup_truncate, sh_contains_memref_p): Declare.
* sh.c (cfgloop.h): Include.
(TARGET_ADJUST_UNROLL_MAX): Redefine.
(print_operand): Add '>' and 'U' support. Handle TRUNCATE and
SIGN_EXTEND.
(function_sybol): Add arguments for target and kind of symbol.
If not an ordinary function symbol, make sure the string becomes
unique. For PIC, load appropriately depending on kind of symbol.
Changed all callers.
(prepare_move_operands): Dont copy R0 to a pseudo for SHmedia.
(multcosts): Check sh_multcost_str. If not set, return 2 for
SHMEDIA TARGET_SMALLCODE.
(sh_rtx_costs): Lower some costs when outer_code is SET. Add code
for CONST_VECTOR, MINUS and PARALLEL.
(gen_shifty_op): Don't emit nop.
(expand_ashiftrt): While expanding to rtl, do shift by 31 using a
register set to zero.
(gen_datalabel_ref): Make sure that the string is shared.
(MAX_POOL_SIZE): Define as 372.
(find_barrier): Remove spurious adjustment.
(sh_media_register_for_return): Return -1 for interrupt handlers.
(sh_pch_valid_p): Use a copy of TARGET_OPTIONS.
(general_movsrc_operand): Accept vector that match sh_rep_vec.
(general_movdst_operand): For SHmedia, recject paradoxical DImode
subregs before high_life / reload.
(arith_reg_operand): Allow no-op sign extensions.
(logical_reg_operand, fp_arith_reg_dest, xor_operand): New functions.
(cmp_operand, shift_operator, logical_operator): Likewise.
(minuend_operand, ua_address_operand, cache_address_operand): Likewise.
(ua_offset, shift_count_reg_operand, shift_count_operand): Likewise.
(sh_adjust_unroll_max, replace_n_hard_rtx, sh_gen_truncate): Likewise.
(shmedia_cleanup_truncate, sh_contains_memref_p_1): Likewise.
(sh_contains_memref_p): Likewise.
(shmedia_6bit_operand): Remove.
(arith_operand): Allow some TRUNCATEs.
(logical_operand): Disallow subregs <= SImode of >= DImode.
(greater_comparison_operator): Fix mode comparison.
(less_comparison_operator): Likewise.
(target_reg_operand, target_operand): Compare modes with Pmode.
(sh_adjust_cost): Consider the dependency between a target register
load and its use in a subsequent block.
Implement mac_media latency exception.
Before reload, anticipate floating point latencies to be at least four.
Give preference to the ptabs feeding a casesi_jump_media.
Handle UNSPEC in a CALL address.
(sh_optimize_target_register_callee_saved): Improve handling of
borderline cases.
(sh_function_ok_for_sibcall): Allow for non-pic, and also when we
will use the symbol with @GOTOFF addressing.
(SH_BLTIN_UDI): Remove.
(SH_BLTIN_LDUA_L64, SH_BLTIN_LDUA_Q64, SH_BLTIN_STUA_L64): New.
(SH_BLTIN_STUA_Q64): Likewise.
(signature_args, SH_BLTIN_NUM_SHARED_SIGNATURES): Update.
(SH_BLTIN_2, SH_BLTIN_SU, SH_BLTIN_3, SH_BLTIN_SUS): Renumber.
(SH_BLTIN_PSSV, SH_BLTIN_XXUU, SH_BLTIN_UUUU, SH_BLTIN_PV): Likewise.
(bdesc): Add entries for alloco, mac_media, sqrtdf2, sqrtsf2, fsrra_s,
{ld,st}{hi,lo}.[lq] and prefetch.
Change mextr entries to use SH_BLTIN_V8QI3.
(sh_media_init_builtins): Implement specific TARGET_SHMEDIA32 /
TARGET_SHMEDIA64 checks for pointer arguments.
(sh_expand_builtin): For pointer types, use ptr_mode / ptr_type_mode.
(sh_register_move_cost): Check sh_gettrcost_str.
(cmpsi_operand): T_REG is only allowed for TARGET_SH1.
(sh_output_mi_thunk): Make static. Check that needed registers are
actually available. Make sure that the sibcall won't go via the PLT.
(sh_multcost_str, sh_gettrcost_str, sh_div_str): New variables.
(cut2_workaround_str, sh_div_strategy, boardtype, osruntime): Likewise.
(arith_reg_dest): Allow paradoxical DImode subreg for ! TARGET_SHMEDIA.
* sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH_FPU_ANY__ and
__SH_FPU_DOUBLE__.
(INDEXED_ADDRESS_BIT, ADJUST_UNROLL_BIT, TARGET_DIVIDE_INV): Define.
(TARGET_HARVARD): Also true for TARGET_SH5.
(TARGET_DIVIDE_FP, TARGET_DIVIDE_INV_FP, TARGET_DIVIDE_CALL2): Define.
(TARGET_DIVIDE_INV_MINLAT, TARGET_DIVIDE_INV20U): Define.
(TARGET_DIVIDE_INV20L, TARGET_DIVIDE_INV_CALL): Define.
(TARGET_DIVIDE_INV_CALL2, TARGET_ALLOW_INDEXED_ADDRESS): Define.
(TARGET_ADJUST_UNROLL, TARGET_OPT_DEFAULT, SUBTARGET_OPTIONS): Define.
(TARGET_SWITCHES): Removed excessive whitespace. Added options
indexed-addressing, no-indexed-addressing, adjust-unroll and
no-adjust-unroll.
(TARGET_DEFAULT): Add TARGET_OPT_DEFAULT.
(TARGET_OPTIONS): Define.
(EXTRA_SPECS): Add subtarget_asm_spec.
(SH_ASM_SPEC): Pass cut2-workaround option.
(SUBTARGET_ASM_ISA_SPEC): Enforce STRICT_NOFPU for SH4 --without-fp.
(LINK_EMUL_PREFIX): If target defaults to little endian, default to shl.
(OPTIMIZATION_OPTIONS): Set sh_div_str. If not using if not -mieee,
set flag_finite_math_only.
(sh_divide_strategy_e): New enum.
(sh_div_strategy): Declare.
(OVERRIDE_OPTIONS): Don't set FMOVD_BIT for TARGET_SHCOMPACT.
Clear flag_if_conversion2 for SHMEDIA.
Set sh_div_strategy.
Leave profile_flag and profile_arc_flag alone.
(LOOP_ALIGN): Replace TARGET_HARVARD test with TARGET_HARD_SH4 test.
(HARD_REGNO_MODE_OK): Allow TImode in aligned FP registers.
(MODES_TIEABLE_P): For TARGET_SHMEDIA, allow tying of integral modes
of the same size.
(CONST_OK_FOR_I): Fix detection of I06 constraint.
(PREFERRED_RELOAD_CLASS): Also choose GENERAL_REGS for
PIC_DIRECT_ADDR_P.
(SECONDARY_INPUT_RELOAD_CLASS): Fix parentheses. For TARGET_SHMEDIA,
check for inqhi_operand, LABEL_REF and PIC_DIRECT_ADDR_P.
(FUNCTION_VALUE, PROMOTE_MODE): Don't promote from SImode. For
TARGET_SHMEDIA32, promote to SImode.
(EXTRA_CONSTRAINT_C16): Allow SIGN_EXTEND to SImode.
(DATALABEL_REF_NO_CONST_P: Don't allow SYMBOL_REF.
(DATALABEL_REF_P): Don't define.
(NON_PIC_REFERENCE_P): Allow LABEL_REF and SYMBOL_REF directly inside
a CONST. Don't allow DATALABEL_REF_NO_CONST_P outside of a CONST.
Allow a LABEL_REF in a sum.
(BASE_REGISTER_RTX_P): Check TRULY_NOOP_TRUNCATION.
(INDEX_REGISTER_RTX_P): Likewise.
(GO_IF_LEGITIMATE_INDEX): Check if pased the address of an unaligned
load / store.
(ALLOW_INDEXED_ADDRESS): Define.
(GO_IF_LEGITIMATE_ADDRESS): Use it.
(TRULY_NOOP_TRUNCATION): Don't allow no-op truncation from 64 bit or
beyond to less than 64 bit.
(PRINT_OPERAND_PUNCT_VALID_P): Allow '>'.
(rtx_equal_function_value_matters): Don't declare.
(arith_reg_operand): Allow sign_extend.
(PREDICATE_CODES): Allow SIGN_EXTEND in arith_reg_operand. Add
any_arith_reg_dest, cache_address_operand, cmp_operand,
fp_arith_reg_dest, logical_operator, logical_reg_operand,
minuend_operand, shift_count_operand, shift_count_reg_operand,
shift_operator, ua_address_operand, ua_offset, unary_float_operator,
xor_operand. Don't allow PARALLEL in sh_1el_vec and sh_rep_vec
Remove shmedia_6bit_operand.
(SPECIAL_MODE_PREDICATES): Add any-arith_reg_dest, target_operand
and target_reg_operand.
(SIDI_OFF, SIMULTANEOUS_PREFETCHES, high_life_started): Define.
(sh_multcost_str, sh_gettrcost_str, sh_div_str): Declare.
(cut2_workaround_str): Declare.
(INDEX_REG_CLASS): Is NO_REGS if ALLOW_INDEXED_ADDRESS is zero.
(LEGITIMIZE_RELOAD_ADDRESS): Check ALLOW_INDEXED_ADDRESS.
Substitute INDEX_REG_CLASS with R0_REGS.
* sh.md (UNSPEC_DIV_INV_M0, UNSPEC_DIV_INV_M1): New constants.
(UNSPEC_DIV_INV_M2, UNSPEC_DIV_INV_M3, UNSPEC_DIV_INV20): Likewise.
(UNSPEC_ASHIFTRT, UNSPEC_THUNK): Likewise.
(Attribute "length"): jump_media has length 8 if
TARGET_SH5_CUT2_WORKAROUND is true.
("highpart"): New attribute.
(cmpsi): Allow TARGET_SHMEDIA.
(cmpeqsi_media, cmpgtsi_media, cmpgtusi_media): New patterns.
(cmpsieqsi_media, cmpsieqdi_media, cmpsigtsi_media): Likewise.
(cmpsigtdi_media, cmpsigtusi_media, cmpsigtudi_media): Likewise.
(*cmpne0si_media, *cmpne0sisi_media, movdicc_true+1): Likewise.
(movdicc_true+2, movsicc_false, movsicc_true): Likewise.
(movsicc_true+1, movsicc_true+2, movsicc_true+3): Likewise.
(*movsicc_umin, movsicc, movqicc, *adddisi3_media): Likewise.
(addsidi3_media, subdisi3_media, mov_neg_si_t): Likewise.
(*subsi3_media+1, *subsi3_media+2, divsi3_media_2): Likewise.
(divsi_inv_call, *divsi_inv_call_combine, divsi_inv_m0): Likewise.
(divsi_inv_m1, divsi_inv_m2, divsi_inv_m3, divsi_inv_m1_3): Likewise.
(divsi_inv20, divsi_inv_fp, *divsi_inv_fp_combine, muldi3): Likewise.
(*andsi3_media, andcsi3): Likewise.
(cmpeqdi_media): Use cmp_operand operand predicate.
(*adddi3_media, adddi3z_media): Use arith_reg_dest operand predicate.
(adddi3_compact, adddi3_compact+1, addc, addc1): Likewise.
(addsi3_media, *addsi3_compact, *subdi3_media): Likewise.
(subdi3_compact, subdi3_compact+1, subc, subc1): Likewise.
(*subsi3_internal, *subsi3_media, udivsi3_sh2a, divsi3_sh2a): Likewise.
(mul_r, mulsidi3_media, mulsidi3_compact): Likewise.
(mulsidi3_compact+1, umulsidi3_media, umulsidi3_compact): Likewise.
(umulsidi3_compact+1, *andsi3_compact, anddi3, andcdi3): Likewise.
(*subsi3_media): Make define_insn_and_split. Use minuend_operand
operand predicate.
(subsi3): Don't force operand 1 into a register if it is a SUBREG.
(udivsi3_i1_media, udivsi3): Use Pmode for function/target address.
(divsi3_i1_media, beq_media, *beq_media_i, bne_media): Likewise.
(bgt_media, bge_media, bgtu_media, bgeu_media, *bgt_media_i): Likewise.
(*blt_media_i, bunordered, jump_media, jump, call_media): Likewise.
(call_value_media, call, call_value, sibcall_media, sibcall): Likewise.
(indirect_jump, casesi_jump_media, GOTaddr2picreg, *ptb): Likewise.
(symGOT_load, casesi, casesi_shift_media, casesi_load_media): Likewise.
(return_media_i, return_media): Likewise.
(udivsi3_i1_media): Enable also for ! TARGET_DIVIDE_FP.
(divsi3_i1_media): Likewise. Don't clobber R2 / R3 / TR1 / TR2.
(divsi3): Add support for division by multiplying with inverse.
(andsi3): Use logical_reg_operand predicate. Add SHmedia support.
(iorsi3): Rename to:
(*iorsi3_compact).
(xorsi3): Rename to:
(*xorsi3_compact).
(iorsi3, *iorsi3_media, *logical_sidi3, xorsi3): New patterns.
(*logical_sidisi3, *logical_sidi3_2, rotrdi3_mextr+1): Likewise.
(ashrsi2_31+2, *ashlsi_c_void, *ashldisi3_media): Likewise.
(*lshrdisi3_media, *ashrdisi3_media, ashrdisi3_media_high): Likewise.
(ashrdisi3_media_opaque, one_cmpldi2+1, cneg, movsi_const): Likewise.
(movsi_const_16bit, *movdi_media_I16, *shori_media_si): Likewise.
(*beq_media_i32, *bgt_media_i32, *blt_media_i32): Likewise.
(bunordered+1, sibcalli_thunk, ptrel_si, cmpsieqsf_media): Likewise.
(cmpsieqdf_media, addv2hi3, ashlv2si3+1, subv2hi3, ldhi_l): Likewise.
(ldhi_q, *ldhi_q_comb0, *ldhi_q_comb1, ldlo_l, ldlo_q): Likewise.
(*ldlo_q_comb0, *ldlo_q_comb1, sthi_l, sthi_q): Likewise.
(*sthi_q_comb0, *sthi_q_comb1, stlo_l, stlo_q): Likewise.
(*stlo_q_comb0, *stlo_q_comb1, ldhi_l64, ldhi_q64, ldlo_l64): Likewise.
(ldlo_q64, sthi_l64, sthi_q64, stlo_l64, stlo_q64, alloco_i): Likewise.
(alloca_i+1): Likewise.
(prefetch_media): Inhibit generator function generation.
(prefetch_i4): Likewise. Also enable for TARGET_SHCOMPACT.
(*iorsi3_compact, iordi3): Use arith_reg_dest operand predicate.
(*xorsi3_compact, xordi3, xordi3+1, rotlsi3_1, rotlsi3_31): Likewise.
(rotlsi3_16, rotlsi3, *rotlhi3_8, ashlsi3_sh2a, ashlsi3_std): Likewise.
(ashlhi3_k, ashlsi3_n, ashlsi3_n+1, ashlsi3_media): Likewise.
(*ashlhi3_n, ashlhi3+1, ashrsi3_sh2a, ashrsi3_k, ashrsi2_16): Likewise.
(ashrsi2_16+1, ashrsi2_31, ashrsi2_31+1, ashlsi_c): Likewise.
(ashrsi3_d, ashrsi3_media, lshrsi3_sh2a, lshrsi3_d): Likewise.
(lshrsi3_m, lshrsi3_k, lshrsi3_n, lshrsi3_n, lshrsi3_media): Likewise.
(lshrsi3, ashldi3_k, ashldi3_mediai, lshrdi3_k): Likewise.
(ashrdi3_k, xtrct_left, xtrct_right, negc, *negdi_media): Likewise.
(negsi2, one_cmplsi2, one_cmpldi2, zero_extendsidi2): Likewise.
(*zero_extendhisi2_compact, *zero_extendqisi2_compact): Likewise.
(zero_extendqihi2, extendhisi2, *extendhisi2_compact): Likewise.
(extendqisi2, *extendqisi2_compact, extendqihi2): Likewise.
(movsi_const_16bit+1, *movdi_media_I16+1): Likewise.
(movdf_media_nofpu+1, movsf_media_nofpu+1, dect, movt, seq): Likewise.
(movnegt+1, divsf3_i): Likewise.
(xordi3): Use xor_operand operand predicate.
(ashlsi3_media): Use shift_count_operand operand predicate.
(ashrsi3_media, lshrsi3_media, ashldi3_media, lshrdi3_media): Likewise.
(ashrdi3_media): Likewise.
(ashrsi2_31+1): Use mov_neg_si_t.
(lshrdi3_media, ashrdi3_media): Use ext_dest_operand predicate.
Make sure that either the destination is not a subreg, or that the
shift generates a sufficient number of sign bit copies.
(*loaddi_trunc): Use any_register_operand predicate.
(ic_invalidate_line_sh4a): Likewise.
(*zero_extendhisi2_media+1): Use simplify_gen_subreg.
(*extendhisi2_media+1i, *extendqisi2_media+1): Likewise.
(extendsidi2): Add fmov.sl alternative.
(load_ra): Add mode for operand 1.
(*movsi_media): Discourage the use of floating point registers.
Allow TRUNCATE.
(*movsi_media_nofpu): Ignore target register alternative for register
preferencing. Allow TRUNCATE.
(movsi_const_16bit+1): Use gen_movsi_const, and add an REG_EQUAL note.
(*movqi_media): Use extend_reg_or_0_operand predicate.
(*movdi_media): Ignore target register alternative for register
preferencing. Discourage the use of floating point registers.
(*movdi_media_nofpu): Ignore target register alternative for register
preferencing.
(movdi_const_16bit+1): If the source is subregged from SImode,
sign-extend highpart. Use ext_dest_operand predicate.
(movdi_const_16bit+2, shori_media): Use ext_dest_operand predicate.
(reload_outdf+7, reload_outdf+8): Check ALLOW_INDEXED_ADDRESS.
(stuff_delay_slot): Add modes for operands 0 and 1.
(*beq_media_i, *bgt_media_i): Add '>' to output templates.
(*blt_media_i, jump_media): Likewise.
(beq, bne): Pass through SImode inputs, and I06 constants.
(bgt, blt, ble, bge, bgtu): Pass through SImode inputs, the constant 0.
(bltu, bgeu, bleu): Likewise.
(GOTaddr2picreg): Don't call gen_datalabel_ref.
(ptrel): Rename to:
(ptrel_di).
(tls_global_dynamic, tls_local_dynamic): Add mode for call.
(seq): Properly support input modes other than DImode.
(slt, sle, sgt, sge,sne): Properly support SImode.
(addsf3_i, negdf2_i, sqrtdf2_i, absdf2_i): Use fp_arith_reg_operand.
(mac_media) Enable generator function generation.
(fix_truncsfdi2): Use fp_arith_reg_dest operand predicate.
(fix_truncdfdi2): Likewise.
(movv8qi_i+3): Enable for CONST0_RTX too.
(movv2hi_i): Use add.l, not addz.l.
(ashlv2si3, ashlv4hi3, lshrv2si3): Use shift_count_reg_operand.
(lshrv4hi3): Likewise.
(ussubv8qi3): Allow zero for operand 1.
(prefetch): Allow any mode for operand 0. Enable for SHCOMPACT.
Use force_reg.
* config/sh/shmedia.md: (shmedia): Remove automaton declaration.
(sh5inst_pipe, sh5fpu_pipe): New automatons.
(sh5issue): Use sh5inst_pipe.
(sh5fds): Use sh5fpu_pipe.
(shmedia_fdiv, shmedia_dfdiv): Also use sh5issue.
* config/sh/sshmedia.h (sh_media_GETCON, sh_media_PUTCON): Declare
with always_inline Attribute.
* t-sh64 (LIB1ASMFUNCS): Add _div_table.
* config/sh/ushmedia.h (sh_media_MABS_L): Use builtin function.
(sh_media_MABS_W, sh_media_MADD_L, sh_media_MADD_W): Likewise.
(sh_media_MADDS_L, sh_media_MADDS_UB, sh_media_MADDS_W): Likewise.
(sh_media_MCMPEQ_B, sh_media_MCMPEQ_L, sh_media_MCMPEQ_W): Likewise.
(sh_media_MCMPGT_UB, sh_media_MCMPGT_L, sh_media_MCMPGT_W): Likewise.
(sh_media_MCMV, sh_media_MCNVS_LW, sh_media_MCNVS_WB): Likewise.
(sh_media_MCNVS_WUB, sh_media_MEXTR1, sh_media_MEXTR2): Likewise.
(sh_media_MEXTR3, sh_media_MEXTR4, sh_media_MEXTR5): Likewise.
(sh_media_MEXTR6, sh_media_MEXTR7, sh_media_MMACFX_WL): Likewise.
(sh_media_MMACNFX_WL, sh_media_MMUL_L, sh_media_MMUL_W): Likewise.
(sh_media_MMULFX_L, sh_media_MMULFX_W, sh_media_MMULFXRP_W): Likewise.
(sh_media_MMULHI_WL, sh_media_MMULLO_WL): Likewise.
(sh_media_MMULSUM_WQ, sh_media_MPERM_W, sh_media_MSAD_UBQ): Likewise.
(sh_media_MSHALDS_L, sh_media_MSHALDS_W, sh_media_MSHARD_L): Likewise.
(sh_media_MSHARD_W, sh_media_MSHARDS_Q, sh_media_MSHFHI_B): Likewise.
(sh_media_MSHFHI_L, sh_media_MSHFHI_W, sh_media_MSHFLO_B): Likewise.
(sh_media_MSHFLO_L, sh_media_MSHFLO_W, sh_media_MSHLLD_L): Likewise.
(sh_media_MSHLLD_W, sh_media_MSHLRD_L, sh_media_MSHLRD_W): Likewise.
(sh_media_MSUB_L, sh_media_MSUB_W, sh_media_MSUBS_L): Likewise.
(sh_media_MSUBS_UB, sh_media_MSUBS_W, sh_media_FABS_D): Likewise.
(sh_media_FABS_S, sh_media_FCMPUN_D, sh_media_FCMPUN_S): Likewise.
(sh_media_FIPR_S, sh_media_FMAC_S, sh_media_FSQRT_D): Likewise.
(sh_media_FSQRT_S, sh_media_FTRV_S, sh_media_LDHI_L): Likewise.
(sh_media_LDHI_Q, sh_media_LDLO_L, sh_media_LDLO_Q): Likewise.
(sh_media_STHI_L, sh_media_STHI_Q, sh_media_STLO_L): Likewise.
(sh_media_STLO_Q, sh_media_NSB, sh_media_BYTEREV): Likewise.
(sh_media_PREFO, sh_media_ALLOCO): Likewise.
(sh_media_FCOSA_S, sh_media_FSINA_S): New function.
(sh_media_FMOV_DQ, sh_media_FMOV_LS): Use union assignment.
(sh_media_FMOV_QD, sh_media_FMOV_SL): Likewise.
(sh_media_CMVEQ): Use C code. Add attribute always_inline.
(sh_media_CMVNE): Likewise.
(sh_media_ADDZ_L): Use C code.
(sh_media_unaligned_LD_L): Use intrinsics directly.
(sh_media_unaligned_LD_Q, sh_media_unaligned_ST_L): Likewise.
(sh_media_unaligned_ST_Q): Likewise.
* config/sh/divtab.c: New file.
2005-04-06 Andrew Stubbs <andrew.stubbs@superh.com>
J"orn Rennecke <joern.rennecke@superh.com>
* config/sh/superh64.h, config/sh/superh.h: New files.
* config/sh/newlib.h, config/sh/t-superh: Likewise.
* config.gcc: Add support for sh*-superh-elf* and sh64-superh-linux*.
gcc/testsuite:
2005-05-06 J"orn Rennecke <joern.rennecke@st.com>
* gcc.dg/pr15784-3.c: Add -fno-finite-math-only option.
* gcc.dg/
20021029-1.c: For sh64*-*-*, add -mpt-fixed.
From-SVN: r99460
Adrian Straetling [Mon, 9 May 2005 17:37:42 +0000 (17:37 +0000)]
s390.h: Move xxx_REGNUM definitions to s390.md.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
* config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
"RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
CC_REGNUM)'.
("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
'(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
REG_SC)'.
From-SVN: r99459
Adrian Straetling [Mon, 9 May 2005 17:32:20 +0000 (17:32 +0000)]
s390.md: ("gf") New mode attribute.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("gf") New mode attribute.
("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
"fixuns_truncsfsi2"): Merge.
("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
"fix_truncsfsi2_ieee"): Merge.
From-SVN: r99458
Adrian Straetling [Mon, 9 May 2005 17:29:33 +0000 (17:29 +0000)]
s390.md: ("FPR") New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("FPR") New mode macro.
("de", "dee"): New mode attributes.
("cmpdf", "cmpsf"): Merge.
("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
("floatdidf2", "floatdisf2"): Merge.
("adddf3", "addsf3"): Merge.
("*adddf3", "*addsf3"): Merge.
("*adddf3_cc", "*addsf3_cc"): Merge.
("*adddf3_cconly", "*addsf3_cconly"): Merge.
("*adddf3_ibm", "*addsf3_ibm"): Merge.
("subdf3", "subsf3"): Merge.
("*subdf3", "*subsf3"): Merge.
("*subdf3_cc", "*subsf3_cc"): Merge.
("*subdf3_cconly", "*subsf3_cconly"): Merge.
("*subdf3_ibm", "*subsf3_ibm"): Merge.
("muldf3", "mulsf3"): Merge.
("*muldf3", "*mulsf3" "): Merge.
("*muldf3_ibm", "*mulsf3_ibm"): Merge.
("*fmadddf", "*fmaddsf"): Merge.
("*fmsubdf", "*fmsubsf"): Merge.
("divdf3", "divsf3"): Merge.
("*divdf3", "*divsf3"): Merge.
("*divdf3_ibm", "*divsf3_ibm"): Merge.
("negdf2", "negsf2"): Merge.
("*negdf2_cc", "*negsf2_cc"): Merge.
("*negdf2_cconly", "*negsf2_cconly"): Merge.
("*negdf2", "*negsf2"): Merge.
("*negdf2_ibm", "*negsf2_ibm"): Merge.
("absdf2", "abssf2"): Merge.
("*absdf2_cc", "*abssf2_cc"): Merge.
("*absdf2_cconly", "*abssf2_cconly"): Merge.
("*absdf2", "*abssf2"): Merge.
("*absdf2_ibm", "*abssf2_ibm"): Merge.
("*negabsdf2_cc", "*negabssf2_cc"): Merge.
("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
("*negabsdf2", "*negabssf2"): Merge.
("sqrtdf2", "sqrtsf2"): Merge.
From-SVN: r99457
Adrian Straetling [Mon, 9 May 2005 17:24:37 +0000 (17:24 +0000)]
s390.c: (s390_adjust_priority): Adapt to changed attribute names.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.c: (s390_adjust_priority): Adapt to changed
attribute names.
* config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
"x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
"x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
attribute names.
* config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
"fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
"*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
"*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
"*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
"*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
"mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
"*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
"*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
"*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
"*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
"*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
"*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
'type' value.
("*divsf3"): Additionally rename second pattern to
"*divsf3_ibm".
("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
"*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
"*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
"subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
"subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
'type values' and rename 'type' value.
("*addsf3"): Additionally rename second pattern to
"*addsf3_ibm".
From-SVN: r99456
Adrian Straetling [Mon, 9 May 2005 17:21:03 +0000 (17:21 +0000)]
s390.md: ("SHIFT"): New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("SHIFT"): New mode macro.
("lr", "shift"): New mode attributes.
("ashldi3", "lshrdi3"): Merge.
("*ashldi3_31", "*lshrdi3"_31): Merge.
("*ashldi3_64", "*lshrdi3"_64): Merge.
("ashlsi3", "lshrsi3"): Merge.
From-SVN: r99455
Adrian Straetling [Mon, 9 May 2005 17:18:00 +0000 (17:18 +0000)]
s390.md: ("DSI", "SCOND"): New mode macros.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("DSI", "SCOND"): New mode
macros.
("E", "g"): New mode attributes.
("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
("*adddi3_alc", "*addsi3_alc"): Merge.
("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
("*subdi3_slb", "*subsi3_slb"): Merge.
("adddicc", "addsicc"): Merge.
("*sconddi", "*scondsi"): Merge.
("*sconddi_neg", "*scondsi_neg"): Merge.
("sltu", "sgtu", "sleu", "sgeu"): Merge.
("negdi2", "negsi2"): Extract expander pattern from
"negsi2" and merge with "negdi2".
("*negdi2"): Merge with instruction pattern of "negsi2".
("*negdi2_cc", "*negsi2_cc"): Merge.
("*negdi2_cconly", "*negsi2_cconly"): Merge.
("rotldi3", "rotlsi3"): Merge.
From-SVN: r99454
Adrian Straetling [Mon, 9 May 2005 17:14:22 +0000 (17:14 +0000)]
s390.md: ("hc"): New mode attribute.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("hc"): New mode attribute.
("extendhidi2", "extendqidi2"): Merge.
("*extendhidi2", "*extendqidi2"): Merge.
("extendhisi2", "extendqisi2"): Merge.
("zero_extendhidi2", "zero_extendqidi2"): Merge.
("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
Merged 2 define_split.
("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
From-SVN: r99453
Adrian Straetling [Mon, 9 May 2005 17:11:23 +0000 (17:11 +0000)]
s390.md: ("COMPARE"): New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("COMPARE"): New mode macro.
("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
"ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
"bungt", "bunle", "bunge", "bltgt"): Merge.
From-SVN: r99452
Adrian Straetling [Mon, 9 May 2005 17:07:57 +0000 (17:07 +0000)]
s390.md: ("INT"): New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("INT"): New mode macro.
("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
Merge.
From-SVN: r99451
Adrian Straetling [Mon, 9 May 2005 17:04:41 +0000 (17:04 +0000)]
s390.md: ("GPR", "P"): New mode macros.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("GPR", "P"): New mode macros.
("cmpdi", "cmpsi"): Merge.
("strlendi", "strlensi"): Merge.
("*strlendi", "*strlensi"): Merge.
("movmemdi", "movmemsi"): Merge.
("clrmemdi", "clrmemsi"): Merge.
From-SVN: r99450
Adrian Straetling [Mon, 9 May 2005 17:01:36 +0000 (17:01 +0000)]
s390.md: ("HQI"): New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
* config/s390/s390.md: ("HQI"): New mode macro.
("icm_lo", "icm_hi", "max_uint"): New mode attributes.
("*tmhi_full", "*tmqi_full"): Merge.
("*tsthiCCT", "*tstqiCCT"): Merge.
("*tsthi", "*tstqi"): Merge.
("*tsthi_cconly", "tstqi_cconly"): Merge.
("*sethighhisi", "*sethighqisi"): Merge.
From-SVN: r99449
Bryce McKinlay [Mon, 9 May 2005 16:52:36 +0000 (17:52 +0100)]
libjava.exp (libjava_find_gij): Use $objdir/..
2005-04-22 Bryce McKinlay <mckinlay@redhat.com>
* testsuite/lib/libjava.exp (libjava_find_gij): Use $objdir/.. to
find gij if get_multilibs fails.
From-SVN: r99448
Kazu Hirata [Mon, 9 May 2005 16:26:26 +0000 (16:26 +0000)]
crtstuff.c, [...]: Update copyright.
* crtstuff.c, integrate.h, tree-scalar-evolution.h,
config/alpha/unicosmk.h, config/arc/arc.md,
config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
config/arm/semi.h, config/arm/uclinux-elf.h,
config/arm/wince-pe.h, config/fr30/fr30.c,
config/rs6000/altivec.h: Update copyright.
From-SVN: r99447
Nathan Sidwell [Mon, 9 May 2005 15:58:56 +0000 (15:58 +0000)]
pdp11.c (pdp11_output_function_prologue): Use gcc_assert and gcc_unreachable as appropriate.
* config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
gcc_assert and gcc_unreachable as appropriate.
(pdp11_output_function_epilogue, output_move_double,
output_move_quad, print_operand_address, output_jump,
output_addr_const_pdp11): Likewise.
* config/pdp11/pdp11.h (FUNCTION_PROFILER,
ASM_OUTPUT_ALIGN): Likewise.
* config/pdp11/pdp11.md: Likewise.
(extendhisi2, subhi3, subqi3): Likewise.
From-SVN: r99446
David Edelsohn [Mon, 9 May 2005 14:44:51 +0000 (10:44 -0400)]
re PR middle-end/21237 (unnecessary __cmpdi2 usage?)
PR middle-end/21237
* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
to NE_EXPR case.
From-SVN: r99444
David Edelsohn [Mon, 9 May 2005 14:43:09 +0000 (14:43 +0000)]
dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through to NE_EXPR case.
* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
to NE_EXPR case.
From-SVN: r99443
Kazu Hirata [Mon, 9 May 2005 14:38:07 +0000 (14:38 +0000)]
* config/ia64/ia64.c: Fix a comment typo.
From-SVN: r99442
Richard Earnshaw [Mon, 9 May 2005 14:15:47 +0000 (14:15 +0000)]
re PR target/21397 (arm: -march overrides -mtune)
PR target/21397
* arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
(arm_override_options): Use them instead of manifest constants. Don't
allow -march to override the -mtune setting.
From-SVN: r99441
Stan Cox [Mon, 9 May 2005 13:34:05 +0000 (13:34 +0000)]
* MAINTAINERS: Remove self, add Nick Clifton as iq2000 maintainer.
From-SVN: r99435
Jonathan Wakely [Mon, 9 May 2005 12:45:05 +0000 (13:45 +0100)]
DR 434.
DR 434. bitset::to_string() hard to use [Ready]
* include/debug/bitset (to_string): Add three overloads, taking
fewer template arguments.
From-SVN: r99433
Nathan Sidwell [Mon, 9 May 2005 12:10:29 +0000 (12:10 +0000)]
iq2000.c (abort_with_insn): Use fancy_abort.
* config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
(gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
(function_arg_advance, function_arg, save_restore_insns,
iq2000_expand_prologue, iq2000_output_conditional_branch,
expand_one_builtin, print_operand):
* config/iq2000/iq2000.md (tablejump): Likewise.
From-SVN: r99432
Nathan Sidwell [Mon, 9 May 2005 11:52:44 +0000 (11:52 +0000)]
re PR c++/21427 ([3.4/4.0 only] Failure in make_thunk, cp/method.c:145 when compiling with multiply-inherited members)
PR c++/21427
* g++.dg/inherit/covariant13.C: New.
From-SVN: r99431
David Ung [Mon, 9 May 2005 11:43:50 +0000 (11:43 +0000)]
mips.h (processor_type): Add names for the 24K.
* config/mips/mips.h (processor_type): Add names for the 24K.
* config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
processor family.
* config/mips/mips.md (cnv_mode): New attribute for recording the
conversion types of float convert insns.
(cpu): Add 24k and 24kx.
(include): Include 24k.md file.
(truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
(fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
(floatdisf2): Setup cnv_mode.
(fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
setup cnv_mode.
* config/mips/24k.md: New file, contains 24k DFA pipeline
description.
From-SVN: r99429
Nathan Sidwell [Mon, 9 May 2005 11:24:17 +0000 (11:24 +0000)]
sh.c (print_operand_address): Use gcc_assert and gcc_unreachable as appropriate.
* config/sh/sh.c (print_operand_address): Use gcc_assert and
gcc_unreachable as appropriate.
(print_operand, prepare_move_operands, prepare_scc_operands,
output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
fixup_mova, gen_far_branch, sh_reorg, split_branches,
final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
sh_set_return_address, sh_setup_incoming_varargs,
initial_elimination_offset, sh_pch_valid_p, get_free_reg,
sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
check_use_sfunc_addr): Likewise.
* config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
* config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
* config/sh/symbian.c (sh_symbian_mark_dllexport,
sh_symbian_mark_dllimport): Likewise.
* config/sh/sh.md: Likewise.
(movdicc, call_pop, call_value_pop, casesi_worker_1,
casesi_worker_2, casesi_shift_media, casesi_load_media,
return_media): Likewise.
From-SVN: r99425
Francois-Xavier Coudert [Mon, 9 May 2005 11:21:01 +0000 (13:21 +0200)]
re PR libfortran/19155 ([4.0 only] blanks not treated as zeros in 'E' format read (NIST FM110.FOR))
PR libfortran/19155
* io/read.c (read_f): Accept 'e', 'E', 'd' and 'D' as first
non-blank characters of a real number.
* gfortran.dg/pr19155.f: New test.
From-SVN: r99424
Roger Sayle [Mon, 9 May 2005 05:15:50 +0000 (05:15 +0000)]
re PR inline-asm/8788 (ICE in emit_move_insn, at expr.c:3089)
PR inline-asm/8788
* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
operands.
* gcc.dg/pr8788-1.c: New testcase.
From-SVN: r99422
Richard Henderson [Mon, 9 May 2005 04:34:43 +0000 (21:34 -0700)]
* config/alpha/alpha.c (adjust_address): Fix typo last change.
From-SVN: r99421
GCC Administrator [Mon, 9 May 2005 00:16:36 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r99419.2
Richard Henderson [Sun, 8 May 2005 23:23:50 +0000 (16:23 -0700)]
re PR libffi/21285 (gij fails to handle NullPointerException exception)
PR libffi/21285
* src/alpha/osf.S: Update unwind into to match code.
From-SVN: r99415
Joseph Myers [Sun, 8 May 2005 23:02:20 +0000 (00:02 +0100)]
* de.po: Update.
From-SVN: r99413
Stephane Carrez [Sun, 8 May 2005 21:56:29 +0000 (23:56 +0200)]
m68hc11.h (REG_VALID_P): A regno must be >= 0 and -1 can happen in reg_renumber when...
* config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
and -1 can happen in reg_renumber when no hard register is assigned.
From-SVN: r99411
Steven Bosscher [Sun, 8 May 2005 21:22:21 +0000 (21:22 +0000)]
PR tree-optimization/14841, tree-optimization/15838
gcc/
PR tree-optimization/14841, tree-optimization/15838
* tree-ssa-ccp.c (fold_const_aggregate_ref): New.
(evaluate_stmt): Call it.
testsuite/
PR tree-optimization/14841, tree-optimization/15838
* gcc.dg/tree-ssa/pr14841.c: New.
Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu>
From-SVN: r99410
Jakub Jelinek [Sun, 8 May 2005 21:19:16 +0000 (23:19 +0200)]
ia64.c (ia64_override_options): Don't set ia64_flag_var_tracking and clear flag_var_tracking here...
* config/ia64/ia64.c (ia64_override_options): Don't set
ia64_flag_var_tracking and clear flag_var_tracking here...
(ia64_file_start): ... but here.
From-SVN: r99408
Nathan Sidwell [Sun, 8 May 2005 20:58:31 +0000 (20:58 +0000)]
m68hc11.c (m68hc11_emit_libcall): Use gcc_assert and gcc_unreachable as appropriate.
* config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
and gcc_unreachable as appropriate.
(expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
m68hc11_gen_highpart, print_operand, print_operand_address,
m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
m68hc11_gen_movhi): Likewise.
* config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
* config/m68hc11/m68hc11.md: Reword comment.
From-SVN: r99407
Stephane Carrez [Sun, 8 May 2005 20:04:52 +0000 (22:04 +0200)]
re PR target/21281 (ICE with building newlib)
PR target/21281
* config/m68hc11/predicates.md (splitable_operand): An immediate is
allowed.
From-SVN: r99406
Stephane Carrez [Sun, 8 May 2005 19:53:42 +0000 (21:53 +0200)]
predicates.md (reg_or_some_mem_operand): Do not allow the 68HC12 address indirect addressing mode as it is not supported...
* config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
the 68HC12 address indirect addressing mode as it is not supported by
bset and bclr.
* config/m68hc11/m68hc11-protos.h (m68hc11_valid_addressing_p): Declare.
(m68hc11_add_mode): Declare.
* config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
register_indirect_p and export it.
(m68hc11_z_replacement): Use emit_insn_after when adding the save Z
instruction so that it is part of the good BB.
(m68hc11_gen_movhi): Fix invalid generation of indexed indirect
addressing with movw.
(m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
68HC12.
* config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
* config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
for 68HC11.
("*movhi_68hc12"): Handle movhi_const0.
("*subhi3", "subqi3"): Use general_operand for operand 1.
("*subhi3_zext"): Likewise.
From-SVN: r99405
Stephane Carrez [Sun, 8 May 2005 17:52:22 +0000 (19:52 +0200)]
re PR target/19051 (m6811-elf-gcc ICE)
PR target/19051
* config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for operand
1 and fix constraints.
("mulqihi3"): Use general_operand for operand 2.
From-SVN: r99399
Matt Kraai [Sun, 8 May 2005 17:49:46 +0000 (17:49 +0000)]
* README.SCO: Update the URL.
From-SVN: r99398
Julian Brown [Sun, 8 May 2005 16:58:03 +0000 (16:58 +0000)]
configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for GNU linker.
* configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
GNU linker. Support linker version x.x.x.x.x. Require GNU linker
20050308/2.16.0 or newer for comdat group.
* configure: Regenerated.
* config.in: Regenerated.
* varasm.c (default_function_rodata_section): Put .rodata section in
COMDAT group when necessary.
(default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
HAVE_COMDAT_GROUP.
(default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
available.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r99395
Kazu Hirata [Sun, 8 May 2005 15:30:38 +0000 (15:30 +0000)]
* intrinsic.texi: Fix typos.
From-SVN: r99394
Kazu Hirata [Sun, 8 May 2005 15:07:23 +0000 (15:07 +0000)]
tree-dfa.c (referenced_vars, [...]): Use VEC instead of VARRAY.
* tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
instead of VARRAY.
* tree-flow.h (num_referenced_var, referenced_var): Likewise.
* tree-into-ssa.c (mark_def_site_blocks): Likewise.
* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
From-SVN: r99393
Richard Sandiford [Sun, 8 May 2005 12:06:55 +0000 (12:06 +0000)]
Use dg-mips-options instead of dg-options.
From-SVN: r99391
Stephane Carrez [Sun, 8 May 2005 10:23:39 +0000 (12:23 +0200)]
re PR target/16925 (ICE when building a m68hc11 cross-compiler on 64-bit architectures)
PR target/16925
* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
64-bit constants on 64-bit hosts.
(m68hc11_split_logical): Simplify.
(m68hc11_split_move): Likewise.
From-SVN: r99388
Nathan Sidwell [Sun, 8 May 2005 10:13:19 +0000 (10:13 +0000)]
Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
* Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
* aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
* configure.ac (enable_checking): Fix typos in runtime_checking.
(ENABLE_RUNTIME_CHECKING): Mark as target template.
(xm_file): Prepend auto-host.h
(HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
* mkconfig.sh: Do not automatically define USED_FOR_TARGET in
tconfig.h.
* crtstuff.c: Do not include auto-host.h.
(IN_LIBGCC2): Do not define.
* gcov-io.h: Include tconfig.h, not auto-host.h.
* libgcc2.c: Do not include auto-host.h.
(abort): Do not undefine.
* libgcov.c: Remove unneeded comment about config.h.
* unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
* config.in, configure: Regenerated.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r99386
Nathan Sidwell [Sun, 8 May 2005 09:48:22 +0000 (09:48 +0000)]
alpha.c (tls_symbolic_operand_1): Use gcc_assert and gcc_unreachable as appropriate.
* config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
and gcc_unreachable as appropriate.
(get_aligned_mem, get_unaligned_address,
alpha_emit_set_long_const, alpha_emit_conditional_branch,
alpha_emit_setcc, alpha_emit_conditional_move,
alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
alpha_expand_unaligned_load, alpha_expand_block_move,
alpha_expand_zap_mask, get_trap_mode_suffix,
get_round_mode_suffix, get_some_local_dynamic_name,
print_operand_address, function_arg, alpha_return_in_memory,
function_value, alpha_expand_builtin,
alpha_initial_elimination_offset, alpha_expand_epilogue,
summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
alphaev5_next_group, alpha_align_insns,
unicosmk_initial_elimination_offset, unicosmk_unique_section,
unicosmk_ssib_name): Likewise.
* config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
* config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
* config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
* config/alpha/alpha.md (*divmodsi_internal_er,
*divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
call_nt, call_umk, call_vms, call_value, sibcall_value,
call_value_osf, call_value_nt, call_value_vms, call_value_umk,
*call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
* config/alpha/predicates.md (input_operand): Likewise.
Co-Authored-By: Falk Hueffner <falk@debian.org>
From-SVN: r99384
Nathan Sidwell [Sun, 8 May 2005 09:40:45 +0000 (09:40 +0000)]
frv.c (frv_default_flags_for_cpu): Use gcc_assert and gcc_unreachable, as appropriate.
* config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
gcc_unreachable, as appropriate.
(frv_function_prologue, frv_alloc_temp_reg,
frv_initial_elimination_offset, frv_expand_block_move,
frv_expand_block_clear, frv_print_operand_jump_hint,
frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
frv_in_small_data_p, frv_asm_out_constructor,
frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
* config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
*cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
*cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
sibcall_value, casesi): Likewise.
From-SVN: r99383
Nathan Sidwell [Sun, 8 May 2005 09:37:17 +0000 (09:37 +0000)]
mn10300.c (print_operand): Use gcc_assert and gcc_unreachable as appropriate.
* config/mn10300/mn10300.c (print_operand): Use gcc_assert and
gcc_unreachable as appropriate.
(print_operand_address, mn10300_print_reg_list, expand_prologue,
expand_epilogue, notice_update_cc, initial_offset,
mn10300_address_cost_1): Likewise.
* config/mn10300/mn10300.md: Likewise.
(absdf2, abssf2, negdf2, negsf2): Likewise.
From-SVN: r99382
Richard Sandiford [Sun, 8 May 2005 09:27:18 +0000 (09:27 +0000)]
Add PR number to last changelog.
From-SVN: r99381
Richard Sandiford [Sun, 8 May 2005 09:24:45 +0000 (09:24 +0000)]
mips.c (mips_emit_compare): Don't reverse UNGE and UNGT comparisons.
* config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
comparisons.
* config/mips/mips.md (swapped_fcond): New code macro and attribute.
(sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
including sunge_<mode> and sungt_<mode>.
From-SVN: r99380
Richard Sandiford [Sun, 8 May 2005 09:16:47 +0000 (09:16 +0000)]
integrate.h (get_hard_reg_initial_val): Change type of register parameter from int to unsigned int.
* integrate.h (get_hard_reg_initial_val): Change type of register
parameter from int to unsigned int.
(has_hard_reg_initial_val): Likewise.
* integrate.c (get_hard_reg_initial_val): Likewise.
(has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
From-SVN: r99379
Kazu Hirata [Sun, 8 May 2005 04:22:42 +0000 (04:22 +0000)]
except.c (eh_status): Change the type of ttype_data to VEC(tree,gc)*.
* except.c (eh_status): Change the type of ttype_data to
VEC(tree,gc)*.
(add_ttypes_entry, assign_filter_values,
output_function_exception_table): Use VEC instead of VARRAY.
From-SVN: r99378
David Edelsohn [Sun, 8 May 2005 02:35:49 +0000 (02:35 +0000)]
* config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
From-SVN: r99377
Kazu Hirata [Sun, 8 May 2005 02:17:54 +0000 (02:17 +0000)]
class.c (vtbl_init_data_s): Change the type of fns to VEC(tree,gc)*.
* class.c (vtbl_init_data_s): Change the type of fns to
VEC(tree,gc)*.
(build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
Use VEC instead of VARRAY.
From-SVN: r99376
Paul Brook [Sun, 8 May 2005 01:15:17 +0000 (01:15 +0000)]
Makefile.in: Fix dependencies.
2005-05-07 Paul Brook <paul@codesourcery.com>
* Makefile.in: Fix dependencies.
(GCOV_IO_H, VARRAY_H): Set.
From-SVN: r99375
GCC Administrator [Sun, 8 May 2005 00:16:34 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r99373.2
Anthony Green [Sat, 7 May 2005 22:31:59 +0000 (22:31 +0000)]
re PR bootstrap/21403 (Canadian cross build fails.)
2005-05-07 Anthony Green <green@redhat.com>
PR bootstrap/21403
* configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
x$STMP_FIXPROTO test.
* configure: Rebuilt.
From-SVN: r99370
Joseph Myers [Sat, 7 May 2005 20:42:09 +0000 (21:42 +0100)]
* de.po, zh_CN.po: Update.
From-SVN: r99366
Steven G. Kargl [Sat, 7 May 2005 20:37:20 +0000 (20:37 +0000)]
intrinsic.texi: Document ASSOCIATED and ATAN2.
* intrinsic.texi: Document ASSOCIATED and ATAN2. Update Bessel function
descriptions to include info about scalar arguments.
From-SVN: r99365
Joseph Myers [Sat, 7 May 2005 20:14:42 +0000 (21:14 +0100)]
pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define inappropriate feature test macros if flag_iso.
* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
inappropriate feature test macros if flag_iso.
From-SVN: r99363
Joseph Myers [Sat, 7 May 2005 20:12:07 +0000 (21:12 +0100)]
* config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
From-SVN: r99362
Hans-Peter Nilsson [Sat, 7 May 2005 19:40:25 +0000 (19:40 +0000)]
re PR target/21441 (CRIS: gcc.c-torture/execute/
20040703-1.c compilation, -Os and libstdc++ setup)
PR target/21441
* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
Handle moved operand being in special register.
("smulsi3_highpart", "umulsi3_highpart"): Change .error into
presumed working insn.
(mover2side): Add FIXME.
From-SVN: r99360
Hans-Peter Nilsson [Sat, 7 May 2005 19:37:15 +0000 (19:37 +0000)]
* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
Handle moved operand being in special register.
("smulsi3_highpart", "umulsi3_highpart"): Change .error into
presumed working insn.
(mover2side): Add FIXME.
From-SVN: r99359
Richard Sandiford [Sat, 7 May 2005 19:05:33 +0000 (19:05 +0000)]
integrate.c (get_func_hard_reg_initial_val): Delete.
* integrate.c (get_func_hard_reg_initial_val): Delete.
(has_func_hard_reg_initial_val): Delete.
(get_hard_reg_initial_val): Inline the old implementation of
get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
instead of has_func_hard_reg_initial_val to test for an existing
pseudo. Only create an rtx if a new initial value entry is needed.
(has_hard_reg_initial_val): Scan the initial value list directly.
Don't create an rtx.
From-SVN: r99358
David Edelsohn [Sat, 7 May 2005 19:03:22 +0000 (19:03 +0000)]
opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask if variable name exists.
* opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
if variable name exists.
From-SVN: r99357
David Edelsohn [Sat, 7 May 2005 18:51:50 +0000 (18:51 +0000)]
config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt from extra_options.
* config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
from extra_options.
* config.in (HAVE_AS_POPCNTB): New.
* configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
(HAVE_AS_POPCNTB): New.
* configure: Regenerated.
* config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
* config/rs6000/rs6000.c (rs6000_override_options, power5): Add
MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
and rs6000_sched_costly_dep.
* config/rs6000/rs6000.h (TARGET_POPCNTB): New.
(TARGET_XL_COMPAT): Delete.
* config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
(popcount<mode>2): New.
(popcntb<mode>2): New.
* config/rs6000/rs6000.opt (mpopcntb): New.
From-SVN: r99356
Matt Kraai [Sat, 7 May 2005 16:56:28 +0000 (16:56 +0000)]
* Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
From-SVN: r99355
Richard Henderson [Sat, 7 May 2005 16:46:08 +0000 (09:46 -0700)]
re PR target/21412 (ICE loading TLS address)
PR target/21412
* config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
with constant offsets.
From-SVN: r99352
Nathan Sidwell [Sat, 7 May 2005 15:32:16 +0000 (15:32 +0000)]
v850.c (print_operand): Use gcc_assert and gcc_unreachable, as appropriate.
* config/v850/v850.c (print_operand): Use gcc_assert and
gcc_unreachable, as appropriate.
(print_operand_address, v850_handle_data_area_attribute,
v850_encode_data_area, construct_restore_jr, construct_save_jarl,
v850_insert_attributes, construct_prepare_instruction): Likewise.
* config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
* config/v850/v850.md (movsicc, *sasf_1): Likewise.
From-SVN: r99351