+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".
; 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"
[(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);