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:
authorSam Gross <colesbury@gmail.com>2016-06-06 19:14:45 +0300
committerSam Gross <colesbury@gmail.com>2016-06-06 19:14:45 +0300
commitb8f2ba7f81ce7ea19592a69fa7110d8cc42f4cc7 (patch)
tree245a305fe1033332060cc8e2fa90f4669041b7a0
parentecdd2b1b5aad9d2087de00cdb27b385031d7f2c0 (diff)
parent3d39c014049601c9f1917ff08d66e1a1aaf899be (diff)
Merge pull request #15 from PPC64/ppc64_port
Port to PPC64el
-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