File arm.patch of Package x265 (Revision fe82c33a2ac53f5759bcf5b9431988ce)
Currently displaying revision fe82c33a2ac53f5759bcf5b9431988ce , Show latest
89
1
Index: x265_2.0/source/CMakeLists.txt
2
===================================================================
3
--- x265_2.0.orig/source/CMakeLists.txt
4
+++ x265_2.0/source/CMakeLists.txt
5
6
message(STATUS "Detected POWER target processor")
7
set(POWER 1)
8
add_definitions(-DX265_ARCH_POWER=1)
9
-elseif(ARMMATCH GREATER "-1")
10
- if(CROSS_COMPILE_ARM)
11
- message(STATUS "Cross compiling for ARM arch")
12
- else()
13
- set(CROSS_COMPILE_ARM 0)
14
- endif()
15
- message(STATUS "Detected ARM target processor")
16
- set(ARM 1)
17
- add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1)
18
+elseif(${SYSPROC} MATCHES "armv5.*")
19
+ message(STATUS "Detected ARMV5 system processor")
20
+ set(ARMV5 1)
21
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=0 -DHAVE_NEON=0)
22
+elseif(${SYSPROC} STREQUAL "armv6l")
23
+ message(STATUS "Detected ARMV6 system processor")
24
+ set(ARMV6 1)
25
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0)
26
+elseif(${SYSPROC} STREQUAL "armv7l")
27
+ message(STATUS "Detected ARMV7 system processor")
28
+ set(ARMV7 1)
29
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0)
30
+elseif(${SYSPROC} STREQUAL "aarch64")
31
+ message(STATUS "Detected AArch64 system processor")
32
+ set(ARMV7 1)
33
+ add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0)
34
else()
35
message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown")
36
message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}")
37
38
add_definitions(-march=i686)
39
endif()
40
endif()
41
- if(ARM AND CROSS_COMPILE_ARM)
42
- set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC)
43
- elseif(ARM)
44
- find_package(Neon)
45
- if(CPU_HAS_NEON)
46
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
47
- add_definitions(-DHAVE_NEON)
48
- else()
49
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
50
- endif()
51
- endif()
52
- add_definitions(${ARM_ARGS})
53
+ if(ARMV7)
54
+ add_definitions(-fPIC)
55
+ endif()
56
if(FPROFILE_GENERATE)
57
if(INTEL_CXX)
58
add_definitions(-prof-gen -prof-dir="${CMAKE_CURRENT_BINARY_DIR}")
59
Index: x265_2.0/source/common/cpu.cpp
60
===================================================================
61
--- x265_2.0.orig/source/common/cpu.cpp
62
+++ x265_2.0/source/common/cpu.cpp
63
64
#include <machine/cpu.h>
65
#endif
66
67
-#if X265_ARCH_ARM && !defined(HAVE_NEON)
68
+#if X265_ARCH_ARM && (!defined(HAVE_NEON) || HAVE_NEON==0)
69
#include <signal.h>
70
#include <setjmp.h>
71
static sigjmp_buf jmpbuf;
72
73
}
74
75
canjump = 1;
76
- PFX(cpu_neon_test)();
77
canjump = 0;
78
signal(SIGILL, oldsig);
79
#endif // if !HAVE_NEON
80
81
// which may result in incorrect detection and the counters stuck enabled.
82
// right now Apple does not seem to support performance counters for this test
83
#ifndef __MACH__
84
- flags |= PFX(cpu_fast_neon_mrc_test)() ? X265_CPU_FAST_NEON_MRC : 0;
85
+ //flags |= PFX(cpu_fast_neon_mrc_test)() ? X265_CPU_FAST_NEON_MRC : 0;
86
#endif
87
// TODO: write dual issue test? currently it's A8 (dual issue) vs. A9 (fast mrc)
88
#endif // if HAVE_ARMV6
89