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:
4
ea32i.h
4
ea32i.h
@@ -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
16
em.c
@@ -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);
|
||||
|
||||
7
makefile
7
makefile
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user