RFR: 8257985: count_trailing_zeros doesn't handle 64-bit values on 32-bit JVM
Claes Redestad
redestad at openjdk.java.net
Fri Dec 11 11:19:03 UTC 2020
Re-implement count_trailing_zeros as a template function similar to count_leading_zeros, adding support for 8 and 16 bit types as well as for 64-bit types on 32-bit builds, which is currently not supported. This prohibits implementing the log2i_exact proposed by #1663 using count_trailing_zeros, as suggested during review.
Compared to count_leading_zeros the implementation can be slightly simpler since subword specializations can simply use the internal 32-bit variant.
Windows doesn't define _BitScanForward64 on 32-bit targets, so the 32-bit variant for handling 64-bit values becomes more convoluted.
-------------
Commit messages:
- Fix malformed Windows code
- Merge branch 'master' into ctz_template
- Add support for 8 and 16-bit types, refactor tests to test all types
- 8257985: count_trailing_zeros doesn't handle 64-bit values on 32-bit JVM
Changes: https://git.openjdk.java.net/jdk/pull/1747/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1747&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8257985
Stats: 102 lines in 2 files changed: 72 ins; 0 del; 30 mod
Patch: https://git.openjdk.java.net/jdk/pull/1747.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1747/head:pull/1747
PR: https://git.openjdk.java.net/jdk/pull/1747
More information about the hotspot-dev
mailing list