[MPlayer-users] Error in 64-bit compile - using 16-bit assembly instructions

Jason Awuku j.awuku at googlemail.com
Sun Oct 29 06:02:53 CET 2006


I'm trying to compile the latest mplayer svn on Ubuntu Edgy 64-bit.
The compilation gets stuck at a c-file called osd.c:

Console Output:

gcc-4.1 -c -I. -I.. -I../osdep  -I../libavutil
-Wdeclaration-after-statement -mtune=k8 -D_REENTRANT
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
-I/usr/include/directfb -I/usr/include -I/usr/include/
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-I/usr/include/kde/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include  -I/usr/include -I/usr/include/dvdnav
-I/usr/include/freetype2 -I/usr/include
-I/usr/local/lib/live/liveMedia/include
-I/usr/local/lib/live/UsageEnvironment/include
-I/usr/local/lib/live/BasicUsageEnvironment/include
-I/usr/local/lib/live/groupsock/include -DMPG12PLAY -o osd.o osd.c
/tmp/ccVlxCnc.s: Assembler messages:
/tmp/ccVlxCnc.s:2420: Error: can't encode register '%ch' in an
instruction requiring REX prefix.
/tmp/ccVlxCnc.s:2421: Error: can't encode register '%ah' in an
instruction requiring REX prefix.
/tmp/ccVlxCnc.s:2422: Error: can't encode register '%dh' in an
instruction requiring REX prefix.
make[2]: *** [osd.o] Error 1

I traced this back to the file libvo/osd_template.c

In this file, is the offending article at lines 417-445

#else /* HAVE_MMX */
    for(x=0;x<w;x++){
        if(srca[x]){
	    asm volatile(
		"movzbl (%0), %%ecx\n\t"
		"movzbl 1(%0), %%eax\n\t"
		"movzbl 2(%0), %%edx\n\t"

		"imull %1, %%ecx\n\t"
		"imull %1, %%eax\n\t"
		"imull %1, %%edx\n\t"

 		"addl %2, %%ecx\n\t"
		"addl %2, %%eax\n\t"
		"addl %2, %%edx\n\t"

		"movb %%ch, (%0)\n\t"
		"movb %%ah, 1(%0)\n\t"
		"movb %%dh, 2(%0)\n\t"

		:
		:"r" (&dstbase[4*x]),
		 "r" ((unsigned)srca[x]),
		 "r" (((unsigned)src[x])<<8)
		:"%eax", "%ecx", "%edx"
		);
            }
        }
#endif /* HAVE_MMX */

%ch, %dh and %ah registers are not used in x86_64.

Should I just comment out this section, or has somebody come up with a
patch already?

Thanks



More information about the MPlayer-users mailing list