src/cpu/sparc/vm/sharedRuntime_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
7045514 Cdiff src/cpu/sparc/vm/sharedRuntime_sparc.cpp
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
Print this page
*** 45,67 ****
#include "shark/sharkCompiler.hpp"
#endif
#define __ masm->
- #ifdef COMPILER2
- UncommonTrapBlob* SharedRuntime::_uncommon_trap_blob;
- #endif // COMPILER2
- DeoptimizationBlob* SharedRuntime::_deopt_blob;
- SafepointBlob* SharedRuntime::_polling_page_safepoint_handler_blob;
- SafepointBlob* SharedRuntime::_polling_page_return_handler_blob;
- RuntimeStub* SharedRuntime::_wrong_method_blob;
- RuntimeStub* SharedRuntime::_ic_miss_blob;
- RuntimeStub* SharedRuntime::_resolve_opt_virtual_call_blob;
- RuntimeStub* SharedRuntime::_resolve_virtual_call_blob;
- RuntimeStub* SharedRuntime::_resolve_static_call_blob;
-
class RegisterSaver {
// Used for saving volatile registers. This is Gregs, Fregs, I/L/O.
// The Oregs are problematic. In the 32bit build the compiler can
// have O registers live with 64 bit quantities. A window save will
--- 45,55 ----
*** 3490,3500 ****
// the adjusted FP off to the GC stack-crawler: this will modify the caller's
// SP and mess up HIS OopMaps. So we first adjust the caller's SP, then save
// the 64-bit %o's, then do a save, then fixup the caller's SP (our FP).
// Tricky, tricky, tricky...
! static SafepointBlob* generate_handler_blob(address call_ptr, bool cause_return) {
assert (StubRoutines::forward_exception_entry() != NULL, "must be generated before");
// allocate space for the code
ResourceMark rm;
// setup code generation tools
--- 3478,3488 ----
// the adjusted FP off to the GC stack-crawler: this will modify the caller's
// SP and mess up HIS OopMaps. So we first adjust the caller's SP, then save
// the 64-bit %o's, then do a save, then fixup the caller's SP (our FP).
// Tricky, tricky, tricky...
! SafepointBlob* SharedRuntime::generate_handler_blob(address call_ptr, bool cause_return) {
assert (StubRoutines::forward_exception_entry() != NULL, "must be generated before");
// allocate space for the code
ResourceMark rm;
// setup code generation tools
*** 3585,3595 ****
// Generate a stub that calls into vm to find out the proper destination
// of a java call. All the argument registers are live at this point
// but since this is generic code we don't know what they are and the caller
// must do any gc of the args.
//
! static RuntimeStub* generate_resolve_blob(address destination, const char* name) {
assert (StubRoutines::forward_exception_entry() != NULL, "must be generated before");
// allocate space for the code
ResourceMark rm;
// setup code generation tools
--- 3573,3583 ----
// Generate a stub that calls into vm to find out the proper destination
// of a java call. All the argument registers are live at this point
// but since this is generic code we don't know what they are and the caller
// must do any gc of the args.
//
! RuntimeStub* SharedRuntime::generate_resolve_blob(address destination, const char* name) {
assert (StubRoutines::forward_exception_entry() != NULL, "must be generated before");
// allocate space for the code
ResourceMark rm;
// setup code generation tools
*** 3674,3711 ****
masm->flush();
// return the blob
// frame_size_words or bytes??
return RuntimeStub::new_runtime_stub(name, &buffer, frame_complete, frame_size_words, oop_maps, true);
- }
-
- void SharedRuntime::generate_stubs() {
-
- _wrong_method_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::handle_wrong_method),
- "wrong_method_stub");
-
- _ic_miss_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::handle_wrong_method_ic_miss),
- "ic_miss_stub");
-
- _resolve_opt_virtual_call_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::resolve_opt_virtual_call_C),
- "resolve_opt_virtual_call");
-
- _resolve_virtual_call_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::resolve_virtual_call_C),
- "resolve_virtual_call");
-
- _resolve_static_call_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::resolve_static_call_C),
- "resolve_static_call");
-
- _polling_page_safepoint_handler_blob =
- generate_handler_blob(CAST_FROM_FN_PTR(address,
- SafepointSynchronize::handle_polling_page_exception), false);
-
- _polling_page_return_handler_blob =
- generate_handler_blob(CAST_FROM_FN_PTR(address,
- SafepointSynchronize::handle_polling_page_exception), true);
-
- generate_deopt_blob();
-
- #ifdef COMPILER2
- generate_uncommon_trap_blob();
- #endif // COMPILER2
}
--- 3662,3667 ----
src/cpu/sparc/vm/sharedRuntime_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File