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

Re: kernel softfloat emulation



From: Takao Shinohara <shin@sm.sony.co.jp>
Subject: Re: kernel softfloat emulation 
Date: Fri, 19 Nov 99 12:35:00 +0900

> Jun Ebihara <jun@soum.co.jp> writes:
> > > 浮動小数点の引数や返値の受渡し規定が異なるので、バイナリ互換性はありませ
> > > ん。したがって、userlandのバイナリは混在することはできません。整数演算中
> > > 心のプログラムだと異常に気が付かないかもしれませんが。
> なにやら誤解があるような気がするのですが。

お手数おかけしてすみません。御説明ありがとうございます。

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

はい。

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

全部hardfloat環境にするようにすれば逆にpmaxのバイナリを
hpcmipsで作れるようにもなるんですよね?

どっちみち遅いfloatの性能低下をあきらめてやっぱりpmaxとの
バイナリ互換に走るためにhpcmipsの環境は今後hardfloatで
作るようにしませんか?


NetBSD/hpcmips with hardfloat environment
     good point -> pmax binary compatibility
     bad  point -> less floating point calclation performance

NetBSD/hpcmips with softfloat environment
     good point -> floating point calclation performance
     bad  point -> no-pmax binary compatibility

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

了解です。
--
蛯原 純 (Jun Ebihara)Jis漢字コードは$6962
jun@soum.co.jp    http://www.re.soum.co.jp/~jun/
それはttyドライバのせいなんだよ。