From bfcfbe611b4d7e650236f8b8ba7d0706cfe6a0b7 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Mon, 29 May 2017 12:33:15 +0200 Subject: [PATCH] S/390: Remove optional operand flag. The per operand optional flag hasn't been used for quite some time. Cleanup some remains. include/ChangeLog: 2017-05-30 Andreas Krebbel * opcode/s390.h: Remove S390_OPERAND_OPTIONAL. gas/ChangeLog: 2017-05-30 Andreas Krebbel * config/tc-s390.c (md_gather_operands): Remove code dealing with S390_OPERAND_OPTIONAL. --- gas/config/tc-s390.c | 19 ------------------- include/opcode/s390.h | 16 ++++++---------- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index 40c9f6f88e3..a31cb3a7673 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -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; } diff --git a/include/opcode/s390.h b/include/opcode/s390.h index 2e07664425d..a2d42e0fb62 100644 --- a/include/opcode/s390.h +++ b/include/opcode/s390.h @@ -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 */ -- 2.30.2