563 static address Ctable;
564 static address SC_1;
565 static address SC_2;
566 static address SC_3;
567 static address SC_4;
568 static address PI_4;
569 static address P_1;
570 static address P_3;
571 static address P_2;
572
573 void generate_libm_stubs();
574
575
576 address generate_cont_thaw(const char* label, Continuation::thaw_kind kind);
577 address generate_cont_thaw();
578
579 // TODO: will probably need multiple return barriers depending on return type
580 address generate_cont_returnBarrier();
581 address generate_cont_returnBarrier_exception();
582
583 #if INCLUDE_JFR
584 void generate_jfr_stubs();
585 // For c2: c_rarg0 is junk, call to runtime to write a checkpoint.
586 // It returns a jobject handle to the event writer.
587 // The handle is dereferenced and the return value is the event writer oop.
588 RuntimeStub* generate_jfr_write_checkpoint();
589 // For c2: call to runtime to return a buffer lease.
590 RuntimeStub* generate_jfr_return_lease();
591 #endif // INCLUDE_JFR
592
593 // Continuation point for throwing of implicit exceptions that are
594 // not handled in the current activation. Fabricates an exception
595 // oop and initiates normal exception dispatching in this
596 // frame. Since we need to preserve callee-saved values (currently
597 // only for C2, but done for C1 as well) we need a callee-saved oop
598 // map and therefore have to make these stubs into RuntimeStubs
599 // rather than BufferBlobs. If the compiler needs all registers to
600 // be preserved between the fault point and the exception handler
601 // then it must assume responsibility for that in
602 // AbstractCompiler::continuation_for_implicit_null_exception or
|
563 static address Ctable;
564 static address SC_1;
565 static address SC_2;
566 static address SC_3;
567 static address SC_4;
568 static address PI_4;
569 static address P_1;
570 static address P_3;
571 static address P_2;
572
573 void generate_libm_stubs();
574
575
576 address generate_cont_thaw(const char* label, Continuation::thaw_kind kind);
577 address generate_cont_thaw();
578
579 // TODO: will probably need multiple return barriers depending on return type
580 address generate_cont_returnBarrier();
581 address generate_cont_returnBarrier_exception();
582
583 address generate_cont_preempt_stub();
584 address generate_cont_preempt_monitorenter_redo();
585 address generate_cont_preempt_rerun_compiler_adapter();
586
587 #if INCLUDE_JFR
588 void generate_jfr_stubs();
589 // For c2: c_rarg0 is junk, call to runtime to write a checkpoint.
590 // It returns a jobject handle to the event writer.
591 // The handle is dereferenced and the return value is the event writer oop.
592 RuntimeStub* generate_jfr_write_checkpoint();
593 // For c2: call to runtime to return a buffer lease.
594 RuntimeStub* generate_jfr_return_lease();
595 #endif // INCLUDE_JFR
596
597 // Continuation point for throwing of implicit exceptions that are
598 // not handled in the current activation. Fabricates an exception
599 // oop and initiates normal exception dispatching in this
600 // frame. Since we need to preserve callee-saved values (currently
601 // only for C2, but done for C1 as well) we need a callee-saved oop
602 // map and therefore have to make these stubs into RuntimeStubs
603 // rather than BufferBlobs. If the compiler needs all registers to
604 // be preserved between the fault point and the exception handler
605 // then it must assume responsibility for that in
606 // AbstractCompiler::continuation_for_implicit_null_exception or
|