ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_equal_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC)
+{
+ USE_OPLINE
+
+ SAVE_OPLINE();
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) {
+ op_1 = ZVAL_UNDEFINED_OP1();
+ }
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) {
+ op_2 = ZVAL_UNDEFINED_OP2();
+ }
+ compare_function(EX_VAR(opline->result.var), op_1, op_2);
+ if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_1);
+ }
+ if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_2);
+ }
+ if (UNEXPECTED(EG(exception))) {
+ HANDLE_EXCEPTION();
+ }
+ if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+}
+
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_not_equal_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC)
+{
+ USE_OPLINE
+
+ SAVE_OPLINE();
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) {
+ op_1 = ZVAL_UNDEFINED_OP1();
+ }
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) {
+ op_2 = ZVAL_UNDEFINED_OP2();
+ }
+ compare_function(EX_VAR(opline->result.var), op_1, op_2);
+ if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_1);
+ }
+ if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_2);
+ }
+ if (UNEXPECTED(EG(exception))) {
+ HANDLE_EXCEPTION();
+ }
+ if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+}
+
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_smaller_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC)
+{
+ USE_OPLINE
+
+ SAVE_OPLINE();
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) {
+ op_1 = ZVAL_UNDEFINED_OP1();
+ }
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) {
+ op_2 = ZVAL_UNDEFINED_OP2();
+ }
+ compare_function(EX_VAR(opline->result.var), op_1, op_2);
+ if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_1);
+ }
+ if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_2);
+ }
+ if (UNEXPECTED(EG(exception))) {
+ HANDLE_EXCEPTION();
+ }
+ if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+}
+
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_smaller_or_equal_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC)
+{
+ USE_OPLINE
+
+ SAVE_OPLINE();
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) {
+ op_1 = ZVAL_UNDEFINED_OP1();
+ }
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) {
+ op_2 = ZVAL_UNDEFINED_OP2();
+ }
+ compare_function(EX_VAR(opline->result.var), op_1, op_2);
+ if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_1);
+ }
+ if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_2);
+ }
+ if (UNEXPECTED(EG(exception))) {
+ HANDLE_EXCEPTION();
+ }
+ if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+}
+
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_bw_or_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC)
{
USE_OPLINE
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_case_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC)
+{
+ USE_OPLINE
+
+ SAVE_OPLINE();
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) {
+ op_1 = ZVAL_UNDEFINED_OP1();
+ }
+ if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) {
+ op_2 = ZVAL_UNDEFINED_OP2();
+ }
+ compare_function(EX_VAR(opline->result.var), op_1, op_2);
+ if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) {
+ zval_ptr_dtor_nogc(op_2);
+ }
+ if (UNEXPECTED(EG(exception))) {
+ HANDLE_EXCEPTION();
+ }
+ if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+}
+
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_UNPACK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
op1 = RT_CONSTANT(opline, opline->op1);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CONST == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto is_equal_true;
+is_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_equal_false;
+is_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-is_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = RT_CONSTANT(opline, opline->op1);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CONST == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) {
- goto is_not_equal_true;
+is_not_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_not_equal_false;
+is_not_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
-is_not_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_not_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = RT_CONSTANT(opline, opline->op1);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CONST == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
+is_smaller_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_smaller_false;
+is_smaller_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
goto is_smaller_double;
}
}
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = RT_CONSTANT(opline, opline->op1);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CONST == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
+is_smaller_or_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_smaller_or_equal_false;
+is_smaller_or_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
goto is_smaller_or_equal_double;
}
}
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval *op1, *op2;
+ double d1, d2;
+
+ op1 = RT_CONSTANT(opline, opline->op1);
+ op2 = EX_VAR(opline->op2.var);
+ if (ZEND_VM_SPEC && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
+is_smaller_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+is_smaller_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = (double)Z_LVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+ goto is_smaller_double;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+is_smaller_double:
+ if (d1 < d2) {
+ goto is_smaller_true;
+ } else {
+ goto is_smaller_false;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = (double)Z_LVAL_P(op2);
+ goto is_smaller_double;
+ }
+ }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+}
+
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval *op1, *op2;
+ double d1, d2;
+
+ op1 = RT_CONSTANT(opline, opline->op1);
+ op2 = EX_VAR(opline->op2.var);
+ if (ZEND_VM_SPEC && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
+is_smaller_or_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+is_smaller_or_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = (double)Z_LVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+ goto is_smaller_or_equal_double;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+is_smaller_or_equal_double:
+ if (d1 <= d2) {
+ goto is_smaller_or_equal_true;
+ } else {
+ goto is_smaller_or_equal_false;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = (double)Z_LVAL_P(op2);
+ goto is_smaller_or_equal_double;
+ }
+ }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+}
+
static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
}
}
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op2;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = RT_CONSTANT(opline, opline->op1);
- op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op2;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = RT_CONSTANT(opline, opline->op1);
- op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
}
}
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
- zval *op1, *op2;
- double d1, d2;
-
- op1 = RT_CONSTANT(opline, opline->op1);
- op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
- zval *op1, *op2;
- double d1, d2;
-
- op1 = RT_CONSTANT(opline, opline->op1);
- op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval *op1, *op2;
+ double d1, d2;
+
+ op1 = EX_VAR(opline->op1.var);
+ op2 = RT_CONSTANT(opline, opline->op2);
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
+is_smaller_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+is_smaller_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = (double)Z_LVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+ goto is_smaller_double;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+is_smaller_double:
+ if (d1 < d2) {
+ goto is_smaller_true;
+ } else {
+ goto is_smaller_false;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = (double)Z_LVAL_P(op2);
+ goto is_smaller_double;
+ }
+ }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+}
+
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval *op1, *op2;
+ double d1, d2;
+
+ op1 = EX_VAR(opline->op1.var);
+ op2 = RT_CONSTANT(opline, opline->op2);
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
+is_smaller_or_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+is_smaller_or_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = (double)Z_LVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+ goto is_smaller_or_equal_double;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+is_smaller_or_equal_double:
+ if (d1 <= d2) {
+ goto is_smaller_or_equal_true;
+ } else {
+ goto is_smaller_or_equal_false;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = (double)Z_LVAL_P(op2);
+ goto is_smaller_or_equal_double;
+ }
+ }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+}
+
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval *op1, *op2;
+ double d1, d2;
+
+ op1 = EX_VAR(opline->op1.var);
+ op2 = EX_VAR(opline->op2.var);
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
+is_smaller_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+is_smaller_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = (double)Z_LVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+ goto is_smaller_double;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+is_smaller_double:
+ if (d1 < d2) {
+ goto is_smaller_true;
+ } else {
+ goto is_smaller_false;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = (double)Z_LVAL_P(op2);
+ goto is_smaller_double;
+ }
+ }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+}
+
+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ zval *op1, *op2;
+ double d1, d2;
+
+ op1 = EX_VAR(opline->op1.var);
+ op2 = EX_VAR(opline->op2.var);
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
+is_smaller_or_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+is_smaller_or_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = (double)Z_LVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+ goto is_smaller_or_equal_double;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
+ if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = Z_DVAL_P(op2);
+is_smaller_or_equal_double:
+ if (d1 <= d2) {
+ goto is_smaller_or_equal_true;
+ } else {
+ goto is_smaller_or_equal_false;
+ }
+ } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
+ d1 = Z_DVAL_P(op1);
+ d2 = (double)Z_LVAL_P(op2);
+ goto is_smaller_or_equal_double;
+ }
+ }
+ ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+}
+
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto is_equal_true;
+is_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_equal_false;
+is_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-is_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) {
- goto is_not_equal_true;
+is_not_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_not_equal_false;
+is_not_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
-is_not_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_not_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op1;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
- op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op1;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
- op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto case_true;
+case_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto case_false;
+case_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-case_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-case_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_case_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto is_equal_true;
+is_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_equal_false;
+is_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-is_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) {
- goto is_not_equal_true;
+is_not_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_not_equal_false;
+is_not_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
-is_not_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_not_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op1, free_op2;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
- op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op1, free_op2;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
- op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto case_true;
+case_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto case_false;
+case_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-case_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-case_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_case_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
}
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op1;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
- op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op1;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
- op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
- zval_ptr_dtor_nogc(free_op1);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto case_true;
+case_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto case_false;
+case_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-case_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-case_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_case_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = EX_VAR(opline->op1.var);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CV == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto is_equal_true;
+is_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_equal_false;
+is_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-is_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = EX_VAR(opline->op1.var);
op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CV == IS_CONST && IS_CONST == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) {
- goto is_not_equal_true;
+is_not_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_not_equal_false;
+is_not_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
-is_not_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_not_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
- zval *op1, *op2;
- double d1, d2;
-
- op1 = EX_VAR(opline->op1.var);
- op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
- zval *op1, *op2;
- double d1, d2;
-
- op1 = EX_VAR(opline->op1.var);
- op2 = RT_CONSTANT(opline, opline->op2);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = EX_VAR(opline->op1.var);
op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto is_equal_true;
+is_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_equal_false;
+is_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-is_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = EX_VAR(opline->op1.var);
op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) {
- goto is_not_equal_true;
+is_not_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_not_equal_false;
+is_not_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
-is_not_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_not_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op2;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = EX_VAR(opline->op1.var);
- op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
- zend_free_op free_op2;
- zval *op1, *op2;
- double d1, d2;
-
- op1 = EX_VAR(opline->op1.var);
- op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
- zval_ptr_dtor_nogc(free_op2);
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = EX_VAR(opline->op1.var);
op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CV == IS_CONST && IS_CV == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) {
- goto is_equal_true;
+is_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_equal_false;
+is_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) {
-is_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
op1 = EX_VAR(opline->op1.var);
op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
+ if (ZEND_VM_SPEC && IS_CV == IS_CONST && IS_CV == IS_CONST) {
+ /* pass */
+ } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) {
if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) {
if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) {
- goto is_not_equal_true;
+is_not_equal_true:
+ ZEND_VM_SMART_BRANCH_TRUE();
+ ZVAL_TRUE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
} else {
- goto is_not_equal_false;
+is_not_equal_false:
+ ZEND_VM_SMART_BRANCH_FALSE();
+ ZVAL_FALSE(EX_VAR(opline->result.var));
+ ZEND_VM_NEXT_OPCODE();
}
} else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) {
d1 = (double)Z_LVAL_P(op1);
}
}
}
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) {
-is_not_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_not_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
- zval *op1, *op2;
- double d1, d2;
-
- op1 = EX_VAR(opline->op1.var);
- op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_double:
- if (d1 < d2) {
- goto is_smaller_true;
- } else {
- goto is_smaller_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) {
-is_smaller_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
-}
-
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
- USE_OPLINE
-
- zval *op1, *op2;
- double d1, d2;
-
- op1 = EX_VAR(opline->op1.var);
- op2 = EX_VAR(opline->op2.var);
- if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = (double)Z_LVAL_P(op1);
- d2 = Z_DVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) {
- if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) {
- d1 = Z_DVAL_P(op1);
- d2 = Z_DVAL_P(op2);
-is_smaller_or_equal_double:
- if (d1 <= d2) {
- goto is_smaller_or_equal_true;
- } else {
- goto is_smaller_or_equal_false;
- }
- } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) {
- d1 = Z_DVAL_P(op1);
- d2 = (double)Z_LVAL_P(op2);
- goto is_smaller_or_equal_double;
- }
- }
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) {
- op1 = ZVAL_UNDEFINED_OP1();
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(op2) == IS_UNDEF)) {
- op2 = ZVAL_UNDEFINED_OP2();
- }
- compare_function(EX_VAR(opline->result.var), op1, op2);
-
-
- if (UNEXPECTED(EG(exception))) {
- HANDLE_EXCEPTION();
- }
- if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) {
-is_smaller_or_equal_true:
- ZEND_VM_SMART_BRANCH_TRUE();
- ZVAL_TRUE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- } else {
-is_smaller_or_equal_false:
- ZEND_VM_SMART_BRANCH_FALSE();
- ZVAL_FALSE(EX_VAR(opline->result.var));
- ZEND_VM_NEXT_OPCODE();
- }
+ ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CV_LABEL,
(void*)&&ZEND_IS_SMALLER_SPEC_CONST_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CONST_CV_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_CV_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_TMPVAR_CV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CV_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CV_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CV_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_SPEC_CV_CV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
- (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_LABEL,
+ (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
(void*)&&ZEND_NULL_LABEL,
VM_TRACE(ZEND_SR_SPEC_CONST_TMPVARCV)
ZEND_SR_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
+ HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV):
+ VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV)
+ ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ HYBRID_BREAK();
+ HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV):
+ VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV)
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ HYBRID_BREAK();
HYBRID_CASE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV):
VM_TRACE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV)
ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_CONCAT_SPEC_CONST_TMPVAR)
ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_TMPVAR):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_TMPVAR)
- ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_CONST_TMPVAR):
VM_TRACE(ZEND_SPACESHIP_SPEC_CONST_TMPVAR)
ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_CONCAT_SPEC_CONST_CV)
ZEND_CONCAT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_CV):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_CV)
- ZEND_IS_SMALLER_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_CONST_CV):
VM_TRACE(ZEND_SPACESHIP_SPEC_CONST_CV)
ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_SR_SPEC_TMPVARCV_CONST)
ZEND_SR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
+ HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST):
+ VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST)
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ HYBRID_BREAK();
+ HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST):
+ VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST)
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ HYBRID_BREAK();
HYBRID_CASE(ZEND_BW_OR_SPEC_TMPVARCV_CONST):
VM_TRACE(ZEND_BW_OR_SPEC_TMPVARCV_CONST)
ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_SR_SPEC_TMPVARCV_TMPVARCV)
ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
+ HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV):
+ VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV)
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ HYBRID_BREAK();
+ HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV):
+ VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV)
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
+ HYBRID_BREAK();
HYBRID_CASE(ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV):
VM_TRACE(ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV)
ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST)
ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVAR_CONST):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVAR_CONST)
- ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_TMPVAR_CONST):
VM_TRACE(ZEND_SPACESHIP_SPEC_TMPVAR_CONST)
ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR)
ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR)
- ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR):
VM_TRACE(ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR)
ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_CONCAT_SPEC_TMPVAR_CV)
ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVAR_CV):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVAR_CV)
- ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_TMPVAR_CV):
VM_TRACE(ZEND_SPACESHIP_SPEC_TMPVAR_CV)
ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST)
ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CV_CONST):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_CV_CONST)
- ZEND_IS_SMALLER_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_CV_CONST):
VM_TRACE(ZEND_SPACESHIP_SPEC_CV_CONST)
ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR)
ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CV_TMPVAR):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_CV_TMPVAR)
- ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_CV_TMPVAR):
VM_TRACE(ZEND_SPACESHIP_SPEC_CV_TMPVAR)
ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV)
ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CV_CV):
- VM_TRACE(ZEND_IS_SMALLER_SPEC_CV_CV)
- ZEND_IS_SMALLER_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
- HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV):
- VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV)
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
- HYBRID_BREAK();
HYBRID_CASE(ZEND_SPACESHIP_SPEC_CV_CV):
VM_TRACE(ZEND_SPACESHIP_SPEC_CV_CV)
ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
ZEND_NULL_HANDLER,
ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER,
ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER,
- ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_SPEC_CONST_CV_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_SPEC_CV_CONST_HANDLER,
- ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_SPEC_CV_CV_HANDLER,
+ ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
- ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_HANDLER,
+ ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,