2007-11-29 Martin Schwidefsky <schwidefsky@de.ibm.com>
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 29 Nov 2007 09:34:14 +0000 (09:34 +0000)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 29 Nov 2007 09:34:14 +0000 (09:34 +0000)
* 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.

gas/ChangeLog
gas/config/tc-s390.c
gas/testsuite/ChangeLog
gas/testsuite/gas/s390/esa-z9-109.d
gas/testsuite/gas/s390/esa-z9-109.s

index 4dbbd02..9d32ba2 100644 (file)
@@ -1,3 +1,9 @@
+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-26  Thomas Ogrisegg  <tom-bugs@gas.fnord.at>
 
        * config/tc-alpha.c (assemble_insn): Don't segv on NULL reloc_operand.
index ac93faf..19fd474 100644 (file)
@@ -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)
index b1039e5..47dba46 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * gas/s390/zarch-z9-ec.d: ("tcet", "tcdt", "tcxt", "tget",
index d2935f3..d037909 100644 (file)
@@ -10,3 +10,4 @@ Disassembly of section .text:
 .*:    b9 92 f0 69 [    ]*trot %r6,%r9,15
 .*:    b9 91 f0 69 [    ]*trto %r6,%r9,15
 .*:    b9 90 f0 69 [    ]*trtt %r6,%r9,15
+.*:    b2 2b 00 69 [    ]*sske %r6,%r9
index 6f4b32e..49ffaf6 100644 (file)
@@ -4,3 +4,6 @@ foo:
        trot    %r6,%r9,15
        trto    %r6,%r9,15
        trtt    %r6,%r9,15
+# z9-109 z/Architecture mode extended sske with an additional parameter
+# make sure the old version still works for esa
+       sske    %r6,%r9