diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 8b622c78e56..42b2acf6986 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -25,7 +25,7 @@ * php zend_vm_gen.php */ -ZEND_VM_HANDLER(1, ZEND_ADD, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(1, ZEND_ADD, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -40,7 +40,7 @@ ZEND_VM_HANDLER(1, ZEND_ADD, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(2, ZEND_SUB, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(2, ZEND_SUB, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -55,7 +55,7 @@ ZEND_VM_HANDLER(2, ZEND_SUB, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(3, ZEND_MUL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(3, ZEND_MUL, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -70,7 +70,7 @@ ZEND_VM_HANDLER(3, ZEND_MUL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(4, ZEND_DIV, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(4, ZEND_DIV, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -176,7 +176,7 @@ ZEND_VM_HANDLER(16, ZEND_IS_NOT_IDENTICAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(17, ZEND_IS_EQUAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(17, ZEND_IS_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -192,7 +192,7 @@ ZEND_VM_HANDLER(17, ZEND_IS_EQUAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(18, ZEND_IS_NOT_EQUAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(18, ZEND_IS_NOT_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -208,7 +208,7 @@ ZEND_VM_HANDLER(18, ZEND_IS_NOT_EQUAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(19, ZEND_IS_SMALLER, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(19, ZEND_IS_SMALLER, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -224,7 +224,7 @@ ZEND_VM_HANDLER(19, ZEND_IS_SMALLER, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) ZEND_VM_NEXT_OPCODE(); } -ZEND_VM_HANDLER(20, ZEND_IS_SMALLER_OR_EQUAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV) +ZEND_VM_HANDLER(20, ZEND_IS_SMALLER_OR_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV) { USE_OPLINE zend_free_op free_op1, free_op2; @@ -1994,7 +1994,7 @@ ZEND_VM_HANDLER(47, ZEND_JMPNZ_EX, CONST|TMP|VAR|CV, ANY) ZEND_VM_JMP(opline); } -ZEND_VM_HANDLER(70, ZEND_FREE, TMP|VAR, ANY) +ZEND_VM_HANDLER(70, ZEND_FREE, TMPVAR, ANY) { USE_OPLINE diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index cbf1d4b0bdf..a6b694be989 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -5012,66 +5012,6 @@ static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -5163,70 +5103,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCO ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - opline->op1.zv, - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -6101,66 +5977,6 @@ static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -6252,70 +6068,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCO ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - opline->op1.zv, - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -9347,6 +9099,130 @@ static int ZEND_FASTCALL ZEND_POW_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG ZEND_VM_NEXT_OPCODE(); } +static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_add_function(EX_VAR(opline->result.var), + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_SUB_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_sub_function(EX_VAR(opline->result.var), + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_mul_function(EX_VAR(opline->result.var), + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_div_function(EX_VAR(opline->result.var), + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_equal_function(result, + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_not_equal_function(result, + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_function(result, + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_or_equal_function(result, + opline->op1.zv, + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -9560,16 +9436,6 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG ZEND_VM_JMP(opline); } -static int ZEND_FASTCALL ZEND_FREE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -10433,66 +10299,6 @@ static int ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_A ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -10584,70 +10390,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -11850,66 +11592,6 @@ static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -12001,70 +11683,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -12914,66 +12532,6 @@ static int ZEND_FASTCALL ZEND_POW_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -13065,70 +12623,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -14893,66 +14387,6 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER ZEND_VM_RETURN(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -15044,70 +14478,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_ ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -16321,16 +15691,6 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG ZEND_VM_JMP(opline); } -static int ZEND_FASTCALL ZEND_FREE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -17657,66 +17017,6 @@ static int ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_A ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -17808,70 +17108,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - opline->op2.zv TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -20139,66 +19375,6 @@ static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN return zend_binary_assign_op_helper_SPEC_VAR_CONST(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -20290,70 +19466,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -22167,66 +21279,6 @@ static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL return zend_binary_assign_op_helper_SPEC_VAR_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -22318,70 +21370,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -25758,66 +24746,6 @@ static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA return zend_binary_assign_op_helper_SPEC_VAR_UNUSED(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -25909,70 +24837,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_ ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); - zval_ptr_dtor_nogc(free_op1); - - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -37452,66 +36316,6 @@ check_indirect: ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -37603,70 +36407,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_ ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -39352,66 +38092,6 @@ static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE return zend_binary_assign_op_helper_SPEC_CV_TMP(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); } -static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_add_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_SUB_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_sub_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_MUL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_mul_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_DIV_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - - SAVE_OPLINE(); - fast_div_function(EX_VAR(opline->result.var), - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_MOD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -39503,70 +38183,6 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_ ZEND_VM_NEXT_OPCODE(); } -static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_equal_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_not_equal_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - -static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *result = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - fast_is_smaller_or_equal_function(result, - _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), - _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2) TSRMLS_CC); - - zval_ptr_dtor_nogc(free_op2); - CHECK_EXCEPTION(); - ZEND_VM_NEXT_OPCODE(); -} - static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE @@ -44620,6 +43236,512 @@ static int ZEND_FASTCALL ZEND_ASSIGN_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER return zend_binary_assign_op_helper_SPEC_CV_CV(pow_function, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); } +static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_add_function(EX_VAR(opline->result.var), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_SUB_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_sub_function(EX_VAR(opline->result.var), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_MUL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_mul_function(EX_VAR(opline->result.var), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_DIV_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + + SAVE_OPLINE(); + fast_div_function(EX_VAR(opline->result.var), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_equal_function(result, + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_not_equal_function(result, + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_function(result, + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_or_equal_function(result, + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_FREE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + + SAVE_OPLINE(); + zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_add_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_sub_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_mul_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_div_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_not_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_or_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + opline->op2.zv TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_add_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_sub_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_mul_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + + SAVE_OPLINE(); + fast_div_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_not_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_or_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + + SAVE_OPLINE(); + fast_add_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + + SAVE_OPLINE(); + fast_sub_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + + SAVE_OPLINE(); + fast_mul_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + + SAVE_OPLINE(); + fast_div_function(EX_VAR(opline->result.var), + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_not_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) +{ + USE_OPLINE + zend_free_op free_op1, free_op2; + zval *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + +static int 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 *result = EX_VAR(opline->result.var); + + SAVE_OPLINE(); + fast_is_smaller_or_equal_function(result, + _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), + _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); + zval_ptr_dtor_nogc(free_op1); + zval_ptr_dtor_nogc(free_op2); + CHECK_EXCEPTION(); + ZEND_VM_NEXT_OPCODE(); +} + static int ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type); @@ -44656,103 +43778,103 @@ void zend_init_opcodes_handlers(void) ZEND_NOP_SPEC_HANDLER, ZEND_NOP_SPEC_HANDLER, ZEND_ADD_SPEC_CONST_CONST_HANDLER, - ZEND_ADD_SPEC_CONST_TMP_HANDLER, - ZEND_ADD_SPEC_CONST_VAR_HANDLER, + ZEND_ADD_SPEC_CONST_TMPVAR_HANDLER, + ZEND_ADD_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_ADD_SPEC_CONST_CV_HANDLER, - ZEND_ADD_SPEC_TMP_CONST_HANDLER, - ZEND_ADD_SPEC_TMP_TMP_HANDLER, - ZEND_ADD_SPEC_TMP_VAR_HANDLER, + ZEND_ADD_SPEC_TMPVAR_CONST_HANDLER, + ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_TMP_CV_HANDLER, - ZEND_ADD_SPEC_VAR_CONST_HANDLER, - ZEND_ADD_SPEC_VAR_TMP_HANDLER, - ZEND_ADD_SPEC_VAR_VAR_HANDLER, + ZEND_ADD_SPEC_TMPVAR_CV_HANDLER, + ZEND_ADD_SPEC_TMPVAR_CONST_HANDLER, + ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_ADD_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_VAR_CV_HANDLER, + ZEND_ADD_SPEC_TMPVAR_CV_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_ADD_SPEC_CV_CONST_HANDLER, - ZEND_ADD_SPEC_CV_TMP_HANDLER, - ZEND_ADD_SPEC_CV_VAR_HANDLER, + ZEND_ADD_SPEC_CV_TMPVAR_HANDLER, + ZEND_ADD_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_ADD_SPEC_CV_CV_HANDLER, ZEND_SUB_SPEC_CONST_CONST_HANDLER, - ZEND_SUB_SPEC_CONST_TMP_HANDLER, - ZEND_SUB_SPEC_CONST_VAR_HANDLER, + ZEND_SUB_SPEC_CONST_TMPVAR_HANDLER, + ZEND_SUB_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_SUB_SPEC_CONST_CV_HANDLER, - ZEND_SUB_SPEC_TMP_CONST_HANDLER, - ZEND_SUB_SPEC_TMP_TMP_HANDLER, - ZEND_SUB_SPEC_TMP_VAR_HANDLER, + ZEND_SUB_SPEC_TMPVAR_CONST_HANDLER, + ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_TMP_CV_HANDLER, - ZEND_SUB_SPEC_VAR_CONST_HANDLER, - ZEND_SUB_SPEC_VAR_TMP_HANDLER, - ZEND_SUB_SPEC_VAR_VAR_HANDLER, + ZEND_SUB_SPEC_TMPVAR_CV_HANDLER, + ZEND_SUB_SPEC_TMPVAR_CONST_HANDLER, + ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_SUB_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_VAR_CV_HANDLER, + ZEND_SUB_SPEC_TMPVAR_CV_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_SUB_SPEC_CV_CONST_HANDLER, - ZEND_SUB_SPEC_CV_TMP_HANDLER, - ZEND_SUB_SPEC_CV_VAR_HANDLER, + ZEND_SUB_SPEC_CV_TMPVAR_HANDLER, + ZEND_SUB_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_SUB_SPEC_CV_CV_HANDLER, ZEND_MUL_SPEC_CONST_CONST_HANDLER, - ZEND_MUL_SPEC_CONST_TMP_HANDLER, - ZEND_MUL_SPEC_CONST_VAR_HANDLER, + ZEND_MUL_SPEC_CONST_TMPVAR_HANDLER, + ZEND_MUL_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_MUL_SPEC_CONST_CV_HANDLER, - ZEND_MUL_SPEC_TMP_CONST_HANDLER, - ZEND_MUL_SPEC_TMP_TMP_HANDLER, - ZEND_MUL_SPEC_TMP_VAR_HANDLER, + ZEND_MUL_SPEC_TMPVAR_CONST_HANDLER, + ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_TMP_CV_HANDLER, - ZEND_MUL_SPEC_VAR_CONST_HANDLER, - ZEND_MUL_SPEC_VAR_TMP_HANDLER, - ZEND_MUL_SPEC_VAR_VAR_HANDLER, + ZEND_MUL_SPEC_TMPVAR_CV_HANDLER, + ZEND_MUL_SPEC_TMPVAR_CONST_HANDLER, + ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_MUL_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_VAR_CV_HANDLER, + ZEND_MUL_SPEC_TMPVAR_CV_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_MUL_SPEC_CV_CONST_HANDLER, - ZEND_MUL_SPEC_CV_TMP_HANDLER, - ZEND_MUL_SPEC_CV_VAR_HANDLER, + ZEND_MUL_SPEC_CV_TMPVAR_HANDLER, + ZEND_MUL_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_MUL_SPEC_CV_CV_HANDLER, ZEND_DIV_SPEC_CONST_CONST_HANDLER, - ZEND_DIV_SPEC_CONST_TMP_HANDLER, - ZEND_DIV_SPEC_CONST_VAR_HANDLER, + ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER, + ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_DIV_SPEC_CONST_CV_HANDLER, - ZEND_DIV_SPEC_TMP_CONST_HANDLER, - ZEND_DIV_SPEC_TMP_TMP_HANDLER, - ZEND_DIV_SPEC_TMP_VAR_HANDLER, + ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER, + ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_TMP_CV_HANDLER, - ZEND_DIV_SPEC_VAR_CONST_HANDLER, - ZEND_DIV_SPEC_VAR_TMP_HANDLER, - ZEND_DIV_SPEC_VAR_VAR_HANDLER, + ZEND_DIV_SPEC_TMPVAR_CV_HANDLER, + ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER, + ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_VAR_CV_HANDLER, + ZEND_DIV_SPEC_TMPVAR_CV_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_DIV_SPEC_CV_CONST_HANDLER, - ZEND_DIV_SPEC_CV_TMP_HANDLER, - ZEND_DIV_SPEC_CV_VAR_HANDLER, + ZEND_DIV_SPEC_CV_TMPVAR_HANDLER, + ZEND_DIV_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_DIV_SPEC_CV_CV_HANDLER, ZEND_MOD_SPEC_CONST_CONST_HANDLER, @@ -45056,103 +44178,103 @@ void zend_init_opcodes_handlers(void) ZEND_NULL_HANDLER, ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV_HANDLER, ZEND_IS_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_CONST_TMP_HANDLER, - ZEND_IS_EQUAL_SPEC_CONST_VAR_HANDLER, + ZEND_IS_EQUAL_SPEC_CONST_TMPVAR_HANDLER, + ZEND_IS_EQUAL_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_EQUAL_SPEC_CONST_CV_HANDLER, - ZEND_IS_EQUAL_SPEC_TMP_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_TMP_TMP_HANDLER, - ZEND_IS_EQUAL_SPEC_TMP_VAR_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_SPEC_TMP_CV_HANDLER, - ZEND_IS_EQUAL_SPEC_VAR_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_VAR_TMP_HANDLER, - ZEND_IS_EQUAL_SPEC_VAR_VAR_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_CV_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_SPEC_VAR_CV_HANDLER, + ZEND_IS_EQUAL_SPEC_TMPVAR_CV_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_EQUAL_SPEC_CV_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMP_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_VAR_HANDLER, + ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER, + ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_EQUAL_SPEC_CV_CV_HANDLER, ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CONST_TMP_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CONST_VAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_CONST_TMPVAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_NOT_EQUAL_SPEC_CONST_CV_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMP_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMP_TMP_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMP_VAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMP_CV_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_VAR_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_VAR_TMP_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_VAR_VAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CV_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_VAR_CV_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CV_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMP_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_VAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER, + ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER, ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMP_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_VAR_HANDLER, + ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER, + ZEND_IS_SMALLER_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_SMALLER_SPEC_CONST_CV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMP_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_TMP_TMP_HANDLER, - ZEND_IS_SMALLER_SPEC_TMP_VAR_HANDLER, + ZEND_IS_SMALLER_SPEC_TMPVAR_CONST_HANDLER, + ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER, + ZEND_IS_SMALLER_SPEC_TMPVAR_TMPVAR_HANDLER, ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_TMP_CV_HANDLER, - ZEND_IS_SMALLER_SPEC_VAR_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_VAR_TMP_HANDLER, - ZEND_IS_SMALLER_SPEC_VAR_VAR_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_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_VAR_CV_HANDLER, + ZEND_IS_SMALLER_SPEC_TMPVAR_CV_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_TMP_HANDLER, - ZEND_IS_SMALLER_SPEC_CV_VAR_HANDLER, + ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER, + ZEND_IS_SMALLER_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_SMALLER_SPEC_CV_CV_HANDLER, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMP_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_VAR_HANDLER, + ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER, + ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_TMP_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_VAR_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_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_CV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_TMP_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_VAR_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_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CV_HANDLER, + ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_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_TMP_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_VAR_HANDLER, + ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER, + ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_HANDLER, ZEND_CAST_SPEC_CONST_HANDLER, @@ -46385,16 +45507,16 @@ void zend_init_opcodes_handlers(void) ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, - ZEND_FREE_SPEC_TMP_HANDLER, - ZEND_FREE_SPEC_TMP_HANDLER, - ZEND_FREE_SPEC_TMP_HANDLER, - ZEND_FREE_SPEC_TMP_HANDLER, - ZEND_FREE_SPEC_TMP_HANDLER, - ZEND_FREE_SPEC_VAR_HANDLER, - ZEND_FREE_SPEC_VAR_HANDLER, - ZEND_FREE_SPEC_VAR_HANDLER, - ZEND_FREE_SPEC_VAR_HANDLER, - ZEND_FREE_SPEC_VAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, + ZEND_FREE_SPEC_TMPVAR_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, ZEND_NULL_HANDLER, diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index 5836adaefb8..63cce6e532b 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -63,6 +63,16 @@ $op_types = array( "CV" ); +$op_types_ex = array( + "ANY", + "CONST", + "TMP", + "VAR", + "UNUSED", + "CV", + "TMPVAR", +); + $prefix = array( "ANY" => "", "TMP" => "_TMP", @@ -70,6 +80,7 @@ $prefix = array( "CONST" => "_CONST", "UNUSED" => "_UNUSED", "CV" => "_CV", + "TMPVAR" => "_TMPVAR", ); $typecode = array( @@ -79,6 +90,7 @@ $typecode = array( "CONST" => 0, "UNUSED" => 3, "CV" => 4, + "TMPVAR" => 0, ); $op1_type = array( @@ -88,6 +100,7 @@ $op1_type = array( "CONST" => "IS_CONST", "UNUSED" => "IS_UNUSED", "CV" => "IS_CV", + "TMPVAR" => "???", ); $op2_type = array( @@ -97,6 +110,7 @@ $op2_type = array( "CONST" => "IS_CONST", "UNUSED" => "IS_UNUSED", "CV" => "IS_CV", + "TMPVAR" => "???", ); $op1_free = array( @@ -106,6 +120,7 @@ $op1_free = array( "CONST" => "0", "UNUSED" => "0", "CV" => "0", + "TMPVAR" => "???", ); $op2_free = array( @@ -115,6 +130,7 @@ $op2_free = array( "CONST" => "0", "UNUSED" => "0", "CV" => "0", + "TMPVAR" => "???", ); $op1_get_zval_ptr = array( @@ -124,6 +140,7 @@ $op1_get_zval_ptr = array( "CONST" => "opline->op1.zv", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)", ); $op2_get_zval_ptr = array( @@ -133,6 +150,7 @@ $op2_get_zval_ptr = array( "CONST" => "opline->op2.zv", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC)", ); $op1_get_zval_ptr_ptr = array( @@ -142,6 +160,7 @@ $op1_get_zval_ptr_ptr = array( "CONST" => "NULL", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op2_get_zval_ptr_ptr = array( @@ -151,6 +170,7 @@ $op2_get_zval_ptr_ptr = array( "CONST" => "NULL", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op1_get_zval_ptr_deref = array( @@ -160,6 +180,7 @@ $op1_get_zval_ptr_deref = array( "CONST" => "opline->op1.zv", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_deref_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op2_get_zval_ptr_deref = array( @@ -169,6 +190,7 @@ $op2_get_zval_ptr_deref = array( "CONST" => "opline->op2.zv", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_deref_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op1_get_zval_ptr_ptr_undef = array( @@ -178,6 +200,7 @@ $op1_get_zval_ptr_ptr_undef = array( "CONST" => "NULL", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_undef_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op2_get_zval_ptr_ptr_undef = array( @@ -187,6 +210,7 @@ $op2_get_zval_ptr_ptr_undef = array( "CONST" => "NULL", "UNUSED" => "NULL", "CV" => "_get_zval_ptr_cv_undef_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op1_get_obj_zval_ptr = array( @@ -196,6 +220,7 @@ $op1_get_obj_zval_ptr = array( "CONST" => "opline->op1.zv", "UNUSED" => "_get_obj_zval_ptr_unused(execute_data)", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1)", ); $op2_get_obj_zval_ptr = array( @@ -205,6 +230,7 @@ $op2_get_obj_zval_ptr = array( "CONST" => "opline->op2.zv", "UNUSED" => "_get_obj_zval_ptr_unused(execute_data)", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2)", ); $op1_get_obj_zval_ptr_deref = array( @@ -214,6 +240,7 @@ $op1_get_obj_zval_ptr_deref = array( "CONST" => "opline->op1.zv", "UNUSED" => "_get_obj_zval_ptr_unused(execute_data)", "CV" => "_get_zval_ptr_cv_deref_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op2_get_obj_zval_ptr_deref = array( @@ -223,6 +250,7 @@ $op2_get_obj_zval_ptr_deref = array( "CONST" => "opline->op2.zv", "UNUSED" => "_get_obj_zval_ptr_unused(execute_data)", "CV" => "_get_zval_ptr_cv_deref_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op1_get_obj_zval_ptr_ptr = array( @@ -232,6 +260,7 @@ $op1_get_obj_zval_ptr_ptr = array( "CONST" => "NULL", "UNUSED" => "_get_obj_zval_ptr_unused(execute_data)", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op1.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op2_get_obj_zval_ptr_ptr = array( @@ -241,6 +270,7 @@ $op2_get_obj_zval_ptr_ptr = array( "CONST" => "NULL", "UNUSED" => "_get_obj_zval_ptr_unused(execute_data)", "CV" => "_get_zval_ptr_cv_\\1(execute_data, opline->op2.var TSRMLS_CC)", + "TMPVAR" => "???", ); $op1_free_op = array( @@ -250,6 +280,7 @@ $op1_free_op = array( "CONST" => "", "UNUSED" => "", "CV" => "", + "TMPVAR" => "zval_ptr_dtor_nogc(free_op1)", ); $op2_free_op = array( @@ -259,6 +290,7 @@ $op2_free_op = array( "CONST" => "", "UNUSED" => "", "CV" => "", + "TMPVAR" => "zval_ptr_dtor_nogc(free_op2)", ); $op1_free_op_if_var = array( @@ -268,6 +300,7 @@ $op1_free_op_if_var = array( "CONST" => "", "UNUSED" => "", "CV" => "", + "TMPVAR" => "???", ); $op2_free_op_if_var = array( @@ -277,6 +310,7 @@ $op2_free_op_if_var = array( "CONST" => "", "UNUSED" => "", "CV" => "", + "TMPVAR" => "???", ); $op1_free_op_var_ptr = array( @@ -286,6 +320,7 @@ $op1_free_op_var_ptr = array( "CONST" => "", "UNUSED" => "", "CV" => "", + "TMPVAR" => "???", ); $op2_free_op_var_ptr = array( @@ -295,6 +330,7 @@ $op2_free_op_var_ptr = array( "CONST" => "", "UNUSED" => "", "CV" => "", + "TMPVAR" => "???", ); $list = array(); // list of opcode handlers and helpers in original order @@ -650,16 +686,24 @@ function gen_labels($f, $spec, $kind, $prolog) { foreach($op1t as $op1) { if ($op1 != "ANY") { if (!isset($dsc["op1"][$op1])) { - // Try to use unspecialized handler - $op1 = "ANY"; + if (($op1 == "TMP" || $op1 == "VAR") && isset($dsc["op1"]["TMPVAR"])) { + $op1 = "TMPVAR"; + } else { + // Try to use unspecialized handler + $op1 = "ANY"; + } } $op2t = $op_types; // For each op2.op_type except ANY foreach($op2t as $op2) { if ($op2 != "ANY") { if (!isset($dsc["op2"][$op2])) { - // Try to use unspecialized handler - $op2 = "ANY"; + if (($op2 == "TMP" || $op2 == "VAR") && isset($dsc["op2"]["TMPVAR"])) { + $op2 = "TMPVAR"; + } else { + // Try to use unspecialized handler + $op2 = "ANY"; + } } // Check if specialized handler is defined if (isset($dsc["op1"][$op1]) && @@ -764,14 +808,14 @@ function gen_null_handler($f) { // Generates all opcode handlers and helpers (specialized or unspecilaized) function gen_executor_code($f, $spec, $kind, $prolog) { - global $list, $opcodes, $helpers, $op_types; + global $list, $opcodes, $helpers, $op_types_ex; if ($spec) { // Produce specialized executor - $op1t = $op_types; + $op1t = $op_types_ex; // for each op1.op_type foreach($op1t as $op1) { - $op2t = $op_types; + $op2t = $op_types_ex; // for each op2.op_type foreach($op2t as $op2) { // for each handlers in helpers in original order