From owner-cvs-src-old@FreeBSD.ORG Thu Apr 7 00:00:49 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ABF941065700 for ; Thu, 7 Apr 2011 00:00:49 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B4778FC15 for ; Thu, 7 Apr 2011 00:00:49 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p3700nuM026271 for ; Thu, 7 Apr 2011 00:00:49 GMT (envelope-from jkim@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p3700n1j026270 for cvs-src-old@freebsd.org; Thu, 7 Apr 2011 00:00:49 GMT (envelope-from jkim@repoman.freebsd.org) Message-Id: <201104070000.p3700n1j026270@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jkim@repoman.freebsd.org using -f From: Jung-uk Kim Date: Wed, 6 Apr 2011 23:59:59 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/i386/i386 machdep.c src/sys/i386/include atomic.h src/sys/pc98/pc98 machdep.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2011 00:00:49 -0000 jkim 2011-04-06 23:59:59 UTC FreeBSD src repository Modified files: sys/i386/i386 machdep.c sys/i386/include atomic.h sys/pc98/pc98 machdep.c Log: SVN rev 220404 on 2011-04-06 23:59:59Z by jkim Implement atomic_load_acq_64(9) and atomic_store_rel_64(9) for i386. These functions are implemented with CMPXCHG8B instruction where it is available, i. e., all Pentium-class and later processors. Note this instruction is also used for atomic_store_rel_64() because a simple XCHG-like instruction for 64-bit memory access does not exist, unfortunately. If the processor lacks the instruction, i. e., 80486-class CPUs, two 32-bit load/store are performed with interrupt temporarily disabled, assuming it does not support SMP. Although this assumption may be little naive, it is true in reality. This implementation is inspired by Linux. Revision Changes Path 1.727 +18 -0 src/sys/i386/i386/machdep.c 1.57 +86 -0 src/sys/i386/include/atomic.h 1.444 +17 -0 src/sys/pc98/pc98/machdep.c