Commit Graph

68198 Commits

Author SHA1 Message Date
Bob Wilson
64552cd790 * gcc.dg/const-elim-1.c: Remove xfail for xtensa-*-*.
From-SVN: r99526
2005-05-10 16:27:48 +00:00
Richard Henderson
81ba4f39ee optabs.c (expand_compare_and_swap_loop): Don't clobber old value before comparing it for success.
* optabs.c (expand_compare_and_swap_loop): Don't clobber old value
        before comparing it for success.

From-SVN: r99525
2005-05-10 09:24:41 -07:00
Richard Henderson
8173eefc35 sync.md (sync_add<I48MODE>): Fix arguments for no return value pattern.
* config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
        no return value pattern.

From-SVN: r99524
2005-05-10 09:20:35 -07:00
Grigory Zagorodnev
992f396fcb libgcov.c (create_file_directory): New function.
* libgcov.c (create_file_directory): New function. Create
	directory for the given file name.
	(gcov_max_filename): New static var. Keeps size of the longest
	file name.
	(gcov_exit): Always try to create directory for output
	file. Relocate each filename basing on environment vars.
	(__gcov_init): Remember the longest file name.
	* tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
	* doc/gcov.texi (Cross-profiling): New node documenting
	cross-profiling management.
	* doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.

From-SVN: r99523
2005-05-10 16:10:54 +00:00
Eric Botcazou
0f95e9143a sparc.c (mem_min_alignment): Do not rely on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
* config/sparc/sparc.c (mem_min_alignment): Do not rely
	on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.

From-SVN: r99521
2005-05-10 15:59:16 +00:00
Bob Wilson
53e0077e6f lib1funcs.asm (__udivsi3, __divsi3): Rearrange special case code to avoid one move instruction.
* config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
	case code to avoid one move instruction.
	(__umodsi3, __modsi3): Merge duplicated code sequences.

From-SVN: r99520
2005-05-10 15:56:54 +00:00
Nick Clifton
ee58dffdbc Update the address and phone number of the FSF organization.
From-SVN: r99519
2005-05-10 15:33:18 +00:00
Nick Clifton
d6d47ea0f5 Update the address and phone number of the FSF organization.
From-SVN: r99518
2005-05-10 15:22:21 +00:00
Kazu Hirata
9cbb7989ef tree-data-ref.c (analyze_array_indexes, [...]): Use VEC instead of VARRAY.
* tree-data-ref.c (analyze_array_indexes, analyze_array,
	init_data_ref, access_functions_are_affine_or_constant_p,
	free_data_refs): Use VEC instead of VARRAY.
	* tree-data-ref.h (data_reference): Change the type of
	access_fns to VEC(tree,gc)*.
	(DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.

From-SVN: r99517
2005-05-10 14:50:35 +00:00
Kazu Hirata
30dc60c78c 24k.md, [...]: Fix comment typos.
* config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
	config/sh/sh.md, config/sh/superh.h: Fix comment typos.
	* doc/invoke.texi: Fix typos.

From-SVN: r99516
2005-05-10 14:42:17 +00:00
Gabor Loki
8c9004573a re PR c++/17913 (ICE jumping into statement expression)
2005-05-10  Gabor Loki <loki@gcc.gnu.org>

	PR c/17913
	* c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
	* fold-const.c (fold): Expand the condition of reducing cond_expr.
	(contains_label_1, contains_label_p): New functions for checking
	labels in a sub-tree.

testsuite:
2005-05-10  Gabor Loki <loki@gcc.gnu.org>

	PR c/17913
	* gcc.c-torture/compile/pr17913.c: Computed jump test for PR17913

From-SVN: r99514
2005-05-10 13:47:05 +00:00
Paolo Bonzini
27e928edee re PR java/21436 (imports not remembered for previously compiled files)
gcc/java:
2005-05-10  Paolo Bonzini  <bonzini@gnu.org>

	PR java/21436
	* class.c (maybe_layout_super_class): Look for imports in this_class.
	* parse.h (ctxp_for_generation_last): New.
	(do_resolve_class): Add a parameter.
	* parse.y (ctxp_for_generation_last): New.
	(java_pop_parser_context): Add at end of list.
	(find_in_imports, find_in_imports_on_demand): Look in ctxp
	if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
	the given type are NULL.
	(do_resolve_class): Look into the imports of the new second parameter.
	Adjust recursive calls.
	(resolve_class, resolve_inner_class, find_as_inner_class): Adjust
	calls to do_resolve_class.
	(create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
	(java_complete_class): Do not do that here.

libjava:
2005-05-10  Paolo Bonzini  <bonzini@gnu.org>

	PR java/21436
	* testsuite/libjava.jacks/jacks.xfail: Adjust.

From-SVN: r99513
2005-05-10 13:23:35 +00:00
Joseph Myers
2798c11f46 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
2005-05-10 13:38:34 +01:00
Nathan Sidwell
56d6849d89 crtstuff.c: Revert part of 2005-05-08 Change.
* crtstuff.c: Revert part of 2005-05-08 Change.
	(IN_LIBGCC2): Define.

From-SVN: r99509
2005-05-10 10:27:44 +00:00
Francois-Xavier Coudert
8809f6f945 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
2005-05-10 08:34:58 +00:00
Eric Botcazou
9a9e266b0b 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
2005-05-10 07:50:33 +00:00
Nathan Sidwell
4718bfd8f6 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
2005-05-10 07:44:42 +00:00
Mark Mitchell
9d9165ef48 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
2005-05-10 05:31:15 +00:00
Paolo Carlini
6323b34eeb 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
2005-05-10 01:58:19 +00:00
Mike Stump
f4c767fdc2 * configure: Regenerate.
From-SVN: r99498
2005-05-10 01:43:00 +00:00
Kazu Hirata
bf645d6f45 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
2005-05-10 01:39:22 +00:00
Ben Elliston
3f69daa89a * gcc.dg/debug/pr16676.c: New test.
From-SVN: r99496
2005-05-10 11:35:15 +10:00
Mike Stump
3ac9bd58d1 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
2005-05-10 01:31:58 +00:00
Kazu Hirata
42458609a5 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
2005-05-10 00:57:28 +00:00
David Daney
ff56fbf19f 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
2005-05-10 00:48:49 +00:00
Joseph Myers
5fabfd4cda 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
2005-05-10 01:26:08 +01:00
Joseph Myers
75b66a16fd 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
2005-05-10 01:19:28 +01:00
GCC Administrator
f11b939c65 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r99483.2
2005-05-10 00:16:32 +00:00
Joseph Myers
8ceac9f8f4 re PR c/21160 (documentation for -Wuninitialized out of date)
PR c/21160
	* doc/invoke.texi (-Wuninitialized): Update documentation.

From-SVN: r99478
2005-05-10 00:51:49 +01:00
Mark Mitchell
604b08d75b Add missing ChangeLog entry
From-SVN: r99477
2005-05-09 22:54:03 +00:00
Richard Earnshaw
4642ccb1d0 * arm.c (const_ok_for_arm): Use a faster algorithm.
From-SVN: r99476
2005-05-09 22:09:47 +00:00
David Edelsohn
4a6ac6a5e6 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
2005-05-09 18:04:48 -04:00
Richard Earnshaw
c87e6352ed 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
2005-05-09 22:00:06 +00:00
Richard Earnshaw
e3d97bde61 Revert previous (not the patch described).
From-SVN: r99473
2005-05-09 21:57:47 +00:00
Richard Earnshaw
71a4f307bd 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
2005-05-09 21:55:08 +00:00
Roger Sayle
43f6dfd3ec 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
2005-05-09 20:48:33 +00:00
Mark Mitchell
32df413ae7 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
2005-05-09 20:20:21 +00:00
Tobias Schlüter
7f42f27f33 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
2005-05-09 20:26:20 +02:00
Adrian Straetling
8d933e3147 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
2005-05-09 18:22:11 +00:00
Adrian Straetling
5d81b82b30 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
2005-05-09 18:15:17 +00:00
Adrian Straetling
3ed99cc920 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
2005-05-09 18:12:25 +00:00
Adrian Straetling
ab96de7ea6 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
2005-05-09 18:09:52 +00:00
Steven Bosscher
29d51cdb20 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
2005-05-09 17:52:20 +00:00
J"orn Rennecke
73a4d10bbb 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
2005-05-09 18:42:55 +01:00
Adrian Straetling
ae156f850a 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
2005-05-09 17:37:42 +00:00
Adrian Straetling
2f8f843440 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
2005-05-09 17:32:20 +00:00
Adrian Straetling
f5905b37b0 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
2005-05-09 17:29:33 +00:00
Adrian Straetling
cfdb984baf 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
2005-05-09 17:24:37 +00:00
Adrian Straetling
f337b93018 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
2005-05-09 17:21:03 +00:00
Adrian Straetling
9a91a21f2a 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
2005-05-09 17:18:00 +00:00