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
- IdentityReference.cs
- SqlDataSourceQuery.cs
- VectorCollection.cs
- CanonicalFontFamilyReference.cs
- CheckBox.cs
- RelationshipEnd.cs
- ContainerUtilities.cs
- XmlNamespaceDeclarationsAttribute.cs
- NullableFloatSumAggregationOperator.cs
- _LocalDataStore.cs
- BitSet.cs
- MaterialGroup.cs
- ProfilePropertySettingsCollection.cs
- SmiGettersStream.cs
- StrongName.cs
- ArgumentException.cs
- PaperSource.cs
- XmlEventCache.cs
- SHA256.cs
- Constants.cs
- StrongBox.cs
- AdCreatedEventArgs.cs
- UdpDiscoveryMessageFilter.cs
- SystemColorTracker.cs
- FileSecurity.cs
- ClientApiGenerator.cs
- InplaceBitmapMetadataWriter.cs
- XamlUtilities.cs
- CreateParams.cs
- ServiceKnownTypeAttribute.cs
- IntegrationExceptionEventArgs.cs
- DbConnectionOptions.cs
- OutOfProcStateClientManager.cs
- DropShadowBitmapEffect.cs
- XamlSerializationHelper.cs
- ADMembershipProvider.cs
- ContentOperations.cs
- ColorContextHelper.cs
- AmbiguousMatchException.cs
- DataObject.cs
- ISAPIApplicationHost.cs
- AddInAdapter.cs
- CorePropertiesFilter.cs
- DataGridViewRowCollection.cs
- WasEndpointConfigContainer.cs
- TransformConverter.cs
- MetadataItemEmitter.cs
- CharKeyFrameCollection.cs
- Size3DConverter.cs
- AddInController.cs
- XPathNavigatorReader.cs
- SystemKeyConverter.cs
- PointAnimationUsingKeyFrames.cs
- XmlEnumAttribute.cs
- FontStyles.cs
- ComponentResourceManager.cs
- IncomingWebRequestContext.cs
- SplashScreenNativeMethods.cs
- Debug.cs
- TriggerActionCollection.cs
- EventlogProvider.cs
- AmbientProperties.cs
- DodSequenceMerge.cs
- Suspend.cs
- SolidColorBrush.cs
- UrlAuthFailedErrorFormatter.cs
- EventLogQuery.cs
- Repeater.cs
- ListMarkerSourceInfo.cs
- BasicKeyConstraint.cs
- Faults.cs
- GuidTagList.cs
- Journaling.cs
- RuntimeHandles.cs
- ValidationErrorEventArgs.cs
- AsymmetricSecurityBindingElement.cs
- XmlComplianceUtil.cs
- HtmlEmptyTagControlBuilder.cs
- control.ime.cs
- CheckBox.cs
- EngineSiteSapi.cs
- DataGridViewRow.cs
- FrameworkElementFactoryMarkupObject.cs
- CompositeFontInfo.cs
- CurrentChangingEventManager.cs
- WebMessageEncoderFactory.cs
- Win32.cs
- DataServiceClientException.cs
- SelectionEditingBehavior.cs
- DesignerVerb.cs
- IISMapPath.cs
- HashFinalRequest.cs
- CodeStatement.cs
- MoveSizeWinEventHandler.cs
- StorageMappingItemLoader.cs
- XmlParserContext.cs
- ping.cs
- XmlSchemaComplexContent.cs
- MdImport.cs
- TypeCollectionPropertyEditor.cs