1*94e7edb1Slucy wang - Sun Microsystems - Beijing China /* 2*94e7edb1Slucy wang - Sun Microsystems - Beijing China * CDDL HEADER START 3*94e7edb1Slucy wang - Sun Microsystems - Beijing China * 4*94e7edb1Slucy wang - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the 5*94e7edb1Slucy wang - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License"). 6*94e7edb1Slucy wang - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License. 7*94e7edb1Slucy wang - Sun Microsystems - Beijing China * 8*94e7edb1Slucy wang - Sun Microsystems - Beijing China * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*94e7edb1Slucy wang - Sun Microsystems - Beijing China * or http://www.opensolaris.org/os/licensing. 10*94e7edb1Slucy wang - Sun Microsystems - Beijing China * See the License for the specific language governing permissions 11*94e7edb1Slucy wang - Sun Microsystems - Beijing China * and limitations under the License. 12*94e7edb1Slucy wang - Sun Microsystems - Beijing China * 13*94e7edb1Slucy wang - Sun Microsystems - Beijing China * When distributing Covered Code, include this CDDL HEADER in each 14*94e7edb1Slucy wang - Sun Microsystems - Beijing China * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*94e7edb1Slucy wang - Sun Microsystems - Beijing China * If applicable, add the following below this CDDL HEADER, with the 16*94e7edb1Slucy wang - Sun Microsystems - Beijing China * fields enclosed by brackets "[]" replaced with your own identifying 17*94e7edb1Slucy wang - Sun Microsystems - Beijing China * information: Portions Copyright [yyyy] [name of copyright owner] 18*94e7edb1Slucy wang - Sun Microsystems - Beijing China * 19*94e7edb1Slucy wang - Sun Microsystems - Beijing China * CDDL HEADER END 20*94e7edb1Slucy wang - Sun Microsystems - Beijing China */ 21*94e7edb1Slucy wang - Sun Microsystems - Beijing China 22*94e7edb1Slucy wang - Sun Microsystems - Beijing China /* 23*94e7edb1Slucy wang - Sun Microsystems - Beijing China * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24*94e7edb1Slucy wang - Sun Microsystems - Beijing China * Use is subject to license terms. 25*94e7edb1Slucy wang - Sun Microsystems - Beijing China */ 26*94e7edb1Slucy wang - Sun Microsystems - Beijing China 27*94e7edb1Slucy wang - Sun Microsystems - Beijing China #ifndef _ASM_CPU_H 28*94e7edb1Slucy wang - Sun Microsystems - Beijing China #define _ASM_CPU_H 29*94e7edb1Slucy wang - Sun Microsystems - Beijing China 30*94e7edb1Slucy wang - Sun Microsystems - Beijing China #include <sys/types.h> 31*94e7edb1Slucy wang - Sun Microsystems - Beijing China 32*94e7edb1Slucy wang - Sun Microsystems - Beijing China #ifdef __cplusplus 33*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern "C" { 34*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif 35*94e7edb1Slucy wang - Sun Microsystems - Beijing China 36*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if !defined(__lint) && defined(__GNUC__) 37*94e7edb1Slucy wang - Sun Microsystems - Beijing China 38*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void 39*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_read_many(void *addr) 40*94e7edb1Slucy wang - Sun Microsystems - Beijing China { 41*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9) 42*94e7edb1Slucy wang - Sun Microsystems - Beijing China __asm__ __volatile__( 43*94e7edb1Slucy wang - Sun Microsystems - Beijing China "prefetch [%0],#n_reads\n\t" 44*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "=r" (addr) 45*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "0" (addr)); 46*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else 47*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error "port me" 48*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif 49*94e7edb1Slucy wang - Sun Microsystems - Beijing China } 50*94e7edb1Slucy wang - Sun Microsystems - Beijing China 51*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void 52*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_read_once(void *addr) 53*94e7edb1Slucy wang - Sun Microsystems - Beijing China { 54*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9) 55*94e7edb1Slucy wang - Sun Microsystems - Beijing China __asm__ __volatile__( 56*94e7edb1Slucy wang - Sun Microsystems - Beijing China "prefetch [%0],#one_read\n\t" 57*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "=r" (addr) 58*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "0" (addr)); 59*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else 60*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error "port me" 61*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif 62*94e7edb1Slucy wang - Sun Microsystems - Beijing China } 63*94e7edb1Slucy wang - Sun Microsystems - Beijing China 64*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void 65*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_write_many(void *addr) 66*94e7edb1Slucy wang - Sun Microsystems - Beijing China { 67*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9) 68*94e7edb1Slucy wang - Sun Microsystems - Beijing China __asm__ __volatile__( 69*94e7edb1Slucy wang - Sun Microsystems - Beijing China "prefetch [%0],#n_writes\n\t" 70*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "=r" (addr) 71*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "0" (addr)); 72*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else 73*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error "port me" 74*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif 75*94e7edb1Slucy wang - Sun Microsystems - Beijing China } 76*94e7edb1Slucy wang - Sun Microsystems - Beijing China 77*94e7edb1Slucy wang - Sun Microsystems - Beijing China extern __inline__ void 78*94e7edb1Slucy wang - Sun Microsystems - Beijing China prefetch_write_once(void *addr) 79*94e7edb1Slucy wang - Sun Microsystems - Beijing China { 80*94e7edb1Slucy wang - Sun Microsystems - Beijing China #if defined(__sparcv9) 81*94e7edb1Slucy wang - Sun Microsystems - Beijing China __asm__ __volatile__( 82*94e7edb1Slucy wang - Sun Microsystems - Beijing China "prefetch [%0],#one_write\n\t" 83*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "=r" (addr) 84*94e7edb1Slucy wang - Sun Microsystems - Beijing China : "0" (addr)); 85*94e7edb1Slucy wang - Sun Microsystems - Beijing China #else 86*94e7edb1Slucy wang - Sun Microsystems - Beijing China #error "port me" 87*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif 88*94e7edb1Slucy wang - Sun Microsystems - Beijing China } 89*94e7edb1Slucy wang - Sun Microsystems - Beijing China 90*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif /* !__lint && __GNUC__ */ 91*94e7edb1Slucy wang - Sun Microsystems - Beijing China 92*94e7edb1Slucy wang - Sun Microsystems - Beijing China #ifdef __cplusplus 93*94e7edb1Slucy wang - Sun Microsystems - Beijing China } 94*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif 95*94e7edb1Slucy wang - Sun Microsystems - Beijing China 96*94e7edb1Slucy wang - Sun Microsystems - Beijing China #endif /* _ASM_CPU_H */ 97