Lines Matching refs:STI
131 static ARMBuildAttrs::CPUArch getArchForCPU(const MCSubtargetInfo &STI) { in getArchForCPU() argument
132 if (STI.getCPU() == "xscale") in getArchForCPU()
135 if (STI.hasFeature(ARM::HasV9_0aOps)) in getArchForCPU()
137 else if (STI.hasFeature(ARM::HasV8Ops)) { in getArchForCPU()
138 if (STI.hasFeature(ARM::FeatureRClass)) in getArchForCPU()
141 } else if (STI.hasFeature(ARM::HasV8_1MMainlineOps)) in getArchForCPU()
143 else if (STI.hasFeature(ARM::HasV8MMainlineOps)) in getArchForCPU()
145 else if (STI.hasFeature(ARM::HasV7Ops)) { in getArchForCPU()
146 if (STI.hasFeature(ARM::FeatureMClass) && STI.hasFeature(ARM::FeatureDSP)) in getArchForCPU()
149 } else if (STI.hasFeature(ARM::HasV6T2Ops)) in getArchForCPU()
151 else if (STI.hasFeature(ARM::HasV8MBaselineOps)) in getArchForCPU()
153 else if (STI.hasFeature(ARM::HasV6MOps)) in getArchForCPU()
155 else if (STI.hasFeature(ARM::HasV6Ops)) in getArchForCPU()
157 else if (STI.hasFeature(ARM::HasV5TEOps)) in getArchForCPU()
159 else if (STI.hasFeature(ARM::HasV5TOps)) in getArchForCPU()
161 else if (STI.hasFeature(ARM::HasV4TOps)) in getArchForCPU()
167 static bool isV8M(const MCSubtargetInfo &STI) { in isV8M() argument
169 return (STI.hasFeature(ARM::HasV8MBaselineOps) && in isV8M()
170 !STI.hasFeature(ARM::HasV6T2Ops)) || in isV8M()
171 STI.hasFeature(ARM::HasV8MMainlineOps); in isV8M()
176 void ARMTargetStreamer::emitTargetAttributes(const MCSubtargetInfo &STI) { in emitTargetAttributes() argument
179 const StringRef CPUString = STI.getCPU(); in emitTargetAttributes()
182 if (STI.hasFeature(ARM::ProcKrait)) { in emitTargetAttributes()
186 if (STI.hasFeature(ARM::FeatureHWDivThumb) || in emitTargetAttributes()
187 STI.hasFeature(ARM::FeatureHWDivARM)) in emitTargetAttributes()
194 emitAttribute(ARMBuildAttrs::CPU_arch, getArchForCPU(STI)); in emitTargetAttributes()
196 if (STI.hasFeature(ARM::FeatureAClass)) { in emitTargetAttributes()
199 } else if (STI.hasFeature(ARM::FeatureRClass)) { in emitTargetAttributes()
202 } else if (STI.hasFeature(ARM::FeatureMClass)) { in emitTargetAttributes()
207 emitAttribute(ARMBuildAttrs::ARM_ISA_use, STI.hasFeature(ARM::FeatureNoARM) in emitTargetAttributes()
211 if (isV8M(STI)) { in emitTargetAttributes()
214 } else if (STI.hasFeature(ARM::FeatureThumb2)) { in emitTargetAttributes()
217 } else if (STI.hasFeature(ARM::HasV4TOps)) { in emitTargetAttributes()
221 if (STI.hasFeature(ARM::FeatureNEON)) { in emitTargetAttributes()
224 if (STI.hasFeature(ARM::FeatureFPARMv8)) { in emitTargetAttributes()
225 if (STI.hasFeature(ARM::FeatureCrypto)) in emitTargetAttributes()
229 } else if (STI.hasFeature(ARM::FeatureVFP4)) in emitTargetAttributes()
232 emitFPU(STI.hasFeature(ARM::FeatureFP16) ? ARM::FK_NEON_FP16 in emitTargetAttributes()
235 if (STI.hasFeature(ARM::HasV8Ops)) in emitTargetAttributes()
237 STI.hasFeature(ARM::HasV8_1aOps) in emitTargetAttributes()
241 if (STI.hasFeature(ARM::FeatureFPARMv8_D16_SP)) { in emitTargetAttributes()
244 if (STI.hasFeature(ARM::FeatureD32)) in emitTargetAttributes()
247 emitFPU(STI.hasFeature(ARM::FeatureFP64) ? ARM::FK_FPV5_D16 in emitTargetAttributes()
249 if (STI.hasFeature(ARM::HasMVEFloatOps)) in emitTargetAttributes()
252 } else if (STI.hasFeature(ARM::FeatureVFP4_D16_SP)) in emitTargetAttributes()
253 emitFPU(STI.hasFeature(ARM::FeatureD32) in emitTargetAttributes()
255 : (STI.hasFeature(ARM::FeatureFP64) ? ARM::FK_VFPV4_D16 in emitTargetAttributes()
257 else if (STI.hasFeature(ARM::FeatureVFP3_D16_SP)) in emitTargetAttributes()
259 STI.hasFeature(ARM::FeatureD32) in emitTargetAttributes()
261 ? (STI.hasFeature(ARM::FeatureFP16) ? ARM::FK_VFPV3_FP16 in emitTargetAttributes()
264 : (STI.hasFeature(ARM::FeatureFP64) in emitTargetAttributes()
265 ? (STI.hasFeature(ARM::FeatureFP16) in emitTargetAttributes()
268 : (STI.hasFeature(ARM::FeatureFP16) ? ARM::FK_VFPV3XD_FP16 in emitTargetAttributes()
270 else if (STI.hasFeature(ARM::FeatureVFP2_SP)) in emitTargetAttributes()
275 if (STI.hasFeature(ARM::FeatureVFP2_SP) && !STI.hasFeature(ARM::FeatureFP64)) in emitTargetAttributes()
279 if (STI.hasFeature(ARM::FeatureFP16)) in emitTargetAttributes()
282 if (STI.hasFeature(ARM::FeatureMP)) in emitTargetAttributes()
285 if (STI.hasFeature(ARM::HasMVEFloatOps)) in emitTargetAttributes()
287 else if (STI.hasFeature(ARM::HasMVEIntegerOps)) in emitTargetAttributes()
296 if (STI.hasFeature(ARM::FeatureHWDivARM) && !STI.hasFeature(ARM::HasV8Ops)) in emitTargetAttributes()
299 if (STI.hasFeature(ARM::FeatureDSP) && isV8M(STI)) in emitTargetAttributes()
302 if (STI.hasFeature(ARM::FeatureStrictAlign)) in emitTargetAttributes()
309 if (STI.hasFeature(ARM::FeatureTrustZone) && in emitTargetAttributes()
310 STI.hasFeature(ARM::FeatureVirtualization)) in emitTargetAttributes()
313 else if (STI.hasFeature(ARM::FeatureTrustZone)) in emitTargetAttributes()
315 else if (STI.hasFeature(ARM::FeatureVirtualization)) in emitTargetAttributes()
319 if (STI.hasFeature(ARM::FeaturePACBTI)) { in emitTargetAttributes()
326 llvm::createARMObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI) { in createARMObjectTargetStreamer() argument
327 const Triple &TT = STI.getTargetTriple(); in createARMObjectTargetStreamer()