diff options
Diffstat (limited to 'gcc/config/h8300/h8300.md')
-rw-r--r-- | gcc/config/h8300/h8300.md | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 051b81fa693..e68e702b257 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -762,32 +762,34 @@ "" "") -(define_insn "" - [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,&r") - (plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,g") - (match_operand:HI 2 "nonmemory_operand" "L,N,n,r,r")))] +(define_insn "*addhi3_h8300" + [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,&r") + (plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,g") + (match_operand:HI 2 "nonmemory_operand" "L,N,J,n,r,r")))] "TARGET_H8300" "@ adds %2,%T0 subs %G2,%T0 + add.b %t2,%t0 add.b %s2,%s0\;addx %t2,%t0 add.w %T2,%T0 mov.w %T1,%T0\;add.w %T2,%T0" - [(set_attr "length" "2,2,4,2,6") - (set_attr "cc" "none_0hit,none_0hit,clobber,set_zn,set_zn")]) + [(set_attr "length" "2,2,2,4,2,6") + (set_attr "cc" "none_0hit,none_0hit,clobber,clobber,set_zn,set_zn")]) -(define_insn "" - [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") - (plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0") - (match_operand:HI 2 "nonmemory_operand" "L,N,n,r")))] +(define_insn "*addhi3_h8300hs" + [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") + (plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0") + (match_operand:HI 2 "nonmemory_operand" "L,N,J,n,r")))] "TARGET_H8300H || TARGET_H8300S" "@ adds %2,%S0 subs %G2,%S0 + add.b %t2,%t0 add.w %T2,%T0 add.w %T2,%T0" - [(set_attr "length" "2,2,4,2") - (set_attr "cc" "none_0hit,none_0hit,set_zn,set_zn")]) + [(set_attr "length" "2,2,2,4,2") + (set_attr "cc" "none_0hit,none_0hit,clobber,set_zn,set_zn")]) (define_split [(set (match_operand:HI 0 "register_operand" "") |