private void V_DoJump( CallInfo ci, Instruction i, int e ) { int a = i.GETARG_A(); if( a > 0 ) F_Close(Stack[ci.BaseIndex + (a-1)]); ci.SavedPc += i.GETARG_sBx() + e; }
public static int Code( FuncState fs, Instruction i ) { DischargeJpc( fs ); // `pc' will change while( fs.Proto.Code.Count <= fs.Pc ) { fs.Proto.Code.Add( new Instruction(LuaLimits.MAX_INT) ); } fs.Proto.Code[ fs.Pc ] = i; while( fs.Proto.LineInfo.Count <= fs.Pc ) { fs.Proto.LineInfo.Add( LuaLimits.MAX_INT ); } fs.Proto.LineInfo[ fs.Pc ] = fs.Lexer.LastLine; return fs.Pc++; }
private void V_NotImplemented( Instruction i ) { ULDebug.LogError( "[VM] ==================================== Not Implemented Instruction: " + i ); // throw new NotImplementedException(); }