RFR: 8248188: Add IntrinsicCandidate and API for Base64 decoding [v3]
CoreyAshford
github.com+51754783+coreyashford at openjdk.java.net
Thu Oct 8 06:53:26 UTC 2020
> This patch set encompasses the following commits:
>
> - Adds a new HotSpot intrinsic candidate to the java.lang.Base64 class - decodeBlock(), and provides a flexible API for
> the intrinsic. The API is similar to the existing encodeBlock intrinsic.
> - Adds the code in HotSpot to check and martial the new intrinsic's arguments to the arch-specific intrinsic
> implementation
> - Adds a Power64LE-specific implementation of the decodeBlock intrinsic.
> - Adds a JMH microbenchmark for both Base64 encoding and encoding.
> - Enhances the JTReg hotspot intrinsic "TestBase64.java" regression test to more fully test both decoding and encoding.
CoreyAshford has updated the pull request incrementally with seven additional commits since the last revision:
- stubGenerator_ppc.cpp: Fix multiple issues as per Martin Doerr's v2 review
* Remove extraneous comma from SAP copyright notice
* Move align(32) to the head of the loop rather than the beginning of the unwound code
* Simplified looping condition to use a loop counter instead of a final
address. This eliminated the need for the "end" variable, and
essentially replaced it with CTR, which is computed using a simple
bitwise shift of the size.
* Re-ran benchmarks against loop_unrolls values: 1, 2, 4, 8, 16 to find
optimal value, now 4.
* Corrected a typo in the word "elements"
- vm_version_ppc.cpp: per Martin Doerr's review of v2: fix copy/paste error
- vmIntrinsics.cpp: Per Martin Doerr's v2 review: rearrange order of case statement to be consistent with others.
- runtime.cpp: per Martin Doerr's review of v2, correct comment as per current semantics of decodeBlock()
* The reference to "ofs" seems to be a copy/paste error.
* -1 is no longer returned from decodeBlock() in the event of a
non-base64 character being encountered; only a count of bytes written
to dst.
- TestBase64.java: Change comment as per Martin Doerr's v2 review
- Base64.java: Make changes as per Roger Riggs and Martin Doerr's v2 Review
* Make comment about the sl parameter more precise
* Fix comparison to avoid possible integer overflow of sp
- library_call.cpp: Fix rebase merge error
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/293/files
- new: https://git.openjdk.java.net/jdk/pull/293/files/e42ac7db..8932c233
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=293&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=293&range=01-02
Stats: 42 lines in 7 files changed: 9 ins; 11 del; 22 mod
Patch: https://git.openjdk.java.net/jdk/pull/293.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/293/head:pull/293
PR: https://git.openjdk.java.net/jdk/pull/293
More information about the core-libs-dev
mailing list