public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Jens Remus <jremus@linux.ibm.com>
To: binutils@sourceware.org
Cc: Jens Remus <jremus@linux.ibm.com>,
	Andreas Krebbel <krebbel@linux.ibm.com>
Subject: [PATCH 13/14] s390: Provide operand number in assembler warning and error messages
Date: Thu, 15 Feb 2024 16:58:20 +0100	[thread overview]
Message-ID: <20240215155821.4065623-14-jremus@linux.ibm.com> (raw)
In-Reply-To: <20240215155821.4065623-1-jremus@linux.ibm.com>

Prepend the operand number "operand %d:" to the s390-specific assembler
operand parsing warning and error messages.

While at it reword the custom operand out of range error message text to
be closer to the one used by as_bad_value_out_of_range(). Additionally
reword the invalid FPR pair warning message to make it nicer.

gas/
	* config/tc-s390.c: Print operand number in error messages.
	* testsuite/gas/s390/zarch-base-index-0-err.l: Update test case
	  verification patterns to accept syntax error messages now
	  containing the operand number.
	* testsuite/gas/s390/zarch-omitted-base-index-err.l: Likewise.
	* testsuite/gas/s390/zarch-warn-areg-zero.l: Likewise.
	* testsuite/gas/s390/zarch-z9-109-err.l: Likewise.
	* testsuite/gas/s390/zarch-z900-err.l: Likewise.

Reviewed-by: Andreas Krebbel <krebbel@linux.ibm.com>
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
---
 gas/config/tc-s390.c                          | 107 ++++++++++-----
 .../gas/s390/zarch-base-index-0-err.l         | 106 +++++++--------
 .../gas/s390/zarch-omitted-base-index-err.l   |  24 ++--
 gas/testsuite/gas/s390/zarch-warn-areg-zero.l | 128 +++++++++---------
 gas/testsuite/gas/s390/zarch-z9-109-err.l     |   2 +-
 gas/testsuite/gas/s390/zarch-z900-err.l       |   4 +-
 6 files changed, 206 insertions(+), 165 deletions(-)

diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 85a86d590ad1..786c372a9c1a 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -663,6 +663,41 @@ s390_md_finish (void)
     bfd_set_arch_mach (stdoutput, bfd_arch_s390, bfd_mach_s390_31);
 }
 
+static void
+s390_bad_operand_out_of_range (int operand_number,
+			       offsetT value,
+			       offsetT min,
+			       offsetT max,
+			       const char *file,
+			       unsigned line)
+{
+  const char * err;
+
+  if (operand_number > 0)
+    {
+      /* xgettext:c-format.  */
+      err =_("operand %d: operand out of range (%" PRId64
+	     " is not between %" PRId64 " and %" PRId64 ")");
+      if (file)
+	as_bad_where (file, line, err, operand_number,
+		      (int64_t) value, (int64_t) min, (int64_t) max);
+      else
+	as_bad (err, operand_number,
+		(int64_t) value, (int64_t) min, (int64_t) max);
+    }
+  else
+    {
+      /* xgettext:c-format.  */
+      err = _("operand out of range (%" PRId64
+	      " is not between %" PRId64 " and %" PRId64 ")");
+      if (file)
+	as_bad_where (file, line, err,
+		      (int64_t) value, (int64_t) min, (int64_t) max);
+      else
+	as_bad (err, (int64_t) value, (int64_t) min, (int64_t) max);
+    }
+}
+
 /* Insert an operand value into an instruction.  */
 
 static void
@@ -670,7 +705,8 @@ s390_insert_operand (unsigned char *insn,
 		     const struct s390_operand *operand,
 		     offsetT val,
 		     const char *file,
-		     unsigned int line)
+		     unsigned int line,
+		     int operand_number)
 {
   addressT uval;
   int offset;
@@ -687,21 +723,16 @@ s390_insert_operand (unsigned char *insn,
       /* Check for underflow / overflow.  */
       if (val < min || val > max)
 	{
-	  const char *err =
-	    _("operand out of range (%" PRId64 " not between %" PRId64
-	      " and %" PRId64 ")");
-
 	  if (operand->flags & S390_OPERAND_PCREL)
 	    {
 	      val = (offsetT) ((addressT) val << 1);
 	      min = (offsetT) ((addressT) min << 1);
 	      max = (offsetT) ((addressT) max << 1);
 	    }
-	  if (file == (char *) NULL)
-	    as_bad (err, (int64_t) val, (int64_t) min, (int64_t) max);
-	  else
-	    as_bad_where (file, line,
-			  err, (int64_t) val, (int64_t) min, (int64_t) max);
+
+	  s390_bad_operand_out_of_range (operand_number, val, min, max,
+					 file, line);
+
 	  return;
 	}
       /* val is ok, now restrict it to operand->bits bits.  */
@@ -736,7 +767,8 @@ s390_insert_operand (unsigned char *insn,
 	      max++;
 	    }
 
-	  as_bad_value_out_of_range (_("operand"), uval, (offsetT) min, (offsetT) max, file, line);
+	  s390_bad_operand_out_of_range (operand_number, val, min, max,
+					 file, line);
 
 	  return;
 	}
@@ -1364,7 +1396,7 @@ md_gather_operands (char *str,
 	{
 	  /* Optional parameters might need to be ORed with a
 	     value so calling s390_insert_operand is needed.  */
-	  s390_insert_operand (insn, operand, 0, NULL, 0);
+	  s390_insert_operand (insn, operand, 0, NULL, 0, operand_number);
 	  break;
 	}
 
@@ -1394,12 +1426,12 @@ md_gather_operands (char *str,
 
       /* Write the operand to the insn.  */
       if (ex.X_op == O_illegal)
-	as_bad (_("illegal operand"));
+	as_bad (_("operand %d: illegal operand"), operand_number);
       else if (ex.X_op == O_absent)
 	{
 	  if (opindex_ptr[0] == '\0')
 	    break;
-	  as_bad (_("missing operand"));
+	  as_bad (_("operand %d: missing operand"), operand_number);
 	}
       else if (ex.X_op == O_register || ex.X_op == O_constant)
 	{
@@ -1410,7 +1442,7 @@ md_gather_operands (char *str,
 	      /* We need to generate a fixup for the
 		 expression returned by s390_lit_suffix.  */
 	      if (fc >= MAX_INSN_FIXUPS)
-		as_fatal (_("too many fixups"));
+		as_fatal (_("operand %d: too many fixups"), operand_number);
 	      fixups[fc].exp = ex;
 	      fixups[fc].opindex = *opindex_ptr;
 	      fixups[fc].reloc = BFD_RELOC_UNUSED;
@@ -1420,29 +1452,32 @@ md_gather_operands (char *str,
 	    {
 	      if ((operand->flags & S390_OPERAND_LENGTH)
 		  && ex.X_op != O_constant)
-		as_bad (_("invalid length field specified"));
+		as_bad (_("operand %d: invalid length field specified"),
+			operand_number);
 	      if ((operand->flags & S390_OPERAND_INDEX)
 		  && ex.X_add_number == 0
 		  && warn_areg_zero)
-		as_warn (_("index register specified but zero"));
+		as_warn (_("operand %d: index register specified but zero"),
+			 operand_number);
 	      if ((operand->flags & S390_OPERAND_BASE)
 		  && ex.X_add_number == 0
 		  && warn_areg_zero)
-		as_warn (_("base register specified but zero"));
+		as_warn (_("operand %d: base register specified but zero"),
+			 operand_number);
 	      if ((operand->flags & S390_OPERAND_GPR)
 		  && (operand->flags & S390_OPERAND_REG_PAIR)
 		  && (ex.X_add_number & 1))
-		as_bad (_("odd numbered general purpose register specified as "
-			  "register pair"));
+		as_bad (_("operand %d: odd numbered general purpose register "
+			  "specified as register pair"), operand_number);
 	      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_bad (_("invalid floating point register pair.  Valid fp "
-			  "register pair operands are 0, 1, 4, 5, 8, 9, "
-			  "12 or 13."));
+		as_bad (_("operand %d: invalid floating-point register (FPR) "
+			  "pair (valid FPR pair operands are 0, 1, 4, 5, 8, 9, "
+			  "12 or 13)"), operand_number);
 	      if (warn_regtype_mismatch && ex.X_op == O_register
 		  && !(opcode->flags & S390_INSTR_FLAG_PSEUDO_MNEMONIC))
 		{
@@ -1481,7 +1516,7 @@ md_gather_operands (char *str,
 				 operand_number, expected_regtype);
 		    }
 		}
-	      s390_insert_operand (insn, operand, ex.X_add_number, NULL, 0);
+	      s390_insert_operand (insn, operand, ex.X_add_number, NULL, 0, operand_number);
 	    }
 	}
       else
@@ -1567,11 +1602,11 @@ md_gather_operands (char *str,
 	    }
 
 	  if (suffix != ELF_SUFFIX_NONE && reloc == BFD_RELOC_UNUSED)
-	    as_bad (_("invalid operand suffix"));
+	    as_bad (_("operand %d: invalid operand suffix"), operand_number);
 	  /* We need to generate a fixup of type 'reloc' for this
 	     expression.  */
 	  if (fc >= MAX_INSN_FIXUPS)
-	    as_fatal (_("too many fixups"));
+	    as_fatal (_("operand %d: too many fixups"), operand_number);
 	  fixups[fc].exp = ex;
 	  fixups[fc].opindex = *opindex_ptr;
 	  fixups[fc].reloc = reloc;
@@ -1591,7 +1626,8 @@ md_gather_operands (char *str,
 		 skipped. A length operand may not be skipped.  */
 	      operand = s390_operands + *(++opindex_ptr);
 	      if (!(operand->flags & (S390_OPERAND_INDEX|S390_OPERAND_BASE)))
-		as_bad (_("syntax error; missing '(' after displacement"));
+		as_bad (_("operand %d: syntax error; missing '(' after displacement"),
+			operand_number);
 
 	      /* Ok, skip all operands until S390_OPERAND_BASE.  */
 	      while (!(operand->flags & S390_OPERAND_BASE))
@@ -1611,7 +1647,8 @@ md_gather_operands (char *str,
 		      while (opindex_ptr[1] != '\0')
 			{
 			  operand = s390_operands + *(++opindex_ptr);
-			  as_bad (_("syntax error; expected ','"));
+			  as_bad (_("operand %d: syntax error; expected ','"),
+				  operand_number);
 			  break;
 			}
 		    }
@@ -1649,7 +1686,8 @@ md_gather_operands (char *str,
 	{
 	  /* After the base register the parenthesised block ends.  */
 	  if (*str != ')')
-	    as_bad (_("syntax error; missing ')' after base register"));
+	    as_bad (_("operand %d: syntax error; missing ')' after base register"),
+		    operand_number);
 	  else
 	    str++;
 	  omitted_base_or_index = 0;
@@ -1668,7 +1706,8 @@ md_gather_operands (char *str,
 		  while (opindex_ptr[1] != '\0')
 		    {
 		      operand = s390_operands + *(++opindex_ptr);
-		      as_bad (_("syntax error; expected ','"));
+		      as_bad (_("operand %d: syntax error; expected ','"),
+			      operand_number);
 		      break;
 		    }
 		}
@@ -1691,7 +1730,8 @@ md_gather_operands (char *str,
 	      operand = s390_operands + *(++opindex_ptr);
 
 	      if (!(operand->flags & S390_OPERAND_BASE))
-		as_bad (_("syntax error; '%c' not allowed here"), *str);
+		as_bad (_("operand %d: syntax error; '%c' not allowed here"),
+			operand_number, *str);
 	      if (*str == ',')
 		str++;
 	      str++;
@@ -1711,7 +1751,8 @@ md_gather_operands (char *str,
 		  while (opindex_ptr[1] != '\0')
 		    {
 		      operand = s390_operands + *(++opindex_ptr);
-		      as_bad (_("syntax error; expected ','"));
+		      as_bad (_("operand %d: syntax error; expected ','"),
+			      operand_number);
 		      break;
 		    }
 		}
@@ -2419,7 +2460,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
 	{
 	  /* Insert the fully resolved operand value.  */
 	  s390_insert_operand ((unsigned char *) where, operand,
-			       (offsetT) value, fixP->fx_file, fixP->fx_line);
+			       (offsetT) value, fixP->fx_file, fixP->fx_line, 0);
 	  return;
 	}
 
diff --git a/gas/testsuite/gas/s390/zarch-base-index-0-err.l b/gas/testsuite/gas/s390/zarch-base-index-0-err.l
index e7d03ecdfe11..6332d9943496 100644
--- a/gas/testsuite/gas/s390/zarch-base-index-0-err.l
+++ b/gas/testsuite/gas/s390/zarch-base-index-0-err.l
@@ -1,74 +1,74 @@
 .*: Assembler messages:
 .*:5: Error: bad expression
-.*:5: Error: syntax error; missing '\)' after base register
+.*:5: Error: operand 1: syntax error; missing '\)' after base register
 .*:8: Error: bad expression
-.*:8: Error: syntax error; missing '\)' after base register
+.*:8: Error: operand 2: syntax error; missing '\)' after base register
 .*:9: Error: bad expression
-.*:9: Error: syntax error; missing '\)' after base register
+.*:9: Error: operand 2: syntax error; missing '\)' after base register
 .*:12: Error: bad expression
-.*:12: Error: syntax error; missing '\)' after base register
+.*:12: Error: operand 2: syntax error; missing '\)' after base register
 .*:13: Error: bad expression
-.*:13: Error: syntax error; missing '\)' after base register
+.*:13: Error: operand 2: syntax error; missing '\)' after base register
 .*:14: Error: bad expression
-.*:14: Error: syntax error; missing '\)' after base register
+.*:14: Error: operand 2: syntax error; missing '\)' after base register
 .*:15: Error: bad expression
-.*:15: Error: syntax error; missing '\)' after base register
+.*:15: Error: operand 2: syntax error; missing '\)' after base register
 .*:16: Error: bad expression
-.*:16: Error: syntax error; missing '\)' after base register
-.*:17: Error: operand out of range \(0 is not between 1 and 256\)
-.*:18: Error: missing operand
-.*:19: Error: missing operand
-.*:20: Error: missing operand
+.*:16: Error: operand 2: syntax error; missing '\)' after base register
+.*:17: Error: operand 1: operand out of range \(0 is not between 1 and 256\)
+.*:18: Error: operand 1: missing operand
+.*:19: Error: operand 1: missing operand
+.*:20: Error: operand 1: missing operand
 .*:21: Error: bad expression
-.*:21: Error: operand out of range \(0 is not between 1 and 256\)
-.*:21: Error: operand out of range \(32 is not between 0 and 15\)
-.*:21: Error: syntax error; missing '\)' after base register
-.*:21: Error: syntax error; expected ','
+.*:21: Error: operand 1: operand out of range \(0 is not between 1 and 256\)
+.*:21: Error: operand 1: operand out of range \(32 is not between 0 and 15\)
+.*:21: Error: operand 1: syntax error; missing '\)' after base register
+.*:21: Error: operand 1: syntax error; expected ','
 .*:21: Error: bad expression
 .*:21: Error: found 'r', expected: '\)'
-.*:21: Error: syntax error; missing '\)' after base register
+.*:21: Error: operand 1: syntax error; missing '\)' after base register
 .*:21: Error: junk at end of line: `r2\)'
-.*:22: Error: syntax error; missing '\(' after displacement
-.*:23: Error: invalid length field specified
-.*:26: Error: operand out of range \(0 is not between 1 and 16\)
-.*:27: Error: missing operand
-.*:28: Error: missing operand
-.*:29: Error: missing operand
+.*:22: Error: operand 1: syntax error; missing '\(' after displacement
+.*:23: Error: operand 1: invalid length field specified
+.*:26: Error: operand 1: operand out of range \(0 is not between 1 and 16\)
+.*:27: Error: operand 1: missing operand
+.*:28: Error: operand 1: missing operand
+.*:29: Error: operand 1: missing operand
 .*:30: Error: bad expression
-.*:30: Error: operand out of range \(0 is not between 1 and 16\)
-.*:30: Error: operand out of range \(32 is not between 0 and 15\)
-.*:30: Error: syntax error; missing '\)' after base register
-.*:30: Error: syntax error; expected ','
+.*:30: Error: operand 1: operand out of range \(0 is not between 1 and 16\)
+.*:30: Error: operand 1: operand out of range \(32 is not between 0 and 15\)
+.*:30: Error: operand 1: syntax error; missing '\)' after base register
+.*:30: Error: operand 1: syntax error; expected ','
 .*:30: Error: found ',', expected: '\)'
-.*:31: Error: syntax error; missing '\(' after displacement
-.*:32: Error: operand out of range \(0 is not between 1 and 16\)
-.*:33: Error: missing operand
-.*:34: Error: missing operand
-.*:35: Error: missing operand
+.*:31: Error: operand 1: syntax error; missing '\(' after displacement
+.*:32: Error: operand 2: operand out of range \(0 is not between 1 and 16\)
+.*:33: Error: operand 2: missing operand
+.*:34: Error: operand 2: missing operand
+.*:35: Error: operand 2: missing operand
 .*:36: Error: bad expression
-.*:36: Error: operand out of range \(0 is not between 1 and 16\)
-.*:36: Error: syntax error; expected ','
-.*:37: Error: syntax error; missing '\(' after displacement
-.*:38: Error: operand out of range \(0 is not between 1 and 16\)
-.*:38: Error: operand out of range \(0 is not between 1 and 16\)
-.*:39: Error: missing operand
-.*:39: Error: missing operand
-.*:40: Error: missing operand
-.*:40: Error: missing operand
-.*:41: Error: missing operand
-.*:41: Error: missing operand
+.*:36: Error: operand 2: operand out of range \(0 is not between 1 and 16\)
+.*:36: Error: operand 2: syntax error; expected ','
+.*:37: Error: operand 2: syntax error; missing '\(' after displacement
+.*:38: Error: operand 1: operand out of range \(0 is not between 1 and 16\)
+.*:38: Error: operand 2: operand out of range \(0 is not between 1 and 16\)
+.*:39: Error: operand 1: missing operand
+.*:39: Error: operand 2: missing operand
+.*:40: Error: operand 1: missing operand
+.*:40: Error: operand 2: missing operand
+.*:41: Error: operand 1: missing operand
+.*:41: Error: operand 2: missing operand
 .*:42: Error: bad expression
-.*:42: Error: operand out of range \(0 is not between 1 and 16\)
-.*:42: Error: operand out of range \(32 is not between 0 and 15\)
-.*:42: Error: syntax error; missing '\)' after base register
-.*:42: Error: syntax error; expected ','
+.*:42: Error: operand 1: operand out of range \(0 is not between 1 and 16\)
+.*:42: Error: operand 1: operand out of range \(32 is not between 0 and 15\)
+.*:42: Error: operand 1: syntax error; missing '\)' after base register
+.*:42: Error: operand 1: syntax error; expected ','
 .*:42: Error: bad expression
 .*:42: Error: missing '\)'
-.*:42: Error: operand out of range \(0 is not between 1 and 16\)
-.*:42: Error: syntax error; expected ','
-.*:43: Error: syntax error; missing '\(' after displacement
-.*:43: Error: syntax error; missing '\(' after displacement
+.*:42: Error: operand 1: operand out of range \(0 is not between 1 and 16\)
+.*:42: Error: operand 1: syntax error; expected ','
+.*:43: Error: operand 1: syntax error; missing '\(' after displacement
+.*:43: Error: operand 2: syntax error; missing '\(' after displacement
 .*:46: Error: bad expression
-.*:46: Error: syntax error; missing '\)' after base register
+.*:46: Error: operand 2: syntax error; missing '\)' after base register
 .*:47: Error: bad expression
-.*:47: Error: syntax error; missing '\)' after base register
+.*:47: Error: operand 2: syntax error; missing '\)' after base register
diff --git a/gas/testsuite/gas/s390/zarch-omitted-base-index-err.l b/gas/testsuite/gas/s390/zarch-omitted-base-index-err.l
index f222fe00093e..b2ee382b0f9d 100644
--- a/gas/testsuite/gas/s390/zarch-omitted-base-index-err.l
+++ b/gas/testsuite/gas/s390/zarch-omitted-base-index-err.l
@@ -1,21 +1,21 @@
 .*: Assembler messages:
 .*:5: Error: bad expression
-.*:5: Error: syntax error; missing '\)' after base register
+.*:5: Error: operand 3: syntax error; missing '\)' after base register
 .*:8: Error: bad expression
-.*:8: Error: syntax error; missing '\)' after base register
+.*:8: Error: operand 2: syntax error; missing '\)' after base register
 .*:11: Warning: operand 2: expected general register name as base register
 .*:12: Error: bad expression
-.*:12: Error: syntax error; missing '\)' after base register
-.*:15: Error: missing operand
-.*:16: Error: missing operand
-.*:17: Error: invalid length field specified
+.*:12: Error: operand 2: syntax error; missing '\)' after base register
+.*:15: Error: operand 1: missing operand
+.*:16: Error: operand 1: missing operand
+.*:17: Error: operand 1: invalid length field specified
 .*:18: Error: bad expression
-.*:18: Error: operand out of range \(0 is not between 1 and 256\)
-.*:18: Error: operand out of range \(32 is not between 0 and 15\)
-.*:18: Error: syntax error; missing '\)' after base register
-.*:18: Error: syntax error; expected ','
+.*:18: Error: operand 1: operand out of range \(0 is not between 1 and 256\)
+.*:18: Error: operand 1: operand out of range \(32 is not between 0 and 15\)
+.*:18: Error: operand 1: syntax error; missing '\)' after base register
+.*:18: Error: operand 1: syntax error; expected ','
 .*:18: Error: bad expression
 .*:18: Error: found 'r', expected: '\)'
-.*:18: Error: syntax error; missing '\)' after base register
+.*:18: Error: operand 1: syntax error; missing '\)' after base register
 .*:18: Error: junk at end of line: `r2\)'
-.*:19: Error: syntax error; missing '\(' after displacement
+.*:19: Error: operand 1: syntax error; missing '\(' after displacement
diff --git a/gas/testsuite/gas/s390/zarch-warn-areg-zero.l b/gas/testsuite/gas/s390/zarch-warn-areg-zero.l
index decf896aecc7..b820e4c77a13 100644
--- a/gas/testsuite/gas/s390/zarch-warn-areg-zero.l
+++ b/gas/testsuite/gas/s390/zarch-warn-areg-zero.l
@@ -1,65 +1,65 @@
 .*: Assembler messages:
-.*:6: Warning: base register specified but zero
-.*:7: Warning: base register specified but zero
-.*:15: Warning: index register specified but zero
-.*:16: Warning: index register specified but zero
-.*:19: Warning: base register specified but zero
-.*:20: Warning: base register specified but zero
-.*:22: Warning: index register specified but zero
-.*:22: Warning: base register specified but zero
-.*:23: Warning: index register specified but zero
-.*:23: Warning: base register specified but zero
-.*:25: Warning: index register specified but zero
-.*:25: Warning: base register specified but zero
-.*:26: Warning: index register specified but zero
-.*:26: Warning: base register specified but zero
-.*:28: Warning: index register specified but zero
-.*:28: Warning: base register specified but zero
-.*:29: Warning: base register specified but zero
-.*:30: Warning: base register specified but zero
-.*:40: Warning: base register specified but zero
-.*:41: Warning: base register specified but zero
-.*:44: Warning: base register specified but zero
-.*:45: Warning: base register specified but zero
-.*:48: Warning: base register specified but zero
-.*:48: Warning: base register specified but zero
-.*:49: Warning: base register specified but zero
-.*:49: Warning: base register specified but zero
-.*:51: Warning: base register specified but zero
-.*:52: Warning: base register specified but zero
-.*:52: Warning: base register specified but zero
-.*:53: Warning: base register specified but zero
-.*:53: Warning: base register specified but zero
-.*:55: Warning: base register specified but zero
-.*:60: Warning: base register specified but zero
-.*:61: Warning: base register specified but zero
-.*:68: Warning: base register specified but zero
-.*:69: Warning: base register specified but zero
-.*:72: Warning: base register specified but zero
-.*:73: Warning: base register specified but zero
-.*:76: Warning: base register specified but zero
-.*:76: Warning: base register specified but zero
-.*:77: Warning: base register specified but zero
-.*:77: Warning: base register specified but zero
-.*:79: Warning: base register specified but zero
-.*:80: Warning: base register specified but zero
-.*:80: Warning: base register specified but zero
-.*:81: Warning: base register specified but zero
-.*:81: Warning: base register specified but zero
-.*:83: Warning: base register specified but zero
-.*:88: Warning: base register specified but zero
-.*:89: Warning: base register specified but zero
-.*:96: Warning: index register specified but zero
-.*:97: Warning: index register specified but zero
-.*:100: Warning: base register specified but zero
-.*:101: Warning: base register specified but zero
-.*:103: Warning: index register specified but zero
-.*:103: Warning: base register specified but zero
-.*:104: Warning: index register specified but zero
-.*:104: Warning: base register specified but zero
-.*:106: Warning: index register specified but zero
-.*:106: Warning: base register specified but zero
-.*:107: Warning: index register specified but zero
-.*:107: Warning: base register specified but zero
-.*:109: Warning: base register specified but zero
-.*:110: Warning: base register specified but zero
+.*:6: Warning: operand 1: base register specified but zero
+.*:7: Warning: operand 1: base register specified but zero
+.*:15: Warning: operand 2: index register specified but zero
+.*:16: Warning: operand 2: index register specified but zero
+.*:19: Warning: operand 2: base register specified but zero
+.*:20: Warning: operand 2: base register specified but zero
+.*:22: Warning: operand 2: index register specified but zero
+.*:22: Warning: operand 2: base register specified but zero
+.*:23: Warning: operand 2: index register specified but zero
+.*:23: Warning: operand 2: base register specified but zero
+.*:25: Warning: operand 2: index register specified but zero
+.*:25: Warning: operand 2: base register specified but zero
+.*:26: Warning: operand 2: index register specified but zero
+.*:26: Warning: operand 2: base register specified but zero
+.*:28: Warning: operand 2: index register specified but zero
+.*:28: Warning: operand 2: base register specified but zero
+.*:29: Warning: operand 2: base register specified but zero
+.*:30: Warning: operand 2: base register specified but zero
+.*:40: Warning: operand 1: base register specified but zero
+.*:41: Warning: operand 1: base register specified but zero
+.*:44: Warning: operand 2: base register specified but zero
+.*:45: Warning: operand 2: base register specified but zero
+.*:48: Warning: operand 1: base register specified but zero
+.*:48: Warning: operand 2: base register specified but zero
+.*:49: Warning: operand 1: base register specified but zero
+.*:49: Warning: operand 2: base register specified but zero
+.*:51: Warning: operand 1: base register specified but zero
+.*:52: Warning: operand 1: base register specified but zero
+.*:52: Warning: operand 2: base register specified but zero
+.*:53: Warning: operand 1: base register specified but zero
+.*:53: Warning: operand 2: base register specified but zero
+.*:55: Warning: operand 1: base register specified but zero
+.*:60: Warning: operand 2: base register specified but zero
+.*:61: Warning: operand 2: base register specified but zero
+.*:68: Warning: operand 1: base register specified but zero
+.*:69: Warning: operand 1: base register specified but zero
+.*:72: Warning: operand 2: base register specified but zero
+.*:73: Warning: operand 2: base register specified but zero
+.*:76: Warning: operand 1: base register specified but zero
+.*:76: Warning: operand 2: base register specified but zero
+.*:77: Warning: operand 1: base register specified but zero
+.*:77: Warning: operand 2: base register specified but zero
+.*:79: Warning: operand 1: base register specified but zero
+.*:80: Warning: operand 1: base register specified but zero
+.*:80: Warning: operand 2: base register specified but zero
+.*:81: Warning: operand 1: base register specified but zero
+.*:81: Warning: operand 2: base register specified but zero
+.*:83: Warning: operand 1: base register specified but zero
+.*:88: Warning: operand 2: base register specified but zero
+.*:89: Warning: operand 2: base register specified but zero
+.*:96: Warning: operand 2: index register specified but zero
+.*:97: Warning: operand 2: index register specified but zero
+.*:100: Warning: operand 2: base register specified but zero
+.*:101: Warning: operand 2: base register specified but zero
+.*:103: Warning: operand 2: index register specified but zero
+.*:103: Warning: operand 2: base register specified but zero
+.*:104: Warning: operand 2: index register specified but zero
+.*:104: Warning: operand 2: base register specified but zero
+.*:106: Warning: operand 2: index register specified but zero
+.*:106: Warning: operand 2: base register specified but zero
+.*:107: Warning: operand 2: index register specified but zero
+.*:107: Warning: operand 2: base register specified but zero
+.*:109: Warning: operand 2: base register specified but zero
+.*:110: Warning: operand 2: base register specified but zero
diff --git a/gas/testsuite/gas/s390/zarch-z9-109-err.l b/gas/testsuite/gas/s390/zarch-z9-109-err.l
index 84d294de960a..b5460b65046d 100644
--- a/gas/testsuite/gas/s390/zarch-z9-109-err.l
+++ b/gas/testsuite/gas/s390/zarch-z9-109-err.l
@@ -1,2 +1,2 @@
 .*: Assembler messages:
-.*:3: Error: odd numbered general purpose register specified as register pair
+.*:3: Error: operand 1: odd numbered general purpose register specified as register pair
diff --git a/gas/testsuite/gas/s390/zarch-z900-err.l b/gas/testsuite/gas/s390/zarch-z900-err.l
index cf8e9c2cefcc..2886802963ef 100644
--- a/gas/testsuite/gas/s390/zarch-z900-err.l
+++ b/gas/testsuite/gas/s390/zarch-z900-err.l
@@ -1,3 +1,3 @@
 .*: Assembler messages:
-.*:3: Error: operand out of range \(-4294967298 not between -4294967296 and 4294967294\)
-.*:4: Error: operand out of range \(4294967296 not between -4294967296 and 4294967294\)
+.*:3: Error: operand out of range \(-4294967298 is not between -4294967296 and 4294967294\)
+.*:4: Error: operand out of range \(4294967296 is not between -4294967296 and 4294967294\)
-- 
2.40.1


  parent reply	other threads:[~2024-02-15 15:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-15 15:58 [PATCH 00/14] s390: Enhancements to working with addressing operands Jens Remus
2024-02-15 15:58 ` [PATCH 01/14] s390: Lower severity of assembler syntax errors from fatal to error Jens Remus
2024-02-15 15:58 ` [PATCH 02/14] s390: Enhance handling of syntax errors in assembler Jens Remus
2024-02-15 15:58 ` [PATCH 03/14] s390: Do not erroneously use base operand value for length operand Jens Remus
2024-02-15 15:58 ` [PATCH 04/14] s390: Correct setting of highgprs flag in ELF output Jens Remus
2024-02-15 15:58 ` [PATCH 05/14] s390: Assemble processor specific test cases for their processor Jens Remus
2024-02-15 15:58 ` [PATCH 06/14] s390: Add comments to assembler operand parsing logic Jens Remus
2024-02-15 15:58 ` [PATCH 07/14] s390: Add test cases for base/index register 0 Jens Remus
2024-02-15 15:58 ` [PATCH 08/14] s390: Add test case for disassembler option warn-areg-zero Jens Remus
2024-02-15 15:58 ` [PATCH 09/14] s390: Revise s390-specific assembler option descriptions Jens Remus
2024-02-15 15:58 ` [PATCH 10/14] s390: Warn when register name type does not match operand Jens Remus
2024-02-15 15:58 ` [PATCH 11/14] s390: Print base register 0 as "0" in disassembly Jens Remus
2024-02-15 15:58 ` [PATCH 12/14] s390: Allow to explicitly omit base register operand in assembly Jens Remus
2024-02-15 15:58 ` Jens Remus [this message]
2024-02-15 15:58 ` [PATCH 14/14] s390: Be more verbose about missing operand type Jens Remus
2024-03-01 12:24 ` [PATCH 00/14] s390: Enhancements to working with addressing operands Jens Remus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240215155821.4065623-14-jremus@linux.ibm.com \
    --to=jremus@linux.ibm.com \
    --cc=binutils@sourceware.org \
    --cc=krebbel@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).