Skip to content

Commit e59d0a7

Browse files
committed
JIT: Fixed DASM_S_RANGE_VREG error
1 parent 13d1244 commit e59d0a7

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -979,7 +979,7 @@ static void* dasm_labels[zend_lb_MAX];
979979
|| if (Z_TYPE_P(zv) > IS_TRUE) {
980980
|| if (Z_TYPE_P(zv) == IS_DOUBLE) {
981981
|| zend_reg dst_reg = (Z_MODE(dst_addr) == IS_REG) ?
982-
|| Z_REG(dst_addr) : ((Z_MODE(res_addr) == IS_REG) ? Z_MODE(res_addr) : ZREG_XMM0);
982+
|| Z_REG(dst_addr) : ((Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0);
983983
|| if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
984984
|| if (CAN_USE_AVX()) {
985985
| vxorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)

ext/opcache/tests/jit/assign_044.phpt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
--TEST--
2+
JIT ASSIGN: DASM_S_RANGE_VREG error
3+
--INI--
4+
opcache.enable=1
5+
opcache.enable_cli=1
6+
opcache.file_update_protection=0
7+
opcache.jit_buffer_size=1M
8+
opcache.protect_memory=1
9+
--FILE--
10+
<?php
11+
function test($x) {
12+
if ($x) {
13+
unknown($value);
14+
}
15+
var_dump($value = INF);
16+
}
17+
test(false);
18+
?>
19+
--EXPECT--
20+
float(INF)
21+

0 commit comments

Comments
 (0)