8245098: Make SafeFetch32/N available earlier
Reviewed-by: kbarrett, dholmes
This commit is contained in:
parent
ce6aadbd2f
commit
bcf99aa98e
@ -5748,6 +5748,14 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dcos)) {
|
if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dcos)) {
|
||||||
StubRoutines::_dcos = generate_dsin_dcos(/* isCos = */ true);
|
StubRoutines::_dcos = generate_dsin_dcos(/* isCos = */ true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safefetch stubs.
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
||||||
|
&StubRoutines::_safefetch32_fault_pc,
|
||||||
|
&StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
||||||
|
&StubRoutines::_safefetchN_fault_pc,
|
||||||
|
&StubRoutines::_safefetchN_continuation_pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate_all() {
|
void generate_all() {
|
||||||
@ -5851,13 +5859,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
StubRoutines::_updateBytesAdler32 = generate_updateBytesAdler32();
|
StubRoutines::_updateBytesAdler32 = generate_updateBytesAdler32();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safefetch stubs.
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
|
||||||
&StubRoutines::_safefetch32_fault_pc,
|
|
||||||
&StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
|
||||||
&StubRoutines::_safefetchN_fault_pc,
|
|
||||||
&StubRoutines::_safefetchN_continuation_pc);
|
|
||||||
StubRoutines::aarch64::set_completed();
|
StubRoutines::aarch64::set_completed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3028,6 +3028,15 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
|
StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
|
||||||
StubRoutines::_atomic_load_long_entry = generate_atomic_load_long();
|
StubRoutines::_atomic_load_long_entry = generate_atomic_load_long();
|
||||||
StubRoutines::_atomic_store_long_entry = generate_atomic_store_long();
|
StubRoutines::_atomic_store_long_entry = generate_atomic_store_long();
|
||||||
|
|
||||||
|
// Safefetch stubs.
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
||||||
|
&StubRoutines::_safefetch32_fault_pc,
|
||||||
|
&StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
assert (sizeof(int) == wordSize, "32-bit architecture");
|
||||||
|
StubRoutines::_safefetchN_entry = StubRoutines::_safefetch32_entry;
|
||||||
|
StubRoutines::_safefetchN_fault_pc = StubRoutines::_safefetch32_fault_pc;
|
||||||
|
StubRoutines::_safefetchN_continuation_pc = StubRoutines::_safefetch32_continuation_pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate_all() {
|
void generate_all() {
|
||||||
@ -3053,15 +3062,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
// arraycopy stubs used by compilers
|
// arraycopy stubs used by compilers
|
||||||
generate_arraycopy_stubs();
|
generate_arraycopy_stubs();
|
||||||
|
|
||||||
// Safefetch stubs.
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
|
||||||
&StubRoutines::_safefetch32_fault_pc,
|
|
||||||
&StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
assert (sizeof(int) == wordSize, "32-bit architecture");
|
|
||||||
StubRoutines::_safefetchN_entry = StubRoutines::_safefetch32_entry;
|
|
||||||
StubRoutines::_safefetchN_fault_pc = StubRoutines::_safefetch32_fault_pc;
|
|
||||||
StubRoutines::_safefetchN_continuation_pc = StubRoutines::_safefetch32_continuation_pc;
|
|
||||||
|
|
||||||
#ifdef COMPILE_CRYPTO
|
#ifdef COMPILE_CRYPTO
|
||||||
// generate AES intrinsics code
|
// generate AES intrinsics code
|
||||||
if (UseAESIntrinsics) {
|
if (UseAESIntrinsics) {
|
||||||
|
@ -3577,6 +3577,14 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
StubRoutines::_crc32c_table_addr = StubRoutines::generate_crc_constants(REVERSE_CRC32C_POLY);
|
StubRoutines::_crc32c_table_addr = StubRoutines::generate_crc_constants(REVERSE_CRC32C_POLY);
|
||||||
StubRoutines::_updateBytesCRC32C = generate_CRC32_updateBytes(true);
|
StubRoutines::_updateBytesCRC32C = generate_CRC32_updateBytes(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safefetch stubs.
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
||||||
|
&StubRoutines::_safefetch32_fault_pc,
|
||||||
|
&StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
||||||
|
&StubRoutines::_safefetchN_fault_pc,
|
||||||
|
&StubRoutines::_safefetchN_continuation_pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate_all() {
|
void generate_all() {
|
||||||
@ -3595,14 +3603,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
// arraycopy stubs used by compilers
|
// arraycopy stubs used by compilers
|
||||||
generate_arraycopy_stubs();
|
generate_arraycopy_stubs();
|
||||||
|
|
||||||
// Safefetch stubs.
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
|
||||||
&StubRoutines::_safefetch32_fault_pc,
|
|
||||||
&StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
|
||||||
&StubRoutines::_safefetchN_fault_pc,
|
|
||||||
&StubRoutines::_safefetchN_continuation_pc);
|
|
||||||
|
|
||||||
#ifdef COMPILER2
|
#ifdef COMPILER2
|
||||||
if (UseMultiplyToLenIntrinsic) {
|
if (UseMultiplyToLenIntrinsic) {
|
||||||
StubRoutines::_multiplyToLen = generate_multiplyToLen();
|
StubRoutines::_multiplyToLen = generate_multiplyToLen();
|
||||||
|
@ -2337,6 +2337,10 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
|
|
||||||
// Comapct string intrinsics: Translate table for string inflate intrinsic. Used by trot instruction.
|
// Comapct string intrinsics: Translate table for string inflate intrinsic. Used by trot instruction.
|
||||||
StubRoutines::zarch::_trot_table_addr = (address)StubRoutines::zarch::_trot_table;
|
StubRoutines::zarch::_trot_table_addr = (address)StubRoutines::zarch::_trot_table;
|
||||||
|
|
||||||
|
// safefetch stubs
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry, &StubRoutines::_safefetch32_fault_pc, &StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry, &StubRoutines::_safefetchN_fault_pc, &StubRoutines::_safefetchN_continuation_pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2356,10 +2360,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
// Arraycopy stubs used by compilers.
|
// Arraycopy stubs used by compilers.
|
||||||
generate_arraycopy_stubs();
|
generate_arraycopy_stubs();
|
||||||
|
|
||||||
// safefetch stubs
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry, &StubRoutines::_safefetch32_fault_pc, &StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry, &StubRoutines::_safefetchN_fault_pc, &StubRoutines::_safefetchN_continuation_pc);
|
|
||||||
|
|
||||||
// Generate AES intrinsics code.
|
// Generate AES intrinsics code.
|
||||||
if (UseAESIntrinsics) {
|
if (UseAESIntrinsics) {
|
||||||
StubRoutines::_aescrypt_encryptBlock = generate_AES_encryptBlock("AES_encryptBlock");
|
StubRoutines::_aescrypt_encryptBlock = generate_AES_encryptBlock("AES_encryptBlock");
|
||||||
|
@ -5744,6 +5744,14 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
StubRoutines::_crc32c_table_addr = (address)StubRoutines::Sparc::_crc32c_table;
|
StubRoutines::_crc32c_table_addr = (address)StubRoutines::Sparc::_crc32c_table;
|
||||||
StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C();
|
StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safefetch stubs.
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
||||||
|
&StubRoutines::_safefetch32_fault_pc,
|
||||||
|
&StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
||||||
|
&StubRoutines::_safefetchN_fault_pc,
|
||||||
|
&StubRoutines::_safefetchN_continuation_pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5767,14 +5775,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
// Don't initialize the platform math functions since sparc
|
// Don't initialize the platform math functions since sparc
|
||||||
// doesn't have intrinsics for these operations.
|
// doesn't have intrinsics for these operations.
|
||||||
|
|
||||||
// Safefetch stubs.
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
|
||||||
&StubRoutines::_safefetch32_fault_pc,
|
|
||||||
&StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
|
||||||
&StubRoutines::_safefetchN_fault_pc,
|
|
||||||
&StubRoutines::_safefetchN_continuation_pc);
|
|
||||||
|
|
||||||
// generate AES intrinsics code
|
// generate AES intrinsics code
|
||||||
if (UseAESIntrinsics) {
|
if (UseAESIntrinsics) {
|
||||||
StubRoutines::_aescrypt_encryptBlock = generate_aescrypt_encryptBlock();
|
StubRoutines::_aescrypt_encryptBlock = generate_aescrypt_encryptBlock();
|
||||||
|
@ -3870,6 +3870,14 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
StubRoutines::_dtan = generate_libmTan();
|
StubRoutines::_dtan = generate_libmTan();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safefetch stubs.
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
||||||
|
&StubRoutines::_safefetch32_fault_pc,
|
||||||
|
&StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
StubRoutines::_safefetchN_entry = StubRoutines::_safefetch32_entry;
|
||||||
|
StubRoutines::_safefetchN_fault_pc = StubRoutines::_safefetch32_fault_pc;
|
||||||
|
StubRoutines::_safefetchN_continuation_pc = StubRoutines::_safefetch32_continuation_pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate_all() {
|
void generate_all() {
|
||||||
@ -3933,14 +3941,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
|
StubRoutines::_ghash_processBlocks = generate_ghash_processBlocks();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safefetch stubs.
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
|
||||||
&StubRoutines::_safefetch32_fault_pc,
|
|
||||||
&StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
StubRoutines::_safefetchN_entry = StubRoutines::_safefetch32_entry;
|
|
||||||
StubRoutines::_safefetchN_fault_pc = StubRoutines::_safefetch32_fault_pc;
|
|
||||||
StubRoutines::_safefetchN_continuation_pc = StubRoutines::_safefetch32_continuation_pc;
|
|
||||||
|
|
||||||
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
|
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
|
||||||
if (bs_nm != NULL) {
|
if (bs_nm != NULL) {
|
||||||
StubRoutines::x86::_method_entry_barrier = generate_method_entry_barrier();
|
StubRoutines::x86::_method_entry_barrier = generate_method_entry_barrier();
|
||||||
|
@ -6414,6 +6414,14 @@ address generate_avx_ghash_processBlocks() {
|
|||||||
StubRoutines::_dtan = generate_libmTan();
|
StubRoutines::_dtan = generate_libmTan();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safefetch stubs.
|
||||||
|
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
||||||
|
&StubRoutines::_safefetch32_fault_pc,
|
||||||
|
&StubRoutines::_safefetch32_continuation_pc);
|
||||||
|
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
||||||
|
&StubRoutines::_safefetchN_fault_pc,
|
||||||
|
&StubRoutines::_safefetchN_continuation_pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate_all() {
|
void generate_all() {
|
||||||
@ -6533,14 +6541,6 @@ address generate_avx_ghash_processBlocks() {
|
|||||||
StubRoutines::_base64_encodeBlock = generate_base64_encodeBlock();
|
StubRoutines::_base64_encodeBlock = generate_base64_encodeBlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safefetch stubs.
|
|
||||||
generate_safefetch("SafeFetch32", sizeof(int), &StubRoutines::_safefetch32_entry,
|
|
||||||
&StubRoutines::_safefetch32_fault_pc,
|
|
||||||
&StubRoutines::_safefetch32_continuation_pc);
|
|
||||||
generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
|
|
||||||
&StubRoutines::_safefetchN_fault_pc,
|
|
||||||
&StubRoutines::_safefetchN_continuation_pc);
|
|
||||||
|
|
||||||
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
|
BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
|
||||||
if (bs_nm != NULL) {
|
if (bs_nm != NULL) {
|
||||||
StubRoutines::x86::_method_entry_barrier = generate_method_entry_barrier();
|
StubRoutines::x86::_method_entry_barrier = generate_method_entry_barrier();
|
||||||
|
Loading…
Reference in New Issue
Block a user