comparison src/cpu/sparc/vm/sparc.ad @ 643:c771b7f43bbf

6378821: bitCount() should use POPC on SPARC processors and AMD+10h Summary: bitCount() should use POPC on SPARC processors where POPC is implemented directly in hardware. Reviewed-by: kvn, never
author twisti
date Fri, 13 Mar 2009 11:35:17 -0700
parents 660978a2a31a
children bd441136a5ce
comparison
equal deleted inserted replaced
642:660978a2a31a 643:c771b7f43bbf
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) %{