summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-05-27 23:27:01 -0700
committerKenneth Graunke <[email protected]>2014-06-02 15:09:23 -0700
commit42c292006c94b0b84645448af958fdb6235acbfb (patch)
tree19155fd7ca317ce5d6369287a47626f809484722 /src
parent8deb91b2e75a65b979bd9d70c8700d2c38443336 (diff)
i965: Create a "brw_last_inst" convenience macro.
Often times, we want to emit an instruction, then set one field on it, such as predication or a conditional modifier. Normally, we'd have to declare "struct brw_instruction *inst;" and then use "inst = brw_FOO(...)" to emit the instruction, which can hurt readability. The new "brw_last_inst" macro refers to the most recently emitted instruction, so you can just do: brw_ADD(...) brw_last_inst->header.predicate_control = BRW_PREDICATE_NORMAL; Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h
index baa135ba0f8..9b36e05cb73 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.h
+++ b/src/mesa/drivers/dri/i965/brw_eu.h
@@ -46,6 +46,12 @@ extern "C" {
#define BRW_EU_MAX_INSN_STACK 5
+/* A helper for accessing the last instruction emitted. This makes it easy
+ * to set various bits on an instruction without having to create temporary
+ * variable and assign the emitted instruction to those.
+ */
+#define brw_last_inst (&p->store[p->nr_insn - 1])
+
struct brw_compile {
struct brw_instruction *store;
int store_size;