Wed, 22 Feb 2017 16:36:00 -0500
[C2] Add instruct slrL_Reg_immI_convL2I in mips_64.ad
src/cpu/mips/vm/mips_64.ad | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/mips_64.ad Mon Feb 20 12:23:10 2017 -0500 1.2 +++ b/src/cpu/mips/vm/mips_64.ad Wed Feb 22 16:36:00 2017 -0500 1.3 @@ -11056,6 +11056,21 @@ 1.4 ins_pipe( ialu_regL_regL ); 1.5 %} 1.6 1.7 +instruct slrL_Reg_immI_convL2I(mRegI dst, mRegL src, immI_32_63 shift) %{ 1.8 + match(Set dst (ConvL2I (URShiftL src shift))); 1.9 + predicate(n->in(1)->in(2)->get_int() > 32); 1.10 + ins_cost(80); 1.11 + format %{ "slrL $dst, $src, $shift @ slrL_Reg_immI_convL2I" %} 1.12 + ins_encode %{ 1.13 + Register src_reg = as_Register($src$$reg); 1.14 + Register dst_reg = as_Register($dst$$reg); 1.15 + int shamt = $shift$$constant; 1.16 + 1.17 + __ dsrl32(dst_reg, src_reg, shamt - 32); 1.18 + %} 1.19 + ins_pipe( ialu_regL_regL ); 1.20 +%} 1.21 + 1.22 instruct slrL_P2XReg_immI_32_63(mRegL dst, mRegP src, immI_32_63 shift) %{ 1.23 match(Set dst (URShiftL (CastP2X src) shift)); 1.24 ins_cost(80);