Module Name:    src
Committed By:   matt
Date:           Thu Feb 20 15:52:30 UTC 2014

Modified Files:
        src/sys/arch/arm/arm: cpufunc_asm_armv7.S

Log Message:
for non-of-power-2 sets, we need to round to next power of 2.  (which is
simply doubling the value and then subtracting 1).


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/arm/cpufunc_asm_armv7.S

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_asm_armv7.S
diff -u src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.12 src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.13
--- src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.12	Sun Aug 18 06:28:18 2013
+++ src/sys/arch/arm/arm/cpufunc_asm_armv7.S	Thu Feb 20 15:52:30 2014
@@ -243,6 +243,8 @@ ENTRY_NP(armv7_icache_inv_all)
 
 	ubfx	r2, r0, #13, #15	@ get num sets - 1 from CCSIDR
 	ubfx	r3, r0, #3, #10		@ get numways - 1 from CCSIDR
+	lsl	r3, r3, #1 		@ double
+	sub	r3, r3, #1		@ subtract one (now rounded up)
 	clz	r1, r3			@ number of bits to MSB of way
 	lsl	r3, r3, r1		@ shift into position
 	mov	ip, #1			@ 
@@ -301,6 +303,8 @@ ENTRY_NP(armv7_dcache_inv_all)
 	lsl	r1, r1, ip		@ r1 = set decr
 
 	ubfx	ip, r0, #3, #10		@ get numways - 1 from [to be discarded] CCSIDR
+	lsl	ip, ip, #1 		@ double
+	sub	ip, ip, #1		@ subtract one (now rounded up)
 	clz	r2, ip			@ number of bits to MSB of way
 	lsl	ip, ip, r2		@ shift by that into way position
 	mov	r0, #1			@ 
@@ -364,6 +368,8 @@ ENTRY_NP(armv7_dcache_wbinv_all)
 	lsl	r1, r1, ip		@ r1 = set decr
 
 	ubfx	ip, r0, #3, #10		@ get numways - 1 from [to be discarded] CCSIDR
+	lsl	ip, ip, #1 		@ double
+	sub	ip, ip, #1		@ subtract one (now rounded up)
 	clz	r2, ip			@ number of bits to MSB of way
 	lsl	ip, ip, r2		@ shift by that into way position
 	mov	r0, #1			@ 

Reply via email to