From 5e4b319cdce89a35764b749bf7ea33e7dfbddf0e Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Tue, 24 May 2011 13:33:57 +0000 Subject: 2011-05-24 Andreas Krebbel * config/tc-s390.c (md_gather_operands): Emit an error for odd numbered registers used as register pair operand. 2011-05-24 Andreas Krebbel * opcode/s390.h: Add S390_OPCODE_REG_EVEN flag. 2011-05-24 Andreas Krebbel * s390-opc.c: Add new instruction types marking register pair operands. * s390-opc.txt: Match instructions having register pair operands to the new instruction types. 2011-05-24 Andreas Krebbel * gas/s390/esa-g5.d: Fix register pair operands. * gas/s390/esa-g5.s: Likewise. * gas/s390/esa-z9-109.d: Likewise. * gas/s390/esa-z9-109.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-z900.d: Likewise. * gas/s390/zarch-z900.s: Likewise. * gas/s390/zarch-z990.d: Likewise. * gas/s390/zarch-z990.s: Likewise. --- gas/config/tc-s390.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gas/config') diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index 8fc66d8..36d5974 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -1267,6 +1267,9 @@ 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) + && (ex.X_add_number & 1)) + as_fatal (_("odd numbered register specified as register pair")); s390_insert_operand (insn, operand, ex.X_add_number, NULL, 0); } } -- cgit v1.1