From ddace4afd21c7c41ab76b849346425d7b412a38e Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Mon, 25 Apr 2016 18:03:26 -0600 Subject: [PATCH] Use NEON for ARMv7 only Signed-off-by: Kevin Mihelich --- lib/CMakeLists.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 1accb59..19746d5 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -250,6 +250,14 @@ if(NOT CPU_IS_x86) endif(NOT CPU_IS_x86) ######################################################################## +# if the CPU is not ARMv7, eliminate NEON +######################################################################## + +if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7.*") + OVERRULE_ARCH(neon "Architecture is not ARMv7") +endif(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7.*") + +######################################################################## # implement overruling in the ORC case, # since ORC always passes flag detection ######################################################################## @@ -414,7 +422,7 @@ include_directories( # Handle ASM support # on by default, but let users turn it off ######################################################################## -if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") +if((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7.*")) set(ASM_ARCHS_AVAILABLE "neon") set(FULL_C_FLAGS "${CMAKE_C_FLAGS}" "${CMAKE_CXX_COMPILER_ARG1}") @@ -443,7 +451,7 @@ if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") message(STATUS "asm flags: ${CMAKE_ASM_FLAGS}") endforeach(ARCH) -else(${CMAKE_VERSION} VERSION_GREATER "2.8.9") +else((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7.*")) message(STATUS "Not enabling ASM support. CMake >= 2.8.10 required.") foreach(machine_name ${available_machines}) string(REGEX MATCH "neon" NEON_MACHINE ${machine_name}) @@ -451,7 +459,7 @@ else(${CMAKE_VERSION} VERSION_GREATER "2.8.9") message(FATAL_ERROR "CMake >= 2.8.10 is required for ARM NEON support") endif() endforeach() -endif(${CMAKE_VERSION} VERSION_GREATER "2.8.9") +endif((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7.*")) ######################################################################## # Handle orc support -- 2.8.0