aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/alpha-nat.c4
-rw-r--r--gdb/alpha-tdep.c13
3 files changed, 23 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e9c9f5a..ad51437 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,15 @@
2004-12-01 Joel Brobecker <brobecker@gnat.com>
+ * alpha-tdep.c (alpha_register_name): Add comment.
+ (alpha_cannot_fetch_register): Exclude registers numbers which
+ are no longer used from the list of registers that can be fetched.
+ (alpha_cannot_store_register): Exclude registers numbers which
+ are no longer used from the list of registers that can be stored.
+ * alpha-nat.c (fetch_osf_core_registers): Add missing value in
+ core_reg_mapping array.
+
+2004-12-01 Joel Brobecker <brobecker@gnat.com>
+
* alpha-tdep.c (alpha_heuristic_frame_prev_register): Fetch
the register value from the correct frame.
diff --git a/gdb/alpha-nat.c b/gdb/alpha-nat.c
index 6fe6bdf..f8d04b1 100644
--- a/gdb/alpha-nat.c
+++ b/gdb/alpha-nat.c
@@ -80,7 +80,7 @@ fetch_osf_core_registers (char *core_reg_sect, unsigned core_reg_size,
EFL + 8, EFL + 9, EFL + 10, EFL + 11, EFL + 12, EFL + 13, EFL + 14, EFL + 15,
EFL + 16, EFL + 17, EFL + 18, EFL + 19, EFL + 20, EFL + 21, EFL + 22, EFL + 23,
EFL + 24, EFL + 25, EFL + 26, EFL + 27, EFL + 28, EFL + 29, EFL + 30, EFL + 31,
- CF_PC, -1
+ CF_PC, -1, -1
#else
#define EFL (EF_SIZE / 8)
EF_V0, EF_T0, EF_T1, EF_T2, EF_T3, EF_T4, EF_T5, EF_T6,
@@ -91,7 +91,7 @@ fetch_osf_core_registers (char *core_reg_sect, unsigned core_reg_size,
EFL + 8, EFL + 9, EFL + 10, EFL + 11, EFL + 12, EFL + 13, EFL + 14, EFL + 15,
EFL + 16, EFL + 17, EFL + 18, EFL + 19, EFL + 20, EFL + 21, EFL + 22, EFL + 23,
EFL + 24, EFL + 25, EFL + 26, EFL + 27, EFL + 28, EFL + 29, EFL + 30, EFL + 31,
- EF_PC, -1
+ EF_PC, -1, -1
#endif
};
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 71d29da..5dc8558 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -47,6 +47,13 @@
#include "alpha-tdep.h"
+/* Return the name of the REGNO register.
+
+ An empty name corresponds to a register number that used to
+ be used for a virtual register. That virtual register has
+ been removed, but the index is still reserved to maintain
+ compatibility with existing remote alpha targets. */
+
static const char *
alpha_register_name (int regno)
{
@@ -73,13 +80,15 @@ alpha_register_name (int regno)
static int
alpha_cannot_fetch_register (int regno)
{
- return regno == ALPHA_ZERO_REGNUM;
+ return (regno == ALPHA_ZERO_REGNUM
+ || strlen (alpha_register_name (regno)) == 0);
}
static int
alpha_cannot_store_register (int regno)
{
- return regno == ALPHA_ZERO_REGNUM;
+ return (regno == ALPHA_ZERO_REGNUM
+ || strlen (alpha_register_name (regno)) == 0);
}
static struct type *