|
>SSE は OS が対応していることが必須だと思いますが、同時に他に SSE を利用するアプリケーションが無い限り普通に動作すると思いますので、こんなんで行こうかと…。
というわけにもいかないのでわ?
Win95とかのSSE未対応OSで実行してみればわかりますが、
SSE命令を実行した瞬間に、
Illegal Instruction例外で強制終了させられたと思います、たしか。
OS側で、命令をフィルタリングしているのかな?
なので、ベンダに関わらず、SSE命令に関しては、
実際に命令が走るかどうかでの判定もあわせて行う必要があると思います。
どちらにしろ、ERINAライブラリはマルチスレッド対応だと思いますので、
1つのアプリでもSSEレジスタの退避をちゃんとやってもらえないと、
まずいことになるのではないかと。
あとわ、IntelとかAMDのサンプルを見てると、
SSE命令はxorps xmm0, xmm0 などxmmレジスタの浮動小数点演算を
実際に実行してみる必要があるみたい?
SSE整数命令だけではダメなのかもしれないです。
それから、SSEに関しては、bit24も見る必要があると思います。
FXSAVE/FXRSTORをサポートしていないと、
SSEの状態が退避できないので、実質使えないことになります?
あと、movhlpsとmovlhpsは、KatmaiのB-step以降でしか使えないそうなので、
もし使用しているなら、そのチェックも必要かと思います。
AMDだと、AMDの拡張フラグにもMMXに関してのフラグがなんかあるみたいなので、
そちらのチェックも必要な場合があるのかも?
|
|