Fix build when using -fweb, accept both register and memory constraints.
authorDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>
Wed, 7 Oct 2009 17:31:11 +0000 (19:31 +0200)
committerDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>
Wed, 7 Oct 2009 17:31:11 +0000 (19:31 +0200)
This was reported as Gentoo bug #287391 by Torsten Kaiser, and the fix was
suggested by Mike Frysinger.

src/pulsecore/svolume_mmx.c
src/pulsecore/svolume_sse.c

index 1768eb5..745c7de 100644 (file)
@@ -152,7 +152,7 @@ pa_volume_s16ne_mmx (int16_t *samples, int32_t *volumes, unsigned channels, unsi
         " emms                          \n\t"
 
         : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp)
-        : "X" ((pa_reg_x86)channels)
+        : "rm" ((pa_reg_x86)channels)
         : "cc"
     );
 }
@@ -228,7 +228,7 @@ pa_volume_s16re_mmx (int16_t *samples, int32_t *volumes, unsigned channels, unsi
         " emms                          \n\t"
 
         : "+r" (samples), "+r" (volumes), "+r" (length), "=D" ((pa_reg_x86)channel), "=&r" (temp)
-        : "X" ((pa_reg_x86)channels)
+        : "rm" ((pa_reg_x86)channels)
         : "cc"
     );
 }
index ab9394f..1cc4e0a 100644 (file)
@@ -149,7 +149,7 @@ pa_volume_s16ne_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, uns
         "8:                             \n\t"
 
         : "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp)
-        : "X" ((pa_reg_x86)channels)
+        : "rm" ((pa_reg_x86)channels)
         : "cc"
     );
 }
@@ -237,7 +237,7 @@ pa_volume_s16re_sse2 (int16_t *samples, int32_t *volumes, unsigned channels, uns
         "8:                             \n\t"
 
         : "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp)
-        : "X" ((pa_reg_x86)channels)
+        : "rm" ((pa_reg_x86)channels)
         : "cc"
     );
 }