projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #5714 from alexischr/update_bockbuild
[mono.git]
/
mono
/
mini
/
mini-amd64.h
diff --git
a/mono/mini/mini-amd64.h
b/mono/mini/mini-amd64.h
index b42ac52a33bfe7b7c18cc175d219cfa4b7dfd991..ba8466dfebeaa1d47b59d994c7b2995cb48e3929 100644
(file)
--- a/
mono/mini/mini-amd64.h
+++ b/
mono/mini/mini-amd64.h
@@
-175,9
+175,6
@@
struct sigcontext {
* reproduceable results for benchmarks */
#define MONO_ARCH_CODE_ALIGNMENT 32
* reproduceable results for benchmarks */
#define MONO_ARCH_CODE_ALIGNMENT 32
-/*This is the max size of the locals area of a given frame. I think 1MB is a safe default for now*/
-#define MONO_ARCH_MAX_FRAME_SIZE 0x100000
-
struct MonoLMF {
/*
* If the lowest bit is set, then this LMF has the rip field set. Otherwise,
struct MonoLMF {
/*
* If the lowest bit is set, then this LMF has the rip field set. Otherwise,
@@
-240,9
+237,10
@@
static AMD64_XMM_Reg_No float_return_regs [] = { AMD64_XMM0 };
#define PARAM_REGS 6
#define FLOAT_PARAM_REGS 8
#define PARAM_REGS 6
#define FLOAT_PARAM_REGS 8
-static AMD64_Reg_No param_regs [] = { AMD64_RDI, AMD64_RSI, AMD64_RDX, AMD64_RCX, AMD64_R8, AMD64_R9 };
+static const AMD64_Reg_No param_regs [] = {AMD64_RDI, AMD64_RSI, AMD64_RDX,
+ AMD64_RCX, AMD64_R8, AMD64_R9};
-static
AMD64_Reg_No return_regs [] = { AMD64_RAX, AMD64_RDX
};
+static
const AMD64_Reg_No return_regs [] = {AMD64_RAX, AMD64_RDX
};
#endif
typedef struct {
#endif
typedef struct {
@@
-272,15
+270,15
@@
typedef struct {
gpointer bp_addrs [MONO_ZERO_LEN_ARRAY];
} SeqPointInfo;
gpointer bp_addrs [MONO_ZERO_LEN_ARRAY];
} SeqPointInfo;
-#define DYN_CALL_STACK_ARGS 6
-
typedef struct {
typedef struct {
- mgreg_t regs [PARAM_REGS + DYN_CALL_STACK_ARGS];
mgreg_t res;
guint8 *ret;
double fregs [8];
mgreg_t has_fp;
mgreg_t res;
guint8 *ret;
double fregs [8];
mgreg_t has_fp;
+ mgreg_t nstack_args;
guint8 buffer [256];
guint8 buffer [256];
+ /* This should come last as the structure is dynamically extended */
+ mgreg_t regs [PARAM_REGS];
} DynCallArgs;
typedef enum {
} DynCallArgs;
typedef enum {
@@
-312,6
+310,8
@@
typedef struct {
int nregs;
/* Only if storage == ArgOnStack */
int arg_size; // Bytes, will always be rounded up/aligned to 8 byte boundary
int nregs;
/* Only if storage == ArgOnStack */
int arg_size; // Bytes, will always be rounded up/aligned to 8 byte boundary
+ // Size in bytes for small arguments
+ int byte_arg_size;
guint8 pass_empty_struct : 1; // Set in scenarios when empty structs needs to be represented as argument.
} ArgInfo;
guint8 pass_empty_struct : 1; // Set in scenarios when empty structs needs to be represented as argument.
} ArgInfo;
@@
-429,11
+429,9
@@
typedef struct {
#define MONO_ARCH_GSHARED_SUPPORTED 1
#define MONO_ARCH_DYN_CALL_SUPPORTED 1
#define MONO_ARCH_GSHARED_SUPPORTED 1
#define MONO_ARCH_DYN_CALL_SUPPORTED 1
-#define MONO_ARCH_DYN_CALL_PARAM_AREA
(DYN_CALL_STACK_ARGS * 8)
+#define MONO_ARCH_DYN_CALL_PARAM_AREA
0
#define MONO_ARCH_LLVM_SUPPORTED 1
#define MONO_ARCH_LLVM_SUPPORTED 1
-#define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD 1
-#define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD_AOT 1
#define MONO_ARCH_HAVE_CARD_TABLE_WBARRIER 1
#define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1
#define MONO_ARCH_GC_MAPS_SUPPORTED 1
#define MONO_ARCH_HAVE_CARD_TABLE_WBARRIER 1
#define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1
#define MONO_ARCH_GC_MAPS_SUPPORTED 1
@@
-504,9
+502,6
@@
mono_amd64_get_exception_trampolines (gboolean aot);
int
mono_amd64_get_tls_gs_offset (void) MONO_LLVM_INTERNAL;
int
mono_amd64_get_tls_gs_offset (void) MONO_LLVM_INTERNAL;
-gpointer
-mono_amd64_handler_block_trampoline_helper (void);
-
#if defined(TARGET_WIN32) && !defined(DISABLE_JIT)
#if G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT)
#if defined(TARGET_WIN32) && !defined(DISABLE_JIT)
#if G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT)
@@
-556,7
+551,7
@@
typedef struct _UNWIND_INFO {
* OPTIONAL ULONG ExceptionData[]; */
} UNWIND_INFO, *PUNWIND_INFO;
* OPTIONAL ULONG ExceptionData[]; */
} UNWIND_INFO, *PUNWIND_INFO;
-inline guint
+
static
inline guint
mono_arch_unwindinfo_get_size (guchar code_count)
{
// Returned size will be used as the allocated size for unwind data trailing the memory used by compiled method.
mono_arch_unwindinfo_get_size (guchar code_count)
{
// Returned size will be used as the allocated size for unwind data trailing the memory used by compiled method.