自作RISC-Vシミュレータのシステムレジスタの表記を拡張した。これまではCSRはアドレス番号でしか表記されなくなっていたが、これをシステムレジスタの名前で表記できるようにした。
https://github.com/msyksphinz/swimmer_riscv/commit/3f2b62802d576d30e649a97f1bd806dd4e0010a0github.com
改良前:
Swimmer-RISCV Version 20150531 Revision 33da5fa developed by msyksphinz <msyksphinz_dev@gmail.com> 0 : [00000200] f1002573 : csrrs r10,0xf10,r00 r00=>00000000 CSR(f10)=>00000000 r10<=00000000 1 : [00000204] 00051063 : bne r10,r00,0x00 r10=>00000000 r00=>00000000
改良後:
Swimmer-RISCV Version 20150531 Revision 3f2b628 developed by msyksphinz <msyksphinz_dev@gmail.com> 0 : [00000200] f1002573 : csrrs r10,0xf10,r00 r00=>00000000 mhartid=>00000000 r10<=00000000 1 : [00000204] 00051063 : bne r10,r00,0x00 r10=>00000000 r00=>00000000 ...
これで多少はデバッグはしやすくなるかな。相変わらずCSRのテストパタンはうまく行かない。マシンモードをきちんと定義しないと最後まで流れてくれない気がするし、 それより前にデコーダの探索アルゴリズムとか、そもそもC++で書き直したいとか、やりたいことがいっぱいあって困る。