[Tailcall] Fix CoreCLR tests to return success:0 instead of success:100 and run some...
[mono-project.git] / mono / tests / tailcall / coreclr / JIT / Methodical / tailcall / test_mutual_rec.il
blobb9173683a25d05bac13f385408d13900332dd286
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
5 .assembly extern mscorlib { }
6 .assembly test_mutual_rec { }
7 .namespace JitTest
9   .class private auto ansi beforefieldinit Test
10          extends [mscorlib]System.Object
11   {
12     .field private static int32 m
13     .field private static int32 n
14         .method private hidebysig  static int32 Main() il managed
15     {
16       .entrypoint
17       .maxstack  4
18       .locals (int32 V_0)
19       ldc.i4.1
20       call       void [mscorlib]System.Environment::set_ExitCode(int32)
21       ldsfld     int32 JitTest.Test::n
22       ldc.i4.1
23       bne.un.s   IL_0047
25       ldsfld     int32 JitTest.Test::m
26       ldc.i4     0x375f00
27       bne.un.s   IL_0029
29       ldstr      "PASSED: 10! == 3628800"
30       call       void [mscorlib]System.Console::WriteLine(class System.String)
31       ldc.i4.s   0
32       ret
34 IL_0029:
35       ldstr      "FAILED: 10! != "
36       ldsflda    int32 JitTest.Test::m
37       call       instance class System.String [mscorlib]System.Int32::ToString()
38       call       class System.String [mscorlib]System.String::Concat(class System.String,
39                                                                                class System.String)
40       call       void [mscorlib]System.Console::WriteLine(class System.String)
41       ldc.i4.s   101
42       ret
44 IL_0047:
45       ldsfld     int32 JitTest.Test::m
46       ldsfld     int32 JitTest.Test::n
47       dup
48       ldc.i4.1
49       sub
50       stsfld     int32 JitTest.Test::n
51       mul
52       stsfld     int32 JitTest.Test::m
53       
54       ldsfld int32 JitTest.Test::n
55       ldc.i4.3
56       rem
57       switch (CASE1, CASE2)
58       ldftn int32 JitTest.Test::Main()
59       br.s MERGE1
60 CASE1:
61       ldftn int32 JitTest.Test::Main1()
62       br.s MERGE1
63 CASE2:
64       ldftn int32 JitTest.Test::Main2()
65 MERGE1:
66       tail. calli int32()
67       ret
68     } // end of method Test::Main
69         .method private hidebysig  static int32 Main1() il managed
70     {
71       .maxstack  4
72       .locals (int32 V_0)
73       ldc.i4.1
74       call       void [mscorlib]System.Environment::set_ExitCode(int32)
75       ldsfld     int32 JitTest.Test::n
76       ldc.i4.1
77       bne.un.s   IL_0047
79       ldsfld     int32 JitTest.Test::m
80       ldc.i4     0x375f00
81       bne.un.s   IL_0029
83       ldstr      "PASSED: 10! == 3628800"
84       call       void [mscorlib]System.Console::WriteLine(class System.String)
85       ldc.i4.s   100
86       ret
88 IL_0029:
89       ldstr      "FAILED: 10! != "
90       ldsflda    int32 JitTest.Test::m
91       call       instance class System.String [mscorlib]System.Int32::ToString()
92       call       class System.String [mscorlib]System.String::Concat(class System.String,
93                                                                                class System.String)
94       call       void [mscorlib]System.Console::WriteLine(class System.String)
95       ldc.i4.s   101
96       ret
98 IL_0047:
99       ldsfld     int32 JitTest.Test::m
100       ldsfld     int32 JitTest.Test::n
101       dup
102       ldc.i4.1
103       sub
104       stsfld     int32 JitTest.Test::n
105       mul
106       stsfld     int32 JitTest.Test::m
107       
108       ldsfld int32 JitTest.Test::n
109       ldc.i4.3
110       rem
111       switch (CASE1, CASE2)
112       ldftn int32 JitTest.Test::Main()
113       br.s MERGE1
114 CASE1:
115       ldftn int32 JitTest.Test::Main1()
116       br.s MERGE1
117 CASE2:
118       ldftn int32 JitTest.Test::Main2()
119 MERGE1:
120       tail. calli int32()
121       ret
122     } // end of method Test::Main
123         .method private hidebysig  static int32 Main2() il managed
124     {
125       .maxstack  4
126       .locals (int32 V_0)
127       ldc.i4.1
128       call       void [mscorlib]System.Environment::set_ExitCode(int32)
129       ldsfld     int32 JitTest.Test::n
130       ldc.i4.1
131       bne.un.s   IL_0047
133       ldsfld     int32 JitTest.Test::m
134       ldc.i4     0x375f00
135       bne.un.s   IL_0029
137       ldstr      "PASSED: 10! == 3628800"
138       call       void [mscorlib]System.Console::WriteLine(class System.String)
139       ldc.i4.s   100
140       ret
142 IL_0029:
143       ldstr      "FAILED: 10! != "
144       ldsflda    int32 JitTest.Test::m
145       call       instance class System.String [mscorlib]System.Int32::ToString()
146       call       class System.String [mscorlib]System.String::Concat(class System.String,
147                                                                                class System.String)
148       call       void [mscorlib]System.Console::WriteLine(class System.String)
149       ldc.i4.s   101
150       ret
152 IL_0047:
153       ldsfld     int32 JitTest.Test::m
154       ldsfld     int32 JitTest.Test::n
155       dup
156       ldc.i4.1
157       sub
158       stsfld     int32 JitTest.Test::n
159       mul
160       stsfld     int32 JitTest.Test::m
161       
162       ldsfld int32 JitTest.Test::n
163       ldc.i4.3
164       rem
165       switch (CASE1, CASE2)
166       ldftn int32 JitTest.Test::Main()
167       br.s MERGE1
168 CASE1:
169       ldftn int32 JitTest.Test::Main1()
170       br.s MERGE1
171 CASE2:
172       ldftn int32 JitTest.Test::Main2()
173 MERGE1:
174       tail. calli int32()
175       ret
176     } // end of method Test::Main
178     .method private hidebysig  specialname rtspecialname static 
179             void .cctor() il managed
180     {
181       // Code size       14 (0xe)
182       .maxstack  8
183       IL_0000:  ldc.i4.1
184       IL_0001:  stsfld     int32 JitTest.Test::m
185       IL_0006:  ldc.i4.s   10
186       IL_0008:  stsfld     int32 JitTest.Test::n
187       IL_000d:  ret
188     } // end of method Test::.cctor
190     .method public hidebysig  specialname rtspecialname 
191             instance void .ctor() il managed
192     {
193       // Code size       7 (0x7)
194       .maxstack  8
195       IL_0000:  ldarg.0
196       IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
197       IL_0006:  ret
198     } // end of method Test::.ctor
200   } // end of class Test
202 } // end of namespace JitTest
204 //*********** DISASSEMBLY COMPLETE ***********************