Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / UpdateDelegates.Generated.cs / 1305376 / UpdateDelegates.Generated.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Runtime.CompilerServices; using System.Threading; namespace System.Dynamic { internal static partial class UpdateDelegates { // // WARNING: do not edit these methods here. The real source code lives // in two places: generate_dynsites.py, which generates the methods in // this file, and UpdateDelegates.cs, which dynamically generates // methods like these at run time. If you want to make a change, edit // *both* of those files instead // #region Generated UpdateAndExecute Methods // *** BEGIN GENERATED CODE *** // generated by function: gen_update_targets from: generate_dynsites.py [Obsolete("pregenerated CallSite.Update delegate", true)] internal static TRet UpdateAndExecute0 (CallSite site) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch0 (CallSite site) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute1 (CallSite site, T0 arg0) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch1 (CallSite site, T0 arg0) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute2 (CallSite site, T0 arg0, T1 arg1) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch2 (CallSite site, T0 arg0, T1 arg1) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid1 (CallSite site, T0 arg0) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid1 (CallSite site, T0 arg0) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid2 (CallSite site, T0 arg0, T1 arg1) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid2 (CallSite site, T0 arg0, T1 arg1) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { site._match = false; return; } // *** END GENERATED CODE *** #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReceiveSecurityHeaderEntry.cs
- SQLBytesStorage.cs
- GZipStream.cs
- ClockGroup.cs
- _ContextAwareResult.cs
- DivideByZeroException.cs
- WindowsTreeView.cs
- PermissionAttributes.cs
- ExpressionBindingCollection.cs
- RowCache.cs
- LambdaCompiler.Generated.cs
- AmbientLight.cs
- DocumentGridPage.cs
- WebPartDesigner.cs
- SoapServerProtocol.cs
- PersianCalendar.cs
- TableSectionStyle.cs
- TextRunProperties.cs
- PolicyLevel.cs
- CodeParameterDeclarationExpression.cs
- TextEditorContextMenu.cs
- PolicyStatement.cs
- TypeName.cs
- _LocalDataStoreMgr.cs
- ParameterToken.cs
- XmlWriterTraceListener.cs
- DataSvcMapFileSerializer.cs
- RowCache.cs
- FixedSOMPage.cs
- Context.cs
- DataAccessor.cs
- SafeLocalMemHandle.cs
- QueueSurrogate.cs
- Matrix.cs
- SamlAuthenticationStatement.cs
- SpecialTypeDataContract.cs
- ProtocolsConfigurationEntry.cs
- LinkedResource.cs
- WindowsTreeView.cs
- URIFormatException.cs
- LocalizabilityAttribute.cs
- Win32.cs
- Expressions.cs
- EnumMember.cs
- AuthorizationContext.cs
- HwndSourceParameters.cs
- SimpleApplicationHost.cs
- PageAction.cs
- TableItemStyle.cs
- EntityStoreSchemaGenerator.cs
- SiteMapSection.cs
- TransformerInfo.cs
- MatrixStack.cs
- CallbackValidatorAttribute.cs
- BoolLiteral.cs
- DataSourceControl.cs
- IERequestCache.cs
- OperationInvokerBehavior.cs
- RelationshipConstraintValidator.cs
- X500Name.cs
- DocumentApplication.cs
- FilterableAttribute.cs
- RectangleF.cs
- TrackPoint.cs
- PropertyDescriptorCollection.cs
- ReturnValue.cs
- Border.cs
- DataGridViewColumnEventArgs.cs
- TemplateXamlParser.cs
- SafeCryptContextHandle.cs
- ChtmlCalendarAdapter.cs
- NetTcpSectionData.cs
- xsdvalidator.cs
- CodeExporter.cs
- ContextMenuService.cs
- ProgressBar.cs
- XmlSchemaAttributeGroupRef.cs
- NativeMethods.cs
- HandoffBehavior.cs
- BitmapDecoder.cs
- XmlExpressionDumper.cs
- Content.cs
- IssuedSecurityTokenParameters.cs
- LoadRetryStrategyFactory.cs
- RootAction.cs
- Image.cs
- Config.cs
- Vector3DAnimationBase.cs
- safex509handles.cs
- ClientFormsIdentity.cs
- ProcessHost.cs
- XmlUtf8RawTextWriter.cs
- ParameterSubsegment.cs
- UdpAnnouncementEndpoint.cs
- TableLayoutStyle.cs
- MailDefinition.cs
- AnnotationStore.cs
- UserControlParser.cs
- CodeCompiler.cs
- Int32Collection.cs