aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2003-07-07 15:17:55 +0000
committerDaniel Jacobowitz <drow@false.org>2003-07-07 15:17:55 +0000
commitfd8f87c5ee748e4422976989ae1b4371cca639b3 (patch)
tree41081f4684d6501f129eee2f040a16c75d12890e
parent13adf674f82f329778457cfd2dc03438960e3930 (diff)
downloadgdb-fd8f87c5ee748e4422976989ae1b4371cca639b3.zip
gdb-fd8f87c5ee748e4422976989ae1b4371cca639b3.tar.gz
gdb-fd8f87c5ee748e4422976989ae1b4371cca639b3.tar.bz2
* mips-linux-nat.c (mips_linux_cannot_fetch_register)
(mips_linux_cannot_store_register): List supported instead of unsupported registers.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/mips-linux-nat.c53
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 <drow@mvista.com>
+ * 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 <drow@mvista.com>
+
* disasm.c (dump_insns): Separate instructions from addresses.
2003-07-07 Andreas Schwab <schwab@suse.de>
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;
}