Uppercase condition codes
Paul Brook
paul@codesourcery.com
Thu May 22 16:55:00 GMT 2008
The parset for the thumb-2 IT instruction currently only accepts lowercase
condition codes. Patch below makes it case insensitive, like the rest of the
assembly syntax. When condition codes are used as part of an opcode the
string has already been converted to lower case, so this problem does not
occur.
Tested on arm-eabi.
Applied to cvs HEAD.
Paul
2008-05-22 Paul Brook <paul@codesourcery.com>
gas/
* config/tc-arm.c (parse_cond): Covert to lowercase before matching.
Index: gas/config/tc-arm.c
===================================================================
--- gas/config/tc-arm.c (revision 208768)
+++ gas/config/tc-arm.c (working copy)
@@ -5045,14 +5045,23 @@ parse_ror (char **str)
static int
parse_cond (char **str)
{
- char *p, *q;
+ char *q;
const struct asm_cond *c;
+ int n;
+ /* Condition codes are always 2 characters, so matching up to
+ 3 characters is sufficient. */
+ char cond[3];
- p = q = *str;
- while (ISALPHA (*q))
- q++;
+ q = *str;
+ n = 0;
+ while (ISALPHA (*q) && n < 3)
+ {
+ cond[n] = TOLOWER(*q);
+ q++;
+ n++;
+ }
- c = hash_find_n (arm_cond_hsh, p, q - p);
+ c = hash_find_n (arm_cond_hsh, cond, n);
if (!c)
{
inst.error = _("condition required");
More information about the Binutils
mailing list