Add special case handling when GDB set CPSR register
authorNick Clifton <nickc@redhat.com>
Tue, 23 May 2000 23:52:46 +0000 (23:52 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 23 May 2000 23:52:46 +0000 (23:52 +0000)
sim/arm/ChangeLog
sim/arm/wrapper.c

index bb55ddd..9649c39 100644 (file)
@@ -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.
index 8417f40..003dec6 100644 (file)
@@ -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;
 }