From fd8f87c5ee748e4422976989ae1b4371cca639b3 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Mon, 7 Jul 2003 15:17:55 +0000 Subject: * mips-linux-nat.c (mips_linux_cannot_fetch_register) (mips_linux_cannot_store_register): List supported instead of unsupported registers. --- gdb/ChangeLog | 6 ++++++ gdb/mips-linux-nat.c | 53 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 06b1918..27481e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2003-07-07 Daniel Jacobowitz + * mips-linux-nat.c (mips_linux_cannot_fetch_register) + (mips_linux_cannot_store_register): List supported instead of + unsupported registers. + +2003-07-07 Daniel Jacobowitz + * disasm.c (dump_insns): Separate instructions from addresses. 2003-07-07 Andreas Schwab diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index a0469f6..6d58055 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -1,6 +1,6 @@ /* Native-dependent code for GNU/Linux on MIPS processors. - Copyright 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GDB. @@ -29,31 +29,42 @@ int mips_linux_cannot_fetch_register (int regno) { - if (REGISTER_NAME (regno)[0] == 0) - return 1; - if (regno == PS_REGNUM) - return 1; - else if (regno == ZERO_REGNUM) - return 1; - else + if (regno > ZERO_REGNUM && regno < ZERO_REGNUM + 32) return 0; + else if (regno >= FP0_REGNUM && regno <= FP0_REGNUM + 32) + return 0; + + switch (regno) + { + case LO_REGNUM: + case HI_REGNUM: + case BADVADDR_REGNUM: + case CAUSE_REGNUM: + case PC_REGNUM: + case FCRCS_REGNUM: + case FCRIR_REGNUM: + return 0; + } + + return 1; } int mips_linux_cannot_store_register (int regno) { - if (REGISTER_NAME (regno)[0] == 0) - return 1; - if (regno == PS_REGNUM) - return 1; - else if (regno == ZERO_REGNUM) - return 1; - else if (regno == BADVADDR_REGNUM) - return 1; - else if (regno == CAUSE_REGNUM) - return 1; - else if (regno == FCRIR_REGNUM) - return 1; - else + if (regno > ZERO_REGNUM && regno < ZERO_REGNUM + 32) return 0; + else if (regno >= FP0_REGNUM && regno <= FP0_REGNUM + 32) + return 0; + + switch (regno) + { + case LO_REGNUM: + case HI_REGNUM: + case PC_REGNUM: + case FCRCS_REGNUM: + return 0; + } + + return 1; } -- cgit v1.1