[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kernel softfloat emulation



Jun Ebihara <jun@soum.co.jp> writes:
> > 浮動小数点の引数や返値の受渡し規定が異なるので、バイナリ互換性はありませ
> > ん。したがって、userlandのバイナリは混在することはできません。整数演算中
> > 心のプログラムだと異常に気が付かないかもしれませんが。
> 
> うーん。これはどうしようもないですね。port-mipsにごめんなさいメールを
> 書きます。バイナリ互換性をもたせる方向でコードを書き直していくことは
> 現実的でしょうか。

なにやら誤解があるような気がするのですが。

userlandのバイナリをすべてhardfloatに置き換えれば、カーネルによる浮動小
数点演算命令のエミュレーションで問題なく動作するはずです。また、この場合、
pmaxともバイナリ互換になります。

私がテストしている環境では、userlandを全部pmaxのバイナリで置き換えていま
す。

問題が発生するのは、pmax用のpackage(hardfloatでコンパイルされている)を持っ
てきてsoftfloatのrun-time library(現在のhpcmipsの実行環境)を使って動作さ
せる場合です。

なお、引数の受渡し規程は、FPAのレジスタを使って引数や返値を渡す/渡さな
いという違いですので、softfloat(FPAのレジスタを一切使わない)と
hardfloat(FPAのレジスタを使う)は互換にすることはできません。

篠原