/src/keystone/llvm/lib/Target/PowerPC/PPCGenSubtargetInfo.inc
Line | Count | Source |
1 | | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
2 | | |* *| |
3 | | |* Subtarget Enumeration Source Fragment *| |
4 | | |* *| |
5 | | |* Automatically generated file, do not edit! *| |
6 | | |* *| |
7 | | \*===----------------------------------------------------------------------===*/ |
8 | | |
9 | | |
10 | | #ifdef GET_SUBTARGETINFO_ENUM |
11 | | #undef GET_SUBTARGETINFO_ENUM |
12 | | namespace llvm_ks { |
13 | | namespace PPC { |
14 | | enum : uint64_t { |
15 | | DeprecatedDST = 0, |
16 | | Directive32 = 1, |
17 | | Directive64 = 2, |
18 | | Directive440 = 3, |
19 | | Directive601 = 4, |
20 | | Directive602 = 5, |
21 | | Directive603 = 6, |
22 | | Directive604 = 7, |
23 | | Directive620 = 8, |
24 | | Directive750 = 9, |
25 | | Directive970 = 10, |
26 | | Directive7400 = 11, |
27 | | DirectiveA2 = 12, |
28 | | DirectiveE500mc = 13, |
29 | | DirectiveE5500 = 14, |
30 | | DirectivePwr3 = 15, |
31 | | DirectivePwr4 = 16, |
32 | | DirectivePwr5 = 17, |
33 | | DirectivePwr5x = 18, |
34 | | DirectivePwr6 = 19, |
35 | | DirectivePwr6x = 20, |
36 | | DirectivePwr7 = 21, |
37 | | DirectivePwr8 = 22, |
38 | | Feature64Bit = 23, |
39 | | Feature64BitRegs = 24, |
40 | | FeatureAltivec = 25, |
41 | | FeatureBPERMD = 26, |
42 | | FeatureBookE = 27, |
43 | | FeatureCMPB = 28, |
44 | | FeatureCRBits = 29, |
45 | | FeatureDirectMove = 30, |
46 | | FeatureE500 = 31, |
47 | | FeatureExtDiv = 32, |
48 | | FeatureFCPSGN = 33, |
49 | | FeatureFPCVT = 34, |
50 | | FeatureFPRND = 35, |
51 | | FeatureFRE = 36, |
52 | | FeatureFRES = 37, |
53 | | FeatureFRSQRTE = 38, |
54 | | FeatureFRSQRTES = 39, |
55 | | FeatureFSqrt = 40, |
56 | | FeatureFloat128 = 41, |
57 | | FeatureFusion = 42, |
58 | | FeatureHTM = 43, |
59 | | FeatureICBT = 44, |
60 | | FeatureISEL = 45, |
61 | | FeatureInvariantFunctionDescriptors = 46, |
62 | | FeatureLDBRX = 47, |
63 | | FeatureLFIWAX = 48, |
64 | | FeatureMFOCRF = 49, |
65 | | FeatureMFTB = 50, |
66 | | FeatureMSYNC = 51, |
67 | | FeatureP8Altivec = 52, |
68 | | FeatureP8Crypto = 53, |
69 | | FeatureP8Vector = 54, |
70 | | FeaturePOPCNTD = 55, |
71 | | FeaturePPC4xx = 56, |
72 | | FeaturePPC6xx = 57, |
73 | | FeaturePartwordAtomic = 58, |
74 | | FeatureQPX = 59, |
75 | | FeatureRecipPrec = 60, |
76 | | FeatureSPE = 61, |
77 | | FeatureSTFIWX = 62, |
78 | | FeatureSoftFloat = 63, |
79 | | FeatureVSX = 64 |
80 | | }; |
81 | | } |
82 | | } // end llvm namespace |
83 | | #endif // GET_SUBTARGETINFO_ENUM |
84 | | |
85 | | |
86 | | #ifdef GET_SUBTARGETINFO_MC_DESC |
87 | | #undef GET_SUBTARGETINFO_MC_DESC |
88 | | namespace llvm_ks { |
89 | | // Sorted (by key) array of values for CPU features. |
90 | | extern const llvm_ks::SubtargetFeatureKV PPCFeatureKV[] = { |
91 | | { "64bit", "Enable 64-bit instructions", { PPC::Feature64Bit }, { } }, |
92 | | { "64bitregs", "Enable 64-bit registers usage for ppc32 [beta]", { PPC::Feature64BitRegs }, { } }, |
93 | | { "altivec", "Enable Altivec instructions", { PPC::FeatureAltivec }, { } }, |
94 | | { "booke", "Enable Book E instructions", { PPC::FeatureBookE }, { PPC::FeatureICBT } }, |
95 | | { "bpermd", "Enable the bpermd instruction", { PPC::FeatureBPERMD }, { } }, |
96 | | { "cmpb", "Enable the cmpb instruction", { PPC::FeatureCMPB }, { } }, |
97 | | { "crbits", "Use condition-register bits individually", { PPC::FeatureCRBits }, { } }, |
98 | | { "crypto", "Enable POWER8 Crypto instructions", { PPC::FeatureP8Crypto }, { PPC::FeatureP8Altivec } }, |
99 | | { "direct-move", "Enable Power8 direct move instructions", { PPC::FeatureDirectMove }, { PPC::FeatureVSX } }, |
100 | | { "e500", "Enable E500/E500mc instructions", { PPC::FeatureE500 }, { } }, |
101 | | { "extdiv", "Enable extended divide instructions", { PPC::FeatureExtDiv }, { } }, |
102 | | { "fcpsgn", "Enable the fcpsgn instruction", { PPC::FeatureFCPSGN }, { } }, |
103 | | { "float128", "Enable the __float128 data type for IEEE-754R Binary128.", { PPC::FeatureFloat128 }, { PPC::FeatureVSX } }, |
104 | | { "fpcvt", "Enable fc[ft]* (unsigned and single-precision) and lfiwzx instructions", { PPC::FeatureFPCVT }, { } }, |
105 | | { "fprnd", "Enable the fri[mnpz] instructions", { PPC::FeatureFPRND }, { } }, |
106 | | { "fre", "Enable the fre instruction", { PPC::FeatureFRE }, { } }, |
107 | | { "fres", "Enable the fres instruction", { PPC::FeatureFRES }, { } }, |
108 | | { "frsqrte", "Enable the frsqrte instruction", { PPC::FeatureFRSQRTE }, { } }, |
109 | | { "frsqrtes", "Enable the frsqrtes instruction", { PPC::FeatureFRSQRTES }, { } }, |
110 | | { "fsqrt", "Enable the fsqrt instruction", { PPC::FeatureFSqrt }, { } }, |
111 | | { "fusion", "Target supports add/load integer fusion.", { PPC::FeatureFusion }, { } }, |
112 | | { "htm", "Enable Hardware Transactional Memory instructions", { PPC::FeatureHTM }, { } }, |
113 | | { "icbt", "Enable icbt instruction", { PPC::FeatureICBT }, { } }, |
114 | | { "invariant-function-descriptors", "Assume function descriptors are invariant", { PPC::FeatureInvariantFunctionDescriptors }, { } }, |
115 | | { "isel", "Enable the isel instruction", { PPC::FeatureISEL }, { } }, |
116 | | { "ldbrx", "Enable the ldbrx instruction", { PPC::FeatureLDBRX }, { } }, |
117 | | { "lfiwax", "Enable the lfiwax instruction", { PPC::FeatureLFIWAX }, { } }, |
118 | | { "mfocrf", "Enable the MFOCRF instruction", { PPC::FeatureMFOCRF }, { } }, |
119 | | { "msync", "Has only the msync instruction instead of sync", { PPC::FeatureMSYNC }, { PPC::FeatureBookE } }, |
120 | | { "partword-atomics", "Enable l[bh]arx and st[bh]cx.", { PPC::FeaturePartwordAtomic }, { } }, |
121 | | { "popcntd", "Enable the popcnt[dw] instructions", { PPC::FeaturePOPCNTD }, { } }, |
122 | | { "power8-altivec", "Enable POWER8 Altivec instructions", { PPC::FeatureP8Altivec }, { PPC::FeatureAltivec } }, |
123 | | { "power8-vector", "Enable POWER8 vector instructions", { PPC::FeatureP8Vector }, { PPC::FeatureVSX, PPC::FeatureP8Altivec } }, |
124 | | { "ppc4xx", "Enable PPC 4xx instructions", { PPC::FeaturePPC4xx }, { } }, |
125 | | { "ppc6xx", "Enable PPC 6xx instructions", { PPC::FeaturePPC6xx }, { } }, |
126 | | { "qpx", "Enable QPX instructions", { PPC::FeatureQPX }, { } }, |
127 | | { "recipprec", "Assume higher precision reciprocal estimates", { PPC::FeatureRecipPrec }, { } }, |
128 | | { "soft-float", "Use software emulation for floating point", { PPC::FeatureSoftFloat }, { } }, |
129 | | { "spe", "Enable SPE instructions", { PPC::FeatureSPE }, { } }, |
130 | | { "stfiwx", "Enable the stfiwx instruction", { PPC::FeatureSTFIWX }, { } }, |
131 | | { "vsx", "Enable VSX instructions", { PPC::FeatureVSX }, { PPC::FeatureAltivec } } |
132 | | }; |
133 | | |
134 | | // Sorted (by key) array of values for CPU subtype. |
135 | | extern const llvm_ks::SubtargetFeatureKV PPCSubTypeKV[] = { |
136 | | { "440", "Select the 440 processor", { PPC::Directive440, PPC::FeatureISEL, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureICBT, PPC::FeatureBookE, PPC::FeatureMSYNC, PPC::FeatureMFTB }, { } }, |
137 | | { "450", "Select the 450 processor", { PPC::Directive440, PPC::FeatureISEL, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureICBT, PPC::FeatureBookE, PPC::FeatureMSYNC, PPC::FeatureMFTB }, { } }, |
138 | | { "601", "Select the 601 processor", { PPC::Directive601 }, { } }, |
139 | | { "602", "Select the 602 processor", { PPC::Directive602, PPC::FeatureMFTB }, { } }, |
140 | | { "603", "Select the 603 processor", { PPC::Directive603, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
141 | | { "603e", "Select the 603e processor", { PPC::Directive603, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
142 | | { "603ev", "Select the 603ev processor", { PPC::Directive603, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
143 | | { "604", "Select the 604 processor", { PPC::Directive604, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
144 | | { "604e", "Select the 604e processor", { PPC::Directive604, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
145 | | { "620", "Select the 620 processor", { PPC::Directive620, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
146 | | { "7400", "Select the 7400 processor", { PPC::Directive7400, PPC::FeatureAltivec, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
147 | | { "7450", "Select the 7450 processor", { PPC::Directive7400, PPC::FeatureAltivec, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
148 | | { "750", "Select the 750 processor", { PPC::Directive750, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
149 | | { "970", "Select the 970 processor", { PPC::Directive970, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFSqrt, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureSTFIWX, PPC::Feature64Bit, PPC::FeatureMFTB }, { } }, |
150 | | { "a2", "Select the a2 processor", { PPC::DirectiveA2, PPC::FeatureICBT, PPC::FeatureBookE, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureFPRND, PPC::FeatureFPCVT, PPC::FeatureISEL, PPC::FeaturePOPCNTD, PPC::FeatureCMPB, PPC::FeatureLDBRX, PPC::Feature64Bit, PPC::FeatureMFTB }, { } }, |
151 | | { "a2q", "Select the a2q processor", { PPC::DirectiveA2, PPC::FeatureICBT, PPC::FeatureBookE, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureFPRND, PPC::FeatureFPCVT, PPC::FeatureISEL, PPC::FeaturePOPCNTD, PPC::FeatureCMPB, PPC::FeatureLDBRX, PPC::Feature64Bit, PPC::FeatureQPX, PPC::FeatureMFTB }, { } }, |
152 | | { "e500mc", "Select the e500mc processor", { PPC::DirectiveE500mc, PPC::FeatureSTFIWX, PPC::FeatureICBT, PPC::FeatureBookE, PPC::FeatureISEL, PPC::FeatureMFTB }, { } }, |
153 | | { "e5500", "Select the e5500 processor", { PPC::DirectiveE5500, PPC::FeatureMFOCRF, PPC::Feature64Bit, PPC::FeatureSTFIWX, PPC::FeatureICBT, PPC::FeatureBookE, PPC::FeatureISEL, PPC::FeatureMFTB }, { } }, |
154 | | { "g3", "Select the g3 processor", { PPC::Directive750, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
155 | | { "g4", "Select the g4 processor", { PPC::Directive7400, PPC::FeatureAltivec, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
156 | | { "g4+", "Select the g4+ processor", { PPC::Directive7400, PPC::FeatureAltivec, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFTB }, { } }, |
157 | | { "g5", "Select the g5 processor", { PPC::Directive970, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFSqrt, PPC::FeatureSTFIWX, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::Feature64Bit, PPC::FeatureMFTB, PPC::DeprecatedDST }, { } }, |
158 | | { "generic", "Select the generic processor", { PPC::Directive32, PPC::FeatureMFTB }, { } }, |
159 | | { "ppc", "Select the ppc processor", { PPC::Directive32, PPC::FeatureMFTB }, { } }, |
160 | | { "ppc64", "Select the ppc64 processor", { PPC::Directive64, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFSqrt, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureSTFIWX, PPC::Feature64Bit, PPC::FeatureMFTB }, { } }, |
161 | | { "ppc64le", "Select the ppc64le processor", { PPC::DirectivePwr7, PPC::FeatureAltivec, PPC::FeatureVSX, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureFPRND, PPC::FeatureFPCVT, PPC::FeatureISEL, PPC::FeaturePOPCNTD, PPC::FeatureCMPB, PPC::FeatureLDBRX, PPC::Feature64Bit, PPC::FeatureBPERMD, PPC::FeatureExtDiv, PPC::FeatureMFTB, PPC::DeprecatedDST, PPC::DirectivePwr8, PPC::FeatureP8Altivec, PPC::FeatureP8Vector, PPC::FeatureP8Crypto, PPC::FeatureHTM, PPC::FeatureDirectMove, PPC::FeatureICBT, PPC::FeaturePartwordAtomic, PPC::FeatureFusion }, { } }, |
162 | | { "pwr3", "Select the pwr3 processor", { PPC::DirectivePwr3, PPC::FeatureAltivec, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureMFOCRF, PPC::FeatureSTFIWX, PPC::Feature64Bit }, { } }, |
163 | | { "pwr4", "Select the pwr4 processor", { PPC::DirectivePwr4, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFSqrt, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureSTFIWX, PPC::Feature64Bit, PPC::FeatureMFTB }, { } }, |
164 | | { "pwr5", "Select the pwr5 processor", { PPC::DirectivePwr5, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureSTFIWX, PPC::Feature64Bit, PPC::FeatureMFTB, PPC::DeprecatedDST }, { } }, |
165 | | { "pwr5x", "Select the pwr5x processor", { PPC::DirectivePwr5x, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureSTFIWX, PPC::FeatureFPRND, PPC::Feature64Bit, PPC::FeatureMFTB, PPC::DeprecatedDST }, { } }, |
166 | | { "pwr6", "Select the pwr6 processor", { PPC::DirectivePwr6, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureCMPB, PPC::FeatureFPRND, PPC::Feature64Bit, PPC::FeatureMFTB, PPC::DeprecatedDST }, { } }, |
167 | | { "pwr6x", "Select the pwr6x processor", { PPC::DirectivePwr5x, PPC::FeatureAltivec, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureCMPB, PPC::FeatureFPRND, PPC::Feature64Bit, PPC::FeatureMFTB, PPC::DeprecatedDST }, { } }, |
168 | | { "pwr7", "Select the pwr7 processor", { PPC::DirectivePwr7, PPC::FeatureAltivec, PPC::FeatureVSX, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureFPRND, PPC::FeatureFPCVT, PPC::FeatureISEL, PPC::FeaturePOPCNTD, PPC::FeatureCMPB, PPC::FeatureLDBRX, PPC::Feature64Bit, PPC::FeatureBPERMD, PPC::FeatureExtDiv, PPC::FeatureMFTB, PPC::DeprecatedDST }, { } }, |
169 | | { "pwr8", "Select the pwr8 processor", { PPC::DirectivePwr7, PPC::FeatureAltivec, PPC::FeatureVSX, PPC::FeatureMFOCRF, PPC::FeatureFCPSGN, PPC::FeatureFSqrt, PPC::FeatureFRE, PPC::FeatureFRES, PPC::FeatureFRSQRTE, PPC::FeatureFRSQRTES, PPC::FeatureRecipPrec, PPC::FeatureSTFIWX, PPC::FeatureLFIWAX, PPC::FeatureFPRND, PPC::FeatureFPCVT, PPC::FeatureISEL, PPC::FeaturePOPCNTD, PPC::FeatureCMPB, PPC::FeatureLDBRX, PPC::Feature64Bit, PPC::FeatureBPERMD, PPC::FeatureExtDiv, PPC::FeatureMFTB, PPC::DeprecatedDST, PPC::DirectivePwr8, PPC::FeatureP8Altivec, PPC::FeatureP8Vector, PPC::FeatureP8Crypto, PPC::FeatureHTM, PPC::FeatureDirectMove, PPC::FeatureICBT, PPC::FeaturePartwordAtomic, PPC::FeatureFusion }, { } } |
170 | | }; |
171 | | |
172 | | #ifdef DBGFIELD |
173 | | #error "<target>GenSubtargetInfo.inc requires a DBGFIELD macro" |
174 | | #endif |
175 | | #ifndef NDEBUG |
176 | | #define DBGFIELD(x) x, |
177 | | #else |
178 | | #define DBGFIELD(x) |
179 | | #endif |
180 | | |
181 | | #undef DBGFIELD |
182 | 7.36k | static inline MCSubtargetInfo *createPPCMCSubtargetInfoImpl(const Triple &TT, StringRef CPU, StringRef FS) { |
183 | | return new MCSubtargetInfo(TT, CPU, FS, PPCFeatureKV, PPCSubTypeKV, NULL); |
184 | 7.36k | } |
185 | | |
186 | | } // end llvm namespace |
187 | | #endif // GET_SUBTARGETINFO_MC_DESC |
188 | | |
189 | | |
190 | | #ifdef GET_SUBTARGETINFO_TARGET_DESC |
191 | | #undef GET_SUBTARGETINFO_TARGET_DESC |
192 | | #include "llvm/Support/Debug.h" |
193 | | #include "llvm/Support/raw_ostream.h" |
194 | | // ParseSubtargetFeatures - Parses features string setting specified |
195 | | // subtarget options. |
196 | | void llvm_ks::PPCSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef FS) { |
197 | | DEBUG(dbgs() << "\nFeatures:" << FS); |
198 | | DEBUG(dbgs() << "\nCPU:" << CPU << "\n\n"); |
199 | | InitMCProcessorInfo(CPU, FS); |
200 | | const FeatureBitset& Bits = getFeatureBits(); |
201 | | if (Bits[PPC::DeprecatedDST]) DeprecatedDST = true; |
202 | | if (Bits[PPC::Directive32] && DarwinDirective < PPC::DIR_32) DarwinDirective = PPC::DIR_32; |
203 | | if (Bits[PPC::Directive64] && DarwinDirective < PPC::DIR_64) DarwinDirective = PPC::DIR_64; |
204 | | if (Bits[PPC::Directive440] && DarwinDirective < PPC::DIR_440) DarwinDirective = PPC::DIR_440; |
205 | | if (Bits[PPC::Directive601] && DarwinDirective < PPC::DIR_601) DarwinDirective = PPC::DIR_601; |
206 | | if (Bits[PPC::Directive602] && DarwinDirective < PPC::DIR_602) DarwinDirective = PPC::DIR_602; |
207 | | if (Bits[PPC::Directive603] && DarwinDirective < PPC::DIR_603) DarwinDirective = PPC::DIR_603; |
208 | | if (Bits[PPC::Directive604] && DarwinDirective < PPC::DIR_603) DarwinDirective = PPC::DIR_603; |
209 | | if (Bits[PPC::Directive620] && DarwinDirective < PPC::DIR_603) DarwinDirective = PPC::DIR_603; |
210 | | if (Bits[PPC::Directive750] && DarwinDirective < PPC::DIR_750) DarwinDirective = PPC::DIR_750; |
211 | | if (Bits[PPC::Directive970] && DarwinDirective < PPC::DIR_970) DarwinDirective = PPC::DIR_970; |
212 | | if (Bits[PPC::Directive7400] && DarwinDirective < PPC::DIR_7400) DarwinDirective = PPC::DIR_7400; |
213 | | if (Bits[PPC::DirectiveA2] && DarwinDirective < PPC::DIR_A2) DarwinDirective = PPC::DIR_A2; |
214 | | if (Bits[PPC::DirectiveE500mc] && DarwinDirective < PPC::DIR_E500mc) DarwinDirective = PPC::DIR_E500mc; |
215 | | if (Bits[PPC::DirectiveE5500] && DarwinDirective < PPC::DIR_E5500) DarwinDirective = PPC::DIR_E5500; |
216 | | if (Bits[PPC::DirectivePwr3] && DarwinDirective < PPC::DIR_PWR3) DarwinDirective = PPC::DIR_PWR3; |
217 | | if (Bits[PPC::DirectivePwr4] && DarwinDirective < PPC::DIR_PWR4) DarwinDirective = PPC::DIR_PWR4; |
218 | | if (Bits[PPC::DirectivePwr5] && DarwinDirective < PPC::DIR_PWR5) DarwinDirective = PPC::DIR_PWR5; |
219 | | if (Bits[PPC::DirectivePwr5x] && DarwinDirective < PPC::DIR_PWR5X) DarwinDirective = PPC::DIR_PWR5X; |
220 | | if (Bits[PPC::DirectivePwr6] && DarwinDirective < PPC::DIR_PWR6) DarwinDirective = PPC::DIR_PWR6; |
221 | | if (Bits[PPC::DirectivePwr6x] && DarwinDirective < PPC::DIR_PWR6X) DarwinDirective = PPC::DIR_PWR6X; |
222 | | if (Bits[PPC::DirectivePwr7] && DarwinDirective < PPC::DIR_PWR7) DarwinDirective = PPC::DIR_PWR7; |
223 | | if (Bits[PPC::DirectivePwr8] && DarwinDirective < PPC::DIR_PWR8) DarwinDirective = PPC::DIR_PWR8; |
224 | | if (Bits[PPC::Feature64Bit]) Has64BitSupport = true; |
225 | | if (Bits[PPC::Feature64BitRegs]) Use64BitRegs = true; |
226 | | if (Bits[PPC::FeatureAltivec]) HasAltivec = true; |
227 | | if (Bits[PPC::FeatureBPERMD]) HasBPERMD = true; |
228 | | if (Bits[PPC::FeatureBookE]) IsBookE = true; |
229 | | if (Bits[PPC::FeatureCMPB]) HasCMPB = true; |
230 | | if (Bits[PPC::FeatureCRBits]) UseCRBits = true; |
231 | | if (Bits[PPC::FeatureDirectMove]) HasDirectMove = true; |
232 | | if (Bits[PPC::FeatureE500]) IsE500 = true; |
233 | | if (Bits[PPC::FeatureExtDiv]) HasExtDiv = true; |
234 | | if (Bits[PPC::FeatureFCPSGN]) HasFCPSGN = true; |
235 | | if (Bits[PPC::FeatureFPCVT]) HasFPCVT = true; |
236 | | if (Bits[PPC::FeatureFPRND]) HasFPRND = true; |
237 | | if (Bits[PPC::FeatureFRE]) HasFRE = true; |
238 | | if (Bits[PPC::FeatureFRES]) HasFRES = true; |
239 | | if (Bits[PPC::FeatureFRSQRTE]) HasFRSQRTE = true; |
240 | | if (Bits[PPC::FeatureFRSQRTES]) HasFRSQRTES = true; |
241 | | if (Bits[PPC::FeatureFSqrt]) HasFSQRT = true; |
242 | | if (Bits[PPC::FeatureFloat128]) HasFloat128 = true; |
243 | | if (Bits[PPC::FeatureFusion]) HasFusion = true; |
244 | | if (Bits[PPC::FeatureHTM]) HasHTM = true; |
245 | | if (Bits[PPC::FeatureICBT]) HasICBT = true; |
246 | | if (Bits[PPC::FeatureISEL]) HasISEL = true; |
247 | | if (Bits[PPC::FeatureInvariantFunctionDescriptors]) HasInvariantFunctionDescriptors = true; |
248 | | if (Bits[PPC::FeatureLDBRX]) HasLDBRX = true; |
249 | | if (Bits[PPC::FeatureLFIWAX]) HasLFIWAX = true; |
250 | | if (Bits[PPC::FeatureMFOCRF]) HasMFOCRF = true; |
251 | | if (Bits[PPC::FeatureMFTB]) FeatureMFTB = true; |
252 | | if (Bits[PPC::FeatureMSYNC]) HasOnlyMSYNC = true; |
253 | | if (Bits[PPC::FeatureP8Altivec]) HasP8Altivec = true; |
254 | | if (Bits[PPC::FeatureP8Crypto]) HasP8Crypto = true; |
255 | | if (Bits[PPC::FeatureP8Vector]) HasP8Vector = true; |
256 | | if (Bits[PPC::FeaturePOPCNTD]) HasPOPCNTD = true; |
257 | | if (Bits[PPC::FeaturePPC4xx]) IsPPC4xx = true; |
258 | | if (Bits[PPC::FeaturePPC6xx]) IsPPC6xx = true; |
259 | | if (Bits[PPC::FeaturePartwordAtomic]) HasPartwordAtomics = true; |
260 | | if (Bits[PPC::FeatureQPX]) HasQPX = true; |
261 | | if (Bits[PPC::FeatureRecipPrec]) HasRecipPrec = true; |
262 | | if (Bits[PPC::FeatureSPE]) HasSPE = true; |
263 | | if (Bits[PPC::FeatureSTFIWX]) HasSTFIWX = true; |
264 | | if (Bits[PPC::FeatureSoftFloat]) UseSoftFloat = true; |
265 | | if (Bits[PPC::FeatureVSX]) HasVSX = true; |
266 | | } |
267 | | #endif // GET_SUBTARGETINFO_TARGET_DESC |