From 2fb52cbe30d90fe0253db93b1d543b20df821872 Mon Sep 17 00:00:00 2001 From: Jacob Bramley Date: Tue, 16 Apr 2019 15:22:31 +0100 Subject: Only assume baseline features if InferFromOS fails. This fixes 'CAN_RUN()' on platforms that lack kCRC32, as long as InferFromOS is implemented. Change-Id: Iedf9d86ba07ede88d3a45d466bce6059260bdf8d --- test/aarch64/test-assembler-aarch64.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'test/aarch64') diff --git a/test/aarch64/test-assembler-aarch64.h b/test/aarch64/test-assembler-aarch64.h index 0bc81cb3..b45c7ae8 100644 --- a/test/aarch64/test-assembler-aarch64.h +++ b/test/aarch64/test-assembler-aarch64.h @@ -287,9 +287,10 @@ inline bool CanRun(const CPUFeatures& required, bool* queried_can_run) { #define TEARDOWN_CUSTOM() inline bool CanRun(const CPUFeatures& required, bool* queried_can_run) { - // InferFromOS can fail, but we can assume that basic features are present. - CPUFeatures cpu = - CPUFeatures::AArch64LegacyBaseline().With(CPUFeatures::InferFromOS()); + CPUFeatures cpu = CPUFeatures::InferFromOS(); + // If InferFromOS fails, assume that basic features are present. + if (cpu.HasNoFeatures()) cpu = CPUFeatures::AArch64LegacyBaseline(); + VIXL_ASSERT(cpu.Has(kInfrastructureCPUFeatures)); if (cpu.Has(required)) { -- cgit v1.2.3