1

次のような方法で、AIXでpower7+を確認できます。

inline bool ossPower7orLater( )
{
   #if defined _AIX
      if ( !__power_set( POWER_6 | POWER_5 | POWER_4 ) )
      {
         return true ;
      }
      else
   #endif
         return false ;
}

systemcfg.hのマクロを使用します。ここでは、power8が出たときに中断するpower7のチェックをコーディングしないようにする__power_set()代わりに、マクロが使用されています。__power_7()

LinuxPPCのサポートも含めるようにこれをどのように拡張しますか?おそらく使用できる命令があると想像できたので、それ以上のものがなければ受け入れられるだろうと私に指摘しました(つまり、何を使用するかを知っていれば、 asmブロックをコーディングできます)。

4

2 に答える 2

1

mfpvrasm命令を使用して、プロセッサのバージョンを取得できます。もちろん、IBMがプロセッサーのバージョン管理に設定されたパターンに従わない限り、これは後のプロセッサーで機能しなくなる可能性がありますが、これは単純な解決策です。

注:mfpvrはスーパーバイザーのみですが、LinuxPPCはそれをエミュレートします。

もう1つの解決策は、チェックすることです/proc/cpuinfo(ただし、非常に面倒です)。これにより、CPUとPVRの文字列表現が得られます。

私がオンラインで見つけた例:

processor : 0
cpu             : POWER7 (architected), altivec supported
clock           : 3550.000000MHz
revision        : 2.0 (pvr 003f 0200)

これがお役に立てば幸いです

于 2012-07-20T14:02:18.947 に答える
-1

ここで説明するように、ELFAUXヘッダーをチェックすることでこれを行うことができました。

共有ライブラリコードでELFauxヘッダー(またはenvp)を見つけるプログラム的な方法はありますか?

于 2012-10-29T16:23:11.337 に答える