Skip to content

Commit 709925a

Browse files
committed
Use inline function instead of macro
1 parent 4b4869f commit 709925a

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

ext/opcache/jit/zend_jit_trace.c

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -366,14 +366,27 @@ static zend_always_inline int zend_jit_var_may_be_modified_indirectly(const zend
366366
SET_STACK_TYPE(stack, EX_VAR_TO_NUM(_var), _type); \
367367
} while (0)
368368

369-
#define ADD_OP_GUARD(_var, _op_type) do { \
370-
if (_var >= 0 && _op_type != IS_UNKNOWN) { \
371-
zend_ssa_var_info *info = &ssa_var_info[_var]; \
372-
if (zend_jit_var_may_be_modified_indirectly(op_array, ssa, ssa_vars[_var].var)) { \
373-
info->type = MAY_BE_GUARD | zend_jit_trace_type_to_info(_op_type); \
374-
} else if ((info->type & (MAY_BE_ANY|MAY_BE_UNDEF)) != (1 << _op_type)) { \
375-
info->type = MAY_BE_GUARD | zend_jit_trace_type_to_info_ex(_op_type, info->type); \
376-
} \
369+
370+
371+
static zend_always_inline void zend_jit_trace_add_op_guard(const zend_op_array *op_array,
372+
const zend_ssa *ssa,
373+
zend_ssa *tssa,
374+
uint32_t var,
375+
int ssa_var,
376+
uint8_t op_type)
377+
{
378+
zend_ssa_var_info *info = &tssa->var_info[ssa_var];
379+
380+
if (zend_jit_var_may_be_modified_indirectly(op_array, ssa, EX_VAR_TO_NUM(var))) {
381+
info->type = MAY_BE_GUARD | zend_jit_trace_type_to_info(op_type);
382+
} else if ((info->type & (MAY_BE_ANY|MAY_BE_UNDEF)) != (1 << op_type)) {
383+
info->type = MAY_BE_GUARD | zend_jit_trace_type_to_info_ex(op_type, info->type);
384+
}
385+
}
386+
387+
#define ADD_OP_GUARD(_var, _ssa_var, _op_type) do { \
388+
if (_ssa_var >= 0 && _op_type != IS_UNKNOWN) { \
389+
zend_jit_trace_add_op_guard(op_array, ssa, tssa, _var, _ssa_var, _op_type); \
377390
} \
378391
} while (0)
379392

@@ -396,11 +409,11 @@ static zend_always_inline int zend_jit_var_may_be_modified_indirectly(const zend
396409
} while (0)
397410

398411
#define ADD_OP1_TRACE_GUARD() \
399-
ADD_OP_GUARD(tssa->ops[idx].op1_use, op1_type)
412+
ADD_OP_GUARD(opline->op1.var, tssa->ops[idx].op1_use, op1_type)
400413
#define ADD_OP2_TRACE_GUARD() \
401-
ADD_OP_GUARD(tssa->ops[idx].op2_use, op2_type)
414+
ADD_OP_GUARD(opline->op2.var, tssa->ops[idx].op2_use, op2_type)
402415
#define ADD_OP1_DATA_TRACE_GUARD() \
403-
ADD_OP_GUARD(tssa->ops[idx+1].op1_use, op3_type)
416+
ADD_OP_GUARD((opline+1)->op1.var, tssa->ops[idx+1].op1_use, op3_type)
404417

405418
#define CHECK_OP1_TRACE_TYPE() \
406419
CHECK_OP_TRACE_TYPE(opline->op1.var, ssa_op->op1_use, op1_info, op1_type)

0 commit comments

Comments
 (0)