1
0
mirror of https://github.com/prirun/p50em.git synced 2026-03-10 04:11:03 +00:00

Remove crs[] and crsl[] references in trace output, add vfy target to

makefile to allow comparing emulator binaries
This commit is contained in:
Jim
2011-10-17 10:53:12 -04:00
parent aad6c9f94c
commit 69a37aef55
3 changed files with 16 additions and 11 deletions

View File

@@ -61,7 +61,7 @@ static inline ea_t ea32i (ea_t earp, unsigned short inst, unsigned long *immu32,
d = iget16(RP);
INCRP;
ea = (crsl[sr] & 0xFFFF0000) | ((crsl[sr] + d) & 0xFFFF);
TRACE(T_EAI, " GRR, d=%x, crsl[sr]=%o/%o, ea=%o/%o\n", d, crsl[sr]>>16, crsl[sr]&0xFFFF, ea>>16, ea&0xFFFF);
TRACE(T_EAI, " GRR, d=%x, [sr]=%o/%o, ea=%o/%o\n", d, crsl[sr]>>16, crsl[sr]&0xFFFF, ea>>16, ea&0xFFFF);
if (ea & 0x80000000)
fault(POINTERFAULT, ea>>16, ea);
return ea | ring;
@@ -104,7 +104,7 @@ static inline ea_t ea32i (ea_t earp, unsigned short inst, unsigned long *immu32,
fault(POINTERFAULT, ip>>16, ea);
if (sr > 0) {
ip = (ip & 0xFFFF0000) | ((ip + crs[sr*2]) & 0xFFFF);
TRACE(T_EAI, " index by crs[%d]='%o/%d, ea=%o/%o\n", sr, crs[sr*2], crs[sr*2], ea>>16, ea&0xFFFF);
TRACE(T_EAI, " index by gr%d='%o/%d, ea=%o/%o\n", sr, crs[sr*2], crs[sr*2], ea>>16, ea&0xFFFF);
}
return ip | ring;

16
em.c
View File

@@ -3757,7 +3757,7 @@ static nfy(unsigned short inst) {
resched = 0;
begend = inst & 1;
if (regs.sym.pcba != crs[OWNERL]) {
printf("NFY: regs.pcba = %o, but crs[OWNERL] = %o\n", regs.sym.pcba, crs[OWNERL]);
printf("NFY: regs.pcba = %o, but OWNERL = %o\n", regs.sym.pcba, crs[OWNERL]);
fatal(NULL);
}
ea = apea(NULL);
@@ -5526,7 +5526,7 @@ d_rsav: /* 000715 */
savemask = 0;
for (i = 11; i >= 0; i--) {
if (crsl[i] != 0) {
TRACE(T_INST, " crsl[%d] saved, value=%o (%o/%o)\n", i, crsl[i], crsl[i]>>16, crsl[i]&0xffff);
TRACE(T_INST, " gr%d saved, value=%o (%o/%o)\n", i, crsl[i], crsl[i]>>16, crsl[i]&0xffff);
put32(crsl[i], INCVA(ea,j));
savemask |= BITMASK16(16-i);
}
@@ -5548,7 +5548,7 @@ d_rrst: /* 000717 */
for (i = 11; i >= 0; i--) {
if (savemask & BITMASK16(16-i)) {
crsl[i] = get32(INCVA(ea,j));
TRACE(T_INST, " crsl[%d] restored, value=%o (%o/%o)\n", i, crsl[i], crsl[i]>>16, crsl[i]&0xffff);
TRACE(T_INST, " gr%d restored, value=%o (%o/%o)\n", i, crsl[i], crsl[i]>>16, crsl[i]&0xffff);
} else {
crsl[i] = 0;
}
@@ -6446,13 +6446,13 @@ d_nrm: /* 000101 */
crs[VSC] = 0;
if (crsl[GR2] != 0) {
while (!((crs[A] ^ (crs[A] << 1)) & 0x8000)) {
TRACE(T_INST, " step %d: crs[A]=%o, crs[B]=%o\n", crs[VSC], crs[A], crs[B]);
TRACE(T_INST, " step %d: A=%o, B=%o\n", crs[VSC], crs[A], crs[B]);
crs[B] = crs[B] << 1;
crs[A] = (crs[A] & 0x8000) | ((crs[A] << 1) & 0x7FFE) | (crs[B] >> 15);
crs[VSC]++;
}
crs[B] &= 0x7FFF;
TRACE(T_INST, " finished with %d shifts: crs[A]=%o, crs[B]=%o\n", crs[VSC], crs[A], crs[B]);
TRACE(T_INST, " finished with %d shifts: A=%o, B=%o\n", crs[VSC], crs[A], crs[B]);
}
goto fetch;
@@ -8639,7 +8639,7 @@ imode:
case 011:
TRACE(T_FLOW, " LH\n");
if (*(int *)&ea < 0) {
TRACE(T_FLOW, " ea=%x, immu32=%lx, crsl[%d]=%x\n", ea, immu32, dr, crsl[dr]);
TRACE(T_FLOW, " ea=%x, immu32=%lx, gr%d=%x\n", ea, immu32, dr, crsl[dr]);
crs[dr*2] = immu32 >> 16;
} else
crs[dr*2] = get16(ea);
@@ -9239,11 +9239,11 @@ imodepcl:
case 055:
if (*(int *)&ea < 0) {
TRACE(T_FLOW, " ACP\n");
TRACE(T_INST, " before acp, crsl[%d]=%o/%o, immu32=%lu, CP(dr)=%d\n", dr, crsl[dr]>>16, crsl[dr]&0xFFFF, immu32, EACP(crsl[dr]));
TRACE(T_INST, " before acp, gr%d=%o/%o, immu32=%lu, CP(dr)=%d\n", dr, crsl[dr]>>16, crsl[dr]&0xFFFF, immu32, EACP(crsl[dr]));
utempl = EACP(crsl[dr]);
utempl += *(int *)&immu32;
crsl[dr] = CPEA(crsl[dr], utempl);
TRACE(T_INST, " after acp, utempl=%d, crsl[dr]=%o/%o\n", utempl, crsl[dr]>>16, crsl[dr]&0xFFFF);
TRACE(T_INST, " after acp, utempl=%d, gr[dr]=%o/%o\n", utempl, crsl[dr]>>16, crsl[dr]&0xFFFF);
} else {
TRACE(T_FLOW, " SCC\n");
utempa = get16(ea);

View File

@@ -3,7 +3,7 @@
REV=${shell hg id -n}
.PHONY: em debug trace fixed hobby dongle lmserver magrst parts smad smag mtread mtwrite
.PHONY: em debug trace vfy fixed hobby dongle lmserver magrst parts smad smag mtread mtwrite
em: # production
@@ -23,6 +23,11 @@ trace: # tracing + gdb
cc -arch ppc -DREV=\"${REV}\" -DNOREGS -g -O0 -DFAST -c em.c -fobey-inline -mdynamic-no-pic -I../dongle/mx/ppc/api;g++ -arch ppc -o em em.o ../dongle/mx/ppc/api/libmxmac260.a -framework IOKit -framework CoreFoundation
vfy: # prod + tracing to verify em changes
cc -arch ppc -DREV=\"\" -O -DFAST -c em.c -fobey-inline -mdynamic-no-pic -I../dongle/mx/ppc/api;g++ -arch ppc -o em em.o ../dongle/mx/ppc/api/libmxmac260.a -framework IOKit -framework CoreFoundation
fixed: # fixed clock rate, gdb
cc -arch ppc -DREV=\"${REV}\" -DFIXEDCLOCK -DNOIDLE -DNOREGS -g -O0 -DFAST -c em.c -fobey-inline -mdynamic-no-pic -I../dongle/mx/ppc/api;g++ -arch ppc -o em em.o ../dongle/mx/ppc/api/libmxmac260.a -framework IOKit -framework CoreFoundation