Index: kernel/arch/ppc32/src/mm/tlb.c
===================================================================
--- kernel/arch/ppc32/src/mm/tlb.c	(revision eef1b0317f3802b67fa2a31033fa2973fbaab4e7)
+++ kernel/arch/ppc32/src/mm/tlb.c	(revision 98a0fd335e1aad46a0ff2dd9402f2ee048ebecf7)
@@ -81,19 +81,19 @@
 void tlb_invalidate_all(void)
 {
-	uint32_t index;
+	asm volatile (
+		"sync\n"
+	);
+	
+	for (unsigned int i = 0; i < 0x00040000; i += 0x00001000) {
+		asm volatile (
+			"tlbie %[i]\n"
+			:: [i] "r" (i)
+		);
+	}
 	
 	asm volatile (
-		"li %[index], 0\n"
-		"sync\n"
-		
-		".rept 64\n"
-		"	tlbie %[index]\n"
-		"	addi %[index], %[index], 0x1000\n"
-		".endr\n"
-		
 		"eieio\n"
 		"tlbsync\n"
 		"sync\n"
-		: [index] "=r" (index)
 	);
 }
