summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/svolume_mmx.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary #includesMaarten Bosmans2011-06-221-3/+0
|
* SSE/MMX: Fix problem with highpitched noise on i386David Henningsson2011-06-221-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>
* volume: Get more data from volume testsArun Raghavan2011-04-181-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).
* Make pulse compile with clangMaarten Bosmans2011-03-181-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) ~~~~~~~~~~~~^~~~~~~
* Fixup #include directives according to Coding StyleMaarten Bosmans2011-03-111-1/+1
| | | | | Use #include "header.h" if functionality of header.h is implemented and #include <header.h> if functionality of header.h is used.
* Fix up according to Coding StyleMaarten Bosmans2011-03-111-23/+19
| | | | Only whitespace changes in here
* volume: Fix sample array size for testsArun Raghavan2011-03-051-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).
* volume: Make tests use only valid volumesArun Raghavan2011-03-051-1/+1
|
* SSE/MMX/ARM: Fix high frequency noise with unusual number of channelsDavid Henningsson2010-10-131-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>
* cpu: check for CMOV flag before using this intsruction in assemblyLennart Poettering2010-02-091-1/+1
| | | | http://pulseaudio.org/ticket/776
* svolume: fix MMX errorWim Taymans2009-10-301-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.
* simd: update test casesLennart Poettering2009-10-291-0/+4
|
* Fix build when using -fweb, accept both register and memory constraints.Diego Elio 'Flameeyes' Pettenò2009-10-071-2/+2
| | | | | This was reported as Gentoo bug #287391 by Torsten Kaiser, and the fix was suggested by Mike Frysinger.
* svolume: tweak constraints for 32 bitsWim Taymans2009-09-231-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.
* svolume_mmx: disable test accidentaly left onLennart Poettering2009-09-171-1/+1
|
* svolume_mmx: optimize some moreWim Taymans2009-09-161-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.
* simd: be more precise which SIMD optimizations we activateLennart Poettering2009-09-091-3/+6
|
* svolume: cleanupsWim Taymans2009-08-201-9/+9
| | | | | Use PA_MAX Use pa_rtclock_now() for benchmarks
* whitespace fixesWim Taymans2009-08-201-183/+183
|
* svolume: fix compilation in 32bitsWim Taymans2009-08-201-6/+6
|
* svolume: add CPU guards around codeWim Taymans2009-08-201-0/+6
| | | | Mark code that should only be compiled on x86 CPUs with proper defines.
* svolume: remove unneeded compareWim Taymans2009-08-201-1/+0
| | | | | We don't need the compare because the sub operation already set the right flags for us.
* volume: remove ref functionsWim Taymans2009-08-201-223/+0
|
* volume: improved commentsWim Taymans2009-08-201-6/+6
|
* volume: make the benchmark more meaningfullWim Taymans2009-08-201-20/+33
| | | | MMX is about 6x faster, SSE around 15x on my machine.
* svolume: add some commentsWim Taymans2009-08-201-0/+18
|
* main: hook up cpu detection codeWim Taymans2009-08-201-8/+10
| | | | | | Add CPU detection code to activate the various optimisations. Move some method definitions around. Use compatibility macros when we can.
* svolume: improve SSE and MMX codeWim Taymans2009-08-201-66/+134
|
* volume_mmx: fix mmx code a bitWim Taymans2009-08-201-20/+26
|
* volume: add first mmx optimized functionWim Taymans2009-08-201-0/+424
Add code for an mmx optimized version of s16ne volume scaling. Install the custom function.