[x265] [PATCH] testbench: setup testbench for ARM assembly
Dnyaneshwar Gorade
dnyaneshwar at multicorewareinc.com
Sat Jan 9 07:48:22 CET 2016
Please ignore this patch. need little modifications.
On Sat, Jan 9, 2016 at 12:12 PM, <dnyaneshwar at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Dnyaneshwar G <dnyaneshwar at multicorewareinc.com>
> # Date 1452321658 -19800
> # Sat Jan 09 12:10:58 2016 +0530
> # Node ID cd9318b1671bb24212321fcd005381e50642af4c
> # 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 cd9318b1671b source/CMakeLists.txt
> --- a/source/CMakeLists.txt Sat Jan 09 11:32:33 2016 +0530
> +++ b/source/CMakeLists.txt Sat Jan 09 12:10:58 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 cd9318b1671b 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 12:10:58 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 cd9318b1671b 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 12:10:58 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 cd9318b1671b source/common/arm/blockcopy8.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/blockcopy8.h Sat Jan 09 12:10:58 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 cd9318b1671b source/common/arm/dct8.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/dct8.h Sat Jan 09 12:10:58 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 cd9318b1671b source/common/arm/intrapred.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/intrapred.h Sat Jan 09 12:10:58 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 cd9318b1671b source/common/arm/ipfilter8.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/ipfilter8.h Sat Jan 09 12:10:58 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 cd9318b1671b source/common/arm/loopfilter.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/loopfilter.h Sat Jan 09 12:10:58 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 cd9318b1671b source/common/arm/mc.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/mc.h Sat Jan 09 12:10:58 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 cd9318b1671b 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 12:10:58 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 cd9318b1671b source/common/arm/pixel.h
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/source/common/arm/pixel.h Sat Jan 09 12:10:58 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 cd9318b1671b 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 12:10:58 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 cd9318b1671b 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 12:10:58 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 cd9318b1671b 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 12:10:58 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 cd9318b1671b 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 12:10:58 2016 +0530
> @@ -75,10 +75,14 @@
> {
> uint32_t a = 0;
>
> +#if X265_ARCH_X86
> asm volatile("rdtsc" : "=a" (a) ::"edx");
> +#elseif 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
> +#elseif X265_ARCH_ARM == 0
> #define PFX(stack_pagealign)(func, align) func()
> #endif
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20160109/9472bba5/attachment-0001.html>
More information about the x265-devel
mailing list