diff options
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-s390.c | 17 |
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++; } |