@@ -4044,24 +4044,8 @@ ZEND_EXT_API void zend_jit_protect(void)
4044
4044
#endif
4045
4045
}
4046
4046
4047
- static int zend_jit_make_stubs (void )
4047
+ static void zend_jit_init_handlers (void )
4048
4048
{
4049
- dasm_State * dasm_state = NULL ;
4050
- uint32_t i ;
4051
-
4052
- dasm_init (& dasm_state , DASM_MAXSECTION );
4053
- dasm_setupglobal (& dasm_state , dasm_labels , zend_lb_MAX );
4054
-
4055
- for (i = 0 ; i < sizeof (zend_jit_stubs )/sizeof (zend_jit_stubs [0 ]); i ++ ) {
4056
- dasm_setup (& dasm_state , dasm_actions );
4057
- if (!zend_jit_stubs [i ].stub (& dasm_state )) {
4058
- return 0 ;
4059
- }
4060
- if (!dasm_link_and_encode (& dasm_state , NULL , NULL , NULL , NULL , zend_jit_stubs [i ].name , 0 )) {
4061
- return 0 ;
4062
- }
4063
- }
4064
-
4065
4049
if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID ) {
4066
4050
zend_jit_runtime_jit_handler = dasm_labels [zend_lbhybrid_runtime_jit ];
4067
4051
zend_jit_profile_jit_handler = dasm_labels [zend_lbhybrid_profile_jit ];
@@ -4079,6 +4063,27 @@ static int zend_jit_make_stubs(void)
4079
4063
zend_jit_ret_trace_counter_handler = (const void * )zend_jit_ret_trace_helper ;
4080
4064
zend_jit_loop_trace_counter_handler = (const void * )zend_jit_loop_trace_helper ;
4081
4065
}
4066
+ }
4067
+
4068
+ static int zend_jit_make_stubs (void )
4069
+ {
4070
+ dasm_State * dasm_state = NULL ;
4071
+ uint32_t i ;
4072
+
4073
+ dasm_init (& dasm_state , DASM_MAXSECTION );
4074
+ dasm_setupglobal (& dasm_state , dasm_labels , zend_lb_MAX );
4075
+
4076
+ for (i = 0 ; i < sizeof (zend_jit_stubs )/sizeof (zend_jit_stubs [0 ]); i ++ ) {
4077
+ dasm_setup (& dasm_state , dasm_actions );
4078
+ if (!zend_jit_stubs [i ].stub (& dasm_state )) {
4079
+ return 0 ;
4080
+ }
4081
+ if (!dasm_link_and_encode (& dasm_state , NULL , NULL , NULL , NULL , zend_jit_stubs [i ].name , 0 )) {
4082
+ return 0 ;
4083
+ }
4084
+ }
4085
+
4086
+ zend_jit_init_handlers ();
4082
4087
4083
4088
dasm_free (& dasm_state );
4084
4089
return 1 ;
@@ -4353,6 +4358,7 @@ ZEND_EXT_API int zend_jit_startup(void *buf, size_t size, zend_bool reattached)
4353
4358
#if _WIN32
4354
4359
/* restore global labels */
4355
4360
memcpy (dasm_labels , dasm_buf , sizeof (void * ) * zend_lb_MAX );
4361
+ zend_jit_init_handlers ();
4356
4362
#endif
4357
4363
}
4358
4364
0 commit comments