aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/h8300/h8300.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/h8300/h8300.md')
-rw-r--r--gcc/config/h8300/h8300.md26
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" "")