Commit 08075ead by David Edelsohn

movdf 64bit and movdi matcher 64bit

From-SVN: r11119
parent ac2a93a1
......@@ -5143,6 +5143,23 @@
if (GET_CODE (operands[0]) != REG)
operands[1] = force_reg (DFmode, operands[1]);
/* Stores between FPR and any non-FPR registers must go through a
temporary stack slot. */
if (TARGET_POWERPC64
&& GET_CODE (operands[0]) == REG && GET_CODE (operands[1]) == REG
&& ((FP_REGNO_P (REGNO (operands[0]))
&& ! FP_REGNO_P (REGNO (operands[1])))
|| (FP_REGNO_P (REGNO (operands[1]))
&& ! FP_REGNO_P (REGNO (operands[0])))))
{
rtx stack_slot = assign_stack_temp (DFmode, 8, 0);
emit_move_insn (stack_slot, operands[1]);
emit_move_insn (operands[0], stack_slot);
DONE;
}
if (CONSTANT_P (operands[1]) && ! easy_fp_constant (operands[1], DFmode))
{
operands[1] = force_const_mem (DFmode, operands[1]);
......@@ -5374,8 +5391,8 @@
(set_attr "length" "8,8,8,*,*,*")])
(define_insn ""
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,f,f,m,r,*h")
(match_operand:DI 1 "input_operand" "r,m,r,I,J,R,f,m,f,*h,r"))]
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,f,f,m,r,*h,*h")
(match_operand:DI 1 "input_operand" "r,m,r,I,J,R,f,m,f,*h,r,0"))]
"TARGET_POWERPC64 && (gpc_reg_operand (operands[0], DImode)
|| gpc_reg_operand (operands[1], DImode))"
"@
......@@ -5389,8 +5406,18 @@
lfd%U1%X1 %0,%1
stfd%U0%X0 %1,%0
mf%1 %0
mt%0 %1"
[(set_attr "type" "*,load,*,*,*,*,fp,fpload,*,*,mtjmpr")])
mt%0 %1
cror 0,0,0"
[(set_attr "type" "*,load,*,*,*,*,fp,fpload,*,*,mtjmpr,*")])
(define_insn ""
[(set (match_operand:CC 2 "cc_reg_operand" "=x")
(compare:CC (match_operand:DI 1 "gpc_reg_operand" "r")
(const_int 0)))
(set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))]
"TARGET_POWERPC64"
"mr. %0,%1"
[(set_attr "type" "compare")])
;; TImode is similar, except that we usually want to compute the address into
;; a register and use lsi/stsi (the exception is during reload). MQ is also
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment