Improved CSA some more
This commit is contained in:
parent
0b7ae7a629
commit
67c750a70c
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue