diff -Naur Mesa-9.0/src/mesa/sources.mak Mesa-9.0-haiku/src/mesa/sources.mak
--- Mesa-9.0/src/mesa/sources.mak	2012-08-31 23:36:09.036700160 +0000
+++ Mesa-9.0-haiku/src/mesa/sources.mak	2012-10-09 13:17:15.991690752 +0000
@@ -281,7 +281,6 @@
 	$(SRCDIR)x86/x86_xform.c \
 	$(SRCDIR)x86/3dnow.c \
 	$(SRCDIR)x86/sse.c \
-	$(SRCDIR)x86/rtasm/x86sse.c \
 	$(SRCDIR)sparc/sparc.c \
 	$(SRCDIR)x86-64/x86-64.c
 
diff -Naur Mesa-9.0/src/mesa/tnl/t_vertex_sse.c Mesa-9.0-haiku/src/mesa/tnl/t_vertex_sse.c
--- Mesa-9.0/src/mesa/tnl/t_vertex_sse.c	2012-08-31 23:33:41.058458112 +0000
+++ Mesa-9.0-haiku/src/mesa/tnl/t_vertex_sse.c	2012-10-09 13:20:34.234356736 +0000
@@ -36,7 +36,7 @@
 
 #if defined(USE_SSE_ASM)
 
-#include "x86/rtasm/x86sse.h"
+#include "rtasm/rtasm_x86sse.h"
 #include "x86/common_x86_asm.h"
 
 
@@ -356,7 +356,7 @@
    struct x86_reg vp0 = x86_make_reg(file_XMM, 1);
    struct x86_reg vp1 = x86_make_reg(file_XMM, 2);
    struct x86_reg temp2 = x86_make_reg(file_XMM, 3);
-   GLubyte *fixup, *label;
+   GLuint fixup, label;
 
    /* Push a few regs?
     */
@@ -658,7 +658,8 @@
    p.identity = x86_make_reg(file_XMM, 6);
    p.chan0 = x86_make_reg(file_XMM, 7);
 
-   if (!x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE)) {
+   x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE);
+   if (p.func.caps == 0) {
       vtx->emit = NULL;
       return;
    }
