Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Apr 2003 00:59:45 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 28416 for review
Message-ID:  <200304070759.h377xjPb050730@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=28416

Change 28416 by peter@peter_overcee on 2003/04/07 00:58:49

	add 8-byte PCPU* implementation

Affected files ...

.. //depot/projects/hammer/sys/x86_64/include/pcpu.h#6 edit

Differences ...

==== //depot/projects/hammer/sys/x86_64/include/pcpu.h#6 (text+ko) ====

@@ -104,6 +104,12 @@
 		    : "=r" (__i)					\
 		    : "m" (*(u_int *)(__pcpu_offset(name))));		\
 		__result = *(__pcpu_type(name) *)&__i;			\
+	} else if (sizeof(__result) == 8) {				\
+		u_long __l;						\
+		__asm __volatile("movq %%fs:%1,%0"			\
+		    : "=r" (__l)					\
+		    : "m" (*(u_long *)(__pcpu_offset(name))));		\
+		__result = *(__pcpu_type(name) *)&__l;			\
 	} else {							\
 		__result = *__PCPU_PTR(name);				\
 	}								\
@@ -135,6 +141,12 @@
 		__asm __volatile("movl %1,%%fs:%0"			\
 		    : "=m" (*(u_int *)(__pcpu_offset(name)))		\
 		    : "r" (__i));					\
+	} else if (sizeof(__val) == 8) {				\
+		u_long __l;						\
+		__l = *(u_long *)&__val;				\
+		__asm __volatile("movq %1,%%fs:%0"			\
+		    : "=m" (*(u_long *)(__pcpu_offset(name)))		\
+		    : "r" (__l));					\
 	} else {							\
 		*__PCPU_PTR(name) = __val;				\
 	}								\



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304070759.h377xjPb050730>