S/390: Remove optional operand flag.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 29 May 2017 10:33:15 +0000 (12:33 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Tue, 30 May 2017 08:19:59 +0000 (10:19 +0200)
The per operand optional flag hasn't been used for quite some time.
Cleanup some remains.

include/ChangeLog:

2017-05-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* opcode/s390.h: Remove S390_OPERAND_OPTIONAL.

gas/ChangeLog:

2017-05-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/tc-s390.c (md_gather_operands): Remove code dealing with
S390_OPERAND_OPTIONAL.

gas/config/tc-s390.c
include/opcode/s390.h

index 40c9f6f88e3500caf4f8cd8c9c112cdcfd95be0d..a31cb3a767373fc0f7088e703fa919beb507d563 100644 (file)
@@ -1304,19 +1304,6 @@ md_gather_operands (char *str,
        as_bad (_("illegal operand"));
       else if (ex.X_op == O_absent)
        {
-         /* No operands, check if all operands can be skipped.  */
-         while (*opindex_ptr != 0 && operand->flags & S390_OPERAND_OPTIONAL)
-           {
-             if (operand->flags & S390_OPERAND_DISP)
-               {
-                 /* An optional displacement makes the whole D(X,B)
-                    D(L,B) or D(B) block optional.  */
-                 do {
-                   operand = s390_operands + *(++opindex_ptr);
-                 } while (!(operand->flags & S390_OPERAND_BASE));
-               }
-             operand = s390_operands + *(++opindex_ptr);
-           }
          if (opindex_ptr[0] == '\0')
            break;
          as_bad (_("missing operand"));
@@ -1486,8 +1473,6 @@ md_gather_operands (char *str,
                      while (opindex_ptr[1] != '\0')
                        {
                          operand = s390_operands + *(++opindex_ptr);
-                         if (operand->flags & S390_OPERAND_OPTIONAL)
-                           continue;
                          as_bad (_("syntax error; expected ','"));
                          break;
                        }
@@ -1530,8 +1515,6 @@ md_gather_operands (char *str,
                  while (opindex_ptr[1] != '\0')
                    {
                      operand = s390_operands + *(++opindex_ptr);
-                     if (operand->flags & S390_OPERAND_OPTIONAL)
-                       continue;
                      as_bad (_("syntax error; expected ','"));
                      break;
                    }
@@ -1564,8 +1547,6 @@ md_gather_operands (char *str,
                  while (opindex_ptr[1] != '\0')
                    {
                      operand = s390_operands + *(++opindex_ptr);
-                     if (operand->flags & S390_OPERAND_OPTIONAL)
-                       continue;
                      as_bad (_("syntax error; expected ','"));
                      break;
                    }
index 2e07664425d7d2afd5de653465d4de233eef63e9..a2d42e0fb62ae76d4380e46ed5477af45697f61f 100644 (file)
@@ -156,21 +156,17 @@ extern const struct s390_operand s390_operands[];
 /* This operand is a length.  */
 #define S390_OPERAND_LENGTH 0x200
 
-/* This operand is optional. Only a single operand at the end of
-   the instruction may be optional.  */
-#define S390_OPERAND_OPTIONAL 0x400
-
 /* The operand needs to be a valid GP or FP register pair.  */
-#define S390_OPERAND_REG_PAIR 0x800
+#define S390_OPERAND_REG_PAIR 0x400
 
 /* This operand names a vector register.  The disassembler uses this
    to print register names with a leading 'v'.  */
-#define S390_OPERAND_VR 0x1000
+#define S390_OPERAND_VR 0x800
 
-#define S390_OPERAND_CP16 0x2000
+#define S390_OPERAND_CP16 0x1000
 
-#define S390_OPERAND_OR1 0x4000
-#define S390_OPERAND_OR2 0x8000
-#define S390_OPERAND_OR8 0x10000
+#define S390_OPERAND_OR1 0x2000
+#define S390_OPERAND_OR2 0x4000
+#define S390_OPERAND_OR8 0x8000
 
 #endif /* S390_H */