From 28cca5d451b2f9f4e655c1e53e233a4e039b653c Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 13 Oct 2021 14:51:34 +0300 Subject: [PATCH] JIT: Fixed incorrect FETCH_OBJ_W code for typed property (ARM64 part) --- ext/opcache/jit/zend_jit_arm64.dasc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ext/opcache/jit/zend_jit_arm64.dasc b/ext/opcache/jit/zend_jit_arm64.dasc index 0543e5e3e84..8eb811888b9 100644 --- a/ext/opcache/jit/zend_jit_arm64.dasc +++ b/ext/opcache/jit/zend_jit_arm64.dasc @@ -12147,7 +12147,11 @@ static int zend_jit_fetch_obj(dasm_State **Dst, |1: | ldr TMP1w, [FCARG2x, #offsetof(zend_property_info, flags)] | tst TMP1w, #ZEND_ACC_READONLY - | beq >3 + if (flags) { + | beq >3 + } else { + | beq >4 + } | IF_NOT_TYPE REG2w, IS_OBJECT_EX, >2 | GET_Z_PTR REG2, FCARG1x | GC_ADDREF REG2, TMP1w @@ -12173,6 +12177,7 @@ static int zend_jit_fetch_obj(dasm_State **Dst, ZEND_ASSERT(flags == 0); } |.code + |4: } } else { prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1, prop_info->offset);