mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-11 13:30:02 -05:00
svolume: disable incompatible MMX and SSE code on x86 macOS
We need the same workaround FreeBSD uses.
This commit is contained in:
parent
584aad3c06
commit
3c45897d20
2 changed files with 8 additions and 8 deletions
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
#include "sample-util.h"
|
#include "sample-util.h"
|
||||||
|
|
||||||
#if (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
#if (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
||||||
/* in s: 2 int16_t samples
|
/* in s: 2 int16_t samples
|
||||||
* in v: 2 int32_t volumes, fixed point 16:16
|
* in v: 2 int32_t volumes, fixed point 16:16
|
||||||
* out s: contains scaled and clamped int16_t samples.
|
* out s: contains scaled and clamped int16_t samples.
|
||||||
|
|
@ -238,15 +238,15 @@ static void pa_volume_s16re_mmx(int16_t *samples, const int32_t *volumes, unsign
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
#endif /* (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
||||||
|
|
||||||
void pa_volume_func_init_mmx(pa_cpu_x86_flag_t flags) {
|
void pa_volume_func_init_mmx(pa_cpu_x86_flag_t flags) {
|
||||||
#if (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
#if (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
||||||
if ((flags & PA_CPU_X86_MMX) && (flags & PA_CPU_X86_CMOV)) {
|
if ((flags & PA_CPU_X86_MMX) && (flags & PA_CPU_X86_CMOV)) {
|
||||||
pa_log_info("Initialising MMX optimized volume functions.");
|
pa_log_info("Initialising MMX optimized volume functions.");
|
||||||
|
|
||||||
pa_set_volume_func(PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_mmx);
|
pa_set_volume_func(PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_mmx);
|
||||||
pa_set_volume_func(PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_mmx);
|
pa_set_volume_func(PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_mmx);
|
||||||
}
|
}
|
||||||
#endif /* (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
#endif /* (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
#include "sample-util.h"
|
#include "sample-util.h"
|
||||||
|
|
||||||
#if (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
#if (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
||||||
|
|
||||||
#define VOLUME_32x16(s,v) /* .. | vh | vl | */ \
|
#define VOLUME_32x16(s,v) /* .. | vh | vl | */ \
|
||||||
" pxor %%xmm4, %%xmm4 \n\t" /* .. | 0 | 0 | */ \
|
" pxor %%xmm4, %%xmm4 \n\t" /* .. | 0 | 0 | */ \
|
||||||
|
|
@ -249,15 +249,15 @@ static void pa_volume_s16re_sse2(int16_t *samples, const int32_t *volumes, unsig
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
#endif /* (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
||||||
|
|
||||||
void pa_volume_func_init_sse(pa_cpu_x86_flag_t flags) {
|
void pa_volume_func_init_sse(pa_cpu_x86_flag_t flags) {
|
||||||
#if (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
#if (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__)
|
||||||
if (flags & PA_CPU_X86_SSE2) {
|
if (flags & PA_CPU_X86_SSE2) {
|
||||||
pa_log_info("Initialising SSE2 optimized volume functions.");
|
pa_log_info("Initialising SSE2 optimized volume functions.");
|
||||||
|
|
||||||
pa_set_volume_func(PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_sse2);
|
pa_set_volume_func(PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_sse2);
|
||||||
pa_set_volume_func(PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_sse2);
|
pa_set_volume_func(PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_sse2);
|
||||||
}
|
}
|
||||||
#endif /* (!defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
#endif /* (!defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && defined (__i386__)) || defined (__amd64__) */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue