4225
4226 if (VM_Version::supports_avx2() && !VM_Version::supports_avx512vl()) {
4227 StubRoutines::x86::_compress_perm_table32 = generate_compress_perm_table("compress_perm_table32", 32);
4228 StubRoutines::x86::_compress_perm_table64 = generate_compress_perm_table("compress_perm_table64", 64);
4229 StubRoutines::x86::_expand_perm_table32 = generate_expand_perm_table("expand_perm_table32", 32);
4230 StubRoutines::x86::_expand_perm_table64 = generate_expand_perm_table("expand_perm_table64", 64);
4231 }
4232
4233 if (VM_Version::supports_avx2() && !VM_Version::supports_avx512_vpopcntdq()) {
4234 // lut implementation influenced by counting 1s algorithm from section 5-1 of Hackers' Delight.
4235 StubRoutines::x86::_vector_popcount_lut = generate_popcount_avx_lut("popcount_lut");
4236 }
4237
4238 generate_aes_stubs();
4239
4240 generate_ghash_stubs();
4241
4242 generate_chacha_stubs();
4243
4244 #ifdef COMPILER2
4245 if ((UseAVX == 2) && EnableX86ECoreOpts) {
4246 generate_string_indexof(StubRoutines::_string_indexof_array);
4247 }
4248 #endif
4249
4250 if (UseAdler32Intrinsics) {
4251 StubRoutines::_updateBytesAdler32 = generate_updateBytesAdler32();
4252 }
4253
4254 if (UsePoly1305Intrinsics) {
4255 StubRoutines::_poly1305_processBlocks = generate_poly1305_processBlocks();
4256 }
4257
4258 if (UseIntPolyIntrinsics) {
4259 StubRoutines::_intpoly_montgomeryMult_P256 = generate_intpoly_montgomeryMult_P256();
4260 StubRoutines::_intpoly_assign = generate_intpoly_assign();
4261 }
4262
4263 if (UseMD5Intrinsics) {
4264 StubRoutines::_md5_implCompress = generate_md5_implCompress(false, "md5_implCompress");
4265 StubRoutines::_md5_implCompressMB = generate_md5_implCompress(true, "md5_implCompressMB");
|
4225
4226 if (VM_Version::supports_avx2() && !VM_Version::supports_avx512vl()) {
4227 StubRoutines::x86::_compress_perm_table32 = generate_compress_perm_table("compress_perm_table32", 32);
4228 StubRoutines::x86::_compress_perm_table64 = generate_compress_perm_table("compress_perm_table64", 64);
4229 StubRoutines::x86::_expand_perm_table32 = generate_expand_perm_table("expand_perm_table32", 32);
4230 StubRoutines::x86::_expand_perm_table64 = generate_expand_perm_table("expand_perm_table64", 64);
4231 }
4232
4233 if (VM_Version::supports_avx2() && !VM_Version::supports_avx512_vpopcntdq()) {
4234 // lut implementation influenced by counting 1s algorithm from section 5-1 of Hackers' Delight.
4235 StubRoutines::x86::_vector_popcount_lut = generate_popcount_avx_lut("popcount_lut");
4236 }
4237
4238 generate_aes_stubs();
4239
4240 generate_ghash_stubs();
4241
4242 generate_chacha_stubs();
4243
4244 #ifdef COMPILER2
4245 if ((UseAVX == 2) && EnableX86ECoreOpts && !UseCompactObjectHeaders) {
4246 generate_string_indexof(StubRoutines::_string_indexof_array);
4247 }
4248 #endif
4249
4250 if (UseAdler32Intrinsics) {
4251 StubRoutines::_updateBytesAdler32 = generate_updateBytesAdler32();
4252 }
4253
4254 if (UsePoly1305Intrinsics) {
4255 StubRoutines::_poly1305_processBlocks = generate_poly1305_processBlocks();
4256 }
4257
4258 if (UseIntPolyIntrinsics) {
4259 StubRoutines::_intpoly_montgomeryMult_P256 = generate_intpoly_montgomeryMult_P256();
4260 StubRoutines::_intpoly_assign = generate_intpoly_assign();
4261 }
4262
4263 if (UseMD5Intrinsics) {
4264 StubRoutines::_md5_implCompress = generate_md5_implCompress(false, "md5_implCompress");
4265 StubRoutines::_md5_implCompressMB = generate_md5_implCompress(true, "md5_implCompressMB");
|