Improved CSA some more

This commit is contained in:
ceriel 1993-11-24 12:39:19 +00:00
parent 0b7ae7a629
commit 67c750a70c

View file

@ -432,15 +432,12 @@ PRIVATE index_jump(nbytes)
register ptr cdp = dppop(); /* Case Descriptor Pointer */ register ptr cdp = dppop(); /* Case Descriptor Pointer */
register long t_index = /* Table INDEX */ register long t_index = /* Table INDEX */
spop(nbytes) - mem_lds(cdp + psize, nbytes); spop(nbytes) - mem_lds(cdp + psize, nbytes);
register ptr nPC; /* New Program Counter */ register ptr nPC = 0; /* New Program Counter */
if (t_index >= 0 && t_index <= mem_lds(cdp + nbytes + psize, nbytes)) { if (t_index >= 0 && t_index <= mem_lds(cdp + nbytes + psize, nbytes)) {
nPC = mem_ldip(cdp + (2 * nbytes) + ((t_index + 1) * psize)); nPC = mem_ldip(cdp + (2 * nbytes) + ((t_index + 1) * psize));
if (nPC == 0) {
trap(ECASE);
}
} }
else if ((nPC = mem_ldip(cdp)) == 0) { if (nPC == 0 && (nPC = mem_ldip(cdp)) == 0) {
trap(ECASE); trap(ECASE);
} }
newPC(nPC); newPC(nPC);