Commit 79924b0d authored by Doug Gilbert's avatar Doug Gilbert Committed by Patrick Williams

Add RTL to correctly handle unavailable lwzux instruction

parent 0c6c36e8
......@@ -8954,11 +8954,24 @@
(match_test "update_address_mem (operands[0], VOIDmode)")
(const_string "store_u")
(const_string "store")))])
(set_attr "length" "8")])
;; PPE42 lacks lwzux -> lwzx; then add
(define_insn "*movsi_internal3"
[(set (match_operand:SI 0 "rs6000_nonimmediate_operand" "=r")
(pre_modify:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(plus:SI (match_operand:SI 2 "gpc_reg_operand" "r")
(match_operand:SI 3 "gpc_reg_operand" "r")))))]
"!TARGET_SINGLE_FPU && (rs6000_cpu == PROCESSOR_PPE42) &&
REGNO (operands[1]) == REGNO (operands[2]) &&
(gpc_reg_operand (operands[1], SImode) || gpc_reg_operand (operands[0], SImode))"
"lwzx %0,%1,%3\;add %1,%2,%3 #lwzux %0,%1,%3"
[(set_attr_alternative "type"
[(const_string "load_ux")])
(set_attr "length" "8")])
(define_insn "*movsi_internal1"
[(set (match_operand:SI 0 "rs6000_nonimmediate_operand" "=r,r,r,m,r,r,r,r,*c*l,*h,*h")
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment