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