将SuperInstruction添加到JVM

时间:2017-10-22 13:41:40

标签: jvm bytecode openjdk jvm-hotspot

我必须在Java中添加新的 SuperInstructions ,它取代了字节码中的某些指令序列。我已经阅读了许多研究文章,但在任何文章中都没有提到应该更新的文件名。 任何人都可以告诉我 hotspot 文件,其中包含JVM的主解释器循环,其中包含X86,ARM等任何架构中的case语句。
换句话说,我需要包含操作码的文件的位置,以便我可以修改它们。

1 个答案:

答案 0 :(得分:1)

如果您不熟悉HotSpot源代码,添加新指令并非易事。这不仅仅是修改几个地点的问题;这涉及许多JVM部分,包括

此外,HotSpot JVM根本没有'主要解释器循环'。相反,有一个所谓的'模板解释器',它是在JVM启动时在运行时生成的。对于每个字节码,有一个平台相关的类似于程序集的模板,它生成解释器片段,用于在所有可能的栈顶状态中执行该字节码。每个模板通常以一个调度到下一个字节码的序列结束。

要了解x86模板解释器的外观,请参阅src/cpu/x86/vm/templateTable_x86.cpp。新说明将需要类似的模板。