遅延分岐で暗黙に実行されてしまう命令によって影響されないようにするには、分岐命令の直後はNOPにしてしまうことが手っ取り早いでしょう。
ところがこのAm29kプロセッサにはなんとNOP命令が存在しないのです。マニュアルにはそれも言及されていてNOP相当を実現するには演算結果やフラグに影響しないものを使えとされています。
推奨されるのは ASEQ 0x40,GR1,GR1 であるとされています。なんと複雑な・・・
とりあえず無条件分岐JMP、条件分岐JMPFの直後に挿入しておきました、#defineでNOPをエイリアスとしておくといいかもしれません
RISCは最小の命令セットを高速でぶん回すのが身上なわけでNOPの「何もしない」というのは怠惰=悪とみなされ排除されてしまったのでしょうか。
それにしてもNOP命令を持たないCPUというのは初めて見ました。
世界最初のマイクロプロセッサIntel4004にもちゃんとあるようです
自分がいじったことがあるものでは1ビットCPU:MC14500には16個しかインストラクションがありませんがそのうち2個はNOPです