com php-src: Prevent incorrect optimization: ext/opcache/jit/ze nd_jit_x86.dasc
| From: | Dmitry Stogov | Date: | Tue, 28 Jul 2020 16:02:08 +0000 |
| Subject: | com php-src: Prevent incorrect optimization: ext/opcache/jit/ze nd_jit_x86.dasc | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-112410@lists.php.net to get a copy of this message | ||
Commit: 251e667488fffa39f900c686a7df862aeade176b
Author: Dmitry Stogov <dmitry@zend.com> Tue, 28 Jul 2020 19:02:08 +0300
Parents: ac0da090ae25b370721f2d0b26e5d60c61f1c93b
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=251e667488fffa39f900c686a7df862aeade176b
Log:
Prevent incorrect optimization
Changed paths:
M ext/opcache/jit/zend_jit_x86.dasc
Diff:
diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc
index 9229b278f1..0c8d847dec 100644
--- a/ext/opcache/jit/zend_jit_x86.dasc
+++ b/ext/opcache/jit/zend_jit_x86.dasc
@@ -4083,7 +4083,8 @@ static int zend_jit_math_double_long(dasm_State **Dst,
{
zend_reg result_reg;
- if (zend_is_commutative(opcode)) {
+ if (zend_is_commutative(opcode)
+ && (Z_MODE(res_addr) != IS_REG || Z_MODE(op1_addr) != IS_REG || Z_REG(res_addr) !=
Z_REG(op1_addr))) {
if (Z_MODE(res_addr) == IS_REG) {
result_reg = Z_REG(res_addr);
} else {