Closed hangingman closed 1 year ago
まだ候補的にはlibjit, lightning, nanojitを残した状態ではあるがasmjitを採用することにした。 たぶんこれでだいぶ楽できるはず…
https://github.com/nayuki/x86-Assembler
makeMachineCode
https://github.com/nayuki/x86-Assembler/blob/master/src/org/p79068/assembler/generator/CodeGenerator.java#L77
public InstructionPattern match
https://github.com/nayuki/x86-Assembler/blob/ae0062266fbdc2c3f71d0b60bcb1e6e9e97f09c2/src/org/p79068/assembler/generator/InstructionPatternTable.java#L570
#match(String ニーモニック, List<Operand> オペランド)
#match
InstructionPattern
toBytes
検討
課題感
結果
Jit、どれを使うか
まだ候補的にはlibjit, lightning, nanojitを残した状態ではあるがasmjitを採用することにした。 たぶんこれでだいぶ楽できるはず…
残作業
自力実装の場合の参考
https://github.com/nayuki/x86-Assembler
makeMachineCode
部分の実装に注目https://github.com/nayuki/x86-Assembler/blob/master/src/org/p79068/assembler/generator/CodeGenerator.java#L77
public InstructionPattern match
部分の実装に注目https://github.com/nayuki/x86-Assembler/blob/ae0062266fbdc2c3f71d0b60bcb1e6e9e97f09c2/src/org/p79068/assembler/generator/InstructionPatternTable.java#L570
#match(String ニーモニック, List<Operand> オペランド)
の形の引数を持たせている#match
はInstructionPattern
クラスを返し、それはtoBytes
で機械語を返す