10
static char *osnam[NOS] =
11
{"UNKNOWN", "Linux", "SunOS", "SunOS4", "OSF1", "IRIX", "AIX",
12
"Win9x", "WinNT", "HPUX", "FreeBSD", "OSX"};
13
enum OSTYPE {OSOther=0, OSLinux, OSSunOS, OSSunOS4, OSOSF1, OSIRIX, OSAIX,
14
OSWin9x, OSWinNT, OSHPUX, OSFreeBSD, OSOSX};
15
#define OSIsWin(OS_) (((OS_) == OSWinNT) || ((OS_) == OSWin9x))
17
enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS};
20
static char *machnam[NMACH] =
21
{"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5",
23
"P5", "P5MMX", "PPRO", "PII", "PIII", "PM", "CoreSolo",
24
"CoreDuo", "Core2Solo", "Core2", "Corei1", "Corei2", "P4", "P4E",
25
"Efficeon", "K7", "HAMMER", "AMD64K10h", "UNKNOWNx86",
26
"IA64Itan", "IA64Itan2",
27
"USI", "USII", "USIII", "USIV", "UST2", "UnknownUS",
28
"MIPSR1xK", "MIPSICE9"};
29
enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
31
IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS,
32
IntCoreDuo, IntCore2Solo, IntCore2, IntCorei1, IntCorei2,
33
IntP4, IntP4E, TMEff, AmdAthlon, AmdHammer, Amd64K10h, x86X,
35
SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST2, SunUSX,
36
MIPSR1xK, /* includes R10K, R12K, R14K, R16K */
37
MIPSICE9 /* SiCortex ICE9 -- like MIPS5K */
39
#define MachIsX86(mach_) \
40
( (mach_) >= IntP5 && (mach_) <= x86X )
41
#define MachIsIA64(mach_) \
42
( (mach_) >= IA64Itan && (mach_) <= IA64Itan2 )
43
#define MachIsUS(mach_) \
44
( (mach_) >= SunUSI && (mach_) <= SunUSX )
46
#define MachIsMIPS(mach_) \
47
( (__mips__) || (mach_) >= MIPSR1xK && (mach_) <= MIPSICE9 )
49
#define MachIsMIPS(mach_) \
50
( (mach_) >= MIPSR1xK && (mach_) <= MIPSICE9 )
52
#define MachIsPPC(mach_) \
53
( (mach_) >= PPCG4 && (mach_) <= PPCG5 )
55
static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
56
static char *f2c_intstr[5] =
57
{"UNKNOWN", "F77_INTEGER=int", "F77_INTEGER=long",
58
"F77_INTEGER=\"long long\"", "F77_INTEGER=short"};
59
static char *f2c_strstr[5]=
60
{"UNKNOWN", "SunStyle", "CrayStyle", "StructVal", "StructPtr"};
62
enum F2CNAME {f2c_NamErr=0, f2c_Add_, f2c_Add__, f2c_NoChange, f2c_UpCase};
63
enum F2CINT {f2c_IntErr=0, FintCint, FintClong, FintClonglong, FintCshort};
64
enum F2CSTRING {f2c_StrErr=0, fstrSun, fstrCray, fstrStructVal, fstrStructPtr};
67
static char *ISAXNAM[NISA] =
68
{"", "AltiVec", "SSE3", "SSE2", "SSE1", "3DNow"};
69
enum ISAEXT {ISA_None=0, ISA_AV, ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow};
73
{ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc,
75
static char *ASMNAM[NASMD] =
76
{"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC",
81
* Used for archinfo probes (can pack in bitfield)
83
enum WHATPROBE{Parch=1, P64=2, Pncpu=4, Pverb=8, Pncache=16, PCacheSize=32,
84
PMhz=64, Pthrottle=128};
87
enum ARDEF{ADsk=0, ADdk, ADsm, ADdm}; /* m = matmul kernel, k = non-mm kern */
89
* Used for all the compilers ATLAS needs
92
static char *COMPNAME[NCOMP]={"ICC","SMC","DMC","SKC","DKC","XCC","F77"};
93
#define ICC_ 0 /* Compiles non-computation routines, and all I/O */
94
#define SMC_ 1 /* single prec matmul compiler */
95
#define DMC_ 2 /* double prec matmul compiler */
96
#define SKC_ 3 /* single prec computation compiler (non-mm kernels) */
97
#define DKC_ 4 /* double prec computation compiler */
98
#define XCC_ 5 /* Compiler for frontend of cross-compilation */
99
#define F77_ 6 /* Valid fixed-format Fortran77 compiler */
101
typedef struct CompNode COMPNODE;
104
int priority; /* priority of this definition */
105
int comps[1]; /* bitfield: (1<<ICC)|...|(1<<F77) */
106
int OS[(NOS+31)/32]; /* bitfield for OS */
107
int arch[(NMACH+31)/32]; /* bitfields for architecture */
108
char *comp, *flags; /* compiler & flags as strings */
111
#include "atlconf_misc.h"