Index: src/arm/assembler-arm.cc |
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc |
index 74fd61979b0c3a9a75a3c42d99b5d0b22754b042..c9753762aa6c5b4a04f6ba3ac46cc998c08226d4 100644 |
--- a/src/arm/assembler-arm.cc |
+++ b/src/arm/assembler-arm.cc |
@@ -81,6 +81,11 @@ static unsigned CpuFeaturesImpliedByCompiler() { |
answer |= 1u << VFP32DREGS; |
} |
#endif // CAN_USE_VFP32DREGS |
+#ifdef CAN_USE_NEON |
+ if (FLAG_enable_neon) { |
+ answer |= 1u << NEON; |
+ } |
+#endif // CAN_USE_VFP32DREGS |
if ((answer & (1u << ARMv7)) && FLAG_enable_unaligned_accesses) { |
answer |= 1u << UNALIGNED_ACCESSES; |
} |
@@ -120,33 +125,26 @@ void CpuFeatures::Probe(bool serializer_enabled) { |
} |
#ifndef __arm__ |
- // For the simulator=arm build, use VFP when FLAG_enable_vfp3 is |
- // enabled. VFPv3 implies ARMv7, see ARM DDI 0406B, page A1-6. |
- if (FLAG_enable_vfp3) { |
- supported_ |= |
- static_cast<uint64_t>(1) << VFP3 | |
- static_cast<uint64_t>(1) << ARMv7; |
- } |
- if (FLAG_enable_neon) { |
- supported_ |= 1u << NEON; |
- } |
// For the simulator=arm build, use ARMv7 when FLAG_enable_armv7 is enabled |
if (FLAG_enable_armv7) { |
supported_ |= static_cast<uint64_t>(1) << ARMv7; |
+ if (FLAG_enable_vfp3) { |
+ supported_ |= static_cast<uint64_t>(1) << VFP3; |
+ } |
+ if (FLAG_enable_neon) { |
+ supported_ |= 1u << NEON; |
+ supported_ |= static_cast<uint64_t>(1) << VFP32DREGS; |
+ } |
+ if (FLAG_enable_sudiv) { |
+ supported_ |= static_cast<uint64_t>(1) << SUDIV; |
+ } |
+ if (FLAG_enable_movw_movt) { |
+ supported_ |= static_cast<uint64_t>(1) << MOVW_MOVT_IMMEDIATE_LOADS; |
+ } |
+ if (FLAG_enable_32dregs) { |
+ supported_ |= static_cast<uint64_t>(1) << VFP32DREGS; |
+ } |
} |
- |
- if (FLAG_enable_sudiv) { |
- supported_ |= static_cast<uint64_t>(1) << SUDIV; |
- } |
- |
- if (FLAG_enable_movw_movt) { |
- supported_ |= static_cast<uint64_t>(1) << MOVW_MOVT_IMMEDIATE_LOADS; |
- } |
- |
- if (FLAG_enable_32dregs) { |
- supported_ |= static_cast<uint64_t>(1) << VFP32DREGS; |
- } |
- |
if (FLAG_enable_unaligned_accesses) { |
supported_ |= static_cast<uint64_t>(1) << UNALIGNED_ACCESSES; |
} |