@@ -240,6 +240,21 @@ ZEND_VM_HANDLER(7, ZEND_SR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
240
240
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
241
241
}
242
242
243
+ ZEND_VM_HANDLER (166 , ZEND_POW , CONST |TMPVAR |CV , CONST |TMPVAR |CV )
244
+ {
245
+ USE_OPLINE
246
+ zend_free_op free_op1 , free_op2 ;
247
+ zval * op1 , * op2 ;
248
+
249
+ SAVE_OPLINE ();
250
+ op1 = GET_OP1_ZVAL_PTR (BP_VAR_R );
251
+ op2 = GET_OP2_ZVAL_PTR (BP_VAR_R );
252
+ pow_function (EX_VAR (opline -> result .var ), op1 , op2 );
253
+ FREE_OP1 ();
254
+ FREE_OP2 ();
255
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
256
+ }
257
+
243
258
ZEND_VM_HANDLER (8 , ZEND_CONCAT , CONST |TMPVAR |CV , CONST |TMPVAR |CV )
244
259
{
245
260
USE_OPLINE
@@ -1083,6 +1098,26 @@ ZEND_VM_HANDLER(33, ZEND_ASSIGN_BW_XOR, VAR|UNUSED|CV, CONST|TMPVAR|UNUSED|CV)
1083
1098
#endif
1084
1099
}
1085
1100
1101
+ ZEND_VM_HANDLER (167 , ZEND_ASSIGN_POW , VAR |UNUSED |CV , CONST |TMPVAR |UNUSED |CV )
1102
+ {
1103
+ #if !defined(ZEND_VM_SPEC ) || (OP2_TYPE != IS_UNUSED )
1104
+ USE_OPLINE
1105
+
1106
+ # if !defined(ZEND_VM_SPEC ) || (OP1_TYPE != IS_UNUSED )
1107
+ if (EXPECTED (opline -> extended_value == 0 )) {
1108
+ ZEND_VM_DISPATCH_TO_HELPER_EX (zend_binary_assign_op_helper , binary_op , pow_function );
1109
+ }
1110
+ # endif
1111
+ if (EXPECTED (opline -> extended_value == ZEND_ASSIGN_DIM )) {
1112
+ ZEND_VM_DISPATCH_TO_HELPER_EX (zend_binary_assign_op_dim_helper , binary_op , pow_function );
1113
+ } else /* if (EXPECTED(opline->extended_value == ZEND_ASSIGN_OBJ)) */ {
1114
+ ZEND_VM_DISPATCH_TO_HELPER_EX (zend_binary_assign_op_obj_helper , binary_op , pow_function );
1115
+ }
1116
+ #else
1117
+ ZEND_VM_DISPATCH_TO_HELPER_EX (zend_binary_assign_op_dim_helper , binary_op , pow_function );
1118
+ #endif
1119
+ }
1120
+
1086
1121
ZEND_VM_HELPER_EX (zend_pre_incdec_property_helper , VAR |UNUSED |CV , CONST |TMPVAR |CV , int inc )
1087
1122
{
1088
1123
USE_OPLINE
@@ -7540,26 +7575,6 @@ ZEND_VM_HANDLER(163, ZEND_FAST_RET, ANY, ANY)
7540
7575
}
7541
7576
}
7542
7577
7543
- ZEND_VM_HANDLER (166 , ZEND_POW , CONST |TMPVAR |CV , CONST |TMPVAR |CV )
7544
- {
7545
- USE_OPLINE
7546
- zend_free_op free_op1 , free_op2 ;
7547
- zval * op1 , * op2 ;
7548
-
7549
- SAVE_OPLINE ();
7550
- op1 = GET_OP1_ZVAL_PTR (BP_VAR_R );
7551
- op2 = GET_OP2_ZVAL_PTR (BP_VAR_R );
7552
- pow_function (EX_VAR (opline -> result .var ), op1 , op2 );
7553
- FREE_OP1 ();
7554
- FREE_OP2 ();
7555
- ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ();
7556
- }
7557
-
7558
- ZEND_VM_HANDLER (167 , ZEND_ASSIGN_POW , VAR |CV , CONST |TMPVAR |CV )
7559
- {
7560
- ZEND_VM_DISPATCH_TO_HELPER_EX (zend_binary_assign_op_helper , binary_op ,pow_function );
7561
- }
7562
-
7563
7578
ZEND_VM_HANDLER (168 , ZEND_BIND_GLOBAL , CV , CONST )
7564
7579
{
7565
7580
USE_OPLINE
0 commit comments