Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / mini / mini-amd64-gsharedvt.h
1 /**
2  * \file
3  * libcorkscrew-based native unwinder
4  *
5  * Authors:
6  *   Zoltan Varga <vargaz@gmail.com>
7  *   Rodrigo Kumpera <kumpera@gmail.com>
8  *   Andi McClure <andi.mcclure@xamarin.com>
9  *   Johan Lorensson <johan.lorensson@xamarin.com>
10  *
11  * Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
12  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
13  */
14 #ifndef MINI_AMD64_GSHAREDVT_H
15 #define MINI_AMD64_GSHAREDVT_H
16
17 typedef enum {
18         GSHAREDVT_ARG_NONE = 0,
19         GSHAREDVT_ARG_BYVAL_TO_BYREF,
20         GSHAREDVT_ARG_BYREF_TO_BYVAL,
21         GSHAREDVT_ARG_BYREF_TO_BYVAL_U1,
22         GSHAREDVT_ARG_BYREF_TO_BYVAL_U2,
23         GSHAREDVT_ARG_BYREF_TO_BYVAL_U4
24 } GSharedVtArgMarshal;
25
26 typedef enum {
27         GSHAREDVT_RET_NONE = 0,
28         GSHAREDVT_RET_I1,      // 1 byte integer
29         GSHAREDVT_RET_U1,      // 1 byte unsigned
30         GSHAREDVT_RET_I2,      // 2 byte integer
31         GSHAREDVT_RET_U2,      // 2 byte unsigned
32         GSHAREDVT_RET_I4,      // 4 byte integer
33         GSHAREDVT_RET_U4,      // 4 byte unsigned
34         GSHAREDVT_RET_I8,      // 8 byte integer
35         GSHAREDVT_RET_IREGS_1, // Load in first return register
36         GSHAREDVT_RET_R8,     // Double
37         GSHAREDVT_RET_NUM,
38 } GSharedVtRetMarshal;
39
40 static const char* ret_marshal_name[] = {
41         "GSHAREDVT_RET_NONE",
42         "GSHAREDVT_RET_I1",
43         "GSHAREDVT_RET_U1",
44         "GSHAREDVT_RET_I2",
45         "GSHAREDVT_RET_U2",
46         "GSHAREDVT_RET_I4",
47         "GSHAREDVT_RET_U4",
48         "GSHAREDVT_RET_I8",
49         "GSHAREDVT_RET_IREGS_1",
50         "GSHAREDVT_RET_R8",
51         "GSHAREDVT_RET_NUM",
52 };
53
54 #ifdef DEBUG_AMD64_GSHAREDVT
55 #define DEBUG_AMD64_GSHAREDVT_PRINT printf
56 #else
57 #define DEBUG_AMD64_GSHAREDVT_PRINT(...)
58 #endif
59
60 #endif /* MINI_AMD64_GSHAREDVT_H */