9012 ins_cost(300); |
9012 ins_cost(300); |
9013 format %{ "String Compare $str1,$str2 -> $result" %} |
9013 format %{ "String Compare $str1,$str2 -> $result" %} |
9014 ins_encode( enc_String_Compare(str1, str2, tmp1, tmp2, result) ); |
9014 ins_encode( enc_String_Compare(str1, str2, tmp1, tmp2, result) ); |
9015 ins_pipe(long_memory_op); |
9015 ins_pipe(long_memory_op); |
9016 %} |
9016 %} |
|
9017 |
|
9018 |
|
9019 //---------- Population Count Instructions ------------------------------------- |
|
9020 |
|
9021 instruct popCountI(iRegI dst, iRegI src) %{ |
|
9022 predicate(UsePopCountInstruction); |
|
9023 match(Set dst (PopCountI src)); |
|
9024 |
|
9025 format %{ "POPC $src, $dst" %} |
|
9026 ins_encode %{ |
|
9027 __ popc($src$$Register, $dst$$Register); |
|
9028 %} |
|
9029 ins_pipe(ialu_reg); |
|
9030 %} |
|
9031 |
|
9032 // Note: Long.bitCount(long) returns an int. |
|
9033 instruct popCountL(iRegI dst, iRegL src) %{ |
|
9034 predicate(UsePopCountInstruction); |
|
9035 match(Set dst (PopCountL src)); |
|
9036 |
|
9037 format %{ "POPC $src, $dst" %} |
|
9038 ins_encode %{ |
|
9039 __ popc($src$$Register, $dst$$Register); |
|
9040 %} |
|
9041 ins_pipe(ialu_reg); |
|
9042 %} |
|
9043 |
9017 |
9044 |
9018 // ============================================================================ |
9045 // ============================================================================ |
9019 //------------Bytes reverse-------------------------------------------------- |
9046 //------------Bytes reverse-------------------------------------------------- |
9020 |
9047 |
9021 instruct bytes_reverse_int(iRegI dst, stackSlotI src) %{ |
9048 instruct bytes_reverse_int(iRegI dst, stackSlotI src) %{ |