aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-arm.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 98ac949..e04fceb 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-01 Scott Bambrough <scottb@netwinder.org>
+
+ * config/tc-arm.c (do_mrs): Allow SPSR_BIT to be set correctly.
+
2000-05-29 Nick Clifton <nickc@cygnus.com>
* config/tc-sh.c: Fix compile time warning messages.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 4c71976..c5b2cd7 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);