[x265] [PATCH] testbench: setup testbench for ARM assembly
dnyaneshwar at multicorewareinc.com
dnyaneshwar at multicorewareinc.com
Sat Jan 9 11:13:08 CET 2016
# HG changeset patch
# User Dnyaneshwar G <dnyaneshwar at multicorewareinc.com>
# Date 1452327300 -19800
# Sat Jan 09 13:45:00 2016 +0530
# Node ID a5309338d1352978e79da6210a0d64eb88d60c8f
# Parent d94f6c2b45f87f5b4b10b4fa70f8a9bd03d3d1c2
testbench: setup testbench for ARM assembly
X86 intrinsics has been commented from the ARM testbench.
This ARM testbench is for Linux and ARMv6 arch and above
diff -r d94f6c2b45f8 -r a5309338d135 source/CMakeLists.txt
--- a/source/CMakeLists.txt Sat Jan 09 11:32:33 2016 +0530
+++ b/source/CMakeLists.txt Sat Jan 09 13:45:00 2016 +0530
@@ -275,7 +275,9 @@
endif(GCC)
find_package(Yasm)
-if(YASM_FOUND AND X86)
+if(ARM OR CROSS_COMPILE_ARM)
+ option(ENABLE_ASSEMBLY "Enable use of assembly coded primitives" OFF)
+elseif(YASM_FOUND AND X86)
if (YASM_VERSION_STRING VERSION_LESS "1.2.0")
message(STATUS "Yasm version ${YASM_VERSION_STRING} is too old. 1.2.0 or later required")
option(ENABLE_ASSEMBLY "Enable use of assembly coded primitives" OFF)
@@ -423,15 +425,22 @@
else()
set(SUFFIX o)
endif()
- foreach(ASM ${MSVC_ASMS})
- set(YASM_SRC ${CMAKE_CURRENT_SOURCE_DIR}/common/x86/${ASM})
- list(APPEND YASM_SRCS ${YASM_SRC})
- list(APPEND YASM_OBJS ${ASM}.${SUFFIX})
- add_custom_command(
- OUTPUT ${ASM}.${SUFFIX}
- COMMAND ${YASM_EXECUTABLE} ARGS ${YASM_FLAGS} ${YASM_SRC} -o ${ASM}.${SUFFIX}
- DEPENDS ${YASM_SRC})
- endforeach()
+
+ if(ARM OR CROSS_COMPILE_ARM)
+ # compile ARM arch asm files here
+
+ elseif(X86)
+ # compile X86 arch asm files here
+ foreach(ASM ${MSVC_ASMS})
+ set(YASM_SRC ${CMAKE_CURRENT_SOURCE_DIR}/common/x86/${ASM})
+ list(APPEND YASM_SRCS ${YASM_SRC})
+ list(APPEND YASM_OBJS ${ASM}.${SUFFIX})
+ add_custom_command(
+ OUTPUT ${ASM}.${SUFFIX}
+ COMMAND ${YASM_EXECUTABLE} ARGS ${YASM_FLAGS} ${YASM_SRC} -o ${ASM}.${SUFFIX}
+ DEPENDS ${YASM_SRC})
+ endforeach()
+ endif()
endif()
source_group(ASM FILES ${YASM_SRCS})
diff -r d94f6c2b45f8 -r a5309338d135 source/common/CMakeLists.txt
--- a/source/common/CMakeLists.txt Sat Jan 09 11:32:33 2016 +0530
+++ b/source/common/CMakeLists.txt Sat Jan 09 13:45:00 2016 +0530
@@ -16,12 +16,14 @@
if(ENABLE_ASSEMBLY)
set_source_files_properties(threading.cpp primitives.cpp PROPERTIES COMPILE_FLAGS -DENABLE_ASSEMBLY=1)
list(APPEND VFLAGS "-DENABLE_ASSEMBLY=1")
+endif(ENABLE_ASSEMBLY)
+if(ENABLE_ASSEMBLY AND X86)
set(SSE3 vec/dct-sse3.cpp)
set(SSSE3 vec/dct-ssse3.cpp)
set(SSE41 vec/dct-sse41.cpp)
- if(MSVC AND X86)
+ if(MSVC)
set(PRIMITIVES ${SSE3} ${SSSE3} ${SSE41})
set(WARNDISABLE "/wd4100") # unreferenced formal parameter
if(INTEL_CXX)
@@ -38,7 +40,7 @@
set_source_files_properties(${SSE3} ${SSSE3} ${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} /arch:SSE2")
endif()
endif()
- if(GCC AND X86)
+ if(GCC)
if(CLANG)
# llvm intrinsic headers cause shadow warnings
set(WARNDISABLE "-Wno-shadow -Wno-unused-parameter")
@@ -81,7 +83,20 @@
set(ASM_PRIMITIVES ${ASM_PRIMITIVES} x86/${SRC})
endforeach()
source_group(Assembly FILES ${ASM_PRIMITIVES})
-endif(ENABLE_ASSEMBLY)
+endif(ENABLE_ASSEMBLY AND X86)
+
+if(ENABLE_ASSEMBLY AND (ARM OR CROSS_COMPILE_ARM))
+ set(C_SRCS asm-primitives.cpp pixel.h mc.h ipfilter8.h blockcopy8.h dct8.h loopfilter.h)
+
+ # add ARM assembly/intrinsic files here
+ set(A_SRCS)
+ set(VEC_PRIMITIVES)
+
+ foreach(SRC ${C_SRCS})
+ set(ASM_PRIMITIVES ${ASM_PRIMITIVES} arm/${SRC})
+ endforeach()
+ source_group(Assembly FILES ${ASM_PRIMITIVES})
+endif(ENABLE_ASSEMBLY AND (ARM OR CROSS_COMPILE_ARM))
# set_target_properties can't do list expansion
string(REPLACE ";" " " VERSION_FLAGS "${VFLAGS}")
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/asm-primitives.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/asm-primitives.cpp Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Steve Borho <steve at borho.org>
+ * Praveen Kumar Tiwari <praveen at multicorewareinc.com>
+ * Min Chen <chenm003 at 163.com> <min.chen at multicorewareinc.com>
+ * Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#include "common.h"
+#include "primitives.h"
+#include "x265.h"
+#include "cpu.h"
+
+
+namespace X265_NS {
+// private x265 namespace
+
+void setupAssemblyPrimitives(EncoderPrimitives &p, int cpuMask)
+{
+
+}
+} // namespace X265_NS
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/blockcopy8.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/blockcopy8.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Steve Borho <steve at borho.org>
+ * Min Chen <chenm003 at 163.com>
+ * Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_BLOCKCOPY8_H
+#define X265_BLOCKCOPY8_H
+
+#endif // ifndef X265_I386_PIXEL_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/dct8.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/dct8.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Min Chen <chenm003 at 163.com>
+ * Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_DCT8_H
+#define X265_DCT8_H
+
+#endif // ifndef X265_DCT8_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/intrapred.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/intrapred.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * intrapred.h: Intra Prediction metrics
+ *****************************************************************************
+ * Copyright (C) 2003-2013 x264 project
+ *
+ * Authors: Min Chen <chenm003 at 163.com> <min.chen at multicorewareinc.com>
+ * Praveen Kumar Tiwari <praveen at multicorewareinc.com>
+ * Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_INTRAPRED_H
+#define X265_INTRAPRED_H
+
+#endif // ifndef X265_INTRAPRED_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/ipfilter8.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/ipfilter8.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Steve Borho <steve at borho.org>
+ * Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_IPFILTER8_H
+#define X265_IPFILTER8_H
+
+#endif // ifndef X265_IPFILTER8_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/loopfilter.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/loopfilter.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
+ * Praveen Kumar Tiwari <praveen at multicorewareinc.com>
+;* Min Chen <chenm003 at 163.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_LOOPFILTER_H
+#define X265_LOOPFILTER_H
+
+#endif // ifndef X265_LOOPFILTER_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/mc.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/mc.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Steve Borho <steve at borho.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_MC_H
+#define X265_MC_H
+
+#endif // ifndef X265_MC_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/pixel-util.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/pixel-util.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (C) 2016 x265 project
+ *
+ * Authors: Steve Borho <steve at borho.org>
+;* Min Chen <chenm003 at 163.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_PIXEL_UTIL_H
+#define X265_PIXEL_UTIL_H
+
+#endif // ifndef X265_PIXEL_UTIL_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/arm/pixel.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/common/arm/pixel.h Sat Jan 09 13:45:00 2016 +0530
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * pixel.h: x86 pixel metrics
+ *****************************************************************************
+ * Copyright (C) 2003-2013 x264 project
+ * Copyright (C) 2013-2016 x265 project
+ *
+ * Authors: Laurent Aimar <fenrir at via.ecp.fr>
+ * Loren Merritt <lorenm at u.washington.edu>
+ * Fiona Glaser <fiona at x264.com>
+;* Min Chen <chenm003 at 163.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at license @ x265.com.
+ *****************************************************************************/
+
+#ifndef X265_I386_PIXEL_H
+#define X265_I386_PIXEL_H
+
+#endif // ifndef X265_I386_PIXEL_H
diff -r d94f6c2b45f8 -r a5309338d135 source/common/primitives.cpp
--- a/source/common/primitives.cpp Sat Jan 09 11:32:33 2016 +0530
+++ b/source/common/primitives.cpp Sat Jan 09 13:45:00 2016 +0530
@@ -238,7 +238,9 @@
primitives.cu[i].intra_pred_allangs = NULL;
#if ENABLE_ASSEMBLY
+#if X265_ARCH_X86
setupInstrinsicPrimitives(primitives, param->cpuid);
+#endif
setupAssemblyPrimitives(primitives, param->cpuid);
#endif
@@ -249,7 +251,7 @@
}
}
-#if ENABLE_ASSEMBLY
+#if ENABLE_ASSEMBLY && X265_ARCH_X86
/* these functions are implemented in assembly. When assembly is not being
* compiled, they are unnecessary and can be NOPs */
#else
diff -r d94f6c2b45f8 -r a5309338d135 source/test/CMakeLists.txt
--- a/source/test/CMakeLists.txt Sat Jan 09 11:32:33 2016 +0530
+++ b/source/test/CMakeLists.txt Sat Jan 09 13:45:00 2016 +0530
@@ -1,4 +1,12 @@
# vim: syntax=cmake
+
+check_symbol_exists(__rdtsc "intrin.h" HAVE_RDTSC)
+if(HAVE_RDTSC)
+ add_definitions(-DHAVE_RDTSC=1)
+endif()
+
+# add X86 assembly files
+if(X86)
enable_language(ASM_YASM)
if(MSVC_IDE)
@@ -11,11 +19,17 @@
else()
set(YASM_SRC checkasm-a.asm)
endif()
+endif(X86)
-check_symbol_exists(__rdtsc "intrin.h" HAVE_RDTSC)
-if(HAVE_RDTSC)
- add_definitions(-DHAVE_RDTSC=1)
-endif()
+# add ARM assembly files
+if(ARM OR CROSS_COMPILE_ARM)
+ set(YASM_SRC)
+endif(ARM OR CROSS_COMPILE_ARM)
+
+# add PowerPC assembly files
+if(POWER)
+ set(YASM_SRC)
+endif(POWER)
add_executable(TestBench ${YASM_SRC}
testbench.cpp testharness.h
@@ -23,6 +37,7 @@
mbdstharness.cpp mbdstharness.h
ipfilterharness.cpp ipfilterharness.h
intrapredharness.cpp intrapredharness.h)
+
target_link_libraries(TestBench x265-static ${PLATFORM_LIBS})
if(LINKER_OPTIONS)
if(EXTRA_LIB)
diff -r d94f6c2b45f8 -r a5309338d135 source/test/testbench.cpp
--- a/source/test/testbench.cpp Sat Jan 09 11:32:33 2016 +0530
+++ b/source/test/testbench.cpp Sat Jan 09 13:45:00 2016 +0530
@@ -169,6 +169,9 @@
{ "XOP", X265_CPU_XOP },
{ "AVX2", X265_CPU_AVX2 },
{ "BMI2", X265_CPU_AVX2 | X265_CPU_BMI1 | X265_CPU_BMI2 },
+ { "ARMv6", X265_CPU_ARMV6 },
+ { "NEON", X265_CPU_NEON },
+ { "FastNeonMRC", X265_CPU_FAST_NEON_MRC },
{ "", 0 },
};
@@ -182,6 +185,7 @@
else
continue;
+#if X265_ARCH_X86
EncoderPrimitives vecprim;
memset(&vecprim, 0, sizeof(vecprim));
setupInstrinsicPrimitives(vecprim, test_arch[i].flag);
@@ -197,6 +201,7 @@
return -1;
}
}
+#endif
EncoderPrimitives asmprim;
memset(&asmprim, 0, sizeof(asmprim));
@@ -220,7 +225,9 @@
EncoderPrimitives optprim;
memset(&optprim, 0, sizeof(optprim));
+#if X265_ARCH_X86
setupInstrinsicPrimitives(optprim, cpuid);
+#endif
setupAssemblyPrimitives(optprim, cpuid);
/* Note that we do not setup aliases for performance tests, that would be
diff -r d94f6c2b45f8 -r a5309338d135 source/test/testharness.h
--- a/source/test/testharness.h Sat Jan 09 11:32:33 2016 +0530
+++ b/source/test/testharness.h Sat Jan 09 13:45:00 2016 +0530
@@ -75,10 +75,14 @@
{
uint32_t a = 0;
+#if X265_ARCH_X86
asm volatile("rdtsc" : "=a" (a) ::"edx");
+#elif X265_ARCH_ARM
+ // TOD-DO: verify following inline asm to get cpu Timestamp Counter for ARM arch
+ // asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(a));
+#endif
return a;
}
-
#endif // ifdef _MSC_VER
#define BENCH_RUNS 1000
@@ -125,7 +129,7 @@
* needs an explicit asm check because it only sometimes crashes in normal use. */
intptr_t PFX(checkasm_call)(intptr_t (*func)(), int *ok, ...);
float PFX(checkasm_call_float)(float (*func)(), int *ok, ...);
-#else
+#elif X265_ARCH_ARM == 0
#define PFX(stack_pagealign)(func, align) func()
#endif
More information about the x265-devel
mailing list