diff options
Diffstat (limited to 'src/pulsecore/sconv_sse.c')
-rw-r--r-- | src/pulsecore/sconv_sse.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/pulsecore/sconv_sse.c b/src/pulsecore/sconv_sse.c index ef78fc26..3737af2a 100644 --- a/src/pulsecore/sconv_sse.c +++ b/src/pulsecore/sconv_sse.c @@ -83,7 +83,7 @@ static void pa_sconv_s16le_from_f32ne_sse(unsigned n, const float *a, int16_t *b "2: \n\t" " mov %4, %1 \n\t" /* prepare for leftovers */ - " and $15, %1 \n\t" + " and $7, %1 \n\t" " je 4f \n\t" "3: \n\t" @@ -142,7 +142,7 @@ static void pa_sconv_s16le_from_f32ne_sse2(unsigned n, const float *a, int16_t * "2: \n\t" " mov %4, %1 \n\t" /* prepare for leftovers */ - " and $15, %1 \n\t" + " and $7, %1 \n\t" " je 4f \n\t" "3: \n\t" @@ -218,16 +218,18 @@ static void run_test (void) { void pa_convert_func_init_sse (pa_cpu_x86_flag_t flags) { #if defined (__i386__) || defined (__amd64__) - pa_log_info("Initialising SSE optimized conversions."); #ifdef RUN_TEST run_test (); #endif - if (flags & PA_CPU_X86_SSE2) - pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse2); - else - pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse); + if (flags & PA_CPU_X86_SSE2) { + pa_log_info("Initialising SSE2 optimized conversions."); + pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse2); + } else { + pa_log_info("Initialising SSE optimized conversions."); + pa_set_convert_from_float32ne_function (PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse); + } #endif /* defined (__i386__) || defined (__amd64__) */ } |