Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/facebook/luaffifb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Serra Scalet <gustavo.scalet@eldorado.org.br>2016-04-11 20:05:29 +0300
committerGustavo Serra Scalet <gustavo.scalet@eldorado.org.br>2016-04-11 20:05:29 +0300
commit3d39c014049601c9f1917ff08d66e1a1aaf899be (patch)
treed23f5b028e3137dc2f103d8d663e80c7966b0743
parent44672a3a7bdfc81980abfc95160fb396ca6eb2cd (diff)
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.
-rw-r--r--ffi.c8
-rw-r--r--ffi.h2
-rw-r--r--parser.c2
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