From 7247ef402779b921e2cdb1c100fa79fbd8b077d7 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 6 Jul 2023 10:22:07 -0400 Subject: [PATCH] MT#56471 convert s16_mix_in to ifunc Use an ifunc so that SIMD implementations can be used in a later commit. Change-Id: I42d6c58b7561d72f0431c7dad3f4bc6acf70e627 --- lib/mix_buffer.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/mix_buffer.c b/lib/mix_buffer.c index 9406ee5ad..776acb863 100644 --- a/lib/mix_buffer.c +++ b/lib/mix_buffer.c @@ -39,9 +39,15 @@ static void s16_mix_in_c(void *restrict dst, const void *restrict src, unsigned } +static mix_in_fn_t *resolve_s16_mix_in(void) { + return s16_mix_in_c; +} +static mix_in_fn_t s16_mix_in __attribute__ ((ifunc ("resolve_s16_mix_in"))); + + const struct mix_buffer_impl impl_s16_c = { .sample_size = sizeof(int16_t), - .mix_in = s16_mix_in_c, + .mix_in = s16_mix_in, }; // TODO: SIMD-accelerated implementations