diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-12-07 16:51:43 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-12-07 16:51:43 -0500 |
commit | 61314cb469b7a014caddd55f944ccaa84bd98e7e (patch) | |
tree | 82606e88e4497dd93c21e85e96916fa3c4404c83 /gcc | |
parent | 9e8730a444d8213d5c19a5a7723278acc725bc90 (diff) | |
download | gcc-61314cb469b7a014caddd55f944ccaa84bd98e7e.zip gcc-61314cb469b7a014caddd55f944ccaa84bd98e7e.tar.gz gcc-61314cb469b7a014caddd55f944ccaa84bd98e7e.tar.bz2 |
New pattern for ior between SImode target and zero_extended value.
From-SVN: r8624
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m68k/m68k.md | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index bd826e1..2afdedc 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -3194,6 +3194,25 @@ (match_dup 0)))] "" "or%.b %1,%0") + +(define_insn "" + [(set (match_operand:SI 0 "general_operand" "=o,d") + (ior:SI (zero_extend:SI (match_operand 1 "general_operand" "dn,dmn")) + (match_operand:SI 2 "general_operand" "0,0")))] + "" + "* +{ + int byte_mode; + + CC_STATUS_INIT; + byte_mode = (GET_MODE(operands[1]) == QImode); + if (GET_CODE (operands[0]) == MEM) + operands[0] = adj_offsettable_operand (operands[0], byte_mode ? 3 : 2); + if (byte_mode) + return \"or%.b %1,%0\"; + else + return \"or%.w %1,%0\"; +}") ;; xor instructions |