Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jul 2010 21:24:52 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r210517 - in head/sys: amd64/amd64 i386/isa
Message-ID:  <201007262124.o6QLOqOP089646@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007262124.o6QLOqOP089646>