aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2011-05-24 16:13:31 +0000
committerAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2011-05-24 16:13:31 +0000
commitc8fa16ed5ab3fe171ad9d5f5e4bad585ce639c27 (patch)
tree8c2cfbc316f82a3ec295374d87b63e997fe8d9dc /gas/config
parentcdac0397bf4a5390c5fd087edb0bb07ce4b423ef (diff)
downloadfsf-binutils-gdb-c8fa16ed5ab3fe171ad9d5f5e4bad585ce639c27.zip
fsf-binutils-gdb-c8fa16ed5ab3fe171ad9d5f5e4bad585ce639c27.tar.gz
fsf-binutils-gdb-c8fa16ed5ab3fe171ad9d5f5e4bad585ce639c27.tar.bz2
2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/tc-s390.c (md_gather_operands): Fix check for floating register pair operands. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * opcode/s390.h: Replace S390_OPERAND_REG_EVEN with S390_OPERAND_REG_PAIR. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * s390-opc.c: Replace S390_OPERAND_REG_EVEN with S390_OPERAND_REG_PAIR. Fix INSTR_RRF_0UFEF instruction type. * s390-opc.txt: Fix cxr instruction type. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gas/s390/esa-g5.d: Fix fp register pair operands. * gas/s390/esa-g5.s: Likewise. * gas/s390/zarch-z196.d: Likewise. * gas/s390/zarch-z196.s: Likewise. * gas/s390/zarch-z9-109.d: Likewise. * gas/s390/zarch-z9-109.s: Likewise. * gas/s390/zarch-z9-ec.d: Likewise. * gas/s390/zarch-z9-ec.s: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-s390.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 36d5974..180a67f 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -1267,9 +1267,20 @@ md_gather_operands (char *str,
&& ex.X_add_number == 0
&& warn_areg_zero)
as_warn (_("base register specified but zero"));
- if ((operand->flags & S390_OPERAND_REG_EVEN)
+ if ((operand->flags & S390_OPERAND_GPR)
+ && (operand->flags & S390_OPERAND_REG_PAIR)
&& (ex.X_add_number & 1))
- as_fatal (_("odd numbered register specified as register pair"));
+ as_fatal (_("odd numbered general purpose register specified as "
+ "register pair"));
+ if ((operand->flags & S390_OPERAND_FPR)
+ && (operand->flags & S390_OPERAND_REG_PAIR)
+ && ex.X_add_number != 0 && ex.X_add_number != 1
+ && ex.X_add_number != 4 && ex.X_add_number != 5
+ && ex.X_add_number != 8 && ex.X_add_number != 9
+ && ex.X_add_number != 12 && ex.X_add_number != 13)
+ as_fatal (_("invalid floating point register pair. Valid fp "
+ "register pair operands are 0, 1, 4, 5, 8, 9, "
+ "12 or 13."));
s390_insert_operand (insn, operand, ex.X_add_number, NULL, 0);
}
}