diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-03-18 12:50:26 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-03-18 12:50:26 +0000 |
commit | 1e78888716719edb9b1ba19dd92086ed70fb3613 (patch) | |
tree | d088abef8d10956ca7c225064cc91fb91c89d2e4 | |
parent | 94e001a9a9b38a592b446f6063ffc2da1b9877aa (diff) | |
download | gcc-1e78888716719edb9b1ba19dd92086ed70fb3613.zip gcc-1e78888716719edb9b1ba19dd92086ed70fb3613.tar.gz gcc-1e78888716719edb9b1ba19dd92086ed70fb3613.tar.bz2 |
* config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
From-SVN: r64531
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca7cc2e..dadb5d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-03-18 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (*iorsi3_two_qi_zext): New. + 2003-03-18 Andreas Schwab <schwab@suse.de> * dwarf2out.c (output_file_names): Cast size_t to unsigned long diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index ccf3d6e..6d19568 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2921,6 +2921,24 @@ [(set_attr "cc" "clobber") (set_attr "length" "2")]) +(define_insn_and_split "*iorsi3_two_qi_zext" + [(set (match_operand:SI 0 "register_operand" "=&r") + (ior:SI (zero_extend:SI (match_operand:QI 1 "memory_operand" "m")) + + (and:SI (ashift:SI (subreg:SI (match_operand:QI 2 "memory_operand" "m") 0) + (const_int 8)) + (const_int 65280))))] + "(TARGET_H8300H || TARGET_H8300S)" + "#" + "&& reload_completed" + [(set (match_dup 3) + (ior:HI (zero_extend:HI (match_dup 1)) + (ashift:HI (subreg:HI (match_dup 2) 0) + (const_int 8)))) + (set (match_dup 0) + (zero_extend:SI (match_dup 3)))] + "operands[3] = gen_rtx_REG (HImode, REGNO (operands[0]));") + (define_insn "*iorsi3_e2f" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0") |