diff options
author | jkim <jkim@FreeBSD.org> | 2010-07-26 22:16:36 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-07-26 22:16:36 +0000 |
commit | c9cd4250bdabd161203cbfa1bd8fa9d74834a3b7 (patch) | |
tree | 2e3a84c1c28bd3c643f5610084ace25064106bec /sys/amd64/amd64/fpu.c | |
parent | 13f6efd22794a5a17e35239bfcce7c0cb5f70b1d (diff) | |
download | FreeBSD-src-c9cd4250bdabd161203cbfa1bd8fa9d74834a3b7.zip FreeBSD-src-c9cd4250bdabd161203cbfa1bd8fa9d74834a3b7.tar.gz |
Reduce diff against fenv.h:
Mark all inline asms as volatile for safety. No object file change after
this commit (verified with md5).
Diffstat (limited to 'sys/amd64/amd64/fpu.c')
-rw-r--r-- | sys/amd64/amd64/fpu.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/amd64/amd64/fpu.c b/sys/amd64/amd64/fpu.c index 2d4e41e..03e3b33 100644 --- a/sys/amd64/amd64/fpu.c +++ b/sys/amd64/amd64/fpu.c @@ -65,17 +65,18 @@ __FBSDID("$FreeBSD$"); #if defined(__GNUCLIKE_ASM) && !defined(lint) -#define fldcw(addr) __asm("fldcw %0" : : "m" (*(addr))) -#define fnclex() __asm("fnclex") -#define fninit() __asm("fninit") +#define fldcw(addr) __asm __volatile("fldcw %0" : : "m" (*(addr))) +#define fnclex() __asm __volatile("fnclex") +#define fninit() __asm __volatile("fninit") #define fnstcw(addr) __asm __volatile("fnstcw %0" : "=m" (*(addr))) #define fnstsw(addr) __asm __volatile("fnstsw %0" : "=am" (*(addr))) -#define fxrstor(addr) __asm("fxrstor %0" : : "m" (*(addr))) +#define fxrstor(addr) __asm __volatile("fxrstor %0" : : "m" (*(addr))) #define fxsave(addr) __asm __volatile("fxsave %0" : "=m" (*(addr))) #define ldmxcsr(r) __asm __volatile("ldmxcsr %0" : : "m" (r)) -#define start_emulating() __asm("smsw %%ax; orb %0,%%al; lmsw %%ax" \ - : : "n" (CR0_TS) : "ax") -#define stop_emulating() __asm("clts") +#define start_emulating() __asm __volatile( \ + "smsw %%ax; orb %0,%%al; lmsw %%ax" \ + : : "n" (CR0_TS) : "ax") +#define stop_emulating() __asm __volatile("clts") #else /* !(__GNUCLIKE_ASM && !lint) */ |