[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のレジスタを使う)は互換にすることはできません。
篠原