Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision 7a4202dd73f7bb539689bd5daa846b77584b939e)
+++ kernel/Makefile	(revision 23cdc9219330c1832d25748a76fa077ccf9e773b)
@@ -394,4 +394,14 @@
 	$(AS) $(AFLAGS) $< -o $@
 
+#
+# The FPU tests are the only objects for which we allow the compiler to generate
+# FPU instructions.
+#
+test/fpu/%.o: test/fpu/%.c
+	$(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) -c $< -o $@
+
+#
+# Ordinary objects.
+#
 %.o: %.c
-	$(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) -c $< -o $@
+	$(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS) -c $< -o $@ 
Index: kernel/arch/amd64/Makefile.inc
===================================================================
--- kernel/arch/amd64/Makefile.inc	(revision 7a4202dd73f7bb539689bd5daa846b77584b939e)
+++ kernel/arch/amd64/Makefile.inc	(revision 23cdc9219330c1832d25748a76fa077ccf9e773b)
@@ -36,4 +36,5 @@
 TOOLCHAIN_DIR = /usr/local/amd64
 
+FPU_NO_CFLAGS = -mno-sse -mno-sse2
 CMN1 = -m64 -mcmodel=kernel -mno-red-zone -fno-unwind-tables
 GCC_CFLAGS += $(CMN1)
Index: kernel/arch/ia32/Makefile.inc
===================================================================
--- kernel/arch/ia32/Makefile.inc	(revision 7a4202dd73f7bb539689bd5daa846b77584b939e)
+++ kernel/arch/ia32/Makefile.inc	(revision 23cdc9219330c1832d25748a76fa077ccf9e773b)
@@ -47,5 +47,6 @@
 
 ifeq ($(MACHINE),athlon-xp)
-	CMN2 = -march=athlon-xp -mno-mmx -mno-sse -mno-3dnow
+	FPU_NO_CFLAGS = -mno-mmx -mno-sse -mno-3dnow
+	CMN2 = -march=athlon-xp
 	GCC_CFLAGS += $(CMN2)
 	ICC_CFLAGS += $(CMN2)
@@ -56,5 +57,6 @@
 endif
 ifeq ($(MACHINE),athlon-mp)
-	CMN2 = -march=athlon-mp -mno-mmx -mno-sse -mno-3dnow
+	FPU_NO_CFLAGS = -mno-mmx -mno-sse -mno-3dnow
+	CMN2 = -march=athlon-mp
 	GCC_CFLAGS += $(CMN2)
 	ICC_CFLAGS += $(CMN2)
@@ -64,5 +66,6 @@
 endif
 ifeq ($(MACHINE),pentium3)
-	CMN2 = -march=pentium3 -mno-mmx -mno-sse
+	FPU_NO_CFLAGS = -mno-mmx -mno-sse
+	CMN2 = -march=pentium3
 	GCC_CFLAGS += $(CMN2)
 	ICC_CFLAGS += $(CMN2)
@@ -72,5 +75,6 @@
 endif
 ifeq ($(MACHINE),core)
-	CMN2 = -march=prescott -mno-mmmx -mno-sse -mno-sse2 -mno-sse3
+	FPU_NO_CFLAGS = -mno-mmmx -mno-sse -mno-sse2 -mno-sse3
+	CMN2 = -march=prescott
 	GCC_CFLAGS += $(CMN2)
 	ICC_CFLAGS += $(CMN2)
@@ -79,5 +83,6 @@
 endif
 ifeq ($(MACHINE),pentium4)
-	GCC_CFLAGS += -march=pentium4 -mno-mmx -mno-sse -mno-sse2
+	FPU_NO_CFLAGS = -mno-mmx -mno-sse -mno-sse2
+	GCC_CFLAGS += -march=pentium4
 	ICC_CFLAGS += -march=pentium4
 	SUNCC_CFLAGS += -xarch=sse2
