about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJoseph Allen <joseph.allen.ilive@gmail.com>2021-11-18 17:48:52 -0600
committerJoseph Allen <joseph.allen.ilive@gmail.com>2021-11-18 17:48:52 -0600
commitb021beba6a67ff9f80bfb433db3ec8fdd7cec6e1 (patch)
tree53cc1d372b13ec99e8c40b166f8cdaaa53804236
parent684d67d12ec2be6526088f36c2e83d2820392895 (diff)
downloadbox64-b021beba6a67ff9f80bfb433db3ec8fdd7cec6e1.tar.gz
box64-b021beba6a67ff9f80bfb433db3ec8fdd7cec6e1.zip
Minor changes to allow box64 to build and run on ppc64le.
-rwxr-xr-xsrc/include/myalign.h12
-rwxr-xr-xsrc/libtools/signals.c2
2 files changed, 2 insertions, 12 deletions
diff --git a/src/include/myalign.h b/src/include/myalign.h
index d085e3d3..47072bc9 100755
--- a/src/include/myalign.h
+++ b/src/include/myalign.h
@@ -90,17 +90,7 @@ typedef struct  va_list {
     memcpy(&p[6], emu->xmm, 8*16);                                      \
   }
 
-#elif defined(__powerpc64__)
-// TODO, is this correct?
-#define CREATE_SYSV_VALIST(A) \
-  va_list sysv_varargs; \
-  sysv_varargs->gpr=8; \
-  sysv_varargs->fpr=8; \
-  sysv_varargs->overflow_arg_area=A;
-
-#define CONVERT_VALIST(A) \
-  #error TODO!
-#elif defined(__loongarch64)
+#elif defined(__loongarch64) || defined(__powerpc64__)
 #define CREATE_SYSV_VALIST(A) \
   va_list sysv_varargs = (va_list)A
 // not creating CONVERT_VALIST(A) on purpose
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index 5ac76342..1086f36c 100755
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -733,7 +733,7 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx)
 #elif defined __x86_64__
     void * pc = (void*)p->uc_mcontext.gregs[X64_RIP];
 #elif defined __powerpc64__
-    void * pc = (void*)p->uc_mcontext.uc_regs->gregs[PT_NIP];
+    void * pc = (void*)p->uc_mcontext.gp_regs[PT_NIP];
 #else
     void * pc = NULL;    // unknow arch...
     #warning Unhandled architecture