@@ -2614,6 +2614,11 @@ static int zend_jit(const zend_op_array *op_array, zend_ssa *ssa, const zend_op
26142614 goto jit_failure ;
26152615 }
26162616 goto done ;
2617+ case ZEND_JMP_FRAMELESS :
2618+ if (!zend_jit_jmp_frameless (& ctx , opline , /* exit_addr */ NULL , /* guard */ 0 )) {
2619+ goto jit_failure ;
2620+ }
2621+ goto done ;
26172622 case ZEND_INIT_METHOD_CALL :
26182623 if (opline -> op2_type != IS_CONST
26192624 || Z_TYPE_P (RT_CONSTANT (opline , opline -> op2 )) != IS_STRING ) {
@@ -2680,6 +2685,23 @@ static int zend_jit(const zend_op_array *op_array, zend_ssa *ssa, const zend_op
26802685 goto jit_failure ;
26812686 }
26822687 goto done ;
2688+ case ZEND_FRAMELESS_ICALL_0 :
2689+ jit_frameless_icall0 (jit , opline );
2690+ goto done ;
2691+ case ZEND_FRAMELESS_ICALL_1 :
2692+ op1_info = OP1_INFO ();
2693+ jit_frameless_icall1 (jit , opline , op1_info );
2694+ goto done ;
2695+ case ZEND_FRAMELESS_ICALL_2 :
2696+ op1_info = OP1_INFO ();
2697+ op2_info = OP2_INFO ();
2698+ jit_frameless_icall2 (jit , opline , op1_info , op2_info );
2699+ goto done ;
2700+ case ZEND_FRAMELESS_ICALL_3 :
2701+ op1_info = OP1_INFO ();
2702+ op2_info = OP2_INFO ();
2703+ jit_frameless_icall3 (jit , opline , op1_info , op2_info , OP1_DATA_INFO ());
2704+ goto done ;
26832705 default :
26842706 break ;
26852707 }
@@ -2782,17 +2804,13 @@ static int zend_jit(const zend_op_array *op_array, zend_ssa *ssa, const zend_op
27822804 case ZEND_FE_FETCH_R :
27832805 case ZEND_FE_FETCH_RW :
27842806 case ZEND_BIND_INIT_STATIC_OR_JMP :
2807+ case ZEND_JMP_FRAMELESS :
27852808 if (!zend_jit_handler (& ctx , opline ,
27862809 zend_may_throw (opline , ssa_op , op_array , ssa )) ||
27872810 !zend_jit_cond_jmp (& ctx , opline + 1 , ssa -> cfg .blocks [b ].successors [0 ])) {
27882811 goto jit_failure ;
27892812 }
27902813 break ;
2791- case ZEND_JMP_FRAMELESS :
2792- if (!zend_jit_jmp_frameless (& ctx , opline , /* exit_addr */ NULL , /* guard */ 0 )) {
2793- goto jit_failure ;
2794- }
2795- break ;
27962814 case ZEND_NEW :
27972815 if (!zend_jit_handler (& ctx , opline , 1 )) {
27982816 return 0 ;
@@ -2830,23 +2848,6 @@ static int zend_jit(const zend_op_array *op_array, zend_ssa *ssa, const zend_op
28302848 call_level -- ;
28312849 }
28322850 break ;
2833- case ZEND_FRAMELESS_ICALL_0 :
2834- jit_frameless_icall0 (jit , opline );
2835- goto done ;
2836- case ZEND_FRAMELESS_ICALL_1 :
2837- op1_info = OP1_INFO ();
2838- jit_frameless_icall1 (jit , opline , op1_info );
2839- goto done ;
2840- case ZEND_FRAMELESS_ICALL_2 :
2841- op1_info = OP1_INFO ();
2842- op2_info = OP2_INFO ();
2843- jit_frameless_icall2 (jit , opline , op1_info , op2_info );
2844- goto done ;
2845- case ZEND_FRAMELESS_ICALL_3 :
2846- op1_info = OP1_INFO ();
2847- op2_info = OP2_INFO ();
2848- jit_frameless_icall3 (jit , opline , op1_info , op2_info , OP1_DATA_INFO ());
2849- goto done ;
28502851 default :
28512852 if (!zend_jit_handler (& ctx , opline ,
28522853 zend_may_throw (opline , ssa_op , op_array , ssa ))) {
0 commit comments