From owner-p4-projects@FreeBSD.ORG Mon Jun 2 22:32:11 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2D46B37B401; Mon, 2 Jun 2003 22:32:11 -0700 (PDT) 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 2B35C37B40C for ; Mon, 2 Jun 2003 22:32:10 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C588143FA3 for ; Mon, 2 Jun 2003 22:32:09 -0700 (PDT) (envelope-from jmallett@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 h535W90U040500 for ; Mon, 2 Jun 2003 22:32:09 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h535W9Sp040497 for perforce@freebsd.org; Mon, 2 Jun 2003 22:32:09 -0700 (PDT) Date: Mon, 2 Jun 2003 22:32:09 -0700 (PDT) Message-Id: <200306030532.h535W9Sp040497@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 32453 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: Tue, 03 Jun 2003 05:32:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=32453 Change 32453 by jmallett@jmallett_dalek on 2003/06/02 22:32:06 Support for reading/writing 64-bit CP0 registers. Add use of such for TLB. Affected files ... .. //depot/projects/mips/sys/mips/include/cpufunc.h#11 edit Differences ... ==== //depot/projects/mips/sys/mips/include/cpufunc.h#11 (text+ko) ==== @@ -39,6 +39,32 @@ __asm __volatile ("sync" : : : "memory"); } +#define MIPS_RDRW64_COP0(n,r) \ +static __inline u_int64_t \ +mips_rd_ ## n (void) \ +{ \ + int v0; \ + __asm __volatile ("dmfc0 %[v0], $"__XSTRING(r)";" \ + : [v0] "=&r"(v0)); \ + return (v0); \ +} \ +static __inline void \ +mips_wr_ ## n (u_int64_t a0) \ +{ \ + __asm __volatile ("dmtc0 %[a0], $"__XSTRING(r)";" \ + __XSTRING(COP0_SYNC)";" \ + "nop;" \ + "nop;" \ + : \ + : [a0] "r"(a0)); \ +} + +MIPS_RDRW64_COP0(entrylo0, MIPS_COP_0_TLB_LO0) +MIPS_RDRW64_COP0(entrylo1, MIPS_COP_0_TLB_LO1) +MIPS_RDRW64_COP0(entryhi, MIPS_COP_0_TLB_HI) + +#undef MIPS_RDRW64_COP0 + #define MIPS_RDRW32_COP0(n,r) \ static __inline u_int32_t \ mips_rd_ ## n (void) \ @@ -66,6 +92,8 @@ MIPS_RDRW32_COP0(cause, MIPS_COP_0_CAUSE) MIPS_RDRW32_COP0(status, MIPS_COP_0_STATUS) +#undef MIPS_RDRW32_COP0 + static __inline register_t intr_disable(void) {