From 34e228a9bcf3ac37287bb5e684ace46818740f3b Mon Sep 17 00:00:00 2001 From: Tom Tsou Date: Sat, 29 Apr 2017 00:16:43 +0700 Subject: core/conv: add x86 SSE support for Viterbi decoder Fast convolutional decoding is provided through x86 intrinsic based SSE operations. SSE3, found on virtually all modern x86 processors, is the minimal requirement. SSE4.1 and AVX2 are used if available. Also, the original code was extended with runtime SIMD detection, so only supported extensions will be used by target CPU. It makes the library more partable, what is very important for binary packages distribution. Runtime SIMD detection is currently implemented through the __builtin_cpu_supports call. Change-Id: I1da6d71ed0564f1d684f3a836e998d09de5f0351 --- src/Makefile.am | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/Makefile.am') diff --git a/src/Makefile.am b/src/Makefile.am index 57240550..a0aa5a0c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,6 +23,12 @@ libosmocore_la_SOURCES = timer.c timer_gettimeofday.c select.c signal.c msgb.c b macaddr.c stat_item.c stats.c stats_statsd.c prim.c \ viterbi.c viterbi_gen.c sercomm.c +if HAVE_SSE3 +libosmocore_la_SOURCES += viterbi_sse.c +# Per-object flags hack +viterbi_sse.lo : CFLAGS += $(SIMD_FLAGS) +endif + BUILT_SOURCES = crc8gen.c crc16gen.c crc32gen.c crc64gen.c if ENABLE_PLUGIN -- cgit v1.2.3