aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-d10v.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2df90da..0d2ddd4 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2001-11-29 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/tc-d10v.c (find_opcode): Reject non-SP operand if
+ flags requires SP.
+
2001-11-29 Arati Dikey <aratid@kpit.com>
* tc-sh.c (parse_at): Removed case-sensitivity of index register
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index 43fd89c..284b2af 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -1276,7 +1276,8 @@ find_opcode (opcode, myops)
if (X_op != O_register
|| (num & ~flags
& (OPERAND_GPR | OPERAND_ACC0 | OPERAND_ACC1
- | OPERAND_FFLAG | OPERAND_CFLAG | OPERAND_CONTROL)))
+ | OPERAND_FFLAG | OPERAND_CFLAG | OPERAND_CONTROL))
+ || ((flags & OPERAND_SP) && ! (num & OPERAND_SP)))
{
as_bad (_("bad opcode or operands"));
return 0;
@@ -1385,7 +1386,8 @@ find_opcode (opcode, myops)
|| (num & ~flags
& (OPERAND_GPR | OPERAND_ACC0 | OPERAND_ACC1
| OPERAND_FFLAG | OPERAND_CFLAG
- | OPERAND_CONTROL)))
+ | OPERAND_CONTROL))
+ || ((flags & OPERAND_SP) && ! (num & OPERAND_SP)))
{
match = 0;
break;