summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vc4/vc4_qpu_defines.h
diff options
context:
space:
mode:
authorEric Anholt2016-07-02 19:10:24 +0200
committerEric Anholt2016-07-16 00:19:12 +0200
commit93aa9ae3e5523e49e4e5abacd4dbee0e4ab2d931 (patch)
tree8e226bfa2a0fb60daaeee74298f80b49e0ae37ce /drivers/gpu/drm/vc4/vc4_qpu_defines.h
parentdrm/vc4: Move validation's current/max ip into the validation struct. (diff)
downloadkernel-qcow2-linux-93aa9ae3e5523e49e4e5abacd4dbee0e4ab2d931.tar.gz
kernel-qcow2-linux-93aa9ae3e5523e49e4e5abacd4dbee0e4ab2d931.tar.xz
kernel-qcow2-linux-93aa9ae3e5523e49e4e5abacd4dbee0e4ab2d931.zip
drm/vc4: Add a bitmap of branch targets during shader validation.
This isn't used yet, it's just a first step toward loop validation. During the main parsing of instructions, we need to know when we hit a new basic block so that we can reset validated state. v2: Fix a stray semicolon after an if block. (caught by kbuild test). Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/vc4/vc4_qpu_defines.h')
-rw-r--r--drivers/gpu/drm/vc4/vc4_qpu_defines.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_qpu_defines.h b/drivers/gpu/drm/vc4/vc4_qpu_defines.h
index d5c2f3c85ebb..82ef0e525d55 100644
--- a/drivers/gpu/drm/vc4/vc4_qpu_defines.h
+++ b/drivers/gpu/drm/vc4/vc4_qpu_defines.h
@@ -230,6 +230,15 @@ enum qpu_unpack_r4 {
#define QPU_COND_MUL_SHIFT 46
#define QPU_COND_MUL_MASK QPU_MASK(48, 46)
+#define QPU_BRANCH_COND_SHIFT 52
+#define QPU_BRANCH_COND_MASK QPU_MASK(55, 52)
+
+#define QPU_BRANCH_REL ((uint64_t)1 << 51)
+#define QPU_BRANCH_REG ((uint64_t)1 << 50)
+
+#define QPU_BRANCH_RADDR_A_SHIFT 45
+#define QPU_BRANCH_RADDR_A_MASK QPU_MASK(49, 45)
+
#define QPU_SF ((uint64_t)1 << 45)
#define QPU_WADDR_ADD_SHIFT 38
@@ -261,4 +270,7 @@ enum qpu_unpack_r4 {
#define QPU_OP_ADD_SHIFT 24
#define QPU_OP_ADD_MASK QPU_MASK(28, 24)
+#define QPU_BRANCH_TARGET_SHIFT 0
+#define QPU_BRANCH_TARGET_MASK QPU_MASK(31, 0)
+
#endif /* VC4_QPU_DEFINES_H */