aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-s390.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index cf9f8a1..273ddd6 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -506,13 +506,18 @@ md_begin (void)
break;
op++;
}
- retval = hash_insert (s390_opcode_hash, op->name, (void *) op);
- if (retval != (const char *) NULL)
- {
- as_bad (_("Internal assembler error for instruction %s"),
- op->name);
- dup_insn = TRUE;
+
+ if (op->min_cpu <= current_cpu && (op->modes & current_mode_mask))
+ {
+ retval = hash_insert (s390_opcode_hash, op->name, (void *) op);
+ if (retval != (const char *) NULL)
+ {
+ as_bad (_("Internal assembler error for instruction %s"),
+ op->name);
+ dup_insn = TRUE;
+ }
}
+
while (op < op_end - 1 && strcmp (op->name, op[1].name) == 0)
op++;
}