Mercurial > hg > truffle
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) %{ |