[NDS32] Restrict mov pattern that has at least one register operand.
authorKito Cheng <kito.cheng@gmail.com>
Wed, 4 Apr 2018 12:38:04 +0000 (12:38 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Wed, 4 Apr 2018 12:38:04 +0000 (12:38 +0000)
gcc/
* config/nds32/nds32-doubleword.md (move_<mode>): Require
resiter_operand condition.
* config/nds32/nds32.md (*move<mode>): Ditto.

From-SVN: r259077

gcc/ChangeLog
gcc/config/nds32/nds32-doubleword.md
gcc/config/nds32/nds32.md

index 8f97ac2bc385dda6930c54a7a24f880c530e0eb0..bd0c1b121563780dffcc218082a6d814f86fb804 100644 (file)
@@ -1,3 +1,9 @@
+2018-04-04  Kito Cheng  <kito.cheng@gmail.com>
+
+       * config/nds32/nds32-doubleword.md (move_<mode>): Require
+       resiter_operand condition.
+       * config/nds32/nds32.md (*move<mode>): Ditto.
+
 2018-04-04  Kito Cheng  <kito.cheng@gmail.com>
            Monk Chiang  <sh.chiang04@gmail.com>
 
index beefca49c5927ebbcb9e609eab33420a08a65276..0e4b0dc4fb6641e36d0e1b05b9b42c9f0a2582a2 100644 (file)
@@ -48,7 +48,8 @@
 (define_insn "move_<mode>"
   [(set (match_operand:DIDF 0 "nonimmediate_operand" "=r, r, r, m")
        (match_operand:DIDF 1 "general_operand"      " r, i, m, r"))]
-  ""
+  "register_operand(operands[0], <MODE>mode)
+   || register_operand(operands[1], <MODE>mode)"
 {
   rtx addr;
   rtx otherops[5];
index 68fe1b3c7f07119adfe5a1bf6aed4f483599e743..afbea8be3444588fe974c6c3a851cbee55e65693 100644 (file)
 (define_insn "*mov<mode>"
   [(set (match_operand:QIHISI 0 "nonimmediate_operand" "=r, r, U45, U33, U37, U45, m,   l,   l,   l,   d, r,    d,    r,    r,    r")
        (match_operand:QIHISI 1 "nds32_move_operand"   " r, r,   l,   l,   l,   d, r, U45, U33, U37, U45, m, Ip05, Is05, Is20, Ihig"))]
-  ""
+  "register_operand(operands[0], <MODE>mode)
+   || register_operand(operands[1], <MODE>mode)"
 {
   switch (which_alternative)
     {