Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / tests / generic-tailcall.2.il
1 .assembly extern mscorlib
2 {
3   .ver 2:0:0:0
4   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
5 }
6 .assembly 'generic-tailcall.2'
7 {
8   .custom instance void class [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::'.ctor'() =  (
9                 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
10                 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01       ) // ceptionThrows.
11
12   .hash algorithm 0x00008004
13   .ver  0:0:0:0
14 }
15 .module 'generic-tailcall.2.exe' // GUID = {06726C6C-6C85-4737-B731-8585E31F7647}
16
17
18   .class public auto ansi beforefieldinit ClassA
19         extends [mscorlib]System.Object
20   {
21
22     // method line 1
23     .method public hidebysig  specialname  rtspecialname 
24            instance default void '.ctor' ()  cil managed 
25     {
26         // Method begins at RVA 0x20ec
27         // Code size 7 (0x7)
28         .maxstack 8
29         IL_0000:  ldarg.0 
30         IL_0001:  call instance void object::'.ctor'()
31         IL_0006:  ret 
32     } // end of method ClassA::.ctor
33
34   } // end of class ClassA
35
36   .class public auto ansi beforefieldinit Gen`1<T>
37         extends [mscorlib]System.Object
38   {
39
40     // method line 2
41     .method public hidebysig  specialname  rtspecialname 
42            instance default void '.ctor' ()  cil managed 
43     {
44         // Method begins at RVA 0x20f4
45         // Code size 7 (0x7)
46         .maxstack 8
47         IL_0000:  ldarg.0 
48         IL_0001:  call instance void object::'.ctor'()
49         IL_0006:  ret 
50     } // end of method Gen`1::.ctor
51
52     // method line 3
53     .method public hidebysig 
54            instance default !T[] caller (int32 x)  cil managed 
55     {
56         // Method begins at RVA 0x20fc
57         // Code size 10 (0xa)
58         .maxstack 8
59         IL_0000:  ldarg.0 
60         IL_0001:  ldarg.1 
61         IL_0002:  ldc.i4.1 
62         IL_0003:  add 
63         IL_0004:  tail. call instance !0[] class Gen`1<!T>::callee(int32)
64         IL_0009:  ret 
65     } // end of method Gen`1::caller
66
67     // method line 4
68     .method public hidebysig 
69            instance default !T[] callee (int32 x)  cil managed 
70     {
71         // Method begins at RVA 0x2108
72         // Code size 7 (0x7)
73         .maxstack 8
74         IL_0000:  ldarg.1 
75         IL_0001:  newarr !0
76         IL_0006:  ret 
77     } // end of method Gen`1::callee
78
79   } // end of class Gen`1
80
81   .class public auto ansi beforefieldinit main
82         extends [mscorlib]System.Object
83   {
84
85     // method line 5
86     .method public hidebysig  specialname  rtspecialname 
87            instance default void '.ctor' ()  cil managed 
88     {
89         // Method begins at RVA 0x2110
90         // Code size 7 (0x7)
91         .maxstack 8
92         IL_0000:  ldarg.0 
93         IL_0001:  call instance void object::'.ctor'()
94         IL_0006:  ret 
95     } // end of method main::.ctor
96
97     // method line 6
98     .method public static  hidebysig 
99            default int32 Main ()  cil managed 
100     {
101         // Method begins at RVA 0x2118
102         .entrypoint
103         // Code size 48 (0x30)
104         .maxstack 7
105         .locals init (
106                 class Gen`1<class ClassA>       V_0,
107                 class ClassA[]  V_1)
108         IL_0000:  newobj instance void class Gen`1<class ClassA>::'.ctor'()
109         IL_0005:  stloc.0 
110         IL_0006:  ldloc.0 
111         IL_0007:  ldc.i4.3 
112         IL_0008:  callvirt instance !0[] class Gen`1<class ClassA>::caller(int32)
113         IL_000d:  stloc.1 
114         IL_000e:  ldloc.1 
115         IL_000f:  callvirt instance class [mscorlib]System.Type object::GetType()
116         IL_0014:  ldtoken class ClassA[]
117         IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
118         IL_001e:  bne.un IL_002c
119
120         IL_0023:  ldloc.1 
121         IL_0024:  ldlen 
122         IL_0025:  conv.i4 
123         IL_0026:  ldc.i4.4 
124         IL_0027:  beq IL_002e
125
126         IL_002c:  ldc.i4.1 
127         IL_002d:  ret 
128         IL_002e:  ldc.i4.0 
129         IL_002f:  ret 
130     } // end of method main::Main
131
132   } // end of class main
133