From owner-svn-src-projects@FreeBSD.ORG Sat Mar 16 17:38:59 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id EF9FDF7D; Sat, 16 Mar 2013 17:38:59 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id DD09EAD7; Sat, 16 Mar 2013 17:38:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2GHcxgt043912; Sat, 16 Mar 2013 17:38:59 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2GHcx5l043911; Sat, 16 Mar 2013 17:38:59 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201303161738.r2GHcx5l043911@svn.freebsd.org> From: Gleb Smirnoff Date: Sat, 16 Mar 2013 17:38:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r248380 - projects/counters/sys/sparc64/include X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Mar 2013 17:39:00 -0000 Author: glebius Date: Sat Mar 16 17:38:59 2013 New Revision: 248380 URL: http://svnweb.freebsd.org/changeset/base/248380 Log: Revert accidentially committed incorrect attempt. Modified: projects/counters/sys/sparc64/include/counter.h Modified: projects/counters/sys/sparc64/include/counter.h ============================================================================== --- projects/counters/sys/sparc64/include/counter.h Sat Mar 16 17:09:44 2013 (r248379) +++ projects/counters/sys/sparc64/include/counter.h Sat Mar 16 17:38:59 2013 (r248380) @@ -30,43 +30,17 @@ #define __MACHINE_COUNTER_H__ #include -#include -#include -extern char pcpu0[1]; - -static inline void +static __inline void counter_u64_inc(counter_u64_t c, uint64_t inc) { - __asm __volatile( - "add %" __XSTRING(PCPU_REG) ", %0, %%g1\n\t" - "ldx [%%g1], %%g3\n\t" -"1:\n\t" - "mov %%g3, %%g2\n\t" - "add %%g2, %1, %%g3\n\t" - "casxa [%%g1] " __XSTRING(ASI_N) " , %%g2, %%g3\n\t" - "bne,pn %%xcc, 1b\n\t" - " cmp %%g2, %%g3\n\t" - : - : "r" ((char *)c - pcpu0), "r" (inc) - : "memory", "cc", "g1", "g2", "g3"); - -#if 0 - __asm __volatile( - "wrpr %%g0, %2, %%pstate\n\t" - "ldx [%" __XSTRING(PCPU_REG) " + %0], %%g2\n\t" - "add %%g2, %1, %%g1\n\t" - "stx %%g1, [%" __XSTRING(PCPU_REG) " + %0]\n\t" - "wrpr %%g0, %3, %%pstate\n\t" - : - : "r" ((char *)c - pcpu0), "r" (inc), - "i" (PSTATE_NORMAL), "i" (PSTATE_KERNEL) - : "memory", "cc", "g2", "g1"); -#endif + critical_enter(); + *(uint64_t *)((char *)c + sizeof(struct pcpu) * curcpu) += inc; + critical_exit(); } -static inline void +static __inline void counter_u64_dec(counter_u64_t c, uint64_t dec) {