* 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 e0a34a3..75b86ac 100644 (file)
@@ -1,5 +1,10 @@
 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)
        (arm_linux_thumb_le_breakpoint): New.  Update comments.
        (arm_linux_init_abi): Set Thumb breakpoints also.
index b5311f4..8059af6 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)