在openjdk中,当JVM(java虚拟机)加载字节码后,也需要将字节码的操作转换为对应平台的指令执行方可实现Java程序的行为。那么,在何处实现这些汇编指令的编码呢?假设在AArch64架构的机器上运行JVM
目录位置
openjdk
|--src
|--hotspot
|--cpu
|--aarch64
在aarch64
目录下的以下文件涉及指令编码
register_aarch64.hpp
assembler_aarch64.hpp
根据面向对象的编程思想,我们可以定义寄存器类和汇编器类。寄存器类用于定义寄存器的名称和值,汇编器类用于定义汇编语言的助记符和编码规则。
除此之外,由于openjdk支持多种平台,因此在寄存器和汇编器之上应该抽象出寄存器和汇编器的抽象类。
其目录位置
openjdk
|--share
|--asm
|--assembler.hpp
|