1 class Architecture<string fname, string aname, list<SubtargetFeature> features>
2 : SubtargetFeature<fname, "ARMArch", aname,
3 !strconcat(aname, " architecture"), features>;
5 //===----------------------------------------------------------------------===//
9 def ARMv4 : Architecture<"armv4", "ARMv4", []>;
11 def ARMv4t : Architecture<"armv4t", "ARMv4t", [HasV4TOps]>;
13 def ARMv5t : Architecture<"armv5t", "ARMv5t", [HasV5TOps]>;
15 def ARMv5te : Architecture<"armv5te", "ARMv5te", [HasV5TEOps]>;
17 def ARMv5tej : Architecture<"armv5tej", "ARMv5tej", [HasV5TEOps]>;
19 def ARMv6 : Architecture<"armv6", "ARMv6", [HasV6Ops,
22 def ARMv6t2 : Architecture<"armv6t2", "ARMv6t2", [HasV6T2Ops,
25 def ARMv6k : Architecture<"armv6k", "ARMv6k", [HasV6KOps]>;
27 def ARMv6kz : Architecture<"armv6kz", "ARMv6kz", [HasV6KOps,
30 def ARMv6m : Architecture<"armv6-m", "ARMv6m", [HasV6MOps,
37 def ARMv6sm : Architecture<"armv6s-m", "ARMv6sm", [HasV6MOps,
44 def ARMv7a : Architecture<"armv7-a", "ARMv7a", [HasV7Ops,
51 def ARMv7ve : Architecture<"armv7ve", "ARMv7ve", [HasV7Ops,
57 FeatureVirtualization,
61 def ARMv7r : Architecture<"armv7-r", "ARMv7r", [HasV7Ops,
68 def ARMv7m : Architecture<"armv7-m", "ARMv7m", [HasV7Ops,
76 def ARMv7em : Architecture<"armv7e-m", "ARMv7em", [HasV7Ops,
85 def ARMv8a : Architecture<"armv8-a", "ARMv8a", [HasV8Ops,
93 FeatureVirtualization,
97 def ARMv81a : Architecture<"armv8.1-a", "ARMv81a", [HasV8_1aOps,
105 FeatureVirtualization,
109 def ARMv82a : Architecture<"armv8.2-a", "ARMv82a", [HasV8_2aOps,
117 FeatureVirtualization,
122 def ARMv83a : Architecture<"armv8.3-a", "ARMv83a", [HasV8_3aOps,
130 FeatureVirtualization,
135 def ARMv84a : Architecture<"armv8.4-a", "ARMv84a", [HasV8_4aOps,
143 FeatureVirtualization,
149 def ARMv85a : Architecture<"armv8.5-a", "ARMv85a", [HasV8_5aOps,
157 FeatureVirtualization,
162 def ARMv86a : Architecture<"armv8.6-a", "ARMv86a", [HasV8_6aOps,
170 FeatureVirtualization,
175 def ARMv87a : Architecture<"armv8.7-a", "ARMv87a", [HasV8_7aOps,
183 FeatureVirtualization,
188 def ARMv88a : Architecture<"armv8.8-a", "ARMv88a", [HasV8_8aOps,
196 FeatureVirtualization,
201 def ARMv89a : Architecture<"armv8.9-a", "ARMv89a", [HasV8_9aOps,
209 FeatureVirtualization,
215 def ARMv9a : Architecture<"armv9-a", "ARMv9a", [HasV9_0aOps,
223 FeatureVirtualization,
227 def ARMv91a : Architecture<"armv9.1-a", "ARMv91a", [HasV9_1aOps,
235 FeatureVirtualization,
239 def ARMv92a : Architecture<"armv9.2-a", "ARMv92a", [HasV9_2aOps,
247 FeatureVirtualization,
251 def ARMv93a : Architecture<"armv9.3-a", "ARMv93a", [HasV9_3aOps,
259 FeatureVirtualization,
264 def ARMv94a : Architecture<"armv9.4-a", "ARMv94a", [HasV9_4aOps,
272 FeatureVirtualization,
276 def ARMv95a : Architecture<"armv9.5-a", "ARMv95a", [HasV9_5aOps,
284 FeatureVirtualization,
288 def ARMv96a : Architecture<"armv9.6-a", "ARMv96a", [HasV9_6aOps,
296 FeatureVirtualization,
300 def ARMv8r : Architecture<"armv8-r", "ARMv8r", [HasV8Ops,
307 FeatureFPARMv8_D16_SP,
308 FeatureVirtualization]>;
310 def ARMv8mBaseline : Architecture<"armv8-m.base", "ARMv8mBaseline",
318 FeatureAcquireRelease,
320 FeatureStrictAlign]>;
322 def ARMv8mMainline : Architecture<"armv8-m.main", "ARMv8mMainline",
329 FeatureAcquireRelease,
332 def ARMv81mMainline : Architecture<"armv8.1-m.main", "ARMv81mMainline",
333 [HasV8_1MMainlineOps,
339 FeatureAcquireRelease,
345 def IWMMXT : Architecture<"iwmmxt", "ARMv5te", [ARMv5te]>;
346 def IWMMXT2 : Architecture<"iwmmxt2", "ARMv5te", [ARMv5te]>;
347 def XScale : Architecture<"xscale", "ARMv5te", [ARMv5te]>;
348 def ARMv6j : Architecture<"armv6j", "ARMv7a", [ARMv6]>;
349 def ARMv7k : Architecture<"armv7k", "ARMv7a", [ARMv7a]>;
350 def ARMv7s : Architecture<"armv7s", "ARMv7a", [ARMv7a]>;