| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
| |
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)
~~~~~~~~~~~~^~~~~~~
|
|
|
|
|
| |
Use #include "header.h" if functionality of header.h is implemented
and #include <header.h> if functionality of header.h is used.
|
|
|
|
| |
Only whitespace changes in here
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
http://pulseaudio.org/ticket/776
|
|
|
|
|
| |
We need to sign extend the lower part of the multiplication before adding it to
the higher part. Makes -1 * 0xffff work again.
|
| |
|
|
|
|
|
| |
This was reported as Gentoo bug #287391 by Torsten Kaiser, and the fix was
suggested by Mike Frysinger.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Use PA_MAX
Use pa_rtclock_now() for benchmarks
|
| |
|
| |
|
|
|
|
| |
Mark code that should only be compiled on x86 CPUs with proper defines.
|
|
|
|
|
| |
We don't need the compare because the sub operation already set the right flags
for us.
|
| |
|
| |
|
|
|
|
| |
MMX is about 6x faster, SSE around 15x on my machine.
|
| |
|
|
|
|
|
|
| |
Add CPU detection code to activate the various optimisations.
Move some method definitions around.
Use compatibility macros when we can.
|
| |
|
| |
|
|
Add code for an mmx optimized version of s16ne volume scaling. Install the
custom function.
|