Table of Contents

Enum PrimitiveType

Namespace
ICSharpCode.Decompiler.IL
Assembly
ICSharpCode.Decompiler.dll
public enum PrimitiveType : byte
Extension Methods

Fields

I = 24
I1 = 4
I2 = 6
I4 = 8
I8 = 10
None = 0
R = 254

Floating point type of unspecified size: usually 80 bits on x86 (when the runtime uses x87 instructions); but only 64-bit on x64. This only occurs for "conv.r.un" instructions. The C# compiler usually follows those with a "conv.r4" or "conv.r8" instruction to indicate the desired float type, so we only use this as conversion target type and don't bother tracking it as its own stack type: basically everything treats R identical to R8, except for the (conv.r.un + conv.r[48] => conv.r[48].un) combining logic which should not combine (conv.r.un + conv.r8 + conv.r4) into a single conv.r4.un.

R4 = 12
R8 = 13
Ref = 16

Managed reference

U = 25
U1 = 5
U2 = 7
U4 = 9
U8 = 11
Unknown = 255