Skip to content

Commit 43e58d3

Browse files
committed
Fixed incorrect assumption about sizeof(zend_reference)
1 parent 4ff2122 commit 43e58d3

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1485,7 +1485,7 @@ static void* dasm_labels[zend_lb_MAX];
14851485
|| }
14861486
|.endmacro
14871487

1488-
|.macro EFREE_REG_24
1488+
|.macro EFREE_REG_REFERENCE
14891489
||#if ZEND_DEBUG
14901490
| xor FCARG2a, FCARG2a // filename
14911491
| .if X64WIN
@@ -1508,16 +1508,16 @@ static void* dasm_labels[zend_lb_MAX];
15081508
| .endif
15091509
||#else
15101510
||#ifdef HAVE_BUILTIN_CONSTANT_P
1511-
| EXT_CALL _efree_24, r0
1511+
| EXT_CALL _efree_32, r0
15121512
||#else
15131513
| EXT_CALL _efree, r0
15141514
||#endif
15151515
||#endif
15161516
|.endmacro
15171517

1518-
|.macro EFREE_24, ptr
1518+
|.macro EFREE_REFERENCE, ptr
15191519
| mov FCARG1a, ptr
1520-
| EFREE_REG_24
1520+
| EFREE_REG_REFERENCE
15211521
|.endmacro
15221522

15231523
|.macro EMALLOC, size, op_array, opline
@@ -1545,8 +1545,8 @@ static void* dasm_labels[zend_lb_MAX];
15451545
| .endif
15461546
||#else
15471547
||#ifdef HAVE_BUILTIN_CONSTANT_P
1548-
|| if (size == 24) {
1549-
| EXT_CALL _emalloc_24, r0
1548+
|| if (size > 24 && size <= 32) {
1549+
| EXT_CALL _emalloc_32, r0
15501550
|| } else {
15511551
| mov FCARG1a, size
15521552
| EXT_CALL _emalloc, r0
@@ -5781,7 +5781,7 @@ static int zend_jit_simple_assign(dasm_State **Dst,
57815781
if (save_r1) {
57825782
| mov aword T1, FCARG1a // save
57835783
}
5784-
| EFREE_24 aword [Ra(Z_REG(val_addr))+Z_OFFSET(val_addr)]
5784+
| EFREE_REFERENCE aword [Ra(Z_REG(val_addr))+Z_OFFSET(val_addr)]
57855785
if (save_r1) {
57865786
| mov FCARG1a, aword T1 // restore
57875787
}
@@ -10366,7 +10366,7 @@ static int zend_jit_send_var(dasm_State **Dst, const zend_op *opline, const zend
1036610366
| GC_ADDREF r2
1036710367
| jmp >2
1036810368
|1:
10369-
| EFREE_REG_24
10369+
| EFREE_REG_REFERENCE
1037010370
| jmp >2
1037110371
|.code
1037210372
| ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
@@ -11237,7 +11237,7 @@ static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_o
1123711237
| jmp >9
1123811238
}
1123911239
|2:
11240-
| EFREE_24 r0
11240+
| EFREE_REFERENCE r0
1124111241
if (jit_return_label >= 0) {
1124211242
| jmp =>jit_return_label
1124311243
} else {

0 commit comments

Comments
 (0)