svn commit: r210517 - in head/sys: amd64/amd64 i386/isa

Jung-uk Kim jkim at FreeBSD.org
Mon Jul 26 21:24:52 UTC 2010


Author: jkim
Date: Mon Jul 26 21:24:52 2010
New Revision: 210517
URL: http://svn.freebsd.org/changeset/base/210517

Log:
  FNSTSW instruction can use AX register as an operand.
  
  Obtained from:	fenv.h

Modified:
  head/sys/amd64/amd64/fpu.c
  head/sys/i386/isa/npx.c

Modified: head/sys/amd64/amd64/fpu.c
==============================================================================
--- head/sys/amd64/amd64/fpu.c	Mon Jul 26 21:22:57 2010	(r210516)
+++ head/sys/amd64/amd64/fpu.c	Mon Jul 26 21:24:52 2010	(r210517)
@@ -69,7 +69,7 @@ __FBSDID("$FreeBSD$");
 #define	fnclex()		__asm("fnclex")
 #define	fninit()		__asm("fninit")
 #define	fnstcw(addr)		__asm __volatile("fnstcw %0" : "=m" (*(addr)))
-#define	fnstsw(addr)		__asm __volatile("fnstsw %0" : "=m" (*(addr)))
+#define	fnstsw(addr)		__asm __volatile("fnstsw %0" : "=am" (*(addr)))
 #define	fxrstor(addr)		__asm("fxrstor %0" : : "m" (*(addr)))
 #define	fxsave(addr)		__asm __volatile("fxsave %0" : "=m" (*(addr)))
 #define	ldmxcsr(r)		__asm __volatile("ldmxcsr %0" : : "m" (r))

Modified: head/sys/i386/isa/npx.c
==============================================================================
--- head/sys/i386/isa/npx.c	Mon Jul 26 21:22:57 2010	(r210516)
+++ head/sys/i386/isa/npx.c	Mon Jul 26 21:24:52 2010	(r210517)
@@ -92,7 +92,7 @@ __FBSDID("$FreeBSD$");
 #define	fninit()		__asm("fninit")
 #define	fnsave(addr)		__asm __volatile("fnsave %0" : "=m" (*(addr)))
 #define	fnstcw(addr)		__asm __volatile("fnstcw %0" : "=m" (*(addr)))
-#define	fnstsw(addr)		__asm __volatile("fnstsw %0" : "=m" (*(addr)))
+#define	fnstsw(addr)		__asm __volatile("fnstsw %0" : "=am" (*(addr)))
 #define	fp_divide_by_0()	__asm("fldz; fld1; fdiv %st,%st(1); fnop")
 #define	frstor(addr)		__asm("frstor %0" : : "m" (*(addr)))
 #ifdef CPU_ENABLE_SSE


More information about the svn-src-all mailing list