Author: rstone
Date: Fri Mar  8 21:03:35 2013
New Revision: 248071
URL: http://svnweb.freebsd.org/changeset/base/248071

Log:
  MFC r226452 (by marcel@)
  
    Define dtrace_cmpset_long in terms of atomic_cmpset_long
    and not by virtue of inline assembly. Now this file
    compiles on all supported architectures.

Modified:
  stable/9/sys/cddl/dev/dtrace/dtrace_debug.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/cddl/dev/dtrace/dtrace_debug.c
==============================================================================
--- stable/9/sys/cddl/dev/dtrace/dtrace_debug.c Fri Mar  8 20:33:50 2013        
(r248070)
+++ stable/9/sys/cddl/dev/dtrace/dtrace_debug.c Fri Mar  8 21:03:35 2013        
(r248071)
@@ -31,49 +31,9 @@
 
 #ifdef DEBUG
 
-#if defined(__amd64__)
-static __inline int
-dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
-{
-       u_char res;
-
-       __asm __volatile(
-       "        lock ;                 "
-       "       cmpxchgq %2,%1 ;        "
-       "       sete    %0 ;            "
-       "1:                             "
-       "# dtrace_cmpset_long"
-       : "=a" (res),                   /* 0 */
-         "=m" (*dst)                   /* 1 */
-       : "r" (src),                    /* 2 */
-         "a" (exp),                    /* 3 */
-         "m" (*dst)                    /* 4 */
-       : "memory");
-
-       return (res);
-}
-#elif defined(__i386__)
-static __inline int
-dtrace_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
-{
-       u_char res;
-
-       __asm __volatile(
-       "        lock ;                 "
-       "       cmpxchgl %2,%1 ;        "
-       "       sete    %0 ;            "
-       "1:                             "
-       "# dtrace_cmpset_long"
-       : "=a" (res),                   /* 0 */
-         "=m" (*dst)                   /* 1 */
-       : "r" (src),                    /* 2 */
-         "a" (exp),                    /* 3 */
-         "m" (*dst)                    /* 4 */
-       : "memory");
+#include <machine/atomic.h>
 
-       return (res);
-}
-#endif
+#define        dtrace_cmpset_long      atomic_cmpset_long
 
 #define DTRACE_DEBUG_BUFR_SIZE (32 * 1024)
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to