* arm-linux-nat.c (store_register, store_regs): Handle
authorDaniel Jacobowitz <drow@false.org>
Tue, 29 Mar 2005 16:58:23 +0000 (16:58 +0000)
committerDaniel Jacobowitz <drow@false.org>
Tue, 29 Mar 2005 16:58:23 +0000 (16:58 +0000)
ARM_PS_REGNUM.

gdb/ChangeLog
gdb/arm-linux-nat.c

index e0a34a33683afa0211a09b0896554a0ff8b5d850..75b86ac7da6230bfe0d19872020512fcab8f02fe 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * arm-linux-nat.c (store_register, store_regs): Handle
+       ARM_PS_REGNUM.
+
 2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * arm-linux-tdep.c (arm_linux_thumb_be_breakpoint)
index b5311f4c2c061484d5321a381fcb420e1cbf8876..8059af6c052e221c9f459021e4621b235d8c8c1b 100644 (file)
@@ -492,6 +492,12 @@ store_register (int regno)
 
   if (regno >= ARM_A1_REGNUM && regno <= ARM_PC_REGNUM)
     regcache_raw_collect (current_regcache, regno, (char *) &regs[regno]);
+  else if (arm_apcs_32 && regno == ARM_PS_REGNUM)
+    regcache_raw_collect (current_regcache, regno,
+                        (char *) &regs[ARM_CPSR_REGNUM]);
+  else if (!arm_apcs_32 && regno == ARM_PS_REGNUM)
+    regcache_raw_collect (current_regcache, ARM_PC_REGNUM,
+                        (char *) &regs[ARM_PC_REGNUM]);
 
   ret = ptrace (PTRACE_SETREGS, tid, 0, &regs);
   if (ret < 0)
@@ -524,6 +530,10 @@ store_regs (void)
        regcache_raw_collect (current_regcache, regno, (char *) &regs[regno]);
     }
 
+  if (arm_apcs_32 && register_cached (ARM_PS_REGNUM))
+    regcache_raw_collect (current_regcache, ARM_PS_REGNUM,
+                        (char *) &regs[ARM_CPSR_REGNUM]);
+
   ret = ptrace (PTRACE_SETREGS, tid, 0, &regs);
 
   if (ret < 0)