< prev index next >

src/hotspot/share/oops/stackChunkOop.cpp

Print this page
*** 54,11 ***
        _map(map) {
    }
  
    virtual void oops_do(OopClosure* cl) override {
      if (_f.is_interpreted_frame()) {
!       _f.oops_interpreted_do(cl, nullptr);
      } else {
        OopMapDo<OopClosure, DerivedOopClosure, IncludeAllValues> visitor(cl, nullptr);
        visitor.oops_do(&_f, _map, _f.oop_map());
      }
    }
--- 54,11 ---
        _map(map) {
    }
  
    virtual void oops_do(OopClosure* cl) override {
      if (_f.is_interpreted_frame()) {
!       _f.oops_interpreted_do(cl, _map);
      } else {
        OopMapDo<OopClosure, DerivedOopClosure, IncludeAllValues> visitor(cl, nullptr);
        visitor.oops_do(&_f, _map, _f.oop_map());
      }
    }

*** 137,11 ***
  }
  
  int stackChunkOopDesc::num_java_frames() const {
    int n = 0;
    for (StackChunkFrameStream<ChunkFrames::Mixed> f(const_cast<stackChunkOopDesc*>(this)); !f.is_done();
!        f.next(SmallRegisterMap::instance())) {
      if (!f.is_stub()) {
        n += ::num_java_frames(f);
      }
    }
    return n;
--- 137,11 ---
  }
  
  int stackChunkOopDesc::num_java_frames() const {
    int n = 0;
    for (StackChunkFrameStream<ChunkFrames::Mixed> f(const_cast<stackChunkOopDesc*>(this)); !f.is_done();
!        f.next(SmallRegisterMap::instance_no_args())) {
      if (!f.is_stub()) {
        n += ::num_java_frames(f);
      }
    }
    return n;

*** 413,14 ***
  
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::Mixed>& f, const RegisterMap* map);
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::Mixed>& f, const RegisterMap* map);
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const RegisterMap* map);
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const RegisterMap* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::Mixed>& f, const SmallRegisterMap* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::Mixed>& f, const SmallRegisterMap* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const SmallRegisterMap* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const SmallRegisterMap* map);
  
  template <typename RegisterMapT>
  void stackChunkOopDesc::fix_thawed_frame(const frame& f, const RegisterMapT* map) {
    if (!(is_gc_mode() || requires_barriers())) {
      return;
--- 413,16 ---
  
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::Mixed>& f, const RegisterMap* map);
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::Mixed>& f, const RegisterMap* map);
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const RegisterMap* map);
  template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const RegisterMap* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::Mixed>& f, const SmallRegisterMapNoArgs* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::Mixed>& f, const SmallRegisterMapNoArgs* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const SmallRegisterMapNoArgs* map);
! template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::CompiledOnly>& f, const SmallRegisterMapNoArgs* map);
+ template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Load> (const StackChunkFrameStream<ChunkFrames::Mixed>& f, const SmallRegisterMapWithArgs* map);
+ template void stackChunkOopDesc::do_barriers0<stackChunkOopDesc::BarrierType::Store>(const StackChunkFrameStream<ChunkFrames::Mixed>& f, const SmallRegisterMapWithArgs* map);
  
  template <typename RegisterMapT>
  void stackChunkOopDesc::fix_thawed_frame(const frame& f, const RegisterMapT* map) {
    if (!(is_gc_mode() || requires_barriers())) {
      return;

*** 436,11 ***
      visitor.oops_do(&f, map, f.oop_map());
    }
  }
  
  template void stackChunkOopDesc::fix_thawed_frame(const frame& f, const RegisterMap* map);
! template void stackChunkOopDesc::fix_thawed_frame(const frame& f, const SmallRegisterMap* map);
  
  void stackChunkOopDesc::transfer_lockstack(oop* dst, bool requires_barriers) {
    const bool requires_gc_barriers = is_gc_mode() || requires_barriers;
    const bool requires_uncompress = has_bitmap() && UseCompressedOops;
    const auto load_and_clear_obj = [&](intptr_t* at) -> oop {
--- 438,12 ---
      visitor.oops_do(&f, map, f.oop_map());
    }
  }
  
  template void stackChunkOopDesc::fix_thawed_frame(const frame& f, const RegisterMap* map);
! template void stackChunkOopDesc::fix_thawed_frame(const frame& f, const SmallRegisterMapNoArgs* map);
+ template void stackChunkOopDesc::fix_thawed_frame(const frame& f, const SmallRegisterMapWithArgs* map);
  
  void stackChunkOopDesc::transfer_lockstack(oop* dst, bool requires_barriers) {
    const bool requires_gc_barriers = is_gc_mode() || requires_barriers;
    const bool requires_uncompress = has_bitmap() && UseCompressedOops;
    const auto load_and_clear_obj = [&](intptr_t* at) -> oop {

*** 525,11 ***
    bool do_frame(const StackChunkFrameStream<frame_kind>& f, const RegisterMapT* map) {
      _sp = f.sp();
      _cb = f.cb();
  
      int fsize = f.frame_size() - ((f.is_interpreted() == _callee_interpreted) ? _argsize : 0);
!     int num_oops = f.num_oops();
      assert(num_oops >= 0, "");
  
      _argsize   = f.stack_argsize() + frame::metadata_words_at_top;
      _size     += fsize;
      _num_oops += num_oops;
--- 528,11 ---
    bool do_frame(const StackChunkFrameStream<frame_kind>& f, const RegisterMapT* map) {
      _sp = f.sp();
      _cb = f.cb();
  
      int fsize = f.frame_size() - ((f.is_interpreted() == _callee_interpreted) ? _argsize : 0);
!     int num_oops = f.num_oops(map);
      assert(num_oops >= 0, "");
  
      _argsize   = f.stack_argsize() + frame::metadata_words_at_top;
      _size     += fsize;
      _num_oops += num_oops;
< prev index next >