diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2002-12-30 15:35:20 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2002-12-30 15:35:20 +0000 |
commit | 3cc3e1cd361db12ffe853e32cd48bb209c83f614 (patch) | |
tree | 17b88a618bbceaea1f66fc00f736ad8fa9be385f | |
parent | a6e8d1139de77569a6dfaba1dda8b223afc278a7 (diff) | |
download | gcc-3cc3e1cd361db12ffe853e32cd48bb209c83f614.zip gcc-3cc3e1cd361db12ffe853e32cd48bb209c83f614.tar.gz gcc-3cc3e1cd361db12ffe853e32cd48bb209c83f614.tar.bz2 |
* config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): New.
From-SVN: r60633
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 022ef30..5549bc11 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2002-12-30 Kazu Hirata <kazu@cs.umass.edu> + * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): New. + +2002-12-30 Kazu Hirata <kazu@cs.umass.edu> + * config/h8300/h8300.c (output_logical_op): Use extu.w if we are clearing the most significant byte. (compute_logical_op_length): Update to reflect the change in diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index e66662a..1a3fcd5 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2329,6 +2329,18 @@ [(set_attr "cc" "set_znv") (set_attr "length" "6")]) +;; plus:SI + +(define_insn "*addsi3_lshiftrt_16_zexthi" + [(set (match_operand:SI 0 "register_operand" "=r") + (plus:SI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") + (const_int 16)) + (zero_extend:SI (match_operand:HI 2 "register_operand" "0"))))] + "TARGET_H8300H || TARGET_H8300S" + "add.w\t%e1,%f0\;xor.w\t%e0,%e0\;rotxl.w\t%e0,%e0" + [(set_attr "cc" "clobber") + (set_attr "length" "6")]) + ;; ior:HI (define_insn "*iorhi3_zext" |