3217 }
3218
3219 // Generate GHASH intrinsics code
3220 if (UseGHASHIntrinsics) {
3221 StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
3222 }
3223
3224 // Generate SHA1/SHA256/SHA512 intrinsics code.
3225 if (UseSHA1Intrinsics) {
3226 StubRoutines::_sha1_implCompress = generate_SHA1_stub(false, "SHA1_singleBlock");
3227 StubRoutines::_sha1_implCompressMB = generate_SHA1_stub(true, "SHA1_multiBlock");
3228 }
3229 if (UseSHA256Intrinsics) {
3230 StubRoutines::_sha256_implCompress = generate_SHA256_stub(false, "SHA256_singleBlock");
3231 StubRoutines::_sha256_implCompressMB = generate_SHA256_stub(true, "SHA256_multiBlock");
3232 }
3233 if (UseSHA512Intrinsics) {
3234 StubRoutines::_sha512_implCompress = generate_SHA512_stub(false, "SHA512_singleBlock");
3235 StubRoutines::_sha512_implCompressMB = generate_SHA512_stub(true, "SHA512_multiBlock");
3236 }
3237
3238 #ifdef COMPILER2
3239 if (UseMultiplyToLenIntrinsic) {
3240 StubRoutines::_multiplyToLen = generate_multiplyToLen();
3241 }
3242 if (UseMontgomeryMultiplyIntrinsic) {
3243 StubRoutines::_montgomeryMultiply
3244 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
3245 }
3246 if (UseMontgomerySquareIntrinsic) {
3247 StubRoutines::_montgomerySquare
3248 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
3249 }
3250 #endif
3251 #endif // COMPILER2_OR_JVMCI
3252 }
3253
3254 public:
3255 StubGenerator(CodeBuffer* code, StubsKind kind) : StubCodeGenerator(code) {
3256 switch(kind) {
3257 case Initial_stubs:
|
3217 }
3218
3219 // Generate GHASH intrinsics code
3220 if (UseGHASHIntrinsics) {
3221 StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
3222 }
3223
3224 // Generate SHA1/SHA256/SHA512 intrinsics code.
3225 if (UseSHA1Intrinsics) {
3226 StubRoutines::_sha1_implCompress = generate_SHA1_stub(false, "SHA1_singleBlock");
3227 StubRoutines::_sha1_implCompressMB = generate_SHA1_stub(true, "SHA1_multiBlock");
3228 }
3229 if (UseSHA256Intrinsics) {
3230 StubRoutines::_sha256_implCompress = generate_SHA256_stub(false, "SHA256_singleBlock");
3231 StubRoutines::_sha256_implCompressMB = generate_SHA256_stub(true, "SHA256_multiBlock");
3232 }
3233 if (UseSHA512Intrinsics) {
3234 StubRoutines::_sha512_implCompress = generate_SHA512_stub(false, "SHA512_singleBlock");
3235 StubRoutines::_sha512_implCompressMB = generate_SHA512_stub(true, "SHA512_multiBlock");
3236 }
3237 #ifdef COMPILER2
3238 if (UseMultiplyToLenIntrinsic) {
3239 StubRoutines::_multiplyToLen = generate_multiplyToLen();
3240 }
3241 if (UseMontgomeryMultiplyIntrinsic) {
3242 StubRoutines::_montgomeryMultiply
3243 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
3244 }
3245 if (UseMontgomerySquareIntrinsic) {
3246 StubRoutines::_montgomerySquare
3247 = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
3248 }
3249 #endif
3250 #endif // COMPILER2_OR_JVMCI
3251 }
3252
3253 public:
3254 StubGenerator(CodeBuffer* code, StubsKind kind) : StubCodeGenerator(code) {
3255 switch(kind) {
3256 case Initial_stubs:
|