summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il')
-rw-r--r--tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il91
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il b/tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il
new file mode 100644
index 0000000000..042aa48128
--- /dev/null
+++ b/tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il
@@ -0,0 +1,91 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+.assembly extern System.Console
+{
+ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
+ .ver 4:0:0:0
+}
+
+.assembly extern mscorlib {}
+.assembly test {}
+.module test.exe
+
+.class Repro
+{
+ .field private static class [mscorlib]System.Func`2<int32,int32> d1
+ .field private static class [mscorlib]System.Func`6<int32,int32,int32,int32,int32,int32> d2
+
+ .method private hidebysig static int32 Work1(int32 x) cil managed
+ {
+ .maxstack 8
+ ldarg.0
+ brtrue.s TAILCALL1
+
+ ldc.i4.s 100
+ ret
+
+ TAILCALL1:
+ ldsfld class [mscorlib]System.Func`6<int32,int32,int32,int32,int32,int32> Repro::d2
+ ldarg.0
+ ldc.i4.1
+ sub
+ ldc.i4.1
+ ldc.i4.2
+ ldc.i4.3
+ ldc.i4.4
+ tail.
+ callvirt instance !5 class [mscorlib]System.Func`6<int32,int32,int32,int32,int32,int32>::Invoke(!0,
+ !1,
+ !2,
+ !3,
+ !4)
+ ret
+ }
+
+ .method private hidebysig static int32 Work2(int32 x, int32 a, int32 b, int32 c, int32 d) cil managed
+ {
+ .maxstack 8
+ ldarg.0
+ brtrue.s TAILCALL2
+
+ ldc.i4.s 100
+ ret
+
+ TAILCALL2:
+ ldsfld class [mscorlib]System.Func`2<int32,int32> Repro::d1
+ ldarg.0
+ ldc.i4.1
+ sub
+ tail.
+ callvirt instance !1 class [mscorlib]System.Func`2<int32,int32>::Invoke(!0)
+ ret
+ }
+
+ .method private hidebysig static int32 Main() cil managed
+ {
+ .entrypoint
+ .maxstack 8
+ ldnull
+ ldftn int32 Repro::Work1(int32)
+ newobj instance void class [mscorlib]System.Func`2<int32,int32>::.ctor(object,
+ native int)
+ stsfld class [mscorlib]System.Func`2<int32,int32> Repro::d1
+ ldnull
+ ldftn int32 Repro::Work2(int32,
+ int32,
+ int32,
+ int32,
+ int32)
+ newobj instance void class [mscorlib]System.Func`6<int32,int32,int32,int32,int32,int32>::.ctor(object,
+ native int)
+ stsfld class [mscorlib]System.Func`6<int32,int32,int32,int32,int32,int32> Repro::d2
+ ldsfld class [mscorlib]System.Func`2<int32,int32> Repro::d1
+ ldc.i4 0xf4240
+ callvirt instance !1 class [mscorlib]System.Func`2<int32,int32>::Invoke(!0)
+
+ ldstr "PASS!"
+ call void [System.Console]System.Console::WriteLine(string)
+ ret
+ }
+} \ No newline at end of file