;; GCC machine description for Renesas H8/300
-;; Copyright (C) 1992-2019 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2020 Free Software Foundation, Inc.
;; Contributed by Steve Chamberlain (sac@cygnus.com),
;; Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
(set_attr "length_table" "*,movl")
(set_attr "cc" "set_zn,set_znv")])
-;; Implement block moves using movmd. Defining movmemsi allows the full
+;; Implement block copies using movmd. Defining cpymemsi allows the full
;; range of constant lengths (up to 0x40000 bytes when using movmd.l).
;; See h8sx_emit_movmd for details.
-(define_expand "movmemsi"
+(define_expand "cpymemsi"
[(use (match_operand:BLK 0 "memory_operand" ""))
(use (match_operand:BLK 1 "memory_operand" ""))
(use (match_operand:SI 2 "" ""))
(use (match_operand:SI 3 "const_int_operand" ""))]
- "TARGET_H8300SX"
+ "TARGET_H8300SX && 0"
{
if (h8sx_emit_movmd (operands[0], operands[1], operands[2], INTVAL (operands[3])))
DONE;
(clobber (match_dup 5))
(set (match_dup 2)
(const_int 0))])]
- "TARGET_H8300SX"
+ "TARGET_H8300SX && 0"
{
operands[4] = copy_rtx (XEXP (operands[0], 0));
operands[5] = copy_rtx (XEXP (operands[1], 0));
(clobber (match_operand:P 1 "register_operand" "=f,f"))
(set (match_operand:HI 2 "register_operand" "=c,c")
(const_int 0))]
- "TARGET_H8300SX"
+ "TARGET_H8300SX && 0"
"@
movmd%m6
#"
(set (match_dup 2)
(const_int 0))]
"TARGET_H8300SX && reload_completed
+ && 0
&& REGNO (operands[4]) != DESTINATION_REG"
[(const_int 0)]
{
[(use (match_operand 0 "register_operand" ""))
(use (match_operand:BLK 1 "memory_operand" ""))
(use (match_operand:BLK 2 "memory_operand" ""))]
- "TARGET_H8300SX"
+ "TARGET_H8300SX && 0"
{
operands[1] = replace_equiv_address
(operands[1], copy_to_mode_reg (Pmode, XEXP (operands[1], 0)));
(clobber (match_dup 3))
(clobber (match_dup 4))
(clobber (match_operand 2 "register_operand" ""))])]
- "TARGET_H8300SX"
+ "TARGET_H8300SX && 0"
{
operands[3] = copy_rtx (XEXP (operands[0], 0));
operands[4] = copy_rtx (XEXP (operands[1], 0));
(clobber (match_operand:P 0 "register_operand" "=d,??D"))
(clobber (match_operand:P 1 "register_operand" "=f,f"))
(clobber (match_operand:P 2 "register_operand" "=c,c"))]
- "TARGET_H8300SX"
+ "TARGET_H8300SX && 0"
"@
\n1:\tmovsd\t2f\;bra\t1b\n2:
#"
(clobber (match_operand:P 3 "register_operand" ""))
(clobber (match_operand:P 4 "register_operand" ""))]
"TARGET_H8300SX && reload_completed
+ && 0
&& REGNO (operands[2]) != DESTINATION_REG"
[(const_int 0)]
{
"mov.w\\t%T0,@-r7"
[(set_attr "length" "2")])
-(define_insn "*push1_h8300hs_<mode>"
+(define_insn "*push1_h8300hs_<QHI:mode>"
[(set (mem:QHI
(pre_modify:P
(reg:P SP_REG)