forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathselfref.il
More file actions
147 lines (124 loc) · 4.42 KB
/
selfref.il
File metadata and controls
147 lines (124 loc) · 4.42 KB
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
.assembly extern mscorlib { }
.assembly extern System.Console
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
.ver 4:0:0:0
}
.assembly 'selfref'// as "selfref"
{
// bool) = ( 01 00 00 01 00 00 )
}
.assembly extern xunit.core {}
.module 'selfref.exe'
// MVID: {57800D71-6F51-4ACF-BC86-8F3D2FBAC8E1}
.namespace GCTest
{
.class private auto ansi Test
extends [mscorlib]System.Object
{
.method private hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
01 00 00 00
)
.entrypoint
// Code size 157 (0x9d)
.maxstack 3
.locals (class [mscorlib]System.Object &V_0,
class [mscorlib]System.Object[] V_1,
int32 V_2,
class [mscorlib]System.Array V_3,
int32 V_4,
int32 V_5,
class [mscorlib]System.Object dummy)
IL_0000: ldloca dummy
IL_0001: stloc.0
IL_0002: ldc.i4.s 16
IL_0004: newarr [mscorlib]System.Object
IL_0009: stloc.1
IL_000a: ldloc.1
IL_000b: ldc.i4.0
IL_000c: call instance int32 [mscorlib]System.Array::GetLowerBound(int32)
IL_0011: stloc.2
IL_0012: br.s IL_001c
IL_0014: ldloc.1
IL_0015: ldloc.2
IL_0016: ldloc.1
IL_0017: stelem.ref
IL_0018: ldloc.2
IL_0019: ldc.i4.1
IL_001a: add
IL_001b: stloc.2
IL_001c: ldloc.2
IL_001d: ldloc.1
IL_001e: ldc.i4.0
IL_001f: call instance int32 [mscorlib]System.Array::GetUpperBound(int32)
IL_0024: ble.s IL_0014
IL_0026: ldloc.1
IL_0027: ldc.i4.s 11
IL_0029: ldelema [mscorlib]System.Object
IL_002a: stloc.0
IL_002b: ldnull
IL_002c: stloc.1
call void [mscorlib]System.GC::Collect()
IL_002d: ldloc.0
ldind.ref
IL_002e: castclass [mscorlib]System.Array
IL_0033: stloc.3
IL_0034: ldloc.3
IL_0035: ldc.i4.0
IL_0036: call instance int32 [mscorlib]System.Array::GetLowerBound(int32)
IL_003b: stloc.s V_4
IL_003d: br.s IL_0080
IL_003f: ldloc.3
IL_0040: ldloc.s V_4
IL_0042: call instance class [mscorlib]System.Object [mscorlib]System.Array::GetValue(int32)
IL_0047: castclass [mscorlib]System.Array
IL_004c: ldc.i4.0
IL_004d: call instance int32 [mscorlib]System.Array::GetLowerBound(int32)
IL_0052: brtrue.s IL_006b
IL_0054: ldloc.3
IL_0055: ldloc.s V_4
IL_0057: call instance class [mscorlib]System.Object [mscorlib]System.Array::GetValue(int32)
IL_005c: castclass [mscorlib]System.Array
IL_0061: ldc.i4.0
IL_0062: call instance int32 [mscorlib]System.Array::GetUpperBound(int32)
IL_0067: ldc.i4.s 15
IL_0069: beq.s IL_007a
IL_006b: ldstr "TEST FAILED!"
IL_0070: call void [System.Console]System.Console::WriteLine(class [mscorlib]System.String)
IL_0075: ldc.i4.1
IL_0076: stloc.s V_5
IL_0078: br.s IL_009a
IL_007a: ldloc.s V_4
IL_007c: ldc.i4.1
IL_007d: add
IL_007e: stloc.s V_4
IL_0080: ldloc.s V_4
IL_0082: ldloc.3
IL_0083: ldc.i4.0
IL_0084: call instance int32 [mscorlib]System.Array::GetUpperBound(int32)
IL_0089: ble.s IL_003f
IL_008b: ldstr "TEST PASSED!"
IL_0090: call void [System.Console]System.Console::WriteLine(class [mscorlib]System.String)
IL_0095: ldc.i4 0x64
IL_0096: stloc.s V_5
IL_0098: br.s IL_009a
IL_009a: ldloc.s V_5
IL_009c: ret
} // end of method 'Test::Main'
.method public hidebysig specialname rtspecialname
instance void .ctor() il managed
{
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
} // end of method 'Test::.ctor'
} // end of class 'Test'
} // end of namespace 'GCTest'
//*********** DISASSEMBLY COMPLETE ***********************