/// <summary> /// R(A + 3, ..., R(A + 2 + C) = R(A)(R(A + 1), R(A + 2)) /// </summary> public static void TForCall(Instruction ins, ILuaVM vm) { ins.ABC(out var a, out _, out var c); a += 1; PushFuncAndArgs(a, 3, vm); vm.Call(2, c); PopResults(a + 3, c + 1, vm); }
internal static void TForCall(Instruction i, ILuaVM vm) { var(a, _, c) = i.ABC(); a += 1; PushFuncAndArgs(a, 3, vm); vm.Call(2, c); PopResults(a + 3, c + 1, vm); }
/// <summary> /// R(A), ..., R(A + C - 2) = R(A)(R(A + 1), ..., R(A + B - 1)) /// </summary> public static void Call(Instruction ins, ILuaVM vm) { ins.ABC(out var a, out var b, out var c); a += 1; var nArgs = PushFuncAndArgs(a, b, vm); vm.Call(nArgs, c - 1); PopResults(a, c, vm); }
internal static void Call(Instruction i, ILuaVM vm) { var(a, b, c) = i.ABC(); a += 1; int nArgs = PushFuncAndArgs(a, b, vm); vm.Call(nArgs, c - 1); PopResults(a, c, vm); }
//(iABC) R(A),R(A+1)...,R(A+C-2) := R(A)(R(A+1),R(A+2),....,R(A+B-1)) public static void Call(int i, ILuaVM vm) { int a = Instruction.GetA(i) + 1; int b = Instruction.GetB(i); int c = Instruction.GetC(i); int nArgs = pushFuncAndArgs(a, b, vm); vm.Call(nArgs, c - 1); popResult(a, c, vm); }