diff options
-rw-r--r-- | gcc/config/h8300/extensions.md | 12 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.c | 4 |
2 files changed, 9 insertions, 7 deletions
diff --git a/gcc/config/h8300/extensions.md b/gcc/config/h8300/extensions.md index bc10179..74647c7 100644 --- a/gcc/config/h8300/extensions.md +++ b/gcc/config/h8300/extensions.md @@ -20,7 +20,7 @@ [(parallel [(set (match_dup 0) (zero_extend:HI (match_dup 1))) (clobber (reg:CC CC_REG))])]) -(define_insn "*zero_extendqihi2_clobber_flags" +(define_insn "*zero_extendqihi2<cczn>" [(set (match_operand:HI 0 "register_operand" "=r,r") (zero_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>"))) (clobber (reg:CC CC_REG))] @@ -95,7 +95,7 @@ [(parallel [(set (match_dup 0) (zero_extend:SI (match_dup 1))) (clobber (reg:CC CC_REG))])]) -(define_insn "*zero_extendqisi2_h8sx_clobber_flags" +(define_insn "*zero_extendqisi2_h8sx<cczn>" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extend:SI (match_operand:QI 1 "register_operand" "0"))) (clobber (reg:CC CC_REG))] @@ -118,7 +118,7 @@ [(parallel [(set (match_dup 0) (zero_extend:SI (match_dup 1))) (clobber (reg:CC CC_REG))])]) -(define_insn "*zero_extendhisi2_clobber_flags" +(define_insn "*zero_extendhisi2<cczn>" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extend:SI (match_operand:HI 1 "register_operand" "0"))) (clobber (reg:CC CC_REG))] @@ -141,7 +141,7 @@ [(parallel [(set (match_dup 0) (sign_extend:HI (match_dup 1))) (clobber (reg:CC CC_REG))])]) -(define_insn "*extendqihi2_clobber_flags" +(define_insn "*extendqihi2<cczn>" [(set (match_operand:HI 0 "register_operand" "=r") (sign_extend:HI (match_operand:QI 1 "register_operand" "0"))) (clobber (reg:CC CC_REG))] @@ -176,7 +176,7 @@ [(parallel [(set (match_dup 0) (sign_extend:SI (match_dup 1))) (clobber (reg:CC CC_REG))])]) -(define_insn "*extendqisi2_h8sx_clobber_flags" +(define_insn "*extendqisi2_h8sx<cczn>" [(set (match_operand:SI 0 "register_operand" "=r") (sign_extend:SI (match_operand:QI 1 "register_operand" "0"))) (clobber (reg:CC CC_REG))] @@ -199,7 +199,7 @@ [(parallel [(set (match_dup 0) (sign_extend:SI (match_dup 1))) (clobber (reg:CC CC_REG))])]) -(define_insn "*extendhisi2_clobber_flags" +(define_insn "*extendhisi2<cczn>" [(set (match_operand:SI 0 "register_operand" "=r") (sign_extend:SI (match_operand:HI 1 "register_operand" "0"))) (clobber (reg:CC CC_REG))] diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index ef947aa..1077a2b 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -1950,7 +1950,9 @@ h8300_select_cc_mode (enum rtx_code cond, rtx op0, rtx op1) || GET_CODE (op0) == NEG || GET_CODE (op0) == AND || GET_CODE (op0) == IOR || GET_CODE (op0) == XOR || GET_CODE (op0) == NOT || GET_CODE (op0) == ASHIFT - || GET_CODE (op0) == REG || GET_CODE (op0) == MULT)) + || GET_CODE (op0) == MULT + || GET_CODE (op0) == SIGN_EXTEND || GET_CODE (op0) == ZERO_EXTEND + || REG_P (op0) || MEM_P (op0))) return CCZNmode; return CCmode; |