From 3d39c014049601c9f1917ff08d66e1a1aaf899be Mon Sep 17 00:00:00 2001 From: Gustavo Serra Scalet Date: Mon, 11 Apr 2016 14:05:29 -0300 Subject: Port to PPC64el A LuaJIT port to PPC64 is available on this official PR: https://github.com/LuaJIT/LuaJIT/pull/54 It compiles, but I can't test as well as I can't in X64... well, let's see afterwards. --- ffi.c | 8 +++++--- ffi.h | 2 ++ parser.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ffi.c b/ffi.c index eb8462a..4aac25e 100644 --- a/ffi.c +++ b/ffi.c @@ -3388,21 +3388,21 @@ static int setup_upvals(lua_State* L) #if defined ARCH_X86 || defined ARCH_ARM lua_pushboolean(L, 1); lua_setfield(L, -2, "32bit"); -#elif defined ARCH_X64 +#elif defined ARCH_X64 || defined ARCH_PPC64 lua_pushboolean(L, 1); lua_setfield(L, -2, "64bit"); #else #error #endif -#if defined ARCH_X86 || defined ARCH_X64 || defined ARCH_ARM +#if defined ARCH_X86 || defined ARCH_X64 || defined ARCH_ARM || defined ARCH_PPC64 lua_pushboolean(L, 1); lua_setfield(L, -2, "le"); #else #error #endif -#if defined ARCH_X86 || defined ARCH_X64 +#if defined ARCH_X86 || defined ARCH_X64 || defined ARCH_PPC64 lua_pushboolean(L, 1); lua_setfield(L, -2, "fpu"); #elif defined ARCH_ARM @@ -3449,6 +3449,8 @@ static int setup_upvals(lua_State* L) lua_pushliteral(L, "x64"); #elif defined ARCH_ARM lua_pushliteral(L, "arm"); +#elif defined ARCH_PPC64 + lua_pushliteral(L, "ppc64"); #else # error #endif diff --git a/ffi.h b/ffi.h index 2bca60a..c40ba5e 100644 --- a/ffi.h +++ b/ffi.h @@ -133,6 +133,8 @@ static void (lua_remove)(lua_State *L, int idx) { # define ARCH_X64 #elif defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm # define ARCH_ARM +#elif defined __powerpc64__ +# define ARCH_PPC64 #else # error #endif diff --git a/parser.c b/parser.c index 9ef49a8..dceb845 100644 --- a/parser.c +++ b/parser.c @@ -1122,7 +1122,7 @@ static int parse_attribute(lua_State* L, struct parser* P, struct token* tok, st ct->align_mask = ALIGNOF(a32); } else if (IS_LITERAL(*tok, "DI") || IS_LITERAL(*tok, "__DI__") -#if defined ARCH_X64 +#if defined ARCH_X64 || defined ARCH_PPC64 || IS_LITERAL(*tok, "word") || IS_LITERAL(*tok, "__word__") || IS_LITERAL(*tok, "pointer") || IS_LITERAL(*tok, "__pointer__") #endif -- cgit v1.2.3