向JVM添加上指令

向JVM添加上指令,jvm,bytecode,openjdk,jvm-hotspot,Jvm,Bytecode,Openjdk,Jvm Hotspot,我必须向Java添加新的上级指令,这是字节码中某些指令序列的替换。我已经阅读了很多研究文章,但是文章中没有提到应该更新的文件名。 有人能告诉我热点文件吗?它包含JVM的主解释器循环,在任何架构(如X86、ARM等)中都有case语句。 换句话说,我需要包含操作码的文件的位置,以便修改它们。如果您不熟悉HotSpot源代码,添加新指令不是一件容易的事情。这不是仅仅修改几个位置的问题;这涉及到许多JVM部分,包括 和常量池解析器; ; ; 编译器及其解析器、优化器和代码生成器。 可能是其他部分,取决

我必须向Java添加新的上级指令,这是字节码中某些指令序列的替换。我已经阅读了很多研究文章,但是文章中没有提到应该更新的文件名。 有人能告诉我热点文件吗?它包含JVM的主解释器循环,在任何架构(如X86、ARM等)中都有case语句。
换句话说,我需要包含操作码的文件的位置,以便修改它们。

如果您不熟悉HotSpot源代码,添加新指令不是一件容易的事情。这不是仅仅修改几个位置的问题;这涉及到许多JVM部分,包括

和常量池解析器; ; ; 编译器及其解析器、优化器和代码生成器。 可能是其他部分,取决于新指令的作用。 此外,HotSpot JVM根本没有“主解释器循环”。相反,有一个所谓的“模板解释器”,它是在JVM启动时在运行时生成的。对于每个字节码,都有一个类似于平台的程序集模板,该模板生成解释器片段,用于在所有可能的栈顶状态下执行该字节码。每个模板通常以一个序列结束,该序列分派到下一个字节码


要了解x86模板解释器的外观,请参阅。新的指令将需要一个类似的模板。

我将查找提到现有字节码的文件instructions@PeterLawrey,文章提到有一个主开关盒循环,其中包含每个Java字节码指令的代码。我必须修改它,并在其中添加新的说明。提前感谢您的支持我假设这篇文章讨论的是如何实现它,我怀疑JVM更复杂/更优化。如果您只是想学习一些东西,可以尝试使用比hotspot更简单的JVM。如果你这样做是为了商业应用,也许你不应该把你的基本侦查工作推给别人。这是一个复杂的软件和一个移动的目标,阅读一篇文章可能不足以进入开发阶段。也许看看@the8472,它看起来很有支撑力。让我检查一下。thanksi必须在不同的基准上改进性能。你能给我介绍一下有这些信息的wiki/文档吗。谢谢你的帮助reply@adeeliqbal最好的热点文档是它的。说真的,如果我只需要修改它的解释器呢?我必须向代码中添加上级指令,这是对多个旧指令的替换。在这种情况下该怎么办?@adeeliqbal在代码中查找RewriteFrequentPairs。此功能非常接近您将要执行的操作。