From owner-cvs-src@FreeBSD.ORG Thu Apr 3 10:43:41 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E495437B401; Thu, 3 Apr 2003 10:43:40 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9559743FBD; Thu, 3 Apr 2003 10:43:40 -0800 (PST) (envelope-from jake@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h33Ihe0U072553; Thu, 3 Apr 2003 10:43:40 -0800 (PST) (envelope-from jake@repoman.freebsd.org) Received: (from jake@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h33Ihep9072552; Thu, 3 Apr 2003 10:43:40 -0800 (PST) Message-Id: <200304031843.h33Ihep9072552@repoman.freebsd.org> From: Jake Burkholder Date: Thu, 3 Apr 2003 10:43:40 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/sparc64/include cpufunc.hsrc/sys/sparc64/sparc64 support.S X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Apr 2003 18:43:42 -0000 jake 2003/04/03 10:43:40 PST FreeBSD src repository Modified files: sys/sparc64/include cpufunc.h sys/sparc64/sparc64 support.S Log: Add optimized block copy and zero functions using vis instructions, which can do 64 bytes at a time and don't allocate lines in the L2 cache. These assume that everything is 64 byte aligned, and that there's more than 128 bytes of data (best for whole pages). The block load and store instructions don't follow normal memory ordering rules and require either a memory barrier or move between registers before the data can actually be used. This implementation correctly shuffles around 3 out of the 4 sets of registers in order to avoid memory barriers expect for the last 2 blocks. Revision Changes Path 1.15 +3 -0 src/sys/sparc64/include/cpufunc.h 1.21 +137 -0 src/sys/sparc64/sparc64/support.S