Add some s390x C calling convention constants.

Guesses for now based on the ELF ABI supplement for zSeries.
This commit is contained in:
Michael Munday 2016-11-15 14:39:34 -05:00
parent 2315613b38
commit 71d40ba670
2 changed files with 13 additions and 0 deletions

View File

@ -65,6 +65,8 @@ static int collect_reloc(BuildCtx *ctx, uint8_t *addr, int idx, int type);
#include "../dynasm/dasm_ppc.h" #include "../dynasm/dasm_ppc.h"
#elif LJ_TARGET_MIPS #elif LJ_TARGET_MIPS
#include "../dynasm/dasm_mips.h" #include "../dynasm/dasm_mips.h"
#elif LJ_TARGET_S390X
#include "../dynasm/dasm_s390x.h"
#else #else
#error "No support for this architecture (yet)" #error "No support for this architecture (yet)"
#endif #endif

View File

@ -126,6 +126,17 @@ typedef union FPRArg {
struct { LJ_ENDIAN_LOHI(float f; , float g;) }; struct { LJ_ENDIAN_LOHI(float f; , float g;) };
} FPRArg; } FPRArg;
#elif LJ_TARGET_S390X
#define CCALL_NARG_GPR 5 /* GPR 2,3,4,5,6 */
#define CCALL_NARG_FPR 4 /* FPR 0,2,4,8 */
#define CCALL_NRET_GPR 1 /* GPR 2 */
#define CCALL_NRET_FPR 1 /* FPR 0 */
#define CCALL_SPS_EXTRA 20 /* 160-byte callee save area (not sure if this is the right place) */
#define CCALL_SPS_FREE 0
typedef intptr_t GPRArg;
typedef double FPRArg;
#else #else
#error "Missing calling convention definitions for this architecture" #error "Missing calling convention definitions for this architecture"
#endif #endif