From owner-p4-projects@FreeBSD.ORG Fri Apr 4 17:51:00 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A0E3637B409; Fri, 4 Apr 2003 17:50:59 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DA24E37B40A for ; Fri, 4 Apr 2003 17:50:58 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 648FA43F85 for ; Fri, 4 Apr 2003 17:50:58 -0800 (PST) (envelope-from peter@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 h351ow0U090716 for ; Fri, 4 Apr 2003 17:50:58 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h351ovlV090712 for perforce@freebsd.org; Fri, 4 Apr 2003 17:50:57 -0800 (PST) Date: Fri, 4 Apr 2003 17:50:57 -0800 (PST) Message-Id: <200304050150.h351ovlV090712@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 28106 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Apr 2003 01:51:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=28106 Change 28106 by peter@peter_daintree on 2003/04/04 17:50:39 64 bit updates. I have to check the register constraints though. Affected files ... .. //depot/projects/hammer/sys/x86_64/include/cpufunc.h#5 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/include/cpufunc.h#5 (text+ko) ==== @@ -52,10 +52,12 @@ #define readb(va) (*(volatile u_int8_t *) (va)) #define readw(va) (*(volatile u_int16_t *) (va)) #define readl(va) (*(volatile u_int32_t *) (va)) +#define readq(va) (*(volatile u_int64_t *) (va)) #define writeb(va, d) (*(volatile u_int8_t *) (va) = (d)) #define writew(va, d) (*(volatile u_int16_t *) (va) = (d)) #define writel(va, d) (*(volatile u_int32_t *) (va) = (d)) +#define writeq(va, d) (*(volatile u_int64_t *) (va) = (d)) #ifdef __GNUC__ @@ -313,9 +315,9 @@ static __inline u_long read_rflags(void) { - u_int ef; + u_long ef; - __asm __volatile("pushfl; XXX; popl %0" : "=r" (ef)); + __asm __volatile("pushfq; popq %0" : "=r" (ef)); return (ef); } @@ -324,7 +326,7 @@ { u_int64_t rv; - __asm __volatile("rdmsr XXX" : "=A" (rv) : "c" (msr)); + __asm __volatile("rdmsr" : "=A" (rv) : "c" (msr)); return (rv); } @@ -333,7 +335,7 @@ { u_int64_t rv; - __asm __volatile("rdpmc XXX" : "=A" (rv) : "c" (pmc)); + __asm __volatile("rdpmc" : "=A" (rv) : "c" (pmc)); return (rv); } @@ -342,7 +344,7 @@ { u_int64_t rv; - __asm __volatile("rdtsc XXX" : "=A" (rv)); + __asm __volatile("rdtsc" : "=A" (rv)); return (rv); } @@ -355,13 +357,13 @@ static __inline void write_rflags(u_long ef) { - __asm __volatile("pushl %0; XXXpopfl" : : "r" (ef)); + __asm __volatile("pushl %0; popfq" : : "r" (ef)); } static __inline void wrmsr(u_int msr, u_int64_t newval) { - __asm __volatile("wrmsr XXX" : : "A" (newval), "c" (msr)); + __asm __volatile("wrmsr" : : "A" (newval), "c" (msr)); } static __inline void @@ -441,6 +443,7 @@ __asm __volatile("invlpg %0" : : "m" (*(char *)addr) : "memory"); } +/* XXX these are replaced with rdmsr/wrmsr */ static __inline u_int rfs(void) {