<div dir="ltr"><div style>Hi! I&#39;m looking at some code from StackInterpreter, and the given piece of code raised a question I cannot fully answer:</div><div><br></div><div>longUnconditionalJump</div><div><span class="" style="white-space:pre">        </span>| offset |</div>
<div><span class="" style="white-space:pre">        </span>offset := (((currentBytecode bitAnd: 7) - 4) * 256) + self fetchByte.</div><div><span class="" style="white-space:pre">        </span>localIP := localIP + offset.</div><div><span class="" style="white-space:pre">        </span>(offset &lt; 0 &quot;backward jump means we&#39;re in a loop; check for possible interrupts&quot;</div>
<div><span class="" style="white-space:pre">        </span> and: [<b>localSP &lt; stackLimit</b>]) ifTrue:</div><div><span class="" style="white-space:pre">                </span>[self externalizeIPandSP.</div><div><span class="" style="white-space:pre">                </span> self checkForEventsMayContextSwitch: true.</div>
<div><span class="" style="white-space:pre">                </span> self browserPluginReturnIfNeeded.</div><div><span class="" style="white-space:pre">                </span> self internalizeIPandSP].</div><div><span class="" style="white-space:pre">        </span>self fetchNextBytecode</div>
<div><br></div><div style>What does the (localSP &lt; stackLimit) condition stand for? What is its intention when deciding to make (or not) a context switch?</div><div style><br></div><div style>Tx,</div><div style>Guille</div>
</div>