SPR maximum number (OR32_MAX_SPR_REGS) is set to
64K (32 groups of 2048 registers).
---
gdb/or32-tdep.c | 6 +++---
gdb/or32-tdep.h | 4 +++-
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/gdb/or32-tdep.c b/gdb/or32-tdep.c
index a69bb20..aa0e953 100644
--- a/gdb/or32-tdep.c
+++ b/gdb/or32-tdep.c
@@ -639,7 +639,7 @@ static const char *
or32_register_name (struct gdbarch *gdbarch,
int regnum)
{
- static char *or32_gdb_reg_names[OR32_TOTAL_NUM_REGS] =
+ static char *or32_gdb_reg_names[OR32_NUM_REGS_CACHED] =
{
/* general purpose registers */
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
@@ -739,7 +739,7 @@ or32_registers_info (struct gdbarch *gdbarch,
if (-1 == regnum)
{
/* Do all (valid) registers */
- unsigned int lim = all ? OR32_NUM_REGS : OR32_MAX_GPR_REGS;
+ unsigned int lim = all ? OR32_NUM_REGS_CACHED : OR32_MAX_GPR_REGS;
for (regnum = 0; regnum < lim; regnum++) {
if ('\0' != *(or32_register_name (gdbarch, regnum)))
@@ -792,7 +792,7 @@ or32_register_reggroup_p (struct gdbarch *gdbarch,
if (group == all_reggroup)
{
return ((regnum >= 0) &&
- (regnum < OR32_TOTAL_NUM_REGS) &&
+ (regnum < OR32_NUM_REGS_CACHED) &&
(or32_register_name (gdbarch, regnum)[0] != '\0'));
}
diff --git a/gdb/or32-tdep.h b/gdb/or32-tdep.h
index c4d38bd..7068e9c 100644
--- a/gdb/or32-tdep.h
+++ b/gdb/or32-tdep.h
@@ -320,8 +320,10 @@
followed by the PPC, NPC and SR at the end. Red zone is the area past the
end of the stack reserved for exception handlers etc. */
#define OR32_MAX_GPR_REGS 32
+#define OR32_MAX_SPR_REGS (32 * 2048)
#define OR32_NUM_PSEUDO_REGS 0
-#define OR32_NUM_REGS (OR32_MAX_GPR_REGS + 3)
+#define OR32_NUM_REGS_CACHED (OR32_MAX_GPR_REGS + 3)
+#define OR32_NUM_REGS (OR32_NUM_REGS_CACHED + OR32_MAX_SPR_REGS)
#define OR32_TOTAL_NUM_REGS (OR32_NUM_REGS + OR32_NUM_PSEUDO_REGS)
#define OR32_MAX_MATCHPOINTS 8
#define OR32_MAX_HW_WATCHES OR32_MAX_MATCHPOINTS
--
1.7.1
_______________________________________________
OpenRISC mailing list
[email protected]
http://lists.openrisc.net/listinfo/openrisc