Lines Matching full:arm
111 void ARMTargetStreamer::emitArch(ARM::ArchKind Arch) {} in emitArch()
113 void ARMTargetStreamer::emitObjectArch(ARM::ArchKind Arch) {} in emitObjectArch()
114 void ARMTargetStreamer::emitFPU(ARM::FPUKind FPU) {} in emitFPU()
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()
169 return (STI.hasFeature(ARM::HasV8MBaselineOps) && in isV8M()
170 !STI.hasFeature(ARM::HasV6T2Ops)) || in isV8M()
171 STI.hasFeature(ARM::HasV8MMainlineOps); in isV8M()
182 if (STI.hasFeature(ARM::ProcKrait)) { in emitTargetAttributes()
186 if (STI.hasFeature(ARM::FeatureHWDivThumb) || in emitTargetAttributes()
187 STI.hasFeature(ARM::FeatureHWDivARM)) in emitTargetAttributes()
188 emitArchExtension(ARM::AEK_HWDIVTHUMB | ARM::AEK_HWDIVARM); 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()
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()
226 emitFPU(ARM::FK_CRYPTO_NEON_FP_ARMV8); in emitTargetAttributes()
228 emitFPU(ARM::FK_NEON_FP_ARMV8); in emitTargetAttributes()
229 } else if (STI.hasFeature(ARM::FeatureVFP4)) in emitTargetAttributes()
230 emitFPU(ARM::FK_NEON_VFPV4); in emitTargetAttributes()
232 emitFPU(STI.hasFeature(ARM::FeatureFP16) ? ARM::FK_NEON_FP16 in emitTargetAttributes()
233 : ARM::FK_NEON); 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()
245 emitFPU(ARM::FK_FP_ARMV8); in emitTargetAttributes()
247 emitFPU(STI.hasFeature(ARM::FeatureFP64) ? ARM::FK_FPV5_D16 in emitTargetAttributes()
248 : ARM::FK_FPV5_SP_D16); in emitTargetAttributes()
249 if (STI.hasFeature(ARM::HasMVEFloatOps)) in emitTargetAttributes()
250 emitArchExtension(ARM::AEK_SIMD | ARM::AEK_DSP | ARM::AEK_FP); in emitTargetAttributes()
252 } else if (STI.hasFeature(ARM::FeatureVFP4_D16_SP)) in emitTargetAttributes()
253 emitFPU(STI.hasFeature(ARM::FeatureD32) in emitTargetAttributes()
254 ? ARM::FK_VFPV4 in emitTargetAttributes()
255 : (STI.hasFeature(ARM::FeatureFP64) ? ARM::FK_VFPV4_D16 in emitTargetAttributes()
256 : ARM::FK_FPV4_SP_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()
262 : ARM::FK_VFPV3) in emitTargetAttributes()
264 : (STI.hasFeature(ARM::FeatureFP64) in emitTargetAttributes()
265 ? (STI.hasFeature(ARM::FeatureFP16) in emitTargetAttributes()
266 ? ARM::FK_VFPV3_D16_FP16 in emitTargetAttributes()
267 : ARM::FK_VFPV3_D16) in emitTargetAttributes()
268 : (STI.hasFeature(ARM::FeatureFP16) ? ARM::FK_VFPV3XD_FP16 in emitTargetAttributes()
269 : ARM::FK_VFPV3XD))); in emitTargetAttributes()
270 else if (STI.hasFeature(ARM::FeatureVFP2_SP)) in emitTargetAttributes()
271 emitFPU(ARM::FK_VFPV2); 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()
290 // Hardware divide in ARM mode is part of base arch, starting from ARMv8. 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()