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 4dbbd020572896ceb683470036894846af3c1d0d..9d32ba220ba4b5614aedd37c5941d6d8adedaab1 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 ac93faf6c5d8e82aa701df7fceb80a205188bd4e..19fd4747713368a5612446636472030d2948a6f1 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 b1039e53547766f2fa2640979d83f09745aada86..47dba463aaaa1d89c8b91f52b9e3429409d39b1f 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 d2935f3183035fadb21d5e282264bf782d2936bf..d03790909d5e2ac55690564e0fd10cc327981dd1 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 6f4b32eba274e2051a9cb1492de6fdbc8e2fe230..49ffaf6ecd0294bdafe427155dd0c5440372bf10 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