Created
November 25, 2017 06:58
-
-
Save FindHao/343544cc95964c2e88c0898fc45f555a to your computer and use it in GitHub Desktop.
x265的arm补丁
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -urN a/source/CMakeLists.txt b/source/CMakeLists.txt | |
--- a/source/CMakeLists.txt 2015-02-10 14:15:13.000000000 -0700 | |
+++ b/source/CMakeLists.txt 2015-02-12 06:25:01.334927114 -0700 | |
@@ -46,10 +46,18 @@ | |
set(X64 1) | |
add_definitions(-DX86_64=1) | |
endif() | |
+elseif(${SYSPROC} MATCHES "armv5.*") | |
+ message(STATUS "Detected ARMV5 system processor") | |
+ set(ARMV5 1) | |
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=0 -DHAVE_NEON=0) | |
elseif(${SYSPROC} STREQUAL "armv6l") | |
- message(STATUS "Detected ARM target processor") | |
- set(ARM 1) | |
- add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1) | |
+ message(STATUS "Detected ARMV6 system processor") | |
+ set(ARMV6 1) | |
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0) | |
+elseif(${SYSPROC} STREQUAL "armv7l") | |
+ message(STATUS "Detected ARMV7 system processor") | |
+ set(ARMV7 1) | |
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0) | |
else() | |
message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown") | |
message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}") | |
@@ -133,8 +141,8 @@ | |
if(X86 AND NOT X64) | |
add_definitions(-march=i686) | |
endif() | |
- if(ARM) | |
- add_definitions(-march=armv6 -mfloat-abi=hard -mfpu=vfp) | |
+ if(ARMV7) | |
+ add_definitions(-fPIC) | |
endif() | |
check_cxx_compiler_flag(-Wno-narrowing CC_HAS_NO_NARROWING) | |
check_cxx_compiler_flag(-Wno-array-bounds CC_HAS_NO_ARRAY_BOUNDS) | |
diff -urN a/source/common/cpu.cpp b/source/common/cpu.cpp | |
--- a/source/common/cpu.cpp 2015-02-10 14:15:13.000000000 -0700 | |
+++ b/source/common/cpu.cpp 2015-02-12 06:25:01.334927114 -0700 | |
@@ -37,7 +37,7 @@ | |
#include <machine/cpu.h> | |
#endif | |
-#if X265_ARCH_ARM && !defined(HAVE_NEON) | |
+#if X265_ARCH_ARM && (!defined(HAVE_NEON) || HAVE_NEON==0) | |
#include <signal.h> | |
#include <setjmp.h> | |
static sigjmp_buf jmpbuf; | |
@@ -340,7 +340,6 @@ | |
} | |
canjump = 1; | |
- x265_cpu_neon_test(); | |
canjump = 0; | |
signal(SIGILL, oldsig); | |
#endif // if !HAVE_NEON | |
@@ -356,7 +355,7 @@ | |
// which may result in incorrect detection and the counters stuck enabled. | |
// right now Apple does not seem to support performance counters for this test | |
#ifndef __MACH__ | |
- flags |= x265_cpu_fast_neon_mrc_test() ? X265_CPU_FAST_NEON_MRC : 0; | |
+ //flags |= x265_cpu_fast_neon_mrc_test() ? X265_CPU_FAST_NEON_MRC : 0; | |
#endif | |
// TODO: write dual issue test? currently it's A8 (dual issue) vs. A9 (fast mrc) | |
#endif // if HAVE_ARMV6 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment