Merge pull request #901 from Blewzman/FixAggregateExceptionGetBaseException
[mono.git] / mcs / class / dlr / Runtime / Microsoft.Dynamic / Interpreter / Instructions / DynamicInstructions.Generated.cs
1 /* ****************************************************************************
2  *
3  * Copyright (c) Microsoft Corporation. 
4  *
5  * This source code is subject to terms and conditions of the Apache License, Version 2.0. A 
6  * copy of the license can be found in the License.html file at the root of this distribution. If 
7  * you cannot locate the  Apache License, Version 2.0, please send an email to 
8  * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound 
9  * by the terms of the Apache License, Version 2.0.
10  *
11  * You must not remove this notice, or any other, from this software.
12  *
13  *
14  * ***************************************************************************/
15
16
17 using System;
18 using System.Runtime.CompilerServices;
19 using Microsoft.Scripting.Utils;
20
21 namespace Microsoft.Scripting.Interpreter {
22     internal partial class DynamicInstructionN {
23         internal static Type GetDynamicInstructionType(Type delegateType) {
24             Type[] argTypes = delegateType.GetGenericArguments();
25             if (argTypes.Length == 0) return null;
26             Type genericType;
27             Type[] newArgTypes = ArrayUtils.RemoveFirst(argTypes);
28             switch (newArgTypes.Length) {
29                 #region Generated Dynamic Instruction Types
30
31                 // *** BEGIN GENERATED CODE ***
32                 // generated by function: gen_types from: generate_dynamic_instructions.py
33
34                 case 1: genericType = typeof(DynamicInstruction<>); break;
35                 case 2: genericType = typeof(DynamicInstruction<,>); break;
36                 case 3: genericType = typeof(DynamicInstruction<,,>); break;
37                 case 4: genericType = typeof(DynamicInstruction<,,,>); break;
38                 case 5: genericType = typeof(DynamicInstruction<,,,,>); break;
39                 case 6: genericType = typeof(DynamicInstruction<,,,,,>); break;
40                 case 7: genericType = typeof(DynamicInstruction<,,,,,,>); break;
41                 case 8: genericType = typeof(DynamicInstruction<,,,,,,,>); break;
42                 case 9: genericType = typeof(DynamicInstruction<,,,,,,,,>); break;
43                 case 10: genericType = typeof(DynamicInstruction<,,,,,,,,,>); break;
44                 case 11: genericType = typeof(DynamicInstruction<,,,,,,,,,,>); break;
45                 case 12: genericType = typeof(DynamicInstruction<,,,,,,,,,,,>); break;
46                 case 13: genericType = typeof(DynamicInstruction<,,,,,,,,,,,,>); break;
47                 case 14: genericType = typeof(DynamicInstruction<,,,,,,,,,,,,,>); break;
48                 case 15: genericType = typeof(DynamicInstruction<,,,,,,,,,,,,,,>); break;
49                 case 16: genericType = typeof(DynamicInstruction<,,,,,,,,,,,,,,,>); break;
50
51                 // *** END GENERATED CODE ***
52
53                 #endregion
54                 default:
55                     throw Assert.Unreachable;
56             }
57             
58             return genericType.MakeGenericType(newArgTypes);
59         }
60
61         internal static Instruction CreateUntypedInstruction(CallSiteBinder binder, int argCount) {
62             // DLR Ref.Emits an UpdateAndExecute delegate for sites with more than 10 parameters
63             if (argCount > 10 && PlatformAdaptationLayer.IsCompactFramework) {
64                 return null;
65             }
66             
67             switch (argCount) {
68                 #region Generated Untyped Dynamic Instructions
69
70                 // *** BEGIN GENERATED CODE ***
71                 // generated by function: gen_untyped from: generate_dynamic_instructions.py
72
73                 case 0: return DynamicInstruction<object>.Factory(binder);
74                 case 1: return DynamicInstruction<object, object>.Factory(binder);
75                 case 2: return DynamicInstruction<object, object, object>.Factory(binder);
76                 case 3: return DynamicInstruction<object, object, object, object>.Factory(binder);
77                 case 4: return DynamicInstruction<object, object, object, object, object>.Factory(binder);
78                 case 5: return DynamicInstruction<object, object, object, object, object, object>.Factory(binder);
79                 case 6: return DynamicInstruction<object, object, object, object, object, object, object>.Factory(binder);
80                 case 7: return DynamicInstruction<object, object, object, object, object, object, object, object>.Factory(binder);
81                 case 8: return DynamicInstruction<object, object, object, object, object, object, object, object, object>.Factory(binder);
82                 case 9: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object>.Factory(binder);
83                 case 10: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object, object>.Factory(binder);
84                 case 11: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object, object, object>.Factory(binder);
85                 case 12: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object, object, object, object>.Factory(binder);
86                 case 13: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object, object, object, object, object>.Factory(binder);
87                 case 14: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object, object, object, object, object, object>.Factory(binder);
88                 case 15: return DynamicInstruction<object, object, object, object, object, object, object, object, object, object, object, object, object, object, object, object>.Factory(binder);
89
90                 // *** END GENERATED CODE ***
91
92                 #endregion
93                 
94                 default: return null;
95             }
96         }
97     }
98
99     #region Generated Dynamic Instructions
100
101     // *** BEGIN GENERATED CODE ***
102     // generated by function: gen_instructions from: generate_dynamic_instructions.py
103
104     internal class DynamicInstruction<TRet> : Instruction {
105         private CallSite<Func<CallSite,TRet>> _site;
106
107         public static Instruction Factory(CallSiteBinder binder) {
108             return new DynamicInstruction<TRet>(CallSite<Func<CallSite,TRet>>.Create(binder));
109         }
110
111         private DynamicInstruction(CallSite<Func<CallSite,TRet>> site) {
112             _site = site;
113         }
114
115         public override int ProducedStack { get { return 1; } }
116         public override int ConsumedStack { get { return 0; } }
117
118         public override int Run(InterpretedFrame frame) {
119             frame.Data[frame.StackIndex - 0] = _site.Target(_site);
120             frame.StackIndex -= -1;
121             return 1;
122         }
123
124         public override string ToString() {
125             return "Dynamic(" + _site.Binder.ToString() + ")";
126         }
127     }
128
129     internal class DynamicInstruction<T0,TRet> : Instruction {
130         private CallSite<Func<CallSite,T0,TRet>> _site;
131
132         public static Instruction Factory(CallSiteBinder binder) {
133             return new DynamicInstruction<T0,TRet>(CallSite<Func<CallSite,T0,TRet>>.Create(binder));
134         }
135
136         private DynamicInstruction(CallSite<Func<CallSite,T0,TRet>> site) {
137             _site = site;
138         }
139
140         public override int ProducedStack { get { return 1; } }
141         public override int ConsumedStack { get { return 1; } }
142
143         public override int Run(InterpretedFrame frame) {
144             frame.Data[frame.StackIndex - 1] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 1]);
145             return 1;
146         }
147
148         public override string ToString() {
149             return "Dynamic(" + _site.Binder.ToString() + ")";
150         }
151     }
152
153     internal class DynamicInstruction<T0,T1,TRet> : Instruction {
154         private CallSite<Func<CallSite,T0,T1,TRet>> _site;
155
156         public static Instruction Factory(CallSiteBinder binder) {
157             return new DynamicInstruction<T0,T1,TRet>(CallSite<Func<CallSite,T0,T1,TRet>>.Create(binder));
158         }
159
160         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,TRet>> site) {
161             _site = site;
162         }
163
164         public override int ProducedStack { get { return 1; } }
165         public override int ConsumedStack { get { return 2; } }
166
167         public override int Run(InterpretedFrame frame) {
168             frame.Data[frame.StackIndex - 2] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 2], (T1)frame.Data[frame.StackIndex - 1]);
169             frame.StackIndex -= 1;
170             return 1;
171         }
172
173         public override string ToString() {
174             return "Dynamic(" + _site.Binder.ToString() + ")";
175         }
176     }
177
178     internal class DynamicInstruction<T0,T1,T2,TRet> : Instruction {
179         private CallSite<Func<CallSite,T0,T1,T2,TRet>> _site;
180
181         public static Instruction Factory(CallSiteBinder binder) {
182             return new DynamicInstruction<T0,T1,T2,TRet>(CallSite<Func<CallSite,T0,T1,T2,TRet>>.Create(binder));
183         }
184
185         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,TRet>> site) {
186             _site = site;
187         }
188
189         public override int ProducedStack { get { return 1; } }
190         public override int ConsumedStack { get { return 3; } }
191
192         public override int Run(InterpretedFrame frame) {
193             frame.Data[frame.StackIndex - 3] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 3], (T1)frame.Data[frame.StackIndex - 2], (T2)frame.Data[frame.StackIndex - 1]);
194             frame.StackIndex -= 2;
195             return 1;
196         }
197
198         public override string ToString() {
199             return "Dynamic(" + _site.Binder.ToString() + ")";
200         }
201     }
202
203     internal class DynamicInstruction<T0,T1,T2,T3,TRet> : Instruction {
204         private CallSite<Func<CallSite,T0,T1,T2,T3,TRet>> _site;
205
206         public static Instruction Factory(CallSiteBinder binder) {
207             return new DynamicInstruction<T0,T1,T2,T3,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,TRet>>.Create(binder));
208         }
209
210         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,TRet>> site) {
211             _site = site;
212         }
213
214         public override int ProducedStack { get { return 1; } }
215         public override int ConsumedStack { get { return 4; } }
216
217         public override int Run(InterpretedFrame frame) {
218             frame.Data[frame.StackIndex - 4] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 4], (T1)frame.Data[frame.StackIndex - 3], (T2)frame.Data[frame.StackIndex - 2], (T3)frame.Data[frame.StackIndex - 1]);
219             frame.StackIndex -= 3;
220             return 1;
221         }
222
223         public override string ToString() {
224             return "Dynamic(" + _site.Binder.ToString() + ")";
225         }
226     }
227
228     internal class DynamicInstruction<T0,T1,T2,T3,T4,TRet> : Instruction {
229         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,TRet>> _site;
230
231         public static Instruction Factory(CallSiteBinder binder) {
232             return new DynamicInstruction<T0,T1,T2,T3,T4,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,TRet>>.Create(binder));
233         }
234
235         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,TRet>> site) {
236             _site = site;
237         }
238
239         public override int ProducedStack { get { return 1; } }
240         public override int ConsumedStack { get { return 5; } }
241
242         public override int Run(InterpretedFrame frame) {
243             frame.Data[frame.StackIndex - 5] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 5], (T1)frame.Data[frame.StackIndex - 4], (T2)frame.Data[frame.StackIndex - 3], (T3)frame.Data[frame.StackIndex - 2], (T4)frame.Data[frame.StackIndex - 1]);
244             frame.StackIndex -= 4;
245             return 1;
246         }
247
248         public override string ToString() {
249             return "Dynamic(" + _site.Binder.ToString() + ")";
250         }
251     }
252
253     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,TRet> : Instruction {
254         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,TRet>> _site;
255
256         public static Instruction Factory(CallSiteBinder binder) {
257             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,TRet>>.Create(binder));
258         }
259
260         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,TRet>> site) {
261             _site = site;
262         }
263
264         public override int ProducedStack { get { return 1; } }
265         public override int ConsumedStack { get { return 6; } }
266
267         public override int Run(InterpretedFrame frame) {
268             frame.Data[frame.StackIndex - 6] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 6], (T1)frame.Data[frame.StackIndex - 5], (T2)frame.Data[frame.StackIndex - 4], (T3)frame.Data[frame.StackIndex - 3], (T4)frame.Data[frame.StackIndex - 2], (T5)frame.Data[frame.StackIndex - 1]);
269             frame.StackIndex -= 5;
270             return 1;
271         }
272
273         public override string ToString() {
274             return "Dynamic(" + _site.Binder.ToString() + ")";
275         }
276     }
277
278     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,TRet> : Instruction {
279         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,TRet>> _site;
280
281         public static Instruction Factory(CallSiteBinder binder) {
282             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,TRet>>.Create(binder));
283         }
284
285         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,TRet>> site) {
286             _site = site;
287         }
288
289         public override int ProducedStack { get { return 1; } }
290         public override int ConsumedStack { get { return 7; } }
291
292         public override int Run(InterpretedFrame frame) {
293             frame.Data[frame.StackIndex - 7] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 7], (T1)frame.Data[frame.StackIndex - 6], (T2)frame.Data[frame.StackIndex - 5], (T3)frame.Data[frame.StackIndex - 4], (T4)frame.Data[frame.StackIndex - 3], (T5)frame.Data[frame.StackIndex - 2], (T6)frame.Data[frame.StackIndex - 1]);
294             frame.StackIndex -= 6;
295             return 1;
296         }
297
298         public override string ToString() {
299             return "Dynamic(" + _site.Binder.ToString() + ")";
300         }
301     }
302
303     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,TRet> : Instruction {
304         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,TRet>> _site;
305
306         public static Instruction Factory(CallSiteBinder binder) {
307             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,TRet>>.Create(binder));
308         }
309
310         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,TRet>> site) {
311             _site = site;
312         }
313
314         public override int ProducedStack { get { return 1; } }
315         public override int ConsumedStack { get { return 8; } }
316
317         public override int Run(InterpretedFrame frame) {
318             frame.Data[frame.StackIndex - 8] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 8], (T1)frame.Data[frame.StackIndex - 7], (T2)frame.Data[frame.StackIndex - 6], (T3)frame.Data[frame.StackIndex - 5], (T4)frame.Data[frame.StackIndex - 4], (T5)frame.Data[frame.StackIndex - 3], (T6)frame.Data[frame.StackIndex - 2], (T7)frame.Data[frame.StackIndex - 1]);
319             frame.StackIndex -= 7;
320             return 1;
321         }
322
323         public override string ToString() {
324             return "Dynamic(" + _site.Binder.ToString() + ")";
325         }
326     }
327
328     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,TRet> : Instruction {
329         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,TRet>> _site;
330
331         public static Instruction Factory(CallSiteBinder binder) {
332             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,TRet>>.Create(binder));
333         }
334
335         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,TRet>> site) {
336             _site = site;
337         }
338
339         public override int ProducedStack { get { return 1; } }
340         public override int ConsumedStack { get { return 9; } }
341
342         public override int Run(InterpretedFrame frame) {
343             frame.Data[frame.StackIndex - 9] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 9], (T1)frame.Data[frame.StackIndex - 8], (T2)frame.Data[frame.StackIndex - 7], (T3)frame.Data[frame.StackIndex - 6], (T4)frame.Data[frame.StackIndex - 5], (T5)frame.Data[frame.StackIndex - 4], (T6)frame.Data[frame.StackIndex - 3], (T7)frame.Data[frame.StackIndex - 2], (T8)frame.Data[frame.StackIndex - 1]);
344             frame.StackIndex -= 8;
345             return 1;
346         }
347
348         public override string ToString() {
349             return "Dynamic(" + _site.Binder.ToString() + ")";
350         }
351     }
352
353     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,TRet> : Instruction {
354         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,TRet>> _site;
355
356         public static Instruction Factory(CallSiteBinder binder) {
357             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,TRet>>.Create(binder));
358         }
359
360         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,TRet>> site) {
361             _site = site;
362         }
363
364         public override int ProducedStack { get { return 1; } }
365         public override int ConsumedStack { get { return 10; } }
366
367         public override int Run(InterpretedFrame frame) {
368             frame.Data[frame.StackIndex - 10] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 10], (T1)frame.Data[frame.StackIndex - 9], (T2)frame.Data[frame.StackIndex - 8], (T3)frame.Data[frame.StackIndex - 7], (T4)frame.Data[frame.StackIndex - 6], (T5)frame.Data[frame.StackIndex - 5], (T6)frame.Data[frame.StackIndex - 4], (T7)frame.Data[frame.StackIndex - 3], (T8)frame.Data[frame.StackIndex - 2], (T9)frame.Data[frame.StackIndex - 1]);
369             frame.StackIndex -= 9;
370             return 1;
371         }
372
373         public override string ToString() {
374             return "Dynamic(" + _site.Binder.ToString() + ")";
375         }
376     }
377
378     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TRet> : Instruction {
379         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TRet>> _site;
380
381         public static Instruction Factory(CallSiteBinder binder) {
382             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TRet>>.Create(binder));
383         }
384
385         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,TRet>> site) {
386             _site = site;
387         }
388
389         public override int ProducedStack { get { return 1; } }
390         public override int ConsumedStack { get { return 11; } }
391
392         public override int Run(InterpretedFrame frame) {
393             frame.Data[frame.StackIndex - 11] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 11], (T1)frame.Data[frame.StackIndex - 10], (T2)frame.Data[frame.StackIndex - 9], (T3)frame.Data[frame.StackIndex - 8], (T4)frame.Data[frame.StackIndex - 7], (T5)frame.Data[frame.StackIndex - 6], (T6)frame.Data[frame.StackIndex - 5], (T7)frame.Data[frame.StackIndex - 4], (T8)frame.Data[frame.StackIndex - 3], (T9)frame.Data[frame.StackIndex - 2], (T10)frame.Data[frame.StackIndex - 1]);
394             frame.StackIndex -= 10;
395             return 1;
396         }
397
398         public override string ToString() {
399             return "Dynamic(" + _site.Binder.ToString() + ")";
400         }
401     }
402
403     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TRet> : Instruction {
404         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TRet>> _site;
405
406         public static Instruction Factory(CallSiteBinder binder) {
407             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TRet>>.Create(binder));
408         }
409
410         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,TRet>> site) {
411             _site = site;
412         }
413
414         public override int ProducedStack { get { return 1; } }
415         public override int ConsumedStack { get { return 12; } }
416
417         public override int Run(InterpretedFrame frame) {
418             frame.Data[frame.StackIndex - 12] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 12], (T1)frame.Data[frame.StackIndex - 11], (T2)frame.Data[frame.StackIndex - 10], (T3)frame.Data[frame.StackIndex - 9], (T4)frame.Data[frame.StackIndex - 8], (T5)frame.Data[frame.StackIndex - 7], (T6)frame.Data[frame.StackIndex - 6], (T7)frame.Data[frame.StackIndex - 5], (T8)frame.Data[frame.StackIndex - 4], (T9)frame.Data[frame.StackIndex - 3], (T10)frame.Data[frame.StackIndex - 2], (T11)frame.Data[frame.StackIndex - 1]);
419             frame.StackIndex -= 11;
420             return 1;
421         }
422
423         public override string ToString() {
424             return "Dynamic(" + _site.Binder.ToString() + ")";
425         }
426     }
427
428     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TRet> : Instruction {
429         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TRet>> _site;
430
431         public static Instruction Factory(CallSiteBinder binder) {
432             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TRet>>.Create(binder));
433         }
434
435         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,TRet>> site) {
436             _site = site;
437         }
438
439         public override int ProducedStack { get { return 1; } }
440         public override int ConsumedStack { get { return 13; } }
441
442         public override int Run(InterpretedFrame frame) {
443             frame.Data[frame.StackIndex - 13] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 13], (T1)frame.Data[frame.StackIndex - 12], (T2)frame.Data[frame.StackIndex - 11], (T3)frame.Data[frame.StackIndex - 10], (T4)frame.Data[frame.StackIndex - 9], (T5)frame.Data[frame.StackIndex - 8], (T6)frame.Data[frame.StackIndex - 7], (T7)frame.Data[frame.StackIndex - 6], (T8)frame.Data[frame.StackIndex - 5], (T9)frame.Data[frame.StackIndex - 4], (T10)frame.Data[frame.StackIndex - 3], (T11)frame.Data[frame.StackIndex - 2], (T12)frame.Data[frame.StackIndex - 1]);
444             frame.StackIndex -= 12;
445             return 1;
446         }
447
448         public override string ToString() {
449             return "Dynamic(" + _site.Binder.ToString() + ")";
450         }
451     }
452
453     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TRet> : Instruction {
454         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TRet>> _site;
455
456         public static Instruction Factory(CallSiteBinder binder) {
457             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TRet>>.Create(binder));
458         }
459
460         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,TRet>> site) {
461             _site = site;
462         }
463
464         public override int ProducedStack { get { return 1; } }
465         public override int ConsumedStack { get { return 14; } }
466
467         public override int Run(InterpretedFrame frame) {
468             frame.Data[frame.StackIndex - 14] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 14], (T1)frame.Data[frame.StackIndex - 13], (T2)frame.Data[frame.StackIndex - 12], (T3)frame.Data[frame.StackIndex - 11], (T4)frame.Data[frame.StackIndex - 10], (T5)frame.Data[frame.StackIndex - 9], (T6)frame.Data[frame.StackIndex - 8], (T7)frame.Data[frame.StackIndex - 7], (T8)frame.Data[frame.StackIndex - 6], (T9)frame.Data[frame.StackIndex - 5], (T10)frame.Data[frame.StackIndex - 4], (T11)frame.Data[frame.StackIndex - 3], (T12)frame.Data[frame.StackIndex - 2], (T13)frame.Data[frame.StackIndex - 1]);
469             frame.StackIndex -= 13;
470             return 1;
471         }
472
473         public override string ToString() {
474             return "Dynamic(" + _site.Binder.ToString() + ")";
475         }
476     }
477
478     internal class DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TRet> : Instruction {
479         private CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TRet>> _site;
480
481         public static Instruction Factory(CallSiteBinder binder) {
482             return new DynamicInstruction<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TRet>(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TRet>>.Create(binder));
483         }
484
485         private DynamicInstruction(CallSite<Func<CallSite,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,TRet>> site) {
486             _site = site;
487         }
488
489         public override int ProducedStack { get { return 1; } }
490         public override int ConsumedStack { get { return 15; } }
491
492         public override int Run(InterpretedFrame frame) {
493             frame.Data[frame.StackIndex - 15] = _site.Target(_site, (T0)frame.Data[frame.StackIndex - 15], (T1)frame.Data[frame.StackIndex - 14], (T2)frame.Data[frame.StackIndex - 13], (T3)frame.Data[frame.StackIndex - 12], (T4)frame.Data[frame.StackIndex - 11], (T5)frame.Data[frame.StackIndex - 10], (T6)frame.Data[frame.StackIndex - 9], (T7)frame.Data[frame.StackIndex - 8], (T8)frame.Data[frame.StackIndex - 7], (T9)frame.Data[frame.StackIndex - 6], (T10)frame.Data[frame.StackIndex - 5], (T11)frame.Data[frame.StackIndex - 4], (T12)frame.Data[frame.StackIndex - 3], (T13)frame.Data[frame.StackIndex - 2], (T14)frame.Data[frame.StackIndex - 1]);
494             frame.StackIndex -= 14;
495             return 1;
496         }
497
498         public override string ToString() {
499             return "Dynamic(" + _site.Binder.ToString() + ")";
500         }
501     }
502
503
504     // *** END GENERATED CODE ***
505
506     #endregion
507
508
509 }