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