aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/linux-ppc-low.c4
-rw-r--r--gdb/gdbserver/linux-s390-low.c5
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 ();