14491 instruct overflowSubL_reg_reg(rFlagsReg cr, iRegL op1, iRegL op2)
14492 %{
14493 match(Set cr (OverflowSubL op1 op2));
14494
14495 format %{ "cmp $op1, $op2\t# overflow check long" %}
14496 ins_cost(INSN_COST);
14497 ins_encode %{
14498 __ cmp($op1$$Register, $op2$$Register);
14499 %}
14500
14501 ins_pipe(icmp_reg_reg);
14502 %}
14503
14504 instruct overflowSubL_reg_imm(rFlagsReg cr, iRegL op1, immLAddSub op2)
14505 %{
14506 match(Set cr (OverflowSubL op1 op2));
14507
14508 format %{ "cmp $op1, $op2\t# overflow check long" %}
14509 ins_cost(INSN_COST);
14510 ins_encode %{
14511 __ cmp($op1$$Register, $op2$$constant);
14512 %}
14513
14514 ins_pipe(icmp_reg_imm);
14515 %}
14516
14517 instruct overflowNegI_reg(rFlagsReg cr, immI0 zero, iRegIorL2I op1)
14518 %{
14519 match(Set cr (OverflowSubI zero op1));
14520
14521 format %{ "cmpw zr, $op1\t# overflow check int" %}
14522 ins_cost(INSN_COST);
14523 ins_encode %{
14524 __ cmpw(zr, $op1$$Register);
14525 %}
14526
14527 ins_pipe(icmp_reg_imm);
14528 %}
14529
14530 instruct overflowNegL_reg(rFlagsReg cr, immI0 zero, iRegL op1)
14531 %{
|
14491 instruct overflowSubL_reg_reg(rFlagsReg cr, iRegL op1, iRegL op2)
14492 %{
14493 match(Set cr (OverflowSubL op1 op2));
14494
14495 format %{ "cmp $op1, $op2\t# overflow check long" %}
14496 ins_cost(INSN_COST);
14497 ins_encode %{
14498 __ cmp($op1$$Register, $op2$$Register);
14499 %}
14500
14501 ins_pipe(icmp_reg_reg);
14502 %}
14503
14504 instruct overflowSubL_reg_imm(rFlagsReg cr, iRegL op1, immLAddSub op2)
14505 %{
14506 match(Set cr (OverflowSubL op1 op2));
14507
14508 format %{ "cmp $op1, $op2\t# overflow check long" %}
14509 ins_cost(INSN_COST);
14510 ins_encode %{
14511 __ subs(zr, $op1$$Register, $op2$$constant);
14512 %}
14513
14514 ins_pipe(icmp_reg_imm);
14515 %}
14516
14517 instruct overflowNegI_reg(rFlagsReg cr, immI0 zero, iRegIorL2I op1)
14518 %{
14519 match(Set cr (OverflowSubI zero op1));
14520
14521 format %{ "cmpw zr, $op1\t# overflow check int" %}
14522 ins_cost(INSN_COST);
14523 ins_encode %{
14524 __ cmpw(zr, $op1$$Register);
14525 %}
14526
14527 ins_pipe(icmp_reg_imm);
14528 %}
14529
14530 instruct overflowNegL_reg(rFlagsReg cr, immI0 zero, iRegL op1)
14531 %{
|