audio/pulseaudio failed on i386
Carlos Jacobo Puga Medina
cjpugmed at gmail.com
Fri Jan 24 13:49:31 UTC 2014
2014/1/23 Carlos Jacobo Puga Medina <cjpugmed at gmail.com>
> On FreeBSD 10.0-RELEASE/i386, I can't seem to build pulseaudio.
>
> I get the following error:
>
> pulsecore/svolume_mmx.c:108:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> " je 2f \n\t"
> ^
> <inline asm>:5:9: [0;1;30mnote: instantiated into assembly here
> movd (%rdx, %edi, 4), %mm0
> ^~~~~
> pulsecore/svolume_mmx.c:124:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> "3: \n\t" /* do samples in groups of 2
> */
> ^
> <inline asm>:33:9: [0;1;30mnote: instantiated into assembly here
> movq (%rdx, %edi, 4), %mm0
> ^~~~~
> pulsecore/svolume_mmx.c:137:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> "5: \n\t" /* do samples in groups of 4
> */
> ^
> <inline asm>:59:9: [0;1;30mnote: instantiated into assembly here
> movq (%rdx, %edi, 4), %mm0
> ^~~~~
> pulsecore/svolume_mmx.c:138:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> " movq (%q1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
> v0l | */
> ^
> <inline asm>:60:10: [0;1;30mnote: instantiated into assembly here
> movq 8(%rdx, %edi, 4), %mm2
> ^~~~~
> pulsecore/svolume_mmx.c:181:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> " je 2f \n\t"
> ^
> <inline asm>:9:9: [0;1;30mnote: instantiated into assembly here
> movd (%rdx, %edi, 4), %mm0
> ^~~~~
> pulsecore/svolume_mmx.c:199:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> "3: \n\t" /* do samples in groups of 2
> */
> ^
> <inline asm>:39:9: [0;1;30mnote: instantiated into assembly here
> movq (%rdx, %edi, 4), %mm0
> ^~~~~
> pulsecore/svolume_mmx.c:214:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> "5: \n\t" /* do samples in groups of 4
> */
> ^
> <inline asm>:73:9: [0;1;30mnote: instantiated into assembly here
> movq (%rdx, %edi, 4), %mm0
> ^~~~~
> pulsecore/svolume_mmx.c:215:43: [0;1;31merror: register %rdx is only
> available in 64-bit mode
> " movq (%q1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
> v0l | */
> ^
> <inline asm>:74:10: [0;1;30mnote: instantiated into assembly here
> movq 8(%rdx, %edi, 4), %mm2
> ^~~~~
> 8 errors generated.
> gmake[5]: *** [libpulsecommon_4.0_la-svolume_mmx.lo] Error 1
> gmake[5]: Leaving directory
> `/usr/ports/audio/pulseaudio/work/pulseaudio-4.0/src'
> gmake[4]: *** [all] Error 2
> gmake[4]: Leaving directory
> `/usr/ports/audio/pulseaudio/work/pulseaudio-4.0/src'
> gmake[3]: *** [all-recursive] Error 1
> gmake[3]: Leaving directory
> `/usr/ports/audio/pulseaudio/work/pulseaudio-4.0'
> gmake[2]: *** [all] Error 2
> gmake[2]: Leaving directory
> `/usr/ports/audio/pulseaudio/work/pulseaudio-4.0'
> *** Error code 1
>
> Stop.
> make[1]: stopped in /usr/ports/audio/pulseaudio
> *** Error code 1
>
> Stop.
> make: stopped in /usr/ports/audio/pulseaudio
>
> Regards,
>
> --CJPM
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=55733
>
>
After reverting last committed changes in sconv_sse.c, svolume_mmx.c and
svolume_sse.c, it makes assembly syntax compatible and fixes compilation
errors on i386.
--- src/pulsecore/sconv_sse.c.orig 2014-01-24 14:20:08.000000000 +0100
+++ src/pulsecore/sconv_sse.c 2014-01-24 14:24:18.000000000 +0100
@@ -50,8 +50,8 @@
" je 2f \n\t"
"1: \n\t"
- " movups (%q2, %0, 2), %%xmm0 \n\t" /* read 8 floats */
- " movups 16(%q2, %0, 2), %%xmm2 \n\t"
+ " movups (%2, %0, 2), %%xmm0 \n\t" /* read 8 floats */
+ " movups 16(%2, %0, 2), %%xmm2 \n\t"
" mulps %%xmm5, %%xmm0 \n\t" /* *= 0x8000 */
" mulps %%xmm5, %%xmm2 \n\t"
@@ -64,8 +64,8 @@
" packssdw %%mm1, %%mm0 \n\t" /* pack parts */
" packssdw %%mm3, %%mm2 \n\t"
- " movq %%mm0, (%q3, %0) \n\t"
- " movq %%mm2, 8(%q3, %0) \n\t"
+ " movq %%mm0, (%3, %0) \n\t"
+ " movq %%mm2, 8(%3, %0) \n\t"
" add $16, %0 \n\t"
" dec %1 \n\t"
@@ -77,7 +77,7 @@
" je 5f \n\t"
"3: \n\t"
- " movss (%q2, %0, 2), %%xmm0 \n\t"
+ " movss (%2, %0, 2), %%xmm0 \n\t"
" mulss %%xmm5, %%xmm0 \n\t"
" cvtss2si %%xmm0, %4 \n\t"
" add $0x8000, %4 \n\t" /* check for saturation */
@@ -88,7 +88,7 @@
" xor $0x7fff, %4 \n\t"
"4: \n\t"
- " movw %w4, (%q3, %0) \n\t" /* store leftover */
+ " movw %w4, (%3, %0) \n\t" /* store leftover */
" add $2, %0 \n\t"
" dec %1 \n\t"
" jne 3b \n\t"
@@ -115,8 +115,8 @@
" je 2f \n\t"
"1: \n\t"
- " movups (%q2, %0, 2), %%xmm0 \n\t" /* read 8 floats */
- " movups 16(%q2, %0, 2), %%xmm2 \n\t"
+ " movups (%2, %0, 2), %%xmm0 \n\t" /* read 8 floats */
+ " movups 16(%2, %0, 2), %%xmm2 \n\t"
" mulps %%xmm5, %%xmm0 \n\t" /* *= 0x8000 */
" mulps %%xmm5, %%xmm2 \n\t"
@@ -124,7 +124,7 @@
" cvtps2dq %%xmm2, %%xmm2 \n\t"
" packssdw %%xmm2, %%xmm0 \n\t"
- " movdqu %%xmm0, (%q3, %0) \n\t"
+ " movdqu %%xmm0, (%3, %0) \n\t"
" add $16, %0 \n\t"
" dec %1 \n\t"
@@ -136,7 +136,7 @@
" je 5f \n\t"
"3: \n\t"
- " movss (%q2, %0, 2), %%xmm0 \n\t"
+ " movss (%2, %0, 2), %%xmm0 \n\t"
" mulss %%xmm5, %%xmm0 \n\t"
" cvtss2si %%xmm0, %4 \n\t"
" add $0x8000, %4 \n\t"
@@ -147,7 +147,7 @@
" xor $0x7fff, %4 \n\t"
"4: \n\t"
- " movw %w4, (%q3, %0) \n\t" /* store leftover */
+ " movw %w4, (%3, %0) \n\t" /* store leftover */
" add $2, %0 \n\t"
" dec %1 \n\t"
" jne 3b \n\t"
--- src/pulsecore/svolume_mmx.c.orig 2014-01-24 14:20:40.000000000 +0100
+++ src/pulsecore/svolume_mmx.c 2014-01-24 14:26:22.000000000 +0100
@@ -107,7 +107,7 @@
" test $1, %2 \n\t" /* check for odd samples */
" je 2f \n\t"
- " movd (%q1, %3, 4), %%mm0 \n\t" /* | v0h | v0l | */
+ " movd (%1, %3, 4), %%mm0 \n\t" /* | v0h | v0l | */
" movw (%0), %w4 \n\t" /* .. | p0 | */
" movd %4, %%mm1 \n\t"
VOLUME_32x16 (%%mm1, %%mm0)
@@ -122,7 +122,7 @@
" je 4f \n\t"
"3: \n\t" /* do samples in groups of 2
*/
- " movq (%q1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
+ " movq (%1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
" movd (%0), %%mm1 \n\t" /* .. | p1 |
p0 | */
VOLUME_32x16 (%%mm1, %%mm0)
" movd %%mm0, (%0) \n\t" /* .. | p1*v1 |
p0*v0 | */
@@ -135,8 +135,8 @@
" je 6f \n\t"
"5: \n\t" /* do samples in groups of 4
*/
- " movq (%q1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
- " movq 8(%q1, %3, 4), %%mm2 \n\t" /* | v3h | v3l | v2h |
v2l | */
+ " movq (%1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
+ " movq 8(%1, %3, 4), %%mm2 \n\t" /* | v3h | v3l | v2h |
v2l | */
" movd (%0), %%mm1 \n\t" /* .. | p1 |
p0 | */
" movd 4(%0), %%mm3 \n\t" /* .. | p3 |
p2 | */
VOLUME_32x16 (%%mm1, %%mm0)
@@ -180,7 +180,7 @@
" test $1, %2 \n\t" /* check for odd samples */
" je 2f \n\t"
- " movd (%q1, %3, 4), %%mm0 \n\t" /* | v0h | v0l | */
+ " movd (%1, %3, 4), %%mm0 \n\t" /* | v0h | v0l | */
" movw (%0), %w4 \n\t" /* .. | p0 | */
" rorw $8, %w4 \n\t"
" movd %4, %%mm1 \n\t"
@@ -197,7 +197,7 @@
" je 4f \n\t"
"3: \n\t" /* do samples in groups of 2
*/
- " movq (%q1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
+ " movq (%1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
" movd (%0), %%mm1 \n\t" /* .. | p1 |
p0 | */
SWAP_16 (%%mm1)
VOLUME_32x16 (%%mm1, %%mm0)
@@ -212,8 +212,8 @@
" je 6f \n\t"
"5: \n\t" /* do samples in groups of 4
*/
- " movq (%q1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
- " movq 8(%q1, %3, 4), %%mm2 \n\t" /* | v3h | v3l | v2h |
v2l | */
+ " movq (%1, %3, 4), %%mm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
+ " movq 8(%1, %3, 4), %%mm2 \n\t" /* | v3h | v3l | v2h |
v2l | */
" movd (%0), %%mm1 \n\t" /* .. | p1 |
p0 | */
" movd 4(%0), %%mm3 \n\t" /* .. | p3 |
p2 | */
SWAP_16_2 (%%mm1, %%mm3)
--- src/pulsecore/svolume_sse.c.orig 2014-01-24 14:21:02.000000000 +0100
+++ src/pulsecore/svolume_sse.c 2014-01-24 14:28:46.000000000 +0100
@@ -92,7 +92,7 @@
" test $1, %2 \n\t" /* check for odd samples */
" je 2f \n\t"
- " movd (%q1, %3, 4), %%xmm0 \n\t" /* | v0h | v0l | */
+ " movd (%1, %3, 4), %%xmm0 \n\t" /* | v0h | v0l | */
" movw (%0), %w4 \n\t" /* .. | p0 | */
" movd %4, %%xmm1 \n\t"
VOLUME_32x16 (%%xmm1, %%xmm0)
@@ -107,7 +107,7 @@
" je 4f \n\t"
"3: \n\t" /* do samples in groups of 2
*/
- " movq (%q1, %3, 4), %%xmm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
+ " movq (%1, %3, 4), %%xmm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
" movd (%0), %%xmm1 \n\t" /* .. | p1 |
p0 | */
VOLUME_32x16 (%%xmm1, %%xmm0)
" movd %%xmm0, (%0) \n\t" /* .. | p1*v1 |
p0*v0 | */
@@ -123,7 +123,7 @@
* that the array is 16 bytes aligned, we probably have to do the
odd values
* after this then. */
"5: \n\t" /* do samples in groups of 4
*/
- " movdqu (%q1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
+ " movdqu (%1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
" movq (%0), %%xmm1 \n\t" /* .. | p3
.. p0 | */
VOLUME_32x16 (%%xmm1, %%xmm0)
" movq %%xmm0, (%0) \n\t" /* .. | p3*v3
.. p0*v0 | */
@@ -136,8 +136,8 @@
" je 8f \n\t"
"7: \n\t" /* do samples in groups of 8
*/
- " movdqu (%q1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
- " movdqu 16(%q1, %3, 4), %%xmm2 \n\t" /* | v7h | v7l .. v4h
| v4l | */
+ " movdqu (%1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
+ " movdqu 16(%1, %3, 4), %%xmm2 \n\t" /* | v7h | v7l .. v4h
| v4l | */
" movq (%0), %%xmm1 \n\t" /* .. | p3
.. p0 | */
" movq 8(%0), %%xmm3 \n\t" /* .. | p7
.. p4 | */
VOLUME_32x16 (%%xmm1, %%xmm0)
@@ -176,7 +176,7 @@
" test $1, %2 \n\t" /* check for odd samples */
" je 2f \n\t"
- " movd (%q1, %3, 4), %%xmm0 \n\t" /* | v0h | v0l | */
+ " movd (%1, %3, 4), %%xmm0 \n\t" /* | v0h | v0l | */
" movw (%0), %w4 \n\t" /* .. | p0 | */
" rorw $8, %w4 \n\t"
" movd %4, %%xmm1 \n\t"
@@ -193,7 +193,7 @@
" je 4f \n\t"
"3: \n\t" /* do samples in groups of 2
*/
- " movq (%q1, %3, 4), %%xmm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
+ " movq (%1, %3, 4), %%xmm0 \n\t" /* | v1h | v1l | v0h |
v0l | */
" movd (%0), %%xmm1 \n\t" /* .. | p1 |
p0 | */
SWAP_16 (%%xmm1)
VOLUME_32x16 (%%xmm1, %%xmm0)
@@ -211,7 +211,7 @@
* that the array is 16 bytes aligned, we probably have to do the
odd values
* after this then. */
"5: \n\t" /* do samples in groups of 4
*/
- " movdqu (%q1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
+ " movdqu (%1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
" movq (%0), %%xmm1 \n\t" /* .. | p3
.. p0 | */
SWAP_16 (%%xmm1)
VOLUME_32x16 (%%xmm1, %%xmm0)
@@ -226,8 +226,8 @@
" je 8f \n\t"
"7: \n\t" /* do samples in groups of 8
*/
- " movdqu (%q1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
- " movdqu 16(%q1, %3, 4), %%xmm2 \n\t" /* | v7h | v7l .. v4h
| v4l | */
+ " movdqu (%1, %3, 4), %%xmm0 \n\t" /* | v3h | v3l .. v0h
| v0l | */
+ " movdqu 16(%1, %3, 4), %%xmm2 \n\t" /* | v7h | v7l .. v4h
| v4l | */
" movq (%0), %%xmm1 \n\t" /* .. | p3
.. p0 | */
" movq 8(%0), %%xmm3 \n\t" /* .. | p7
.. p4 | */
SWAP_16_2 (%%xmm1, %%xmm3)
More information about the freebsd-gnome
mailing list