Module Name: src Committed By: skrll Date: Thu Jul 2 08:33:31 UTC 2015
Modified Files: src/sys/arch/arm/arm: cpufunc.c src/sys/arch/arm/arm32: sys_machdep.c Log Message: Use armreg_*_{read,write} instead of handcrafted asm No functional change. To generate a diff of this commit: cvs rdiff -u -r1.155 -r1.156 src/sys/arch/arm/arm/cpufunc.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/arm32/sys_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm/cpufunc.c diff -u src/sys/arch/arm/arm/cpufunc.c:1.155 src/sys/arch/arm/arm/cpufunc.c:1.156 --- src/sys/arch/arm/arm/cpufunc.c:1.155 Wed Jun 3 02:30:11 2015 +++ src/sys/arch/arm/arm/cpufunc.c Thu Jul 2 08:33:31 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: cpufunc.c,v 1.155 2015/06/03 02:30:11 hsuenaga Exp $ */ +/* $NetBSD: cpufunc.c,v 1.156 2015/07/02 08:33:31 skrll Exp $ */ /* * arm7tdmi support code Copyright (c) 2001 John Fremlin @@ -49,7 +49,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.155 2015/06/03 02:30:11 hsuenaga Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.156 2015/07/02 08:33:31 skrll Exp $"); #include "opt_compat_netbsd.h" #include "opt_cpuoptions.h" @@ -1494,17 +1494,16 @@ static int arm_dcache_log2_linesize; static inline u_int get_cachesize_cp15(int cssr) { - u_int csid; - #if defined(CPU_ARMV7) __asm volatile(".arch\tarmv7a"); - __asm volatile("mcr p15, 2, %0, c0, c0, 0" :: "r" (cssr)); - __asm volatile("isb" ::: "memory"); /* sync to the new cssr */ + + armreg_csselr_write(cssr); + arm_isb(); /* sync to the new cssr */ + #else __asm volatile("mcr p15, 1, %0, c0, c0, 2" :: "r" (cssr) : "memory"); #endif - __asm volatile("mrc p15, 1, %0, c0, c0, 0" : "=r" (csid)); - return csid; + return armreg_ccsidr_read(); } #endif @@ -1565,8 +1564,7 @@ get_cachetype_cp15(void) u_int ctype, isize, dsize; u_int multiplier; - __asm volatile("mrc p15, 0, %0, c0, c0, 1" - : "=r" (ctype)); + ctype = armreg_ctr_read(); /* * ...and thus spake the ARM ARM: @@ -3002,7 +3000,7 @@ arm11_setup(char *args) __asm volatile ("mcr\tp15, 0, r0, c7, c7, 0" : : ); /* Allow detection code to find the VFP if it's fitted. */ - __asm volatile ("mcr\tp15, 0, %0, c1, c0, 2" : : "r" (0x0fffffff)); + armreg_cpacr_write(0x0fffffff); /* Set the control register */ curcpu()->ci_ctrl = cpuctrl; @@ -3051,7 +3049,7 @@ arm11mpcore_setup(char *args) __asm volatile ("mcr\tp15, 0, r0, c7, c7, 0" : : ); /* Allow detection code to find the VFP if it's fitted. */ - __asm volatile ("mcr\tp15, 0, %0, c1, c0, 2" : : "r" (0x0fffffff)); + armreg_cpacr_write(0x0fffffff); /* Set the control register */ curcpu()->ci_ctrl = cpu_control(cpuctrlmask, cpuctrl); @@ -3274,7 +3272,7 @@ arm11x6_setup(char *args) __asm volatile ("mcr\tp15, 0, %0, c7, c7, 0" : : "r"(sbz)); /* Allow detection code to find the VFP if it's fitted. */ - __asm volatile ("mcr\tp15, 0, %0, c1, c0, 2" : : "r" (0x0fffffff)); + armreg_cpacr_write(0x0fffffff); /* Set the control register */ curcpu()->ci_ctrl = cpuctrl; @@ -3592,15 +3590,13 @@ xscale_setup(char *args) cpu_control(0xffffffff, cpuctrl); /* Make sure write coalescing is turned on */ - __asm volatile("mrc p15, 0, %0, c1, c0, 1" - : "=r" (auxctl)); + auxctl = armreg_auxctl_read(); #ifdef XSCALE_NO_COALESCE_WRITES auxctl |= XSCALE_AUXCTL_K; #else auxctl &= ~XSCALE_AUXCTL_K; #endif - __asm volatile("mcr p15, 0, %0, c1, c0, 1" - : : "r" (auxctl)); + armreg_auxctl_write(auxctl); } #endif /* CPU_XSCALE */ Index: src/sys/arch/arm/arm32/sys_machdep.c diff -u src/sys/arch/arm/arm32/sys_machdep.c:1.21 src/sys/arch/arm/arm32/sys_machdep.c:1.22 --- src/sys/arch/arm/arm32/sys_machdep.c:1.21 Sun Mar 22 21:45:12 2015 +++ src/sys/arch/arm/arm32/sys_machdep.c Thu Jul 2 08:33:31 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_machdep.c,v 1.21 2015/03/22 21:45:12 joerg Exp $ */ +/* $NetBSD: sys_machdep.c,v 1.22 2015/07/02 08:33:31 skrll Exp $ */ /* * Copyright (c) 1995-1997 Mark Brinicombe. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_machdep.c,v 1.21 2015/03/22 21:45:12 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_machdep.c,v 1.22 2015/07/02 08:33:31 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -170,8 +170,9 @@ cpu_lwp_setprivate(lwp_t *l, void *addr) { #ifdef _ARM_ARCH_6 if (l == curlwp) { + u_int val = (u_int)addr; kpreempt_disable(); - __asm __volatile("mcr p15, 0, %0, c13, c0, 3" : : "r" (addr)); + armreg_tpidruro_write(val); kpreempt_enable(); } return 0;