Module Name:    src
Committed By:   skrll
Date:           Sat May 16 07:22:37 UTC 2015

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

Log Message:
Add MULTIPROCESSOR tlb flushes to armv7_tlb_flushID. Also, invalidate the
branch predictor.

This function is only used by db_write_bytes and kobj_machdep


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 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.21 src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.22
--- src/sys/arch/arm/arm/cpufunc_asm_armv7.S:1.21	Sun Nov  9 09:21:57 2014
+++ src/sys/arch/arm/arm/cpufunc_asm_armv7.S	Sat May 16 07:22:37 2015
@@ -108,8 +108,15 @@ END(armv7_tlb_flushD)
 
 STRONG_ALIAS(armv7_tlb_flushI, armv7_tlb_flushID)
 ENTRY(armv7_tlb_flushID)
+	dsb
 	mov	r0, #0
+#ifdef MULTIPROCESSOR
+	mcr	p15, 0, r0, c8, c3, 0	@ flush entire I+D tlb, IS
+	mcr	p15, 0, r0, c7, c1, 6	@ branch predictor invalidate, IS
+#else
 	mcr	p15, 0, r0, c8, c7, 0	@ flush entire I+D tlb
+	mcr	p15, 0, r0, c7, c5, 6	@ branch predictor invalidate
+#endif
 	dsb				@ data synchronization barrier
 	isb
 	bx      lr

Reply via email to