Commit Graph

14228 Commits

Author SHA1 Message Date
Diego Novillo 6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Aldy Hernandez 6a599451a5 spe.md (spe_evneg): Rename to negv2si2.
* config/rs6000/spe.md (spe_evneg): Rename to negv2si2.

	* config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
	negv2si2.

From-SVN: r81724
2004-05-11 23:41:08 +00:00
Fariborz Jahanian 7958a2a62b Fixed problem related to vec_ld in c++ mode.
Approved by Aldy Hernandez.

From-SVN: r81715
2004-05-11 20:28:12 +00:00
Andrew Pinski 78f59f3e9c re PR target/14063 (conditional around vec_dss() call disappears at -O2)
2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>

        PR target/14063
        * config/rs6000/altivec.md (altivec_dssall):
        Change to unspec_volatile.
        (altivec_dss): Likewise.

From-SVN: r81694
2004-05-10 21:22:05 -07:00
Aldy Hernandez 39302b6a85 altivec.md ("one_cmplv16qi2"): Change vnot to vnor.
* config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
	vnor.
	("one_cmplv8hi2"): Same.
	("one_cmplv4si2"): Same.

From-SVN: r81693
2004-05-11 03:29:57 +00:00
Kaz Kojima 726d4cb79c re PR target/15130 ([3.3/3.4][sh4-linux] miscompilation with -O2)
PR target/15130
	* config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
	* config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
	into account.  Compute the correct number of general registers
	for the return value.  Generate a special push/pop sequence when
	failing to get a temporary register for non SHmedia epilogue.
	(sh_expand_epilogue): Add an argument to show whether it's for
	sibcall or not.  Set the 3rd argument of output_stack_adjust to
	-1 if needed.
	(sh_need_epilogue): Call sh_expand_epilogue with 0.
	* config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
	with 1.
	(epilogue): Call sh_expand_epilogue with 0.

From-SVN: r81683
2004-05-10 23:25:13 +00:00
Ziemowit Laski 16cfa3dc57 altivec.h (vec_sld): Add overloads for argument/return types of 'vector bool int'...
[gcc/ChangeLog]
2004-05-10  Ziemowit Laski  <zlaski@apple.com>

        * config/rs6000/altivec.h (vec_sld): Add overloads for
        argument/return types of 'vector bool int', 'vector bool short'
        and 'vector bool char'.

[gcc/testsuite/ChangeLog]
2004-05-10  Ziemowit Laski  <zlaski@apple.com>

        * g++.dg/ext/altivec-8.C: New test case.
        * gcc.dg/altivec-13.c: New test case.

From-SVN: r81681
2004-05-10 22:21:44 +00:00
Richard Sandiford 62d4592363 read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted, treating missing ones as "".
* read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
	treating missing ones as "".
	* config/mips/mips.md: Remove constraints from match_operands and
	match_scratches if they appear in define_expands (except reload*),
	define_peephole2s, define_splits or attribute specifications.
	* config/mips/7000.md, config/mips/sb1.md: Remove match_operand
	constraint strings.

From-SVN: r81676
2004-05-10 18:35:43 +00:00
Alan Modra b2d04ecff8 rs6000.c (function_arg_boundary): Always align AltiVec vectors.
* config/rs6000/rs6000.c (function_arg_boundary): Always align
	AltiVec vectors.
	(function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
	vectors by refererence.  Align the same for TARGET_64BIT to a 16
	byte boundary.  Remove useless code.  Add function comment.
	(function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
	call to where it belongs.
	(function_arg_partial_nregs): Return true for all TARGET_32BIT
	-mabi=no-altivec AltiVec vectors.  Fix debug output.
	(rs6000_va_arg): Adjust for AltiVec change.

From-SVN: r81666
2004-05-10 23:56:50 +09:30
Paul Brook b668593951 arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
* config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (TARGET_AAPCS_BASED): Define.
	(TARGET_DOUBLEWORD_ALIGN): Use it.
	(WCHAR_TYPE): Define.
	(WCHAR_SIZE_TYPE): Define.
	(SIZE_TYPE): Define.

From-SVN: r81665
2004-05-10 13:39:20 +00:00
Alan Modra 4ed785458b rs6000.c (function_arg_boundary): Align for ABI_V4 when size is 8 bytes.
* config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
	when size is 8 bytes.
	(function_arg_advance): Account for stack space used by AltiVec
	args when -mabi=altivec.  Simplify alignment calculations.  For
	ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
	(function_arg): Similarly.
	(function_arg_pass_by_reference): True for ABI_V4 AltiVec when
	not AltiVec ABI.
	(rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
	Correct alignment, and align before testing reg count.  Remove
	TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
	(rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
	TARGET_FPRS here..
	(rs6000_function_value): .. not here before call.

From-SVN: r81659
2004-05-10 09:18:37 +09:30
Aldy Hernandez f350ff0033 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
From-SVN: r81656
2004-05-09 22:32:31 +00:00
Aldy Hernandez 2aa4498c50 * config/rs6000/rs6000-protos.h
(rs6000_conditional_register_usage): Protoize.

	* config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.

	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
	function.

From-SVN: r81650
2004-05-09 14:32:49 +00:00
Aldy Hernandez 0d1fbc8c8f rs6000-protos.h (rs6000_hard_regno_mode_ok_p): Declare.
* config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
	Declare.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
	(rs6000_hard_regno_mode_ok): New.
	(rs6000_init_hard_regno_mode_ok): New.
	(rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.

	* config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
	result.

From-SVN: r81642
2004-05-08 17:08:51 +00:00
Ziemowit Laski f95d927202 altivec.h (vector, [...]): Do not define as macros #ifdef __APPLE_ALTIVEC__.
2004-05-07  Ziemowit Laski  <zlaski@apple.com>

        * config/rs6000/altivec.h (vector, pixel, bool): Do not
        define as macros #ifdef __APPLE_ALTIVEC__.

From-SVN: r81641
2004-05-08 05:02:55 +00:00
Fariborz Jahanian 36a454e1f1 Fixed altivec vararg problem.
Approved by Aldy Hernandez.

From-SVN: r81635
2004-05-07 23:00:39 +00:00
Richard Sandiford f7dbd2895e mips.c (mips_va_arg): Fix calculation of osize for EABI_FLOAT_VARARGS_P.
* config/mips/mips.c (mips_va_arg): Fix calculation of osize for
	EABI_FLOAT_VARARGS_P.

From-SVN: r81625
2004-05-07 15:09:23 +00:00
Richard Sandiford 5c8a81d5a8 mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
* config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
	* config/mips/mips.c (override_options): Disable branch likely
	instructions if TUNE_MIPS5500.

From-SVN: r81624
2004-05-07 15:06:16 +00:00
Richard Sandiford 9045f39a0e mips.c (override_options): Allow the hi and lo registers to store any integral mode, not just MODE_INTs.
* config/mips/mips.c (override_options): Allow the hi and lo registers
	to store any integral mode, not just MODE_INTs.

From-SVN: r81623
2004-05-07 15:03:31 +00:00
Uros Bizjak 2484cc35b0 i386.c (ix86_emit_fp_unordered_jump): Use testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2004-05-07  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
	testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.

From-SVN: r81620
2004-05-07 14:29:41 +00:00
Eric Botcazou bfb23806b8 sparc-protos.h (sparc_skip_caller_unimp): New declaration.
* config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
	declaration.
	* config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
	(sparc_skip_caller_unimp): New global variable.
	(sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
	Use it instead of SKIP_CALLERS_UNIMP_P.
	* config/sparc/sparc.md (call expander): Add sanity check.
	(call_address_struct_value_sp32): Re-sync with expander.
	(call_symbolic_struct_value_sp32): Likewise.
	(return peepholes): Use 'sparc_skip_caller_unimp' instead
	of custom predicate.

From-SVN: r81617
2004-05-07 11:40:42 +00:00
Uros Bizjak c2fcfa4ff8 optabs.h (enum optab_index): Add new OTI_log1p.
* optabs.h (enum optab_index): Add new OTI_log1p.
	(log1p_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize log1p_optab.
	* genopinit.c (optabs): Implement log1p_optab using log1p?f2
	patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
	using log1p_optab.
	(expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
	expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.

	* config/i386/i386.c (ix86_emit_i387_log1p): New function.
	* config/i386/i386-protos.h (ix86_emit_i387_log1p):
	Prototype here.
	* config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
	x87's fyl2xp1 instruction.
	(*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
	(fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
	(log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
	log1p  and log1pl built-ins as inline x87 intrinsics.

	* testsuite/gcc.dg/builtins-33.c:  Also check log1p*.

From-SVN: r81606
2004-05-07 07:38:21 +02:00
Loren J. Rittle 4d980568a6 freebsd.h (SUBTARGET_EXTRA_SPECS): Pass -Werror.
* config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Pass -Werror.
	* config/arm/freebsd.h: Likewise.
	* config/ia64/freebsd.h: Likewise.
	* config/sparc/freebsd.h: Likewise.

From-SVN: r81602
2004-05-07 03:45:03 +00:00
John David Anglin 9acf97b6e8 re PR target/15202 ([3.4 only] ICE in reload_cse_simplify_operands, at postreload.c)
PR target/15202
	* pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
	register to general register.

From-SVN: r81598
2004-05-07 03:09:15 +00:00
Alan Modra 19fb36e323 rs6000.h (STACK_BOUNDARY): Use 128 bit for either TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
* config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
	TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
	* config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
	(STACK_BOUNDARY): Delete.

From-SVN: r81597
2004-05-07 11:31:13 +09:30
Richard Sandiford dc884a86d3 invoke.texi: Document -mvr4130-align.
* doc/invoke.texi: Document -mvr4130-align.
	* config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
	(TUNE_MIPS4120, TUNE_MIPS4130): New macros.
	(TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
	(TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
	* config/mips/mips.md: Include sched-int.h.
	(USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
	(mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
	(override_options): Enable -mvr4130-align at -O3 and above.
	(mips_sim_insn): New variable.
	(mips_sim): New structure.
	(mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
	(mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
	(mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
	(mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
	(vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
	(mips_reorg): Call vr4130_align_insns.
	(vr4130_last_insn): New variable.
	(vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
	(vr4130_swap_insns_p, vr4130_reorder): New functions.
	(mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
	(mips_issue_rate): Return 2 for PROCESSOR_R4130.
	(mips_use_dfa_pipeline_interface): Return true for the same.
	* config/mips/4130.md: New file.
	* config/mips/mips.md: Include it.  Add a peephole2 to convert
	"mult;mflo" into "mtlo;macc".
	(*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
	target of maccs.
	(*msac_using_macc): New pattern.

From-SVN: r81567
2004-05-06 15:27:19 +00:00
Richard Sandiford 615ccdd358 5500.md (ir_vr55_store): Set latency to 0.
* config/mips/5500.md (ir_vr55_store): Set latency to 0.
	(ir_vr55_hilo): Split into...
	(ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
	(ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
	(ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
	Add various multiplication bypasses.
	* config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
	multiplication.

From-SVN: r81557
2004-05-06 09:20:44 +00:00
Uros Bizjak 152e35652a i386.md (*fscalexf4): Correct insn "mode" attribute to "XF".
* config/i386/i386.md (*fscalexf4): Correct insn "mode"
        attribute to "XF".

From-SVN: r81556
2004-05-06 08:00:03 +02:00
Uros Bizjak 5ae27cfaed optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
* optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
        (fmod_optab): Define corresponding macros.
        * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
        * genopinit.c (optabs): Implement fmod_optab and drem_optab
        using fmod?f3 and drem?f3 patterns.
        * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
        using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
        (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
        BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
        flag_unsafe_math_optimizations is set.

        * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
        UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.

        * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
        * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
        Prototype here.
        * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
        UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
        fprem and fprem1 instructions.
        (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
        Rename insn definition to x86_fnstsw_1.
        (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
        x87 instructions.
        (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
        and fmodl built-ins as inline x87 intrinsics.
        (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
        and dreml built-ins as inline x87 intrinsics.

        * testsuite/gcc.dg/builtins-40.c: New test.

From-SVN: r81555
2004-05-06 07:19:24 +02:00
Chris Demetriou 4a6f766df4 mips.md: Update the msub define_split for new mflo/mfhi representation.
2004-05-05  Chris Demetriou  <cgd@broadcom.com>

        * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
        representation.

From-SVN: r81544
2004-05-05 16:15:27 -07:00
Paul Brook fdd695fdb4 arm-protots.h (vfp_mem_operand): Rename ...
* config/arm/arm-protots.h (vfp_mem_operand): Rename ...
	(arm_coproc_mem_operand): ... To this.
	* config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
	(arm_legitimate_index_p): Ditto.
	(vfp_mem_operand): Rename ...
	(arm_coproc_mem_operand): ... To this.  Handle writeback modes.
	(vfp_secondary_reload_class): Use it.
	(output_move_double): Use doubleword load/store instructions.
	(arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
	* config/arm/arm.h (TARGET_LDRD): Define.
	(EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
	* config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
	New splitter for invalid doubleword loads.
	* config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
	* config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
	* doc/md.texi: Document Uy constraint.

From-SVN: r81543
2004-05-05 23:11:55 +00:00
H.J. Lu 9953b5e1f7 re PR target/15290 (__float128 failed to pass to function properly)
2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/15290
	* config/i386/i386.c (ix86_split_to_parts): Use real_to_target
	instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.

From-SVN: r81537
2004-05-05 13:17:08 -07:00
Mike Stump e3c287c9f3 darwin-c.c (add_framework): Copy the directory name as it can be freed later.
* config/darwin-c.c (add_framework): Copy the directory name as it
	can be freed later.  Also, ensure we always allocate enough room
	for the cached framework information.
	(find_subframework_header): Keep track of the directory where the
	subframework header was found.
	(framework_construct_pathname): Speed up by not trying to re-add a
	framework.
	* cppfiles.c (search_path_exhausted): Arrange for the missing
	header callback to be able to set the directory where the header
	was found.
	(cpp_get_dir): Add.
	* cpplib.h (missing_header_cb): Add a parameter.
	(cpp_get_dir): Add.

From-SVN: r81534
2004-05-05 18:25:52 +00:00
Steven Bosscher bb8a619e12 basic-block.h (free_basic_block_vars): Update prototype.
* basic-block.h (free_basic_block_vars): Update prototype.
	* flow.c (free_basic_block_vars): Remove the keep_head_end_p
	argument.
	(life_analysis): Update call.
	* ifcvt.c (if_convert): Likewise.
	* passes.c (rest_of_handle_final): Likewise.
	(rest_of_compilation): Likewise.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.

	* emit-rtl.c (next_real_insn): Use INSN_P.
	(prev_real_insn): Likewise.

From-SVN: r81520
2004-05-05 10:53:00 +00:00
Eric Christopher 2e592dceb5 mips.md: Update the madd define_split for new mflo/mfhi representation.
* config/mips/mips.md: Update the madd define_split for new mflo/mfhi
	representation.

From-SVN: r81514
2004-05-05 08:37:30 +00:00
Paolo Bonzini 7c62e9932f rs6000.c (build_opaque_vector_type): New function.
2004-05-05  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/rs6000.c (build_opaque_vector_type):
	New function.
	(rs6000_init_builtins): Use it.

From-SVN: r81509
2004-05-05 07:42:52 +00:00
Chris Demetriou 6fc8a30a41 mips.c (override_options): Default to no generation of branch-likely operations when...
2004-05-04  Chris Demetriou  <cgd@broadcom.com>

        * config/mips/mips.c (override_options): Default to no
        generation of branch-likely operations when tuning for
        CPUs where they tend to have a negative performance impact
        (e.g., SB-1).

From-SVN: r81494
2004-05-04 16:57:42 -07:00
H.J. Lu c6c8779bfc t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
	* config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
	* config/t-linux (LIB2ADDEHDEP): Likewise.

From-SVN: r81478
2004-05-04 09:09:38 -07:00
Paul Brook 82c732f970 crti.asm: Push an even number of registers.
* config/arm/crti.asm: Push an even number of registers.
	* config/arm/crtn.asm: And restore them.  Load via sp.

From-SVN: r81473
2004-05-04 11:33:56 +00:00
Aldy Hernandez d8ecbcdb20 rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
* config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.

	* config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
	rs6000_hard_regno_nregs.

From-SVN: r81467
2004-05-04 02:24:51 +00:00
Eric Christopher 2f7e5a0df0 s390.c (s390_emit_prologue): Call unspec tpf prologue insn instead of setting up call.
2004-05-03  Eric Christopher  <echristo@redhat.com>

        * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
        prologue insn instead of setting up call.
        (s390_emit_epilogue): Ditto.
        * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
        (define_constants): Add numbers for above patterns.

From-SVN: r81466
2004-05-04 01:20:40 +00:00
Eric Christopher 38899e29e5 s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
2004-05-03  Eric Christopher  <echristo@redhat.com>

	* config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
	* config/s390/s390.c (s390_conditional_register_usage): ...here.
	* config/s390/s390-protos.h: Prototype.

From-SVN: r81465
2004-05-04 01:16:47 +00:00
Eric Christopher 03a53989d1 mips.md: Fix branch length attribute definition.
2004-05-03  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md: Fix branch length attribute definition.

From-SVN: r81457
2004-05-03 22:28:55 +00:00
Aldy Hernandez 318fec6d1f config.gcc: Remove --enable-altivec support.
* config.gcc: Remove --enable-altivec support.

	* config/rs6000/altivec-defs.h: Remove.

From-SVN: r81456
2004-05-03 21:29:15 +00:00
Uros Bizjak 6adcf89d9a i386.md (*fyl2x_sfxf3, [...]): Remove insn definition.
* config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
        definition.
        (log?f2, log10?f2, log2?f2): Reimplement expanders with
        float_truncate insn.
        (*fxtractsf3, *fxtractdf3): Remove insn definition.
        (logb?f2): Reimplement expanders with float_truncate insn.

From-SVN: r81432
2004-05-03 15:20:57 +02:00
Eric Botcazou 178af0f390 config.gcc (sparc64-*-solaris2*, [...]): Add tm-dwarf2.h to tm_file.
* config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
	tm-dwarf2.h to tm_file.
	(sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
	* config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
	(ASM_DEBUG_SPEC): Delete.

Co-Authored-By: Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>

From-SVN: r81428
2004-05-03 10:24:02 +00:00
Uros Bizjak 7a8e07c7d1 optabs.h (enum optab_index): Add new OTI_expm1.
2004-05-03  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_expm1.
	(expm1_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize expm1_optab.
	* genopinit.c (optabs): Implement expm1_optab using expm1?f2
	patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
	using expm1_optab.
	(expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
	expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
	to implement expm1, expm1f and expm1l built-ins as inline x87
	intrinsics.

testsuite:

        * gcc.dg/builtins-34.c: Also check expm1*.

From-SVN: r81425
2004-05-03 07:31:45 +02:00
Alexandre Oliva 5f2b959917 frv.md (*return_true, [...]): New patterns.
2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv.md (*return_true, *return_false): New patterns.

From-SVN: r81424
2004-05-03 02:16:16 +00:00
Alexandre Oliva 764678d17d frv-protos.h (frv_expand_epilogue, [...]): Add bool argument.
* config/frv/frv-protos.h (frv_expand_epilogue,
frv_expand_fdpic_call): Add bool argument.
* config/frv/frv.c (frv_function_ok_for_sibcall): New.
(TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
(frv_expand_epilogue): Use new argument to decide whether to emit
return instruction or copy the return address to LR.
(frv_expand_fdpic_call): Inline PLT entry when emitting direct
sibcalls.
(sibcall_operand): New.
* config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
PLUS nor LABEL_REF.  Add sibcall_operand.
* config/frv/frv.md (call, call_value): Pass false to
frv_expand_fdpic_call.
(call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
(sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
sibcall_value_internal, sibcall_value_fdpicdi): New.
(return_unsigned_true, return_unsigned_false): New.
(epilogue): Adjust call to frv_expand_epilogue.
(sibcall_epilogue): New.

From-SVN: r81405
2004-05-02 04:57:47 +00:00
Alexandre Oliva afbe7e61fe frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
* config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
(CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
before redefining them.

From-SVN: r81404
2004-05-02 04:50:04 +00:00