aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/i387.h
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2005-02-22 23:04:40 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2005-02-22 23:04:40 +0000
commit4ddaeb24b5eb996bba6b05e69b5c6584fb1fcc3f (patch)
tree7f48fbce691000f79d9d9f5ea2e941a75235c0ea /xen/include/asm-x86/i387.h
parent2a022479a2cf44b2de5b79bc1865d7224eb79d0c (diff)
downloadxen-4ddaeb24b5eb996bba6b05e69b5c6584fb1fcc3f.tar.gz
xen-4ddaeb24b5eb996bba6b05e69b5c6584fb1fcc3f.tar.bz2
xen-4ddaeb24b5eb996bba6b05e69b5c6584fb1fcc3f.zip
bitkeeper revision 1.1236.1.1 (421bba88ZaitlU4qEVN6Xp2WKaq8Vg)
FPU fixes. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/include/asm-x86/i387.h')
-rw-r--r--xen/include/asm-x86/i387.h25
1 files changed, 9 insertions, 16 deletions
diff --git a/xen/include/asm-x86/i387.h b/xen/include/asm-x86/i387.h
index a09422d74f..9f6bb78b90 100644
--- a/xen/include/asm-x86/i387.h
+++ b/xen/include/asm-x86/i387.h
@@ -15,24 +15,17 @@
#include <asm/processor.h>
extern void init_fpu(void);
-extern void save_init_fpu( struct exec_domain *tsk );
-extern void restore_fpu( struct exec_domain *tsk );
+extern void save_init_fpu(struct exec_domain *tsk);
+extern void restore_fpu(struct exec_domain *tsk);
-#define unlazy_fpu( tsk ) do { \
- if ( test_bit(EDF_USEDFPU, &tsk->ed_flags) ) \
- save_init_fpu( tsk ); \
-} while (0)
-
-#define clear_fpu( tsk ) do { \
- if ( test_and_clear_bit(EDF_USEDFPU, &tsk->ed_flags) ) { \
- asm volatile("fwait"); \
- stts(); \
- } \
-} while (0)
+#define unlazy_fpu(_tsk) do { \
+ if ( test_bit(EDF_USEDFPU, &(_tsk)->ed_flags) ) \
+ save_init_fpu(_tsk); \
+} while ( 0 )
#define load_mxcsr( val ) do { \
- unsigned long __mxcsr = ((unsigned long)(val) & 0xffbf); \
- asm volatile( "ldmxcsr %0" : : "m" (__mxcsr) ); \
-} while (0)
+ unsigned long __mxcsr = ((unsigned long)(val) & 0xffbf); \
+ __asm__ __volatile__ ( "ldmxcsr %0" : : "m" (__mxcsr) ); \
+} while ( 0 )
#endif /* __ASM_I386_I387_H */