summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/svolume_sse.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-09-07 17:21:21 +0200
committerWim Taymans <wim.taymans@collabora.co.uk>2009-09-07 17:21:21 +0200
commitb5ac3839e18524524fa3e0da7ec68dbce16e8203 (patch)
tree9ae7178a8d22d5a3386be8798952a91d7bbd275d /src/pulsecore/svolume_sse.c
parent812be327836c93492ad389333bcc037566141eb8 (diff)
x86: only install some functions when SSE2
Remap and volume functions use SSE2 instructions so only install them when SSE2 is present.
Diffstat (limited to 'src/pulsecore/svolume_sse.c')
-rw-r--r--src/pulsecore/svolume_sse.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/pulsecore/svolume_sse.c b/src/pulsecore/svolume_sse.c
index 54af4a57..d9dcf476 100644
--- a/src/pulsecore/svolume_sse.c
+++ b/src/pulsecore/svolume_sse.c
@@ -75,7 +75,7 @@
" por %%xmm5, "#s2" \n\t"
static void
-pa_volume_s16ne_sse (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
+pa_volume_s16ne_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
{
pa_reg_x86 channel, temp;
@@ -155,7 +155,7 @@ pa_volume_s16ne_sse (int16_t *samples, int32_t *volumes, unsigned channels, unsi
}
static void
-pa_volume_s16re_sse (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
+pa_volume_s16re_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, unsigned length)
{
pa_reg_x86 channel, temp;
@@ -308,7 +308,9 @@ void pa_volume_func_init_sse (pa_cpu_x86_flag_t flags) {
run_test ();
#endif
- pa_set_volume_func (PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_sse);
- pa_set_volume_func (PA_SAMPLE_S16RE, (pa_do_volume_func_t) pa_volume_s16re_sse);
+ if (flags & PA_CPU_X86_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);
+ }
#endif /* defined (__i386__) || defined (__amd64__) */
}