;; ----------------------------------------------------------------------
(define_insn ""
- [(set (cc0)
+ [(set (cc0)
(compare (zero_extract:QI (match_operand:QI 0 "bit_memory_operand" "r,U")
(const_int 1)
(match_operand 1 "const_int_operand" "n,n"))
(set_attr "cc" "set_zn")])
(define_insn_and_split "*tst_extzv_1_n"
- [(set (cc0)
+ [(set (cc0)
(compare (zero_extract:SI (match_operand:QI 0 "general_operand_src" "r,U,mn>")
(const_int 1)
(match_operand 1 "const_int_operand" "n,n,n"))
(set_attr "cc" "set_zn,set_zn,set_zn")])
(define_insn ""
- [(set (cc0)
+ [(set (cc0)
(compare (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
(const_int 1)
(match_operand 1 "const_int_operand" "n"))
(set_attr "cc" "set_zn")])
(define_insn_and_split "*tstsi_upper_bit"
- [(set (cc0)
+ [(set (cc0)
(compare (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
(const_int 1)
(match_operand 1 "const_int_operand" "n"))
(set_attr "cc" "set_zn,set_zn,set_zn")])
(define_insn "*tstqi"
- [(set (cc0)
+ [(set (cc0)
(compare (match_operand:QI 0 "register_operand" "r")
(const_int 0)))]
""
"TARGET_H8300 && epilogue_completed"
[(const_int 0)]
{
- split_adds_subs (HImode, operands);
+ split_adds_subs (HImode, operands);
DONE;
})
""
[(const_int 0)]
{
- split_adds_subs (HImode, operands);
+ split_adds_subs (HImode, operands);
DONE;
})
(plus:SI (match_operand:SI 1 "h8300_dst_operand" "%0,0")
(match_operand:SI 2 "h8300_src_operand" "i,rQ")))]
"(TARGET_H8300H || TARGET_H8300S) && h8300_operands_match_p (operands)"
-{
+{
return output_plussi (operands);
}
[(set (attr "length")
"TARGET_H8300H || TARGET_H8300S"
[(const_int 0)]
{
- split_adds_subs (SImode, operands);
+ split_adds_subs (SImode, operands);
DONE;
})
"TARGET_H8300SX"
"divu.w\\t%T2,%T0"
[(set_attr "length" "2")])
-
+
(define_insn "divhi3"
[(set (match_operand:HI 0 "register_operand" "=r")
(div:HI (match_operand:HI 1 "register_operand" "0")
"TARGET_H8300SX"
"divs.w\\t%T2,%T0"
[(set_attr "length" "2")])
-
+
(define_insn "udivsi3"
[(set (match_operand:SI 0 "register_operand" "=r")
(udiv:SI (match_operand:SI 1 "register_operand" "0")
"TARGET_H8300SX"
"divu.l\\t%S2,%S0"
[(set_attr "length" "2")])
-
+
(define_insn "divsi3"
[(set (match_operand:SI 0 "register_operand" "=r")
(div:SI (match_operand:SI 1 "register_operand" "0")
"TARGET_H8300SX"
"divs.l\\t%S2,%S0"
[(set_attr "length" "2")])
-
+
(define_insn "udivmodqi4"
[(set (match_operand:QI 0 "register_operand" "=r")
(truncate:QI
if ((GET_CODE (operands[2]) != REG && operands[2] != const0_rtx)
&& TARGET_H8300)
operands[2] = force_reg (HImode, operands[2]);
- h8300_expand_branch (operands);
+ h8300_expand_branch (operands);
DONE;
})
[(const_int 0)]
""
{
- h8300_expand_prologue ();
+ h8300_expand_prologue ();
DONE;
})
[(return)]
""
{
- h8300_expand_epilogue ();
+ h8300_expand_epilogue ();
DONE;
})
else if (TARGET_H8300H)
return "mov.l\\ter0,@-er7\;stc\\tccr,r0l\;mov.b\\tr0l,@(4,er7)\;mov.l\\t@er7+,er0\;orc\\t#128,ccr";
else if (TARGET_H8300S && TARGET_NEXR )
- return "mov.l\\ter0,@-er7\;stc\tccr,r0l\;mov.b\tr0l,@(4,er7)\;mov.l\\t@er7+,er0\;orc\t#128,ccr";
+ return "mov.l\\ter0,@-er7\;stc\tccr,r0l\;mov.b\tr0l,@(4,er7)\;mov.l\\t@er7+,er0\;orc\t#128,ccr";
else if (TARGET_H8300S && TARGET_NEXR && TARGET_NORMAL_MODE)
return "subs\\t#2,er7\;mov.l\\ter0,@-er7\;stc\tccr,r0l\;mov.b\tr0l,@(4,er7)\;mov.l\\t@er7+,er0\;orc\t#128,ccr";
else if (TARGET_H8300S && TARGET_NORMAL_MODE)
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (QImode, ASHIFT, operands))
+ if (expand_a_shift (QImode, ASHIFT, operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (QImode, ASHIFTRT, operands))
+ if (expand_a_shift (QImode, ASHIFTRT, operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (QImode, LSHIFTRT, operands))
+ if (expand_a_shift (QImode, LSHIFTRT, operands))
DONE;
})
[(match_operand:QI 1 "h8300_dst_operand" "0")
(match_operand:QI 2 "const_int_operand" "")]))]
"h8300_operands_match_p (operands)"
-{
- return output_h8sx_shift (operands, 'b', 'X');
+{
+ return output_h8sx_shift (operands, 'b', 'X');
}
[(set_attr "length_table" "unary")
(set_attr "cc" "set_znv")])
(match_operand:QI 2 "nonmemory_operand" "r P3>X")]))]
""
{
- return output_h8sx_shift (operands, 'b', 'X');
+ return output_h8sx_shift (operands, 'b', 'X');
}
[(set_attr "length" "4")
(set_attr "cc" "set_znv")])
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (HImode, ASHIFT, operands))
+ if (expand_a_shift (HImode, ASHIFT, operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (HImode, LSHIFTRT, operands))
+ if (expand_a_shift (HImode, LSHIFTRT, operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (HImode, ASHIFTRT, operands))
+ if (expand_a_shift (HImode, ASHIFTRT, operands))
DONE;
})
[(match_operand:HI 1 "h8300_dst_operand" "0")
(match_operand:QI 2 "const_int_operand" "")]))]
"h8300_operands_match_p (operands)"
-{
- return output_h8sx_shift (operands, 'w', 'T');
+{
+ return output_h8sx_shift (operands, 'w', 'T');
}
[(set_attr "length_table" "unary")
(set_attr "cc" "set_znv")])
(match_operand:QI 2 "nonmemory_operand" "r P4>X")]))]
""
{
- return output_h8sx_shift (operands, 'w', 'T');
+ return output_h8sx_shift (operands, 'w', 'T');
}
[(set_attr "length" "4")
(set_attr "cc" "set_znv")])
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (SImode, ASHIFT, operands))
+ if (expand_a_shift (SImode, ASHIFT, operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (SImode, LSHIFTRT, operands))
+ if (expand_a_shift (SImode, LSHIFTRT, operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_shift (SImode, ASHIFTRT, operands))
+ if (expand_a_shift (SImode, ASHIFTRT, operands))
DONE;
})
(match_operand:QI 2 "const_int_operand" "")]))]
"h8300_operands_match_p (operands)"
{
- return output_h8sx_shift (operands, 'l', 'S');
+ return output_h8sx_shift (operands, 'l', 'S');
}
[(set_attr "length_table" "unary")
(set_attr "cc" "set_znv")])
[(match_operand:SI 1 "register_operand" "0")
(match_operand:QI 2 "nonmemory_operand" "r P5>X")]))]
""
-{
- return output_h8sx_shift (operands, 'l', 'S');
+{
+ return output_h8sx_shift (operands, 'l', 'S');
}
[(set_attr "length" "4")
(set_attr "cc" "set_znv")])
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_rotate (operands))
+ if (expand_a_rotate (operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
""
{
- if (expand_a_rotate (operands))
+ if (expand_a_rotate (operands))
DONE;
})
(match_operand:QI 2 "nonmemory_operand" "")))]
"TARGET_H8300H || TARGET_H8300S"
{
- if (expand_a_rotate (operands))
+ if (expand_a_rotate (operands))
DONE;
})
(clobber (match_operand:HI 0 "register_operand"))]
"TARGET_H8300SX"
{
- h8300_expand_store (operands);
+ h8300_expand_store (operands);
DONE;
})
(clobber (match_operand:HI 0 "register_operand"))]
"TARGET_H8300SX"
{
- h8300_expand_store (operands);
+ h8300_expand_store (operands);
DONE;
})
(clobber (match_operand:HI 0 "register_operand"))]
"TARGET_H8300SX"
{
- h8300_expand_store (operands);
+ h8300_expand_store (operands);
DONE;
})
operands[5] = gen_rtx_COMPARE (VOIDmode, operands[3], operands[4]);
}
[(set_attr "cc" "set_znv,compare")])
-
+
(define_insn "*bstz"
[(set (zero_extract:QI (match_operand:QI 0 "bit_memory_operand" "+WU")
(const_int 1)
operands[6] = gen_rtx_COMPARE (VOIDmode, operands[2], operands[3]);
}
[(set_attr "cc" "set_znv,compare")])
-
+
(define_insn "*condbset"
[(set (match_operand:QI 0 "bit_memory_operand" "=WU")
(if_then_else:QI (match_operator:QI 2 "eqne_operator"
operands[6] = gen_rtx_COMPARE (VOIDmode, operands[2], operands[3]);
}
[(set_attr "cc" "set_znv,compare")])
-
+
(define_insn "*condbclr"
[(set (match_operand:QI 0 "bit_memory_operand" "=WU")
(if_then_else:QI (match_operator:QI 2 "eqne_operator"
operands[6] = gen_rtx_COMPARE (VOIDmode, operands[2], operands[3]);
}
[(set_attr "cc" "set_znv,compare")])
-
+
(define_insn "*condbsetreg"
[(set (match_operand:QI 0 "bit_memory_operand" "=WU")
(if_then_else:QI (match_operator:QI 2 "eqne_operator"
operands[6] = gen_rtx_COMPARE (VOIDmode, operands[2], operands[3]);
}
[(set_attr "cc" "set_znv,compare")])
-
+
(define_insn "*condbclrreg"
[(set (match_operand:QI 0 "bit_memory_operand" "=WU")
(if_then_else:QI (match_operator:QI 2 "eqne_operator"
(ashiftrt:SI (match_dup 0)
(const_int 1)))
(clobber (scratch:QI))])]
- {
+ {
operands[2] = gen_rtx_REG (HImode, REGNO (operands[0]));
})
"TARGET_H8300S && !TARGET_NORMAL_MODE && REGNO (operands[0]) != SP_REG"
[(set (mem:SI (pre_dec:SI (reg:SI SP_REG)))
(match_dup 0))]
- {
+ {
operands[0] = gen_rtx_REG (SImode, REGNO (operands[0]));
})
(if_then_else (match_dup 3)
(label_ref (match_dup 2))
(pc)))]
- {
+ {
operands[3] = gen_rtx_fmt_ee (GET_CODE (operands[1]) == GTU ? NE : EQ,
VOIDmode, cc0_rtx, const0_rtx);
})
&& !reg_overlap_mentioned_p (operands[0], operands[2])"
[(set (match_dup 2)
(match_dup 1))])
-
+