From: Simon Marchi Date: Mon, 20 Mar 2017 22:23:47 +0000 (-0400) Subject: spu: Use ptid from regcache instead of inferior_ptid X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=639a9038c9f4fc50b6a57c18fe84db4559367a96;p=binutils-gdb.git spu: Use ptid from regcache instead of inferior_ptid The implementations of to_fetch_registers/to_store_registers in the spu code use some functions that rely on inferior_ptid. It's simpler for now to set/restore inferior_ptid. gdb/ChangeLog: * spu-linux-nat.c (spu_fetch_inferior_registers, spu_store_inferior_registers): Use ptid from regcache, set and restore inferior_ptid. * spu-multiarch.c (spu_fetch_registers, spu_store_registers): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 70d48a5e58d..02ab32c697f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2017-03-20 Simon Marchi + + * spu-linux-nat.c (spu_fetch_inferior_registers, + spu_store_inferior_registers): Use ptid from regcache, set and + restore inferior_ptid. + * spu-multiarch.c (spu_fetch_registers, spu_store_registers): + Likewise. + 2017-03-20 Simon Marchi * i386-linux-nat.c (fetch_register, store_register, diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c index c5b91222c14..19552fc1feb 100644 --- a/gdb/spu-linux-nat.c +++ b/gdb/spu-linux-nat.c @@ -492,6 +492,11 @@ spu_fetch_inferior_registers (struct target_ops *ops, int fd; ULONGEST addr; + /* Since we use functions that rely on inferior_ptid, we need to set and + restore it. */ + scoped_restore save_ptid + = make_scoped_restore (&inferior_ptid, regcache_get_ptid (regcache)); + /* We must be stopped on a spu_run system call. */ if (!parse_spufs_run (&fd, &addr)) return; @@ -539,6 +544,11 @@ spu_store_inferior_registers (struct target_ops *ops, int fd; ULONGEST addr; + /* Since we use functions that rely on inferior_ptid, we need to set and + restore it. */ + scoped_restore save_ptid + = make_scoped_restore (&inferior_ptid, regcache_get_ptid (regcache)); + /* We must be stopped on a spu_run system call. */ if (!parse_spufs_run (&fd, &addr)) return; diff --git a/gdb/spu-multiarch.c b/gdb/spu-multiarch.c index b99a1a3de3d..abc46535cf8 100644 --- a/gdb/spu-multiarch.c +++ b/gdb/spu-multiarch.c @@ -149,6 +149,11 @@ spu_fetch_registers (struct target_ops *ops, int spufs_fd; CORE_ADDR spufs_addr; + /* Since we use functions that rely on inferior_ptid, we need to set and + restore it. */ + scoped_restore save_ptid + = make_scoped_restore (&inferior_ptid, regcache_get_ptid (regcache)); + /* This version applies only if we're currently in spu_run. */ if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu) { @@ -203,6 +208,11 @@ spu_store_registers (struct target_ops *ops, int spufs_fd; CORE_ADDR spufs_addr; + /* Since we use functions that rely on inferior_ptid, we need to set and + restore it. */ + scoped_restore save_ptid + = make_scoped_restore (&inferior_ptid, regcache_get_ptid (regcache)); + /* This version applies only if we're currently in spu_run. */ if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu) {