mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
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 <scottb@netwinder.org> * config/tc-arm.c (do_mrs): Allow SPSR_BIT to be set correctly.
This commit is contained in:
parent
697fa7e013
commit
9fa3abac63
@ -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-22 David O'Brien <obrien@FreeBSD.org>
|
||||
|
||||
* configure.in: Recognize alpha-*-freebsd*.
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user