From: Dmitry Stogov Date: Mon, 26 Oct 2020 18:48:47 +0000 (+0300) Subject: Fixed register allocation X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba525a68d9a76f8b4c9109a7b9f75f796b84586c;p=php Fixed register allocation --- diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index c0f4ce3e30..3d25ada5f1 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -15044,7 +15044,7 @@ static zend_bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zen case ZEND_MUL: op1_info = OP1_INFO(); op2_info = OP2_INFO(); - return !((op1_info | op2_info) & (MAY_BE_ANY - (MAY_BE_LONG|MAY_BE_DOUBLE))); + return !((op1_info | op2_info) & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF) - (MAY_BE_LONG|MAY_BE_DOUBLE))); case ZEND_BW_OR: case ZEND_BW_AND: case ZEND_BW_XOR: @@ -15053,13 +15053,13 @@ static zend_bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zen case ZEND_MOD: op1_info = OP1_INFO(); op2_info = OP2_INFO(); - return !((op1_info | op2_info) & (MAY_BE_ANY - MAY_BE_LONG)); + return !((op1_info | op2_info) & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF) - MAY_BE_LONG)); case ZEND_PRE_INC: case ZEND_PRE_DEC: case ZEND_POST_INC: case ZEND_POST_DEC: op1_info = OP1_INFO(); - return opline->op1_type == IS_CV && !(op1_info & (MAY_BE_ANY - MAY_BE_LONG)); + return opline->op1_type == IS_CV && !(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF) - MAY_BE_LONG)); case ZEND_BOOL: case ZEND_BOOL_NOT: case ZEND_JMPZ: