annotate Source/Reflection/Emit/EmitHelper.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Diagnostics.CodeAnalysis;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using System.Diagnostics.SymbolStore;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using System.Reflection;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using System.Reflection.Emit;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using System.Runtime.InteropServices;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using BLToolkit.Common;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using BLToolkit.Properties;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 // ReSharper disable InconsistentNaming
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 namespace BLToolkit.Reflection.Emit
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 /// A wrapper around the <see cref="ILGenerator"/> class.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 /// <include file="Examples.CS.xml" path='examples/emit[@name="Emit"]/*' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 /// <include file="Examples.VB.xml" path='examples/emit[@name="Emit"]/*' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 /// <seealso cref="System.Reflection.Emit.ILGenerator">ILGenerator Class</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public class EmitHelper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 /// Initializes a new instance of the <see cref="EmitHelper"/> class
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 /// with the specified <see cref="System.Reflection.Emit.ILGenerator"/>.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 /// <param name="ilGenerator">The <see cref="System.Reflection.Emit.ILGenerator"/> to use.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 public EmitHelper(ILGenerator ilGenerator)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 if (ilGenerator == null) throw new ArgumentNullException("ilGenerator");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 _ilGenerator = ilGenerator;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 /// Initializes a new instance of the <see cref="EmitHelper"/> class
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 /// with the specified <see cref="System.Reflection.Emit.ILGenerator"/>.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 /// <param name="methodBuilder">Associated <see cref="MethodBuilderBase"/>.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 /// <param name="ilGenerator">The <see cref="System.Reflection.Emit.ILGenerator"/> to use.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 public EmitHelper(MethodBuilderBase methodBuilder, ILGenerator ilGenerator)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 if (methodBuilder == null) throw new ArgumentNullException("methodBuilder");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 if (ilGenerator == null) throw new ArgumentNullException("ilGenerator");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 _method = methodBuilder;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 _ilGenerator = ilGenerator;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 private readonly MethodBuilderBase _method;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 /// Gets <see cref="MethodBuilderHelper"/>.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public MethodBuilderBase Method
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 get { return _method; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 private readonly ILGenerator _ilGenerator;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 /// Gets MSIL generator.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 public ILGenerator ILGenerator
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 get { return _ilGenerator; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 /// Converts the supplied <see cref="EmitHelper"/> to a <see cref="ILGenerator"/>.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 /// <param name="emitHelper">The <see cref="EmitHelper"/>.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 /// <returns>An ILGenerator.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 public static implicit operator ILGenerator(EmitHelper emitHelper)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 if (emitHelper == null) throw new ArgumentNullException("emitHelper");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 return emitHelper.ILGenerator;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 #region ILGenerator Methods
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 /// Begins a catch block.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 /// <param name="exceptionType">The Type object that represents the exception.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 /// <seealso cref="System.Reflection.Emit.ILGenerator.BeginCatchBlock(Type)">ILGenerator.BeginCatchBlock Method</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 public EmitHelper BeginCatchBlock(Type exceptionType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 _ilGenerator.BeginCatchBlock(exceptionType); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 /// Begins an exception block for a filtered exception.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 /// <seealso cref="System.Reflection.Emit.ILGenerator.BeginExceptFilterBlock">ILGenerator.BeginCatchBlock Method</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 public EmitHelper BeginExceptFilterBlock()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 _ilGenerator.BeginExceptFilterBlock(); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 /// Begins an exception block for a non-filtered exception.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 /// <returns>The label for the end of the block.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 public Label BeginExceptionBlock()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 return _ilGenerator.BeginExceptionBlock();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 /// Begins an exception fault block in the Microsoft intermediate language (MSIL) stream.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 public EmitHelper BeginFaultBlock()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 _ilGenerator.BeginFaultBlock(); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 /// Begins a finally block in the Microsoft intermediate language (MSIL) instruction stream.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 public EmitHelper BeginFinallyBlock()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 _ilGenerator.BeginFinallyBlock(); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 /// Begins a lexical scope.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 public EmitHelper BeginScope()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 _ilGenerator.BeginScope(); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 /// Declares a local variable.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 /// <param name="localType">The Type of the local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 /// <returns>The declared local variable.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 public LocalBuilder DeclareLocal(Type localType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 return _ilGenerator.DeclareLocal(localType);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 /// Declares a local variable, optionally pinning the object referred to by the variable.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 /// <param name="localType">The Type of the local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 /// <param name="pinned"><b>true</b> to pin the object in memory; otherwise, <b>false</b>.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 /// <returns>The declared local variable.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 public LocalBuilder DeclareLocal(Type localType, bool pinned)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 return _ilGenerator.DeclareLocal(localType, pinned);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 /// Declares a new label.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 /// <returns>Returns a new label that can be used as a token for branching.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 public Label DefineLabel()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 return _ilGenerator.DefineLabel();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 /// Ends an exception block.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 public EmitHelper EndExceptionBlock()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 _ilGenerator.EndExceptionBlock(); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 /// Ends a lexical scope.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 public EmitHelper EndScope()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 _ilGenerator.EndScope(); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 /// Marks the Microsoft intermediate language (MSIL) stream's current position
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 /// with the given label.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 /// <param name="loc">The label for which to set an index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 public EmitHelper MarkLabel(Label loc)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 _ilGenerator.MarkLabel(loc); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 /// Marks a sequence point in the Microsoft intermediate language (MSIL) stream.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 /// <param name="document">The document for which the sequence point is being defined.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 /// <param name="startLine">The line where the sequence point begins.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 /// <param name="startColumn">The column in the line where the sequence point begins.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202 /// <param name="endLine">The line where the sequence point ends.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 /// <param name="endColumn">The column in the line where the sequence point ends.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 public EmitHelper MarkSequencePoint(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 ISymbolDocumentWriter document,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 int startLine,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 int startColumn,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 int endLine,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 int endColumn)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 _ilGenerator.MarkSequencePoint(document, startLine, startColumn, endLine, endColumn);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 /// Emits an instruction to throw an exception.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 /// <param name="exceptionType">The class of the type of exception to throw.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 public EmitHelper ThrowException(Type exceptionType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 _ilGenerator.ThrowException(exceptionType); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 /// Specifies the namespace to be used in evaluating locals and watches for
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 /// the current active lexical scope.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 /// <param name="namespaceName">The namespace to be used in evaluating locals and watches for the current active lexical scope.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 /// <returns>Current instance of the <see cref="EmitHelper"/>.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 public EmitHelper UsingNamespace(string namespaceName)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 _ilGenerator.UsingNamespace(namespaceName); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 #endregion
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 #region Emit Wrappers
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 /// Calls ILGenerator.Emit(<see cref="OpCodes.Add"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 /// adds two values and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 /// <seealso cref="OpCodes.Add">OpCodes.Add</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 public EmitHelper add
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 get { _ilGenerator.Emit(OpCodes.Add); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253 /// Calls ILGenerator.Emit(<see cref="OpCodes.Add_Ovf"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 /// adds two integers, performs an overflow check, and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 /// <seealso cref="OpCodes.Add_Ovf">OpCodes.Add_Ovf</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 public EmitHelper add_ovf
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 get { _ilGenerator.Emit(OpCodes.Add_Ovf); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 /// Calls ILGenerator.Emit(<see cref="OpCodes.Add_Ovf_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 /// adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 /// <seealso cref="OpCodes.Add_Ovf_Un">OpCodes.Add_Ovf_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 public EmitHelper add_ovf_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271 get { _ilGenerator.Emit(OpCodes.Add_Ovf_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 /// Calls ILGenerator.Emit(<see cref="OpCodes.And"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 /// computes the bitwise AND of two values and pushes the result onto the evalution stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 /// <seealso cref="OpCodes.And">OpCodes.And</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 public EmitHelper and
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 get { _ilGenerator.Emit(OpCodes.And); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 /// Calls ILGenerator.Emit(<see cref="OpCodes.Arglist"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287 /// returns an unmanaged pointer to the argument list of the current method.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289 /// <seealso cref="OpCodes.Arglist">OpCodes.Arglist</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 public EmitHelper arglist
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 get { _ilGenerator.Emit(OpCodes.Arglist); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 /// Calls ILGenerator.Emit(<see cref="OpCodes.Beq"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 /// transfers control to a target instruction if two values are equal.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 /// <seealso cref="OpCodes.Beq">OpCodes.Beq</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 public EmitHelper beq(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 _ilGenerator.Emit(OpCodes.Beq, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 /// Calls ILGenerator.Emit(<see cref="OpCodes.Beq_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 /// transfers control to a target instruction (short form) if two values are equal.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 /// <seealso cref="OpCodes.Beq_S">OpCodes.Beq_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 public EmitHelper beq_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 _ilGenerator.Emit(OpCodes.Beq_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bge"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322 /// transfers control to a target instruction if the first value is greater than or equal to the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 /// <seealso cref="OpCodes.Bge">OpCodes.Bge</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 public EmitHelper bge(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 _ilGenerator.Emit(OpCodes.Bge, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bge_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334 /// transfers control to a target instruction (short form)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 /// if the first value is greater than or equal to the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338 /// <seealso cref="OpCodes.Bge_S">OpCodes.Bge_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 public EmitHelper bge_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 _ilGenerator.Emit(OpCodes.Bge_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bge_Un"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 /// transfers control to a target instruction if the the first value is greather than the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 /// <seealso cref="OpCodes.Bge_Un">OpCodes.Bge_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 public EmitHelper bge_un(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 _ilGenerator.Emit(OpCodes.Bge_Un, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bge_Un_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 /// transfers control to a target instruction (short form) if if the the first value is greather than the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 /// <seealso cref="OpCodes.Bge_Un_S">OpCodes.Bge_Un_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 public EmitHelper bge_un_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 _ilGenerator.Emit(OpCodes.Bge_Un_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bgt"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 /// transfers control to a target instruction if the first value is greater than the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 /// <seealso cref="OpCodes.Bgt">OpCodes.Bgt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 public EmitHelper bgt(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 _ilGenerator.Emit(OpCodes.Bgt, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bgt_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 /// transfers control to a target instruction (short form) if the first value is greater than the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 /// <seealso cref="OpCodes.Bgt_S">OpCodes.Bgt_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 public EmitHelper bgt_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 _ilGenerator.Emit(OpCodes.Bgt_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bgt_Un"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 /// transfers control to a target instruction if the first value is greater than the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 /// <seealso cref="OpCodes.Bgt_Un">OpCodes.Bgt_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 public EmitHelper bgt_un(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 _ilGenerator.Emit(OpCodes.Bgt_Un, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bgt_Un_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 /// transfers control to a target instruction (short form) if the first value is greater than the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414 /// <seealso cref="OpCodes.Bgt_Un_S">OpCodes.Bgt_Un_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 public EmitHelper bgt_un_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418 _ilGenerator.Emit(OpCodes.Bgt_Un_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ble"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 /// transfers control to a target instruction if the first value is less than or equal to the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 /// <seealso cref="OpCodes.Ble">OpCodes.Ble</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 public EmitHelper ble(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 _ilGenerator.Emit(OpCodes.Ble, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ble_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435 /// transfers control to a target instruction (short form) if the first value is less than or equal to the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 /// <seealso cref="OpCodes.Ble_S">OpCodes.Ble_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 public EmitHelper ble_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 _ilGenerator.Emit(OpCodes.Ble_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ble_Un"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447 /// transfers control to a target instruction if the first value is less than or equal to the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 /// <seealso cref="OpCodes.Ble_Un">OpCodes.Ble_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 public EmitHelper ble_un(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455 _ilGenerator.Emit(OpCodes.Ble_Un, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ble_Un_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 /// transfers control to a target instruction (short form) if the first value is less than or equal to the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464 /// <seealso cref="OpCodes.Ble_Un_S">OpCodes.Ble_Un_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466 public EmitHelper ble_un_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 _ilGenerator.Emit(OpCodes.Ble_Un_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472 /// Calls ILGenerator.Emit(<see cref="OpCodes.Blt"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473 /// transfers control to a target instruction if the first value is less than the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 /// <seealso cref="OpCodes.Blt">OpCodes.Blt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 public EmitHelper blt(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 _ilGenerator.Emit(OpCodes.Blt, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484 /// Calls ILGenerator.Emit(<see cref="OpCodes.Blt_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
485 /// transfers control to a target instruction (short form) if the first value is less than the second value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
486 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
487 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
488 /// <seealso cref="OpCodes.Blt_S">OpCodes.Blt_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
489 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
490 public EmitHelper blt_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
491 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
492 _ilGenerator.Emit(OpCodes.Blt_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
493 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
494
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
495 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
496 /// Calls ILGenerator.Emit(<see cref="OpCodes.Blt_Un"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
497 /// transfers control to a target instruction if the first value is less than the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
498 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
499 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
500 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
501 /// <seealso cref="OpCodes.Blt_Un">OpCodes.Blt_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
502 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
503 public EmitHelper blt_un(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
504 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
505 _ilGenerator.Emit(OpCodes.Blt_Un, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
506 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
507
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
508 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
509 /// Calls ILGenerator.Emit(<see cref="OpCodes.Blt_Un_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
510 /// transfers control to a target instruction (short form) if the first value is less than the second value,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
511 /// when comparing unsigned integer values or unordered float values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
512 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
513 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
514 /// <seealso cref="OpCodes.Blt_Un_S">OpCodes.Blt_Un_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
515 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
516 public EmitHelper blt_un_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
517 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
518 _ilGenerator.Emit(OpCodes.Blt_Un_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
519 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
520
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
521 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
522 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bne_Un"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
523 /// transfers control to a target instruction when two unsigned integer values or unordered float values are not equal.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
524 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
525 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
526 /// <seealso cref="OpCodes.Bne_Un">OpCodes.Bne_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
527 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
528 public EmitHelper bne_un(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
529 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
530 _ilGenerator.Emit(OpCodes.Bne_Un, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
531 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
532
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
533 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
534 /// Calls ILGenerator.Emit(<see cref="OpCodes.Bne_Un_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
535 /// transfers control to a target instruction (short form)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
536 /// when two unsigned integer values or unordered float values are not equal.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
537 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
538 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
539 /// <seealso cref="OpCodes.Bne_Un_S">OpCodes.Bne_Un_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
540 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
541 public EmitHelper bne_un_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
542 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
543 _ilGenerator.Emit(OpCodes.Bne_Un_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
544 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
545
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
546 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
547 /// Calls ILGenerator.Emit(<see cref="OpCodes.Box"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
548 /// converts a value type to an object reference.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
549 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
550 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
551 /// <seealso cref="OpCodes.Box">OpCodes.Box</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
552 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
553 public EmitHelper box(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
554 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
555 _ilGenerator.Emit(OpCodes.Box, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
556 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
557
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
558 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
559 /// Converts a value type to an object reference if the value is a value type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
560 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
561 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
562 /// <seealso cref="OpCodes.Box">OpCodes.Box</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
563 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
564 public EmitHelper boxIfValueType(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
565 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
566 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
567
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
568 return type.IsValueType? box(type): this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
569 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
570
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
571 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
572 /// Calls ILGenerator.Emit(<see cref="OpCodes.Br"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
573 /// unconditionally transfers control to a target instruction.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
574 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
575 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
576 /// <seealso cref="OpCodes.Br">OpCodes.Br</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
577 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
578 public EmitHelper br(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
579 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
580 _ilGenerator.Emit(OpCodes.Br, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
581 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
582
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
583 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
584 /// Calls ILGenerator.Emit(<see cref="OpCodes.Break"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
585 /// signals the Common Language Infrastructure (CLI) to inform the debugger that a break point has been tripped.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
586 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
587 /// <seealso cref="OpCodes.Break">OpCodes.Break</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
588 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
589 public EmitHelper @break
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
590 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
591 get { _ilGenerator.Emit(OpCodes.Break); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
592 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
593
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
594 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
595 /// Calls ILGenerator.Emit(<see cref="OpCodes.Brfalse"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
596 /// transfers control to a target instruction if value is false, a null reference (Nothing in Visual Basic), or zero.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
597 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
598 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
599 /// <seealso cref="OpCodes.Brfalse">OpCodes.Brfalse</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
600 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
601 public EmitHelper brfalse(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
602 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
603 _ilGenerator.Emit(OpCodes.Brfalse, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
604 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
605
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
606 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
607 /// Calls ILGenerator.Emit(<see cref="OpCodes.Brfalse_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
608 /// transfers control to a target instruction if value is false, a null reference, or zero.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
609 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
610 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
611 /// <seealso cref="OpCodes.Brfalse_S">OpCodes.Brfalse_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
612 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
613 public EmitHelper brfalse_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
614 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
615 _ilGenerator.Emit(OpCodes.Brfalse_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
616 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
617
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
618 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
619 /// Calls ILGenerator.Emit(<see cref="OpCodes.Brtrue"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
620 /// transfers control to a target instruction if value is true, not null, or non-zero.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
621 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
622 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
623 /// <seealso cref="OpCodes.Brtrue">OpCodes.Brtrue</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
624 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
625 public EmitHelper brtrue(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
626 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
627 _ilGenerator.Emit(OpCodes.Brtrue, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
628 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
629
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
630 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
631 /// Calls ILGenerator.Emit(<see cref="OpCodes.Brtrue_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
632 /// transfers control to a target instruction (short form) if value is true, not null, or non-zero.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
633 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
634 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
635 /// <seealso cref="OpCodes.Brtrue_S">OpCodes.Brtrue_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
636 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
637 public EmitHelper brtrue_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
638 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
639 _ilGenerator.Emit(OpCodes.Brtrue_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
640 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
641
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
642 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
643 /// Calls ILGenerator.Emit(<see cref="OpCodes.Br_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
644 /// unconditionally transfers control to a target instruction (short form).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
645 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
646 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
647 /// <seealso cref="OpCodes.Br_S">OpCodes.Br_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
648 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
649 public EmitHelper br_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
650 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
651 _ilGenerator.Emit(OpCodes.Br_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
652 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
653
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
654 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
655 /// Calls ILGenerator.Emit(<see cref="OpCodes.Call"/>, methodInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
656 /// calls the method indicated by the passed method descriptor.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
657 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
658 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
659 /// <seealso cref="OpCodes.Call">OpCodes.Call</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
660 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
661 public EmitHelper call(MethodInfo methodInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
662 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
663 _ilGenerator.Emit(OpCodes.Call, methodInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
664 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
665
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
666 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
667 /// Calls ILGenerator.Emit(<see cref="OpCodes.Call"/>, constructorInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
668 /// calls the method indicated by the passed method descriptor.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
669 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
670 /// <param name="constructorInfo">The constructor to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
671 /// <seealso cref="OpCodes.Call">OpCodes.Call</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
672 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
673 public EmitHelper call(ConstructorInfo constructorInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
674 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
675 _ilGenerator.Emit(OpCodes.Call, constructorInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
676 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
677
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
678 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
679 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Call"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
680 /// calls the method indicated by the passed method descriptor.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
681 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
682 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
683 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
684 /// <seealso cref="OpCodes.Call">OpCodes.Call</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
685 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
686 public EmitHelper call(MethodInfo methodInfo, Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
687 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
688 _ilGenerator.EmitCall(OpCodes.Call, methodInfo, optionalParameterTypes); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
689 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
690
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
691 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
692 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Call"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
693 /// calls the method indicated by the passed method descriptor.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
694 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
695 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
696 /// <param name="methodName">The name of the method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
697 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
698 /// <seealso cref="OpCodes.Call">OpCodes.Call</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
699 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
700 public EmitHelper call(Type type, string methodName, params Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
701 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
702 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
703
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
704 MethodInfo methodInfo = type.GetMethod(methodName, optionalParameterTypes);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
705
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
706 if (methodInfo == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
707 throw CreateNoSuchMethodException(type, methodName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
708
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
709 return call(methodInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
710 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
711
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
712 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
713 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Call"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
714 /// calls the method indicated by the passed method descriptor.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
715 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
716 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
717 /// <param name="methodName">The name of the method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
718 /// <param name="flags">A bitmask comprised of one or more <see cref="BindingFlags"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
719 /// that specify how the search is conducted.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
720 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
721 /// <seealso cref="OpCodes.Call">OpCodes.Call</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
722 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
723 public EmitHelper call(Type type, string methodName, BindingFlags flags, params Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
724 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
725 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
726
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
727 MethodInfo methodInfo = type.GetMethod(methodName, flags, null, optionalParameterTypes, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
728
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
729 if (methodInfo == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
730 throw CreateNoSuchMethodException(type, methodName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
731
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
732 return call(methodInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
733 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
734
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
735 #if !SILVERLIGHT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
736
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
737 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
738 /// Calls ILGenerator.EmitCalli(<see cref="OpCodes.Calli"/>, <see cref="CallingConvention"/>, Type, Type[]) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
739 /// calls the method indicated on the evaluation stack (as a pointer to an entry point)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
740 /// with arguments described by a calling convention using an unmanaged calling convention.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
741 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
742 /// <param name="unmanagedCallConv">The unmanaged calling convention to be used.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
743 /// <param name="returnType">The Type of the result.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
744 /// <param name="parameterTypes">The types of the required arguments to the instruction.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
745 /// <seealso cref="OpCodes.Calli">OpCodes.Calli</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
746 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCalli(OpCode,CallingConvention,Type,Type[])">ILGenerator.EmitCalli</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
747 public EmitHelper calli(CallingConvention unmanagedCallConv, Type returnType, Type[] parameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
748 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
749 _ilGenerator.EmitCalli(OpCodes.Calli, unmanagedCallConv, returnType, parameterTypes);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
750 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
751 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
752
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
753 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
754 /// Calls ILGenerator.EmitCalli(<see cref="OpCodes.Calli"/>, <see cref="CallingConvention"/>, Type, Type[], Type[]) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
755 /// calls the method indicated on the evaluation stack (as a pointer to an entry point)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
756 /// with arguments described by a calling convention using a managed calling convention.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
757 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
758 /// <param name="callingConvention">The managed calling convention to be used.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
759 /// <param name="returnType">The Type of the result.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
760 /// <param name="parameterTypes">The types of the required arguments to the instruction.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
761 /// <param name="optionalParameterTypes">The types of the optional arguments for vararg calls.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
762 /// <seealso cref="OpCodes.Calli">OpCodes.Calli</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
763 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCalli(OpCode,CallingConventions,Type,Type[],Type[])">ILGenerator.EmitCalli</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
764 public EmitHelper calli(CallingConventions callingConvention, Type returnType, Type[] parameterTypes, Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
765 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
766 _ilGenerator.EmitCalli(OpCodes.Calli, callingConvention, returnType, parameterTypes, optionalParameterTypes);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
767 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
768 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
769
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
770 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
771
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
772 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
773 /// Calls ILGenerator.Emit(<see cref="OpCodes.Callvirt"/>, methodInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
774 /// calls a late-bound method on an object, pushing the return value onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
775 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
776 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
777 /// <seealso cref="OpCodes.Callvirt">OpCodes.Callvirt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
778 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
779 public EmitHelper callvirt(MethodInfo methodInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
780 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
781 _ilGenerator.Emit(OpCodes.Callvirt, methodInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
782 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
783
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
784 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
785 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Callvirt"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
786 /// calls a late-bound method on an object, pushing the return value onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
787 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
788 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
789 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
790 /// <seealso cref="OpCodes.Callvirt">OpCodes.Callvirt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
791 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
792 public EmitHelper callvirt(MethodInfo methodInfo, Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
793 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
794 _ilGenerator.EmitCall(OpCodes.Callvirt, methodInfo, optionalParameterTypes); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
795 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
796
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
797 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
798 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Callvirt"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
799 /// calls a late-bound method on an object, pushing the return value onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
800 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
801 /// <param name="methodName">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
802 /// <param name="type">The declaring type of the method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
803 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
804 /// <seealso cref="OpCodes.Callvirt">OpCodes.Callvirt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
805 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
806 public EmitHelper callvirt(Type type, string methodName, params Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
807 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
808 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
809
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
810 MethodInfo methodInfo = type.GetMethod(methodName, optionalParameterTypes);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
811
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
812 if (methodInfo == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
813 throw CreateNoSuchMethodException(type, methodName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
814
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
815 return callvirt(methodInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
816 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
817
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
818 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
819 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Callvirt"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
820 /// calls a late-bound method on an object, pushing the return value onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
821 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
822 /// <param name="methodName">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
823 /// <param name="type">The declaring type of the method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
824 /// <param name="flags">A bitmask comprised of one or more <see cref="BindingFlags"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
825 /// that specify how the search is conducted.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
826 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
827 /// <seealso cref="OpCodes.Callvirt">OpCodes.Callvirt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
828 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
829 public EmitHelper callvirt(Type type, string methodName, BindingFlags flags, params Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
830 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
831 MethodInfo methodInfo =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
832 optionalParameterTypes == null?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
833 type.GetMethod(methodName, flags):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
834 type.GetMethod(methodName, flags, null, optionalParameterTypes, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
835
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
836 if (methodInfo == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
837 throw CreateNoSuchMethodException(type, methodName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
838
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
839 return callvirt(methodInfo, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
840 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
841
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
842 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
843 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Callvirt"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
844 /// calls a late-bound method on an object, pushing the return value onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
845 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
846 /// <param name="methodName">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
847 /// <param name="type">The declaring type of the method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
848 /// <param name="flags">A bitmask comprised of one or more <see cref="BindingFlags"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
849 /// that specify how the search is conducted.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
850 /// <seealso cref="OpCodes.Callvirt">OpCodes.Callvirt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
851 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
852 public EmitHelper callvirt(Type type, string methodName, BindingFlags flags)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
853 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
854 return callvirt(type, methodName, flags, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
855 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
856
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
857 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
858 /// Calls ILGenerator.EmitCall(<see cref="OpCodes.Callvirt"/>, methodInfo, optionalParameterTypes) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
859 /// calls a late-bound method on an object, pushing the return value onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
860 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
861 /// <param name="methodName">The non-generic method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
862 /// <param name="type">The declaring type of the method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
863 /// <param name="optionalParameterTypes">The types of the optional arguments if the method is a varargs method.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
864 /// <seealso cref="OpCodes.Callvirt">OpCodes.Callvirt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
865 /// <seealso cref="System.Reflection.Emit.ILGenerator.EmitCall(OpCode,MethodInfo,Type[])">ILGenerator.EmitCall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
866 public EmitHelper callvirtNoGenerics(Type type, string methodName, params Type[] optionalParameterTypes)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
867 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
868 MethodInfo methodInfo = type.GetMethod(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
869 methodName,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
870 BindingFlags.Instance | BindingFlags.Public,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
871 GenericBinder.NonGeneric,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
872 optionalParameterTypes, null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
873
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
874 if (methodInfo == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
875 throw CreateNoSuchMethodException(type, methodName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
876
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
877 return callvirt(methodInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
878 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
879
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
880 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
881 /// Calls ILGenerator.Emit(<see cref="OpCodes.Castclass"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
882 /// attempts to cast an object passed by reference to the specified class.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
883 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
884 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
885 /// <seealso cref="OpCodes.Castclass">OpCodes.Castclass</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
886 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
887 public EmitHelper castclass(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
888 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
889 _ilGenerator.Emit(OpCodes.Castclass, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
890 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
891
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
892 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
893 /// Attempts to cast an object passed by reference to the specified class
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
894 /// or to unbox if the type is a value type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
895 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
896 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
897 public EmitHelper castType(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
898 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
899 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
900
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
901 return type.IsValueType? unbox_any(type): castclass(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
902 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
903
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
904 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
905 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ceq"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
906 /// compares two values. If they are equal, the integer value 1 (int32) is pushed onto the evaluation stack;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
907 /// otherwise 0 (int32) is pushed onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
908 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
909 /// <seealso cref="OpCodes.Ceq">OpCodes.Ceq</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
910 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
911 public EmitHelper ceq
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
912 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
913 get { _ilGenerator.Emit(OpCodes.Ceq); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
914 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
915
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
916 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
917 /// Calls ILGenerator.Emit(<see cref="OpCodes.Cgt"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
918 /// compares two values. If the first value is greater than the second,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
919 /// the integer value 1 (int32) is pushed onto the evaluation stack;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
920 /// otherwise 0 (int32) is pushed onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
921 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
922 /// <seealso cref="OpCodes.Cgt">OpCodes.Cgt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
923 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
924 public EmitHelper cgt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
925 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
926 get { _ilGenerator.Emit(OpCodes.Cgt); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
927 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
928
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
929 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
930 /// Calls ILGenerator.Emit(<see cref="OpCodes.Cgt_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
931 /// compares two unsigned or unordered values.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
932 /// If the first value is greater than the second, the integer value 1 (int32) is pushed onto the evaluation stack;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
933 /// otherwise 0 (int32) is pushed onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
934 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
935 /// <seealso cref="OpCodes.Cgt_Un">OpCodes.Cgt_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
936 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
937 public EmitHelper cgt_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
938 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
939 get { _ilGenerator.Emit(OpCodes.Cgt_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
940 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
941
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
942 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
943 /// Calls ILGenerator.Emit(<see cref="OpCodes.Constrained"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
944 /// constrains the type on which a virtual method call is made.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
945 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
946 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
947 /// <seealso cref="OpCodes.Cgt_Un">OpCodes.Constrained</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
948 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
949 public EmitHelper constrained(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
950 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
951 _ilGenerator.Emit(OpCodes.Constrained, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
952 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
953
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
954 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
955 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ckfinite"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
956 /// throws <see cref="ArithmeticException"/> if value is not a finite number.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
957 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
958 /// <seealso cref="OpCodes.Ckfinite">OpCodes.Ckfinite</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
959 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
960 public EmitHelper ckfinite
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
961 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
962 get { _ilGenerator.Emit(OpCodes.Ckfinite); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
963 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
964
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
965 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
966 /// Calls ILGenerator.Emit(<see cref="OpCodes.Clt"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
967 /// compares two values. If the first value is less than the second,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
968 /// the integer value 1 (int32) is pushed onto the evaluation stack;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
969 /// otherwise 0 (int32) is pushed onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
970 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
971 /// <seealso cref="OpCodes.Clt">OpCodes.Clt</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
972 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
973 public EmitHelper clt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
974 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
975 get { _ilGenerator.Emit(OpCodes.Clt); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
976 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
977
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
978 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
979 /// Calls ILGenerator.Emit(<see cref="OpCodes.Clt_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
980 /// compares the unsigned or unordered values value1 and value2.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
981 /// If value1 is less than value2, then the integer value 1 (int32) is pushed onto the evaluation stack;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
982 /// otherwise 0 (int32) is pushed onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
983 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
984 /// <seealso cref="OpCodes.Clt_Un">OpCodes.Clt_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
985 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
986 public EmitHelper clt_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
987 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
988 get { _ilGenerator.Emit(OpCodes.Clt_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
989 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
990
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
991 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
992 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_I"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
993 /// converts the value on top of the evaluation stack to natural int.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
994 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
995 /// <seealso cref="OpCodes.Conv_I">OpCodes.Conv_I</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
996 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
997 public EmitHelper conv_i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
998 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
999 get { _ilGenerator.Emit(OpCodes.Conv_I); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1000 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1001
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1002 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1003 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_I1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1004 /// converts the value on top of the evaluation stack to int8, then extends (pads) it to int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1005 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1006 /// <seealso cref="OpCodes.Conv_I1">OpCodes.Conv_I1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1007 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1008 public EmitHelper conv_i1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1009 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1010 get { _ilGenerator.Emit(OpCodes.Conv_I1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1011 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1012
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1013 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1014 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_I2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1015 /// converts the value on top of the evaluation stack to int16, then extends (pads) it to int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1016 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1017 /// <seealso cref="OpCodes.Conv_I2">OpCodes.Conv_I2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1018 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1019 public EmitHelper conv_i2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1020 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1021 get { _ilGenerator.Emit(OpCodes.Conv_I2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1022 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1023
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1024 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1025 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_I4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1026 /// converts the value on top of the evaluation stack to int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1027 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1028 /// <seealso cref="OpCodes.Conv_I4">OpCodes.Conv_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1029 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1030 public EmitHelper conv_i4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1031 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1032 get { _ilGenerator.Emit(OpCodes.Conv_I4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1033 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1034
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1035 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1036 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_I8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1037 /// converts the value on top of the evaluation stack to int64.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1038 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1039 /// <seealso cref="OpCodes.Conv_I8">OpCodes.Conv_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1040 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1041 public EmitHelper conv_i8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1042 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1043 get { _ilGenerator.Emit(OpCodes.Conv_I8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1044 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1045
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1046 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1047 /// Converts the value on top of the evaluation stack to the specified type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1048 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1049 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1050 public EmitHelper conv(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1051 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1052 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1053
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1054 switch (Type.GetTypeCode(type))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1055 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1056 case TypeCode.Boolean:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1057 case TypeCode.SByte: conv_i1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1058 case TypeCode.Int16: conv_i2.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1059 case TypeCode.Int32: conv_i4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1060 case TypeCode.Int64: conv_i8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1061
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1062 case TypeCode.Byte: conv_u1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1063 case TypeCode.Char:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1064 case TypeCode.UInt16: conv_u2.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1065 case TypeCode.UInt32: conv_u4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1066 case TypeCode.UInt64: conv_u8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1067
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1068 case TypeCode.Single: conv_r4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1069 case TypeCode.Double: conv_r8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1070
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1071 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1072 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1073 if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1074 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1075 ConstructorInfo ci = type.GetConstructor(type.GetGenericArguments());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1076 if (ci != null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1077 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1078 newobj(ci);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1079 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1080 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1081 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1082
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1083 throw CreateNotExpectedTypeException(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1084 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1085 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1086
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1087 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1088 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1089
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1090
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1091 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1092 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1093 /// converts the signed value on top of the evaluation stack to signed natural int,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1094 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1095 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1096 /// <seealso cref="OpCodes.Conv_Ovf_I">OpCodes.Conv_Ovf_I</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1097 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1098 public EmitHelper conv_ovf_i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1099 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1100 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1101 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1102
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1103 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1104 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1105 /// converts the signed value on top of the evaluation stack to signed int8 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1106 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1107 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1108 /// <seealso cref="OpCodes.Conv_Ovf_I1">OpCodes.Conv_Ovf_I1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1109 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1110 public EmitHelper conv_ovf_i1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1111 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1112 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1113 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1114
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1115 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1116 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I1_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1117 /// converts the unsigned value on top of the evaluation stack to signed int8 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1118 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1119 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1120 /// <seealso cref="OpCodes.Conv_Ovf_I1_Un">OpCodes.Conv_Ovf_I1_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1121 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1122 public EmitHelper conv_ovf_i1_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1123 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1124 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I1_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1125 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1126
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1127 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1128 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1129 /// converts the signed value on top of the evaluation stack to signed int16 and extending it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1130 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1131 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1132 /// <seealso cref="OpCodes.Conv_Ovf_I2">OpCodes.Conv_Ovf_I2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1133 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1134 public EmitHelper conv_ovf_i2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1135 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1136 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1137 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1138
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1139 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1140 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I2_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1141 /// converts the unsigned value on top of the evaluation stack to signed int16 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1142 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1143 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1144 /// <seealso cref="OpCodes.Conv_Ovf_I2_Un">OpCodes.Conv_Ovf_I2_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1145 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1146 public EmitHelper conv_ovf_i2_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1147 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1148 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I2_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1149 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1150
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1151 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1152 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1153 /// converts the signed value on top of the evaluation tack to signed int32, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1154 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1155 /// <seealso cref="OpCodes.Conv_Ovf_I4">OpCodes.Conv_Ovf_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1156 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1157 public EmitHelper conv_ovf_i4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1158 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1159 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I2_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1160 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1161
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1162 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1163 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I4_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1164 /// converts the unsigned value on top of the evaluation stack to signed int32, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1165 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1166 /// <seealso cref="OpCodes.Conv_Ovf_I4_Un">OpCodes.Conv_Ovf_I4_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1167 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1168 public EmitHelper conv_ovf_i4_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1169 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1170 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I4_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1171 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1172
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1173 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1174 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1175 /// converts the signed value on top of the evaluation stack to signed int64,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1176 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1177 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1178 /// <seealso cref="OpCodes.Conv_Ovf_I8">OpCodes.Conv_Ovf_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1179 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1180 public EmitHelper conv_ovf_i8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1181 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1182 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1183 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1184
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1185 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1186 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I8_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1187 /// converts the unsigned value on top of the evaluation stack to signed int64, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1188 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1189 /// <seealso cref="OpCodes.Conv_Ovf_I8_Un">OpCodes.Conv_Ovf_I8_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1190 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1191 public EmitHelper conv_ovf_i8_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1192 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1193 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I8_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1194 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1195
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1196 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1197 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_I_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1198 /// converts the unsigned value on top of the evaluation stack to signed natural int,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1199 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1200 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1201 /// <seealso cref="OpCodes.Conv_Ovf_I_Un">OpCodes.Conv_Ovf_I_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1202 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1203 public EmitHelper conv_ovf_i_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1204 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1205 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_I_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1206 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1207
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1208 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1209 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1210 /// converts the signed value on top of the evaluation stack to unsigned natural int,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1211 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1212 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1213 /// <seealso cref="OpCodes.Conv_Ovf_U">OpCodes.Conv_Ovf_U</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1214 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1215 public EmitHelper conv_ovf_u
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1216 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1217 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1218 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1219
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1220 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1221 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1222 /// converts the signed value on top of the evaluation stack to unsigned int8 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1223 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1224 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1225 /// <seealso cref="OpCodes.Conv_Ovf_U1">OpCodes.Conv_Ovf_U1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1226 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1227 public EmitHelper conv_ovf_u1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1228 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1229 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1230 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1231
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1232 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1233 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U1_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1234 /// converts the unsigned value on top of the evaluation stack to unsigned int8 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1235 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1236 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1237 /// <seealso cref="OpCodes.Conv_Ovf_U1_Un">OpCodes.Conv_Ovf_U1_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1238 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1239 public EmitHelper conv_ovf_u1_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1240 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1241 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U1_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1242 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1243
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1244 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1245 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1246 /// converts the signed value on top of the evaluation stack to unsigned int16 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1247 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1248 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1249 /// <seealso cref="OpCodes.Conv_Ovf_U2">OpCodes.Conv_Ovf_U2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1250 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1251 public EmitHelper conv_ovf_u2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1252 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1253 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1254 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1255
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1256 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1257 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U2_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1258 /// converts the unsigned value on top of the evaluation stack to unsigned int16 and extends it to int32,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1259 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1260 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1261 /// <seealso cref="OpCodes.Conv_Ovf_U2_Un">OpCodes.Conv_Ovf_U2_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1262 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1263 public EmitHelper conv_ovf_u2_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1264 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1265 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U2_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1266 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1267
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1268 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1269 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1270 /// Converts the signed value on top of the evaluation stack to unsigned int32, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1271 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1272 /// <seealso cref="OpCodes.Conv_Ovf_U4">OpCodes.Conv_Ovf_U4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1273 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1274 public EmitHelper conv_ovf_u4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1275 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1276 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1277 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1278
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1279 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1280 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U4_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1281 /// converts the unsigned value on top of the evaluation stack to unsigned int32, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1282 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1283 /// <seealso cref="OpCodes.Conv_Ovf_U4_Un">OpCodes.Conv_Ovf_U4_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1284 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1285 public EmitHelper conv_ovf_u4_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1286 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1287 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U4_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1288 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1289
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1290 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1291 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1292 /// converts the signed value on top of the evaluation stack to unsigned int64, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1293 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1294 /// <seealso cref="OpCodes.Conv_Ovf_U8">OpCodes.Conv_Ovf_U8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1295 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1296 public EmitHelper conv_ovf_u8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1297 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1298 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1299 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1300
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1301 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1302 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U8_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1303 /// converts the unsigned value on top of the evaluation stack to unsigned int64, throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1304 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1305 /// <seealso cref="OpCodes.Conv_Ovf_U8_Un">OpCodes.Conv_Ovf_U8_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1306 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1307 public EmitHelper conv_ovf_u8_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1308 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1309 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U8_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1310 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1311
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1312 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1313 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_Ovf_U_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1314 /// converts the unsigned value on top of the evaluation stack to unsigned natural int,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1315 /// throwing <see cref="OverflowException"/> on overflow.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1316 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1317 /// <seealso cref="OpCodes.Conv_Ovf_U_Un">OpCodes.Conv_Ovf_U_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1318 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1319 public EmitHelper conv_ovf_u_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1320 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1321 get { _ilGenerator.Emit(OpCodes.Conv_Ovf_U_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1322 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1323
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1324 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1325 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_R4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1326 /// converts the value on top of the evaluation stack to float32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1327 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1328 /// <seealso cref="OpCodes.Conv_R4">OpCodes.Conv_R4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1329 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1330 public EmitHelper conv_r4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1331 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1332 get { _ilGenerator.Emit(OpCodes.Conv_R4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1333 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1334
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1335 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1336 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_R8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1337 /// converts the value on top of the evaluation stack to float64.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1338 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1339 /// <seealso cref="OpCodes.Conv_R8">OpCodes.Conv_R8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1340 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1341 public EmitHelper conv_r8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1342 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1343 get { _ilGenerator.Emit(OpCodes.Conv_R8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1344 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1345
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1346 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1347 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_R_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1348 /// converts the unsigned integer value on top of the evaluation stack to float32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1349 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1350 /// <seealso cref="OpCodes.Conv_R_Un">OpCodes.Conv_R_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1351 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1352 public EmitHelper conv_r_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1353 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1354 get { _ilGenerator.Emit(OpCodes.Conv_R_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1355 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1356
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1357 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1358 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_U"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1359 /// converts the value on top of the evaluation stack to unsigned natural int, and extends it to natural int.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1360 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1361 /// <seealso cref="OpCodes.Conv_U">OpCodes.Conv_U</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1362 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1363 public EmitHelper conv_u
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1364 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1365 get { _ilGenerator.Emit(OpCodes.Conv_U); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1366 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1367
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1368 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1369 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_U1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1370 /// converts the value on top of the evaluation stack to unsigned int8, and extends it to int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1371 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1372 /// <seealso cref="OpCodes.Conv_U1">OpCodes.Conv_U1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1373 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1374 public EmitHelper conv_u1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1375 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1376 get { _ilGenerator.Emit(OpCodes.Conv_U1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1377 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1378
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1379 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1380 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_U2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1381 /// converts the value on top of the evaluation stack to unsigned int16, and extends it to int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1382 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1383 /// <seealso cref="OpCodes.Conv_U2">OpCodes.Conv_U2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1384 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1385 public EmitHelper conv_u2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1386 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1387 get { _ilGenerator.Emit(OpCodes.Conv_U2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1388 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1389
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1390 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1391 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_U4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1392 /// converts the value on top of the evaluation stack to unsigned int32, and extends it to int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1393 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1394 /// <seealso cref="OpCodes.Conv_U4">OpCodes.Conv_U4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1395 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1396 public EmitHelper conv_u4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1397 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1398 get { _ilGenerator.Emit(OpCodes.Conv_U4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1399 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1400
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1401 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1402 /// Calls ILGenerator.Emit(<see cref="OpCodes.Conv_U8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1403 /// converts the value on top of the evaluation stack to unsigned int64, and extends it to int64.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1404 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1405 /// <seealso cref="OpCodes.Conv_U8">OpCodes.Conv_U8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1406 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1407 public EmitHelper conv_u8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1408 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1409 get { _ilGenerator.Emit(OpCodes.Conv_U8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1410 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1411
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1412 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1413 /// Calls ILGenerator.Emit(<see cref="OpCodes.Cpblk"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1414 /// copies a specified number bytes from a source address to a destination address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1415 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1416 /// <seealso cref="OpCodes.Cpblk">OpCodes.Cpblk</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1417 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1418 public EmitHelper cpblk
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1419 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1420 get { _ilGenerator.Emit(OpCodes.Cpblk); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1421 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1422
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1423 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1424 /// Calls ILGenerator.Emit(<see cref="OpCodes.Cpobj"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1425 /// copies the value type located at the address of an object (type &amp;, * or natural int)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1426 /// to the address of the destination object (type &amp;, * or natural int).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1427 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1428 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1429 /// <seealso cref="OpCodes.Cpobj">OpCodes.Cpobj</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1430 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1431 public EmitHelper cpobj(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1432 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1433 _ilGenerator.Emit(OpCodes.Cpobj, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1434 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1435
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1436 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1437 /// Calls ILGenerator.Emit(<see cref="OpCodes.Div"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1438 /// divides two values and pushes the result as a floating-point (type F) or
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1439 /// quotient (type int32) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1440 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1441 /// <seealso cref="OpCodes.Div">OpCodes.Div</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1442 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1443 public EmitHelper div
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1444 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1445 get { _ilGenerator.Emit(OpCodes.Div); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1446 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1447
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1448 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1449 /// Calls ILGenerator.Emit(<see cref="OpCodes.Div_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1450 /// divides two unsigned integer values and pushes the result (int32) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1451 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1452 /// <seealso cref="OpCodes.Div_Un">OpCodes.Div_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1453 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1454 public EmitHelper div_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1455 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1456 get { _ilGenerator.Emit(OpCodes.Div_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1457 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1458
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1459 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1460 /// Calls ILGenerator.Emit(<see cref="OpCodes.Dup"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1461 /// copies the current topmost value on the evaluation stack, and then pushes the copy onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1462 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1463 /// <seealso cref="OpCodes.Dup">OpCodes.Dup</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1464 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1465 public EmitHelper dup
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1466 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1467 get { _ilGenerator.Emit(OpCodes.Dup); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1468 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1469
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1470 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1471 /// Calls ILGenerator.Emit(<see cref="OpCodes.Endfilter"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1472 /// transfers control from the filter clause of an exception back to
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1473 /// the Common Language Infrastructure (CLI) exception handler.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1474 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1475 /// <seealso cref="OpCodes.Endfilter">OpCodes.Endfilter</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1476 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1477 public EmitHelper endfilter
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1478 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1479 get { _ilGenerator.Emit(OpCodes.Endfilter); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1480 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1481
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1482 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1483 /// Calls ILGenerator.Emit(<see cref="OpCodes.Endfinally"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1484 /// transfers control from the fault or finally clause of an exception block back to
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1485 /// the Common Language Infrastructure (CLI) exception handler.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1486 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1487 /// <seealso cref="OpCodes.Endfinally">OpCodes.Endfinally</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1488 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1489 public EmitHelper endfinally
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1490 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1491 get { _ilGenerator.Emit(OpCodes.Endfinally); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1492 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1493
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1494 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1495 /// Calls ILGenerator.Emit(<see cref="OpCodes.Initblk"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1496 /// initializes a specified block of memory at a specific address to a given size and initial value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1497 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1498 /// <seealso cref="OpCodes.Initblk">OpCodes.Initblk</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1499 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1500 public EmitHelper initblk
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1501 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1502 get { _ilGenerator.Emit(OpCodes.Initblk); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1503 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1504
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1505 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1506 /// Calls ILGenerator.Emit(<see cref="OpCodes.Initobj"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1507 /// initializes all the fields of the object at a specific address to a null reference or
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1508 /// a 0 of the appropriate primitive type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1509 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1510 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1511 /// <seealso cref="OpCodes.Initobj">OpCodes.Initobj</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1512 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1513 public EmitHelper initobj(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1514 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1515 _ilGenerator.Emit(OpCodes.Initobj, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1516 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1517
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1518 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1519 /// Calls ILGenerator.Emit(<see cref="OpCodes.Isinst"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1520 /// tests whether an object reference (type O) is an instance of a particular class.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1521 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1522 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1523 /// <seealso cref="OpCodes.Isinst">OpCodes.Isinst</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1524 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1525 public EmitHelper isinst(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1526 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1527 _ilGenerator.Emit(OpCodes.Isinst, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1528 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1529
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1530 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1531 /// Calls ILGenerator.Emit(<see cref="OpCodes.Jmp"/>, methodInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1532 /// exits current method and jumps to specified method.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1533 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1534 /// <param name="methodInfo">The method to be jumped.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1535 /// <seealso cref="OpCodes.Jmp">OpCodes.Jmp</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1536 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1537 public EmitHelper jmp(MethodInfo methodInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1538 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1539 _ilGenerator.Emit(OpCodes.Jmp, methodInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1540 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1541
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1542 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1543 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg"/>, short) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1544 /// loads an argument (referenced by a specified index value) onto the stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1545 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1546 /// <param name="index">Index of the argument that is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1547 /// <seealso cref="OpCodes.Ldarg">OpCodes.Ldarg</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1548 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1549 public EmitHelper ldarg(short index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1550 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1551 _ilGenerator.Emit(OpCodes.Ldarg, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1552 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1553
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1554 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1555 /// Loads an argument onto the stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1556 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1557 /// <param name="parameterInfo">A <see cref="ParameterInfo"/> representing a parameter.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1558 /// <param name="box">True, if parameter must be converted to a reference.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1559 /// <seealso cref="ldarg(ParameterInfo)"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1560 public EmitHelper ldargEx(ParameterInfo parameterInfo, bool box)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1561 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1562 ldarg(parameterInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1563
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1564 Type type = parameterInfo.ParameterType;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1565
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1566 if (parameterInfo.ParameterType.IsByRef)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1567 type = parameterInfo.ParameterType.GetElementType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1568
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1569 if (parameterInfo.ParameterType.IsByRef)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1570 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1571 if (type.IsValueType && type.IsPrimitive == false)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1572 ldobj(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1573 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1574 ldind(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1575 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1576
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1577 if (box)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1578 boxIfValueType(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1579
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1580 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1581 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1582
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1583 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1584 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg"/>, short) or
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1585 /// ILGenerator.Emit(<see cref="OpCodes.Ldarg_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1586 /// loads an argument (referenced by a specified index value) onto the stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1587 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1588 /// <param name="index">Index of the argument that is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1589 /// <seealso cref="OpCodes.Ldarg">OpCodes.Ldarg</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1590 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1591 public EmitHelper ldarg(int index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1592 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1593 switch (index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1594 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1595 case 0: ldarg_0.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1596 case 1: ldarg_1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1597 case 2: ldarg_2.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1598 case 3: ldarg_3.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1599 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1600 if (index <= byte. MaxValue) ldarg_s((byte)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1601 else if (index <= short.MaxValue) ldarg ((short)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1602 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1603 throw new ArgumentOutOfRangeException("index");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1604
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1605 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1606 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1607
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1608 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1609 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1610
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1611 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1612 /// Loads an argument onto the stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1613 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1614 /// <param name="parameterInfo">A <see cref="ParameterInfo"/> representing a parameter.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1615 public EmitHelper ldarg(ParameterInfo parameterInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1616 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1617 if (parameterInfo == null) throw new ArgumentNullException("parameterInfo");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1618
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1619 bool isStatic =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1620 Method is MethodBuilderHelper && ((MethodBuilderHelper)Method).MethodBuilder.IsStatic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1621
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1622 return ldarg(parameterInfo.Position + (isStatic? 0: 1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1623 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1624
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1625 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1626 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarga"/>, short) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1627 /// load an argument address onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1628 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1629 /// <param name="index">Index of the address addr of the argument that is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1630 /// <seealso cref="OpCodes.Ldarga">OpCodes.Ldarga</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1631 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1632 public EmitHelper ldarga(short index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1633 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1634 _ilGenerator.Emit(OpCodes.Ldarga, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1635 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1636
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1637 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1638 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarga_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1639 /// load an argument address, in short form, onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1640 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1641 /// <param name="index">Index of the address addr of the argument that is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1642 /// <seealso cref="OpCodes.Ldarga_S">OpCodes.Ldarga_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1643 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,byte)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1644 public EmitHelper ldarga_s(byte index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1645 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1646 _ilGenerator.Emit(OpCodes.Ldarga_S, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1647 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1648
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1649 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1650 /// Load an argument address onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1651 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1652 /// <param name="index">Index of the address addr of the argument that is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1653 public EmitHelper ldarga(int index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1654 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1655 if (index <= byte. MaxValue) ldarga_s((byte)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1656 else if (index <= short.MaxValue) ldarga ((short)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1657 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1658 throw new ArgumentOutOfRangeException("index");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1659
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1660 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1661 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1662
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1663 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1664 /// Loads an argument address onto the stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1665 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1666 /// <param name="parameterInfo">A <see cref="ParameterInfo"/> representing a parameter.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1667 public EmitHelper ldarga(ParameterInfo parameterInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1668 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1669 if (parameterInfo == null) throw new ArgumentNullException("parameterInfo");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1670
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1671 bool isStatic =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1672 Method is MethodBuilderHelper && ((MethodBuilderHelper)Method).MethodBuilder.IsStatic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1673
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1674 return ldarga(parameterInfo.Position + (isStatic? 0: 1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1675 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1676
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1677
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1678 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1679 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg_0"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1680 /// loads the argument at index 0 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1681 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1682 /// <seealso cref="OpCodes.Ldarg_0">OpCodes.Ldarg_0</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1683 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1684 public EmitHelper ldarg_0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1685 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1686 get { _ilGenerator.Emit(OpCodes.Ldarg_0); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1687 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1688
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1689 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1690 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg_1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1691 /// loads the argument at index 1 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1692 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1693 /// <seealso cref="OpCodes.Ldarg_1">OpCodes.Ldarg_1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1694 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1695 public EmitHelper ldarg_1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1696 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1697 get { _ilGenerator.Emit(OpCodes.Ldarg_1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1698 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1699
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1700 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1701 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg_2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1702 /// loads the argument at index 2 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1703 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1704 /// <seealso cref="OpCodes.Ldarg_2">OpCodes.Ldarg_2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1705 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1706 public EmitHelper ldarg_2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1707 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1708 get { _ilGenerator.Emit(OpCodes.Ldarg_2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1709 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1710
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1711 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1712 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg_3"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1713 /// loads the argument at index 3 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1714 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1715 /// <seealso cref="OpCodes.Ldarg_3">OpCodes.Ldarg_3</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1716 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1717 public EmitHelper ldarg_3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1718 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1719 get { _ilGenerator.Emit(OpCodes.Ldarg_3); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1720 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1721
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1722 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1723 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldarg_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1724 /// loads the argument (referenced by a specified short form index) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1725 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1726 /// <param name="index">Index of the argument value that is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1727 /// <seealso cref="OpCodes.Ldarg_S">OpCodes.Ldarg_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1728 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,byte)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1729 public EmitHelper ldarg_s(byte index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1730 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1731 _ilGenerator.Emit(OpCodes.Ldarg_S, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1732 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1733
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1734 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1735 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_0"/> or <see cref="OpCodes.Ldc_I4_1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1736 /// pushes a supplied value of type int32 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1737 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1738 /// <param name="b">The value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1739 /// <seealso cref="OpCodes.Ldc_I4">OpCodes.Ldc_I4_0</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1740 /// <seealso cref="OpCodes.Ldc_I4">OpCodes.Ldc_I4_1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1741 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,int)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1742 public EmitHelper ldc_bool(bool b)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1743 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1744 _ilGenerator.Emit(b? OpCodes.Ldc_I4_1: OpCodes.Ldc_I4_0); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1745 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1746
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1747 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1748 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4"/>, int) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1749 /// pushes a supplied value of type int32 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1750 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1751 /// <param name="num">The value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1752 /// <seealso cref="OpCodes.Ldc_I4">OpCodes.Ldc_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1753 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,int)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1754 public EmitHelper ldc_i4(int num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1755 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1756 _ilGenerator.Emit(OpCodes.Ldc_I4, num); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1757 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1758
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1759 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1760 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_0"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1761 /// pushes the integer value of 0 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1762 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1763 /// <seealso cref="OpCodes.Ldc_I4_0">OpCodes.Ldc_I4_0</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1764 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1765 public EmitHelper ldc_i4_0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1766 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1767 get { _ilGenerator.Emit(OpCodes.Ldc_I4_0); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1768 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1769
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1770 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1771 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1772 /// pushes the integer value of 1 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1773 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1774 /// <seealso cref="OpCodes.Ldc_I4_1">OpCodes.Ldc_I4_1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1775 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1776 public EmitHelper ldc_i4_1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1777 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1778 get { _ilGenerator.Emit(OpCodes.Ldc_I4_1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1779 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1780
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1781 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1782 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1783 /// pushes the integer value of 2 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1784 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1785 /// <seealso cref="OpCodes.Ldc_I4_2">OpCodes.Ldc_I4_2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1786 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1787 public EmitHelper ldc_i4_2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1788 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1789 get { _ilGenerator.Emit(OpCodes.Ldc_I4_2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1790 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1791
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1792 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1793 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_3"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1794 /// pushes the integer value of 3 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1795 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1796 /// <seealso cref="OpCodes.Ldc_I4_3">OpCodes.Ldc_I4_3</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1797 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1798 public EmitHelper ldc_i4_3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1799 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1800 get { _ilGenerator.Emit(OpCodes.Ldc_I4_3); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1801 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1802
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1803 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1804 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1805 /// pushes the integer value of 4 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1806 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1807 /// <seealso cref="OpCodes.Ldc_I4_4">OpCodes.Ldc_I4_4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1808 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1809 public EmitHelper ldc_i4_4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1810 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1811 get { _ilGenerator.Emit(OpCodes.Ldc_I4_4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1812 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1813
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1814 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1815 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_5"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1816 /// pushes the integer value of 5 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1817 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1818 /// <seealso cref="OpCodes.Ldc_I4_5">OpCodes.Ldc_I4_0</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1819 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1820 public EmitHelper ldc_i4_5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1821 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1822 get { _ilGenerator.Emit(OpCodes.Ldc_I4_5); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1823 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1824
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1825 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1826 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_6"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1827 /// pushes the integer value of 6 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1828 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1829 /// <seealso cref="OpCodes.Ldc_I4_6">OpCodes.Ldc_I4_6</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1830 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1831 public EmitHelper ldc_i4_6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1832 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1833 get { _ilGenerator.Emit(OpCodes.Ldc_I4_6); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1834 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1835
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1836 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1837 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_7"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1838 /// pushes the integer value of 7 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1839 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1840 /// <seealso cref="OpCodes.Ldc_I4_7">OpCodes.Ldc_I4_7</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1841 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1842 public EmitHelper ldc_i4_7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1843 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1844 get { _ilGenerator.Emit(OpCodes.Ldc_I4_7); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1845 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1846
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1847 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1848 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1849 /// pushes the integer value of 8 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1850 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1851 /// <seealso cref="OpCodes.Ldc_I4_8">OpCodes.Ldc_I4_8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1852 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1853 public EmitHelper ldc_i4_8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1854 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1855 get { _ilGenerator.Emit(OpCodes.Ldc_I4_8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1856 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1857
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1858 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1859 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_M1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1860 /// pushes the integer value of -1 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1861 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1862 /// <seealso cref="OpCodes.Ldc_I4_M1">OpCodes.Ldc_I4_M1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1863 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1864 public EmitHelper ldc_i4_m1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1865 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1866 get { _ilGenerator.Emit(OpCodes.Ldc_I4_M1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1867 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1868
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1869 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1870 /// Calls the best form of ILGenerator.Emit(Ldc_I4_X) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1871 /// pushes the integer value of -1 onto the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1872 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1873 /// <seealso cref="ldc_i4"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1874 public EmitHelper ldc_i4_(int num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1875 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1876 switch (num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1877 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1878 case -1: ldc_i4_m1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1879 case 0: ldc_i4_0. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1880 case 1: ldc_i4_1. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1881 case 2: ldc_i4_2. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1882 case 3: ldc_i4_3. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1883 case 4: ldc_i4_4. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1884 case 5: ldc_i4_5. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1885 case 6: ldc_i4_6. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1886 case 7: ldc_i4_7. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1887 case 8: ldc_i4_8. end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1888 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1889 if (num >= sbyte.MinValue && num <= sbyte.MaxValue)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1890 ldc_i4_s((sbyte)num);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1891 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1892 ldc_i4 (num);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1893
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1894 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1895 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1896
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1897 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1898 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1899
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1900 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1901 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I4_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1902 /// pushes the supplied int8 value onto the evaluation stack as an int32, short form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1903 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1904 /// <param name="num">The value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1905 /// <seealso cref="OpCodes.Ldc_I4_S">OpCodes.Ldc_I4_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1906 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,byte)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1907 [CLSCompliant(false)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1908 public EmitHelper ldc_i4_s(sbyte num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1909 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1910 _ilGenerator.Emit(OpCodes.Ldc_I4_S, num); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1911 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1912
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1913 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1914 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_I8"/>, long) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1915 /// pushes a supplied value of type int64 onto the evaluation stack as an int64.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1916 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1917 /// <param name="num">The value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1918 /// <seealso cref="OpCodes.Ldc_I8">OpCodes.Ldc_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1919 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,long)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1920 public EmitHelper ldc_i8(long num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1921 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1922 _ilGenerator.Emit(OpCodes.Ldc_I8, num); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1923 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1924
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1925 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1926 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_R4"/>, float) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1927 /// pushes a supplied value of type float32 onto the evaluation stack as type F (float).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1928 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1929 /// <param name="num">The value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1930 /// <seealso cref="OpCodes.Ldc_R4">OpCodes.Ldc_R4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1931 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,float)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1932 public EmitHelper ldc_r4(float num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1933 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1934 _ilGenerator.Emit(OpCodes.Ldc_R4, num); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1935 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1936
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1937 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1938 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldc_R8"/>, double) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1939 /// pushes a supplied value of type float64 onto the evaluation stack as type F (float).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1940 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1941 /// <param name="num">The value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1942 /// <seealso cref="OpCodes.Ldc_R8">OpCodes.Ldc_R8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1943 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,double)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1944 public EmitHelper ldc_r8(double num)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1945 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1946 _ilGenerator.Emit(OpCodes.Ldc_R8, num); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1947 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1948
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1949 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1950 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelema"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1951 /// loads the address of the array element at a specified array index onto the top of the evaluation stack
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1952 /// as type &amp; (managed pointer).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1953 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1954 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1955 /// <seealso cref="OpCodes.Ldelema">OpCodes.Ldelema</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1956 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1957 public EmitHelper ldelema(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1958 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1959 _ilGenerator.Emit(OpCodes.Ldelema, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1960 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1961
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1962 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1963 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_I"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1964 /// loads the element with type natural int at a specified array index onto the top of the evaluation stack
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1965 /// as a natural int.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1966 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1967 /// <seealso cref="OpCodes.Ldelem_I">OpCodes.Ldelem_I</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1968 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1969 public EmitHelper ldelem_i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1970 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1971 get { _ilGenerator.Emit(OpCodes.Ldelem_I); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1972 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1973
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1974 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1975 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_I1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1976 /// loads the element with type int8 at a specified array index onto the top of the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1977 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1978 /// <seealso cref="OpCodes.Ldelem_I1">OpCodes.Ldelem_I1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1979 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1980 public EmitHelper ldelem_i1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1981 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1982 get { _ilGenerator.Emit(OpCodes.Ldelem_I1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1983 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1984
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1985 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1986 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_I2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1987 /// loads the element with type int16 at a specified array index onto the top of the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1988 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1989 /// <seealso cref="OpCodes.Ldelem_I2">OpCodes.Ldelem_I2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1990 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1991 public EmitHelper ldelem_i2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1992 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1993 get { _ilGenerator.Emit(OpCodes.Ldelem_I2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1994 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1995
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1996 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1997 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_I4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1998 /// loads the element with type int32 at a specified array index onto the top of the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1999 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2000 /// <seealso cref="OpCodes.Ldelem_I4">OpCodes.Ldelem_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2001 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2002 public EmitHelper ldelem_i4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2003 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2004 get { _ilGenerator.Emit(OpCodes.Ldelem_I4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2005 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2006
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2007 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2008 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_I8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2009 /// loads the element with type int64 at a specified array index onto the top of the evaluation stack as an int64.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2010 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2011 /// <seealso cref="OpCodes.Ldelem_I8">OpCodes.Ldelem_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2012 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2013 public EmitHelper ldelem_i8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2014 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2015 get { _ilGenerator.Emit(OpCodes.Ldelem_I8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2016 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2017
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2018 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2019 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_R4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2020 /// loads the element with type float32 at a specified array index onto the top of the evaluation stack as type F (float).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2021 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2022 /// <seealso cref="OpCodes.Ldelem_R4">OpCodes.Ldelem_R4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2023 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2024 public EmitHelper ldelem_r4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2025 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2026 get { _ilGenerator.Emit(OpCodes.Ldelem_R4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2027 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2028
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2029 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2030 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_R8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2031 /// loads the element with type float64 at a specified array index onto the top of the evaluation stack as type F (float).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2032 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2033 /// <seealso cref="OpCodes.Ldelem_R8">OpCodes.Ldelem_R8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2034 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2035 public EmitHelper ldelem_r8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2036 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2037 get { _ilGenerator.Emit(OpCodes.Ldelem_R8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2038 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2039
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2040 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2041 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_Ref"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2042 /// loads the element containing an object reference at a specified array index
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2043 /// onto the top of the evaluation stack as type O (object reference).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2044 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2045 /// <seealso cref="OpCodes.Ldelem_Ref">OpCodes.Ldelem_Ref</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2046 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2047 public EmitHelper ldelem_ref
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2048 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2049 get { _ilGenerator.Emit(OpCodes.Ldelem_Ref); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2050 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2051
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2052 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2053 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_U1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2054 /// loads the element with type unsigned int8 at a specified array index onto the top of the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2055 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2056 /// <seealso cref="OpCodes.Ldelem_U1">OpCodes.Ldelem_U1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2057 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2058 public EmitHelper ldelem_u1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2059 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2060 get { _ilGenerator.Emit(OpCodes.Ldelem_U1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2061 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2062
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2063 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2064 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_U2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2065 /// loads the element with type unsigned int16 at a specified array index
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2066 /// onto the top of the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2067 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2068 /// <seealso cref="OpCodes.Ldelem_U2">OpCodes.Ldelem_U2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2069 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2070 public EmitHelper ldelem_u2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2071 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2072 get { _ilGenerator.Emit(OpCodes.Ldelem_U2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2073 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2074
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2075 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2076 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldelem_U4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2077 /// loads the element with type unsigned int32 at a specified array index
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2078 /// onto the top of the evaluation stack as an int32.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2079 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2080 /// <seealso cref="OpCodes.Ldelem_U4">OpCodes.Ldelem_U4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2081 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2082 public EmitHelper ldelem_u4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2083 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2084 get { _ilGenerator.Emit(OpCodes.Ldelem_U4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2085 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2086
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2087 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2088 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldfld"/>, fieldInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2089 /// finds the value of a field in the object whose reference is currently on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2090 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2091 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2092 /// <seealso cref="OpCodes.Ldfld">OpCodes.Ldfld</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2093 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2094 public EmitHelper ldfld(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2095 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2096 _ilGenerator.Emit(OpCodes.Ldfld, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2097 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2098
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2099 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2100 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldflda"/>, fieldInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2101 /// finds the address of a field in the object whose reference is currently on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2102 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2103 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2104 /// <seealso cref="OpCodes.Ldflda">OpCodes.Ldflda</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2105 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2106 public EmitHelper ldflda(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2107 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2108 _ilGenerator.Emit(OpCodes.Ldflda, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2109 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2110
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2111 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2112 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldftn"/>, methodInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2113 /// pushes an unmanaged pointer (type natural int) to the native code implementing a specific method
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2114 /// onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2115 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2116 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2117 /// <seealso cref="OpCodes.Ldftn">OpCodes.Ldftn</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2118 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2119 public EmitHelper ldftn(MethodInfo methodInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2120 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2121 _ilGenerator.Emit(OpCodes.Ldftn, methodInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2122 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2123
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2124 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2125 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_I"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2126 /// loads a value of type natural int as a natural int onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2127 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2128 /// <seealso cref="OpCodes.Ldind_I">OpCodes.Ldind_I</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2129 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2130 public EmitHelper ldind_i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2131 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2132 get { _ilGenerator.Emit(OpCodes.Ldind_I); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2133 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2134
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2135 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2136 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_I1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2137 /// loads a value of type int8 as an int32 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2138 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2139 /// <seealso cref="OpCodes.Ldind_I1">OpCodes.Ldind_I1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2140 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2141 public EmitHelper ldind_i1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2142 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2143 get { _ilGenerator.Emit(OpCodes.Ldind_I1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2144 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2145
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2146 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2147 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_I2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2148 /// loads a value of type int16 as an int32 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2149 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2150 /// <seealso cref="OpCodes.Ldind_I2">OpCodes.Ldind_I2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2151 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2152 public EmitHelper ldind_i2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2153 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2154 get { _ilGenerator.Emit(OpCodes.Ldind_I2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2155 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2156
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2157 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2158 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_I4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2159 /// loads a value of type int32 as an int32 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2160 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2161 /// <seealso cref="OpCodes.Ldind_I4">OpCodes.Ldind_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2162 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2163 public EmitHelper ldind_i4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2164 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2165 get { _ilGenerator.Emit(OpCodes.Ldind_I4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2166 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2167
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2168 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2169 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_I8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2170 /// loads a value of type int64 as an int64 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2171 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2172 /// <seealso cref="OpCodes.Ldind_I8">OpCodes.Ldind_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2173 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2174 public EmitHelper ldind_i8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2175 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2176 get { _ilGenerator.Emit(OpCodes.Ldind_I8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2177 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2178
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2179 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2180 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_R4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2181 /// loads a value of type float32 as a type F (float) onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2182 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2183 /// <seealso cref="OpCodes.Ldind_R4">OpCodes.Ldind_R4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2184 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2185 public EmitHelper ldind_r4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2186 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2187 get { _ilGenerator.Emit(OpCodes.Ldind_R4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2188 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2189
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2190 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2191 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_R8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2192 /// loads a value of type float64 as a type F (float) onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2193 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2194 /// <seealso cref="OpCodes.Ldind_R8">OpCodes.Ldind_R8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2195 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2196 public EmitHelper ldind_r8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2197 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2198 get { _ilGenerator.Emit(OpCodes.Ldind_R8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2199 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2200
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2201 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2202 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_Ref"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2203 /// loads an object reference as a type O (object reference) onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2204 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2205 /// <seealso cref="OpCodes.Ldind_Ref">OpCodes.Ldind_Ref</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2206 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2207 public EmitHelper ldind_ref
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2208 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2209 get { _ilGenerator.Emit(OpCodes.Ldind_Ref); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2210 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2211
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2212 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2213 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_U1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2214 /// loads a value of type unsigned int8 as an int32 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2215 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2216 /// <seealso cref="OpCodes.Ldind_U1">OpCodes.Ldind_U1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2217 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2218 public EmitHelper ldind_u1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2219 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2220 get { _ilGenerator.Emit(OpCodes.Ldind_U1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2221 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2222
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2223 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2224 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_U2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2225 /// loads a value of type unsigned int16 as an int32 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2226 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2227 /// <seealso cref="OpCodes.Ldind_U2">OpCodes.Ldind_U2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2228 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2229 public EmitHelper ldind_u2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2230 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2231 get { _ilGenerator.Emit(OpCodes.Ldind_U2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2232 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2233
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2234 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2235 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldind_U4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2236 /// loads a value of type unsigned int32 as an int32 onto the evaluation stack indirectly.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2237 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2238 /// <seealso cref="OpCodes.Ldind_U4">OpCodes.Ldind_U4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2239 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2240 public EmitHelper ldind_u4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2241 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2242 get { _ilGenerator.Emit(OpCodes.Ldind_U4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2243 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2244
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2245 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2246 /// Loads a value of the type from a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2247 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2248 /// <param name="type">A Type.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2249 public EmitHelper ldind(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2250 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2251 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2252
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2253 switch (Type.GetTypeCode(type))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2254 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2255 case TypeCode.Boolean:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2256 case TypeCode.Byte:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2257 case TypeCode.SByte: ldind_i1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2258
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2259 case TypeCode.Char:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2260 case TypeCode.Int16:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2261 case TypeCode.UInt16: ldind_i2.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2262
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2263 case TypeCode.Int32:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2264 case TypeCode.UInt32: ldind_i4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2265
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2266 case TypeCode.Int64:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2267 case TypeCode.UInt64: ldind_i8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2268
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2269 case TypeCode.Single: ldind_r4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2270 case TypeCode.Double: ldind_r8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2271
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2272 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2273 if (type.IsClass)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2274 ldind_ref.end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2275 else if (type.IsValueType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2276 stobj(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2277 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2278 throw CreateNotExpectedTypeException(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2279 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2280 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2281
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2282 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2283 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2284
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2285 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2286 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldlen"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2287 /// pushes the number of elements of a zero-based, one-dimensional array onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2288 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2289 /// <seealso cref="OpCodes.Ldlen">OpCodes.Ldlen</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2290 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2291 public EmitHelper ldlen
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2292 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2293 get { _ilGenerator.Emit(OpCodes.Ldlen); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2294 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2295
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2296 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2297 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc"/>, short) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2298 /// load an argument address onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2299 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2300 /// <param name="index">Index of the local variable value pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2301 /// <seealso cref="OpCodes.Ldloc">OpCodes.Ldloc</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2302 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2303 public EmitHelper ldloc(short index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2304 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2305 _ilGenerator.Emit(OpCodes.Ldloc, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2306 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2307
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2308 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2309 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc"/>, <see cref="LocalBuilder"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2310 /// load an argument address onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2311 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2312 /// <param name="localBuilder">Local variable builder.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2313 /// <seealso cref="OpCodes.Ldloc">OpCodes.Ldloc</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2314 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2315 public EmitHelper ldloc(LocalBuilder localBuilder)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2316 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2317 _ilGenerator.Emit(OpCodes.Ldloc, localBuilder); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2318 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2319
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2320 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2321 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloca"/>, short) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2322 /// loads the address of the local variable at a specific index onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2323 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2324 /// <param name="index">Index of the local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2325 /// <seealso cref="OpCodes.Ldloca">OpCodes.Ldloca</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2326 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2327 public EmitHelper ldloca(short index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2328 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2329 _ilGenerator.Emit(OpCodes.Ldloca, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2330 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2331
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2332 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2333 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloca_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2334 /// loads the address of the local variable at a specific index onto the evaluation stack, short form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2335 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2336 /// <param name="index">Index of the local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2337 /// <seealso cref="OpCodes.Ldloca_S">OpCodes.Ldloca_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2338 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,byte)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2339 public EmitHelper ldloca_s(byte index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2340 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2341 _ilGenerator.Emit(OpCodes.Ldloca_S, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2342 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2343
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2344 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2345 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloca"/>, <see cref="LocalBuilder"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2346 /// loads the address of the local variable at a specific index onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2347 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2348 /// <param name="local">A <see cref="LocalBuilder"/> representing the local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2349 /// <seealso cref="OpCodes.Ldloca">OpCodes.Ldloca</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2350 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2351 public EmitHelper ldloca(LocalBuilder local)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2352 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2353 _ilGenerator.Emit(OpCodes.Ldloca, local); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2354 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2355
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2356 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2357 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc_0"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2358 /// loads the local variable at index 0 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2359 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2360 /// <seealso cref="OpCodes.Ldloc_0">OpCodes.Ldloc_0</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2361 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2362 public EmitHelper ldloc_0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2363 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2364 get { _ilGenerator.Emit(OpCodes.Ldloc_0); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2365 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2366
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2367 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2368 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc_1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2369 /// loads the local variable at index 1 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2370 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2371 /// <seealso cref="OpCodes.Ldloc_1">OpCodes.Ldloc_1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2372 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2373 public EmitHelper ldloc_1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2374 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2375 get { _ilGenerator.Emit(OpCodes.Ldloc_1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2376 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2377
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2378 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2379 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc_2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2380 /// loads the local variable at index 2 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2381 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2382 /// <seealso cref="OpCodes.Ldloc_2">OpCodes.Ldloc_2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2383 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2384 public EmitHelper ldloc_2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2385 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2386 get { _ilGenerator.Emit(OpCodes.Ldloc_2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2387 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2388
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2389 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2390 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc_3"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2391 /// loads the local variable at index 3 onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2392 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2393 /// <seealso cref="OpCodes.Ldloc_3">OpCodes.Ldloc_3</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2394 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2395 public EmitHelper ldloc_3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2396 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2397 get { _ilGenerator.Emit(OpCodes.Ldloc_3); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2398 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2399
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2400 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2401 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldloc_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2402 /// loads the local variable at a specific index onto the evaluation stack, short form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2403 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2404 /// <param name="index">Index of the local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2405 /// <seealso cref="OpCodes.Ldloc_S">OpCodes.Ldloc_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2406 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,byte)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2407 public EmitHelper ldloc_s(byte index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2408 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2409 _ilGenerator.Emit(OpCodes.Ldloca_S, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2410 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2411
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2412 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2413 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldnull"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2414 /// pushes a null reference (type O) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2415 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2416 /// <seealso cref="OpCodes.Ldnull">OpCodes.Ldnull</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2417 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2418 public EmitHelper ldnull
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2419 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2420 get { _ilGenerator.Emit(OpCodes.Ldnull); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2421 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2422
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2423 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2424 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldobj"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2425 /// copies the value type object pointed to by an address to the top of the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2426 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2427 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2428 /// <seealso cref="OpCodes.Ldobj">OpCodes.Ldobj</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2429 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2430 public EmitHelper ldobj(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2431 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2432 _ilGenerator.Emit(OpCodes.Ldobj, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2433 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2434
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2435 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2436 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldsfld"/>, fieldInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2437 /// pushes the value of a static field onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2438 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2439 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2440 /// <seealso cref="OpCodes.Ldsfld">OpCodes.Ldsfld</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2441 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2442 public EmitHelper ldsfld(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2443 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2444 _ilGenerator.Emit(OpCodes.Ldsfld, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2445 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2446
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2447 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2448 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldsflda"/>, fieldInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2449 /// pushes the address of a static field onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2450 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2451 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2452 /// <seealso cref="OpCodes.Ldsflda">OpCodes.Ldsflda</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2453 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2454 public EmitHelper ldsflda(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2455 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2456 _ilGenerator.Emit(OpCodes.Ldsflda, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2457 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2458
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2459 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2460 /// Calls <see cref="ldstr"/> -or- <see cref="ldnull"/>,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2461 /// if given string is a null reference.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2462 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2463 /// <param name="str">The String to be emitted.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2464 /// <seealso cref="ldstr"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2465 /// <seealso cref="ldnull"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2466 public EmitHelper ldstrEx(string str)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2467 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2468 return str == null ? ldnull : ldstr(str);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2469 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2470
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2471 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2472 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldstr"/>, string) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2473 /// pushes a new object reference to a string literal stored in the metadata.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2474 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2475 /// <param name="str">The String to be emitted.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2476 /// <seealso cref="OpCodes.Ldstr">OpCodes.Ldstr</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2477 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2478 public EmitHelper ldstr(string str)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2479 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2480 _ilGenerator.Emit(OpCodes.Ldstr, str); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2481 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2482
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2483 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2484 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldstr"/>, string) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2485 /// pushes a new object reference to a string literal stored in the metadata.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2486 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2487 /// <param name="nameOrIndex">The <see cref="NameOrIndexParameter"/> to be emitted.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2488 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2489 public EmitHelper ldNameOrIndex(NameOrIndexParameter nameOrIndex)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2490 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2491 return nameOrIndex.ByName?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2492 ldstr (nameOrIndex.Name) .call(typeof(NameOrIndexParameter), "op_Implicit", typeof(string)):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2493 ldc_i4_(nameOrIndex.Index).call(typeof(NameOrIndexParameter), "op_Implicit", typeof(int));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2494 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2495
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2496 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2497 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldtoken"/>, methodInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2498 /// converts a metadata token to its runtime representation, pushing it onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2499 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2500 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2501 /// <seealso cref="OpCodes.Ldtoken">OpCodes.Ldtoken</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2502 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2503 public EmitHelper ldtoken(MethodInfo methodInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2504 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2505 _ilGenerator.Emit(OpCodes.Ldtoken, methodInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2506 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2507
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2508 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2509 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldtoken"/>, fieldInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2510 /// converts a metadata token to its runtime representation,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2511 /// pushing it onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2512 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2513 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2514 /// <seealso cref="OpCodes.Ldtoken">OpCodes.Ldtoken</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2515 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2516 public EmitHelper ldtoken(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2517 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2518 _ilGenerator.Emit(OpCodes.Ldtoken, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2519 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2520
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2521 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2522 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldtoken"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2523 /// converts a metadata token to its runtime representation, pushing it onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2524 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2525 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2526 /// <seealso cref="OpCodes.Ldtoken">OpCodes.Ldtoken</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2527 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2528 public EmitHelper ldtoken(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2529 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2530 _ilGenerator.Emit(OpCodes.Ldtoken, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2531 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2532
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2533 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2534 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ldvirtftn"/>, methodInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2535 /// pushes an unmanaged pointer (type natural int) to the native code implementing a particular virtual method
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2536 /// associated with a specified object onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2537 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2538 /// <param name="methodInfo">The method to be called.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2539 /// <seealso cref="OpCodes.Ldvirtftn">OpCodes.Ldvirtftn</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2540 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,MethodInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2541 public EmitHelper ldvirtftn(MethodInfo methodInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2542 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2543 _ilGenerator.Emit(OpCodes.Ldvirtftn, methodInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2544 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2545
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2546 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2547 /// Calls ILGenerator.Emit(<see cref="OpCodes.Leave"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2548 /// exits a protected region of code, unconditionally tranferring control to a specific target instruction.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2549 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2550 /// <param name="label">The label.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2551 /// <seealso cref="OpCodes.Leave">OpCodes.Leave</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2552 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2553 public EmitHelper leave(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2554 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2555 _ilGenerator.Emit(OpCodes.Leave, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2556 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2557
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2558 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2559 /// Calls ILGenerator.Emit(<see cref="OpCodes.Leave_S"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2560 /// exits a protected region of code, unconditionally transferring control to a target instruction (short form).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2561 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2562 /// <param name="label">The label.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2563 /// <seealso cref="OpCodes.Leave_S">OpCodes.Leave_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2564 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2565 public EmitHelper leave_s(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2566 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2567 _ilGenerator.Emit(OpCodes.Leave_S, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2568 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2569
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2570 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2571 /// Calls ILGenerator.Emit(<see cref="OpCodes.Localloc"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2572 /// allocates a certain number of bytes from the local dynamic memory pool and pushes the address
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2573 /// (a transient pointer, type *) of the first allocated byte onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2574 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2575 /// <seealso cref="OpCodes.Localloc">OpCodes.Localloc</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2576 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2577 public EmitHelper localloc
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2578 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2579 get { _ilGenerator.Emit(OpCodes.Localloc); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2580 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2581
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2582 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2583 /// Calls ILGenerator.Emit(<see cref="OpCodes.Mkrefany"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2584 /// pushes a typed reference to an instance of a specific type onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2585 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2586 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2587 /// <seealso cref="OpCodes.Mkrefany">OpCodes.Mkrefany</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2588 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2589 public EmitHelper mkrefany(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2590 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2591 _ilGenerator.Emit(OpCodes.Mkrefany, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2592 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2593
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2594 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2595 /// Calls ILGenerator.Emit(<see cref="OpCodes.Mul"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2596 /// multiplies two values and pushes the result on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2597 /// (a transient pointer, type *) of the first allocated byte onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2598 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2599 /// <seealso cref="OpCodes.Mul">OpCodes.Mul</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2600 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2601 public EmitHelper mul
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2602 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2603 get { _ilGenerator.Emit(OpCodes.Mul); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2604 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2605
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2606 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2607 /// Calls ILGenerator.Emit(<see cref="OpCodes.Mul_Ovf"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2608 /// multiplies two integer values, performs an overflow check,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2609 /// and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2610 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2611 /// <seealso cref="OpCodes.Mul_Ovf">OpCodes.Mul_Ovf</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2612 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2613 public EmitHelper mul_ovf
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2614 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2615 get { _ilGenerator.Emit(OpCodes.Mul_Ovf); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2616 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2617
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2618 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2619 /// Calls ILGenerator.Emit(<see cref="OpCodes.Mul_Ovf_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2620 /// multiplies two unsigned integer values, performs an overflow check,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2621 /// and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2622 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2623 /// <seealso cref="OpCodes.Mul_Ovf_Un">OpCodes.Mul_Ovf_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2624 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2625 public EmitHelper mul_ovf_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2626 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2627 get { _ilGenerator.Emit(OpCodes.Mul_Ovf_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2628 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2629
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2630 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2631 /// Calls ILGenerator.Emit(<see cref="OpCodes.Neg"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2632 /// negates a value and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2633 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2634 /// <seealso cref="OpCodes.Neg">OpCodes.Neg</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2635 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2636 public EmitHelper neg
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2637 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2638 get { _ilGenerator.Emit(OpCodes.Neg); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2639 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2640
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2641 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2642 /// Calls ILGenerator.Emit(<see cref="OpCodes.Newarr"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2643 /// pushes an object reference to a new zero-based, one-dimensional array whose elements
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2644 /// are of a specific type onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2645 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2646 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2647 /// <seealso cref="OpCodes.Newarr">OpCodes.Newarr</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2648 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2649 public EmitHelper newarr(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2650 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2651 _ilGenerator.Emit(OpCodes.Newarr, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2652 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2653
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2654 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2655 /// Calls ILGenerator.Emit(<see cref="OpCodes.Newobj"/>, <see cref="ConstructorInfo"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2656 /// creates a new object or a new instance of a value type,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2657 /// pushing an object reference (type O) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2658 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2659 /// <param name="constructorInfo">A <see cref="ConstructorInfo"/> representing a constructor.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2660 /// <seealso cref="OpCodes.Newobj">OpCodes.Newobj</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2661 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,ConstructorInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2662 public EmitHelper newobj(ConstructorInfo constructorInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2663 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2664 _ilGenerator.Emit(OpCodes.Newobj, constructorInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2665 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2666
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2667 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2668 /// Calls ILGenerator.Emit(<see cref="OpCodes.Newobj"/>, ConstructorInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2669 /// creates a new object or a new instance of a value type,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2670 /// pushing an object reference (type O) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2671 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2672 /// <param name="type">A type.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2673 /// <param name="parameters">An array of System.Type objects representing
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2674 /// the number, order, and type of the parameters for the desired constructor.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2675 /// -or- An empty array of System.Type objects, to get a constructor that takes
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2676 /// no parameters. Such an empty array is provided by the static field System.Type.EmptyTypes.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2677 public EmitHelper newobj(Type type, params Type[] parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2678 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2679 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2680
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2681 ConstructorInfo ci = type.GetConstructor(parameters);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2682
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2683 return newobj(ci);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2684 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2685
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2686 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2687 /// Calls ILGenerator.Emit(<see cref="OpCodes.Nop"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2688 /// fills space if opcodes are patched. No meaningful operation is performed although
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2689 /// a processing cycle can be consumed.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2690 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2691 /// <seealso cref="OpCodes.Nop">OpCodes.Nop</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2692 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2693 public EmitHelper nop
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2694 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2695 get { _ilGenerator.Emit(OpCodes.Nop); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2696 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2697
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2698 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2699 /// Calls ILGenerator.Emit(<see cref="OpCodes.Not"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2700 /// computes the bitwise complement of the integer value on top of the stack
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2701 /// and pushes the result onto the evaluation stack as the same type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2702 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2703 /// <seealso cref="OpCodes.Not">OpCodes.Not</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2704 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2705 public EmitHelper not
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2706 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2707 get { _ilGenerator.Emit(OpCodes.Not); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2708 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2709
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2710 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2711 /// Calls ILGenerator.Emit(<see cref="OpCodes.Or"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2712 /// compute the bitwise complement of the two integer values on top of the stack and
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2713 /// pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2714 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2715 /// <seealso cref="OpCodes.Or">OpCodes.Or</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2716 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2717 public EmitHelper or
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2718 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2719 get { _ilGenerator.Emit(OpCodes.Or); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2720 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2721
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2722 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2723 /// Calls ILGenerator.Emit(<see cref="OpCodes.Pop"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2724 /// removes the value currently on top of the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2725 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2726 /// <seealso cref="OpCodes.Pop">OpCodes.Pop</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2727 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2728 public EmitHelper pop
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2729 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2730 get { _ilGenerator.Emit(OpCodes.Pop); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2731 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2732
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2733 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2734 /// Calls ILGenerator.Emit(<see cref="OpCodes.Refanytype"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2735 /// specifies that the subsequent array address operation performs
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2736 /// no type check at run time, and that it returns a managed pointer
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2737 /// whose mutability is restricted.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2738 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2739 /// <seealso cref="OpCodes.Refanytype">OpCodes.Refanytype</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2740 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2741 public EmitHelper @readonly
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2742 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2743 get { _ilGenerator.Emit(OpCodes.Readonly); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2744 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2745
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2746 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2747 /// Calls ILGenerator.Emit(<see cref="OpCodes.Refanytype"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2748 /// retrieves the type token embedded in a typed reference.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2749 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2750 /// <seealso cref="OpCodes.Refanytype">OpCodes.Refanytype</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2751 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2752 public EmitHelper refanytype
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2753 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2754 get { _ilGenerator.Emit(OpCodes.Refanytype); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2755 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2756
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2757 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2758 /// Calls ILGenerator.Emit(<see cref="OpCodes.Refanyval"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2759 /// retrieves the address (type &amp;) embedded in a typed reference.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2760 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2761 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2762 /// <seealso cref="OpCodes.Refanyval">OpCodes.Refanyval</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2763 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2764 public EmitHelper refanyval(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2765 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2766 _ilGenerator.Emit(OpCodes.Refanyval, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2767 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2768
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2769 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2770 /// Calls ILGenerator.Emit(<see cref="OpCodes.Rem"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2771 /// divides two values and pushes the remainder onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2772 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2773 /// <seealso cref="OpCodes.Rem">OpCodes.Rem</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2774 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2775 public EmitHelper rem
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2776 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2777 get { _ilGenerator.Emit(OpCodes.Rem); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2778 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2779
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2780 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2781 /// Calls ILGenerator.Emit(<see cref="OpCodes.Rem_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2782 /// divides two unsigned values and pushes the remainder onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2783 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2784 /// <seealso cref="OpCodes.Rem_Un">OpCodes.Rem_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2785 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2786 public EmitHelper rem_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2787 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2788 get { _ilGenerator.Emit(OpCodes.Rem_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2789 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2790
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2791 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2792 /// Calls ILGenerator.Emit(<see cref="OpCodes.Ret"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2793 /// returns from the current method, pushing a return value (if present)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2794 /// from the caller's evaluation stack onto the callee's evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2795 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2796 /// <seealso cref="OpCodes.Ret">OpCodes.Ret</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2797 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2798 public EmitHelper ret()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2799 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2800 _ilGenerator.Emit(OpCodes.Ret); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2801 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2802
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2803 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2804 /// Calls ILGenerator.Emit(<see cref="OpCodes.Rethrow"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2805 /// rethrows the current exception.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2806 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2807 /// <seealso cref="OpCodes.Rethrow">OpCodes.Rethrow</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2808 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2809 public EmitHelper rethrow
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2810 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2811 get { _ilGenerator.Emit(OpCodes.Rethrow); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2812 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2813
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2814 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2815 /// Calls ILGenerator.Emit(<see cref="OpCodes.Shl"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2816 /// shifts an integer value to the left (in zeroes) by a specified number of bits,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2817 /// pushing the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2818 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2819 /// <seealso cref="OpCodes.Shl">OpCodes.Shl</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2820 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2821 public EmitHelper shl
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2822 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2823 get { _ilGenerator.Emit(OpCodes.Shl); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2824 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2825
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2826 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2827 /// Calls ILGenerator.Emit(<see cref="OpCodes.Shr"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2828 /// shifts an integer value (in sign) to the right by a specified number of bits,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2829 /// pushing the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2830 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2831 /// <seealso cref="OpCodes.Shr">OpCodes.Shr</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2832 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2833 public EmitHelper shr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2834 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2835 get { _ilGenerator.Emit(OpCodes.Shr); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2836 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2837
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2838 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2839 /// Calls ILGenerator.Emit(<see cref="OpCodes.Shr_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2840 /// shifts an unsigned integer value (in zeroes) to the right by a specified number of bits,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2841 /// pushing the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2842 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2843 /// <seealso cref="OpCodes.Shr_Un">OpCodes.Shr_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2844 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2845 public EmitHelper shr_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2846 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2847 get { _ilGenerator.Emit(OpCodes.Shr_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2848 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2849
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2850 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2851 /// Calls ILGenerator.Emit(<see cref="OpCodes.Sizeof"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2852 /// pushes the size, in bytes, of a supplied value type onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2853 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2854 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2855 /// <seealso cref="OpCodes.Sizeof">OpCodes.Sizeof</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2856 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2857 public EmitHelper @sizeof(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2858 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2859 _ilGenerator.Emit(OpCodes.Sizeof, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2860 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2861
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2862 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2863 /// Calls ILGenerator.Emit(<see cref="OpCodes.Starg"/>, short) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2864 /// stores the value on top of the evaluation stack in the argument slot at a specified index.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2865 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2866 /// <param name="index">Slot index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2867 /// <seealso cref="OpCodes.Starg">OpCodes.Starg</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2868 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2869 public EmitHelper starg(short index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2870 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2871 _ilGenerator.Emit(OpCodes.Starg, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2872 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2873
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2874 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2875 /// Calls ILGenerator.Emit(<see cref="OpCodes.Starg_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2876 /// stores the value on top of the evaluation stack in the argument slot at a specified index,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2877 /// short form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2878 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2879 /// <param name="index">Slot index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2880 /// <seealso cref="OpCodes.Starg_S">OpCodes.Starg_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2881 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,byte)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2882 public EmitHelper starg_s(byte index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2883 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2884 _ilGenerator.Emit(OpCodes.Starg_S, index); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2885 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2886
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2887 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2888 /// Stores the value on top of the evaluation stack in the argument slot at a specified index.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2889 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2890 /// <param name="index">Slot index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2891 /// <seealso cref="OpCodes.Starg">OpCodes.Starg</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2892 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2893 public EmitHelper starg(int index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2894 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2895 if (index < byte. MaxValue) starg_s((byte)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2896 else if (index < short.MaxValue) starg ((short)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2897 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2898 throw new ArgumentOutOfRangeException("index");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2899
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2900 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2901 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2902
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2903 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2904 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_I"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2905 /// replaces the array element at a given index with the natural int value
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2906 /// on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2907 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2908 /// <seealso cref="OpCodes.Stelem_I">OpCodes.Stelem_I</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2909 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2910 public EmitHelper stelem_i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2911 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2912 get { _ilGenerator.Emit(OpCodes.Stelem_I); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2913 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2914
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2915 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2916 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_I1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2917 /// replaces the array element at a given index with the int8 value on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2918 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2919 /// <seealso cref="OpCodes.Stelem_I1">OpCodes.Stelem_I1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2920 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2921 public EmitHelper stelem_i1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2922 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2923 get { _ilGenerator.Emit(OpCodes.Stelem_I1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2924 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2925
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2926 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2927 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_I2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2928 /// replaces the array element at a given index with the int16 value on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2929 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2930 /// <seealso cref="OpCodes.Stelem_I2">OpCodes.Stelem_I2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2931 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2932 public EmitHelper stelem_i2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2933 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2934 get { _ilGenerator.Emit(OpCodes.Stelem_I2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2935 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2936
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2937 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2938 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_I4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2939 /// replaces the array element at a given index with the int32 value on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2940 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2941 /// <seealso cref="OpCodes.Stelem_I4">OpCodes.Stelem_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2942 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2943 public EmitHelper stelem_i4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2944 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2945 get { _ilGenerator.Emit(OpCodes.Stelem_I4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2946 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2947
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2948 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2949 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_I8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2950 /// replaces the array element at a given index with the int64 value on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2951 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2952 /// <seealso cref="OpCodes.Stelem_I8">OpCodes.Stelem_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2953 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2954 public EmitHelper stelem_i8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2955 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2956 get { _ilGenerator.Emit(OpCodes.Stelem_I8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2957 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2958
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2959 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2960 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_R4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2961 /// replaces the array element at a given index with the float32 value on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2962 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2963 /// <seealso cref="OpCodes.Stelem_R4">OpCodes.Stelem_R4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2964 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2965 public EmitHelper stelem_r4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2966 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2967 get { _ilGenerator.Emit(OpCodes.Stelem_R4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2968 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2969
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2970 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2971 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_R8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2972 /// replaces the array element at a given index with the float64 value on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2973 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2974 /// <seealso cref="OpCodes.Stelem_R8">OpCodes.Stelem_R8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2975 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2976 public EmitHelper stelem_r8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2977 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2978 get { _ilGenerator.Emit(OpCodes.Stelem_R8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2979 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2980
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2981 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2982 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stelem_Ref"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2983 /// replaces the array element at a given index with the object ref value (type O)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2984 /// on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2985 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2986 /// <seealso cref="OpCodes.Stelem_Ref">OpCodes.Stelem_Ref</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2987 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2988 public EmitHelper stelem_ref
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2989 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2990 get { _ilGenerator.Emit(OpCodes.Stelem_Ref); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2991 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2992
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2993 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2994 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stfld"/>, <see cref="FieldInfo"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2995 /// replaces the value stored in the field of an object reference or pointer with a new value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2996 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2997 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2998 /// <seealso cref="OpCodes.Stfld">OpCodes.Stfld</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2999 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3000 public EmitHelper stfld(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3001 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3002 _ilGenerator.Emit(OpCodes.Stfld, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3003 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3004
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3005 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3006 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_I"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3007 /// stores a value of type natural int at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3008 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3009 /// <seealso cref="OpCodes.Stind_I">OpCodes.Stind_I</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3010 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3011 public EmitHelper stind_i
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3012 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3013 get { _ilGenerator.Emit(OpCodes.Stind_I); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3014 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3015
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3016 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3017 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_I1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3018 /// stores a value of type int8 at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3019 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3020 /// <seealso cref="OpCodes.Stind_I1">OpCodes.Stind_I1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3021 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3022 public EmitHelper stind_i1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3023 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3024 get { _ilGenerator.Emit(OpCodes.Stind_I1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3025 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3026
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3027 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3028 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_I2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3029 /// stores a value of type int16 at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3030 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3031 /// <seealso cref="OpCodes.Stind_I2">OpCodes.Stind_I2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3032 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3033 public EmitHelper stind_i2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3034 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3035 get { _ilGenerator.Emit(OpCodes.Stind_I2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3036 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3037
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3038 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3039 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_I4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3040 /// stores a value of type int32 at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3041 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3042 /// <seealso cref="OpCodes.Stind_I4">OpCodes.Stind_I4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3043 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3044 public EmitHelper stind_i4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3045 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3046 get { _ilGenerator.Emit(OpCodes.Stind_I4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3047 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3048
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3049 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3050 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_I8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3051 /// stores a value of type int64 at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3052 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3053 /// <seealso cref="OpCodes.Stind_I8">OpCodes.Stind_I8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3054 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3055 public EmitHelper stind_i8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3056 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3057 get { _ilGenerator.Emit(OpCodes.Stind_I8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3058 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3059
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3060 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3061 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_R4"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3062 /// stores a value of type float32 at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3063 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3064 /// <seealso cref="OpCodes.Stind_R4">OpCodes.Stind_R4</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3065 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3066 public EmitHelper stind_r4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3067 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3068 get { _ilGenerator.Emit(OpCodes.Stind_R4); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3069 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3070
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3071 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3072 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_R8"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3073 /// stores a value of type float64 at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3074 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3075 /// <seealso cref="OpCodes.Stind_R8">OpCodes.Stind_R8</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3076 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3077 public EmitHelper stind_r8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3078 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3079 get { _ilGenerator.Emit(OpCodes.Stind_R8); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3080 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3081
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3082 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3083 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stind_Ref"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3084 /// stores an object reference value at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3085 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3086 /// <seealso cref="OpCodes.Stind_Ref">OpCodes.Stind_Ref</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3087 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3088 public EmitHelper stind_ref
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3089 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3090 get { _ilGenerator.Emit(OpCodes.Stind_Ref); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3091 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3092
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3093 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3094 /// Stores a value of the type at a supplied address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3095 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3096 /// <param name="type">A Type.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3097 public EmitHelper stind(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3098 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3099 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3101 switch (Type.GetTypeCode(type))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3102 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3103 case TypeCode.Boolean:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3104 case TypeCode.Byte:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3105 case TypeCode.SByte: stind_i1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3106
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3107 case TypeCode.Char:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3108 case TypeCode.Int16:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3109 case TypeCode.UInt16: stind_i2.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3110
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3111 case TypeCode.Int32:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3112 case TypeCode.UInt32: stind_i4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3113
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3114 case TypeCode.Int64:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3115 case TypeCode.UInt64: stind_i8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3116
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3117 case TypeCode.Single: stind_r4.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3118 case TypeCode.Double: stind_r8.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3120 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3121 if (type.IsClass)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3122 stind_ref.end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3123 else if (type.IsValueType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3124 stobj(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3125 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3126 throw CreateNotExpectedTypeException(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3127 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3128 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3130 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3131 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3132
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3133 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3134 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc"/>, <see cref="LocalBuilder"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3135 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3136 /// in the local variable list at a specified index.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3137 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3138 /// <param name="local">A local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3139 /// <seealso cref="OpCodes.Stloc">OpCodes.Stloc</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3140 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,LocalBuilder)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3141 public EmitHelper stloc(LocalBuilder local)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3142 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3143 _ilGenerator.Emit(OpCodes.Stloc, local); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3144 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3145
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3146 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3147 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc"/>, short) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3148 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3149 /// in the local variable list at a specified index.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3150 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3151 /// <param name="index">A local variable index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3152 /// <seealso cref="OpCodes.Stloc">OpCodes.Stloc</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3153 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3154 public EmitHelper stloc(short index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3155 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3156 if (index >= byte.MinValue && index <= byte.MaxValue)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3157 return stloc_s((byte)index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3158
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3159 _ilGenerator.Emit(OpCodes.Stloc, index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3160 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3161 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3162
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3163 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3164 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc_0"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3165 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3166 /// in the local variable list at index 0.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3167 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3168 /// <seealso cref="OpCodes.Stloc_0">OpCodes.Stloc_0</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3169 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3170 public EmitHelper stloc_0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3171 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3172 get { _ilGenerator.Emit(OpCodes.Stloc_0); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3173 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3174
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3175 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3176 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc_1"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3177 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3178 /// in the local variable list at index 1.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3179 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3180 /// <seealso cref="OpCodes.Stloc_1">OpCodes.Stloc_1</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3181 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3182 public EmitHelper stloc_1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3183 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3184 get { _ilGenerator.Emit(OpCodes.Stloc_1); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3185 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3186
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3187 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3188 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc_2"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3189 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3190 /// in the local variable list at index 2.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3191 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3192 /// <seealso cref="OpCodes.Stloc_2">OpCodes.Stloc_2</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3193 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3194 public EmitHelper stloc_2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3195 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3196 get { _ilGenerator.Emit(OpCodes.Stloc_2); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3197 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3198
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3199 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3200 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc_3"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3201 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3202 /// in the local variable list at index 3.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3203 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3204 /// <seealso cref="OpCodes.Stloc_3">OpCodes.Stloc_3</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3205 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3206 public EmitHelper stloc_3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3207 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3208 get { _ilGenerator.Emit(OpCodes.Stloc_3); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3209 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3210
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3211 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3212 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc_S"/>, <see cref="LocalBuilder"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3213 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3214 /// in the local variable list at index (short form).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3215 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3216 /// <param name="local">A local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3217 /// <seealso cref="OpCodes.Stloc_S">OpCodes.Stloc_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3218 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,LocalBuilder)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3219 public EmitHelper stloc_s(LocalBuilder local)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3220 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3221 _ilGenerator.Emit(OpCodes.Stloc_S, local); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3222 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3223
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3224 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3225 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stloc_S"/>, byte) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3226 /// pops the current value from the top of the evaluation stack and stores it
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3227 /// in the local variable list at index (short form).
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3228 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3229 /// <param name="index">A local variable index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3230 /// <seealso cref="OpCodes.Stloc_S">OpCodes.Stloc_S</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3231 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,short)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3232 public EmitHelper stloc_s(byte index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3233 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3234 switch (index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3235 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3236 case 0: stloc_0.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3237 case 1: stloc_1.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3238 case 2: stloc_2.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3239 case 3: stloc_3.end(); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3240
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3241 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3242 _ilGenerator.Emit(OpCodes.Stloc_S, index); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3243 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3244
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3245 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3246 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3247
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3248 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3249 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stobj"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3250 /// copies a value of a specified type from the evaluation stack into a supplied memory address.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3251 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3252 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3253 /// <seealso cref="OpCodes.Stobj">OpCodes.Stobj</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3254 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3255 public EmitHelper stobj(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3256 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3257 _ilGenerator.Emit(OpCodes.Stobj, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3258 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3259
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3260 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3261 /// Calls ILGenerator.Emit(<see cref="OpCodes.Stsfld"/>, fieldInfo) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3262 /// replaces the value of a static field with a value from the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3263 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3264 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3265 /// <seealso cref="OpCodes.Stsfld">OpCodes.Stsfld</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3266 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,FieldInfo)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3267 public EmitHelper stsfld(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3268 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3269 _ilGenerator.Emit(OpCodes.Stsfld, fieldInfo); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3270 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3271
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3272 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3273 /// Calls ILGenerator.Emit(<see cref="OpCodes.Sub"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3274 /// subtracts one value from another and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3275 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3276 /// <seealso cref="OpCodes.Sub">OpCodes.Sub</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3277 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3278 public EmitHelper sub
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3279 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3280 get { _ilGenerator.Emit(OpCodes.Sub); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3281 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3282
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3283 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3284 /// Calls ILGenerator.Emit(<see cref="OpCodes.Sub_Ovf"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3285 /// subtracts one integer value from another, performs an overflow check,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3286 /// and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3287 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3288 /// <seealso cref="OpCodes.Sub_Ovf">OpCodes.Sub_Ovf</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3289 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3290 public EmitHelper sub_ovf
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3291 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3292 get { _ilGenerator.Emit(OpCodes.Sub_Ovf); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3293 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3294
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3295 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3296 /// Calls ILGenerator.Emit(<see cref="OpCodes.Sub_Ovf_Un"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3297 /// subtracts one unsigned integer value from another, performs an overflow check,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3298 /// and pushes the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3299 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3300 /// <seealso cref="OpCodes.Sub_Ovf_Un">OpCodes.Sub_Ovf_Un</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3301 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3302 public EmitHelper sub_ovf_un
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3303 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3304 get { _ilGenerator.Emit(OpCodes.Sub_Ovf_Un); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3305 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3306
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3307 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3308 /// Calls ILGenerator.Emit(<see cref="OpCodes.Switch"/>, label[]) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3309 /// implements a jump table.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3310 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3311 /// <param name="labels">The array of label objects to which to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3312 /// <seealso cref="OpCodes.Switch">OpCodes.Switch</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3313 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label[])">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3314 public EmitHelper @switch(Label[] labels)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3315 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3316 _ilGenerator.Emit(OpCodes.Switch, labels); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3317 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3318
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3319 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3320 /// Calls ILGenerator.Emit(<see cref="OpCodes.Tailcall"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3321 /// performs a postfixed method call instruction such that the current method's stack frame
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3322 /// is removed before the actual call instruction is executed.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3323 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3324 /// <seealso cref="OpCodes.Tailcall">OpCodes.Tailcall</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3325 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3326 public EmitHelper tailcall
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3327 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3328 get { _ilGenerator.Emit(OpCodes.Tailcall); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3329 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3330
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3331 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3332 /// Calls ILGenerator.Emit(<see cref="OpCodes.Throw"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3333 /// throws the exception object currently on the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3334 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3335 /// <seealso cref="OpCodes.Throw">OpCodes.Throw</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3336 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3337 public EmitHelper @throw
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3338 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3339 get { _ilGenerator.Emit(OpCodes.Throw); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3340 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3341
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3342 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3343 /// Calls ILGenerator.Emit(<see cref="OpCodes.Unaligned"/>, label) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3344 /// indicates that an address currently atop the evaluation stack might not be aligned
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3345 /// to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3346 /// initblk, or cpblk instruction.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3347 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3348 /// <param name="label">The label to branch from this location.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3349 /// <seealso cref="OpCodes.Unaligned">OpCodes.Unaligned</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3350 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Label)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3351 public EmitHelper unaligned(Label label)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3352 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3353 _ilGenerator.Emit(OpCodes.Unaligned, label); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3354 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3355
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3356 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3357 /// Calls ILGenerator.Emit(<see cref="OpCodes.Unaligned"/>, long) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3358 /// indicates that an address currently atop the evaluation stack might not be aligned
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3359 /// to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3360 /// initblk, or cpblk instruction.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3361 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3362 /// <param name="addr">An address is pushed onto the stack.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3363 /// <seealso cref="OpCodes.Unaligned">OpCodes.Unaligned</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3364 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,long)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3365 public EmitHelper unaligned(long addr)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3366 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3367 _ilGenerator.Emit(OpCodes.Unaligned, addr); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3368 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3369
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3370 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3371 /// Calls ILGenerator.Emit(<see cref="OpCodes.Unbox"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3372 /// converts the boxed representation of a value type to its unboxed form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3373 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3374 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3375 /// <seealso cref="OpCodes.Unbox">OpCodes.Unbox</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3376 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3377 public EmitHelper unbox(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3378 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3379 _ilGenerator.Emit(OpCodes.Unbox, type); return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3380 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3381
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3382 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3383 /// Calls ILGenerator.Emit(<see cref="OpCodes.Unbox_Any"/>, type) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3384 /// converts the boxed representation of a value type to its unboxed form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3385 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3386 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3387 /// <seealso cref="OpCodes.Unbox_Any">OpCodes.Unbox_Any</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3388 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3389 public EmitHelper unbox_any(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3390 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3391 _ilGenerator.Emit(OpCodes.Unbox_Any, type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3392 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3393 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3394
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3395 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3396 /// Calls <see cref="unbox_any(Type)"/> if given type is a value type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3397 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3398 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3399 /// <seealso cref="OpCodes.Unbox_Any">OpCodes.Unbox</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3400 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode,Type)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3401 public EmitHelper unboxIfValueType(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3402 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3403 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3404
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3405 return type.IsValueType? unbox_any(type): this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3406 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3407
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3408 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3409 /// Calls ILGenerator.Emit(<see cref="OpCodes.Volatile"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3410 /// specifies that an address currently atop the evaluation stack might be volatile,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3411 /// and the results of reading that location cannot be cached or that multiple stores
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3412 /// to that location cannot be suppressed.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3413 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3414 /// <seealso cref="OpCodes.Volatile">OpCodes.Volatile</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3415 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3416 public EmitHelper @volatile
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3417 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3418 get { _ilGenerator.Emit(OpCodes.Volatile); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3419 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3420
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3421 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3422 /// Calls ILGenerator.Emit(<see cref="OpCodes.Xor"/>) that
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3423 /// computes the bitwise XOR of the top two values on the evaluation stack,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3424 /// pushing the result onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3425 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3426 /// <seealso cref="OpCodes.Xor">OpCodes.Xor</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3427 /// <seealso cref="System.Reflection.Emit.ILGenerator.Emit(OpCode)">ILGenerator.Emit</seealso>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3428 public EmitHelper xor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3429 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3430 get { _ilGenerator.Emit(OpCodes.Xor); return this; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3431 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3432
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3433 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3434 /// Ends sequence of property calls.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3435 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3436 [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3437 public void end()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3438 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3439 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3440
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3441 #endregion
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3442
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3443 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3444 /// Loads default value of given type onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3445 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3446 /// <param name="type">A Type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3447 public EmitHelper LoadInitValue(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3448 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3449 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3450
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3451 switch (Type.GetTypeCode(type))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3452 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3453 case TypeCode.Boolean:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3454 case TypeCode.Char:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3455 case TypeCode.SByte:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3456 case TypeCode.Int16:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3457 case TypeCode.Int32:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3458 case TypeCode.Byte:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3459 case TypeCode.UInt16:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3460 case TypeCode.UInt32:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3461 ldc_i4_0.end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3462 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3463
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3464 case TypeCode.Int64:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3465 case TypeCode.UInt64:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3466 ldc_i4_0.conv_i8.end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3467 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3468
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3469 case TypeCode.Single:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3470 case TypeCode.Double:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3471 ldc_r4(0).end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3472 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3473
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3474 case TypeCode.String:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3475 ldsfld(typeof(string).GetField("Empty"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3476 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3477
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3478 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3479 if (type.IsClass || type.IsInterface)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3480 ldnull.end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3481 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3482 throw CreateNotExpectedTypeException(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3483 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3484 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3485
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3486 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3487 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3488
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3489 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3490 /// Loads supplied object value (if possible) onto the evaluation stack.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3491 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3492 /// <param name="o">Any object instance or null reference.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3493 /// <returns>True is a value was loaded, otherwise false.</returns>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3494 public bool LoadWellKnownValue(object o)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3495 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3496 if (o == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3497 ldnull.end();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3498 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3499 switch (Type.GetTypeCode(o.GetType()))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3500 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3501 case TypeCode.Boolean: ldc_bool((Boolean)o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3502 case TypeCode.Char: ldc_i4_ ((Char) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3503 case TypeCode.Single: ldc_r4 ((Single) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3504 case TypeCode.Double: ldc_r8 ((Double) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3505 case TypeCode.String: ldstr ((String) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3506 case TypeCode.SByte: ldc_i4_ ((SByte) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3507 case TypeCode.Int16: ldc_i4_ ((Int16) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3508 case TypeCode.Int32: ldc_i4_ ((Int32) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3509 case TypeCode.Int64: ldc_i8 ((Int64) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3510 case TypeCode.Byte: ldc_i4_ ((Byte) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3511 case TypeCode.UInt16: ldc_i4_ ((UInt16) o); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3512 case TypeCode.UInt32: ldc_i4_ (unchecked((Int32)(UInt32)o)); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3513 case TypeCode.UInt64: ldc_i8 (unchecked((Int64)(UInt64)o)); break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3514 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3515 return false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3516 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3517
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3518 return true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3519 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3520
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3521 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3522 /// Initialize parameter with some default value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3523 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3524 /// <param name="parameterInfo">A method parameter.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3525 /// <param name="index">The parameter index.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3526 public EmitHelper Init(ParameterInfo parameterInfo, int index)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3527 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3528 if (parameterInfo == null) throw new ArgumentNullException("parameterInfo");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3529
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3530 Type type = TypeHelper.GetUnderlyingType(parameterInfo.ParameterType);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3531
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3532 if (parameterInfo.ParameterType.IsByRef)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3533 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3534 type = type.GetElementType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3535
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3536 return type.IsValueType && type.IsPrimitive == false?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3537 ldarg(index).initobj(type):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3538 ldarg(index).LoadInitValue(type).stind(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3539 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3540 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3541 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3542 return type.IsValueType && type.IsPrimitive == false?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3543 ldarga(index).initobj(type):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3544 LoadInitValue(type).starg(index);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3545 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3546 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3547
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3548 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3549 /// Initialize all output parameters with some default value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3550 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3551 /// <param name="parameters">A method parameters array.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3552 public EmitHelper InitOutParameters(ParameterInfo[] parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3553 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3554 for (int i = 0; i < parameters.Length; i++)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3555 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3556 ParameterInfo pi = parameters[i];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3557
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3558 if (pi.IsOut)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3559 Init(pi, i + 1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3560 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3561
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3562 return this;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3563 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3564
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3565 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3566 /// Initialize local variable with some default value.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3567 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3568 /// <param name="localBuilder">A method local variable.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3569 public EmitHelper Init(LocalBuilder localBuilder)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3570 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3571 if (localBuilder == null) throw new ArgumentNullException("localBuilder");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3572
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3573 Type type = localBuilder.LocalType;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3574
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3575 if (type.IsEnum)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3576 type = Enum.GetUnderlyingType(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3577
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3578 return type.IsValueType && type.IsPrimitive == false?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3579 ldloca(localBuilder).initobj(type):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3580 LoadInitValue(type).stloc(localBuilder);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3581 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3582
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3583 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3584 /// Loads a type instance at runtime.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3585 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3586 /// <param name="type">A type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3587 public EmitHelper LoadType(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3588 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3589 return type == null?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3590 ldnull:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3591 ldtoken(type).call(typeof(Type), "GetTypeFromHandle", typeof(RuntimeTypeHandle));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3592 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3593
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3594 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3595 /// Loads a field instance at runtime.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3596 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3597 /// <param name="fieldInfo">A <see cref="FieldInfo"/> representing a field.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3598 public EmitHelper LoadField(FieldInfo fieldInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3599 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3600 return fieldInfo.IsStatic ? ldsfld(fieldInfo) : ldarg_0.ldfld(fieldInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3601 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3602
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3603 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3604 /// Cast an object passed by reference to the specified type
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3605 /// or unbox a boxed value type.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3606 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3607 /// <param name="type">A type</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3608 public EmitHelper CastFromObject(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3609 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3610 if (type == null) throw new ArgumentNullException("type");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3611
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3612 return
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3613 type == typeof(object)? this:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3614 (type.IsValueType? unbox_any(type):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3615 castclass(type));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3616 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3617
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3618 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3619 /// Cast an object passed by reference to the specified type
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3620 /// or unbox a boxed value type unless <paramref name="expectedType"/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3621 /// is a parent of <paramref name="actualType"/>.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3622 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3623 /// <param name="expectedType">A type required.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3624 /// <param name="actualType">A type available.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3625 public EmitHelper CastIfNecessary(Type expectedType, Type actualType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3626 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3627 if (expectedType == null) throw new ArgumentNullException("expectedType");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3628 if (actualType == null) throw new ArgumentNullException("actualType");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3629
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3630 return
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3631 TypeHelper.IsSameOrParent(expectedType, actualType)? this:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3632 actualType.IsValueType? unbox_any(expectedType):
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3633 castclass(expectedType);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3634 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3635
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3636 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3637 /// Increase max stack size by specified delta.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3638 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3639 /// <param name="size">Number of bytes to enlarge max stack size.</param>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3640 public void AddMaxStackSize(int size)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3641 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3642 // m_maxStackSize isn't public so we need some hacking here.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3643 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3644 FieldInfo fi = _ilGenerator.GetType().GetField(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3645 "m_maxStackSize", BindingFlags.Instance | BindingFlags.NonPublic);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3646
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3647 if (fi != null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3648 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3649 size += (int)fi.GetValue(_ilGenerator);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3650 fi.SetValue(_ilGenerator, size);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3651 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3652 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3653
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3654 private static Exception CreateNoSuchMethodException(Type type, string methodName)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3655 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3656 return new InvalidOperationException(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3657 string.Format(Resources.EmitHelper_NoSuchMethod, type.FullName, methodName));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3658 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3659
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3660 private static Exception CreateNotExpectedTypeException(Type type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3661 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3662 return new ArgumentException(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3663 string.Format(Resources.EmitHelper_NotExpectedType, type.FullName));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3664 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3665 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3666 }