以下のリビジョンでテストを実行。rv32si-p-*.hexを実行してパスするかをチェックした。
rv32si-p-csr.hex 156 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000019 mtohost<=00000019 rv32si-p-illegal.hex 48 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000001 mtohost<=00000001 rv32si-p-ma_addr.hex 32 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000005 mtohost<=00000005 rv32si-p-ma_fetch.hex 49 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000005 mtohost<=00000005 rv32si-p-sbreak.hex 29 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000005 mtohost<=00000005 rv32si-p-scall.hex 46 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000001 mtohost<=00000001 rv32si-p-shamt.hex 53 : [00000184] 780e1073 : csrrw r00,0x780,r28 mtohost=>00000000 r28=>00000001 mtohost<=00000001
CSRテストは、マシンモードの変更の仕様が良く分からなくて何故落ちているのか割らあない。 ma_addrとか、ma_fetchは実装してないから、パタンが落ちているのは当然だなあ。sbreaekも実装してないから、落ちて当然か。