Index: arch/ia32/include/cpu.h
===================================================================
--- arch/ia32/include/cpu.h	(revision 6463264c6b46958123756382d03683d5db2d7cb4)
+++ arch/ia32/include/cpu.h	(revision 2f7342d12561f9ee108f176359ac9eaea16c4e7c)
@@ -42,3 +42,6 @@
 };
 
+
+#define CR4_OSFXSR_MASK (1<<9)
+
 #endif
Index: arch/ia32/include/cpuid.h
===================================================================
--- arch/ia32/include/cpuid.h	(revision 6463264c6b46958123756382d03683d5db2d7cb4)
+++ arch/ia32/include/cpuid.h	(revision 2f7342d12561f9ee108f176359ac9eaea16c4e7c)
@@ -38,4 +38,32 @@
 	__u32 cpuid_edx;
 } __attribute__ ((packed));
+
+struct __cpuid_extended_feature_info {
+	unsigned sse3 :  1;
+	unsigned      : 31;
+} __attribute__ ((packed));
+
+typedef union cpuid_extended_feature_info 
+{
+	struct __cpuid_extended_feature_info bits;
+	__u32                                word;
+}cpuid_extended_feature_info;
+
+
+struct __cpuid_feature_info {
+	unsigned 			: 23;
+	unsigned mmx  :  1;
+	unsigned fxsr :  1;
+	unsigned sse  :  1;
+	unsigned sse2 :  1;
+	unsigned      :  5;
+} __attribute__ ((packed));
+
+typedef union cpuid_feature_info 
+{
+	struct __cpuid_feature_info bits;
+	__u32                word       ;
+}cpuid_feature_info;
+
 
 static inline __u32 has_cpuid(void)
Index: arch/ia32/include/fpu_context.h
===================================================================
--- arch/ia32/include/fpu_context.h	(revision 6463264c6b46958123756382d03683d5db2d7cb4)
+++ arch/ia32/include/fpu_context.h	(revision 2f7342d12561f9ee108f176359ac9eaea16c4e7c)
@@ -35,4 +35,8 @@
 #define FPU_CONTEXT_ALIGN 16
 
+void fpu_fxsr(void);
+void fpu_fsr(void);
+
+
 struct fpu_context {
 	/* TODO: We need malloc that aligns structures on 16-byte boundary */
Index: arch/ia32/include/interrupt.h
===================================================================
--- arch/ia32/include/interrupt.h	(revision 6463264c6b46958123756382d03683d5db2d7cb4)
+++ arch/ia32/include/interrupt.h	(revision 2f7342d12561f9ee108f176359ac9eaea16c4e7c)
@@ -85,4 +85,5 @@
 extern void nm_fault(int n, istate_t *istate);
 extern void ss_fault(int n, istate_t *istate);
+extern void simd_fp_exception(int n, istate_t *istate);
 extern void page_fault(int n, istate_t *istate);
 extern void syscall(int n, istate_t *istate);
