< prev index next >

src/hotspot/cpu/ppc/stubGenerator_ppc.cpp

Print this page
rev 53441 : 8217459: [PPC64] Cleanup non-vector version of CRC32
Reviewed-by:


3479     // Entry points that exist in all platforms.
3480     // Note: This is code that could be shared among different platforms - however the
3481     // benefit seems to be smaller than the disadvantage of having a
3482     // much more complicated generator structure. See also comment in
3483     // stubRoutines.hpp.
3484 
3485     StubRoutines::_forward_exception_entry          = generate_forward_exception();
3486     StubRoutines::_call_stub_entry                  = generate_call_stub(StubRoutines::_call_stub_return_address);
3487     StubRoutines::_catch_exception_entry            = generate_catch_exception();
3488 
3489     // Build this early so it's available for the interpreter.
3490     StubRoutines::_throw_StackOverflowError_entry   =
3491       generate_throw_exception("StackOverflowError throw_exception",
3492                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError), false);
3493     StubRoutines::_throw_delayed_StackOverflowError_entry =
3494       generate_throw_exception("delayed StackOverflowError throw_exception",
3495                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError), false);
3496 
3497     // CRC32 Intrinsics.
3498     if (UseCRC32Intrinsics) {
3499       StubRoutines::_crc_table_adr = (address)StubRoutines::ppc64::_crc_table;
3500       if (VM_Version::has_vpmsumb()) {
3501         StubRoutines::ppc64::_crc_constants = StubRoutines::ppc64::generate_crc_constants(REVERSE_CRC32_POLY);
3502       }
3503       StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes(false);
3504     }
3505 
3506     // CRC32C Intrinsics.
3507     if (UseCRC32CIntrinsics) {
3508       StubRoutines::_crc32c_table_addr = (address)StubRoutines::ppc64::_crc32c_table;
3509       if (VM_Version::has_vpmsumb()) {
3510         StubRoutines::ppc64::_crc32c_constants = StubRoutines::ppc64::generate_crc_constants(REVERSE_CRC32C_POLY);
3511       }
3512       StubRoutines::_updateBytesCRC32C = generate_CRC32_updateBytes(true);
3513     }
3514   }
3515 
3516   void generate_all() {
3517     // Generates all stubs and initializes the entry points
3518 
3519     // These entry points require SharedInfo::stack0 to be set up in
3520     // non-core builds
3521     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
3522     // Handle IncompatibleClassChangeError in itable stubs.
3523     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
3524     StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call), false);
3525 
3526     // support for verify_oop (must happen after universe_init)
3527     StubRoutines::_verify_oop_subroutine_entry             = generate_verify_oop();
3528 
3529     // arraycopy stubs used by compilers
3530     generate_arraycopy_stubs();
3531 




3479     // Entry points that exist in all platforms.
3480     // Note: This is code that could be shared among different platforms - however the
3481     // benefit seems to be smaller than the disadvantage of having a
3482     // much more complicated generator structure. See also comment in
3483     // stubRoutines.hpp.
3484 
3485     StubRoutines::_forward_exception_entry          = generate_forward_exception();
3486     StubRoutines::_call_stub_entry                  = generate_call_stub(StubRoutines::_call_stub_return_address);
3487     StubRoutines::_catch_exception_entry            = generate_catch_exception();
3488 
3489     // Build this early so it's available for the interpreter.
3490     StubRoutines::_throw_StackOverflowError_entry   =
3491       generate_throw_exception("StackOverflowError throw_exception",
3492                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError), false);
3493     StubRoutines::_throw_delayed_StackOverflowError_entry =
3494       generate_throw_exception("delayed StackOverflowError throw_exception",
3495                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError), false);
3496 
3497     // CRC32 Intrinsics.
3498     if (UseCRC32Intrinsics) {
3499       StubRoutines::_crc_table_adr = StubRoutines::generate_crc_constants(REVERSE_CRC32_POLY);



3500       StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes(false);
3501     }
3502 
3503     // CRC32C Intrinsics.
3504     if (UseCRC32CIntrinsics) {
3505       StubRoutines::_crc32c_table_addr = StubRoutines::generate_crc_constants(REVERSE_CRC32C_POLY);



3506       StubRoutines::_updateBytesCRC32C = generate_CRC32_updateBytes(true);
3507     }
3508   }
3509 
3510   void generate_all() {
3511     // Generates all stubs and initializes the entry points
3512 
3513     // These entry points require SharedInfo::stack0 to be set up in
3514     // non-core builds
3515     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
3516     // Handle IncompatibleClassChangeError in itable stubs.
3517     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);
3518     StubRoutines::_throw_NullPointerException_at_call_entry= generate_throw_exception("NullPointerException at call throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_NullPointerException_at_call), false);
3519 
3520     // support for verify_oop (must happen after universe_init)
3521     StubRoutines::_verify_oop_subroutine_entry             = generate_verify_oop();
3522 
3523     // arraycopy stubs used by compilers
3524     generate_arraycopy_stubs();
3525 


< prev index next >