The "rm" basm constraint doesn't work with my version of gcc (4.5.2),
not even in a simple example. Since we usually only have 5 registers
available on i386, force it to be memory on that architecture.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
" emms \n\t"
: "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp)
- : "rm" ((pa_reg_x86)channels)
+#if defined (__i386__)
+ : "m" ((pa_reg_x86)channels)
+#else
+ : "r" ((pa_reg_x86)channels)
+#endif
: "cc"
);
}
" emms \n\t"
: "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp)
- : "rm" ((pa_reg_x86)channels)
+#if defined (__i386__)
+ : "m" ((pa_reg_x86)channels)
+#else
+ : "r" ((pa_reg_x86)channels)
+#endif
: "cc"
);
}
"8: \n\t"
: "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp)
- : "rm" ((pa_reg_x86)channels)
+#if defined (__i386__)
+ : "m" ((pa_reg_x86)channels)
+#else
+ : "r" ((pa_reg_x86)channels)
+#endif
: "cc"
);
}
"8: \n\t"
: "+r" (samples), "+r" (volumes), "+r" (length), "=D" (channel), "=&r" (temp)
- : "rm" ((pa_reg_x86)channels)
+#if defined (__i386__)
+ : "m" ((pa_reg_x86)channels)
+#else
+ : "r" ((pa_reg_x86)channels)
+#endif
: "cc"
);
}