* config/tc-hppa.c (pa_ip): Check for invalid 64-bit conditions.
authorDave Anglin <dave.anglin@nrc.ca>
Sat, 27 Sep 2003 18:19:29 +0000 (18:19 +0000)
committerDave Anglin <dave.anglin@nrc.ca>
Sat, 27 Sep 2003 18:19:29 +0000 (18:19 +0000)
gas/ChangeLog
gas/config/tc-hppa.c

index 47c820c4a2065565b535debd2bd080e67f594d20..e8666ad9e172d8b5e3114438ee12579ccaba6520 100644 (file)
@@ -1,3 +1,7 @@
+2003-09-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * config/tc-hppa.c (pa_ip): Check for invalid 64-bit conditions.
+
 2003-09-26  Matt Thomas  <matt@3am-software.com>
 
        * config/tc-vax.c (md_shortopts): Fix a typo.  Remove 'K'.
index 39da02ed17ee96cf96abd1f52debe100d214196a..89b39e5b4cdac3206a686719802ba82c4cc4d5bd 100644 (file)
@@ -2357,7 +2357,6 @@ pa_ip (str)
                          }
                        else if (*s == '*')
                          break;
-                       name = s;
 
                        name = s;
                        while (*s != ',' && *s != ' ' && *s != '\t')
@@ -2419,7 +2418,7 @@ pa_ip (str)
                            flag = 1;
                          }
                        /* ",*" is a valid condition.  */
-                       else if (*args == 'a')
+                       else if (*args == 'a' || *name)
                          as_bad (_("Invalid Add Condition: %s"), name);
                        *s = c;
                      }
@@ -2525,7 +2524,6 @@ pa_ip (str)
                          }
                        else if (*s == '*')
                          break;
-                       name = s;
 
                        name = s;
                        while (*s != ',' && *s != ' ' && *s != '\t')
@@ -2587,7 +2585,7 @@ pa_ip (str)
                            flag = 1;
                          }
                        /* ",*" is a valid condition.  */
-                       else if (*args != 'S')
+                       else if (*args != 'S' || *name)
                          as_bad (_("Invalid Compare/Subtract Condition: %s"),
                                  name);
                        *s = c;
@@ -2710,7 +2708,7 @@ pa_ip (str)
                            flag = 1;
                          }
                        /* ",*" is a valid condition.  */
-                       else if (*args != 'L')
+                       else if (*args != 'L' || *name)
                          as_bad (_("Invalid Logical Instruction Condition."));
                        *s = c;
                      }
@@ -2765,7 +2763,7 @@ pa_ip (str)
                            continue;
                          }
                        /* ",*" is a valid condition.  */
-                       else if (*args != 'X')
+                       else if (*args != 'X' || *name)
                          as_bad (_("Invalid Shift/Extract/Deposit Condition."));
                        *s = c;
                      }
@@ -2877,7 +2875,7 @@ pa_ip (str)
                            s += 3;
                          }
                        /* ",*" is a valid condition.  */
-                       else if (*args != 'U')
+                       else if (*args != 'U' || (*s != ' ' && *s != '\t'))
                          as_bad (_("Invalid Unit Instruction Condition."));
                      }
                    opcode |= cmpltr << 13;