mirror of
https://github.com/prirun/p50em.git
synced 2026-05-03 14:58:50 +00:00
em.c, etc: use gv.xxx instead of gvp->xxx for 13% speed increase, from
37.5 Prime MIPS on Linode VM to 42.5 MIPS. gvp-> was faster on the PowerPC architecture when gvp was kept in a dedicated register, but that does not apply to Intel. Old: Timing CPU, 20.0 ticks per second... 35.3 Prime MIPS for 16-bit ADD loop 40.0 Prime MIPS for 16-bit MPY loop 42.1 Prime MIPS for 16-bit DIV loop 21.4 Prime MIPS for 32-bit ADD loop 30.8 Prime MIPS for 32-bit MPY loop 28.6 Prime MIPS for 32-bit DIV loop 57.1 Prime MIPS for 16-bit X=0 loop 44.4 Prime MIPS for 32-bit X=0 loop 37.5 average Prime MIPS New: Timing CPU, 20.0 ticks per second... 42.9 Prime MIPS for 16-bit ADD loop 53.3 Prime MIPS for 16-bit MPY loop 47.1 Prime MIPS for 16-bit DIV loop 24.0 Prime MIPS for 32-bit ADD loop 38.1 Prime MIPS for 32-bit MPY loop 32.0 Prime MIPS for 32-bit DIV loop 57.1 Prime MIPS for 16-bit X=0 loop 44.4 Prime MIPS for 32-bit X=0 loop 42.4 average Prime MIPS
This commit is contained in:
12
devpnc.h
12
devpnc.h
@@ -333,7 +333,7 @@ char * pncdumppkt(unsigned char * pkt, int len) {
|
||||
struct timeval tv1;
|
||||
|
||||
#ifndef NOTRACE
|
||||
if (!gvp->traceflags & T_RIO) return;
|
||||
if (!gv.traceflags & T_RIO) return;
|
||||
|
||||
if (gettimeofday(&tv1, NULL) != 0)
|
||||
fatal("pnc gettimeofday 3 failed");
|
||||
@@ -868,7 +868,7 @@ int devpnc (int class, int func, int device) {
|
||||
struct timeval tv0,tv1;
|
||||
double pollts;
|
||||
|
||||
//gvp->traceflags = ~T_MAP;
|
||||
//gv.traceflags = ~T_MAP;
|
||||
|
||||
if (class >= 0 && !configured) {
|
||||
TRACE(T_INST|T_RIO, "PIO to PNC ignored, class=%d, func='%02o, device=%02o\n", class, func, device);
|
||||
@@ -1066,7 +1066,7 @@ int devpnc (int class, int func, int device) {
|
||||
}
|
||||
|
||||
TRACE(T_RIO, "PNC configured\n");
|
||||
devpoll[device] = PNCPOLL*gvp->instpermsec;
|
||||
devpoll[device] = PNCPOLL*gv.instpermsec;
|
||||
|
||||
if (gettimeofday(&tv0, NULL) != 0)
|
||||
fatal("pnc gettimeofday 1 failed");
|
||||
@@ -1283,7 +1283,7 @@ int devpnc (int class, int func, int device) {
|
||||
devpoll[device] = olddevpoll;
|
||||
sawsigio = 0;
|
||||
} else {
|
||||
devpoll[device] = PNCPOLL*gvp->instpermsec;
|
||||
devpoll[device] = PNCPOLL*gv.instpermsec;
|
||||
time(&timenow);
|
||||
pncaccept(timenow); /* accept 1 new connection each poll */
|
||||
pncconnect(timenow); /* finish a pending connection */
|
||||
@@ -1295,8 +1295,8 @@ rcvexit:
|
||||
|
||||
intrexit:
|
||||
if (enabled && ((pncstat & 0xC000) | intstat) != intstat) {
|
||||
if (gvp->intvec == -1) {
|
||||
gvp->intvec = pncvec;
|
||||
if (gv.intvec == -1) {
|
||||
gv.intvec = pncvec;
|
||||
intstat |= (pncstat & 0xC000);
|
||||
} else
|
||||
devpoll[device] = 100;
|
||||
|
||||
Reference in New Issue
Block a user