diff options
author | Daniel Jacobowitz <dan@debian.org> | 2005-03-29 16:58:23 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2005-03-29 16:58:23 +0000 |
commit | 3839323d98020519a11cda2717ff9a0ff5a8ec15 (patch) | |
tree | d0a4dede70e4d631d418473343eb3b5cad0c7f15 /gdb/arm-linux-nat.c | |
parent | a722256a62c6417d4df625005a1baf31483e2088 (diff) | |
download | gdb-3839323d98020519a11cda2717ff9a0ff5a8ec15.tar.gz |
* arm-linux-nat.c (store_register, store_regs): Handle
ARM_PS_REGNUM.
Diffstat (limited to 'gdb/arm-linux-nat.c')
-rw-r--r-- | gdb/arm-linux-nat.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index b5311f4c2c0..8059af6c052 100644 --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c @@ -492,6 +492,12 @@ store_register (int regno) if (regno >= ARM_A1_REGNUM && regno <= ARM_PC_REGNUM) regcache_raw_collect (current_regcache, regno, (char *) ®s[regno]); + else if (arm_apcs_32 && regno == ARM_PS_REGNUM) + regcache_raw_collect (current_regcache, regno, + (char *) ®s[ARM_CPSR_REGNUM]); + else if (!arm_apcs_32 && regno == ARM_PS_REGNUM) + regcache_raw_collect (current_regcache, ARM_PC_REGNUM, + (char *) ®s[ARM_PC_REGNUM]); ret = ptrace (PTRACE_SETREGS, tid, 0, ®s); if (ret < 0) @@ -524,6 +530,10 @@ store_regs (void) regcache_raw_collect (current_regcache, regno, (char *) ®s[regno]); } + if (arm_apcs_32 && register_cached (ARM_PS_REGNUM)) + regcache_raw_collect (current_regcache, ARM_PS_REGNUM, + (char *) ®s[ARM_CPSR_REGNUM]); + ret = ptrace (PTRACE_SETREGS, tid, 0, ®s); if (ret < 0) |