diff -Naur pcre-8.42-original/sljit/sljitConfigInternal.h pcre-8.42/sljit/sljitConfigInternal.h
--- pcre-8.42-original/sljit/sljitConfigInternal.h	2018-03-13 16:15:23.000000000 +0000
+++ pcre-8.42/sljit/sljitConfigInternal.h	2018-09-13 01:16:46.640000000 +0000
@@ -530,7 +530,7 @@
 #endif /* !SLJIT_FUNC */
 
 #ifndef SLJIT_INDIRECT_CALL
-#if ((defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) && (defined SLJIT_BIG_ENDIAN && SLJIT_BIG_ENDIAN)) \
+#if ((defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) && ((defined _CALL_ELF && _CALL_ELF == 1) || (!defined _CALL_ELF))) \
 	|| ((defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) && defined _AIX)
 /* It seems certain ppc compilers use an indirect addressing for functions
    which makes things complicated. */
diff -Naur pcre-8.42-original/sljit/sljitNativePPC_common.c pcre-8.42/sljit/sljitNativePPC_common.c
--- pcre-8.42-original/sljit/sljitNativePPC_common.c	2018-01-08 10:25:56.000000000 +0000
+++ pcre-8.42/sljit/sljitNativePPC_common.c	2018-09-13 01:21:00.360000000 +0000
@@ -42,7 +42,8 @@
 #include <sys/cache.h>
 #endif
 
-#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN)
+#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN) \
+	|| (defined _CALL_ELF && _CALL_ELF == 2)
 #define SLJIT_PASS_ENTRY_ADDR_TO_CALL 1
 #endif