@@ -14823,21 +14823,21 @@ static int zend_jit_fe_fetch(dasm_State **Dst, const zend_op *opline, uint32_t o
14823
14823
14824
14824
| // array = EX_VAR(opline->op1.var);
14825
14825
| // fe_ht = Z_ARRVAL_P(array);
14826
- | GET_ZVAL_PTR FCARG2a , op1_addr
14826
+ | GET_ZVAL_PTR FCARG1a , op1_addr
14827
14827
| // pos = Z_FE_POS_P(array);
14828
- | mov FCARG1d , dword [FP + opline->op1.var + offsetof(zval, u2.fe_pos)]
14828
+ | mov eax , dword [FP + opline->op1.var + offsetof(zval, u2.fe_pos)]
14829
14829
| // p = fe_ht->arData + pos;
14830
14830
|.if X64
14831
14831
|| ZEND_ASSERT(sizeof(Bucket) == 32);
14832
- | mov eax, FCARG1d
14833
- | shl r0 , 5
14832
+ | mov FCARG2d, eax
14833
+ | shl FCARG2a , 5
14834
14834
|.else
14835
- | imul r0, FCARG1a , sizeof(Bucket)
14835
+ | imul FCARG2a, r0 , sizeof(Bucket)
14836
14836
|.endif
14837
- | add r0 , aword [FCARG2a + offsetof(zend_array, arData)]
14837
+ | add FCARG2a , aword [FCARG1a + offsetof(zend_array, arData)]
14838
14838
|1:
14839
14839
| // if (UNEXPECTED(pos >= fe_ht->nNumUsed)) {
14840
- | cmp dword [FCARG2a + offsetof(zend_array, nNumUsed)], FCARG1d
14840
+ | cmp dword [FCARG1a + offsetof(zend_array, nNumUsed)], eax
14841
14841
| // ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
14842
14842
| // ZEND_VM_CONTINUE();
14843
14843
if (exit_addr) {
@@ -14850,16 +14850,16 @@ static int zend_jit_fe_fetch(dasm_State **Dst, const zend_op *opline, uint32_t o
14850
14850
| jbe =>target_label
14851
14851
}
14852
14852
| // pos++;
14853
- | add FCARG1d , 1
14853
+ | add eax , 1
14854
14854
| // value_type = Z_TYPE_INFO_P(value);
14855
14855
| // if (EXPECTED(value_type != IS_UNDEF)) {
14856
14856
if (!exit_addr || exit_opcode == ZEND_JMP) {
14857
- | IF_NOT_Z_TYPE r0 , IS_UNDEF, >3
14857
+ | IF_NOT_Z_TYPE FCARG2a , IS_UNDEF, >3
14858
14858
} else {
14859
- | IF_NOT_Z_TYPE r0 , IS_UNDEF, &exit_addr
14859
+ | IF_NOT_Z_TYPE FCARG2a , IS_UNDEF, &exit_addr
14860
14860
}
14861
14861
| // p++;
14862
- | add r0 , sizeof(Bucket)
14862
+ | add FCARG2a , sizeof(Bucket)
14863
14863
| jmp <1
14864
14864
|3:
14865
14865
@@ -14868,29 +14868,28 @@ static int zend_jit_fe_fetch(dasm_State **Dst, const zend_op *opline, uint32_t o
14868
14868
zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var);
14869
14869
uint32_t val_info;
14870
14870
14871
- | mov FCARG2a, r0
14872
14871
| // Z_FE_POS_P(array) = pos + 1;
14873
- | mov dword [FP + opline->op1.var + offsetof(zval, u2.fe_pos)], FCARG1d
14872
+ | mov dword [FP + opline->op1.var + offsetof(zval, u2.fe_pos)], eax
14874
14873
14875
14874
if (RETURN_VALUE_USED(opline)) {
14876
14875
zend_jit_addr res_addr = RES_ADDR();
14877
14876
14878
14877
if ((op1_info & MAY_BE_ARRAY_KEY_LONG)
14879
14878
&& (op1_info & MAY_BE_ARRAY_KEY_STRING)) {
14880
14879
| // if (!p->key) {
14881
- | cmp aword [r0 + offsetof(Bucket, key)], 0
14880
+ | cmp aword [FCARG2a + offsetof(Bucket, key)], 0
14882
14881
| jz >2
14883
14882
}
14884
14883
if (op1_info & MAY_BE_ARRAY_KEY_STRING) {
14885
14884
| // ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key);
14886
- | mov FCARG1a , aword [r0 + offsetof(Bucket, key)]
14887
- | SET_ZVAL_PTR res_addr, FCARG1a
14888
- | test dword [FCARG1a + offsetof(zend_refcounted, gc.u.type_info)], IS_STR_INTERNED
14885
+ | mov r0 , aword [FCARG2a + offsetof(Bucket, key)]
14886
+ | SET_ZVAL_PTR res_addr, r0
14887
+ | test dword [r0 + offsetof(zend_refcounted, gc.u.type_info)], IS_STR_INTERNED
14889
14888
| jz >1
14890
14889
| SET_ZVAL_TYPE_INFO res_addr, IS_STRING
14891
14890
| jmp >3
14892
14891
|1:
14893
- | GC_ADDREF FCARG1a
14892
+ | GC_ADDREF r0
14894
14893
| SET_ZVAL_TYPE_INFO res_addr, IS_STRING_EX
14895
14894
14896
14895
if (op1_info & MAY_BE_ARRAY_KEY_LONG) {
@@ -14900,8 +14899,8 @@ static int zend_jit_fe_fetch(dasm_State **Dst, const zend_op *opline, uint32_t o
14900
14899
}
14901
14900
if (op1_info & MAY_BE_ARRAY_KEY_LONG) {
14902
14901
| // ZVAL_LONG(EX_VAR(opline->result.var), p->h);
14903
- | mov FCARG1a , aword [r0 + offsetof(Bucket, h)]
14904
- | SET_ZVAL_LVAL res_addr, FCARG1a
14902
+ | mov r0 , aword [FCARG2a + offsetof(Bucket, h)]
14903
+ | SET_ZVAL_LVAL res_addr, r0
14905
14904
| SET_ZVAL_TYPE_INFO res_addr, IS_LONG
14906
14905
}
14907
14906
|3:
0 commit comments