blob: 97072cd9a5ef5b5cd4a7358f1eb7c5c26a561086 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
.assembly extern mscorlib {}
.assembly ILGEN_MODULE {}
.class ILGEN_CLASS
{
.method static native int ILGEN_METHOD(unsigned int8, int64, native int, unsigned int16)
{
.maxstack 65535
.locals init (int16, native unsigned int, int16)
ldarg.s 0x01
conv.r4
conv.ovf.i8
ldarg 0x0001
not
add.ovf.un
ldc.i8 0x3171ecd9351b8edd
conv.ovf.i8.un
ldarg.s 0x03
shr
ldloc 0x0002
ldloc.s 0x01
conv.ovf.i8
ldarg 0x0001
cgt.un
shr.un
conv.i2
ldarg 0x0003
ldarg.s 0x03
rem.un
ldloc 0x0002
conv.u2
ldloc.s 0x02
rem.un
clt
cgt
conv.ovf.u8.un
ldarg 0x0001
starg.s 0x01
ldc.r8 float64(0xa7450abcb249d654)
ckfinite
neg
pop
mul.ovf
pop
brtrue IL_005d
ldc.r8 float64(0xd997fc4323d4242e)
pop
IL_005d:
ldc.r8 float64(0x4ce121de0d887bd3)
ckfinite
neg
neg
ldc.r8 float64(0x7ecd50b46af15c38)
ckfinite
neg
neg
ldc.r8 float64(0x731b56a3f8d0df42)
neg
conv.r.un
conv.i8
not
neg
ldloc 0x0000
ldloc.s 0x00
shl
ldarg 0x0003
ldloc.s 0x00
conv.r.un
ldc.r8 float64(0xd7e6bb0db40c537d)
ceq
div.un
or
shl
ldarg.s 0x01
conv.ovf.i8.un
neg
ldarg 0x0001
ldloc 0x0001
shr
add.ovf
starg 0x0001
starg 0x0001
ceq
ret
}
.method public static int32 Main()
{
.entrypoint
.try
{
ldc.i4 0
ldc.i8 0
ldc.i4 0
conv.i
ldc.i4 0
call native int ILGEN_CLASS::ILGEN_METHOD(unsigned int8, int64, native int, unsigned int16)
pop
leave done
}
catch [mscorlib]System.Exception
{
pop
leave done
}
done:
ldc.i4 100
ret
}
}
|