PERFORCE change 135774 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed Feb 20 05:13:19 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=135774
Change 135774 by marcel at marcel_xcllnt on 2008/02/20 05:12:57
Replace NetBSD's evcnt with sysctl.
Minor tweaking to make it compile.
Affected files ...
.. //depot/projects/e500/sys/powerpc/fpu/fpu_emu.c#4 edit
Differences ...
==== //depot/projects/e500/sys/powerpc/fpu/fpu_emu.c#4 (text+ko) ====
@@ -80,13 +80,17 @@
#include "opt_ddb.h"
+#define DEBUG
+
#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kdb.h>
+#include <sys/kernel.h>
#include <sys/proc.h>
+#include <sys/sysctl.h>
#include <sys/signal.h>
-#include <sys/systm.h>
#include <sys/syslog.h>
#include <sys/signalvar.h>
-//#include <sys/device.h> /* for evcnt */
#include <machine/fpu.h>
#include <machine/reg.h>
@@ -95,13 +99,14 @@
#include <powerpc/fpu/fpu_extern.h>
#include <powerpc/fpu/fpu_instr.h>
+SYSCTL_NODE(_hw, OID_AUTO, fpu_emu, CTLFLAG_RW, 0, "FPU emulator");
+
#define FPU_EMU_EVCNT_DECL(name) \
-static struct evcnt fpu_emu_ev_##name = \
- EVCNT_INITIALIZER(EVCNT_TYPE_TRAP, NULL, "fpemu", #name); \
-EVCNT_ATTACH_STATIC(fpu_emu_ev_##name)
+static u_int fpu_emu_evcnt_##name; \
+SYSCTL_INT(_hw_fpu_emu, OID_AUTO, evcnt_##name, CTLFLAG_RD, \
+ &fpu_emu_evcnt_##name, 0, "")
-#define FPU_EMU_EVCNT_INCR(name) \
- fpu_emu_ev_##name.ev_count++
+#define FPU_EMU_EVCNT_INCR(name) fpu_emu_evcnt_##name++
FPU_EMU_EVCNT_DECL(stfiwx);
FPU_EMU_EVCNT_DECL(fpstore);
@@ -143,14 +148,11 @@
#define FPSR_EX (FPSCR_VE|FPSCR_OE|FPSCR_UE|FPSCR_ZE|FPSCR_XE)
#define FPSR_EXOP (FPSR_EX_MSK&(~FPSR_EX))
-
int fpe_debug = 0;
-#ifdef DDB
-extern vaddr_t opc_disasm(vaddr_t loc, int opcode);
-#endif
+#ifdef DEBUG
+vm_offset_t opc_disasm(vm_offset_t, int);
-#ifdef DEBUG
/*
* Dump a `fpn' structure.
*/
@@ -238,7 +240,7 @@
if (fpe_debug & FPE_EX) {
printf("fpu_emulate: illegal insn %x at %p:",
insn.i_int, (void *) (frame->srr0));
- opc_disasm((vaddr_t)(frame->srr0), insn.i_int);
+ opc_disasm(frame->srr0, insn.i_int);
}
#endif
/*
@@ -248,7 +250,7 @@
sig = SIGILL;
#ifdef DEBUG
if (fpe_debug & FPE_EX)
- Debugger();
+ kdb_enter(KDB_WHY_UNSET, "illegal instruction");
#endif
}
lastill = frame->srr0;
@@ -272,7 +274,7 @@
struct fpn *fp;
union instr instr = *insn;
int *a;
- vaddr_t addr;
+ vm_offset_t addr;
int ra, rb, rc, rt, type, mask, fsr, cx, bf, setcr;
unsigned int cond;
struct fpreg *fs;
@@ -293,7 +295,7 @@
#if defined(DDB) && defined(DEBUG)
if (fpe_debug & FPE_EX) {
- vaddr_t loc = tf->srr0;
+ vm_offset_t loc = tf->srr0;
printf("Trying to emulate: %p ", (void *)loc);
opc_disasm(loc, instr.i_int);
More information about the p4-projects
mailing list