パスワードを忘れた? アカウント作成
648210 journal

tarosukeの日記: 遅延分岐めんどくせー

日記 by tarosuke

例の仕事が終わらなくて、とうとうSHをアセンブラレベルで触ることに...
といってもブート部をいじってるだけだけど。

bsr(call)とかrts(return)が遅延分岐だって事を忘れがちでアレ。

SHは16bitsを越える即値を扱えないのでrtsの後にはデータが転がってるわ
けで、rtsの前にそのデータを実行し...というわけ。字面上は遅延スロット
にlds r*,prでもブチ込みゃいいんだけど、それをするとPRレジスタの競合
がキモチワルイ。

ま、ちっと遅くなるだけなんだけど。でも、あのメーカーの石だ。
# [変更前の値になる]くらいのことはやりかねん。

rts実行前のPRがリターンアドレスになるからrtsの遅延スロットでldsして
PRを復旧するのはダメ。ボケてるなぁ...もうダメかも。

つかね、ldsでPRを復旧した直後にrtsするとまともに動かないくさいのは、
やっぱりPRが競合してるからなのかしらん。パイプラインがストールするだ
けなんじゃなかったっけ、こういう場合...

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...