< prev index next >

src/hotspot/cpu/x86/stubGenerator_x86_64.hpp

Print this page

569   static address SC_3;
570   static address SC_4;
571   static address PI_4;
572   static address P_1;
573   static address P_3;
574   static address P_2;
575 
576   void generate_libm_stubs();
577 
578 #ifdef COMPILER2
579   void generate_string_indexof(address *fnptrs);
580 #endif
581 
582   address generate_cont_thaw(const char* label, Continuation::thaw_kind kind);
583   address generate_cont_thaw();
584 
585   // TODO: will probably need multiple return barriers depending on return type
586   address generate_cont_returnBarrier();
587   address generate_cont_returnBarrier_exception();
588 



589   // Continuation point for throwing of implicit exceptions that are
590   // not handled in the current activation. Fabricates an exception
591   // oop and initiates normal exception dispatching in this
592   // frame. Since we need to preserve callee-saved values (currently
593   // only for C2, but done for C1 as well) we need a callee-saved oop
594   // map and therefore have to make these stubs into RuntimeStubs
595   // rather than BufferBlobs.  If the compiler needs all registers to
596   // be preserved between the fault point and the exception handler
597   // then it must assume responsibility for that in
598   // AbstractCompiler::continuation_for_implicit_null_exception or
599   // continuation_for_implicit_division_by_zero_exception. All other
600   // implicit exceptions (e.g., NullPointerException or
601   // AbstractMethodError on entry) are either at call sites or
602   // otherwise assume that stack unwinding will be initiated, so
603   // caller saved registers were assumed volatile in the compiler.
604   address generate_throw_exception(const char* name,
605                                    address runtime_entry,
606                                    Register arg1 = noreg,
607                                    Register arg2 = noreg);
608 

569   static address SC_3;
570   static address SC_4;
571   static address PI_4;
572   static address P_1;
573   static address P_3;
574   static address P_2;
575 
576   void generate_libm_stubs();
577 
578 #ifdef COMPILER2
579   void generate_string_indexof(address *fnptrs);
580 #endif
581 
582   address generate_cont_thaw(const char* label, Continuation::thaw_kind kind);
583   address generate_cont_thaw();
584 
585   // TODO: will probably need multiple return barriers depending on return type
586   address generate_cont_returnBarrier();
587   address generate_cont_returnBarrier_exception();
588 
589   address generate_cont_preempt_stub();
590   address generate_cont_resume_monitor_operation();
591 
592   // Continuation point for throwing of implicit exceptions that are
593   // not handled in the current activation. Fabricates an exception
594   // oop and initiates normal exception dispatching in this
595   // frame. Since we need to preserve callee-saved values (currently
596   // only for C2, but done for C1 as well) we need a callee-saved oop
597   // map and therefore have to make these stubs into RuntimeStubs
598   // rather than BufferBlobs.  If the compiler needs all registers to
599   // be preserved between the fault point and the exception handler
600   // then it must assume responsibility for that in
601   // AbstractCompiler::continuation_for_implicit_null_exception or
602   // continuation_for_implicit_division_by_zero_exception. All other
603   // implicit exceptions (e.g., NullPointerException or
604   // AbstractMethodError on entry) are either at call sites or
605   // otherwise assume that stack unwinding will be initiated, so
606   // caller saved registers were assumed volatile in the compiler.
607   address generate_throw_exception(const char* name,
608                                    address runtime_entry,
609                                    Register arg1 = noreg,
610                                    Register arg2 = noreg);
611 
< prev index next >