RFR: 8248188: Add HotSpotIntrinsicCandidate and API for Base64 decoding

Martin Doerr mdoerr at openjdk.java.net
Sat Sep 26 15:36:28 UTC 2020


On Tue, 22 Sep 2020 02:45:36 GMT, CoreyAshford <github.com+51754783+CoreyAshford at openjdk.org> wrote:

> 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.

AOT support needs an update:
#  Internal Error (jdk/src/hotspot/share/aot/aotCodeHeap.cpp:557), pid=345656, tid=364316
#  guarantee(adr != NULL) failed: AOT Symbol not found _aot_stub_routines_base64_decodeBlock

V  [jvm.dll+0x1dbc6e]  AOTCodeHeap::link_stub_routines_symbols+0xf7e  (aotcodeheap.cpp:557)
V  [jvm.dll+0x1d95e8]  AOTCodeHeap::link_global_lib_symbols+0x2f8  (aotcodeheap.cpp:603)
V  [jvm.dll+0x1dc616]  AOTCodeHeap::load_klass_data+0x476  (aotcodeheap.cpp:840)
V  [jvm.dll+0x1e1021]  AOTLoader::load_for_klass+0x161  (aotloader.cpp:55)
V  [jvm.dll+0x5fec96]  InstanceKlass::initialize_impl+0x4e6  (instanceklass.cpp:1159)
V  [jvm.dll+0x5fead6]  InstanceKlass::initialize_impl+0x326  (instanceklass.cpp:1133)
V  [jvm.dll+0xc5a633]  Threads::initialize_java_lang_classes+0x93  (thread.cpp:3766)
V  [jvm.dll+0xc57c32]  Threads::create_vm+0xa12  (thread.cpp:4037)

Can be reproduced by running JTREG tests:
compiler/aot/calls/fromAot

-------------

Changes requested by mdoerr (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/293


More information about the core-libs-dev mailing list