diff --git a/assembler/Makefile.am b/assembler/Makefile.am
index d4733d3..9bd3289 100644
--- a/assembler/Makefile.am
+++ b/assembler/Makefile.am
@@ -11,6 +11,8 @@
 
 intel_gen4asm_SOURCES =	\
 	brw_compat.h	\
+	brw_context.c	\
+	brw_context.h	\
 	ralloc.c	\
 	ralloc.h	\
 	brw_defines.h	\
diff --git a/assembler/brw_context.c b/assembler/brw_context.c
new file mode 100644
index 0000000..6f2a964
--- /dev/null
+++ b/assembler/brw_context.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright © 2013 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include <string.h>
+
+#include "brw_context.h"
+
+static bool
+intel_init_context(struct intel_context *intel, int gen)
+{
+   memset(intel, 0, sizeof(struct intel_context));
+   intel->gen = gen / 10;
+   intel->is_haswell = gen == 75;
+   if (intel->gen >= 5)
+      intel->needs_ff_sync = true;
+
+   return true;
+}
+
+bool
+brw_init_context(struct brw_context *brw, int gen)
+{
+   return intel_init_context(&brw->intel, gen);
+}
diff --git a/assembler/brw_context.h b/assembler/brw_context.h
new file mode 100644
index 0000000..f0e3a35
--- /dev/null
+++ b/assembler/brw_context.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright © 2013 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * To share code with mesa without having to do big modifications and still be
+ * able to sync files together at a later point, this file stubs the fields
+ * of struct brw_context used by the code we import.
+ */
+
+#ifndef __BRW_CONTEXT_H__
+#define __BRW_CONTEXT_H__
+
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct intel_context
+{
+   int gen;
+   int gt;
+   bool is_haswell;
+   bool is_g4x;
+   bool needs_ff_sync;
+};
+
+struct brw_context
+{
+   struct intel_context intel;
+};
+
+bool
+brw_init_context(struct brw_context *brw, int gen);
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif /* __BRW_CONTEXT_H__ */
diff --git a/assembler/brw_eu.h b/assembler/brw_eu.h
index 262a40b..f3e99fa 100644
--- a/assembler/brw_eu.h
+++ b/assembler/brw_eu.h
@@ -34,6 +34,7 @@
 #define BRW_EU_H
 
 #include <stdbool.h>
+#include "brw_context.h"
 #include "brw_structs.h"
 #include "brw_defines.h"
 #include "brw_reg.h"
