メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

cpu_x86.h

#include <dkutil_c/dkutil_cstd/define.h>

cpu_x86.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define MU_tFPU   (1<<0)
#define MU_tMMX   (1<<1)
#define MU_t3DN   (1<<2)
#define MU_tSSE   (1<<3)
#define MU_tCMOV   (1<<4)
#define MU_tE3DN   (1<<5)
#define MU_tEMMX   (1<<6)
#define MU_tSSE2   (1<<7)
#define MU_tCLFLUSH   (1<<18)
#define MU_tMULTI   (1<<12)
#define MU_tINTEL   (1<<8)
#define MU_tAMD   (1<<9)
#define MU_tCYRIX   (1<<10)
#define MU_tIDT   (1<<11)
#define MU_tUNKNOWN   (1<<15)
#define MU_tSPC1   (1<<16)
#define MU_tSPC2   (1<<17)
#define MU_tFAMILY4   (1<<20)
#define MU_tFAMILY5   (1<<21)
#define MU_tFAMILY6   (1<<22)
#define MU_tFAMILY7   (1<<23)

関数

DKC_EXTERN int haveX86_UNIT (void)


マクロ定義

#define MU_t3DN   (1<<2)
 

cpu_x86.h9 行で定義されています。

#define MU_tAMD   (1<<9)
 

cpu_x86.h20 行で定義されています。

#define MU_tCLFLUSH   (1<<18)
 

cpu_x86.h15 行で定義されています。

#define MU_tCMOV   (1<<4)
 

cpu_x86.h11 行で定義されています。

#define MU_tCYRIX   (1<<10)
 

cpu_x86.h21 行で定義されています。

#define MU_tE3DN   (1<<5)
 

cpu_x86.h12 行で定義されています。

#define MU_tEMMX   (1<<6)
 

cpu_x86.h13 行で定義されています。

#define MU_tFAMILY4   (1<<20)
 

cpu_x86.h29 行で定義されています。

#define MU_tFAMILY5   (1<<21)
 

cpu_x86.h30 行で定義されています。

#define MU_tFAMILY6   (1<<22)
 

cpu_x86.h31 行で定義されています。

#define MU_tFAMILY7   (1<<23)
 

cpu_x86.h32 行で定義されています。

#define MU_tFPU   (1<<0)
 

cpu_x86.h7 行で定義されています。

#define MU_tIDT   (1<<11)
 

cpu_x86.h22 行で定義されています。

#define MU_tINTEL   (1<<8)
 

cpu_x86.h19 行で定義されています。

#define MU_tMMX   (1<<1)
 

cpu_x86.h8 行で定義されています。

参照元 dkcAllocMTRand32().

#define MU_tMULTI   (1<<12)
 

cpu_x86.h16 行で定義されています。

#define MU_tSPC1   (1<<16)
 

cpu_x86.h26 行で定義されています。

#define MU_tSPC2   (1<<17)
 

cpu_x86.h27 行で定義されています。

#define MU_tSSE   (1<<3)
 

cpu_x86.h10 行で定義されています。

参照元 haveX86_UNIT().

#define MU_tSSE2   (1<<7)
 

cpu_x86.h14 行で定義されています。

参照元 dkcAllocMTRand32(), と haveX86_UNIT().

#define MU_tUNKNOWN   (1<<15)
 

cpu_x86.h23 行で定義されています。


関数

DKC_EXTERN int haveX86_UNIT void   ) 
 

cpu.c24 行で定義されています。

参照先 haveUNITa(), jmpPtr, MU_tSSE, MU_tSSE2, setPIII_round(), と SSE_not_support().

参照元 dkcAllocMTRand32().

00025 {
00026     static int unit = -1;
00027 
00028     if (unit != -1) return unit;
00029     unit = haveUNITa();
00030 
00031 #if defined(WIN32) && defined(HAVE___TRY) && defined(HAVE_EXCEPTION_EXECUTE_HANDLER) 
00032     if (unit & MU_tSSE) {
00033         __try {
00034             setPIII_round();
00035         }
00036         __except(EXCEPTION_EXECUTE_HANDLER) {
00037             unit &= ~(MU_tSSE|MU_tSSE2);
00038         }
00039     }
00040 #elif defined(__unix__) || defined(WIN32) || defined(__os2__) || defined(__dos__)
00041     if (unit & MU_tSSE) {
00042         int ret;
00043         ret = setjmp(jmpPtr);
00044         if (!ret) {
00045             signal(SIGILL, SSE_not_support);
00046             setPIII_round();
00047             signal(SIGILL, SIG_DFL);
00048         }else{
00049             unit &= ~(MU_tSSE|MU_tSSE2);
00050         }
00051     }
00052 #else
00053     if(unit & MU_tSSE) setPIII_round();
00054 #endif
00055 
00056     return unit;
00057 }


dKingyoMersenneTwisterLibraryに対してThu Jan 19 05:10:23 2006に生成されました。  doxygen 1.4.4