internal void GenerateMiddleSection() {
Label l1 = DefineLabel();
Label[] table;
int i;
// Backtrack switch
MarkLabel(_backtrack);
// first call EnsureStorage
Mvlocfld(_trackposV, _trackposF);
Mvlocfld(_stackposV, _stackposF);
Ldthis();
Callvirt(_ensurestorageM);
Mvfldloc(_trackposF, _trackposV);
Mvfldloc(_stackposF, _stackposV);
Mvfldloc(_trackF, _trackV);
Mvfldloc(_stackF, _stackV);
PopTrack();
table = new Label[_notecount];
for (i = 0; i < _notecount; i++)
table[i] = _notes[i]._label;
_ilg.Emit(OpCodes.Switch, table);
}