* config/h8300/h8300.md (a new peephole2): New.

From-SVN: r63892
This commit is contained in:
Kazu Hirata 2003-03-06 15:14:37 +00:00 committed by Kazu Hirata
parent 8a6393df68
commit 0135f3437a
2 changed files with 23 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2003-03-06 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md (a new peephole2): New.
Thu Mar 6 14:20:15 CET 2003 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_node): Do not confuse nested functions and methods.

View File

@ -3584,6 +3584,25 @@
"operands[2] = gen_lowpart (QImode, operands[0]);
operands[3] = gen_lowpart (QImode, operands[1]);")
(define_peephole2
[(set (match_operand:SI 0 "register_operand" "")
(match_operand:SI 1 "memory_operand" ""))
(set (match_dup 0)
(and:SI (match_dup 0)
(match_operand:SI 2 "const_int_operand" "")))]
"(TARGET_H8300H || TARGET_H8300S)
&& !reg_overlap_mentioned_p (operands[0], operands[1])
&& !(GET_CODE (operands[1]) == MEM && MEM_VOLATILE_P (operands[1]))
&& (INTVAL (operands[2]) & ~0xffff) == 0
&& INTVAL (operands[2]) != 255"
[(set (match_dup 3)
(match_dup 4))
(set (match_dup 0)
(and:SI (match_dup 0)
(match_dup 2)))]
"operands[3] = gen_lowpart (HImode, operands[0]);
operands[4] = gen_lowpart (HImode, operands[1]);")
;; (compare (reg:SI) (const_int)) takes 6 bytes, so we try to achieve
;; the equivalent with shorter sequences. Here is the summary. Cases
;; are grouped for each define_peephole2.