@@ -4472,8 +4472,17 @@ static int zend_jit_math(dasm_State **Dst, const zend_op *opline, uint32_t op1_i
4472
4472
4473
4473
static int zend_jit_add_arrays(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr, uint32_t op2_info, zend_jit_addr op2_addr, zend_jit_addr res_addr)
4474
4474
{
4475
- | GET_ZVAL_LVAL ZREG_FCARG1, op1_addr, TMP1
4476
- | GET_ZVAL_LVAL ZREG_FCARG2, op2_addr, TMP1
4475
+ if (Z_MODE(op2_addr) != IS_MEM_ZVAL || Z_REG(op2_addr) != ZREG_FCARG1) {
4476
+ | GET_ZVAL_LVAL ZREG_FCARG1, op1_addr, TMP1
4477
+ | GET_ZVAL_LVAL ZREG_FCARG2, op2_addr, TMP1
4478
+ } else if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != ZREG_FCARG1) {
4479
+ | GET_ZVAL_LVAL ZREG_FCARG2, op2_addr, TMP1
4480
+ | GET_ZVAL_LVAL ZREG_FCARG1, op1_addr, TMP1
4481
+ } else {
4482
+ | GET_ZVAL_LVAL ZREG_REG0, op2_addr, TMP1
4483
+ | GET_ZVAL_LVAL ZREG_FCARG1, op1_addr, TMP1
4484
+ | mov FCARG2x, REG0
4485
+ }
4477
4486
| EXT_CALL zend_jit_add_arrays_helper, REG0
4478
4487
| SET_ZVAL_PTR res_addr, RETVALx, TMP1
4479
4488
| SET_ZVAL_TYPE_INFO res_addr, IS_ARRAY_EX, TMP1w, TMP2
0 commit comments