blob: 282b408027444e9abf3dda04257c17626ddb83b2 [file] [log] [blame]
#define UNIX64_RET_VOID 0
#define UNIX64_RET_UINT8 1
#define UNIX64_RET_UINT16 2
#define UNIX64_RET_UINT32 3
#define UNIX64_RET_SINT8 4
#define UNIX64_RET_SINT16 5
#define UNIX64_RET_SINT32 6
#define UNIX64_RET_INT64 7
#define UNIX64_RET_XMM32 8
#define UNIX64_RET_XMM64 9
#define UNIX64_RET_X87 10
#define UNIX64_RET_X87_2 11
#define UNIX64_RET_ST_XMM0_RAX 12
#define UNIX64_RET_ST_RAX_XMM0 13
#define UNIX64_RET_ST_XMM0_XMM1 14
#define UNIX64_RET_ST_RAX_RDX 15
#define UNIX64_RET_LAST 15
#define UNIX64_FLAG_RET_IN_MEM (1 << 10)
#define UNIX64_FLAG_XMM_ARGS (1 << 11)
#define UNIX64_SIZE_SHIFT 12
#if defined(FFI_EXEC_STATIC_TRAMP)
/*
* For the trampoline code table mapping, a mapping size of 4K (base page size)
* is chosen.
*/
#define UNIX64_TRAMP_MAP_SHIFT 12
#define UNIX64_TRAMP_MAP_SIZE (1 << UNIX64_TRAMP_MAP_SHIFT)
#ifdef ENDBR_PRESENT
#define UNIX64_TRAMP_SIZE 40
#else
#define UNIX64_TRAMP_SIZE 32
#endif
#endif