[php-src] jit-arm64: Disable "red zone" usage (it leads to crashes).
| From: | Dmitry Stogov | Date: | Mon, 26 Apr 2021 19:36:34 +0000 |
| Subject: | [php-src] jit-arm64: Disable "red zone" usage (it leads to crashes). | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-115844@lists.php.net to get a copy of this message | ||
Author: Dmitry Stogov (dstogov)
Date: 2021-04-26T22:34:02+03:00
Commit: https://github.com/php/php-src/commit/9e4e1488b2555fc2fbe17032673fa52f3dd26433
Raw diff: https://github.com/php/php-src/commit/9e4e1488b2555fc2fbe17032673fa52f3dd26433.diff
Disable "red zone" usage (it leads to crashes).
Changed paths:
M Zend/zend_vm_gen.php
M Zend/zend_vm_opcodes.h
M ext/opcache/jit/zend_jit_arm64.dasc
Diff:
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 298cf132db21..973ae380ef20 100755
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -2361,7 +2361,7 @@ function gen_vm_opcodes_header(
}
$str .= "\n";
$str .= "#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) &&
!defined(__SANITIZE_ADDRESS__)\n";
- $str .= "# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) ||
defined(_M_X64) || defined (__aarch64__))\n";
+ $str .= "# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) ||
defined(_M_X64))\n";
$str .= "# define ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE 16\n";
$str .= "# endif\n";
$str .= "#endif\n";
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index bc8db4fcd4d0..375adfbbfc29 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -35,7 +35,7 @@
#endif
#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) && !defined(__SANITIZE_ADDRESS__)
-# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) || defined(_M_X64) ||
defined (__aarch64__))
+# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) || defined(_M_X64))
# define ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE 16
# endif
#endif
diff --git a/ext/opcache/jit/zend_jit_arm64.dasc b/ext/opcache/jit/zend_jit_arm64.dasc
index a15599c89932..14397939bf3d 100644
--- a/ext/opcache/jit/zend_jit_arm64.dasc
+++ b/ext/opcache/jit/zend_jit_arm64.dasc
@@ -86,7 +86,7 @@
|.define ZREG_TMP4, ZREG_X14
|.define ZREG_FPTMP, ZREG_V16
-|.define HYBRID_SPAD, #16 // padding for stack alignment
+|.define HYBRID_SPAD, #32 // padding for stack alignment
#define SPAD 0x20
#define NR_SPAD 0x30