aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-05-23 23:52:46 +0000
committerNick Clifton <nickc@redhat.com>2000-05-23 23:52:46 +0000
commit3463c3fbbbaf4466adce4b8c712924e96c624d0b (patch)
tree198ec588e2d9b1f53b3f69fd18056e53f61fa813 /sim
parentb2450fc5b631986802421ce2cadb3522eee74ae1 (diff)
downloadfsf-binutils-gdb-3463c3fbbbaf4466adce4b8c712924e96c624d0b.zip
fsf-binutils-gdb-3463c3fbbbaf4466adce4b8c712924e96c624d0b.tar.gz
fsf-binutils-gdb-3463c3fbbbaf4466adce4b8c712924e96c624d0b.tar.bz2
Add special case handling when GDB set CPSR register
Diffstat (limited to 'sim')
-rw-r--r--sim/arm/ChangeLog5
-rw-r--r--sim/arm/wrapper.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/sim/arm/ChangeLog b/sim/arm/ChangeLog
index bb55ddd..9649c39 100644
--- a/sim/arm/ChangeLog
+++ b/sim/arm/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-23 Nick Clifton <nickc@cygnus.com>
+
+ * wrapper.c (sim_store_register): Special handling for CPSR
+ register.
+
2000-03-11 Philip Blundell <philb@gnu.org>
* armemu.c (LoadSMult, LoadMult): Correct handling of aborts.
diff --git a/sim/arm/wrapper.c b/sim/arm/wrapper.c
index 8417f40..003dec6 100644
--- a/sim/arm/wrapper.c
+++ b/sim/arm/wrapper.c
@@ -320,7 +320,13 @@ sim_store_register (sd, rn, memory, length)
int length ATTRIBUTE_UNUSED;
{
init ();
- ARMul_SetReg (state, state->Mode, rn, frommem (state, memory));
+ if (rn == 25)
+ {
+ state->Cpsr = frommem (state, memory);
+ ARMul_CPSRAltered (state);
+ }
+ else
+ ARMul_SetReg (state, state->Mode, rn, frommem (state, memory));
return -1;
}