(cond [(and (eq_attr "alternative" "0")
(not (match_test "TARGET_OPT_AGU")))
(const_string "alu")
- (match_operand:<MODE> 2 "const0_operand")
+ (match_operand 2 "const0_operand")
(const_string "imov")
]
(const_string "lea")))
(clobber (mem:BLK (scratch)))]
""
{
- if (operands[2] == CONST0_RTX (<MODE>mode))
+ if (get_attr_type (insn) == TYPE_IMOV)
return "mov{<imodesuffix>}\t{%1, %0|%0, %1}";
else
{
return "lea{<imodesuffix>}\t{%E2, %0|%0, %E2}";
}
}
- [(set (attr "length_immediate")
+ [(set (attr "type")
+ (cond [(match_operand 2 "const0_operand")
+ (const_string "imov")
+ ]
+ (const_string "lea")))
+ (set (attr "length_immediate")
(cond [(eq_attr "type" "imov")
(const_string "0")
]
(const_string "*")))
(set_attr "mode" "<MODE>")])
+(define_peephole2
+ [(parallel
+ [(set (match_operand:P 0 "register_operand")
+ (plus:P (match_dup 0)
+ (match_operand:P 1 "<nonmemory_operand>")))
+ (clobber (mem:BLK (scratch)))])]
+ "peep2_regno_dead_p (0, FLAGS_REG)"
+ [(parallel
+ [(set (match_dup 0)
+ (plus:P (match_dup 0) (match_dup 1)))
+ (clobber (reg:CC FLAGS_REG))
+ (clobber (mem:BLK (scratch)))])])
+
(define_insn "@pro_epilogue_adjust_stack_sub_<mode>"
[(set (match_operand:P 0 "register_operand" "=r")
(minus:P (match_operand:P 1 "register_operand" "0")