svolume: tweak constraints for 32 bits
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 23 Sep 2009 15:16:04 +0000 (17:16 +0200)
committerWim Taymans <wim@metal.(none)>
Wed, 23 Sep 2009 15:18:20 +0000 (17:18 +0200)
Tweak the constraints a little so that register starved 32bit systems
can select a stack variable for the channel paramter instead of reusing one of
the registers we're using in the code.

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

index 62f3397..1768eb5 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)
-        : "r" ((pa_reg_x86)channels)
+        : "X" ((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)
-        : "r" ((pa_reg_x86)channels)
+        : "X" ((pa_reg_x86)channels)
         : "cc"
     );
 }
index 5276bda..ab9394f 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)
-        : "r" ((pa_reg_x86)channels)
+        : "X" ((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)
-        : "r" ((pa_reg_x86)channels)
+        : "X" ((pa_reg_x86)channels)
         : "cc"
     );
 }