h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle extending a CONST_INT.
Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle extending a CONST_INT. * h8300.md (peephole for combining memrefs): Delete incorrect peephole. From-SVN: r25168
This commit is contained in:
parent
a6207a2b7e
commit
01d5caad02
@ -1,3 +1,10 @@
|
||||
Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
|
||||
extending a CONST_INT.
|
||||
|
||||
* h8300.md (peephole for combining memrefs): Delete incorrect peephole.
|
||||
|
||||
Fri Feb 12 18:29:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
|
||||
|
@ -1687,15 +1687,17 @@
|
||||
"TARGET_H8300"
|
||||
"")
|
||||
|
||||
;; %e prints the high part of a CONST_INT, not the low part. Arggh.
|
||||
(define_insn ""
|
||||
[(set (match_operand:SI 0 "register_operand" "=r,r")
|
||||
(zero_extend:SI (match_operand:HI 1 "general_operand_src" "0,g>")))]
|
||||
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
|
||||
(zero_extend:SI (match_operand:HI 1 "general_operand_src" "0,i,g>")))]
|
||||
"TARGET_H8300"
|
||||
"@
|
||||
sub.w %e0,%e0
|
||||
mov.w %f1,%f0\;sub.w %e0,%e0
|
||||
mov.w %e1,%f0\;sub.w %e0,%e0"
|
||||
[(set_attr "length" "2,4")
|
||||
(set_attr "cc" "clobber,clobber")])
|
||||
[(set_attr "length" "2,4,4")
|
||||
(set_attr "cc" "clobber,clobber,clobber")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:SI 0 "register_operand" "=r,r")
|
||||
@ -2245,32 +2247,6 @@
|
||||
;; Peepholes go at the end.
|
||||
;; ----------------------------------------------
|
||||
|
||||
;; Notice when two byte moves in a row could be a word move.
|
||||
|
||||
(define_peephole
|
||||
[(set (match_operand:QI 0 "register_operand" "=r")
|
||||
(mem:QI (plus:HI (match_operand:HI 1 "register_operand" "r")
|
||||
(match_operand:HI 2 "immediate_operand" "n"))))
|
||||
(set (match_operand:QI 3 "register_operand" "=r")
|
||||
(mem:QI (plus:HI (match_dup 1)
|
||||
(match_operand:HI 4 "immediate_operand" "n"))))]
|
||||
"(INTVAL(operands[2]) == INTVAL(operands[4])+1) && REGNO(operands[0]) +1 == REGNO(operands[3])"
|
||||
"mov.w @(%u4,%T1),%T0"
|
||||
[(set_attr "length" "6")
|
||||
(set_attr "cc" "set_znv")])
|
||||
|
||||
(define_peephole
|
||||
[(set (mem:QI (plus:HI (match_operand:HI 1 "register_operand" "r")
|
||||
(match_operand:HI 2 "immediate_operand" "n")))
|
||||
(match_operand:QI 0 "register_operand" "r"))
|
||||
(set (mem:QI (plus:HI (match_dup 1)
|
||||
(match_operand:HI 4 "immediate_operand" "n")))
|
||||
(match_operand:QI 3 "register_operand" "r"))]
|
||||
"(INTVAL(operands[2]) == INTVAL(operands[4])+1) && REGNO(operands[0]) +1 == REGNO(operands[3])"
|
||||
"mov.w %T0,@(%u4,%T1)"
|
||||
[(set_attr "length" "6")
|
||||
(set_attr "cc" "set_znv")])
|
||||
|
||||
;; Notice a move which could be post incremented.
|
||||
|
||||
(define_peephole
|
||||
|
Loading…
Reference in New Issue
Block a user