diff options
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/linux-ppc-low.c | 4 | ||||
-rw-r--r-- | gdb/gdbserver/linux-s390-low.c | 5 |
3 files changed, 12 insertions, 2 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 665556c..a43e0ea 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2010-06-14 Ulrich Weigand <uweigand@de.ibm.com> + + * linux-ppc-low.c (ppc_arch_setup): Use private regcache to test MSR. + * linux-s390-low.c (ppc_arch_setup): Use private regcache to test PSW. + 2010-06-01 Pedro Alves <pedro@codesourcery.com> Stan Shebs <stan@codesourcery.com> diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c index 000b20f..48cf7c0 100644 --- a/gdb/gdbserver/linux-ppc-low.c +++ b/gdb/gdbserver/linux-ppc-low.c @@ -345,8 +345,10 @@ ppc_arch_setup (void) /* Only if the high bit of the MSR is set, we actually have a 64-bit inferior. */ - regcache = get_thread_regcache (current_inferior, 1); + regcache = new_register_cache (); + fetch_inferior_registers (regcache, find_regno ("msr")); collect_register_by_name (regcache, "msr", &msr); + free_register_cache (regcache); if (msr < 0) { ppc_get_hwcap (&ppc_hwcap); diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c index eb865dc..943d8c5 100644 --- a/gdb/gdbserver/linux-s390-low.c +++ b/gdb/gdbserver/linux-s390-low.c @@ -270,8 +270,11 @@ s390_arch_setup (void) #ifdef __s390x__ { unsigned int pswm; - struct regcache *regcache = get_thread_regcache (current_inferior, 1); + struct regcache *regcache = new_register_cache (); + fetch_inferior_registers (regcache, find_regno ("pswm")); collect_register_by_name (regcache, "pswm", &pswm); + free_register_cache (regcache); + if (pswm & 1) init_registers_s390x_linux64 (); |