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 #if INCLUDE_JFR
590 void generate_jfr_stubs();
591 // For c2: c_rarg0 is junk, call to runtime to write a checkpoint.
592 // It returns a jobject handle to the event writer.
593 // The handle is dereferenced and the return value is the event writer oop.
594 RuntimeStub* generate_jfr_write_checkpoint();
595 // For c2: call to runtime to return a buffer lease.
596 RuntimeStub* generate_jfr_return_lease();
597 #endif // INCLUDE_JFR
598
599 // Continuation point for throwing of implicit exceptions that are
600 // not handled in the current activation. Fabricates an exception
601 // oop and initiates normal exception dispatching in this
602 // frame. Since we need to preserve callee-saved values (currently
603 // only for C2, but done for C1 as well) we need a callee-saved oop
604 // map and therefore have to make these stubs into RuntimeStubs
605 // rather than BufferBlobs. If the compiler needs all registers to
606 // be preserved between the fault point and the exception handler
607 // then it must assume responsibility for that in
608 // AbstractCompiler::continuation_for_implicit_null_exception or
|
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 address generate_cont_resume_compiler_adapter();
592
593 #if INCLUDE_JFR
594 void generate_jfr_stubs();
595 // For c2: c_rarg0 is junk, call to runtime to write a checkpoint.
596 // It returns a jobject handle to the event writer.
597 // The handle is dereferenced and the return value is the event writer oop.
598 RuntimeStub* generate_jfr_write_checkpoint();
599 // For c2: call to runtime to return a buffer lease.
600 RuntimeStub* generate_jfr_return_lease();
601 #endif // INCLUDE_JFR
602
603 // Continuation point for throwing of implicit exceptions that are
604 // not handled in the current activation. Fabricates an exception
605 // oop and initiates normal exception dispatching in this
606 // frame. Since we need to preserve callee-saved values (currently
607 // only for C2, but done for C1 as well) we need a callee-saved oop
608 // map and therefore have to make these stubs into RuntimeStubs
609 // rather than BufferBlobs. If the compiler needs all registers to
610 // be preserved between the fault point and the exception handler
611 // then it must assume responsibility for that in
612 // AbstractCompiler::continuation_for_implicit_null_exception or
|