diff --git a/gas/ChangeLog b/gas/ChangeLog index 98ac94984a..e04fcebf62 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-29 Nick Clifton * config/tc-sh.c: Fix compile time warning messages. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 4c71976c87..c5b2cd768f 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -1914,6 +1914,8 @@ do_mrs (str, flags) char *str; unsigned long flags; { + int skip = 0; + /* Only one syntax. */ skip_whitespace (str); @@ -1936,11 +1938,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"); @@ -1949,6 +1951,7 @@ do_mrs (str, flags) if (* str == 's' || * str == 'S') inst.instruction |= SPSR_BIT; + str += skip; inst.instruction |= flags; end_of_line (str);