Module Name: src
Committed By: skrll
Date: Sat Nov 3 14:59:44 UTC 2012
Modified Files:
src/external/gpl3/gdb/dist/gdb: mips-tdep.h mipsnbsd-nat.c
src/external/gpl3/gdb/dist/gdb/config/mips: nbsd.mh
Log Message:
Bring across target kvm support for mips from gdb6.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 src/external/gpl3/gdb/dist/gdb/mips-tdep.h
cvs rdiff -u -r1.4 -r1.5 src/external/gpl3/gdb/dist/gdb/mipsnbsd-nat.c
cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gdb/dist/gdb/config/mips/nbsd.mh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gdb/dist/gdb/mips-tdep.h
diff -u src/external/gpl3/gdb/dist/gdb/mips-tdep.h:1.1.1.1 src/external/gpl3/gdb/dist/gdb/mips-tdep.h:1.2
--- src/external/gpl3/gdb/dist/gdb/mips-tdep.h:1.1.1.1 Sat Sep 24 20:11:33 2011
+++ src/external/gpl3/gdb/dist/gdb/mips-tdep.h Sat Nov 3 14:59:44 2012
@@ -118,8 +118,19 @@ enum
MIPS_AT_REGNUM = 1,
MIPS_V0_REGNUM = 2, /* Function integer return value. */
MIPS_A0_REGNUM = 4, /* Loc of first arg during a subr call. */
+ MIPS_S0_REGNUM = 16,
+ MIPS_S1_REGNUM = 17,
+ MIPS_S2_REGNUM = 18,
+ MIPS_S3_REGNUM = 19,
+ MIPS_S4_REGNUM = 20,
+ MIPS_S5_REGNUM = 21,
+ MIPS_S6_REGNUM = 22,
+ MIPS_S7_REGNUM = 23,
+ MIPS_T8_REGNUM = 24,
MIPS_T9_REGNUM = 25, /* Contains address of callee in PIC. */
+ MIPS_GP_REGNUM = 28,
MIPS_SP_REGNUM = 29,
+ MIPS_S8_REGNUM = 30,
MIPS_RA_REGNUM = 31,
MIPS_PS_REGNUM = 32, /* Contains processor status. */
MIPS_EMBED_LO_REGNUM = 33,
Index: src/external/gpl3/gdb/dist/gdb/mipsnbsd-nat.c
diff -u src/external/gpl3/gdb/dist/gdb/mipsnbsd-nat.c:1.4 src/external/gpl3/gdb/dist/gdb/mipsnbsd-nat.c:1.5
--- src/external/gpl3/gdb/dist/gdb/mipsnbsd-nat.c:1.4 Thu Feb 9 15:14:19 2012
+++ src/external/gpl3/gdb/dist/gdb/mipsnbsd-nat.c Sat Nov 3 14:59:44 2012
@@ -40,6 +40,9 @@ typedef struct fpreg fpregset_t;
#include "mips-tdep.h"
#include "mipsnbsd-tdep.h"
#include "inf-ptrace.h"
+#include "bsd-kvm.h"
+
+#include "machine/pcb.h"
/* Determine if PT_GETREGS fetches this register. */
static int
@@ -119,6 +122,43 @@ mipsnbsd_store_inferior_registers (struc
perror_with_name (_("Couldn't write floating point status"));
}
}
+
+static int mipsnbsd_supply_pcb (struct regcache *, struct pcb *);
+
+static int
+mipsnbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb)
+{
+ struct label_t sf;
+
+ sf = pcb->pcb_context;
+
+ /* really should test for n{32,64} abi for this register
+ unless this is purely the "n" ABI */
+
+ regcache_raw_supply (regcache, MIPS_S0_REGNUM, &sf.val[_L_S0]);
+ regcache_raw_supply (regcache, MIPS_S1_REGNUM, &sf.val[_L_S1]);
+ regcache_raw_supply (regcache, MIPS_S2_REGNUM, &sf.val[_L_S2]);
+ regcache_raw_supply (regcache, MIPS_S3_REGNUM, &sf.val[_L_S3]);
+ regcache_raw_supply (regcache, MIPS_S4_REGNUM, &sf.val[_L_S4]);
+ regcache_raw_supply (regcache, MIPS_S5_REGNUM, &sf.val[_L_S5]);
+ regcache_raw_supply (regcache, MIPS_S6_REGNUM, &sf.val[_L_S6]);
+ regcache_raw_supply (regcache, MIPS_S7_REGNUM, &sf.val[_L_S7]);
+
+ regcache_raw_supply (regcache, MIPS_S8_REGNUM, &sf.val[_L_S8]);
+
+ regcache_raw_supply (regcache, MIPS_T8_REGNUM, &sf.val[_L_T8]);
+
+ regcache_raw_supply (regcache, MIPS_GP_REGNUM, &sf.val[_L_GP]);
+
+ regcache_raw_supply (regcache, MIPS_SP_REGNUM, &sf.val[_L_SP]);
+ regcache_raw_supply (regcache, MIPS_RA_REGNUM, &sf.val[_L_RA]);
+ regcache_raw_supply (regcache, MIPS_PS_REGNUM, &sf.val[_L_SR]);
+
+ /* provide the return address of the savectx as the current pc */
+ regcache_raw_supply (regcache, MIPS_EMBED_PC_REGNUM, &sf.val[_L_RA]);
+
+ return 0;
+}
/* Wrapper functions. These are only used by nbsd-thread. */
void
@@ -159,4 +199,7 @@ _initialize_mipsnbsd_nat (void)
t->to_fetch_registers = mipsnbsd_fetch_inferior_registers;
t->to_store_registers = mipsnbsd_store_inferior_registers;
add_target (t);
+
+ /* Support debugging kernel virtual memory images. */
+ bsd_kvm_add_target (mipsnbsd_supply_pcb);
}
Index: src/external/gpl3/gdb/dist/gdb/config/mips/nbsd.mh
diff -u src/external/gpl3/gdb/dist/gdb/config/mips/nbsd.mh:1.3 src/external/gpl3/gdb/dist/gdb/config/mips/nbsd.mh:1.4
--- src/external/gpl3/gdb/dist/gdb/config/mips/nbsd.mh:1.3 Mon Feb 6 10:46:35 2012
+++ src/external/gpl3/gdb/dist/gdb/config/mips/nbsd.mh Sat Nov 3 14:59:44 2012
@@ -1,3 +1,4 @@
# Host: NetBSD/mips
NATDEPFILES= fork-child.o inf-ptrace.o nbsd-nat.o mipsnbsd-nat.o \
- nbsd-thread.o
+ nbsd-thread.o bsd-kvm.o
+LOADLIBS= -lkvm