This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Minor tidy in tc-hppa.c


This came about after seeing wrong completer chars in error messages.
I've had it languishing in my tree for a long time.

	* config/tc-hppa.c (pa_parse_nonneg_cmpsub_cmpltr): Remove
	"isbranch" param as all calls have it set.
	(pa_parse_neg_cmpsub_cmpltr): Likewise.
	(pa_parse_nonneg_add_cmpltr): Likewise.  Remember result of
	strcasecmp in "nullify" var.
	(pa_parse_neg_add_cmpltr): Likewise.
	(pa_ip): Don't "save_s" unnecessarily.  Update calls to above
	functions.  Don't print wrong conditions in error messages.

-- 
Alan Modra

Index: gas/config/tc-hppa.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-hppa.c,v
retrieving revision 1.85
diff -u -p -r1.85 tc-hppa.c
--- tc-hppa.c	2001/06/22 08:17:57	1.85
+++ tc-hppa.c	2001/07/23 11:24:49
@@ -508,10 +508,10 @@ static int evaluate_absolute PARAMS ((st
 static unsigned int pa_build_arg_reloc PARAMS ((char *));
 static unsigned int pa_align_arg_reloc PARAMS ((unsigned int, unsigned int));
 static int pa_parse_nullif PARAMS ((char **));
-static int pa_parse_nonneg_cmpsub_cmpltr PARAMS ((char **, int));
-static int pa_parse_neg_cmpsub_cmpltr PARAMS ((char **, int));
-static int pa_parse_neg_add_cmpltr PARAMS ((char **, int));
-static int pa_parse_nonneg_add_cmpltr PARAMS ((char **, int));
+static int pa_parse_nonneg_cmpsub_cmpltr PARAMS ((char **));
+static int pa_parse_neg_cmpsub_cmpltr PARAMS ((char **));
+static int pa_parse_neg_add_cmpltr PARAMS ((char **));
+static int pa_parse_nonneg_add_cmpltr PARAMS ((char **));
 static int pa_parse_cmpb_64_cmpltr PARAMS ((char **));
 static int pa_parse_cmpib_64_cmpltr PARAMS ((char **));
 static int pa_parse_addb_64_cmpltr PARAMS ((char **));
@@ -1597,8 +1597,6 @@ pa_ip (str)
       as_fatal (_("Unknown opcode: `%s'"), str);
     }
 
-  save_s = str;
-
   /* Look up the opcode in the has table.  */
   if ((insn = (struct pa_opcode *) hash_find (op_hash, str)) == NULL)
     {
@@ -2425,10 +2423,10 @@ pa_ip (str)
 
 		  /* Handle non-negated add and branch condition.  */
 		  case 'd':
-		    cmpltr = pa_parse_nonneg_add_cmpltr (&s, 1);
+		    cmpltr = pa_parse_nonneg_add_cmpltr (&s);
 		    if (cmpltr < 0)
 		      {
-			as_bad (_("Invalid Add and Branch Condition: %c"), *s);
+			as_bad (_("Invalid Add and Branch Condition"));
 			cmpltr = 0;
 		      }
 		    INSERT_FIELD_AND_CONTINUE (opcode, cmpltr, 13);
@@ -2438,7 +2436,7 @@ pa_ip (str)
 		    cmpltr = pa_parse_addb_64_cmpltr (&s);
 		    if (cmpltr < 0)
 		      {
-			as_bad (_("Invalid Add and Branch Condition: %c"), *s);
+			as_bad (_("Invalid Add and Branch Condition"));
 			cmpltr = 0;
 		      }
 		    else
@@ -2452,11 +2450,11 @@ pa_ip (str)
 		     condition.  */
 		  case '@':
 		    save_s = s;
-		    cmpltr = pa_parse_nonneg_add_cmpltr (&s, 1);
+		    cmpltr = pa_parse_nonneg_add_cmpltr (&s);
 		    if (cmpltr < 0)
 		      {
 			s = save_s;
-			cmpltr = pa_parse_neg_add_cmpltr (&s, 1);
+			cmpltr = pa_parse_neg_add_cmpltr (&s);
 			if (cmpltr < 0)
 			  {
 			    as_bad (_("Invalid Compare/Subtract Condition"));
@@ -2594,10 +2592,10 @@ pa_ip (str)
 
 		  /* Handle a non-negated compare condition.  */
 		  case 't':
-		    cmpltr = pa_parse_nonneg_cmpsub_cmpltr (&s, 1);
+		    cmpltr = pa_parse_nonneg_cmpsub_cmpltr (&s);
 		    if (cmpltr < 0)
 		      {
-			as_bad (_("Invalid Compare/Subtract Condition: %c"), *s);
+			as_bad (_("Invalid Compare/Subtract Condition"));
 			cmpltr = 0;
 		      }
 		    INSERT_FIELD_AND_CONTINUE (opcode, cmpltr, 13);
@@ -2605,14 +2603,14 @@ pa_ip (str)
 		  /* Handle a 32 bit compare and branch condition.  */
 		  case 'n':
 		    save_s = s;
-		    cmpltr = pa_parse_nonneg_cmpsub_cmpltr (&s, 1);
+		    cmpltr = pa_parse_nonneg_cmpsub_cmpltr (&s);
 		    if (cmpltr < 0)
 		      {
 			s = save_s;
-			cmpltr = pa_parse_neg_cmpsub_cmpltr (&s, 1);
+			cmpltr = pa_parse_neg_cmpsub_cmpltr (&s);
 			if (cmpltr < 0)
 			  {
-			    as_bad (_("Invalid Compare and Branch Condition."));
+			    as_bad (_("Invalid Compare and Branch Condition"));
 			    cmpltr = 0;
 			  }
 			else
@@ -5348,16 +5346,11 @@ pa_parse_nullif (s)
 }
 
 /* Parse a non-negated compare/subtract completer returning the
-   number (for encoding in instrutions) of the given completer.
-
-   ISBRANCH specifies whether or not this is parsing a condition
-   completer for a branch (vs a nullification completer for a
-   computational instruction.  */
+   number (for encoding in instrutions) of the given completer.  */
 
 static int
-pa_parse_nonneg_cmpsub_cmpltr (s, isbranch)
+pa_parse_nonneg_cmpsub_cmpltr (s)
      char **s;
-     int isbranch;
 {
   int cmpltr;
   char *name = *s + 1;
@@ -5404,7 +5397,7 @@ pa_parse_nonneg_cmpsub_cmpltr (s, isbran
 	}
       /* If we have something like addb,n then there is no condition
          completer.  */
-      else if (strcasecmp (name, "n") == 0 && isbranch)
+      else if (strcasecmp (name, "n") == 0)
 	{
 	  cmpltr = 0;
 	  nullify = 1;
@@ -5424,16 +5417,11 @@ pa_parse_nonneg_cmpsub_cmpltr (s, isbran
 }
 
 /* Parse a negated compare/subtract completer returning the
-   number (for encoding in instrutions) of the given completer.
+   number (for encoding in instrutions) of the given completer.  */
 
-   ISBRANCH specifies whether or not this is parsing a condition
-   completer for a branch (vs a nullification completer for a
-   computational instruction.  */
-
 static int
-pa_parse_neg_cmpsub_cmpltr (s, isbranch)
+pa_parse_neg_cmpsub_cmpltr (s)
      char **s;
-     int isbranch;
 {
   int cmpltr;
   char *name = *s + 1;
@@ -5484,7 +5472,7 @@ pa_parse_neg_cmpsub_cmpltr (s, isbranch)
 	}
       /* If we have something like addb,n then there is no condition
          completer.  */
-      else if (strcasecmp (name, "n") == 0 && isbranch)
+      else if (strcasecmp (name, "n") == 0)
 	{
 	  cmpltr = 0;
 	  nullify = 1;
@@ -5663,21 +5651,17 @@ pa_parse_cmpib_64_cmpltr (s)
 }
 
 /* Parse a non-negated addition completer returning the number
-   (for encoding in instrutions) of the given completer.
-
-   ISBRANCH specifies whether or not this is parsing a condition
-   completer for a branch (vs a nullification completer for a
-   computational instruction.  */
+   (for encoding in instrutions) of the given completer.  */
 
 static int
-pa_parse_nonneg_add_cmpltr (s, isbranch)
+pa_parse_nonneg_add_cmpltr (s)
      char **s;
-     int isbranch;
 {
   int cmpltr;
   char *name = *s + 1;
   char c;
   char *save_s = *s;
+  int nullify = 0;
 
   cmpltr = 0;
   if (**s == ',')
@@ -5717,9 +5701,10 @@ pa_parse_nonneg_add_cmpltr (s, isbranch)
 	}
       /* If we have something like addb,n then there is no condition
          completer.  */
-      else if (strcasecmp (name, "n") == 0 && isbranch)
+      else if (strcasecmp (name, "n") == 0)
 	{
 	  cmpltr = 0;
+	  nullify = 1;
 	}
       else
 	{
@@ -5729,28 +5714,24 @@ pa_parse_nonneg_add_cmpltr (s, isbranch)
     }
 
   /* Reset pointers if this was really a ,n for a branch instruction.  */
-  if (cmpltr == 0 && *name == 'n' && isbranch)
+  if (nullify)
     *s = save_s;
 
   return cmpltr;
 }
 
 /* Parse a negated addition completer returning the number
-   (for encoding in instrutions) of the given completer.
-
-   ISBRANCH specifies whether or not this is parsing a condition
-   completer for a branch (vs a nullification completer for a
-   computational instruction).  */
+   (for encoding in instrutions) of the given completer.  */
 
 static int
-pa_parse_neg_add_cmpltr (s, isbranch)
+pa_parse_neg_add_cmpltr (s)
      char **s;
-     int isbranch;
 {
   int cmpltr;
   char *name = *s + 1;
   char c;
   char *save_s = *s;
+  int nullify = 0;
 
   cmpltr = 0;
   if (**s == ',')
@@ -5794,9 +5775,10 @@ pa_parse_neg_add_cmpltr (s, isbranch)
 	}
       /* If we have something like addb,n then there is no condition
          completer.  */
-      else if (strcasecmp (name, "n") == 0 && isbranch)
+      else if (strcasecmp (name, "n") == 0)
 	{
 	  cmpltr = 0;
+	  nullify = 1;
 	}
       else
 	{
@@ -5806,7 +5788,7 @@ pa_parse_neg_add_cmpltr (s, isbranch)
     }
 
   /* Reset pointers if this was really a ,n for a branch instruction.  */
-  if (cmpltr == 0 && *name == 'n' && isbranch)
+  if (nullify)
     *s = save_s;
 
   return cmpltr;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]