RFR: 8162865 Implementation of SPARC lzcnt

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Nov 22 20:04:09 UTC 2016

Hi Trevor

Do you have performance numbers?

UseVIS is too wide flag to control only these instructions generation.

To be consistent with x86 code please add 
UseCountLeadingZerosInstruction flag to globals_sparc.hpp and its 
setting in vm_version_sparc.cpp (based on has_vis3()) similar to what is 
done for x86.

May be name new instructions *ZerosIvis instead of *ZerosI1 to be clear 
that VIS is used.

Indention in the new test is all over place. Please, fix.


On 11/15/16 3:57 AM, Trevor Watson wrote:
> I have implemented the code to use the lzcnt instruction for both
> integer and long countLeadingZeros() methods on SPARC platforms
> supporting the vis3 instruction set.
> Current "bmi" tests for the above are updated so that they run on both
> SPARC and x86 platforms.
> I've also implemented a test to ensure that Integer.countLeadingZeros()
> and Long.countLeadingZeros() return the correct values when C2 runs.
> This test is currently under the intrinsics "bmi" tests for want of
> somewhere better (they do apply to both SPARC and x86 though).
> http://cr.openjdk.java.net/~alanbur/8162865/
> Thanks,
> Trevor

More information about the hotspot-dev mailing list