internal void Goto(int i) {
if (i < _codepos) {
Label l1 = DefineLabel();
// When going backwards, ensure enough space.
Ldloc(_trackposV);
Ldc(_trackcount * 4);
Ble(l1);
Ldloc(_stackposV);
Ldc(_trackcount * 3);
BgtFar(_labels[i]);
MarkLabel(l1);
ReadyPushTrack();
Ldc(AddGoto(i));
DoPush();
BrFar(_backtrack);
}
else {
BrFar(_labels[i]);
}
}