mips.md (store): Add attributes for QI and HI.

* config/mips/mips.md (store): Add attributes for QI and HI.
	Update comment.
	(truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
	(truncdi<mode>2): ... this new pattern.

From-SVN: r147503
This commit is contained in:
Adam Nemet 2009-05-13 21:52:56 +00:00 committed by Adam Nemet
parent c7bda60ed4
commit f06257d36a
2 changed files with 14 additions and 26 deletions

View file

@ -1,3 +1,10 @@
2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
* config/mips/mips.md (store): Add attributes for QI and HI.
Update comment.
(truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
(truncdi<mode>2): ... this new pattern.
2009-05-13 Brad Hards <bradh@kde.org>
* Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.

View file

@ -727,9 +727,10 @@
;; This attributes gives the mode mask of a SHORT.
(define_mode_attr mask [(QI "0x00ff") (HI "0xffff")])
;; Mode attributes for GPR loads and stores.
;; Mode attributes for GPR loads.
(define_mode_attr load [(SI "lw") (DI "ld")])
(define_mode_attr store [(SI "sw") (DI "sd")])
;; Instruction names for stores.
(define_mode_attr store [(QI "sb") (HI "sh") (SI "sw") (DI "sd")])
;; Similarly for MIPS IV indexed FPR loads and stores.
(define_mode_attr loadx [(SF "lwxc1") (DF "ldxc1") (V2SF "ldxc1")])
@ -2692,33 +2693,13 @@
;;
;; Step A needs a real instruction but step B does not.
(define_insn "truncdisi2"
[(set (match_operand:SI 0 "nonimmediate_operand" "=d,m")
(truncate:SI (match_operand:DI 1 "register_operand" "d,d")))]
(define_insn "truncdi<mode>2"
[(set (match_operand:SUBDI 0 "nonimmediate_operand" "=d,m")
(truncate:SUBDI (match_operand:DI 1 "register_operand" "d,d")))]
"TARGET_64BIT"
"@
sll\t%0,%1,0
sw\t%1,%0"
[(set_attr "move_type" "sll0,store")
(set_attr "mode" "SI")])
(define_insn "truncdihi2"
[(set (match_operand:HI 0 "nonimmediate_operand" "=d,m")
(truncate:HI (match_operand:DI 1 "register_operand" "d,d")))]
"TARGET_64BIT"
"@
sll\t%0,%1,0
sh\t%1,%0"
[(set_attr "move_type" "sll0,store")
(set_attr "mode" "SI")])
(define_insn "truncdiqi2"
[(set (match_operand:QI 0 "nonimmediate_operand" "=d,m")
(truncate:QI (match_operand:DI 1 "register_operand" "d,d")))]
"TARGET_64BIT"
"@
sll\t%0,%1,0
sb\t%1,%0"
<store>\t%1,%0"
[(set_attr "move_type" "sll0,store")
(set_attr "mode" "SI")])