Skip to content

Commit 145aba5

Browse files
committed
Merge branch 'jit_match'
* jit_match: Support for CASE_STRICT JIT for MATCH and CASE_STRICT instructions
2 parents e999544 + 54fd1fc commit 145aba5

File tree

3 files changed

+214
-139
lines changed

3 files changed

+214
-139
lines changed

ext/opcache/jit/zend_jit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2633,6 +2633,7 @@ static int zend_jit(const zend_op_array *op_array, zend_ssa *ssa, const zend_op
26332633
}
26342634
case ZEND_IS_IDENTICAL:
26352635
case ZEND_IS_NOT_IDENTICAL:
2636+
case ZEND_CASE_STRICT:
26362637
if ((opline->result_type & IS_TMP_VAR)
26372638
&& (i + 1) <= end
26382639
&& ((opline+1)->opcode == ZEND_JMPZ

ext/opcache/jit/zend_jit_trace.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ static int zend_jit_trace_may_exit(const zend_op_array *op_array, const zend_op
257257
case ZEND_IS_SMALLER:
258258
case ZEND_IS_SMALLER_OR_EQUAL:
259259
case ZEND_CASE:
260+
case ZEND_CASE_STRICT:
260261
case ZEND_ISSET_ISEMPTY_CV:
261262
case ZEND_ISSET_ISEMPTY_VAR:
262263
case ZEND_ISSET_ISEMPTY_DIM_OBJ:
@@ -1423,6 +1424,7 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
14231424
case ZEND_CASE:
14241425
case ZEND_IS_IDENTICAL:
14251426
case ZEND_IS_NOT_IDENTICAL:
1427+
case ZEND_CASE_STRICT:
14261428
case ZEND_FETCH_DIM_R:
14271429
case ZEND_FETCH_DIM_IS:
14281430
case ZEND_BW_OR:
@@ -3733,6 +3735,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
37333735
goto done;
37343736
case ZEND_IS_IDENTICAL:
37353737
case ZEND_IS_NOT_IDENTICAL:
3738+
case ZEND_CASE_STRICT:
37363739
op1_info = OP1_INFO();
37373740
CHECK_OP1_TRACE_TYPE();
37383741
op2_info = OP2_INFO();

0 commit comments

Comments
 (0)