From b5ac3839e18524524fa3e0da7ec68dbce16e8203 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 7 Sep 2009 17:21:21 +0200 Subject: x86: only install some functions when SSE2 Remap and volume functions use SSE2 instructions so only install them when SSE2 is present. --- src/pulsecore/svolume_sse.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/pulsecore/svolume_sse.c') 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__) */ } -- cgit