From owner-svn-src-projects@FreeBSD.ORG Fri Dec 7 20:09:28 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 453D4492; Fri, 7 Dec 2012 20:09:28 +0000 (UTC) (envelope-from jkim@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 111BB8FC0C; Fri, 7 Dec 2012 20:09:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qB7K9RgW074331; Fri, 7 Dec 2012 20:09:27 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qB7K9Rqx074328; Fri, 7 Dec 2012 20:09:27 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201212072009.qB7K9Rqx074328@svn.freebsd.org> From: Jung-uk Kim Date: Fri, 7 Dec 2012 20:09:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r243990 - projects/bpfjit/sys/contrib/sljit 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: Fri, 07 Dec 2012 20:09:28 -0000 Author: jkim Date: Fri Dec 7 20:09:27 2012 New Revision: 243990 URL: http://svnweb.freebsd.org/changeset/base/243990 Log: Implement the SLJIT_CACHE_FLUSH() macro for arm, mips, and powerpc. It was only compile-tested on powerpc. arm and mips are just my blunt guesswork. Discussed with: nwhitehorn (powerpc) Modified: projects/bpfjit/sys/contrib/sljit/sljitConfig.h projects/bpfjit/sys/contrib/sljit/sljitNativePPC_common.c Modified: projects/bpfjit/sys/contrib/sljit/sljitConfig.h ============================================================================== --- projects/bpfjit/sys/contrib/sljit/sljitConfig.h Fri Dec 7 19:06:40 2012 (r243989) +++ projects/bpfjit/sys/contrib/sljit/sljitConfig.h Fri Dec 7 20:09:27 2012 (r243990) @@ -38,8 +38,17 @@ #ifdef _KERNEL #include +#include #include +#if defined(__arm__) +#include +#elif defined(__mips__) +#include +#elif defined(__powerpc__) +#include +#endif + #define SLJIT_CALL #define SLJIT_CONFIG_AUTO 1 #define SLJIT_DEBUG 0 @@ -58,7 +67,16 @@ #define SLJIT_FREE_EXEC(ptr) free(ptr, M_TEMP) #define SLJIT_MALLOC_EXEC(size) malloc(size, M_TEMP, M_NOWAIT) -/* XXX need SLJIT_CACHE_FLUSH(from, to) for non-X86 to flush icache */ +#if defined(__arm__) +#define SLJIT_CACHE_FLUSH(from, to) \ + cpu_icache_sync_range(from, (ptrdiff_t)(to) - (ptrdiff_t)(from)) +#elif defined(__mips__) +#define SLJIT_CACHE_FLUSH(from, to) \ + mips_icache_sync_range(from, (ptrdiff_t)(to) - (ptrdiff_t)(from)) +#elif defined(__powerpc__) +/* ppc_cache_flush() was modified to call __syncicache(). */ +#define SLJIT_CACHE_FLUSH(from, to) ppc_cache_flush(from, to) +#endif #endif /* --------------------------------------------------------------------- */ Modified: projects/bpfjit/sys/contrib/sljit/sljitNativePPC_common.c ============================================================================== --- projects/bpfjit/sys/contrib/sljit/sljitNativePPC_common.c Fri Dec 7 19:06:40 2012 (r243989) +++ projects/bpfjit/sys/contrib/sljit/sljitNativePPC_common.c Fri Dec 7 20:09:27 2012 (r243990) @@ -41,6 +41,8 @@ static void ppc_cache_flush(sljit_ins *f { #ifdef _AIX _sync_cache_range((caddr_t)from, (int)((size_t)to - (size_t)from)); +#elif defined(__FreeBSD__) && defined(_KERNEL) + __syncicache(from, (ptrdiff_t)to - (ptrdiff_t)from); #elif defined(__GNUC__) || (defined(__IBM_GCC_ASM) && __IBM_GCC_ASM) # if defined(_ARCH_PWR) || defined(_ARCH_PWR2) /* Cache flush for POWER architecture. */