Update Haiku support (#15674)
[mono-project.git] / mono / tests / tail1.il
blob3bd74f0c19f92e7deb06a4efd4f2c56ed7285c3c
1 .assembly extern mscorlib { }
3 .assembly tail1 { }
5 .class A extends [mscorlib]System.Object {
6 .method public hidebysig specialname rtspecialname instance void .ctor() cil managed
8 .maxstack 8
9 ldarg.0
10 call instance void [mscorlib]System.Object::.ctor()
11 ret
13 .method public hidebysig static int32 tail1() cil managed noinlining {
14 .entrypoint
15 .maxstack 4
16 .locals init (uint8 V_0)
17 newobj instance void A::.ctor()
18 ldloca.s V_0
19 conv.u
20 ldc.i4.0
21 conv.i8
22 ldc.i4.1
23 call instance int32 A::tail2(uint8*, int64, int32)
24 ret
26 .method private hidebysig instance int32 tail2(uint8* root_stack, int64 diff_stack, int32 counter) cil managed noinlining {
27 .maxstack 5
28 .locals init (uint8 V_0)
29 ldarg.3
30 ldc.i4.0
31 ble.s IL_0017
32 ldarg.0
33 ldarg.1
34 ldloca.s V_0
35 conv.u
36 ldarg.1
37 sub
38 ldc.i4.1
39 div
40 conv.i8
41 ldarg.3
42 ldc.i4.1
43 sub
44 tail. call instance int32 A::tail2(uint8*, int64, int32)
45 ret
46 IL_0017: ldarg.1
47 ldloca.s V_0
48 conv.u
49 ldarg.2
50 ldstr "tail1"
51 call int32 A::check(uint8*, uint8*, int64, string)
52 ret
54 .method private hidebysig static int32 check(uint8* root_stack, uint8* local, int64 diff_stack, string name) cil managed noinlining {
55 .maxstack 8
56 ldarg.1
57 ldarg.0
58 sub
59 ldc.i4.1
60 div
61 conv.i8
62 ldarg.2
63 beq.s IL_0026
64 ldstr "{0} failure {1}"
65 ldarg.3
66 ldarg.0
67 ldarg.1
68 sub
69 ldc.i4.1
70 div
71 conv.i8
72 box [mscorlib]System.Int64
73 call string [mscorlib]System.String::Format(string, object, object)
74 call void [mscorlib]System.Console::WriteLine(string)
75 ldc.i4.1
76 ret
77 IL_0026: ldstr "{0} success"
78 ldarg.3
79 call string [mscorlib]System.String::Format(string, object)
80 call void [mscorlib]System.Console::WriteLine(string)
81 ldc.i4.0
82 ret
84 .method private hidebysig static int32 check(int64 root_stack, uint8* local, int64 diff_stack, string name) cil managed noinlining {
85 .maxstack 8
86 ldarg.0
87 conv.u
88 ldarg.1
89 ldarg.2
90 ldarg.3
91 call int32 A::check(uint8*, uint8*, int64, string)
92 ret