summaryrefslogtreecommitdiff
path: root/tests/src/JIT/jit64/regress/vsw/460412/test.il
blob: c78ca68bd1d7e8f02d1d6dbae3312f7c9541ffa0 (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
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.





// Metadata version: v2.0.50131
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 2:0:0:0
}
.assembly b441487
{
  .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) 
  .hash algorithm 0x00008004
  .ver 0:0:0:0
}
.module b441487.exe
// MVID: {1BC10DDA-FF11-4E02-AEEF-C2F0AAC78A25}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       // WINDOWS_CUI
.corflags 0x00000001    //  ILONLY
// Image base: 0x02F10000

// =============== CLASS MEMBERS DECLARATION ===================

.class public auto ansi beforefieldinit Test.Widget`1<T>
       extends [mscorlib]System.Object
{
  .method public hidebysig instance void 
          SyncIt() cil managed synchronized noinlining
  {
    // Code size       19 (0x13)
    .maxstack  8
    IL_0000:  nop
    IL_0001:  ldstr      "SyncIt"
    IL_0006:  call       void [mscorlib]System.Console::WriteLine(string)
    IL_000b:  nop
///////////////////////////////////////////////////////////
ldnull
starg 0
///////////////////////////////////////////////////////////
    IL_0011:  nop
    IL_0012:  ret
  } // end of method Widget`1::SyncIt

  .method public hidebysig specialname rtspecialname 
          instance void  .ctor() cil 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 Widget`1::.ctor

} // end of class Test.Widget`1

.class public abstract auto ansi sealed beforefieldinit Test.Program
       extends [mscorlib]System.Object
{
  .method public hidebysig static int32  Main(string[] args) cil managed
  {
    .entrypoint
    // Code size       87 (0x57)
    .maxstack  2
    .locals init (int32 V_0,
             int32 V_1,
             bool V_2)
    IL_0000:  nop
    IL_0001:  ldc.i4.0
    IL_0002:  stloc.0
    IL_0003:  ldloc.0
    IL_0014:  call       int32 Test.Program::RunTests<object>()
    IL_0019:  add
    IL_001a:  stloc.0
    IL_001b:  ldloc.0
    IL_002c:  ldc.i4.0
    IL_002d:  ceq
    IL_002f:  stloc.2
    IL_0030:  ldloc.2
    IL_0031:  brtrue.s   IL_0044

    IL_0033:  nop
    IL_0034:  ldstr      "Test FAILED"
    IL_0039:  call       void [mscorlib]System.Console::WriteLine(string)
    IL_003e:  nop
    IL_003f:  ldc.i4.s   101
    IL_0041:  stloc.1
    IL_0042:  br.s       IL_0055

    IL_0044:  nop
    IL_0045:  ldstr      "Test SUCCESS"
    IL_004a:  call       void [mscorlib]System.Console::WriteLine(string)
    IL_004f:  nop
    IL_0050:  ldc.i4.s   100
    IL_0052:  stloc.1
    IL_0053:  br.s       IL_0055

    IL_0055:  ldloc.1
    IL_0056:  ret
  } // end of method Program::Main

  .method private hidebysig static int32 
          RunTests<T>() cil managed noinlining
  {
    // Code size       189 (0xbd)
    .maxstack  2
    .locals init (int32 V_0,
             class [mscorlib]System.NullReferenceException V_1,
             int32 V_2)
    IL_0000:  nop
    IL_0001:  ldstr      "Running tests for {0}"
    IL_0006:  ldtoken    !!T
    IL_000b:  call       class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
    IL_0010:  call       void [mscorlib]System.Console::WriteLine(string,
                                                                  object)
    IL_0015:  nop
    IL_0016:  ldc.i4.0
    IL_0017:  stloc.0

    .try
    {
      IL_0082:  nop
      IL_0083:  newobj     instance void class Test.Widget`1<!!T>::.ctor()
      IL_0088:  call       instance void class Test.Widget`1<!!T>::SyncIt()
      IL_008d:  nop
      IL_008e:  nop
      IL_008f:  leave.s    IL_00b6

    }  // end .try
    catch [mscorlib]System.NullReferenceException 
    {
      IL_0091:  stloc.1
      IL_0092:  nop
      IL_0093:  ldstr      "Widget<{0}>.SyncIt() failed"
      IL_0098:  ldtoken    !!T
      IL_009d:  call       class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
      IL_00a2:  call       void [mscorlib]System.Console::WriteLine(string,
                                                                    object)
      IL_00a7:  nop
      IL_00a8:  ldloc.1
      IL_00a9:  call       void [mscorlib]System.Console::WriteLine(object)
      IL_00ae:  nop
      IL_00af:  ldloc.0
      IL_00b0:  ldc.i4.1
      IL_00b1:  add
      IL_00b2:  stloc.0
      IL_00b3:  nop
      IL_00b4:  leave.s    IL_00b6

    }  // end handler
    IL_00b6:  nop
    IL_00b7:  ldloc.0
    IL_00b8:  stloc.2
    IL_00b9:  br.s       IL_00bb

    IL_00bb:  ldloc.2
    IL_00bc:  ret
  } // end of method Program::RunTests

} // end of class Test.Program


// =============================================================

// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file b441487.res