Forums: Developers (Thread #12988)

SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2006-11-30 00:12 by hamayan #26289)

ハードウエアマニュアルをよく読めば書いてあることなのですが、SH/Tinyと従来のSH2では、スロット不当命令に該当する命令が変わっていて、pacctxでこの仕様変更の影響をもろに受けています。

具体的にはステータスレジスタへのロード命令
ldc r0,sr
を遅延スロットに使う事が出来ないので、遅延スロットにこれを使っている所全てを修正します。
例えば従来
rts
ldc r0, sr
だったのを、
ldc r0, sr
rts
nop
とします。
これはGCCを使った場合にも該当するので、皆さんお気をつけを。

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2006-11-30 00:26 by ryuz #26291)

ぐは... 作成中のAdvanceでもしっかり継承してました(コピペしただけなので当たり前か)。

こちらも直します。ありがとうございました。
Reply to #26289

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-17 15:39 by hamayan #35093)

すいません、随分遅くなってしまいましたが、ようやくHOS-V4の新しいリリース、と言うかCVSから落とした物を動かそうとしているのですが、SHのpacctx関連の処理でこの件
https://sourceforge.jp/forum/forum.php?thread_id=12988&forum_id=696
が反映されていないようです。

全てのSHが対象と言う訳ではないのでややこしいのですが、新しい物については該当するようです。
Reply to #26291

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-17 18:54 by ryuz #35103)

お世話になります。Ryuzです。
ご指摘ありがとうございます。

> ぐは... 作成中のAdvanceでもしっかり継承してました(コピペしただけなので当たり前か)。

に、ついては、実はあの後私も少し調べまして、該当しないアーキテクチャバージョンについては、当初のコードに戻す方針にしました。
 HOS-V4aは該当するアーキテクチャバージョンについては別途作成の予定だったのですが、まだ着手できておりません。
# というか手元に該当するチップが無くて試せない状態で。。

HOS-V4(無印)の方はすいません、環境が無いためノーケアです。
具体的に、どのソースがケアが漏れてますでしょうか?

よろしくお願いします。
Reply to #35093

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-17 21:02 by hamayan #35106)

お世話になっています。お久しぶりです。

src/sh/sh2ht/pacctx.cの中の_hospac_dis_intと_hospac_ena_intに該当個所があります。
sh2gccについても同じな筈です。
sh4についてはちょっと判りません。
Reply to #35103

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-17 21:18 by ryuz #35107)

お世話になります。Ryuzです。
ご無沙汰いたしております。
SHのアーキテクチャバージョンを調べてみたんですが、コンパイラオプションから推測するに

SH1
SH2
SH2E
SH2A
SH2AFPU
SH2DSP
SH3
SH3DSP
SH4
SH4A
SH4ALDSP

 のアーキテクチャがありますが、もしかして本件って、SH2アーキのカテゴリの中にさらに差分があるのかなという気がしてきました(自信なし)。
# SH/Tinyってどういう位置づけなんだろう???

 とりあえず整理が付くまで、TinyじゃないSH2で性能落ちますが、安全な方に倒しておいたほうがいいのですかね?
 もうちょい調べてみます。
# 最近プロセッサの乗換えが多すぎて頭がごちゃごちゃになって来ました (苦笑)

Reply to #35106

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-17 21:46 by ryuz #35108)

Tinyのハードウェアマニュアルには例外事項の記述がありましたが、ソフトウェアマニュアルには本件の記述が見当たらないっぽいですね。

とりあえずCVSは安全な方に倒しました。
てっきりtinyは別アーキテクチャなんでSH2ではないと信じきっていて、hamayanさんがSH2のディレクトリを指摘されているとは思ってませんでした。
# でもtinyのディレクトリも無いのに (^^;;

今後、余力があれば、ディレクトリを分けます。
Reply to #35107

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-17 23:10 by hamayan #35109)

> てっきりtinyは別アーキテクチャなんでSH2ではないと信じきっていて

Tiny系は別アーキテクチャではなく、従来のSH2の延長にあります。アーキテクチャが異なるのはA系(SH2AやSH4A)です。

ただ、無印のSHでも新しい世代では遅延分岐の後ろにLDCを入れると、スロット不当命令となります。
今7080、7147のハードウエアマニュアルを見ましたが、やはりこれも該当していますので、ルネサスのロードマップで7080や7125世代以降は対象となる可能性が高いかと思います。
Reply to #26289

RE: SH/TinyでHOS-V4を動かしました。でも嵌りました。 (2008-02-18 00:18 by ryuz #35112)

Ryuzです。
ようやく体系が理解できてきました。ありがとうございます。

遅延スロットで使えるケースの方が例外になりそうなかんじですね。

こちらにあわせようと思います。
Reply to #35109