]> code.delx.au - pulseaudio/commitdiff
simd: be more precise which SIMD optimizations we activate
authorLennart Poettering <lennart@poettering.net>
Wed, 9 Sep 2009 02:28:22 +0000 (04:28 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 9 Sep 2009 02:28:22 +0000 (04:28 +0200)
src/pulsecore/remap_mmx.c
src/pulsecore/remap_sse.c
src/pulsecore/sconv_sse.c
src/pulsecore/svolume_mmx.c
src/pulsecore/svolume_sse.c

index 79e4f1fc2c47e0bf2f449f6e86018f9fa7dc9953..d358a58b6a37d482d2aaa803adda55dbb4ec5cbc 100644 (file)
@@ -150,8 +150,12 @@ static void init_remap_mmx (pa_remap_t *m) {
 
 void pa_remap_func_init_mmx (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising MMX optimized remappers.");
 
-    pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_mmx);
+    if (flags & PA_CPU_X86_MMX) {
+        pa_log_info("Initialising MMX optimized remappers.");
+
+        pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_mmx);
+    }
+
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
index dac072ec42326664b1d7a133423962e19afb59da..0ccf3161d8bcc91d599b8c796f04708bc4ce87c7 100644 (file)
@@ -149,9 +149,11 @@ static void init_remap_sse2 (pa_remap_t *m) {
 
 void pa_remap_func_init_sse (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising SSE optimized remappers.");
 
-    if (flags & PA_CPU_X86_SSE2)
-      pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_sse2);
+    if (flags & PA_CPU_X86_SSE2) {
+        pa_log_info("Initialising SSE2 optimized remappers.");
+        pa_set_init_remap_func ((pa_init_remap_func_t) init_remap_sse2);
+    }
+
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
index 7c3aa1996c236bced901011cc97ba52895f691ba..3737af2a645ae993b32fab5629f01570c23d7f9a 100644 (file)
@@ -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__) */
 }
index 8510b0c41f4f4e0ce7c57a0a4609b43044a0e760..74918e78d39d567573c33629c13f5a43ec97176c 100644 (file)
@@ -301,13 +301,16 @@ static void run_test (void) {
 
 void pa_volume_func_init_mmx (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising MMX optimized functions.");
 
 #ifdef RUN_TEST
     run_test ();
 #endif
 
-    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);
+    if (flags & PA_CPU_X86_MMX) {
+        pa_log_info("Initialising MMX optimized functions.");
+
+        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);
+    }
 #endif /* defined (__i386__) || defined (__amd64__) */
 }
index d9dcf476103c2a136b4b3679247485e5565306c9..bbd73a9b8e7e5d6ce572a09eb4bd5c6f7d5f79f7 100644 (file)
@@ -302,15 +302,16 @@ static void run_test (void) {
 
 void pa_volume_func_init_sse (pa_cpu_x86_flag_t flags) {
 #if defined (__i386__) || defined (__amd64__)
-    pa_log_info("Initialising SSE optimized functions.");
 
 #ifdef RUN_TEST
     run_test ();
 #endif
 
     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);
+        pa_log_info("Initialising SSE2 optimized functions.");
+
+        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__) */
 }