Created
March 31, 2021 09:00
-
-
Save dstogov/2ba3a8f340a2f22147e15a119701b7e7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h | |
index dc49bcd434..ff2c678373 100644 | |
--- a/Zend/zend_vm_execute.h | |
+++ b/Zend/zend_vm_execute.h | |
@@ -374,11 +374,19 @@ static const void *zend_vm_get_opcode_handler_func(zend_uchar opcode, const zend | |
# if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) | |
# define ZEND_VM_RETURN() opline = &hybrid_halt_op; return | |
# define ZEND_VM_HOT zend_always_inline ZEND_COLD ZEND_OPT_SIZE | |
-# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE | |
+# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__)) | |
+# define ZEND_VM_COLD ZEND_COLD | |
+# else | |
+# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE | |
+# endif | |
# else | |
# define ZEND_VM_RETURN() opline = NULL; return | |
# define ZEND_VM_HOT | |
-# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE | |
+# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__)) | |
+# define ZEND_VM_COLD ZEND_COLD | |
+# else | |
+# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE | |
+# endif | |
# endif | |
#else | |
# define ZEND_OPCODE_HANDLER_RET int | |
@@ -386,7 +394,11 @@ static const void *zend_vm_get_opcode_handler_func(zend_uchar opcode, const zend | |
# define ZEND_VM_CONTINUE() return 0 | |
# define ZEND_VM_RETURN() return -1 | |
# define ZEND_VM_HOT | |
-# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE | |
+# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__)) | |
+# define ZEND_VM_COLD ZEND_COLD | |
+# else | |
+# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE | |
+# endif | |
#endif | |
typedef ZEND_OPCODE_HANDLER_RET (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS); | |
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php | |
index 22586cbd0b..112e53ef05 100755 | |
--- a/Zend/zend_vm_gen.php | |
+++ b/Zend/zend_vm_gen.php | |
@@ -1916,15 +1916,27 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name) | |
out($f,"# if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID)\n"); | |
out($f,"# define ZEND_VM_RETURN() opline = &hybrid_halt_op; return\n"); | |
out($f,"# define ZEND_VM_HOT zend_always_inline ZEND_COLD ZEND_OPT_SIZE\n"); | |
- out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__))\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD\n"); | |
+ out($f,"# else\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# endif\n"); | |
out($f,"# else\n"); | |
out($f,"# define ZEND_VM_RETURN() opline = NULL; return\n"); | |
out($f,"# define ZEND_VM_HOT\n"); | |
- out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__))\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD\n"); | |
+ out($f,"# else\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# endif\n"); | |
out($f,"# endif\n"); | |
} else { | |
out($f,"# define ZEND_VM_RETURN() opline = NULL; return\n"); | |
- out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__))\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD\n"); | |
+ out($f,"# else\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# endif\n"); | |
} | |
out($f,"#else\n"); | |
out($f,"# define ZEND_OPCODE_HANDLER_RET int\n"); | |
@@ -1934,7 +1946,11 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name) | |
if ($kind == ZEND_VM_KIND_HYBRID) { | |
out($f,"# define ZEND_VM_HOT\n"); | |
} | |
- out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# if (defined(HAVE_GCC_GLOBAL_REGS) && defined(__powerpc64__))\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD\n"); | |
+ out($f,"# else\n"); | |
+ out($f,"# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE\n"); | |
+ out($f,"# endif\n"); | |
out($f,"#endif\n"); | |
out($f,"\n"); | |
out($f,"typedef ZEND_OPCODE_HANDLER_RET (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS);\n"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment