< prev index next >

src/hotspot/share/opto/library_call.cpp

Print this page

        

*** 299,308 **** --- 299,309 ---- Node* inline_cipherBlockChaining_AESCrypt_predicate(bool decrypting); Node* inline_counterMode_AESCrypt_predicate(); Node* get_key_start_from_aescrypt_object(Node* aescrypt_object); Node* get_original_key_start_from_aescrypt_object(Node* aescrypt_object); bool inline_ghash_processBlocks(); + bool inline_base64_encodeBlock(); bool inline_sha_implCompress(vmIntrinsics::ID id); bool inline_digestBase_implCompressMB(int predicate); bool inline_sha_implCompressMB(Node* digestBaseObj, ciInstanceKlass* instklass_SHA, bool long_state, address stubAddr, const char *stubName, Node* src_start, Node* ofs, Node* limit);
*** 834,843 **** --- 835,846 ---- case vmIntrinsics::_vectorizedMismatch: return inline_vectorizedMismatch(); case vmIntrinsics::_ghash_processBlocks: return inline_ghash_processBlocks(); + case vmIntrinsics::_base64_encodeBlock: + return inline_base64_encodeBlock(); case vmIntrinsics::_encodeISOArray: case vmIntrinsics::_encodeByteISOArray: return inline_encodeISOArray();
*** 6631,6640 **** --- 6634,6672 ---- stubAddr, stubName, TypePtr::BOTTOM, state_start, subkeyH_start, data_start, len); return true; } + bool LibraryCallKit::inline_base64_encodeBlock() { + address stubAddr; + const char *stubName; + assert(UseBASE64Intrinsics, "need Base64 intrinsics support"); + assert(callee()->signature()->size() == 6, "base64_encodeBlock has 6 parameters"); + stubAddr = StubRoutines::base64_encodeBlock(); + stubName = "encodeBlock"; + + if (!stubAddr) return false; + Node* base64obj = argument(0); + Node* src = argument(1); + Node* offset = argument(2); + Node* len = argument(3); + Node* dest = argument(4); + Node* dp = argument(5); + Node* isURL = argument(6); + + Node* src_start = array_element_address(src, intcon(0), T_BYTE); + assert(src_start, "source array is NULL"); + Node* dest_start = array_element_address(dest, intcon(0), T_BYTE); + assert(dest_start, "destination array is NULL"); + + Node* base64 = make_runtime_call(RC_LEAF, + OptoRuntime::base64_encodeBlock_Type(), + stubAddr, stubName, TypePtr::BOTTOM, + src_start, offset, len, dest_start, dp, isURL); + return true; + } + //------------------------------inline_sha_implCompress----------------------- // // Calculate SHA (i.e., SHA-1) for single-block byte[] array. // void com.sun.security.provider.SHA.implCompress(byte[] buf, int ofs) //
< prev index next >