SELECT
TRUE
FROM
(imPtr.wx2.iscond = 1)
AND (imPtr.wx1.jbc = 1) => {
-- must use short form
a1x: wdFast IMA = LOOPHOLE[a1];
dw1: jcnFast DimWord1 ← LOOPHOLE[imPtr.imw1];
dw1.jnFast2thru3 ← a1x.wd2thru3;
dw1.jnFast5thru6 ← a1x.wd5thru6;
imPtr.imw1 ← LOOPHOLE[dw1];
};
MDUtils.CardAnd[a1, globalZero] = 0 => {
-- use global call
a1x: wdGlobal IMA = LOOPHOLE[a1];
dw1: jcnGlobal DimWord1 ← LOOPHOLE[imPtr.imw1];
dw2: DimWord2 ← LOOPHOLE[imPtr.imw2];
dw1.jcGlobal ← jcGlobalValue;
dw1.jnGlobal2thur5 ← a1x.p0thru3;
dw2.jcn6thru7 ← a1x.p4thru5;
imPtr.imw1 ← LOOPHOLE[dw1];
imPtr.imw2 ← LOOPHOLE[dw2];
};
(MDUtils.CardAnd[a1, PageMask] = MDUtils.CardAnd[a0, PageMask]) => {
-- local
a1x: wdLocal IMA = LOOPHOLE[a1];
dw1: jcnLocal DimWord1 ← LOOPHOLE[imPtr.imw1];
dw2: DimWord2 ← LOOPHOLE[imPtr.imw2];
dw1.jcLocal ← jcLocalValue;
dw1.jnLocal2thru5 ← a1x.wd2thru5;
dw2.jcn6thru7 ← a1x.wd6thru7;
imPtr.imw1 ← LOOPHOLE[dw1];
imPtr.imw2 ← LOOPHOLE[dw2];
};
ENDCASE => {
-- long branch
a1x: wdLong IMA = LOOPHOLE[a1];
dw1: jcnLong DimWord1 ← LOOPHOLE[imPtr.imw1];
dw2: DimWord2 ← LOOPHOLE[imPtr.imw2];
dw1.jcLong ← jcLongValue;
dw1.jnLong4thru5 ← a1x.wd4thru5;
dw2.jcn6thru7 ← a1x.wd6thru7;
dw1.ff ← Basics.BITSHIFT[LOOPHOLE[a1x], -4];
imPtr.imw1 ← LOOPHOLE[dw1];
imPtr.imw2 ← LOOPHOLE[dw2];
};