Skip to content

Commit fe4c9e0

Browse files
committed
Load type rather than type_info
To allow direct comparison.
1 parent 35a67d7 commit fe4c9e0

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

ext/opcache/jit/zend_jit_arm64.dasc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11825,7 +11825,7 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1182511825
}
1182611826
}
1182711827
| add TMP1, FCARG1x, REG0
11828-
| ldr REG2w, [TMP1, #offsetof(zval,u1.type_info)]
11828+
| ldrb REG2w, [TMP1, #offsetof(zval,u1.v.type)]
1182911829
| IF_UNDEF REG2w, >5
1183011830
| mov FCARG1x, TMP1
1183111831
prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1x, 0);
@@ -11868,7 +11868,7 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1186811868
}
1186911869
} else {
1187011870
prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1x, prop_info->offset);
11871-
| MEM_ACCESS_32_WITH_UOFFSET ldr, REG2w, FCARG1x, (prop_info->offset + offsetof(zval,u1.type_info)), TMP1
11871+
| MEM_ACCESS_8_WITH_UOFFSET ldrb, REG2w, FCARG1x, (prop_info->offset + offsetof(zval,u1.v.type)), TMP1
1187211872
if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
1187311873
if (opline->opcode == ZEND_FETCH_OBJ_W || !(res_info & MAY_BE_GUARD) || !JIT_G(current_frame)) {
1187411874
/* perform IS_UNDEF check only after result type guard (during deoptimization) */
@@ -11919,8 +11919,7 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1191911919
|.code
1192011920
}
1192111921
} else if (flags == ZEND_FETCH_REF) {
11922-
| GET_LOW_8BITS TMP1w, REG2w
11923-
| IF_TYPE TMP1w, IS_REFERENCE, >1
11922+
| IF_TYPE REG2w, IS_REFERENCE, >1
1192411923
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
1192511924
| LOAD_ADDR FCARG2x, prop_info
1192611925
} else {

0 commit comments

Comments
 (0)