diff -urpN src/gdb/go32-nat.c dev/gdb/go32-nat.c --- src/gdb/go32-nat.c 2007-08-23 20:08:33.000000000 +0200 +++ dev/gdb/go32-nat.c 2007-10-11 10:36:08.000000000 +0200 @@ -465,7 +465,7 @@ go32_wait (ptid_t ptid, struct target_wa static void fetch_register (struct regcache *regcache, int regno) { - if (regno < gdbarch_fp0_regnum (current_gdbarch)) + if (regno < gdbarch_fp0_regnum (get_regcache_arch (regcache))) regcache_raw_supply (regcache, regno, (char *) &a_tss + regno_mapping[regno].tss_ofs); else if (i386_fp_regnum_p (regno) || i386_fpc_regnum_p (regno)) @@ -482,7 +482,8 @@ go32_fetch_registers (struct regcache *r fetch_register (regcache, regno); else { - for (regno = 0; regno < gdbarch_fp0_regnum (current_gdbarch); regno++) + for (regno = 0; + regno < gdbarch_fp0_regnum (get_regcache_arch (regcache)); regno++) fetch_register (regcache, regno); i387_supply_fsave (regcache, -1, &npx); } @@ -491,7 +492,7 @@ go32_fetch_registers (struct regcache *r static void store_register (const struct regcache *regcache, int regno) { - if (regno < gdbarch_fp0_regnum (current_gdbarch)) + if (regno < gdbarch_fp0_regnum (get_regcache_arch (regcache))) regcache_raw_collect (regcache, regno, (char *) &a_tss + regno_mapping[regno].tss_ofs); else if (i386_fp_regnum_p (regno) || i386_fpc_regnum_p (regno)) @@ -510,7 +511,7 @@ go32_store_registers (struct regcache *r store_register (regcache, regno); else { - for (r = 0; r < gdbarch_fp0_regnum (current_gdbarch); r++) + for (r = 0; r < gdbarch_fp0_regnum (get_regcache_arch (regcache)); r++) store_register (regcache, r); i387_collect_fsave (regcache, -1, &npx); }