mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
Use specific build-target for ARM/NEON routines
This commit is contained in:
parent
98023fcfe8
commit
fb5abde677
4 changed files with 8 additions and 3 deletions
|
|
@ -70,8 +70,8 @@ LIBARDOUR_API void veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, cons
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined ARM_NEON_SUPPORT
|
||||||
/* Optimized NEON functions */
|
/* Optimized NEON functions */
|
||||||
#if defined(__arm__) && !defined(__APPLE__)
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
LIBARDOUR_API float arm_neon_compute_peak (const float * buf, uint32_t nsamples, float current);
|
LIBARDOUR_API float arm_neon_compute_peak (const float * buf, uint32_t nsamples, float current);
|
||||||
LIBARDOUR_API void arm_neon_apply_gain_to_buffer (float * buf, uint32_t nframes, float gain);
|
LIBARDOUR_API void arm_neon_apply_gain_to_buffer (float * buf, uint32_t nframes, float gain);
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@ setup_hardware_optimization (bool try_optimization)
|
||||||
generic_mix_functions = false;
|
generic_mix_functions = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(__arm__) && !defined(__APPLE__)
|
#elif defined ARM_NEON_SUPPORT
|
||||||
/* Use NEON routines */
|
/* Use NEON routines */
|
||||||
do {
|
do {
|
||||||
compute_peak = arm_neon_compute_peak;
|
compute_peak = arm_neon_compute_peak;
|
||||||
|
|
|
||||||
|
|
@ -467,7 +467,6 @@ def build(bld):
|
||||||
avx_sources = []
|
avx_sources = []
|
||||||
|
|
||||||
if Options.options.fpu_optimization:
|
if Options.options.fpu_optimization:
|
||||||
obj.source += ['arm_neon_functions.cc']
|
|
||||||
if (bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686'):
|
if (bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686'):
|
||||||
obj.source += [ 'sse_functions_xmm.cc', 'sse_functions.s', ]
|
obj.source += [ 'sse_functions_xmm.cc', 'sse_functions.s', ]
|
||||||
avx_sources = [ 'sse_functions_avx_linux.cc' ]
|
avx_sources = [ 'sse_functions_avx_linux.cc' ]
|
||||||
|
|
@ -482,6 +481,9 @@ def build(bld):
|
||||||
obj.source += [ 'sse_functions_xmm.cc' ]
|
obj.source += [ 'sse_functions_xmm.cc' ]
|
||||||
obj.source += [ 'sse_functions_64bit_win.s', 'sse_avx_functions_64bit_win.s' ]
|
obj.source += [ 'sse_functions_64bit_win.s', 'sse_avx_functions_64bit_win.s' ]
|
||||||
avx_sources = [ 'sse_functions_avx.cc' ]
|
avx_sources = [ 'sse_functions_avx.cc' ]
|
||||||
|
elif bld.env['build_target'] == 'armhf' or bld.env['build_target'] == 'aarch64':
|
||||||
|
obj.source += ['arm_neon_functions.cc']
|
||||||
|
obj.defines += [ 'ARM_NEON_SUPPORT' ]
|
||||||
|
|
||||||
if avx_sources:
|
if avx_sources:
|
||||||
# as long as we want to use AVX intrinsics in this file,
|
# as long as we want to use AVX intrinsics in this file,
|
||||||
|
|
|
||||||
3
wscript
3
wscript
|
|
@ -474,6 +474,9 @@ int main() { return 0; }''',
|
||||||
#
|
#
|
||||||
compiler_flags.append ('-U__STRICT_ANSI__')
|
compiler_flags.append ('-U__STRICT_ANSI__')
|
||||||
|
|
||||||
|
if conf.env['build_target'] == 'armhf' or conf.env['build_target'] == 'aarch64':
|
||||||
|
conf.define('ARM_NEON_SUPPORT', 1)
|
||||||
|
|
||||||
if opt.use_libcpp or conf.env['build_host'] in [ 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' ]:
|
if opt.use_libcpp or conf.env['build_host'] in [ 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' ]:
|
||||||
cxx_flags.append('--stdlib=libc++')
|
cxx_flags.append('--stdlib=libc++')
|
||||||
linker_flags.append('--stdlib=libc++')
|
linker_flags.append('--stdlib=libc++')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue