;; movqi
(define_insn "pushqi1_h8300"
- [(parallel [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int -2)))
- (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -1)))
- (match_operand:QI 0 "register_operand" "r"))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -2)))
+ (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -1)))
+ (match_operand:QI 0 "register_operand" "r"))]
"TARGET_H8300
&& operands[0] != stack_pointer_rtx"
"mov.w\\t%T0,@-r7"
[(set_attr "length" "2")])
(define_insn "pushqi1_h8300hs"
- [(parallel [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int -4)))
- (set (mem:QI (plus:SI (reg:SI SP_REG) (const_int -3)))
- (match_operand:QI 0 "register_operand" "r"))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int -4)))
+ (set (mem:QI (plus:SI (reg:SI SP_REG) (const_int -3)))
+ (match_operand:QI 0 "register_operand" "r"))]
"(TARGET_H8300H || TARGET_H8300S)
&& operands[0] != stack_pointer_rtx"
"mov.l\\t%S0,@-er7"
[(set_attr "length" "4")])
(define_insn "pushqi1_h8300hs_normal"
- [(parallel [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int -4)))
- (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -3)))
- (match_operand:QI 0 "register_operand" "r"))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -3)))
+ (match_operand:QI 0 "register_operand" "r"))]
"(TARGET_H8300H || TARGET_H8300S)
&& operands[0] != stack_pointer_rtx"
"mov.l\\t%S0,@-er7"
"")
(define_insn "pushhi1_h8300hs"
- [(parallel [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int -4)))
- (set (mem:HI (plus:SI (reg:SI SP_REG) (const_int -2)))
- (match_operand:HI 0 "register_operand" "r"))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int -4)))
+ (set (mem:HI (plus:SI (reg:SI SP_REG) (const_int -2)))
+ (match_operand:HI 0 "register_operand" "r"))]
"(TARGET_H8300H || TARGET_H8300S)
&& operands[0] != stack_pointer_rtx"
"mov.l\\t%S0,@-er7"
[(set_attr "length" "4")])
(define_insn "pushhi1_h8300hs_normal"
- [(parallel [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int -4)))
- (set (mem:HI (plus:HI (reg:HI SP_REG) (const_int -2)))
- (match_operand:HI 0 "register_operand" "r"))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (set (mem:HI (plus:HI (reg:HI SP_REG) (const_int -2)))
+ (match_operand:HI 0 "register_operand" "r"))]
"(TARGET_H8300H || TARGET_H8300S)
&& operands[0] != stack_pointer_rtx"
"mov.l\\t%S0,@-er7"
"")
(define_insn "stm_h8300s_2_advanced"
- [(parallel
- [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int -8)))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -8)))
- (match_operand:SI 1 "register_operand" ""))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int -8)))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -8)))
+ (match_operand:SI 1 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (2, operands)"
"stm.l\\t%S0-%S1,@-er7"
(set_attr "length" "4")])
(define_insn "stm_h8300s_2_normal"
- [(parallel
- [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int -8)))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -8)))
- (match_operand:SI 1 "register_operand" ""))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -8)))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -8)))
+ (match_operand:SI 1 "register_operand" ""))]
"TARGET_H8300S && TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (2, operands)"
"stm.l\\t%S0-%S1,@-er7"
}")
(define_insn "stm_h8300s_3_advanced"
- [(parallel
- [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int -12)))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -8)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -12)))
- (match_operand:SI 2 "register_operand" ""))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int -12)))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -8)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -12)))
+ (match_operand:SI 2 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (3, operands)"
"stm.l\\t%S0-%S2,@-er7"
(set_attr "length" "4")])
(define_insn "stm_h8300s_3_normal"
- [(parallel
- [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int -12)))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -8)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -12)))
- (match_operand:SI 2 "register_operand" ""))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -12)))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -8)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -12)))
+ (match_operand:SI 2 "register_operand" ""))]
"TARGET_H8300S && TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (3, operands)"
"stm.l\\t%S0-%S2,@-er7"
}")
(define_insn "stm_h8300s_4_advanced"
- [(parallel
- [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int -16)))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -8)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -12)))
- (match_operand:SI 2 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -16)))
- (match_operand:SI 3 "register_operand" ""))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int -16)))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -8)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -12)))
+ (match_operand:SI 2 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int -16)))
+ (match_operand:SI 3 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (4, operands)"
"stm.l\\t%S0-%S3,@-er7"
(set_attr "length" "4")])
(define_insn "stm_h8300s_4_normal"
- [(parallel
- [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int -16)))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -8)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -12)))
- (match_operand:SI 2 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -16)))
- (match_operand:SI 3 "register_operand" ""))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -16)))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -8)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -12)))
+ (match_operand:SI 2 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int -16)))
+ (match_operand:SI 3 "register_operand" ""))]
"TARGET_H8300S && TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (4, operands)"
"stm.l\\t%S0-%S3,@-er7"
}")
(define_insn "ldm_h8300s_2_advanced"
- [(parallel
- [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int 8)))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (reg:SI SP_REG))
- (match_operand:SI 1 "register_operand" ""))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int 8)))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (reg:SI SP_REG))
+ (match_operand:SI 1 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (2, operands)"
"ldm.l\\t@er7+,%S0-%S1"
(set_attr "length" "4")])
(define_insn "ldm_h8300s_2_normal"
- [(parallel
- [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int 8)))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 4)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (reg:HI SP_REG))
- (match_operand:SI 1 "register_operand" ""))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int 8)))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 4)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (reg:HI SP_REG))
+ (match_operand:SI 1 "register_operand" ""))]
"TARGET_H8300S && TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (2, operands)"
"ldm.l\\t@er7+,%S0-%S1"
}")
(define_insn "ldm_h8300s_3_advanced"
- [(parallel
- [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int 12)))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 8)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 4)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (reg:SI SP_REG))
- (match_operand:SI 2 "register_operand" ""))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int 12)))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 8)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 4)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (reg:SI SP_REG))
+ (match_operand:SI 2 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (3, operands)"
"ldm.l\\t@er7+,%S0-%S2"
(set_attr "length" "4")])
(define_insn "ldm_h8300s_3_normal"
- [(parallel
- [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int 12)))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 8)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 4)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (reg:HI SP_REG))
- (match_operand:SI 2 "register_operand" ""))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int 12)))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 8)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 4)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (reg:HI SP_REG))
+ (match_operand:SI 2 "register_operand" ""))]
"TARGET_H8300S && TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (3, operands)"
"ldm.l\\t@er7+,%S0-%S2"
}")
(define_insn "ldm_h8300s_4_advanced"
- [(parallel
- [(set (reg:SI SP_REG)
- (plus:SI (reg:SI SP_REG) (const_int 16)))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 12)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 8)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 4)))
- (match_operand:SI 2 "register_operand" ""))
- (set (mem:SI (reg:SI SP_REG))
- (match_operand:SI 3 "register_operand" ""))])]
+ [(set (reg:SI SP_REG)
+ (plus:SI (reg:SI SP_REG) (const_int 16)))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 12)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 8)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (plus:SI (reg:SI SP_REG) (const_int 4)))
+ (match_operand:SI 2 "register_operand" ""))
+ (set (mem:SI (reg:SI SP_REG))
+ (match_operand:SI 3 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (4, operands)"
"ldm.l\\t@er7+,%S0-%S3"
(set_attr "length" "4")])
(define_insn "ldm_h8300s_4_normal"
- [(parallel
- [(set (reg:HI SP_REG)
- (plus:HI (reg:HI SP_REG) (const_int 16)))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 12)))
- (match_operand:SI 0 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 8)))
- (match_operand:SI 1 "register_operand" ""))
- (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 4)))
- (match_operand:SI 2 "register_operand" ""))
- (set (mem:SI (reg:HI SP_REG))
- (match_operand:SI 3 "register_operand" ""))])]
+ [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int 16)))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 12)))
+ (match_operand:SI 0 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 8)))
+ (match_operand:SI 1 "register_operand" ""))
+ (set (mem:SI (plus:HI (reg:HI SP_REG) (const_int 4)))
+ (match_operand:SI 2 "register_operand" ""))
+ (set (mem:SI (reg:HI SP_REG))
+ (match_operand:SI 3 "register_operand" ""))]
"TARGET_H8300S && !TARGET_NORMAL_MODE
&& h8300_regs_ok_for_stm (4, operands)"
"ldm.l\\t@er7+,%S0-%S3"
;; the shift count dies, then we just use that register.
(define_split
- [(parallel
- [(set (match_operand 0 "register_operand" "")
- (match_operator 2 "nshift_operator"
- [(match_dup 0)
- (match_operand:QI 1 "register_operand" "")]))
- (clobber (match_operand:QI 3 "register_operand" ""))])]
+ [(set (match_operand 0 "register_operand" "")
+ (match_operator 2 "nshift_operator"
+ [(match_dup 0)
+ (match_operand:QI 1 "register_operand" "")]))
+ (clobber (match_operand:QI 3 "register_operand" ""))]
"flow2_completed
&& find_regno_note (insn, REG_DEAD, REGNO (operands[1]))"
[(set (cc0)
operands[5] = gen_label_rtx ();")
(define_split
- [(parallel
- [(set (match_operand 0 "register_operand" "")
- (match_operator 2 "nshift_operator"
- [(match_dup 0)
- (match_operand:QI 1 "register_operand" "")]))
- (clobber (match_operand:QI 3 "register_operand" ""))])]
+ [(set (match_operand 0 "register_operand" "")
+ (match_operator 2 "nshift_operator"
+ [(match_dup 0)
+ (match_operand:QI 1 "register_operand" "")]))
+ (clobber (match_operand:QI 3 "register_operand" ""))]
"flow2_completed
&& !find_regno_note (insn, REG_DEAD, REGNO (operands[1]))"
[(set (match_dup 3)
"#")
(define_split
- [(parallel
- [(set (match_operand:SI 0 "register_operand" "")
- (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "")
- (const_int 23))
- (match_dup 0)))
- (clobber (match_operand:SI 2 "register_operand" ""))])]
+ [(set (match_operand:SI 0 "register_operand" "")
+ (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "")
+ (const_int 23))
+ (match_dup 0)))
+ (clobber (match_operand:SI 2 "register_operand" ""))]
"(TARGET_H8300H || TARGET_H8300S)
&& flow2_completed
&& find_regno_note (insn, REG_DEAD, REGNO (operands[1]))
"operands[3] = gen_rtx_REG (HImode, REGNO (operands[1]));")
(define_split
- [(parallel
- [(set (match_operand:SI 0 "register_operand" "")
- (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "")
- (const_int 23))
- (match_dup 0)))
- (clobber (match_operand:SI 2 "register_operand" ""))])]
+ [(set (match_operand:SI 0 "register_operand" "")
+ (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "")
+ (const_int 23))
+ (match_dup 0)))
+ (clobber (match_operand:SI 2 "register_operand" ""))]
"(TARGET_H8300H || TARGET_H8300S)
&& flow2_completed
&& !(find_regno_note (insn, REG_DEAD, REGNO (operands[1]))
"#")
(define_split
- [(parallel
- [(set (match_operand:SI 0 "register_operand" "")
- (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
- (const_int 8388608))
- (match_dup 0)))
- (clobber (match_operand:SI 2 "register_operand" ""))])]
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
+ (const_int 8388608))
+ (match_dup 0)))
+ (clobber (match_operand:SI 2 "register_operand" ""))]
"(TARGET_H8300H || TARGET_H8300S)
&& flow2_completed
&& find_regno_note (insn, REG_DEAD, REGNO (operands[1]))
"operands[3] = gen_rtx_REG (HImode, REGNO (operands[1]));")
(define_split
- [(parallel
- [(set (match_operand:SI 0 "register_operand" "")
- (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
- (const_int 8388608))
- (match_dup 0)))
- (clobber (match_operand:SI 2 "register_operand" ""))])]
+ [(set (match_operand:SI 0 "register_operand" "")
+ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "")
+ (const_int 8388608))
+ (match_dup 0)))
+ (clobber (match_operand:SI 2 "register_operand" ""))]
"(TARGET_H8300H || TARGET_H8300S)
&& flow2_completed
&& !(find_regno_note (insn, REG_DEAD, REGNO (operands[1]))