aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@gmail.com>2018-04-04 12:38:04 +0000
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>2018-04-04 12:38:04 +0000
commitb43502719f0727864d5a19fe08a081a334022e42 (patch)
treea14cfbeb91a4d12bfca07223fd1ef96d720debbf /gcc
parentf46de383ed507006d6f1d9737856ad0db81ba470 (diff)
downloadgcc-b43502719f0727864d5a19fe08a081a334022e42.zip
gcc-b43502719f0727864d5a19fe08a081a334022e42.tar.gz
gcc-b43502719f0727864d5a19fe08a081a334022e42.tar.bz2
[NDS32] Restrict mov pattern that has at least one register operand.
gcc/ * config/nds32/nds32-doubleword.md (move_<mode>): Require resiter_operand condition. * config/nds32/nds32.md (*move<mode>): Ditto. From-SVN: r259077
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/nds32/nds32-doubleword.md3
-rw-r--r--gcc/config/nds32/nds32.md3
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f97ac2..bd0c1b1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,10 @@
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>
* config/nds32/nds32.md (movmisalign<mode>): New pattern.
diff --git a/gcc/config/nds32/nds32-doubleword.md b/gcc/config/nds32/nds32-doubleword.md
index beefca4..0e4b0dc 100644
--- a/gcc/config/nds32/nds32-doubleword.md
+++ b/gcc/config/nds32/nds32-doubleword.md
@@ -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];
diff --git a/gcc/config/nds32/nds32.md b/gcc/config/nds32/nds32.md
index 68fe1b3..afbea8b 100644
--- a/gcc/config/nds32/nds32.md
+++ b/gcc/config/nds32/nds32.md
@@ -158,7 +158,8 @@
(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)
{