Index: X86Subtarget.cpp
===================================================================
--- X86Subtarget.cpp	(revision 50008)
+++ X86Subtarget.cpp	(working copy)
@@ -127,7 +127,7 @@
     return;
 
   X86::GetCpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX);
-  
+#if 0 
   if ((EDX >> 23) & 0x1) X86SSELevel = MMX;
   if ((EDX >> 25) & 0x1) X86SSELevel = SSE1;
   if ((EDX >> 26) & 0x1) X86SSELevel = SSE2;
@@ -135,7 +135,9 @@
   if ((ECX >> 9)  & 0x1) X86SSELevel = SSSE3;
   if ((ECX >> 19) & 0x1) X86SSELevel = SSE41;
   if ((ECX >> 20) & 0x1) X86SSELevel = SSE42;
-
+#else
+  X86SSELevel = MMX;
+#endif
   if (memcmp(text.c, "GenuineIntel", 12) == 0 ||
       memcmp(text.c, "AuthenticAMD", 12) == 0) {
     X86::GetCpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
Index: X86JITInfo.cpp
===================================================================
--- X86JITInfo.cpp	(revision 50008)
+++ X86JITInfo.cpp	(working copy)
@@ -60,7 +60,7 @@
 // FIXME: Disable this until we really want to use it. Also, we will
 //        need to add some workarounds for compilers, which support
 //        only subset of these directives.
-# define CFI(x)
+# define CFI(x) x
 #endif
 
 // Provide a wrapper for X86CompilationCallback2 that saves non-traditional
