[C2] Add instruct slrL_Reg_immI_convL2I in mips_64.ad

Wed, 22 Feb 2017 16:36:00 -0500

author
fujie
date
Wed, 22 Feb 2017 16:36:00 -0500
changeset 328
245bd118e64c
parent 327
0797c3ebbee4
child 329
6ad65b8037b8

[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);

mercurial