diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2005-02-22 23:04:40 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2005-02-22 23:04:40 +0000 |
commit | 4ddaeb24b5eb996bba6b05e69b5c6584fb1fcc3f (patch) | |
tree | 7f48fbce691000f79d9d9f5ea2e941a75235c0ea /xen/include/asm-x86/i387.h | |
parent | 2a022479a2cf44b2de5b79bc1865d7224eb79d0c (diff) | |
download | xen-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.h | 25 |
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 */ |