c4x.md (*movhi_stik): New pattern.

* config/c4x/c4x.md (*movhi_stik): New pattern.
	(movhi): Allow some immediate constants to be directly
	stored in memory.

From-SVN: r25091
This commit is contained in:
Michael Hayes 1999-02-08 14:58:08 +00:00 committed by Michael Hayes
parent b2e9a2fdc8
commit e42efef590
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,9 @@
Tue Feb 9 11:55:04 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (*movhi_stik): New pattern.
(movhi): Allow some immediate constants to be directly
stored in memory.
Tue Feb 9 11:34:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (all call patterns): Add constraints "Ur".

View File

@ -5370,6 +5370,13 @@
; TWO OPERAND LONG LONG INSTRUCTIONS
;
(define_insn "*movhi_stik"
[(set (match_operand:HI 0 "memory_operand" "=m")
(match_operand:HI 1 "stik_const_operand" "K"))]
"! TARGET_C3X"
"#"
[(set_attr "type" "multi")])
; We could load some constants using define_splits for the C30
; in the large memory model---these would emit shift and or insns.
(define_expand "movhi"
@ -5395,7 +5402,9 @@
[(set (match_operand:HI 0 "src_operand" "")
(match_operand:HI 1 "src_operand" ""))]
"reload_completed
&& (reg_operand (operands[0], HImode) || reg_operand (operands[1], HImode))"
&& (reg_operand (operands[0], HImode)
|| reg_operand (operands[1], HImode)
|| stik_const_operand (operands[1], HImode))"
[(set (match_dup 2) (match_dup 3))
(set (match_dup 4) (match_dup 5))]
"operands[2] = c4x_operand_subword (operands[0], 0, 1, HImode);