当前位置: 首页>>代码示例>>C++>>正文


C++ CodeBlob::as_nmethod_or_null方法代码示例

本文整理汇总了C++中CodeBlob::as_nmethod_or_null方法的典型用法代码示例。如果您正苦于以下问题:C++ CodeBlob::as_nmethod_or_null方法的具体用法?C++ CodeBlob::as_nmethod_or_null怎么用?C++ CodeBlob::as_nmethod_or_null使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CodeBlob的用法示例。


在下文中一共展示了CodeBlob::as_nmethod_or_null方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: iter

void NativeMovConstReg32::set_data(intptr_t x) {
  set_long_at(sethi_offset, set_data32_sethi(  long_at(sethi_offset), x));
  set_long_at(add_offset,   set_data32_simm13( long_at(add_offset),   x));

  // also store the value into an oop_Relocation cell, if any
  CodeBlob* cb = CodeCache::find_blob(instruction_address());
  nmethod*  nm = cb ? cb->as_nmethod_or_null() : NULL;
  if (nm != NULL) {
    RelocIterator iter(nm, instruction_address(), next_instruction_address());
    oop* oop_addr = NULL;
    Metadata** metadata_addr = NULL;
    while (iter.next()) {
      if (iter.type() == relocInfo::oop_type) {
        oop_Relocation *r = iter.oop_reloc();
        if (oop_addr == NULL) {
          oop_addr = r->oop_addr();
          *oop_addr = cast_to_oop(x);
        } else {
          assert(oop_addr == r->oop_addr(), "must be only one set-oop here");
        }
      }
      if (iter.type() == relocInfo::metadata_type) {
        metadata_Relocation *r = iter.metadata_reloc();
        if (metadata_addr == NULL) {
          metadata_addr = r->metadata_addr();
          *metadata_addr = (Metadata*)x;
        } else {
          assert(metadata_addr == r->metadata_addr(), "must be only one set-metadata here");
        }
      }
    }
  }
}
开发者ID:lmsf,项目名称:jdk9-dev,代码行数:33,代码来源:nativeInst_sparc.cpp

示例2: c

extern "C" void disnm(intptr_t p) {
  Command c("disnm");
  CodeBlob* cb = CodeCache::find_blob((address) p);
  nmethod* nm = cb->as_nmethod_or_null();
  if (nm) {
    nm->print();
    Disassembler::decode(nm);
  } else {
    cb->print();
    Disassembler::decode(cb);
  }
}
开发者ID:wei-tang,项目名称:JVM,代码行数:12,代码来源:debug.cpp


注:本文中的CodeBlob::as_nmethod_or_null方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。