From 5f45f6d431941cd4e37b1053bfe99cd32da6a102 Mon Sep 17 00:00:00 2001
From: Marcus Comstedt <marcus@mc.pp.se>
Date: Sat, 19 May 2018 12:59:16 +0200
Subject: [PATCH] [ppc64] Add support for ELF V2 ABI (ppc64le)

---
 src/code/ppc64.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/code/ppc64.c b/src/code/ppc64.c
index da854ad24a..1b6dfc471c 100644
--- a/src/code/ppc64.c
+++ b/src/code/ppc64.c
@@ -28,6 +28,20 @@
 #define MAKE_TYPE_WORD(t,st) ((st)|((t)<<16))
 #endif
 
+#if _CALL_ELF == 2
+
+#define ADD_CALL(X) do {			\
+    INT64 func_=(INT64)(void*)(X);		\
+						\
+    SET_REG64(12, func_);			\
+    /* mtlr r12 */				\
+    MTSPR(12, PPC_SPREG_LR);			\
+    /* blrl */					\
+    BCLRL(20, 0);				\
+  } while(0)
+
+#else
+
 #define ADD_CALL(X) do {			\
     INT64 func_=(INT64)(void*)(X);		\
 						\
@@ -44,6 +58,8 @@
     BCLRL(20, 0);				\
   } while(0)
 
+#endif
+
 int ppc64_codegen_state = 0, ppc64_codegen_last_pc = 0;
 static int last_prog_id=-1;
 
-- 
GitLab