OSDN Git Service

* config/h8300/h8300.md (a peephole2): New.
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Mar 2003 14:17:49 +0000 (14:17 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Mar 2003 14:17:49 +0000 (14:17 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64802 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/h8300/h8300.md

index d079df8..e560e07 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (a peephole2): New.
+
 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
 
        * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
index 883fa5c..43bca10 100644 (file)
                  : gen_rtx_LT (VOIDmode, cc0_rtx, const0_rtx));")
 
 (define_peephole2
+  [(set (match_operand:QI 0 "register_operand" "")
+       (match_operand:QI 1 "general_operand" ""))
+   (set (match_operand:SI 2 "register_operand" "")
+       (and:SI (match_dup 2)
+               (const_int 255)))]
+  "(TARGET_H8300H || TARGET_H8300S)
+   && !reg_overlap_mentioned_p (operands[2], operands[1])
+   && REGNO (operands[0]) == REGNO (operands[2])"
+  [(set (match_dup 2)
+       (const_int 0))
+   (set (strict_low_part (match_dup 0))
+       (match_dup 1))]
+  "")
+
+(define_peephole2
   [(set (match_operand:SI 0 "register_operand" "")
        (match_operand:SI 1 "general_operand" ""))
    (set (match_dup 0)