From: Scott Bambrough Date: Thu, 1 Jun 2000 19:15:39 +0000 (+0000) Subject: The ARM assembler is not assembling the following instruction X-Git-Tag: binutils-2_10~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9fa3abac636abada18d487527408bfe341f8f84a;p=thirdparty%2Fbinutils-gdb.git The ARM assembler is not assembling the following instruction correctly. mrs lr, spsr The string pointer is advanced to far before the check to set the SPSR bit. 2000-06-01 Scott Bambrough * config/tc-arm.c (do_mrs): Allow SPSR_BIT to be set correctly. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 0136e9c7f02..2dd69418f27 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2000-06-01 Scott Bambrough + + * config/tc-arm.c (do_mrs): Allow SPSR_BIT to be set correctly. + 2000-05-22 David O'Brien * configure.in: Recognize alpha-*-freebsd*. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 44c05b3c6eb..aadea2699c9 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -1915,6 +1915,8 @@ do_mrs (str, flags) char *str; unsigned long flags; { + int skip = 0; + /* Only one syntax. */ skip_whitespace (str); @@ -1937,11 +1939,11 @@ do_mrs (str, flags) /* Lower case versions for backwards compatability. */ || strcmp (str, "cpsr") == 0 || strcmp (str, "spsr") == 0) - str += 4; + skip = 4; /* This is for backwards compatability with older toolchains. */ else if (strcmp (str, "cpsr_all") == 0 || strcmp (str, "spsr_all") == 0) - str += 7; + skip = 7; else { inst.error = _("{C|S}PSR expected"); @@ -1950,6 +1952,7 @@ do_mrs (str, flags) if (* str == 's' || * str == 'S') inst.instruction |= SPSR_BIT; + str += skip; inst.instruction |= flags; end_of_line (str);