8 [__DynamicallyInvokable]
11 internal const int OperandTypeMask = 31;
13 internal const int FlowControlShift = 5;
15 internal const int FlowControlMask = 15;
17 internal const int OpCodeTypeShift = 9;
19 internal const int OpCodeTypeMask = 7;
21 internal const int StackBehaviourPopShift = 12;
23 internal const int StackBehaviourPushShift = 17;
25 internal const int StackBehaviourMask = 31;
27 internal const int SizeShift = 22;
29 internal const int SizeMask = 3;
31 internal const int EndsUncondJmpBlkFlag = 16777216;
33 internal const int StackChangeShift = 28;
35 private string m_stringname;
53 private bool m_endsUncondJmpBlk;
55 private int m_stackChange;
57 private static volatile string[] g_nameCache;
61 [__DynamicallyInvokable]
64 [__DynamicallyInvokable]
73 [__DynamicallyInvokable]
76 [__DynamicallyInvokable]
85 [__DynamicallyInvokable]
88 [__DynamicallyInvokable]
97 [__DynamicallyInvokable]
100 [__DynamicallyInvokable]
109 [__DynamicallyInvokable]
112 [__DynamicallyInvokable]
121 [__DynamicallyInvokable]
124 [__DynamicallyInvokable]
133 [__DynamicallyInvokable]
136 [__DynamicallyInvokable]
141 return (
short)((m_s1 << 8) | m_s2);
149 [__DynamicallyInvokable]
152 [__DynamicallyInvokable]
159 string[] array = g_nameCache;
162 array = (g_nameCache =
new string[287]);
164 OpCodeValues opCodeValues = (OpCodeValues)(ushort)
Value;
165 int num = (int)opCodeValues;
168 if (num < 65024 || num > 65054)
172 num = 256 + (num - 65024);
179 text =
Enum.
GetName(typeof(OpCodeValues), opCodeValues).ToLowerInvariant().Replace(
"_",
".");
185 internal OpCode(OpCodeValues value,
int flags)
192 m_size = ((flags >> 22) & 3);
193 m_s1 = (byte)((
int)value >> 8);
196 m_endsUncondJmpBlk = ((flags & 0x1000000) != 0);
197 m_stackChange = flags >> 28;
200 internal bool EndsUncondJmpBlk()
202 return m_endsUncondJmpBlk;
205 internal int StackChange()
207 return m_stackChange;
214 [__DynamicallyInvokable]
228 [__DynamicallyInvokable]
231 return obj.Value ==
Value;
239 [__DynamicallyInvokable]
250 [__DynamicallyInvokable]
258 [__DynamicallyInvokable]
266 [__DynamicallyInvokable]
static string GetName(Type enumType, object value)
Retrieves the name of the constant in the specified enumeration that has the specified value.
OperandType OperandType
The operand type of an intermediate language (IL) instruction.
FlowControl FlowControl
The flow control characteristics of the intermediate language (IL) instruction.
override int GetHashCode()
Returns the generated hash code for this Opcode.
static void Write(ref bool location, bool value)
Writes the specified value to the specified field. On systems that require it, inserts a memory barri...
string Name
The name of the intermediate language (IL) instruction.
OperandType
Describes the operand type of Microsoft intermediate language (MSIL) instruction.
StackBehaviour StackBehaviourPush
How the intermediate language (IL) instruction pushes operand onto the stack.
override bool Equals(object obj)
Tests whether the given object is equal to this Opcode.
static bool operator==(OpCode a, OpCode b)
Indicates whether two T:System.Reflection.Emit.OpCode structures are equal.
short Value
Gets the numeric value of the intermediate language (IL) instruction.
bool Equals(OpCode obj)
Indicates whether the current instance is equal to the specified T:System.Reflection....
Provides the base class for enumerations.
int Size
The size of the intermediate language (IL) instruction.
FlowControl
Describes how an instruction alters the flow of control.
Contains methods for performing volatile memory operations.
OpCodeType
Describes the types of the Microsoft intermediate language (MSIL) instructions.
static bool Read(ref bool location)
Reads the value of the specified field. On systems that require it, inserts a memory barrier that pre...
override string ToString()
Returns this Opcode as a T:System.String.
StackBehaviour StackBehaviourPop
How the intermediate language (IL) instruction pops the stack.
Describes an intermediate language (IL) instruction.
StackBehaviour
Describes how values are pushed onto a stack or popped off a stack.
static bool operator !=(OpCode a, OpCode b)
Indicates whether two T:System.Reflection.Emit.OpCode structures are not equal.
OpCodeType OpCodeType
The type of intermediate language (IL) instruction.