R5900簡易でコンパイラが正しく動くコードを吐くようになった

前の日記で書いた左シフトと右シフトの間違いも致命的だったのだが、分岐命令前後の遅延スロットの扱いも大きく間違っていたようだ。bne/bgez命令等の分岐命令では分岐の条件をチェックした後に遅延スロットの命令が実行されるらしい。これを分岐条件のちぇえくの前に遅延スロットの命令が実行されるという風に勘違いしていたため、ばぐったコードが生成されていた。
とりあえず、公式掲示板への投稿準備をしてみる。