aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i386/i386/fpu.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/i386/i386/fpu.h b/i386/i386/fpu.h
index 02b67066..51e0f31d 100644
--- a/i386/i386/fpu.h
+++ b/i386/i386/fpu.h
@@ -132,10 +132,14 @@ static inline void set_xcr0(uint64_t value) {
, "d" ((unsigned) (fp_xsave_support >> 32)))
#define xrstor(state) \
- asm volatile("xrstor %0" : : "m" (state))
+ asm volatile("xrstor %0" : : "m" (state) \
+ , "a" ((unsigned) fp_xsave_support) \
+ , "d" ((unsigned) (fp_xsave_support >> 32)))
#define xrstors(state) \
- asm volatile("xrstors %0" : : "m" (state))
+ asm volatile("xrstors %0" : : "m" (state) \
+ , "a" ((unsigned) fp_xsave_support) \
+ , "d" ((unsigned) (fp_xsave_support >> 32)))
#define fwait() \
asm("fwait");