From: Richard Kenner Date: Thu, 23 Jun 1994 23:19:33 +0000 (-0400) Subject: (fix_truncdfsi2, movsf, movdi): Use assign_stack_temp. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=425c176f742d2629288b9f3211310cf3f806d051;p=gcc.git (fix_truncdfsi2, movsf, movdi): Use assign_stack_temp. (mulsidi3): Add earlyclobber constraint modifier to PowerPC version and !TARGET_POWERPC64 to final condition. From-SVN: r7548 --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index ee9b8d64867..1f287253605 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -3094,10 +3094,10 @@ { if (TARGET_POWER2 || TARGET_POWERPC) { - rtx stack_slot, temp = gen_reg_rtx (DImode); + rtx stack_slot = assign_stack_temp (DImode, 8, 0), + temp = gen_reg_rtx (DImode); + emit_insn (gen_fpcvtsi (temp, operands[1])); - stack_slot = gen_rtx (MEM, DImode, - plus_constant (stack_pointer_rtx, 8)); emit_move_insn (stack_slot, temp); emit_move_insn (operands[0], operand_subword (stack_slot, 1, 0, DImode)); @@ -3288,10 +3288,10 @@ (set_attr "length" "8")]) (define_insn "" - [(set (match_operand:DI 0 "gpc_reg_operand" "=r") + [(set (match_operand:DI 0 "gpc_reg_operand" "=&r") (mult:DI (sign_extend:DI (match_operand:SI 1 "gpc_reg_operand" "%r")) (sign_extend:DI (match_operand:SI 2 "gpc_reg_operand" "r"))))] - "TARGET_POWERPC" + "TARGET_POWERPC && ! TARGET_POWERPC64" "mulhw %0,%1,%2\;mullw %L0,%1,%2" [(set_attr "type" "imul") (set_attr "length" "8")]) @@ -3763,7 +3763,7 @@ if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 32) { - rtx stack_slot; + rtx stack_slot = assign_stack_temp (SFmode, 4, 0); /* If this is a store to memory or another integer register do the move directly. Otherwise store to a temporary stack slot and @@ -3780,7 +3780,6 @@ DONE; } - stack_slot = gen_rtx (MEM, SFmode, plus_constant (stack_pointer_rtx, 4)); emit_move_insn (stack_slot, operands[1]); emit_move_insn (operands[0], stack_slot); DONE; @@ -3791,7 +3790,7 @@ if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) < 32) { - rtx stack_slot; + rtx stack_slot = assign_stack_temp (SFmode, 4, 0); if (GET_CODE (operands[1]) == MEM #if HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT && ! defined(REAL_IS_NOT_DOUBLE) @@ -3807,11 +3806,6 @@ DONE; } - if (reload_in_progress) - stack_slot = gen_rtx (MEM, SFmode, - plus_constant (stack_pointer_rtx, 4)); - else - stack_slot = assign_stack_temp (SFmode, 4, 0); emit_move_insn (stack_slot, operands[1]); emit_move_insn (operands[0], stack_slot); DONE; @@ -3981,13 +3975,8 @@ || (FP_REGNO_P (REGNO (operands[1])) && ! FP_REGNO_P (REGNO (operands[0]))))) { - rtx stack_slot; + rtx stack_slot = assign_stack_temp (DImode, 8, 0); - if (reload_in_progress) - stack_slot = gen_rtx (MEM, DImode, - plus_constant (stack_pointer_rtx, 8)); - else - stack_slot = assign_stack_temp (DImode, 8, 0); emit_move_insn (stack_slot, operands[1]); emit_move_insn (operands[0], stack_slot); DONE;