Merge pull request #7599 from lambdageek/abort-cctor-no-protection
[mono-project.git] / mono / utils / mono-machine.h
bloba5026fef793198b5f02512ed24c55da0f400a2fe
1 /**
2 * \file
3 * machine definitions
5 * Authors:
6 * Rodrigo Kumpera (kumpera@gmail.com)
8 * Copyright (c) 2011 Novell, Inc (http://www.novell.com)
9 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
12 #ifndef __MONO_MONO_MACHINE_H__
13 #define __MONO_MONO_MACHINE_H__
15 /* C type matching the size of a machine register. Not always the same as 'int' */
16 /* Note that member 'p' of MonoInst must be the same type, as OP_PCONST is defined
17 * as one of the OP_ICONST types, so inst_c0 must be the same as inst_p0
20 #include "config.h"
21 #include <glib.h>
23 #if SIZEOF_REGISTER == 4
24 typedef gint32 mgreg_t;
25 #elif SIZEOF_REGISTER == 8
26 typedef gint64 mgreg_t;
27 #endif
29 /* Alignment for MonoArray.vector */
30 #if defined(_AIX)
32 * HACK: doubles in structs always align to 4 on AIX... even on 64-bit,
33 * which is bad for aligned usage like what System.Array.FastCopy does
35 typedef guint64 mono_64bitaligned_t;
36 #else
37 typedef double mono_64bitaligned_t;
38 #endif
40 #endif /* __MONO_MONO_MACHINE_H__ */