mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.1 KiB
96 lines
2.1 KiB
.assembly extern mscorlib |
|
{ |
|
.publickeytoken = ( b7 7a 5c 56 19 34 e0 89 ) |
|
.ver 4:0:0:0 |
|
} |
|
|
|
.assembly 'ConvTest' |
|
{ |
|
.ver 0:0:0:0 |
|
} |
|
|
|
.module ConvTest.exe |
|
.corflags 0x00000001 // ILOnly |
|
|
|
.class private auto ansi abstract sealed beforefieldinit Program |
|
extends [mscorlib]System.Object |
|
{ |
|
.method public hidebysig static void Main (string[] args) cil managed |
|
{ |
|
.maxstack 8 |
|
.entrypoint |
|
|
|
ldc.i8 0xCCCCCCCCCCCCCCCC |
|
call int64 Program::BitwiseComplementInNativeSize(int64) |
|
call void Program::PrintHex(int64) |
|
|
|
ldc.i4 0x99999999 |
|
call int64 Program::BitwiseComplementWithUndersizedValue(int32) |
|
call void Program::PrintHex(int64) |
|
|
|
ldc.i4 0x9999 |
|
call int32 Program::BitwiseComplementWithSmallInteger(uint16) |
|
call void Program::PrintHex(int32) |
|
|
|
ldc.i4 0x9999 |
|
call int32 Program::BitwiseComplementWithSmallEnum(valuetype Enums.EUInt16) |
|
call void Program::PrintHex(int32) |
|
|
|
ret |
|
} // end of method Main |
|
|
|
.method public static int64 BitwiseComplementInNativeSize(int64 val) |
|
{ |
|
ldarg.0 |
|
conv.i // truncate 64-bits to native-size bits |
|
not // negate those native size bits |
|
conv.i8 // sign extend back to 64-bits |
|
ret |
|
} |
|
|
|
.method public static int64 BitwiseComplementWithUndersizedValue(int32 val) |
|
{ |
|
ldarg.0 |
|
conv.u8 // zero extend up to 64-bits |
|
not // negate those 64-bits |
|
ret |
|
} |
|
|
|
.method public static int32 BitwiseComplementWithSmallInteger(uint16 val) |
|
{ |
|
ldarg.0 // zero extend up to 32-bits |
|
not // negate those 32-bits |
|
ret |
|
} |
|
|
|
.method public static int32 BitwiseComplementWithSmallEnum(valuetype Enums.EUInt16 val) |
|
{ |
|
ldarg.0 // zero extend up to 32-bits |
|
not // negate those 32-bits |
|
ret |
|
} |
|
|
|
.method public static void PrintHex(int32 val) |
|
{ |
|
ldstr "{0:x8}" |
|
ldarg.0 |
|
box valuetype [mscorlib]System.UInt32 |
|
call void [mscorlib]System.Console::WriteLine(string, object) |
|
ret |
|
} |
|
|
|
.method public static void PrintHex(int64 val) |
|
{ |
|
ldstr "{0:x16}" |
|
ldarg.0 |
|
box valuetype [mscorlib]System.UInt64 |
|
call void [mscorlib]System.Console::WriteLine(string, object) |
|
ret |
|
} |
|
} |
|
|
|
.class public auto ansi sealed Enums.EUInt16 |
|
extends [mscorlib]System.Enum |
|
{ |
|
.field public specialname uint16 __value |
|
}
|
|
|