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