Subject: Re: pkg/25867
To: None <jmmv@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: pkgsrc-bugs
Date: 05/08/2005 01:49:01
The following reply was made to PR pkg/25867; it has been noted by GNATS.

From: "Jeremy C. Reed" <reed@reedmedia.net>
To: gnats-bugs@netbsd.org
Cc: shannonjr@NetBSD.org
Subject: Re: pkg/25867
Date: Sat, 7 May 2005 18:48:35 -0700 (PDT)

 Hey John,
 
 Can you try these patches? I retrieved these from xine CVS at sourceforge.
 
 This is for gcc 3.4.2 on FreeBSD 5.3.
 
 This is my patch-ak and patch-an:
 
 $NetBSD$
 Support --enable-fpic with recent versions of gcc.
 From xine cvs.
 
 --- src/post/goom/mmx.h.orig	Sat May  7 18:00:46 2005
 +++ src/post/goom/mmx.h	Sat May  7 18:01:45 2005
 @@ -72,6 +72,7 @@
  	register int rval = 0;
 
  	__asm__ __volatile__ (
 +		"push %%ebx\n\t"
  		/* See if CPUID instruction is supported ... */
  		/* ... Get copies of EFLAGS into eax and ecx */
  		"pushf\n\t"
 @@ -214,9 +215,10 @@
  		"movl $0, %0\n\n\t"
 
  		"Return:\n\t"
 +		"pop %%ebx\n\t"
  		: "=X" (rval)
  		: /* no input */
 -		: "eax", "ebx", "ecx", "edx"
 +		: "eax", "ecx", "edx"
  	);
 
  	/* Return */
 
 
 $NetBSD$
 Support --enable-fpic with recent versions of gcc.
 From xine cvs.
 
 --- src/post/goom/xmmx.c.orig	Sat May  7 18:06:07 2005
 +++ src/post/goom/xmmx.c	Sat May  7 18:06:59 2005
 @@ -112,23 +112,23 @@
  		 * post : mm3 & mm4 : coefs for this position
  		 *              mm1 : X vector [0|X]
  		 *
 -		 * modif : eax,ebx
 +		 * modif : eax,ecx
  		 */
  		__asm__ __volatile__ (
 -			"movd %%mm0,%%ebx\n"
 +			"movd %%mm0,%%ecx\n"
  			"movq %%mm0,%%mm1\n"
 
 -			"andl $15,%%ebx\n"
 +			"andl $15,%%ecx\n"
  			"psrlq $32,%%mm1\n"
 
 -			"shll $6,%%ebx\n"
 +			"shll $6,%%ecx\n"
  			"movd %%mm1,%%eax\n"
 
 -			"addl %0,%%ebx\n"
 +			"addl %0,%%ecx\n"
  			"andl $15,%%eax\n"
 
 -			"movd (%%ebx,%%eax,4),%%mm3\n"
 -			::"g"(precalCoef):"eax","ebx");
 +			"movd (%%ecx,%%eax,4),%%mm3\n"
 +			::"g"(precalCoef):"eax","ecx");
 
  		/*
  		 * extraction des coefficients...
 @@ -158,7 +158,7 @@
  		 * post : mm0 : expix1[position]
  		 *        mm2 : expix1[position+largeur]
  		 *
 -		 * modif : eax,ebx
 +		 * modif : eax,ecx
  		 */
  		psrld_i2r (PERTEDEC,mm0);
  		psrld_i2r (PERTEDEC,mm1);
 @@ -167,23 +167,23 @@
  			/*^*/ "movq %%mm3,%%mm5\n"       /*^*/
 
  			"mull %1\n"
 -			"movd %%mm0,%%ebx\n"
 +			"movd %%mm0,%%ecx\n"
  			/*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
 
 -			"addl %%ebx,%%eax\n"
 +			"addl %%ecx,%%eax\n"
  			/*^*/ "movq %%mm3,%%mm4\n"       /*^*/
  			/*^*/ "movq %%mm3,%%mm5\n"       /*^*/
 
 -			"movl %0,%%ebx\n"
 +			"movl %0,%%ecx\n"
  			/*^*/ "punpcklbw %%mm5,%%mm3\n"  /*^*/
 
 -			"movq (%%ebx,%%eax,4),%%mm0\n"
 +			"movq (%%ecx,%%eax,4),%%mm0\n"
  			/*^*/ "punpckhbw %%mm5,%%mm4\n"  /*^*/
 
  			"addl %1,%%eax\n"
 -			"movq (%%ebx,%%eax,4),%%mm2\n"
 +			"movq (%%ecx,%%eax,4),%%mm2\n"
 
 -			: : "X"(expix1), "X"(prevX):"eax","ebx"
 +			: : "X"(expix1), "X"(prevX):"eax","ecx"
  		);
 
  		/*
 
 
 
 I have three more patches too (patch-aj, patch-af, patch-al), but not
 related. If you are interested:
 http://pilchuck.reedmedia.net/jeremy/tmp-th4ry8x5mnwhtu/more-xine-patches
 
 
  Jeremy C. Reed
 
  	  	 	 BSD News, BSD tutorials, BSD links
 	  	 	 http://www.bsdnewsletter.com/