From be89c18b9827a2cb4ea7807a69e253db075ec7e5 Mon Sep 17 00:00:00 2001 From: ketank-new Date: Thu, 10 Nov 2016 10:42:51 +0530 Subject: [PATCH] Update lj_arch.h Added supporting lines for s390 Lines added using arm lines as reference --- src/lj_arch.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/lj_arch.h b/src/lj_arch.h index cc5a0a66..5155bf69 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -29,6 +29,7 @@ #define LUAJIT_ARCH_mips32 6 #define LUAJIT_ARCH_MIPS64 7 #define LUAJIT_ARCH_mips64 7 +#define LUAJIT_ARCH_S390 8 /* Target OS. */ #define LUAJIT_OS_OTHER 0 @@ -49,6 +50,8 @@ #define LUAJIT_TARGET LUAJIT_ARCH_ARM #elif defined(__aarch64__) #define LUAJIT_TARGET LUAJIT_ARCH_ARM64 +#elif defined(__s390__) || defined(__s390) || defined(__S390__) || defined(__S390) || defined(S390) +#define LUAJIT_TARGET LUAJIT_ARCH_S390 #elif defined(__ppc__) || defined(__ppc) || defined(__PPC__) || defined(__PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__POWERPC) || defined(_M_PPC) #define LUAJIT_TARGET LUAJIT_ARCH_PPC #elif defined(__mips64__) || defined(__mips64) || defined(__MIPS64__) || defined(__MIPS64) @@ -230,6 +233,23 @@ #define LJ_ARCH_VERSION 80 +#elif LUAJIT_TARGET == LUAJIT_ARCH_S390 + + #define LJ_ARCH_NAME "s390" + #define LJ_ARCH_BITS 64 + #define LJ_ARCH_ENDIAN LUAJIT_BE + #if !defined(LJ_ARCH_HASFPU) && __SOFTFP__ + #define LJ_ARCH_HASFPU 1 + #endif + #define LJ_ABI_EABI 1 + #define LJ_TARGET_S390 1 + #define LJ_TARGET_EHRETREG 0 + #define LJ_TARGET_JUMPRANGE 25 /* +-2^25 = +-32MB */ + #define LJ_TARGET_MASKSHIFT 0 + #define LJ_TARGET_MASKROT 1 + #define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */ + #define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL + #elif LUAJIT_TARGET == LUAJIT_ARCH_PPC #ifndef LJ_ARCH_ENDIAN @@ -379,6 +399,10 @@ #if (__clang_major__ < 3) || ((__clang_major__ == 3) && __clang_minor__ < 5) #error "Need at least Clang 3.5 or newer" #endif +#elif LJ_TARGET_S390 +#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2) +#error "Need at least GCC 4.2 or newer" +#endif #else #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 8) #error "Need at least GCC 4.8 or newer"