summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-10-23 20:19:11 -0400
committerAlyssa Rosenzweig <[email protected]>2019-10-25 08:45:39 -0400
commit9bba18284027bfa26826c458b0b726a79edd9a63 (patch)
treebc88eea30abf1af9d541add63a3bbab282f4245c
parent85cc40f7ce3460ea4b4b1a6a98a9f56520dbbb04 (diff)
pan/midgard: Add mir_set_bytemask helper
Signed-off-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--src/panfrost/midgard/compiler.h1
-rw-r--r--src/panfrost/midgard/mir.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/panfrost/midgard/compiler.h b/src/panfrost/midgard/compiler.h
index 425a4dd85f1..e66424d0fd8 100644
--- a/src/panfrost/midgard/compiler.h
+++ b/src/panfrost/midgard/compiler.h
@@ -518,6 +518,7 @@ midgard_reg_mode mir_typesize(midgard_instruction *ins);
uint16_t mir_from_bytemask(uint16_t bytemask, midgard_reg_mode mode);
uint16_t mir_bytemask(midgard_instruction *ins);
uint16_t mir_round_bytemask_down(uint16_t mask, midgard_reg_mode mode);
+void mir_set_bytemask(midgard_instruction *ins, uint16_t bytemask);
/* MIR printing */
diff --git a/src/panfrost/midgard/mir.c b/src/panfrost/midgard/mir.c
index 76c99a2e05c..db26acd8cb1 100644
--- a/src/panfrost/midgard/mir.c
+++ b/src/panfrost/midgard/mir.c
@@ -525,6 +525,12 @@ mir_bytemask(midgard_instruction *ins)
return mir_to_bytemask(mir_typesize(ins), ins->mask);
}
+void
+mir_set_bytemask(midgard_instruction *ins, uint16_t bytemask)
+{
+ ins->mask = mir_from_bytemask(bytemask, mir_typesize(ins));
+}
+
/* Creates a mask of the components of a node read by an instruction, by
* analyzing the swizzle with respect to the instruction's mask. E.g.:
*