84fb33fec1
Replace use of RTE_MACHINE_CPUFLAG macros with regular compiler macros, which are more complete than those provided by DPDK, and as such it allows new instruction sets to be leveraged without having to do extra work to set them up in DPDK. Signed-off-by: Sean Morrissey <sean.morrissey@intel.com> Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Acked-by: David Marchand <david.marchand@redhat.com>
36 lines
1.2 KiB
Meson
36 lines
1.2 KiB
Meson
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2017 Intel Corporation
|
|
|
|
sources = files('acl_bld.c', 'acl_gen.c', 'acl_run_scalar.c',
|
|
'rte_acl.c', 'tb_mem.c')
|
|
headers = files('rte_acl.h', 'rte_acl_osdep.h')
|
|
|
|
if dpdk_conf.has('RTE_ARCH_X86')
|
|
sources += files('acl_run_sse.c')
|
|
|
|
# compile AVX2 version if either:
|
|
# a. we have AVX supported in minimum instruction set baseline
|
|
# b. it's not minimum instruction set, but supported by compiler
|
|
#
|
|
# in former case, just add avx2 C file to files list
|
|
# in latter case, compile c file to static lib, using correct compiler
|
|
# flags, and then have the .o file from static lib linked into main lib.
|
|
if cc.get_define('__AVX2__', args: machine_args) != ''
|
|
sources += files('acl_run_avx2.c')
|
|
cflags += '-DCC_AVX2_SUPPORT'
|
|
elif cc.has_argument('-mavx2')
|
|
avx2_tmplib = static_library('avx2_tmp',
|
|
'acl_run_avx2.c',
|
|
dependencies: static_rte_eal,
|
|
c_args: cflags + ['-mavx2'])
|
|
objs += avx2_tmplib.extract_objects('acl_run_avx2.c')
|
|
cflags += '-DCC_AVX2_SUPPORT'
|
|
endif
|
|
|
|
elif dpdk_conf.has('RTE_ARCH_ARM') or dpdk_conf.has('RTE_ARCH_ARM64')
|
|
cflags += '-flax-vector-conversions'
|
|
sources += files('acl_run_neon.c')
|
|
elif dpdk_conf.has('RTE_ARCH_PPC_64')
|
|
sources += files('acl_run_altivec.c')
|
|
endif
|