@@ -3903,9 +3903,9 @@ static int zend_jit_math_long_long(dasm_State **Dst,
3903
3903
| NIY // TODO: test
3904
3904
#endif
3905
3905
} else if (opcode == ZEND_MUL) {
3906
- | GET_ZVAL_LVAL ZREG_TMP2 , op1_addr, TMP1
3907
- | GET_ZVAL_LVAL ZREG_TMP3 , op2_addr, TMP1
3908
- | mul Rx(result_reg), TMP2, TMP3
3906
+ | GET_ZVAL_LVAL ZREG_TMP1 , op1_addr, TMP1
3907
+ | GET_ZVAL_LVAL ZREG_TMP2 , op2_addr, TMP2
3908
+ | mul Rx(result_reg), TMP1, TMP2
3909
3909
if(may_overflow) {
3910
3910
/* Use 'smulh' to get the upper 64 bits fo the 128-bit result.
3911
3911
* For signed multiplication, the top 65 bits of the result will contain
@@ -3915,9 +3915,8 @@ static int zend_jit_math_long_long(dasm_State **Dst,
3915
3915
* Flag: bne -> overflow. beq -> no overflow.
3916
3916
*/
3917
3917
use_ovf_flag = 0;
3918
- | smulh TMP1, TMP2, TMP3
3919
- | asr TMP2, Rx(result_reg), #63
3920
- | cmp TMP1, TMP2
3918
+ | smulh TMP1, TMP1, TMP2
3919
+ | cmp TMP1, Rx(result_reg), asr #63
3921
3920
}
3922
3921
} else {
3923
3922
| GET_ZVAL_LVAL result_reg, op1_addr, TMP1
0 commit comments