代码之家  ›  专栏  ›  技术社区  ›  Jason

Java HotSpot中内在方法的汇编实现代码在哪里?

  •  0
  • Jason  · 技术社区  · 7 年前

    从…起 http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/classfile/vmSymbols.hpp ,我可以看到内部方法声明如下:

    do_intrinsic(_getByte, sun_misc_Unsafe, getByte_name, getByte_signature, F_RN) \
    

    但是如何找到该方法的实际实现(我认为是汇编代码) _getByte ?

    1 回复  |  直到 7 年前
        1
  •  5
  •   apangin    7 年前

    但是如何找到 方法\u getByte

    通过查找 vmIntrinsics::_getByte 在IDE中,或者只需将热点源变大即可。

    但是,您找不到汇编代码。对热点中的内部方法的调用通常转换为JIT编译器的中间表示(IR)。在编译的解析阶段,将相应的IR节点手动添加到节点图中。

    由于不同的JIT编译器具有不同的IRs,因此需要为C1和C2分别实现内部函数。

    例如,至于 _getByte ,