summaryrefslogtreecommitdiff
path: root/tests/src/JIT/jit64/mcc/interop/mcc_i02.il
blob: dd8a0cfb9d6c820db22657fe53cd02290c77779d (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
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.


.assembly extern mscorlib {}
.assembly MCCTest {}
.module mcc_i02.exe


.namespace MCCTest
{
  .class MyClass
  {
    .method assembly static pinvokeimpl("native_i0c" as "#1" cdecl) 
        vararg valuetype MCCTest.VType0 Sum(unsigned int64) cil managed preservesig {
    }

    .method private valuetype MCCTest.VType0 GetSum()
    {
      .maxstack  64
      ldc.i8 1
      ldc.i8 2
      ldc.i8 3
      ldc.i8 4
      ldc.i8 5
      ldc.i8 6
      ldc.i8 7
      ldc.i8 8
      ldc.i8 9
      ldc.i8 10
      ldc.i8 11
      ldc.i8 12
      ldc.i8 1
      neg
      tail.
      call   vararg valuetype MCCTest.VType0 MCCTest.MyClass::Sum(unsigned int64, ..., 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64, 
                                                                    unsigned int64)
		ret
	}

    .method public specialname rtspecialname instance void  .ctor()
    {
      .maxstack  1
      ldarg.0
      call       instance void [mscorlib]System.Object::.ctor()
      ret
    } // end of method MyClass::.ctor

    .method private static int32 Main(string[] args)
    {
      .entrypoint
      .maxstack  64
      .locals init	(
        [0] class MCCTest.MyClass me,
        [1] valuetype MCCTest.VType0 res,
        [2] int32 rc
      )
      
      newobj     instance void MCCTest.MyClass::.ctor()
      stloc.s    me
      
      ldloc.s    me
      call   instance valuetype MCCTest.VType0 MCCTest.MyClass::GetSum()
      stloc.s    res

      // Check Result
      ldloc.s    res
      ldc.i4     12
      call       int32 MCCTest.Common::CheckResult(valuetype MCCTest.VType0, int32)
      stloc.s    rc
      
      ldloc.s    rc
      ret
    } // end of method MyClass::Main

  } // end of class MyClass

} // end of namespace MCCTest