Skip to content

Commit 7537d21

Browse files
shqkingdstogov
authored andcommitted
Support failed JIT test case: assign_012.phpt
Support the case where arguments might be reference. Besides, another two test cases, assign_019.phpt and assign_032.phpt, would pass as well with this patch.
1 parent 1684d27 commit 7537d21

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

ext/opcache/jit/zend_jit_arm64.dasc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4828,7 +4828,12 @@ static int zend_jit_send_var(dasm_State **Dst, const zend_op *opline, const zend
48284828
if (opline->op1_type == IS_CV) {
48294829
zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1x, 0);
48304830

4831-
| brk #0 // TODO: test
4831+
| LOAD_ZVAL_ADDR FCARG1x, op1_addr
4832+
| ZVAL_DEREF FCARG1x, op1_info, TMP1w
4833+
| ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, val_addr, op1_info, ZREG_REG0, ZREG_REG2, ZREG_TMP1, ZREG_TMP2, ZREG_FPR0
4834+
| lsr REG0w, REG0w, #8
4835+
| and REG0w, REG0w, #0xff
4836+
| TRY_ADDREF op1_info, REG0w, REG2, TMP1
48324837
} else {
48334838
zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1x, 8);
48344839

0 commit comments

Comments
 (0)