Commit Graph

87939 Commits

Author SHA1 Message Date
GCC Administrator
ad90a34ad3 Daily bump.
From-SVN: r136729
2008-06-13 00:17:43 +00:00
Paul Brook
ef0a4b6738 longlong.h (__arm__): Define count_leading_zeros.
2008-06-12  Paul Brook  <paul@codesourcery.com>

	gcc/
	* longlong.h (__arm__): Define count_leading_zeros.
	* config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
	(clzsi2, clzdi2): New functions.
	* config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
	* config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
	* config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
	* config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
	* config/arm/t-pe (LIB1ASMFUNCS): Ditto.
	* config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
	* config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
	* config/arm/t-linux (LIB1ASMFUNCS): Ditto.
	* config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
	* config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.

From-SVN: r136718
2008-06-12 17:29:47 +00:00
David S. Miller
01b79d1165 configure.ac: Add powerpc*-*-* to gold supported targets.
2008-06-12  David S. Miller  <davem@davemloft.net>
            David Edelsohn  <edelsohn@gnu.org>

        * configure.ac: Add powerpc*-*-* to gold supported targets.
        * configure: Regenerate.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r136717
2008-06-12 13:13:12 -04:00
H.J. Lu
0b7c73cc04 re PR preprocessor/36479 (Short buffer in libcpp)
2008-06-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR preprocessor/36479
	* charset.c (cpp_interpret_string_notranslate): Also set
	narrow_cset_desc.width.

From-SVN: r136714
2008-06-12 10:03:41 -07:00
Tobias Burnus
f5dce7973f re PR fortran/36462 ([F03] Audit intrinsics for KIND arguments)
2008-06-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36462
        * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
        Fix passing of the BACK= argument.

2008-06-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36462
        * gfortran.dg/index_2.f90: New.

From-SVN: r136712
2008-06-12 18:16:39 +02:00
Kazu Hirata
03b3e2712c m68k.c (m68k_tune_flags): New.
* config/m68k/m68k.c (m68k_tune_flags): New.
	(override_options): Compute m68k_tune_flags.
	(MULL_COST, MULW_COST): Update for various variants of CFV2.
	* config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.

From-SVN: r136711
2008-06-12 16:15:58 +00:00
Jakub Jelinek
3ac4c44a58 re PR middle-end/36506 (Broken #pragma omp sections reduction (+:x))
PR middle-end/36506
	* omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
	warning.

From-SVN: r136708
2008-06-12 15:49:18 +02:00
Eric Botcazou
1dd4a3e637 decl.c (gnat_to_gnu_entity): In the case of a constrained subtype of a discriminated type...
* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
	constrained subtype of a discriminated type, discard the fields that
	are beyond its limits according to its size.

From-SVN: r136707
2008-06-12 13:19:06 +00:00
Joseph Myers
fcd2a5d4d6 struct-layout-1.exp (orig_gcc_exec_prefix_saved): Always initialize.
* gcc.dg/compat/struct-layout-1.exp (orig_gcc_exec_prefix_saved):
	Always initialize.
	* g++.dg/compat/struct-layout-1.exp (orig_gcc_exec_prefix_saved):
	Always initialize.

From-SVN: r136704
2008-06-12 13:19:02 +01:00
Tobias Burnus
b896f9fd47 omp_lib.f90.in: Add "implicit none".
2008-06-12  Tobias Burnus  <burnus@net-b.de>

        * omp_lib.f90.in: Add "implicit none".

From-SVN: r136703
2008-06-12 14:15:29 +02:00
Eric Botcazou
955f653119 tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with TREE_THIS_VOLATILE on INDIRECT_REF nodes.
* tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
	TREE_THIS_VOLATILE on INDIRECT_REF nodes.

From-SVN: r136702
2008-06-12 12:10:06 +00:00
Eric Botcazou
bd323ce58c expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
* expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
	(get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.

From-SVN: r136699
2008-06-12 11:36:34 +00:00
Jakub Jelinek
b5a6bf2e7e re PR testsuite/36443 (HOSTCC doesn't work with installed gcc)
PR testsuite/36443
	* gcc.dg/compat/struct-layout-1.exp: Temporarily unset
	GCC_EXEC_PREFIX from environment when running $HOSTCC.
	* g++.dg/compat/struct-layout-1.exp: Likewise.

From-SVN: r136698
2008-06-12 13:17:05 +02:00
Jakub Jelinek
c34938a8aa re PR middle-end/36506 (Broken #pragma omp sections reduction (+:x))
PR middle-end/36506
	* omp-low.c (expand_omp_sections): Handle #pragma omp sections with
	reductions.

	* testsuite/libgomp.c/reduction-5.c: New test.

From-SVN: r136696
2008-06-12 13:03:50 +02:00
Richard Guenther
b377855627 re PR tree-optimization/36345 (TBAA-pruning of points-to sets ineffective)
2008-06-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36345
	* tree-flow.h (struct ptr_info_def): Align escape_mask,
	add memory_tag_needed flag.
	(may_alias_p): Declare.
	* tree-ssa-alias.c (may_alias_p): Export.
	(set_initial_properties): Use memory_tag_needed flag.
	(update_reference_counts): Likewise.
	(reset_alias_info): Reset memory_tag_needed flag.
	(create_name_tags): Check memory_tag_needed flag.
	(dump_points_to_info_for): Dump it.
	* tree-ssa-structalias.c (struct variable_info): Remove
	directly_dereferenced flag.
	(new_var_info): Do not initialize it.
	(process_constraint_1): Do not set it.
	(update_alias_info): Set is_dereferenced flag.
	(set_uids_in_ptset): Use may_alias_p.
	(set_used_smts): Check memory_tag_needed flag.
	(find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
	* tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
	memory_tag_needed flag.
	* tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
	from broken design.

	* gcc.c-torture/execute/20020619-1.c: Remove broken part of
	the testcase.

From-SVN: r136695
2008-06-12 10:21:45 +00:00
Paolo Carlini
3fd29fa912 complex (pow(const complex<>&, int)): Do not define in C++0x mode, per DR 844.
2008-06-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/complex (pow(const complex<>&, int)): Do not define in
	C++0x mode, per DR 844.
	* include/tr1/complex (pow(const complex<>&, int)): Remove.
	* doc/xml/manual/intro.xml: Add an entry for DR 844.
	* testsuite/26_numerics/complex/dr844.cc: New.
	* testsuite/tr1/8_c_compatibility/complex/overloads_int.cc: Adjust.

From-SVN: r136694
2008-06-12 10:17:53 +00:00
Kai Tietz
394a378ca9 i386.c (ix86_compute_frame_layout): Disable red zone for w64 abi.
2008-06-11  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
	w64 abi.
	(ix86_expand_prologue): Likewise.
	(ix86_force_to_memory): Likewise.
	(ix86_free_from_memory): Likewise.

From-SVN: r136693
2008-06-12 11:19:35 +02:00
GCC Administrator
001c371924 Daily bump.
From-SVN: r136689
2008-06-12 00:17:22 +00:00
Paolo Carlini
64bd554cdc hashtable (_Hashtable<>::cbegin(size_type), [...]): Add per DR 691.
2008-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/tr1_impl/hashtable (_Hashtable<>::cbegin(size_type),
	cend(size_type)): Add per DR 691. 
	* testsuite/23_containers/unordered_map/requirements/cliterators.cc:
	New.
	* testsuite/23_containers/unordered_multimap/requirements/
	cliterators.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/cliterators.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	cliterators.cc: Likewise.
	* doc/xml/manual/intro.xml: Add an entry for DR 691.

From-SVN: r136685
2008-06-11 22:56:51 +00:00
Jakub Jelinek
5f836cbbc1 libgomp.h (struct gomp_task): Add in_tied_task field.
* libgomp.h (struct gomp_task): Add in_tied_task field.
	* task.c (gomp_init_task): Initialize it.
	(GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
	unconditionally.  Don't call gomp_team_barrier_wake if
	current task is implicit or if(0) from implicit and number of
	running tasks is equal to nthreads - 1.

From-SVN: r136682
2008-06-11 23:43:45 +02:00
Edmar Wienskoski
567f0b1791 re PR target/36425 (Option -mno-isel not working)
2008-06-11  Edmar Wienskoski  <edmar@freescale.com>

	PR target/36425
	* config/rs6000/rs6000.c (rs6000_override_options): Set
	rs6000_isel conditionally to the absence of comand line
	override.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
	Remove duplicate rs6000_isel setting.
	* config/rs6000/eabispe.h: Ditto.

testsuite:
2008-06-11  Edmar Wienskoski  <edmar@freescale.com>

	* gcc.target/powerpc/e500-1.c: New test case to verify
	mno-isel option.

From-SVN: r136681
2008-06-11 21:02:55 +01:00
Richard Guenther
4653cae5b8 alias.c (get_alias_set): Use the element alias-set for arrays.
2008-06-11  Richard Guenther  <rguenther@suse.de>

	* alias.c (get_alias_set): Use the element alias-set for arrays.
	(record_component_aliases): For arrays and vectors do nothing.
	* c-common.c (strict_aliasing_warning): Handle the cases
	of alias set zero explicitly.
	* Makefile.in (dfp.o-warn): Add -Wno-error.

From-SVN: r136679
2008-06-11 18:19:28 +00:00
Joseph Myers
8981c15b8c config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64 tune_32 tune_64.
* config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
	tune_32 tune_64.
	(i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
	tune_32 tune_64 to supported_defaults.  Allow values not
	supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
	x86_64.  Do not override cpu_32 or cpu_64 values from target name.
	(i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
	with_cpu_64 to generic for 64-bit-supporting configurations, not
	with_cpu.  Remove FIXMEs.
	* doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
	--with-arch-64, --with-tune-32, --with-tune-64): Document.
	* config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
	(OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
	arch_32 and arch_64.

From-SVN: r136674
2008-06-11 17:03:18 +01:00
Eric Botcazou
056c8faea0 builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
* builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
	Use DECL_SIZE_UNIT to retrieve the size of the field.


Co-Authored-By: Olivier Hainque <hainque@adacore.com>

From-SVN: r136673
2008-06-11 15:56:41 +00:00
Matthias Klose
2023be161a lock_error, once_flag: Remove empty directories.
2008-06-11  Matthias Klose  <doko@ubuntu.com>

        * testsuite/30_threads/lock_error, testsuite/30_threads/once_flag:
        Remove empty directories.

From-SVN: r136671
2008-06-11 15:33:30 +00:00
Joseph Myers
af06585ada arm.c (arm_init_neon_builtins): Move initialization with function calls after declarations.
* config/arm/arm.c (arm_init_neon_builtins): Move initialization
	with function calls after declarations.  Lay out
	neon_float_type_node before further use.

From-SVN: r136660
2008-06-11 11:51:34 +01:00
Bernhard Reutner-Fischer
10fbe77a10 tls.m4: Fix typos.
config:
	* tls.m4: Fix typos.

libgcc:
	* configure: Regenerate.

From-SVN: r136658
2008-06-11 11:57:11 +02:00
Richard Guenther
fd73537b31 tree-flow.h (may_point_to_global_var): Declare.
2008-06-11  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (may_point_to_global_var): Declare.
	* tree-ssa-alias.c (may_point_to_global_var): New function.
	* tree-ssa-sink.c (is_hidden_global_store): Use it.

From-SVN: r136657
2008-06-11 09:22:27 +00:00
Sa Liu
6717c5442e revert another accidental check-in
From-SVN: r136655
2008-06-11 08:34:50 +00:00
Jakub Jelinek
01501fc82c re PR libgomp/36471 (omp_get_ancestor_thread_num_8 has no implicit type.)
PR libgomp/36471
	* omp_lib.f90.in (omp_get_ancestor_thread_num_8,
	omp_get_team_size_8): Fix pastos.

From-SVN: r136654
2008-06-11 09:06:14 +02:00
Sa Liu
60c9cf8da6 Revert the accidental check-in that casued build error on SPU.
From-SVN: r136653
2008-06-11 06:55:31 +00:00
Jakub Jelinek
9de0e91616 re PR c++/36408 (ICE with statement expression in template)
PR c++/36408
	* semantics.c (stmt_expr_value_expr): Don't crash on empty
	STATEMENT_LIST.

From-SVN: r136651
2008-06-11 08:30:55 +02:00
Jakub Jelinek
976e44e324 re PR libgomp/36469 (bootstrap broken on HPUX PA)
PR libgomp/36469
	* configure.ac: Add AC_CHECK_FUNCS (strtoull).
	* configure: Regenerated.
	* config.h.in: Regenerated.
	* env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
	defined.

From-SVN: r136650
2008-06-11 08:27:04 +02:00
Jerry DeLisle
a1968bf9f3 cpp.c: Add copyright notice.
2008-06-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* cpp.c: Add copyright notice.
	* cpp.h: Add copyright notice.

From-SVN: r136649
2008-06-11 04:37:24 +00:00
Kazu Hirata
6b7b0ba1e4 configure.ac: Teach that fido supports .debug_line.
* configure.ac: Teach that fido supports .debug_line.
	* configure: Regenerate.

From-SVN: r136648
2008-06-11 03:08:10 +00:00
Tom Tromey
711b251097 c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file debug hook.
* c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
	debug hook.

From-SVN: r136647
2008-06-11 00:18:49 +00:00
GCC Administrator
87a04876a1 Daily bump.
From-SVN: r136645
2008-06-11 00:17:38 +00:00
Joseph Myers
bc6d4c3f08 dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
gcc:
	* dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
	(encode_decimal64, decode_decimal64, encode_decimal128,
	decode_decimal128): Reverse order of 32-bit parts of value if host
	and target endianness differ.

libdecnumber:
	* dconfig.h: New.
	* decContext.c, decExcept.c, decExcept.h, decLibrary.c,
	decNumber.c, decNumberLocal.h, decRound.c, dpd/decimal128.c,
	dpd/decimal32.c, dpd/decimal64.c: Include dconfig.h not config.h.
	* dpd/decimal128Local.h (decimal128SetSign, decimal128ClearSign,
	decimal128FlipSign): Use WORDS_BIGENDIAN not
	FLOAT_WORDS_BIG_ENDIAN.
	* bid/host-ieee128.c: Include dconfig.h.
	(__host_to_ieee_128, __ieee_to_host_128): Swap 64-bit halves of
	value if WORDS_BIGENDIAN.

libgcc:
	* Makefile.in (DECNUMINC): Remove
	-I$(MULTIBUILDTOP)../../libdecnumber.
	* gstdint.h: New.

From-SVN: r136641
2008-06-11 00:43:09 +01:00
Vinodha Ramasamy
0178d64465 value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
        * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
	Avoid division by 0.
	(tree_mod_pow2_value_transform): Likewise.
	(tree_ic_transform): Likewise.
	(tree_stringops_transform): Likewise.
	(tree_mod_subtract_transform): Likewise.
	* tree-inline-c (copy_bb): Corrected int type to gcov_type.
	(copy_edges_for_bb): Likewise.
	(initialize_cfun): Likewise.

From-SVN: r136639
2008-06-10 20:21:24 +00:00
Uros Bizjak
88b9490b33 i386.md (*btdi_rex64): Change operand 1 predicate to nonmemory_operand.
* config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
	nonmemory_operand. Add "N" operand constraint.
	(*btsi): Ditto.
	(*jcc_btdi_mask_rex64): New instruction and split pattern.
	(*jcc_btsi_mask): Ditto.
	(*jcc_btsi_mask_1): Ditto.

testsuite/ChangeLog:

	* gcc.target/i386/bt-mask-1.c: New test.
	* gcc.target/i386/bt-mask-2.c: Ditto.

From-SVN: r136636
2008-06-10 20:50:23 +02:00
Joseph Myers
0627bfb411 rs6000.c (build_opaque_vector_type): Set TYPE_CANONICAL for copied element type.
* config/rs6000/rs6000.c (build_opaque_vector_type): Set
	TYPE_CANONICAL for copied element type.

From-SVN: r136632
2008-06-10 18:12:43 +01:00
Olivier Hainque
12ae9b2623 utils.c (create_subprog_decl): If this is for the 'main' entry point according to the asm name...
* utils.c (create_subprog_decl): If this is for the 'main' entry
        point according to the asm name, redirect main_identifier_node.

From-SVN: r136619
2008-06-10 13:14:15 +00:00
Kai Tietz
c24aadf3fa Object.m (compare): Add type id.
2008-06-10  Kai Tietz  <kai.tietz@onevision.com>

	* Object.m (compare): Add type id.
	* objc/Object.h: Likewise.
	* archive.c (objc_read_class): Use size_t to extend version to be
	size of pointer scalar width.
	* sendmsg.c (rtx): Undefine it before redefinition.
	(__objc_print_dtable_stats): Cast arguments to long as intended.

From-SVN: r136617
2008-06-10 14:37:51 +02:00
Uros Bizjak
33ee581000 re PR target/36473 (Generate bit test (bt) instructions)
PR target/36473
	* config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
	Add m_CORE2 and m_GENERIC.
	* config/i386/predicates.md (bt_comparison_operator): New predicate.
	* config/i386/i386.md (*btdi_rex64): New instruction pattern.
	(*btsi): Ditto.
	(*jcc_btdi_rex64): New instruction and split pattern.
	(*jcc_btsi): Ditto.
	(*jcc_btsi_1): Ditto.
	(*btsq): Fix Intel asm dialect operand order.
	(*btrq): Ditto.
	(*btcq): Ditto.

testsuite/ChangeLog:

	PR target/36473
	* testsuite/gcc.target/i386/bt-1.c: New test.
	* testsuite/gcc.target/i386/bt-2.c: Ditto.

From-SVN: r136615
2008-06-10 12:29:36 +02:00
GCC Administrator
f1ebbb579c Daily bump.
From-SVN: r136609
2008-06-10 00:17:27 +00:00
Andy Hutchinson
ce80a05bf6 * gcc.c-torture/execute/builtins/lib/chk.c: Only include sys/types.h for unix to check for uClibc.
From-SVN: r136605
2008-06-09 22:56:35 +00:00
Andy Hutchinson
ab7481394a re PR testsuite/36285 (gcc.dg/compat/struct-by-value-xxx improper test for AVR target)
PR testsuite/36285
* gcc.dg/compat/struct-return-10_y.c: Remove test_va.
* gcc.dg/compat/vector-defs.h: Add check for availability of 8 byte double.
* gcc.dg/compat/struct-layout-1_test.h: Change bitfield to match integer size.

From-SVN: r136604
2008-06-09 22:48:37 +00:00
Andy Hutchinson
3115c00d85 re PR middle-end/36447 (simplify_subreg ICE with right shift more than length type AVR)
PR middle-end/36447
* simplify-rtx.c (simplify_subreg): Add check for shift count greater than size.

From-SVN: r136602
2008-06-09 22:38:34 +00:00
Joseph Myers
5cb0cd01c1 pr34856.c: Condition use of -maltivec on powerpc_altivec_ok.
* gcc.dg/pr34856.c: Condition use of -maltivec on
	powerpc_altivec_ok.  Use -w on other powerpc*-*-linux*.

From-SVN: r136601
2008-06-09 22:11:40 +01:00
Richard Sandiford
21dfc6dc74 md.texi: Synchronize with later constraints.md change.
gcc/
	* doc/md.texi: Synchronize with later constraints.md change.
	* longlong.h (umul_ppmm): Replace the MIPS asm implementation
	with a C implementation.
	* config/mips/mips.c (mips_legitimize_move): Remove MFHI and
	MFLO handling.
	(mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
	(mips_split_doubleword_move): Use special MTHI and MFHI instructions
	when moving to and from MD_REGNUM.
	(mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
	Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
	Handle byte and halfword moves.
	(mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
	separately.
	* config/mips/constraints.md (h): Turn into NO_REGS.
	(l, x): Update documentation.
	* config/mips/mips.md (UNSPEC_MFHILO): Delete.
	(UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
	(UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
	(HILO): New mode iterator.
	(MOVE128): Add TI.
	(any_div): New code iterator.
	(u): Extend code attribute to div and udiv.
	(*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
	d_operand in the splitters.  Remove redundant CONST_INT checks.
	(mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
	(*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
	(*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
	accordingly, using normal moves instead of unspecs to move LO into
	a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
	(<u>mulsidi3): Handle expansion in C code.
	(<u>mulsidi3_32bit_internal): Rename to...
	(<u>mulsidi3_32bit): ...this.
	(<u>mulsidi3_32bit_r4000): Fix insn separator.
	(*<u>mulsidi3_64bit): Rename to...
	(<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
	into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
	to set LO and HI to the multiplication result.  Use a normal move
	for MFLO and an unspec for MFHI.
	(*<u>mulsidi3_64bit_parts): Replace with...
	(<u>mulsidi3_64bit_hilo): ...this new instruction.
	(<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
	(<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
	and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
	instead of HI.  Split the instruction into a separate multiplication
	and MFHI if !TARGET_FIX_R4000.
	(<su>muldi3_highpart): Likewise.
	(<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
	and the "=h" clobber.
	(*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
	(<u>mulditi3): New expander.
	(<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
	(madsi): Remove "=h" clobber.
	(divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
	Force the modulus result to be a GPR and split the instruction into
	a division followed by an MFHI after reload.
	(<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
	(*lea_high64): Use d_operand in the define_peephole2.  Likewise
	the MIPS16 HIGH define_split.
	(*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
	of acc<->gpr moves to "multi".
	(*movdi_64bit): Replace the single "x" alternative with
	alternatives for moving into and out of "a".
	(*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
	(*movsi_internal): Extend the "d<-A" alternative to "d<-a".
	(*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
	Use d_operand in the splitters.  Remove redundant CONST_INT checks.
	(*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
	(movti): New expander.
	(*movti, *movti_mips16): New insns.
	(mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
	(mfhi<GPR:mode>_<HILO:mode>): New pattern.
	(mthi<GPR:mode>_<HILO:mode>): Likewise.
	* config/mips/predicates.md (fpr_operand): Delete.
	(d_operand): New predicate.

gcc/testsuite/
	* gcc.dg/torture/mips-hilo-1.c: Delete.
	* gcc.target/mips/pr35232.c: Likewise.
	* gcc.target/mips/fix-vr4130-1.c: Use modulus to create an mfhi.
	* gcc.target/mips/fix-vr4130-3.c: Likewise.
	* gcc.target/mips/int-moves-1.c: New test.
	* gcc.target/mips/int-moves-2.c: Likewise.
	* gcc.target/mips/fix-r4000-1.c: Likewise.
	* gcc.target/mips/fix-r4000-2.c: Likewise.
	* gcc.target/mips/fix-r4000-3.c: Likewise.
	* gcc.target/mips/fix-r4000-4.c: Likewise.
	* gcc.target/mips/fix-r4000-5.c: Likewise.
	* gcc.target/mips/fix-r4000-6.c: Likewise.
	* gcc.target/mips/fix-r4000-7.c: Likewise.
	* gcc.target/mips/fix-r4000-8.c: Likewise.
	* gcc.target/mips/fix-r4000-9.c: Likewise.
	* gcc.target/mips/fix-r4000-10.c: Likewise.
	* gcc.target/mips/fix-r4000-11.c: Likewise.
	* gcc.target/mips/fix-r4000-12.c: Likewise.
	* gcc.target/mips/timode-1.c: Likewise.
	* gcc.target/mips/timode-2.c: Likewise.

From-SVN: r136600
2008-06-09 20:45:56 +00:00