Author: kib
Date: Tue Feb 21 20:29:38 2012
New Revision: 231977
URL: http://svn.freebsd.org/changeset/base/231977

Log:
  MFC r230538:
  Order newly added functions alphabetically.
  
  MFC r230766:
  Move xrstor/xsave/xsetbv into fpu.c and reorder them.

Modified:
  stable/9/sys/amd64/amd64/fpu.c
  stable/9/sys/amd64/include/cpufunc.h
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/amd64/amd64/fpu.c
==============================================================================
--- stable/9/sys/amd64/amd64/fpu.c      Tue Feb 21 19:40:13 2012        
(r231976)
+++ stable/9/sys/amd64/amd64/fpu.c      Tue Feb 21 20:29:38 2012        
(r231977)
@@ -78,6 +78,41 @@ __FBSDID("$FreeBSD$");
                                    : : "n" (CR0_TS) : "ax")
 #define        stop_emulating()        __asm __volatile("clts")
 
+static __inline void
+xrstor(char *addr, uint64_t mask)
+{
+       uint32_t low, hi;
+
+       low = mask;
+       hi = mask >> 32;
+       /* xrstor (%rdi) */
+       __asm __volatile(".byte 0x0f,0xae,0x2f" : :
+           "a" (low), "d" (hi), "D" (addr));
+}
+
+static __inline void
+xsave(char *addr, uint64_t mask)
+{
+       uint32_t low, hi;
+
+       low = mask;
+       hi = mask >> 32;
+       /* xsave (%rdi) */
+       __asm __volatile(".byte 0x0f,0xae,0x27" : :
+           "a" (low), "d" (hi), "D" (addr) : "memory");
+}
+
+static __inline void
+xsetbv(uint32_t reg, uint64_t val)
+{
+       uint32_t low, hi;
+
+       low = val;
+       hi = val >> 32;
+       __asm __volatile(".byte 0x0f,0x01,0xd1" : :
+           "c" (reg), "a" (low), "d" (hi));
+}
+
 #else  /* !(__GNUCLIKE_ASM && !lint) */
 
 void   fldcw(u_short cw);
@@ -90,6 +125,9 @@ void fxrstor(caddr_t addr);
 void   ldmxcsr(u_int csr);
 void   start_emulating(void);
 void   stop_emulating(void);
+void   xrstor(char *addr, uint64_t mask);
+void   xsave(char *addr, uint64_t mask);
+void   xsetbv(uint32_t reg, uint64_t val);
 
 #endif /* __GNUCLIKE_ASM && !lint */
 

Modified: stable/9/sys/amd64/include/cpufunc.h
==============================================================================
--- stable/9/sys/amd64/include/cpufunc.h        Tue Feb 21 19:40:13 2012        
(r231976)
+++ stable/9/sys/amd64/include/cpufunc.h        Tue Feb 21 20:29:38 2012        
(r231977)
@@ -669,41 +669,6 @@ intr_restore(register_t rflags)
        write_rflags(rflags);
 }
 
-static __inline void
-xsetbv(uint32_t reg, uint64_t val)
-{
-       uint32_t low, hi;
-
-       low = val;
-       hi = val >> 32;
-       __asm __volatile(".byte 0x0f,0x01,0xd1" : :
-           "c" (reg), "a" (low), "d" (hi));
-}
-
-static __inline void
-xsave(char *addr, uint64_t mask)
-{
-       uint32_t low, hi;
-
-       low = mask;
-       hi = mask >> 32;
-       /* xsave (%rdi) */
-       __asm __volatile(".byte 0x0f,0xae,0x27" : :
-           "a" (low), "d" (hi), "D" (addr) : "memory");
-}
-
-static __inline void
-xrstor(char *addr, uint64_t mask)
-{
-       uint32_t low, hi;
-
-       low = mask;
-       hi = mask >> 32;
-       /* xrstor (%rdi) */
-       __asm __volatile(".byte 0x0f,0xae,0x2f" : :
-           "a" (low), "d" (hi), "D" (addr));
-}
-
 #else /* !(__GNUCLIKE_ASM && __CC_SUPPORTS___INLINE) */
 
 int    breakpoint(void);
@@ -768,9 +733,6 @@ u_int       rgs(void);
 void   wbinvd(void);
 void   write_rflags(u_int rf);
 void   wrmsr(u_int msr, uint64_t newval);
-void   xsetbv(uint32_t reg, uint64_t val);
-void   xsave(char *addr, uint64_t mask);
-void   xrstor(char *addr, uint64_t mask);
 
 #endif /* __GNUCLIKE_ASM && __CC_SUPPORTS___INLINE */
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to