summaryrefslogtreecommitdiff
path: root/src/pulsecore/svolume_mmx.c
AgeCommit message (Collapse)AuthorFilesLines
2015-01-14update FSF addresses to FSF web pageOndrej Holecek1-3/+1
FSF addresses used in PA sources are no longer valid and rpmlint generates numerous warnings during packaging because of this. This patch changes all FSF addresses to FSF web page according to the GPL how-to: https://www.gnu.org/licenses/gpl-howto.en.html Done automatically by sed-ing through sources.
2014-12-01Fix #defines for Debian GNU/kFreeBSDFelipe Sateler1-4/+4
Because debian does not run with the freebsd libc, but rather uses the GNU one, it chose to not define __FreeBSD__, but rather __FreeBSD_kernel__. Use the alternative when the functionality tested is for kernel features, and keep the __FreeBSD__ one when using freebsd libc headers. If this patch is applied, debian could drop all the current patches when importing 6.0 :)
2014-02-22sconv, svolume: Fix compilation on 32-bit FreeBSDKoop Mast1-4/+4
Don't try to compile this code on 32-bit FreeBSD, it will error out complain about registers only being available in 64-bit mode.
2012-08-04tests: add cpu testDeng Zhengrong1-90/+0
It tests only x86 architecture right now.
2012-07-17core: Set volumes const in pa_do_volume_func_tPeter Meerwald1-2/+2
volumes do not change, the samples get scaled Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
2012-02-10core: svolume tests should generate realistic random volume dataPeter Meerwald1-1/+1
assuming RAND_MAX is around 1<<31, rand() >> 1 generates large numbers as random volume data; these likely causes saturated sample values after applying the volume function -- not a good test
2011-12-14svolume_{mmx, sse}, sconv_sse: Fix compilation errors with X32 toolchainPaul Menzel1-8/+8
From d8b81d5393df36085009bf9f69d41fa85e2ae58a Mon Sep 17 00:00:00 2001 From: Nitin A Kamble <nitin.a.kamble@intel.com> Date: Sat, 10 Dec 2011 09:09:06 +0100 Make assembly syntax compatible to the X32 toolchain and fix the following kind of compilations errors with X32 gcc. | pulsecore/svolume_mmx.c: Assembler messages: | pulsecore/svolume_mmx.c:107: Error: `(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:135: Error: `(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:161: Error: `(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:162: Error: `8(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:180: Error: `(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:210: Error: `(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:244: Error: `(%esi,%rdi,4)' is not a valid base/index expression | pulsecore/svolume_mmx.c:245: Error: `8(%esi,%rdi,4)' is not a valid base/index expression | make[3]: *** [libpulsecore_1.1_la-svolume_mmx.lo] Error 1 Originally these assembly lines were written for x86_64 ABI, now they are also compatible with X32 ABI [3][4]. The patch was submitted to the OpenEmbedded-Core list [1][2]. [1] http://lists.linuxtogo.org/pipermail/openembedded-core/2011-December/014189.html [2] http://git.yoctoproject.org/cgit.cgi/poky-contrib/commit/?h=nitin/x32&id=2d8eec54f755c51f2eff600390f5a4b3cc2a7662 [3] https://wiki.yoctoproject.org/wiki/X32_abi [4] http://en.wikipedia.org/wiki/X32_ABI
2011-10-01Make pulse build with clang againMaarten Bosmans1-2/+2
The casts are not supported there.
2011-08-25More spelling fixesMaarten Bosmans1-1/+1
2011-08-15svolume: Make log messages more precise.Tanu Kaskinen1-1/+1
I was looking at a log, and noticed the following lines: I [pulseaudio] svolume_mmx.c: Initialising MMX optimized functions. I [pulseaudio] remap_mmx.c: Initialising MMX optimized remappers. I [pulseaudio] svolume_sse.c: Initialising SSE2 optimized functions. I [pulseaudio] remap_sse.c: Initialising SSE2 optimized remappers. I [pulseaudio] sconv_sse.c: Initialising SSE2 optimized conversions. It seemed odd that some messages were somewhat precise in what functionality was initialized, while the svolume messages told me that they had initialized just "functions". So I made the svolume log messages more precise to match the sconv and remap messages.
2011-06-22Remove unnecessary #includesMaarten Bosmans1-3/+0
2011-06-22SSE/MMX: Fix problem with highpitched noise on i386David Henningsson1-2/+10
The "rm" basm constraint doesn't work with my version of gcc (4.5.2), not even in a simple example. Since we usually only have 5 registers available on i386, force it to be memory on that architecture. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-04-18volume: Get more data from volume testsArun Raghavan1-12/+34
This makes the volume tests run in two loops and print the minimum, maximum and standard deviation of readings from the inner loop. This makes it easier to reason out performance drops (i.e. algorithmic problems vs. other system issues such as processor contention).
2011-03-18Make pulse compile with clangMaarten Bosmans1-2/+2
This fixes the checking of supported compiler flags and the following error message for svolume_mmx: pulsecore/svolume_mmx.c:157:76: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp) ~~~~~~~~~~~~^~~~~~~
2011-03-11Fixup #include directives according to Coding StyleMaarten Bosmans1-1/+1
Use #include "header.h" if functionality of header.h is implemented and #include <header.h> if functionality of header.h is used.
2011-03-11Fix up according to Coding StyleMaarten Bosmans1-23/+19
Only whitespace changes in here
2011-03-05volume: Fix sample array size for testsArun Raghavan1-1/+1
Somewhere in the history of the MMX tests, the number of channels was changed from 1 to 2, but the number of samples was not increased to make it even (multiple of the frame size).
2011-03-05volume: Make tests use only valid volumesArun Raghavan1-1/+1
2010-10-13SSE/MMX/ARM: Fix high frequency noise with unusual number of channelsDavid Henningsson1-6/+8
In the assembly optimized versions of SSE, a noise could occur when the number of channels were 3,5,6 or 7. For MMX and ARM, this could occur when the number of channels were 3. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2010-02-09cpu: check for CMOV flag before using this intsruction in assemblyLennart Poettering1-1/+1
http://pulseaudio.org/ticket/776
2009-10-30svolume: fix MMX errorWim Taymans1-1/+6
We need to sign extend the lower part of the multiplication before adding it to the higher part. Makes -1 * 0xffff work again.
2009-10-29simd: update test casesLennart Poettering1-0/+4
2009-10-07Fix build when using -fweb, accept both register and memory constraints.Diego Elio 'Flameeyes' Pettenò1-2/+2
This was reported as Gentoo bug #287391 by Torsten Kaiser, and the fix was suggested by Mike Frysinger.
2009-09-23svolume: tweak constraints for 32 bitsWim Taymans1-2/+2
Tweak the constraints a little so that register starved 32bit systems can select a stack variable for the channel paramter instead of reusing one of the registers we're using in the code.
2009-09-17svolume_mmx: disable test accidentaly left onLennart Poettering1-1/+1
2009-09-16svolume_mmx: optimize some moreWim Taymans1-13/+7
We can reorder the algortihm a bit like we do for sse so that we don't need the contants and masking instructions. Saves 2 instructions for the mmx code.
2009-09-09simd: be more precise which SIMD optimizations we activateLennart Poettering1-3/+6
2009-08-20svolume: cleanupsWim Taymans1-9/+9
Use PA_MAX Use pa_rtclock_now() for benchmarks
2009-08-20whitespace fixesWim Taymans1-183/+183
2009-08-20svolume: fix compilation in 32bitsWim Taymans1-6/+6
2009-08-20svolume: add CPU guards around codeWim Taymans1-0/+6
Mark code that should only be compiled on x86 CPUs with proper defines.
2009-08-20svolume: remove unneeded compareWim Taymans1-1/+0
We don't need the compare because the sub operation already set the right flags for us.
2009-08-20volume: remove ref functionsWim Taymans1-223/+0
2009-08-20volume: improved commentsWim Taymans1-6/+6
2009-08-20volume: make the benchmark more meaningfullWim Taymans1-20/+33
MMX is about 6x faster, SSE around 15x on my machine.
2009-08-20svolume: add some commentsWim Taymans1-0/+18
2009-08-20main: hook up cpu detection codeWim Taymans1-8/+10
Add CPU detection code to activate the various optimisations. Move some method definitions around. Use compatibility macros when we can.
2009-08-20svolume: improve SSE and MMX codeWim Taymans1-66/+134
2009-08-20volume_mmx: fix mmx code a bitWim Taymans1-20/+26
2009-08-20volume: add first mmx optimized functionWim Taymans1-0/+424
Add code for an mmx optimized version of s16ne volume scaling. Install the custom function.