10
static char *osnam[NOS] =
11
{"UNKNOWN", "Linux", "SunOS", "SunOS4", "OSF1", "IRIX", "AIX",
12
"Win9x", "WinNT", "Win64", "HPUX", "FreeBSD", "OSX"};
13
enum OSTYPE {OSOther=0, OSLinux, OSSunOS, OSSunOS4, OSOSF1, OSIRIX, OSAIX,
14
OSWin9x, OSWinNT, OSWin64, OSHPUX, OSFreeBSD, OSOSX};
15
#define OSIsWin(OS_) ( ((OS_) == OSWinNT) || ((OS_) == OSWin9x) || \
18
enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS,
22
static char *machnam[NMACH] =
23
{"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5",
24
"POWER6", "POWER7", "IBMz9", "IBMz10", "IBMz196",
25
"x86x87", "x86SSE1", "x86SSE2", "x86SSE3",
26
"P5", "P5MMX", "PPRO", "PII", "PIII", "PM", "CoreSolo",
27
"CoreDuo", "Core2Solo", "Core2", "Corei1", "Corei2", "Atom", "P4", "P4E",
28
"Efficeon", "K7", "HAMMER", "AMD64K10h", "AMDDOZER", "UNKNOWNx86",
29
"IA64Itan", "IA64Itan2",
30
"USI", "USII", "USIII", "USIV", "UST2", "UnknownUS",
31
"MIPSR1xK", "MIPSICE9", "ARMv7"};
32
enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
34
IbmZ9, IbmZ10, IbmZ196, /* s390(x) in Linux */
35
x86x87, x86SSE1, x86SSE2, x86SSE3, /* generic targets */
36
IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS,
37
IntCoreDuo, IntCore2Solo, IntCore2, IntCorei1, IntCorei2,
38
IntAtom, IntP4, IntP4E, TMEff,
39
AmdAthlon, AmdHammer, Amd64K10h, AmdDozer, x86X,
41
SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST2, SunUSX,
42
MIPSR1xK, /* includes R10K, R12K, R14K, R16K */
43
MIPSICE9, /* SiCortex ICE9 -- like MIPS5K */
44
ARMv7 /* includes Cortex A8, A9 */
46
#define MachIsX86(mach_) \
47
( (mach_) >= x86x87 && (mach_) <= x86X )
48
#define MachIsIA64(mach_) \
49
( (mach_) >= IA64Itan && (mach_) <= IA64Itan2 )
50
#define MachIsUS(mach_) \
51
( (mach_) >= SunUSI && (mach_) <= SunUSX )
53
#define MachIsMIPS(mach_) \
54
( (__mips__) || (mach_) >= MIPSR1xK && (mach_) <= MIPSICE9 )
56
#define MachIsMIPS(mach_) \
57
( (mach_) >= MIPSR1xK && (mach_) <= MIPSICE9 )
59
#define MachIsPPC(mach_) \
60
( (mach_) >= PPCG4 && (mach_) <= PPCG5 )
61
#define MachIsARM(mach_) \
63
#define MachIsS390(mach_) \
64
( (mach_) >= IbmZ9 && (mach_) <= IbmZ196 )
66
#define MachIsHPPA(mach_) \
69
#define MachIsHPPA(mach_) \
73
static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
74
static char *f2c_intstr[5] =
75
{"UNKNOWN", "F77_INTEGER=int", "F77_INTEGER=long",
76
"F77_INTEGER=\"long long\"", "F77_INTEGER=short"};
77
static char *f2c_strstr[5]=
78
{"UNKNOWN", "SunStyle", "CrayStyle", "StructVal", "StructPtr"};
80
enum F2CNAME {f2c_NamErr=0, f2c_Add_, f2c_Add__, f2c_NoChange, f2c_UpCase};
81
enum F2CINT {f2c_IntErr=0, FintCint, FintClong, FintClonglong, FintCshort};
82
enum F2CSTRING {f2c_StrErr=0, fstrSun, fstrCray, fstrStructVal, fstrStructPtr};
85
static char *ISAXNAM[NISA] =
86
{"", "VSX", "AltiVec", "AVXMAC", "AVXFMA4", "AVX", "SSE3", "SSE2", "SSE1",
89
{ISA_None=0, ISA_VSX, ISA_AV, ISA_AVXMAC, ISA_AVXFMA4, ISA_AVX,
90
ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON};
94
{ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc,
95
gas_mips, gas_arm, gas_s390};
96
static char *ASMNAM[NASMD] =
97
{"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC",
98
"GAS_MIPS", "GAS_ARM", "GAS_S390"};
101
* Used for archinfo probes (can pack in bitfield)
103
enum WHATPROBE{Parch=1, P64=2, Pncpu=4, Pverb=8, Pncache=16, PCacheSize=32,
104
PMhz=64, Pthrottle=128};
107
enum ARDEF{ADsk=0, ADdk, ADsm, ADdm}; /* m = matmul kernel, k = non-mm kern */
109
* Used for all the compilers ATLAS needs
112
static char *COMPNAME[NCOMP]={"ICC","SMC","DMC","SKC","DKC","XCC","GCC","F77"};
113
#define ICC_ 0 /* Compiles non-computation routines, and all I/O */
114
#define SMC_ 1 /* single prec matmul compiler */
115
#define DMC_ 2 /* double prec matmul compiler */
116
#define SKC_ 3 /* single prec computation compiler (non-mm kernels) */
117
#define DKC_ 4 /* double prec computation compiler */
118
#define XCC_ 5 /* Compiler for frontend of cross-compilation */
120
#define F77_ 7 /* Valid fixed-format Fortran77 compiler */
122
typedef struct CompNode COMPNODE;
125
int priority; /* priority of this definition */
126
int comps[1]; /* bitfield: (1<<ICC)|...|(1<<F77) */
127
int OS[(NOS+31)/32]; /* bitfield for OS */
128
int arch[(NMACH+31)/32]; /* bitfields for architecture */
129
char *comp, *flags; /* compiler & flags as strings */
132
#include "atlconf_misc.h"