From f7c6eaa3590145d3bead956b9a713bf06a0ca763 Mon Sep 17 00:00:00 2001 From: "m.hayes" Date: Mon, 8 Feb 1999 14:58:08 +0000 Subject: [PATCH] * config/c4x/c4x.md (*movhi_stik): New pattern. (movhi): Allow some immediate constants to be directly stored in memory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25091 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/c4x/c4x.md | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d18280eb9c..48267988587 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Tue Feb 9 11:55:04 1999 Michael Hayes + + * 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 * config/c4x/c4x.md (all call patterns): Add constraints "Ur". diff --git a/gcc/config/c4x/c4x.md b/gcc/config/c4x/c4x.md index 3d7b0f78d45..d49b4116cce 100644 --- a/gcc/config/c4x/c4x.md +++ b/gcc/config/c4x/c4x.md @@ -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); -- 2.11.0