+ // regs
+ else if ((a & 0xfffff0) == 0xa15000) {
+ switch (a & 0xf) {
+ case 0:
+ case 2:
+ d = svp->ssp1601.gr[SSP_XST].h;
+ break;
+
+ case 4:
+ d = svp->ssp1601.gr[SSP_PM0].h;
+ svp->ssp1601.gr[SSP_PM0].h &= ~1;
+ if (d&1) a15004_looping = 0;
+ break;
+ }
+ }
+ else
+ elprintf(EL_UIO|EL_SVP|EL_ANOMALY, "SVP FIXME: unhandled r%i: [%06x] %04x @%06x", realsize, a&0xffffff, d, SekPc);
+
+ if (!a15004_looping)
+ elprintf(EL_SVP, "SVP r%i: [%06x] %04x @%06x", realsize, a&0xffffff, d, SekPc);
+
+ if (a == 0xa15004 && !(d&1)) {
+ if (!a15004_looping)
+ elprintf(EL_SVP, "SVP det TIGHT loop: a15004");
+ a15004_looping = 1;
+ }
+ else a15004_looping = 0;
+
+ //if (a == 0x30fe02 && d == 0)
+ // elprintf(EL_ANOMALY, "SVP lag?");