aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-tdep.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2002-04-11 19:08:56 +0000
committerKevin Buettner <kevinb@redhat.com>2002-04-11 19:08:56 +0000
commite3f36dbd4775498d38cb5a6d24608c2c7626c209 (patch)
treea01700c885dc4055a433ff88f2baf668120343f2 /gdb/rs6000-tdep.c
parent943c9c25d602a474cff9d9c6a1a4563d6c23548d (diff)
downloadfsf-binutils-gdb-e3f36dbd4775498d38cb5a6d24608c2c7626c209.zip
fsf-binutils-gdb-e3f36dbd4775498d38cb5a6d24608c2c7626c209.tar.gz
fsf-binutils-gdb-e3f36dbd4775498d38cb5a6d24608c2c7626c209.tar.bz2
Add support for the fpscr register for Power / PowerPC targets.
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r--gdb/rs6000-tdep.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 4b07b5d..73b2cba 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -2075,7 +2075,7 @@ rs6000_convert_from_func_ptr_addr (CORE_ADDR addr)
/* UISA-level SPRs for PowerPC. */
#define PPC_UISA_SPRS \
- /* 66 */ R4(cr), R(lr), R(ctr), R4(xer), R0
+ /* 66 */ R4(cr), R(lr), R(ctr), R4(xer), R4(fpscr)
/* Segment registers, for PowerPC. */
#define PPC_SEGMENT_REGS \
@@ -2109,7 +2109,8 @@ rs6000_convert_from_func_ptr_addr (CORE_ADDR addr)
static const struct reg registers_power[] =
{
COMMON_UISA_REGS,
- /* 66 */ R4(cnd), R(lr), R(cnt), R4(xer), R4(mq)
+ /* 66 */ R4(cnd), R(lr), R(cnt), R4(xer), R4(mq),
+ /* 71 */ R4(fpscr)
};
/* PowerPC UISA - a PPC processor as viewed by user-level code. A UISA-only
@@ -2547,8 +2548,11 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->ppc_xer_regnum = 69;
if (v->mach == bfd_mach_ppc_601)
tdep->ppc_mq_regnum = 124;
- else
+ else if (power)
tdep->ppc_mq_regnum = 70;
+ else
+ tdep->ppc_mq_regnum = -1;
+ tdep->ppc_fpscr_regnum = power ? 71 : 70;
if (v->arch == bfd_arch_powerpc)
switch (v->mach)