aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2007-11-29 09:34:14 +0000
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-11-29 09:34:14 +0000
commite6181b6abd09e4be7838fac3c57cc64977878e73 (patch)
tree952921bf7efce3381e1a6f72878b8a2345e77783 /gas/config
parent39ce1a6a19467e6b495ee1858884d0e34513d504 (diff)
downloadgdb-e6181b6abd09e4be7838fac3c57cc64977878e73.zip
gdb-e6181b6abd09e4be7838fac3c57cc64977878e73.tar.gz
gdb-e6181b6abd09e4be7838fac3c57cc64977878e73.tar.bz2
2007-11-29 Martin Schwidefsky <schwidefsky@de.ibm.com>
* config/tc-s390.c (md_begin): If the -mesa option is specified add zarch opcodes to the hash table only if there is no variant that is available for the esa mode as well. 2007-11-29 Martin Schwidefsky <schwidefsky@de.ibm.com> * gas/s390/esa-z9-109.d: Add check for old version of sske. * gas/s390/esa-z9-109.s: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-s390.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index ac93faf..19fd474 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -512,17 +512,22 @@ md_begin ()
op_end = s390_opcodes + s390_num_opcodes;
for (op = s390_opcodes; op < op_end; op++)
- if (op->min_cpu <= current_cpu)
- {
- retval = hash_insert (s390_opcode_hash, op->name, (PTR) 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)
+ {
+ while (op < op_end - 1 && strcmp(op->name, op[1].name) == 0)
+ {
+ if (op->min_cpu <= current_cpu && (op->modes & current_mode_mask))
+ break;
op++;
+ }
+ retval = hash_insert (s390_opcode_hash, op->name, (PTR) 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++;
}
if (dup_insn)