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;

Reply via email to