internal static GotoInstruction Create(int labelIndex, bool hasResult, bool hasValue) { if (labelIndex < CacheSize) { var index = Variants * labelIndex | (hasResult ? 2 : 0) | (hasValue ? 1 : 0); return Cache[index] ?? (Cache[index] = new GotoInstruction(labelIndex, hasResult, hasValue)); } return new GotoInstruction(labelIndex, hasResult, hasValue); }
public void EmitGoto(BranchLabel label, bool hasResult, bool hasValue) { Emit(GotoInstruction.Create(EnsureLabelIndex(label), hasResult, hasValue)); }