(peepholes for two DF load/store): New peepholes.
From-SVN: r8517
This commit is contained in:
parent
35068b435f
commit
4c70a4f326
1 changed files with 24 additions and 0 deletions
|
@ -4436,6 +4436,30 @@
|
|||
"@
|
||||
stfdux %3,%0,%2
|
||||
stfdu %3,%2(%0)")
|
||||
|
||||
;; Peephole to convert two consecutive FP loads or stores into lfq/stfq.
|
||||
|
||||
(define_peephole
|
||||
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
|
||||
(match_operand:DF 1 "memory_operand" ""))
|
||||
(set (match_operand:DF 2 "gpc_reg_operand" "=f")
|
||||
(match_operand:DF 3 "memory_operand" ""))]
|
||||
"TARGET_POWER2
|
||||
&& registers_ok_for_quad_peep (operands[0], operands[2])
|
||||
&& ! MEM_VOLATILE_P (operands[1]) && ! MEM_VOLATILE_P (operands[3])
|
||||
&& addrs_ok_for_quad_peep (XEXP (operands[1], 0), XEXP (operands[3], 0))"
|
||||
"lfq%U1%X1 %0,%1")
|
||||
|
||||
(define_peephole
|
||||
[(set (match_operand:DF 0 "memory_operand" "")
|
||||
(match_operand:DF 1 "gpc_reg_operand" "f"))
|
||||
(set (match_operand:DF 2 "memory_operand" "")
|
||||
(match_operand:DF 3 "gpc_reg_operand" "f"))]
|
||||
"TARGET_POWER2
|
||||
&& registers_ok_for_quad_peep (operands[1], operands[3])
|
||||
&& ! MEM_VOLATILE_P (operands[0]) && ! MEM_VOLATILE_P (operands[2])
|
||||
&& addrs_ok_for_quad_peep (XEXP (operands[0], 0), XEXP (operands[2], 0))"
|
||||
"stfq%U0%X0 %1,%0")
|
||||
|
||||
;; Next come insns related to the calling sequence.
|
||||
;;
|
||||
|
|
Loading…
Add table
Reference in a new issue