3163 }
3164
3165 // Generate GHASH intrinsics code
3166 if (UseGHASHIntrinsics) {
3167 StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
3168 }
3169
3170 // Generate SHA1/SHA256/SHA512 intrinsics code.
3171 if (UseSHA1Intrinsics) {
3172 StubRoutines::_sha1_implCompress = generate_SHA1_stub(false, "SHA1_singleBlock");
3173 StubRoutines::_sha1_implCompressMB = generate_SHA1_stub(true, "SHA1_multiBlock");
3174 }
3175 if (UseSHA256Intrinsics) {
3176 StubRoutines::_sha256_implCompress = generate_SHA256_stub(false, "SHA256_singleBlock");
3177 StubRoutines::_sha256_implCompressMB = generate_SHA256_stub(true, "SHA256_multiBlock");
3178 }
3179 if (UseSHA512Intrinsics) {
3180 StubRoutines::_sha512_implCompress = generate_SHA512_stub(false, "SHA512_singleBlock");
3181 StubRoutines::_sha512_implCompressMB = generate_SHA512_stub(true, "SHA512_multiBlock");
3182 }
3183
3184 #ifdef COMPILER2
3185 if (UseMultiplyToLenIntrinsic) {
3186 StubRoutines::_multiplyToLen = generate_multiplyToLen();
3187 }
3188 if (UseMontgomeryMultiplyIntrinsic) {
3189 StubRoutines::_montgomeryMultiply
3190 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
3191 }
3192 if (UseMontgomerySquareIntrinsic) {
3193 StubRoutines::_montgomerySquare
3194 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
3195 }
3196 if (UseSecondarySupersTable) {
3197 StubRoutines::_lookup_secondary_supers_table_slow_path_stub = generate_lookup_secondary_supers_table_slow_path_stub();
3198 if (!InlineSecondarySupersTest) {
3199 for (int slot = 0; slot < Klass::SECONDARY_SUPERS_TABLE_SIZE; slot++) {
3200 StubRoutines::_lookup_secondary_supers_table_stubs[slot] = generate_lookup_secondary_supers_table_stub(slot);
3201 }
3202 }
3203 }
|
3163 }
3164
3165 // Generate GHASH intrinsics code
3166 if (UseGHASHIntrinsics) {
3167 StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
3168 }
3169
3170 // Generate SHA1/SHA256/SHA512 intrinsics code.
3171 if (UseSHA1Intrinsics) {
3172 StubRoutines::_sha1_implCompress = generate_SHA1_stub(false, "SHA1_singleBlock");
3173 StubRoutines::_sha1_implCompressMB = generate_SHA1_stub(true, "SHA1_multiBlock");
3174 }
3175 if (UseSHA256Intrinsics) {
3176 StubRoutines::_sha256_implCompress = generate_SHA256_stub(false, "SHA256_singleBlock");
3177 StubRoutines::_sha256_implCompressMB = generate_SHA256_stub(true, "SHA256_multiBlock");
3178 }
3179 if (UseSHA512Intrinsics) {
3180 StubRoutines::_sha512_implCompress = generate_SHA512_stub(false, "SHA512_singleBlock");
3181 StubRoutines::_sha512_implCompressMB = generate_SHA512_stub(true, "SHA512_multiBlock");
3182 }
3183 #ifdef COMPILER2
3184 if (UseMultiplyToLenIntrinsic) {
3185 StubRoutines::_multiplyToLen = generate_multiplyToLen();
3186 }
3187 if (UseMontgomeryMultiplyIntrinsic) {
3188 StubRoutines::_montgomeryMultiply
3189 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
3190 }
3191 if (UseMontgomerySquareIntrinsic) {
3192 StubRoutines::_montgomerySquare
3193 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
3194 }
3195 if (UseSecondarySupersTable) {
3196 StubRoutines::_lookup_secondary_supers_table_slow_path_stub = generate_lookup_secondary_supers_table_slow_path_stub();
3197 if (!InlineSecondarySupersTest) {
3198 for (int slot = 0; slot < Klass::SECONDARY_SUPERS_TABLE_SIZE; slot++) {
3199 StubRoutines::_lookup_secondary_supers_table_stubs[slot] = generate_lookup_secondary_supers_table_stub(slot);
3200 }
3201 }
3202 }
|