@@ -3878,10 +3878,15 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
38783878 STACK_MEM_TYPE (stack , EX_VAR_TO_NUM (opline -> result .var )))
38793879 & (MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE );
38803880#else
3881+ res_use_info = -1 ;
38813882 if (opline -> result_type == IS_CV ) {
3882- res_use_info = RES_USE_INFO ();
3883- } else {
3884- res_use_info = MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE ;
3883+ zend_jit_addr res_use_addr = RES_USE_REG_ADDR ();
3884+
3885+ if (Z_MODE (res_use_addr ) != IS_REG
3886+ || Z_LOAD (res_use_addr )
3887+ || Z_STORE (res_use_addr )) {
3888+ res_use_info = RES_USE_INFO ();
3889+ }
38853890 }
38863891#endif
38873892 res_info = RES_INFO ();
@@ -3973,10 +3978,15 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
39733978 STACK_MEM_TYPE (stack , EX_VAR_TO_NUM (opline -> result .var )))
39743979 & (MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE );
39753980#else
3981+ res_use_info = -1 ;
39763982 if (opline -> result_type == IS_CV ) {
3977- res_use_info = RES_USE_INFO ();
3978- } else {
3979- res_use_info = MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE ;
3983+ zend_jit_addr res_use_addr = RES_USE_REG_ADDR ();
3984+
3985+ if (Z_MODE (res_use_addr ) != IS_REG
3986+ || Z_LOAD (res_use_addr )
3987+ || Z_STORE (res_use_addr )) {
3988+ res_use_info = RES_USE_INFO ();
3989+ }
39803990 }
39813991#endif
39823992 }
@@ -4050,10 +4060,15 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
40504060 STACK_MEM_TYPE (stack , EX_VAR_TO_NUM (opline -> result .var )))
40514061 & (MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE );
40524062#else
4063+ res_use_info = -1 ;
40534064 if (opline -> result_type == IS_CV ) {
4054- res_use_info = RES_USE_INFO ();
4055- } else {
4056- res_use_info = MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_LONG |MAY_BE_DOUBLE ;
4065+ zend_jit_addr res_use_addr = RES_USE_REG_ADDR ();
4066+
4067+ if (Z_MODE (res_use_addr ) != IS_REG
4068+ || Z_LOAD (res_use_addr )
4069+ || Z_STORE (res_use_addr )) {
4070+ res_use_info = RES_USE_INFO ();
4071+ }
40574072 }
40584073#endif
40594074 }
0 commit comments