Execution of Altivec instructions will crash the kernel.

Apply by doing:
	cd /usr/src
	patch -p0 < 005_altivec.patch
And then rebuild your kernel.

Index: sys/arch/macppc/macppc/machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/macppc/machdep.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- sys/arch/macppc/macppc/machdep.c	2001/09/28 04:13:12	1.9
+++ sys/arch/macppc/macppc/machdep.c	2001/11/05 22:26:57	1.10
@@ -264,7 +264,7 @@
 	/*
 	 * Set up trap vectors
 	 */
-	for (exc = EXC_RSVD; exc <= EXC_LAST; exc += 0x100)
+	for (exc = EXC_RSVD; exc <= EXC_LAST; exc += 0x100) {
 		switch (exc) {
 		default:
 			bcopy(&trapcode, (void *)exc, (size_t)&trapsize);
@@ -309,6 +309,17 @@
 #endif
 			break;
 		}
+	}
+
+	/* Grr, ALTIVEC_UNAVAIL is a vector not ~0xff aligned: 0x0f20 */
+	bcopy(&trapcode, (void *)0xf20, (size_t)&trapsize);
+	/*
+	 * since trapsize is > 0x20, we just overwrote the EXC_PERF handler
+	 * since we do not use it, we will "share" it with the EXC_VEC,
+	 * we dont support EXC_VEC either.
+	 * should be a 'ba 0xf20 written' at address 0xf00, but we
+	 * do not generate EXC_PERF exceptions...
+	 */
 
 	syncicache((void *)EXC_RST, EXC_LAST - EXC_RST + 0x100);
 
Index: sys/arch/powerpc/powerpc/trap.c
===================================================================
RCS file: /cvs/src/sys/arch/powerpc/powerpc/trap.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- sys/arch/powerpc/powerpc/trap.c	2001/09/20 13:46:04	1.33
+++ sys/arch/powerpc/powerpc/trap.c	2001/11/05 22:26:57	1.34
@@ -413,6 +413,14 @@
 		break;
 
 	}
+	/* This is not really a perf exception, but is an ALTIVEC unavail
+	 * which we do not handle, kill the process with illegal instruction.
+	 */
+	case EXC_PERF|EXC_USER:
+		sv.sival_int = frame->srr0;
+		trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv);
+		break;
+
 	case EXC_AST|EXC_USER:
 		/* This is just here that we trap */
 		break;
