Skip to content

Commit 57ed3bc

Browse files
committed
Add ARM support
1 parent 86376cf commit 57ed3bc

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

ext/opcache/jit/zend_jit_arm64.dasc

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12242,6 +12242,15 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1224212242
| SET_ZVAL_TYPE_INFO res_addr, IS_OBJECT_EX, TMP1w, TMP2
1224312243
| b >9
1224412244
|2:
12245+
| ldr REG0w, [FCARG1x, #offsetof(zval, u2.extra)]
12246+
| TST_32_WITH_CONST REG0w, IS_PROP_REINITABLE, TMP1w
12247+
| beq >6
12248+
| SET_ZVAL_PTR res_addr, FCARG1x, TMP1
12249+
| SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT, TMP1w, TMP2
12250+
| and REG0w, REG0w, #(~IS_PROP_REINITABLE)
12251+
| str REG0w, [FCARG1x, #offsetof(zval, u2.extra)]
12252+
| b >9
12253+
|6:
1224512254
| mov FCARG1x, FCARG2x
1224612255
| SET_EX_OPLINE opline, REG0
1224712256
| EXT_CALL zend_readonly_property_modification_error, REG0
@@ -12295,6 +12304,16 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1229512304
| b >9
1229612305
|.cold_code
1229712306
|4:
12307+
| ldr REG0w, [FCARG1x, #(prop_info->offset + offsetof(zval, u2.extra))]
12308+
| TST_32_WITH_CONST REG0w, IS_PROP_REINITABLE, TMP1w
12309+
| beq >6
12310+
| LOAD_ZVAL_ADDR FCARG1x, prop_addr
12311+
| SET_ZVAL_PTR res_addr, FCARG1x, TMP1
12312+
| SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT, TMP1w, TMP2
12313+
| and REG0w, REG0w, #(~IS_PROP_REINITABLE)
12314+
| str REG0w, [FCARG1x, #(prop_info->offset + offsetof(zval, u2.extra))]
12315+
| b >9
12316+
|6:
1229812317
| LOAD_ADDR FCARG1x, prop_info
1229912318
| SET_EX_OPLINE opline, REG0
1230012319
| EXT_CALL zend_readonly_property_modification_error, REG0

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12988,8 +12988,8 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1298812988
| jz >6
1298912989
| SET_ZVAL_PTR res_addr, FCARG1a
1299012990
| SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT
12991-
| and edx, ~IS_PROP_REINITABLE
12992-
| mov dword [FCARG1a + offsetof(zval, u2.extra)], edx
12991+
| and eax, ~IS_PROP_REINITABLE
12992+
| mov dword [FCARG1a + offsetof(zval, u2.extra)], eax
1299312993
| jmp >9
1299412994
|6:
1299512995
| mov FCARG1a, FCARG2a
@@ -13059,8 +13059,8 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1305913059
| LOAD_ZVAL_ADDR r0, prop_addr
1306013060
| SET_ZVAL_PTR res_addr, r0
1306113061
| SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT
13062-
| and edx, ~IS_PROP_REINITABLE
13063-
| mov dword [FCARG1a + prop_info->offset + offsetof(zval, u2.extra)], edx
13062+
| and eax, ~IS_PROP_REINITABLE
13063+
| mov dword [FCARG1a + prop_info->offset + offsetof(zval, u2.extra)], eax
1306413064
| jmp >9
1306513065
|6:
1306613066
| LOAD_ADDR FCARG1a, prop_info

0 commit comments

Comments
 (0)