< prev index next >

src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp

Print this page

  38 #include "runtime/continuation.hpp"
  39 #include "runtime/continuationEntry.inline.hpp"
  40 #include "runtime/jniHandles.hpp"
  41 #include "runtime/os.inline.hpp"
  42 #include "runtime/safepointMechanism.hpp"
  43 #include "runtime/sharedRuntime.hpp"
  44 #include "runtime/signature.hpp"
  45 #include "runtime/stubRoutines.hpp"
  46 #include "runtime/timerTrace.hpp"
  47 #include "runtime/vframeArray.hpp"
  48 #include "utilities/align.hpp"
  49 #include "utilities/macros.hpp"
  50 #include "vmreg_ppc.inline.hpp"
  51 #ifdef COMPILER1
  52 #include "c1/c1_Runtime1.hpp"
  53 #endif
  54 #ifdef COMPILER2
  55 #include "opto/ad.hpp"
  56 #include "opto/runtime.hpp"
  57 #endif



  58 
  59 #include <alloca.h>
  60 
  61 #define __ masm->
  62 
  63 #ifdef PRODUCT
  64 #define BLOCK_COMMENT(str) // nothing
  65 #else
  66 #define BLOCK_COMMENT(str) __ block_comment(str)
  67 #endif
  68 
  69 #define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
  70 
  71 
  72 class RegisterSaver {
  73  // Used for saving volatile registers.
  74  public:
  75 
  76   // Support different return pc locations.
  77   enum ReturnPCLocation {

3818   __ call_VM_leaf(CAST_FROM_FN_PTR(address, JfrIntrinsicSupport::return_lease), R16_thread);
3819   address calls_return_pc = __ last_calls_return_pc();
3820   __ reset_last_Java_frame();
3821   __ pop_frame();
3822   __ ld(tmp1, _abi0(lr), R1_SP);
3823   __ mtlr(tmp1);
3824   __ blr();
3825 
3826   OopMapSet* oop_maps = new OopMapSet();
3827   OopMap* map = new OopMap(framesize, 0);
3828   oop_maps->add_gc_map(calls_return_pc - start, map);
3829 
3830   RuntimeStub* stub = // codeBlob framesize is in words (not VMRegImpl::slot_size)
3831     RuntimeStub::new_runtime_stub(name, &code, frame_complete,
3832                                   (framesize >> (LogBytesPerWord - LogBytesPerInt)),
3833                                   oop_maps, false);
3834   return stub;
3835 }
3836 
3837 #endif // INCLUDE_JFR








  38 #include "runtime/continuation.hpp"
  39 #include "runtime/continuationEntry.inline.hpp"
  40 #include "runtime/jniHandles.hpp"
  41 #include "runtime/os.inline.hpp"
  42 #include "runtime/safepointMechanism.hpp"
  43 #include "runtime/sharedRuntime.hpp"
  44 #include "runtime/signature.hpp"
  45 #include "runtime/stubRoutines.hpp"
  46 #include "runtime/timerTrace.hpp"
  47 #include "runtime/vframeArray.hpp"
  48 #include "utilities/align.hpp"
  49 #include "utilities/macros.hpp"
  50 #include "vmreg_ppc.inline.hpp"
  51 #ifdef COMPILER1
  52 #include "c1/c1_Runtime1.hpp"
  53 #endif
  54 #ifdef COMPILER2
  55 #include "opto/ad.hpp"
  56 #include "opto/runtime.hpp"
  57 #endif
  58 #if INCLUDE_SHENANDOAHGC
  59 #include "gc/shenandoah/shenandoahRuntime.hpp"
  60 #endif
  61 
  62 #include <alloca.h>
  63 
  64 #define __ masm->
  65 
  66 #ifdef PRODUCT
  67 #define BLOCK_COMMENT(str) // nothing
  68 #else
  69 #define BLOCK_COMMENT(str) __ block_comment(str)
  70 #endif
  71 
  72 #define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
  73 
  74 
  75 class RegisterSaver {
  76  // Used for saving volatile registers.
  77  public:
  78 
  79   // Support different return pc locations.
  80   enum ReturnPCLocation {

3821   __ call_VM_leaf(CAST_FROM_FN_PTR(address, JfrIntrinsicSupport::return_lease), R16_thread);
3822   address calls_return_pc = __ last_calls_return_pc();
3823   __ reset_last_Java_frame();
3824   __ pop_frame();
3825   __ ld(tmp1, _abi0(lr), R1_SP);
3826   __ mtlr(tmp1);
3827   __ blr();
3828 
3829   OopMapSet* oop_maps = new OopMapSet();
3830   OopMap* map = new OopMap(framesize, 0);
3831   oop_maps->add_gc_map(calls_return_pc - start, map);
3832 
3833   RuntimeStub* stub = // codeBlob framesize is in words (not VMRegImpl::slot_size)
3834     RuntimeStub::new_runtime_stub(name, &code, frame_complete,
3835                                   (framesize >> (LogBytesPerWord - LogBytesPerInt)),
3836                                   oop_maps, false);
3837   return stub;
3838 }
3839 
3840 #endif // INCLUDE_JFR
3841 
3842 #if INCLUDE_SHENANDOAHGC
3843 RuntimeStub* SharedRuntime::generate_shenandoah_stub(StubId stub_id) {
3844   assert(UseShenandoahGC, "Only generate when Shenandoah is enabled");
3845   return nullptr;
3846 }
3847 #endif
< prev index next >