HobbyOSs / opennask

nask clone assembly, it can boot tiny OS with Linux
https://github.com/HobbyOSs/opennask/wiki/%E5%8B%95%E4%BD%9C%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF
GNU General Public License v3.0
20 stars 3 forks source link

他の実装を参考にして機械語生成部分(code selector / instruction selection)を簡略化 #71

Closed hangingman closed 1 year ago

hangingman commented 1 year ago

検討

課題感

結果

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