[gst-devel] Compilation troubles
Richard Boulton
richard.boulton at harvey.muscat.com
Sun Jun 4 22:12:49 CEST 2000
On Sun, Jun 04, 2000 at 10:02:13PM +0200, Wim Taymans wrote:
> Do the same errors appear in video.c in the mpeg_play element? It has
> a similar type of mmx asm.
plugins/mpeg1/mpeg_play/video.c compiles perfectly: not even a warning.
> > /tmp/ccwG7VeD.s: Assembler messages:
> > /tmp/ccwG7VeD.s:3087: Error: suffix or operands invalid for `pand'
> > /tmp/ccwG7VeD.s:3098: Error: suffix or operands invalid for `pand'
> > /tmp/ccwG7VeD.s:3138: Error: suffix or operands invalid for `pand'
> > /tmp/ccwG7VeD.s:3149: Error: suffix or operands invalid for `pand'
> > /tmp/ccwG7VeD.s:3185: Error: suffix or operands invalid for `pand'
> > /tmp/ccwG7VeD.s:3196: Error: suffix or operands invalid for `pand'
>
> any chance you could send me a copy of that /tmp file? a few lines
> around 3087 should be enough to see what happens.
Here: lines 3070 to 3125...
I notice that all these lines have pand instructions which have %eax as
the first argument (though I have little x86 assembly knowledge, so I
have no idea if that is significant).
-----BEGIN CODE-----
jne .L378
#APP
pxor %mm7, %mm7
pxor %mm6, %mm6
#NO_APP
cmpl %ebp,%eax
jge .L373
movl MMX_MASK_1 at GOTOFF(%ebx),%eax
movl 4+MMX_MASK_1 at GOTOFF(%ebx),%edx
testl $1,%ebp
je .L375
#APP
movq (%ecx), %mm0
movq %mm0, %mm5
movq 1(%ecx), %mm2
movq MMX_MASK_2 at GOTOFF(%ebx), %mm4
por %mm2, %mm5
pand %eax, %mm5
pand %mm4, %mm0
pand %mm4, %mm2
psrlq $1, %mm0
psrlq $1, %mm2
paddusb %mm2, %mm0
paddusb %mm5, %mm0
movq 8(%ecx), %mm3
movq %mm3, %mm1
movq 9(%ecx), %mm2
por %mm2, %mm1
pand %eax, %mm1
pand %mm4, %mm3
pand %mm4, %mm2
psrlq $1, %mm3
psrlq $1, %mm2
paddusb %mm2, %mm3
paddusb %mm1, %mm3
movq (%esi), %mm1
movq %mm0, %mm2
psubusb %mm1, %mm0
psubusb %mm2, %mm1
movq 8(%esi), %mm4
por %mm1, %mm0
movq %mm3, %mm5
movq %mm0, %mm1
psubusb %mm4, %mm3
punpcklbw %mm6, %mm0
psubusb %mm5, %mm4
por %mm4, %mm3
punpckhbw %mm6, %mm1
movq %mm3, %mm4
punpcklbw %mm6, %mm3
paddw %mm0, %mm7
paddw %mm1, %mm7
punpckhbw %mm6, %mm4
paddw %mm3, %mm7
paddw %mm4, %mm7
#NO_APP
-----END CODE-----
> The pandn instruction is worse, it is broken on my compiler. :-(
:(
It may also be worth you knowing that I can't get the CVS version of
gst/gsttrace.c to work: I'm compiling using the hack below, as previously
suggested here. I don't know whether this has the same functionality as
what's there at the moment: if so, perhaps it should be committed?
#define rdtscll(result) \
__asm__ __volatile__("rdtsc" : "=A" (result) : /* No inputs */ )
--
Richard
More information about the gstreamer-devel
mailing list