Skip to content

Commit 51a305d

Browse files
committed
Separate zend_jit_var_supports_reg() and cleanup
1 parent 40fa628 commit 51a305d

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10927,7 +10927,7 @@ static zend_bool zend_jit_may_reuse_reg(const zend_op_array *op_array, zend_ssa
1092710927
return 0;
1092810928
}
1092910929

10930-
static zend_bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zend_ssa *ssa, zend_op *opline, const zend_ssa_op *ssa_op, int var)
10930+
static zend_bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zend_ssa *ssa, const zend_op *opline, const zend_ssa_op *ssa_op)
1093110931
{
1093210932
uint32_t op1_info, op2_info;
1093310933

@@ -10993,7 +10993,7 @@ static zend_bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zen
1099310993
return 0;
1099410994
}
1099510995

10996-
static zend_bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa *ssa, int var)
10996+
static zend_bool zend_jit_var_supports_reg(zend_ssa *ssa, int var)
1099710997
{
1099810998
if (ssa->vars[var].no_val) {
1099910999
/* we don't need the value */
@@ -11024,9 +11024,18 @@ static zend_bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa
1102411024
return 0;
1102511025
}
1102611026

11027+
return 1;
11028+
}
11029+
11030+
static zend_bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa *ssa, int var)
11031+
{
11032+
if (!zend_jit_var_supports_reg(ssa, var)) {
11033+
return 0;
11034+
}
11035+
1102711036
if (ssa->vars[var].definition >= 0) {
1102811037
uint32_t def = ssa->vars[var].definition;
11029-
if (!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + def, ssa->ops + def, var)) {
11038+
if (!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + def, ssa->ops + def)) {
1103011039
return 0;
1103111040
}
1103211041
}
@@ -11036,7 +11045,7 @@ static zend_bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa
1103611045

1103711046
do {
1103811047
if (!zend_ssa_is_no_val_use(op_array->opcodes + use, ssa->ops + use, var) &&
11039-
!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + use, ssa->ops + use, var)) {
11048+
!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + use, ssa->ops + use)) {
1104011049
return 0;
1104111050
}
1104211051
use = zend_ssa_next_use(ssa->ops, var, use);

0 commit comments

Comments
 (0)