* config/h8300/h8300.md (4 anonymous patterns): New.

From-SVN: r59144
This commit is contained in:
Kazu Hirata 2002-11-15 22:16:09 +00:00 committed by Kazu Hirata
parent 737c38d12a
commit 6368a49321
2 changed files with 46 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2002-11-15 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md (4 anonymous patterns): New.
2002-11-15 Geoffrey Keating <geoffk@apple.com> 2002-11-15 Geoffrey Keating <geoffk@apple.com>
* params.def (GGC_MIN_HEAPSIZE): Fix GGC_ALWAYS_COLLECT problem. * params.def (GGC_MIN_HEAPSIZE): Fix GGC_ALWAYS_COLLECT problem.

View File

@ -2229,6 +2229,48 @@
[(set_attr "cc" "clobber") [(set_attr "cc" "clobber")
(set_attr "length" "2")]) (set_attr "length" "2")])
;; Storing a part of HImode to QImode.
(define_insn ""
[(set (match_operand:QI 0 "general_operand_dst" "=rm<")
(subreg:QI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r")
(const_int 8)) 1))]
""
"mov.b\\t%t1,%R0"
[(set_attr "cc" "set_znv")
(set_attr "length" "8")])
;; Storing a part of SImode to QImode.
(define_insn ""
[(set (match_operand:QI 0 "general_operand_dst" "=rm<")
(subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r")
(const_int 8)) 3))]
""
"mov.b\\t%x1,%R0"
[(set_attr "cc" "set_znv")
(set_attr "length" "8")])
(define_insn ""
[(set (match_operand:QI 0 "general_operand_dst" "=rm<")
(subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r")
(const_int 16)) 3))
(clobber (match_scratch:SI 2 "=&r"))]
"TARGET_H8300H || TARGET_H8300S"
"mov.w\\t%e1,%f2\;mov.b\\t%w2,%R0"
[(set_attr "cc" "set_znv")
(set_attr "length" "8")])
(define_insn ""
[(set (match_operand:QI 0 "general_operand_dst" "=rm<")
(subreg:QI (lshiftrt:SI (match_operand:SI 1 "register_operand" "r")
(const_int 24)) 3))
(clobber (match_scratch:SI 2 "=&r"))]
"TARGET_H8300H || TARGET_H8300S"
"mov.w\\t%e1,%f2\;mov.b\\t%x2,%R0"
[(set_attr "cc" "set_znv")
(set_attr "length" "8")])
(define_insn_and_split "" (define_insn_and_split ""
[(set (pc) [(set (pc)
(if_then_else (eq (zero_extract:SI (subreg:SI (match_operand:QI 0 "register_operand" "") 0) (if_then_else (eq (zero_extract:SI (subreg:SI (match_operand:QI 0 "register_operand" "") 0)