Skip to content

Commit bc46798

Browse files
author
Erich Keane
committed
Add X86Target.def that was forgotten in r30734
llvm-svn: 318345
1 parent 6da1108 commit bc46798

File tree

1 file changed

+228
-0
lines changed

1 file changed

+228
-0
lines changed
Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
//===--- X86Target.def - X86 Feature/Processor Database ---------*- C++ -*-===//
2+
//
3+
// The LLVM Compiler Infrastructure
4+
//
5+
// This file is distributed under the University of Illinois Open Source
6+
// License. See LICENSE.TXT for details.
7+
//
8+
//===----------------------------------------------------------------------===//
9+
//
10+
// This file defines the X86-specific Features and Processors, as used by
11+
// the X86 Targets.
12+
//
13+
//===----------------------------------------------------------------------===//
14+
15+
16+
#ifndef PROC
17+
#define PROC(ENUM, STRING, IS64BIT)
18+
#endif
19+
20+
#ifndef PROC_ALIAS
21+
#define PROC_ALIAS(ENUM, ALIAS)
22+
#endif
23+
24+
#define PROC_64_BIT true
25+
#define PROC_32_BIT false
26+
27+
/// \name i386
28+
/// i386-generation processors.
29+
//@{
30+
PROC(i386, "i386", PROC_32_BIT)
31+
//@}
32+
33+
/// \name i486
34+
/// i486-generation processors.
35+
//@{
36+
PROC(i486, "i486", PROC_32_BIT)
37+
PROC(WinChipC6, "winchip-c6", PROC_32_BIT)
38+
PROC(WinChip2, "winchip2", PROC_32_BIT)
39+
PROC(C3, "c3", PROC_32_BIT)
40+
//@}
41+
42+
/// \name i586
43+
/// i586-generation processors, P5 microarchitecture based.
44+
//@{
45+
PROC(i586, "i586", PROC_32_BIT)
46+
PROC(Pentium, "pentium", PROC_32_BIT)
47+
PROC(PentiumMMX, "pentium-mmx", PROC_32_BIT)
48+
//@}
49+
50+
/// \name i686
51+
/// i686-generation processors, P6 / Pentium M microarchitecture based.
52+
//@{
53+
PROC(PentiumPro, "pentiumpro", PROC_32_BIT)
54+
PROC_ALIAS(PentiumPro, "i686")
55+
PROC(Pentium2, "pentium2", PROC_32_BIT)
56+
PROC(Pentium3, "pentium3", PROC_32_BIT)
57+
PROC_ALIAS(Pentium3, "pentium3m")
58+
PROC(PentiumM, "pentium-m", PROC_32_BIT)
59+
PROC(C3_2, "c3-2", PROC_32_BIT)
60+
61+
/// This enumerator is a bit odd, as GCC no longer accepts -march=yonah.
62+
/// Clang however has some logic to support this.
63+
// FIXME: Warn, deprecate, and potentially remove this.
64+
PROC(Yonah, "yonah", PROC_32_BIT)
65+
//@}
66+
67+
/// \name Netburst
68+
/// Netburst microarchitecture based processors.
69+
//@{
70+
PROC(Pentium4, "pentium4", PROC_32_BIT)
71+
PROC_ALIAS(Pentium4, "pentium4m")
72+
73+
PROC(Prescott, "prescott", PROC_32_BIT)
74+
PROC(Nocona, "nocona", PROC_64_BIT)
75+
//@}
76+
77+
/// \name Core
78+
/// Core microarchitecture based processors.
79+
//@{
80+
PROC(Core2, "core2", PROC_64_BIT)
81+
82+
/// This enumerator, like Yonah, is a bit odd. It is another
83+
/// codename which GCC no longer accepts as an option to -march, but Clang
84+
/// has some logic for recognizing it.
85+
// FIXME: Warn, deprecate, and potentially remove this.
86+
PROC(Penryn, "penryn", PROC_64_BIT)
87+
//@}
88+
89+
/// \name Atom
90+
/// Atom processors
91+
//@{
92+
PROC(Bonnell, "bonnell", PROC_64_BIT)
93+
PROC_ALIAS(Bonnell, "atom")
94+
95+
PROC(Silvermont, "silvermont", PROC_64_BIT)
96+
PROC_ALIAS(Silvermont, "slm")
97+
98+
PROC(Goldmont, "goldmont", PROC_64_BIT)
99+
//@}
100+
101+
/// \name Nehalem
102+
/// Nehalem microarchitecture based processors.
103+
PROC(Nehalem, "nehalem", PROC_64_BIT)
104+
PROC_ALIAS(Nehalem, "corei7")
105+
106+
/// \name Westmere
107+
/// Westmere microarchitecture based processors.
108+
PROC(Westmere, "westmere", PROC_64_BIT)
109+
110+
/// \name Sandy Bridge
111+
/// Sandy Bridge microarchitecture based processors.
112+
PROC(SandyBridge, "sandybridge", PROC_64_BIT)
113+
PROC_ALIAS(SandyBridge, "corei7-avx")
114+
115+
/// \name Ivy Bridge
116+
/// Ivy Bridge microarchitecture based processors.
117+
PROC(IvyBridge, "ivybridge", PROC_64_BIT)
118+
PROC_ALIAS(IvyBridge, "core-avx-i")
119+
120+
/// \name Haswell
121+
/// Haswell microarchitecture based processors.
122+
PROC(Haswell, "haswell", PROC_64_BIT)
123+
PROC_ALIAS(Haswell, "core-avx2")
124+
125+
/// \name Broadwell
126+
/// Broadwell microarchitecture based processors.
127+
PROC(Broadwell, "broadwell", PROC_64_BIT)
128+
129+
/// \name Skylake Client
130+
/// Skylake client microarchitecture based processors.
131+
PROC(SkylakeClient, "skylake", PROC_64_BIT)
132+
133+
/// \name Skylake Server
134+
/// Skylake server microarchitecture based processors.
135+
PROC(SkylakeServer, "skylake-avx512", PROC_64_BIT)
136+
PROC_ALIAS(SkylakeServer, "skx")
137+
138+
/// \name Cannonlake Client
139+
/// Cannonlake client microarchitecture based processors.
140+
PROC(Cannonlake, "cannonlake", PROC_64_BIT)
141+
142+
/// \name Knights Landing
143+
/// Knights Landing processor.
144+
PROC(KNL, "knl", PROC_64_BIT)
145+
146+
/// \name Knights Mill
147+
/// Knights Mill processor.
148+
PROC(KNM, "knm", PROC_64_BIT)
149+
150+
/// \name Lakemont
151+
/// Lakemont microarchitecture based processors.
152+
PROC(Lakemont, "lakemont", PROC_32_BIT)
153+
154+
/// \name K6
155+
/// K6 architecture processors.
156+
//@{
157+
PROC(K6, "k6", PROC_32_BIT)
158+
PROC(K6_2, "k6-2", PROC_32_BIT)
159+
PROC(K6_3, "k6-3", PROC_32_BIT)
160+
//@}
161+
162+
/// \name K7
163+
/// K7 architecture processors.
164+
//@{
165+
PROC(Athlon, "athlon", PROC_32_BIT)
166+
PROC_ALIAS(Athlon, "athlon-tbird")
167+
168+
PROC(AthlonXP, "athlon-xp", PROC_32_BIT)
169+
PROC_ALIAS(AthlonXP, "athlon-mp")
170+
PROC_ALIAS(AthlonXP, "athlon-4")
171+
//@}
172+
173+
/// \name K8
174+
/// K8 architecture processors.
175+
//@{
176+
PROC(K8, "k8", PROC_64_BIT)
177+
PROC_ALIAS(K8, "athlon64")
178+
PROC_ALIAS(K8, "athlon-fx")
179+
PROC_ALIAS(K8, "opteron")
180+
181+
PROC(K8SSE3, "k8-sse3", PROC_64_BIT)
182+
PROC_ALIAS(K8SSE3, "athlon64-sse3")
183+
PROC_ALIAS(K8SSE3, "opteron-sse3")
184+
185+
PROC(AMDFAM10, "amdfam10", PROC_64_BIT)
186+
PROC_ALIAS(AMDFAM10, "barcelona")
187+
//@}
188+
189+
/// \name Bobcat
190+
/// Bobcat architecture processors.
191+
//@{
192+
PROC(BTVER1, "btver1", PROC_64_BIT)
193+
PROC(BTVER2, "btver2", PROC_64_BIT)
194+
//@}
195+
196+
/// \name Bulldozer
197+
/// Bulldozer architecture processors.
198+
//@{
199+
PROC(BDVER1, "bdver1", PROC_64_BIT)
200+
PROC(BDVER2, "bdver2", PROC_64_BIT)
201+
PROC(BDVER3, "bdver3", PROC_64_BIT)
202+
PROC(BDVER4, "bdver4", PROC_64_BIT)
203+
//@}
204+
205+
/// \name zen
206+
/// Zen architecture processors.
207+
//@{
208+
PROC(ZNVER1, "znver1", PROC_64_BIT)
209+
//@}
210+
211+
/// This specification is deprecated and will be removed in the future.
212+
/// Users should prefer K8.
213+
// FIXME: Warn on this when the CPU is set to it.
214+
//@{
215+
PROC(x86_64, "x86-64", PROC_64_BIT)
216+
//@}
217+
218+
/// \name Geode
219+
/// Geode processors.
220+
//@{
221+
PROC(Geode, "geode", PROC_32_BIT)
222+
//@}
223+
224+
225+
#undef PROC_64_BIT
226+
#undef PROC_32_BIT
227+
#undef PROC
228+
#undef PROC_ALIAS

0 commit comments

Comments
 (0)