Jas*_*son 0 java openjdk jvm 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) \
Run Code Online (Sandbox Code Playgroud)
但是如何找到该方法的实际实现(我认为是汇编代码)_getByte?
但是如何找到方法 _getByte 的实际实现(我认为是汇编代码)
通过vmIntrinsics::_getByte在您的 IDE 中查找或简单地通过 grepping HotSpot 源。
但是,您不会找到汇编代码。HotSpot 中对内部方法的调用通常被转换为 JIT 编译器的中间表示 (IR)。相应的IR节点在编译的解析阶段手动添加到节点图中。
由于不同的 JIT 编译器具有不同的 IR,因此需要为 C1 和 C2 分别实现内在函数。
例如,对于_getByte,
GraphBuilder::append_unsafe_get_obj;LibraryCallKit::inline_unsafe_access.| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |