< prev index next >

src/cpu/s390/vm/stubGenerator_s390.cpp

Print this page
rev 12487 : 8172049: [s390] Implement "JEP 270: Reserved Stack Areas for Critical Sections".
Reviewed-by: mdoerr


2416     return start;
2417   }
2418 
2419   void generate_initial() {
2420     // Generates all stubs and initializes the entry points.
2421 
2422     // Entry points that exist in all platforms.
2423     // Note: This is code that could be shared among different
2424     // platforms - however the benefit seems to be smaller than the
2425     // disadvantage of having a much more complicated generator
2426     // structure. See also comment in stubRoutines.hpp.
2427     StubRoutines::_forward_exception_entry                 = generate_forward_exception();
2428 
2429     StubRoutines::_call_stub_entry                         = generate_call_stub(StubRoutines::_call_stub_return_address);
2430     StubRoutines::_catch_exception_entry                   = generate_catch_exception();
2431 
2432     // Build this early so it's available for the interpreter.
2433     StubRoutines::_throw_StackOverflowError_entry          =
2434       generate_throw_exception("StackOverflowError throw_exception",
2435                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError), false);



2436 
2437     //----------------------------------------------------------------------
2438     // Entry points that are platform specific.
2439     // Build this early so it's available for the interpreter.
2440     StubRoutines::_throw_StackOverflowError_entry          =
2441       generate_throw_exception("StackOverflowError throw_exception",
2442                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError), false);
2443 
2444     if (UseCRC32Intrinsics) {
2445       // We have no CRC32 table on z/Architecture.
2446       StubRoutines::_crc_table_adr    = (address)StubRoutines::zarch::_crc_table;
2447       StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes("CRC32_updateBytes");
2448     }
2449 
2450     // Comapct string intrinsics: Translate table for string inflate intrinsic. Used by trot instruction.
2451     StubRoutines::zarch::_trot_table_addr = (address)StubRoutines::zarch::_trot_table;
2452   }
2453 
2454 
2455   void generate_all() {
2456     // Generates all stubs and initializes the entry points.
2457 
2458     StubRoutines::zarch::_partial_subtype_check            = generate_partial_subtype_check();
2459 
2460     // These entry points require SharedInfo::stack0 to be set up in non-core builds.
2461     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
2462     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);




2416     return start;
2417   }
2418 
2419   void generate_initial() {
2420     // Generates all stubs and initializes the entry points.
2421 
2422     // Entry points that exist in all platforms.
2423     // Note: This is code that could be shared among different
2424     // platforms - however the benefit seems to be smaller than the
2425     // disadvantage of having a much more complicated generator
2426     // structure. See also comment in stubRoutines.hpp.
2427     StubRoutines::_forward_exception_entry                 = generate_forward_exception();
2428 
2429     StubRoutines::_call_stub_entry                         = generate_call_stub(StubRoutines::_call_stub_return_address);
2430     StubRoutines::_catch_exception_entry                   = generate_catch_exception();
2431 
2432     // Build this early so it's available for the interpreter.
2433     StubRoutines::_throw_StackOverflowError_entry          =
2434       generate_throw_exception("StackOverflowError throw_exception",
2435                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError), false);
2436     StubRoutines::_throw_delayed_StackOverflowError_entry  =
2437       generate_throw_exception("delayed StackOverflowError throw_exception",
2438                                CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError), false);
2439 
2440     //----------------------------------------------------------------------
2441     // Entry points that are platform specific.




2442 
2443     if (UseCRC32Intrinsics) {
2444       // We have no CRC32 table on z/Architecture.
2445       StubRoutines::_crc_table_adr    = (address)StubRoutines::zarch::_crc_table;
2446       StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes("CRC32_updateBytes");
2447     }
2448 
2449     // Comapct string intrinsics: Translate table for string inflate intrinsic. Used by trot instruction.
2450     StubRoutines::zarch::_trot_table_addr = (address)StubRoutines::zarch::_trot_table;
2451   }
2452 
2453 
2454   void generate_all() {
2455     // Generates all stubs and initializes the entry points.
2456 
2457     StubRoutines::zarch::_partial_subtype_check            = generate_partial_subtype_check();
2458 
2459     // These entry points require SharedInfo::stack0 to be set up in non-core builds.
2460     StubRoutines::_throw_AbstractMethodError_entry         = generate_throw_exception("AbstractMethodError throw_exception",          CAST_FROM_FN_PTR(address, SharedRuntime::throw_AbstractMethodError),  false);
2461     StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError),  false);


< prev index next >