aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/x86
AgeCommit message (Collapse)AuthorFilesLines
2017-06-08ssedetect: call __builtin_cpu_supports() only if supportedVadim Yanitskiy2-1/+3
Some compilers don't support the __builtin_cpu_supports built-in, so let's make them able to compile the project anyway. Change-Id: I0c90402d8e4c9f196c54b066ff30891c8de3ad2b
2017-05-19buildenv: Split up SSE3 and SSE4.1 codePhilipp Maier9-658/+881
Currently we find SSE3 and SSE4.1 code mixed togehter along with generic code in one file. This introduces the risk that the compiler exidantly mixes SSE4.1 instructions into an SSE3, or even worse into a generic code path. This commit splits the SSE3 and SSE4.1 code into separate files and compiles them with the matching target options. Change-Id: I846e190e92f1258cd412d1b2d79b539e204e04b3
2017-05-19cosmetic: remove code duplicationPhilipp Maier2-20/+6
The ARM and the X86 implementation of the conversion functions share the same, non cpu specific implementation in separate files. This commit removes the code duplication by putting the generic implementation into a convert_base.c, similar to to convolve_base.c Change-Id: Ic8d8534a343e27cde79ddc85be4998ebd0cb6e5c
2017-05-19ssedetect: Add runtime CPU detectionPhilipp Maier2-49/+124
The current implementation can select the SSE support level during compiletime only. This commit adds functionality to automatically detect and switch the SSE support level and automatically switch the Implementation if the CPU does not support the required SSE level. Change-Id: Iba74f8a6e4e921ff31e4bd9f0c7c881fe547423a
2017-05-02cosmetic: Make parameter lists uniformPhilipp Maier2-110/+143
The non-sse implementation and the sse implementation of the convert and convolve functions have different parameter lists. This makes it difficult to use function pointers in order to select the right function depending on the SSE-Level and CPU. This commit uniformizes the parameter lists in preparation for planned runtime cpu detection support Change-Id: Ice063b89791537c4b591751f12f5ef5c413a2d27
2017-05-02buildenv: Turn off native architecture buildsPhilipp Maier1-1/+1
The compiler option -march=native instructs the compiler to auto-optimize the code for the current build architecture. This is fine for building and using locally, but contraproductive when generating binary packages. This commit replaces -march=native with $(SIMD_FLAGS), which contains a collection of supported SIMD options, so we won't loose the SSE support. Change-Id: I3df4b8db9692016115edbe2247beeec090715687
2016-06-22makefile: Fix build from an external path.Alexander Chemeris1-1/+1
When you build from an external path, compiler can't find convert.h include, because it was specified relative to the current directory. Change this to specify the include dit relative to the Makefile location. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-08-21sigproc: Make convolution and convert input buffers immutableTom Tsou2-33/+46
For good practice, use const specifier when applicable. Signed-off-by: Tom Tsou <tom@tsou.cc>
2014-05-08Transceiver52M: Fix SSE convolution shuffle registerThomas Tsou1-1/+1
An errant shuffle register value used in complex-complex convolution causes distorted correlation peak-to-average values for certain TSC values. The error effect varies for different TSC sequences with the most noticeable effect of degraded detection on TSC 1 and no effect on TSC 7. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Add ARM NEON supportThomas Tsou1-0/+2
Similar to the existing Intel SSE cases, add support for NEON vector floating point SIMD processing. In this case, use ARM assembly directly as the NEON intrinsics do not generate preferential code output. Currently support NEON vectorized convolution and floating point integer conversions. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-07Transceiver52M: Fix SSE preprocessor definitionThomas Tsou1-1/+1
Using non-SSE4.1 enabled architecture would cause undefined reference to 'convert_si16_ps' call. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-04Transceiver52M: Separate architecture specific filesThomas Tsou3-0/+809
Move x86 specific files into their own directory as this area is about to get crowded with the addition of ARM support. Signed-off-by: Thomas Tsou <tom@tsou.cc>