private bool CheckKeepStack() { var argStack = new ArgStack(_args); for (var index = _args.Length - 1; index >= 0; index--) { var arg = _args[index]; if (arg.KeepOnStack) { continue; } if (!arg.HasPush) { var topArg = argStack.GetTop(); if (topArg != arg) { return(false); } } argStack.Consume(arg); } return(true); }
private void CreateArgs() { FindSkipArgsReferences(); for (var i = 0; i < _args.Length; i++) { _args[i] = new Arg(this, i, _pushInstructions[i]); } _argStack = new ArgStack(_args); }