Java HotSpot中内部方法的程序集实现代码在哪里?

时间:2018-01-11 02:29:49

标签: java jvm openjdk intrinsics hotspot

来自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 个答案:

答案 0 :(得分:4)

  

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

通过在IDE中查找vmIntrinsics::_getByte或仅通过浏览HotSpot来源。

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

由于不同的JIT编译器具有不同的IR,因此需要针对C1和C2单独实现内在函数。

例如,关于_getByte