@@ -5314,12 +5314,30 @@ instruct jmpLoopEnd_long(cmpOp cop, mRegI src1, mRegI src2, label labl) %{
53145314 ins_pc_relative(1);
53155315%}
53165316
5317+ instruct jmpLoopEnd_reg_imm12_long(cmpOp cop, mRegI src1, immI12 src2, label labl) %{
5318+ match(CountedLoopEnd cop (CmpI src1 src2));
5319+ effect(USE labl);
5320+
5321+ ins_cost(300);
5322+ format %{ "J$cop $src1, $src2, $labl\t# Loop end @ jmpLoopEnd_reg_imm12_long" %}
5323+ ins_encode %{
5324+ Register op1 = $src1$$Register;
5325+ Label* L = $labl$$label;
5326+ int flag = $cop$$cmpcode;
5327+
5328+ __ addi_d(AT, R0, $src2$$constant);
5329+ __ cmp_branch_long(flag, op1, AT, L, true /* signed */);
5330+ %}
5331+ ins_pipe( pipe_jump );
5332+ ins_pc_relative(1);
5333+ %}
5334+
53175335instruct jmpLoopEnd_reg_zero_long(cmpOp cop, mRegI src1, immI_0 zero, label labl) %{
53185336 match(CountedLoopEnd cop (CmpI src1 zero));
53195337 effect(USE labl);
53205338
53215339 ins_cost(300);
5322- format %{ "J$cop $src1, $zero, $labl\t# Loop end @ jmpLoopEnd_reg_immI_long " %}
5340+ format %{ "J$cop $src1, $zero, $labl\t# Loop end @ jmpLoopEnd_reg_zero_long " %}
53235341 ins_encode %{
53245342 Register op1 = $src1$$Register;
53255343 Label* L = $labl$$label;
@@ -5460,6 +5478,24 @@ instruct cmpN_reg_branch_long(cmpOp cmp, mRegN op1, mRegN op2, label labl) %{
54605478 ins_pipe( pipe_alu_branch );
54615479%}
54625480
5481+ instruct branchConIU_reg_imm12_long(cmpOp cmp, mRegI src1, immI12 src2, label labl) %{
5482+ match( If cmp (CmpU src1 src2) );
5483+ effect(USE labl);
5484+ format %{ "BR$cmp $src1, $src2, $labl #@branchConIU_reg_imm12_long" %}
5485+
5486+ ins_encode %{
5487+ Register op1 = $src1$$Register;
5488+ Label* L = $labl$$label;
5489+ int flag = $cmp$$cmpcode;
5490+ int imm = $src2$$constant;
5491+ __ addi_d(AT, R0, imm);
5492+ __ cmp_branch_long(flag, op1, AT, L, false /* unsigned*/);
5493+ %}
5494+
5495+ ins_pc_relative(1);
5496+ ins_pipe( pipe_alu_branch );
5497+ %}
5498+
54635499instruct branchConIU_reg_reg_long(cmpOp cmp, mRegI src1, mRegI src2, label labl) %{
54645500 match( If cmp (CmpU src1 src2) );
54655501 effect(USE labl);
@@ -5482,7 +5518,7 @@ instruct branchConIU_reg_reg_long(cmpOp cmp, mRegI src1, mRegI src2, label labl)
54825518instruct branchConIU_reg_zero_long(cmpOp cmp, mRegI src1, immI_0 zero, label labl) %{
54835519 match( If cmp (CmpU src1 zero) );
54845520 effect(USE labl);
5485- format %{ "BR$cmp $src1, $zero, $labl #@branchConIU_reg_imm_long " %}
5521+ format %{ "BR$cmp $src1, $zero, $labl #@branchConIU_reg_zero_long " %}
54865522
54875523 ins_encode %{
54885524 Register op1 = $src1$$Register;
@@ -5518,7 +5554,7 @@ instruct branchConI_reg_zero_long(cmpOp cmp, mRegI src1, immI_0 zero, label labl
55185554 match( If cmp (CmpI src1 zero) );
55195555 effect(USE labl);
55205556 ins_cost(200);
5521- format %{ "BR$cmp $src1, $zero, $labl #@branchConI_reg_imm_long " %}
5557+ format %{ "BR$cmp $src1, $zero, $labl #@branchConI_reg_zero_long " %}
55225558
55235559 ins_encode %{
55245560 Register op1 = $src1$$Register;
0 commit comments