Skip to content

Commit 77bf144

Browse files
committed
Inline hot parts of bitwise instructions into hybrid VM
1 parent 7232779 commit 77bf144

File tree

4 files changed

+66
-82
lines changed

4 files changed

+66
-82
lines changed

Zend/zend_vm_def.h

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ ZEND_VM_HELPER(zend_bw_or_helper, ANY, ANY, zval *op_1, zval *op_2)
801801
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
802802
}
803803

804-
ZEND_VM_COLD_CONSTCONST_HANDLER(9, ZEND_BW_OR, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE))
804+
ZEND_VM_HOT_NOCONSTCONST_HANDLER(9, ZEND_BW_OR, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE))
805805
{
806806
USE_OPLINE
807807
zval *op1, *op2;
@@ -840,7 +840,7 @@ ZEND_VM_HELPER(zend_bw_and_helper, ANY, ANY, zval *op_1, zval *op_2)
840840
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
841841
}
842842

843-
ZEND_VM_COLD_CONSTCONST_HANDLER(10, ZEND_BW_AND, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE))
843+
ZEND_VM_HOT_NOCONSTCONST_HANDLER(10, ZEND_BW_AND, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE))
844844
{
845845
USE_OPLINE
846846
zval *op1, *op2;
@@ -879,7 +879,7 @@ ZEND_VM_HELPER(zend_bw_xor_helper, ANY, ANY, zval *op_1, zval *op_2)
879879
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
880880
}
881881

882-
ZEND_VM_COLD_CONSTCONST_HANDLER(11, ZEND_BW_XOR, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE))
882+
ZEND_VM_HOT_NOCONSTCONST_HANDLER(11, ZEND_BW_XOR, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE))
883883
{
884884
USE_OPLINE
885885
zval *op1, *op2;
@@ -911,7 +911,20 @@ ZEND_VM_COLD_CONSTCONST_HANDLER(15, ZEND_BOOL_XOR, CONST|TMPVAR|CV, CONST|TMPVAR
911911
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
912912
}
913913

914-
ZEND_VM_COLD_CONST_HANDLER(13, ZEND_BW_NOT, CONST|TMPVAR|CV, ANY)
914+
ZEND_VM_HELPER(zend_bw_not_helper, ANY, ANY, zval *op_1)
915+
{
916+
USE_OPLINE
917+
918+
SAVE_OPLINE();
919+
if (UNEXPECTED(Z_TYPE_P(op_1) == IS_UNDEF)) {
920+
op_1 = ZVAL_UNDEFINED_OP1();
921+
}
922+
bitwise_not_function(EX_VAR(opline->result.var), op_1);
923+
FREE_OP1();
924+
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
925+
}
926+
927+
ZEND_VM_HOT_NOCONST_HANDLER(13, ZEND_BW_NOT, CONST|TMPVARCV, ANY)
915928
{
916929
USE_OPLINE
917930
zval *op1;
@@ -922,13 +935,7 @@ ZEND_VM_COLD_CONST_HANDLER(13, ZEND_BW_NOT, CONST|TMPVAR|CV, ANY)
922935
ZEND_VM_NEXT_OPCODE();
923936
}
924937

925-
SAVE_OPLINE();
926-
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
927-
op1 = ZVAL_UNDEFINED_OP1();
928-
}
929-
bitwise_not_function(EX_VAR(opline->result.var), op1);
930-
FREE_OP1();
931-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
938+
ZEND_VM_DISPATCH_TO_HELPER(zend_bw_not_helper, op_1, op1);
932939
}
933940

934941
ZEND_VM_COLD_CONST_HANDLER(14, ZEND_BOOL_NOT, CONST|TMPVAR|CV, ANY)

Zend/zend_vm_execute.h

Lines changed: 44 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,19 @@ static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_bw_xor_helpe
727727
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
728728
}
729729

730+
static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_bw_not_helper_SPEC(zval *op_1 ZEND_OPCODE_HANDLER_ARGS_DC)
731+
{
732+
USE_OPLINE
733+
734+
SAVE_OPLINE();
735+
if (UNEXPECTED(Z_TYPE_P(op_1) == IS_UNDEF)) {
736+
op_1 = ZVAL_UNDEFINED_OP1();
737+
}
738+
bitwise_not_function(EX_VAR(opline->result.var), op_1);
739+
FREE_OP(opline->op1_type, opline->op1.var);
740+
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
741+
}
742+
730743
static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
731744
{
732745
USE_OPLINE
@@ -3201,13 +3214,7 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CONST
32013214
ZEND_VM_NEXT_OPCODE();
32023215
}
32033216

3204-
SAVE_OPLINE();
3205-
if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
3206-
op1 = ZVAL_UNDEFINED_OP1();
3207-
}
3208-
bitwise_not_function(EX_VAR(opline->result.var), op1);
3209-
3210-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
3217+
ZEND_VM_TAIL_CALL(zend_bw_not_helper_SPEC(op1 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
32113218
}
32123219

32133220
static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -10733,6 +10740,20 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZE
1073310740
ZEND_VM_RETURN();
1073410741
}
1073510742

10743+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
10744+
{
10745+
USE_OPLINE
10746+
zval *op1;
10747+
10748+
op1 = EX_VAR(opline->op1.var);
10749+
if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
10750+
ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1));
10751+
ZEND_VM_NEXT_OPCODE();
10752+
}
10753+
10754+
ZEND_VM_TAIL_CALL(zend_bw_not_helper_SPEC(op1 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
10755+
}
10756+
1073610757
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1073710758
{
1073810759
USE_OPLINE
@@ -11217,7 +11238,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUA
1121711238
ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
1121811239
}
1121911240

11220-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
11241+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1122111242
{
1122211243
USE_OPLINE
1122311244
zval *op1, *op2;
@@ -11235,7 +11256,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_CONST_HAND
1123511256
ZEND_VM_TAIL_CALL(zend_bw_or_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
1123611257
}
1123711258

11238-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
11259+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1123911260
{
1124011261
USE_OPLINE
1124111262
zval *op1, *op2;
@@ -11253,7 +11274,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_CONST_HAN
1125311274
ZEND_VM_TAIL_CALL(zend_bw_and_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
1125411275
}
1125511276

11256-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
11277+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1125711278
{
1125811279
USE_OPLINE
1125911280
zval *op1, *op2;
@@ -12196,7 +12217,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUA
1219612217
ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
1219712218
}
1219812219

12199-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
12220+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1220012221
{
1220112222
USE_OPLINE
1220212223
zval *op1, *op2;
@@ -12214,7 +12235,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_H
1221412235
ZEND_VM_TAIL_CALL(zend_bw_or_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
1221512236
}
1221612237

12217-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
12238+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1221812239
{
1221912240
USE_OPLINE
1222012241
zval *op1, *op2;
@@ -12232,7 +12253,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_
1223212253
ZEND_VM_TAIL_CALL(zend_bw_and_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
1223312254
}
1223412255

12235-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
12256+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1223612257
{
1223712258
USE_OPLINE
1223812259
zval *op1, *op2;
@@ -12672,26 +12693,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_
1267212693
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
1267312694
}
1267412695

12675-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
12676-
{
12677-
USE_OPLINE
12678-
zval *op1;
12679-
12680-
op1 = _get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC);
12681-
if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
12682-
ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1));
12683-
ZEND_VM_NEXT_OPCODE();
12684-
}
12685-
12686-
SAVE_OPLINE();
12687-
if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
12688-
op1 = ZVAL_UNDEFINED_OP1();
12689-
}
12690-
bitwise_not_function(EX_VAR(opline->result.var), op1);
12691-
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
12692-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
12693-
}
12694-
1269512696
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1269612697
{
1269712698
USE_OPLINE
@@ -35127,26 +35128,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(Z
3512735128
ZEND_VM_RETURN();
3512835129
}
3512935130

35130-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
35131-
{
35132-
USE_OPLINE
35133-
zval *op1;
35134-
35135-
op1 = EX_VAR(opline->op1.var);
35136-
if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
35137-
ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1));
35138-
ZEND_VM_NEXT_OPCODE();
35139-
}
35140-
35141-
SAVE_OPLINE();
35142-
if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
35143-
op1 = ZVAL_UNDEFINED_OP1();
35144-
}
35145-
bitwise_not_function(EX_VAR(opline->result.var), op1);
35146-
35147-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
35148-
}
35149-
3515035131
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
3515135132
{
3515235133
USE_OPLINE
@@ -48793,10 +48774,10 @@ ZEND_API void execute_ex(zend_execute_data *ex)
4879348774
(void*)&&ZEND_NULL_LABEL,
4879448775
(void*)&&ZEND_POW_SPEC_CV_CV_LABEL,
4879548776
(void*)&&ZEND_BW_NOT_SPEC_CONST_LABEL,
48796-
(void*)&&ZEND_BW_NOT_SPEC_TMPVAR_LABEL,
48797-
(void*)&&ZEND_BW_NOT_SPEC_TMPVAR_LABEL,
48777+
(void*)&&ZEND_BW_NOT_SPEC_TMPVARCV_LABEL,
48778+
(void*)&&ZEND_BW_NOT_SPEC_TMPVARCV_LABEL,
4879848779
(void*)&&ZEND_NULL_LABEL,
48799-
(void*)&&ZEND_BW_NOT_SPEC_CV_LABEL,
48780+
(void*)&&ZEND_BW_NOT_SPEC_TMPVARCV_LABEL,
4880048781
(void*)&&ZEND_BOOL_NOT_SPEC_CONST_LABEL,
4880148782
(void*)&&ZEND_BOOL_NOT_SPEC_TMPVAR_LABEL,
4880248783
(void*)&&ZEND_BOOL_NOT_SPEC_TMPVAR_LABEL,
@@ -52814,6 +52795,10 @@ ZEND_API void execute_ex(zend_execute_data *ex)
5281452795
VM_TRACE(ZEND_YIELD_SPEC_CONST_CV)
5281552796
ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
5281652797
HYBRID_BREAK();
52798+
HYBRID_CASE(ZEND_BW_NOT_SPEC_TMPVARCV):
52799+
VM_TRACE(ZEND_BW_NOT_SPEC_TMPVARCV)
52800+
ZEND_BW_NOT_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
52801+
HYBRID_BREAK();
5281752802
HYBRID_CASE(ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV):
5281852803
VM_TRACE(ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV)
5281952804
ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -53230,10 +53215,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
5323053215
VM_TRACE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV)
5323153216
ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
5323253217
HYBRID_BREAK();
53233-
HYBRID_CASE(ZEND_BW_NOT_SPEC_TMPVAR):
53234-
VM_TRACE(ZEND_BW_NOT_SPEC_TMPVAR)
53235-
ZEND_BW_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
53236-
HYBRID_BREAK();
5323753218
HYBRID_CASE(ZEND_BOOL_NOT_SPEC_TMPVAR):
5323853219
VM_TRACE(ZEND_BOOL_NOT_SPEC_TMPVAR)
5323953220
ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -54880,10 +54861,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
5488054861
VM_TRACE(ZEND_YIELD_SPEC_UNUSED_CV)
5488154862
ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
5488254863
HYBRID_BREAK();
54883-
HYBRID_CASE(ZEND_BW_NOT_SPEC_CV):
54884-
VM_TRACE(ZEND_BW_NOT_SPEC_CV)
54885-
ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
54886-
HYBRID_BREAK();
5488754864
HYBRID_CASE(ZEND_BOOL_NOT_SPEC_CV):
5488854865
VM_TRACE(ZEND_BOOL_NOT_SPEC_CV)
5488954866
ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -56329,10 +56306,10 @@ void zend_vm_init(void)
5632956306
ZEND_NULL_HANDLER,
5633056307
ZEND_POW_SPEC_CV_CV_HANDLER,
5633156308
ZEND_BW_NOT_SPEC_CONST_HANDLER,
56332-
ZEND_BW_NOT_SPEC_TMPVAR_HANDLER,
56333-
ZEND_BW_NOT_SPEC_TMPVAR_HANDLER,
56309+
ZEND_BW_NOT_SPEC_TMPVARCV_HANDLER,
56310+
ZEND_BW_NOT_SPEC_TMPVARCV_HANDLER,
5633456311
ZEND_NULL_HANDLER,
56335-
ZEND_BW_NOT_SPEC_CV_HANDLER,
56312+
ZEND_BW_NOT_SPEC_TMPVARCV_HANDLER,
5633656313
ZEND_BOOL_NOT_SPEC_CONST_HANDLER,
5633756314
ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER,
5633856315
ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER,

Zend/zend_vm_handlers.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,9 @@
180180
_(298, ZEND_POW_SPEC_CV_TMPVAR) \
181181
_(300, ZEND_POW_SPEC_CV_CV) \
182182
_(301, ZEND_BW_NOT_SPEC_CONST) \
183-
_(302, ZEND_BW_NOT_SPEC_TMPVAR) \
184-
_(303, ZEND_BW_NOT_SPEC_TMPVAR) \
185-
_(305, ZEND_BW_NOT_SPEC_CV) \
183+
_(302, ZEND_BW_NOT_SPEC_TMPVARCV) \
184+
_(303, ZEND_BW_NOT_SPEC_TMPVARCV) \
185+
_(305, ZEND_BW_NOT_SPEC_TMPVARCV) \
186186
_(306, ZEND_BOOL_NOT_SPEC_CONST) \
187187
_(307, ZEND_BOOL_NOT_SPEC_TMPVAR) \
188188
_(308, ZEND_BOOL_NOT_SPEC_TMPVAR) \

Zend/zend_vm_opcodes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ static uint32_t zend_vm_opcodes_flags[195] = {
234234
0x80000b0b,
235235
0x80000b0b,
236236
0x00000707,
237-
0x00000007,
237+
0x0000000b,
238238
0x00000007,
239239
0x80000707,
240240
0x80000303,

0 commit comments

Comments
 (0)