* config/h8300/h8300.md (a new peephole2): New.
From-SVN: r63892
This commit is contained in:
parent
8a6393df68
commit
0135f3437a
@ -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.
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user