diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 12 |
2 files changed, 9 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 47c820c4a2..e8666ad9e1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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'. diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 39da02ed17..89b39e5b4c 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -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; |