diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4a46107..d79b6ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2002-12-05 Kazu Hirata <kazu@cs.umass.edu> + * config/h8300/h8300.md (*andorsi3_shift_8): New. + +2002-12-05 Kazu Hirata <kazu@cs.umass.edu> + * config/h8300/h8300.c (shift_alg_si): Optimize ashift:HI and lshiftrt:SI by 28, 29, and 30 bits when !TARGET_H8300. (get_shift_alg): Return optimal assembly instructions for the diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 15ade25..7ca46ce 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1155,6 +1155,17 @@ [(set_attr "length" "6") (set_attr "cc" "clobber")]) +(define_insn "*andorsi3_shift_8" + [(set (match_operand:SI 0 "register_operand" "=r") + (ior:SI (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r") + (const_int 8)) + (const_int 65280)) + (match_operand:SI 1 "register_operand" "0")))] + "" + "or.b\\t%w2,%x0" + [(set_attr "length" "2") + (set_attr "cc" "clobber")]) + (define_expand "andsi3" [(set (match_operand:SI 0 "register_operand" "") (and:SI (match_operand:SI 1 "register_operand" "") |