1
0
mirror of https://github.com/prirun/p50em.git synced 2026-02-01 22:12:11 +00:00

FP exceptions, -DNOREG for -O0 and -DBG compiles, perf tweaks, gcov

reworked ring/register fix so that Primos nevers sees RP faulted
  but we don't have to do extra tests in the fetch loop
changed EAxxx routines to use RP segno when EA = register
added FP exception fault to ieeepr8 and all FP routines
added round flag to ieeepr8 (though not sure it's rounding correctly)
used gcov info to reorder some stuff in ea16s, ea32s, ea32r64r
changed warn() and fatal() to use get16t; prevpc might be a register
IMPORTANT NOTE: to compile with -O0, also use -DNOREG (gcc bug)
This commit is contained in:
Jim
2007-10-12 00:00:00 -04:00
parent 36254e2fba
commit afdf6057b1
5 changed files with 310 additions and 256 deletions

View File

@@ -450,8 +450,8 @@ readasr:
if (gvp->savetraceflags == 0) {
TRACEA("\nTRACE ENABLED:\n\n");
gvp->savetraceflags = ~TB_MAP;
gvp->savetraceflags = TB_FLOW;
gvp->savetraceflags = ~0;
gvp->savetraceflags = TB_FLOW;
} else {
TRACEA("\nTRACE DISABLED:\n\n");
gvp->savetraceflags = 0;
@@ -1504,11 +1504,10 @@ int devcp (int class, int func, int device) {
the correct time. In addition to lowering overhead, slower
clock tick rates make catching up much faster. */
#ifndef FIXEDCLOCK
if (abs(ticks-targetticks) > 5000 && datnowea != 0)
ticks = -1;
else if (ticks < targetticks)
devpoll[device] = 200; /* behind, so catch-up */
devpoll[device] = 100; /* behind, so catch-up */
else if (ticks > targetticks)
devpoll[device] = devpoll[device]*2; /* ahead, so slow down */
else { /* just right! */
@@ -1517,7 +1516,6 @@ int devcp (int class, int func, int device) {
ticks = 0;
}
}
#endif
/* update instpermsec every 5 seconds. Check for instcount
overflow and reset when it occurs.