621 #define __ _masm-> |
621 #define __ _masm-> |
622 #else |
622 #else |
623 #define __ (Verbose ? (_masm->block_comment(FILE_AND_LINE),_masm):_masm)-> |
623 #define __ (Verbose ? (_masm->block_comment(FILE_AND_LINE),_masm):_masm)-> |
624 #endif |
624 #endif |
625 |
625 |
626 //---------------------------------------------------------------------- |
|
627 // The following routine generates a subroutine to throw an asynchronous |
|
628 // UnknownError when an unsafe access gets a fault that could not be |
|
629 // reasonably prevented by the programmer. (Example: SIGBUS/OBJERR.) |
|
630 // |
|
631 // Arguments: |
|
632 // trapping PC: ?? |
|
633 // |
|
634 // Results: |
|
635 // Posts an asynchronous exception, skips the trapping instruction. |
|
636 // |
|
637 address generate_handler_for_unsafe_access() { |
|
638 StubCodeMark mark(this, "StubRoutines", "handler_for_unsafe_access"); |
|
639 { |
|
640 address start = __ pc(); |
|
641 __ unimplemented("StubRoutines::handler_for_unsafe_access", 86); |
|
642 return start; |
|
643 } |
|
644 } |
|
645 |
|
646 // Support for uint StubRoutine::zarch::partial_subtype_check(Klass |
626 // Support for uint StubRoutine::zarch::partial_subtype_check(Klass |
647 // sub, Klass super); |
627 // sub, Klass super); |
648 // |
628 // |
649 // Arguments: |
629 // Arguments: |
650 // ret : Z_RET, returned |
630 // ret : Z_RET, returned |
2460 // These entry points require SharedInfo::stack0 to be set up in non-core builds. |
2440 // 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); |
2441 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); |
2442 StubRoutines::_throw_IncompatibleClassChangeError_entry= generate_throw_exception("IncompatibleClassChangeError throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_IncompatibleClassChangeError), false); |
2463 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); |
2443 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); |
2464 |
2444 |
2465 StubRoutines::zarch::_handler_for_unsafe_access_entry = generate_handler_for_unsafe_access(); |
|
2466 |
|
2467 // Support for verify_oop (must happen after universe_init). |
2445 // Support for verify_oop (must happen after universe_init). |
2468 StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop_subroutine(); |
2446 StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop_subroutine(); |
2469 |
2447 |
2470 // Arraycopy stubs used by compilers. |
2448 // Arraycopy stubs used by compilers. |
2471 generate_arraycopy_stubs(); |
2449 generate_arraycopy_stubs(); |