summaryrefslogtreecommitdiffstats
path: root/src/broadcom/qpu/qpu_validate.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2017-02-02 16:15:18 -0800
committerEric Anholt <[email protected]>2017-10-10 11:42:04 -0700
commit05c7d9715b8a419fd6fb952715ee8fde9401aacb (patch)
tree3061d0f9276f4d9fcf0369f6f4abb6a8511097bc /src/broadcom/qpu/qpu_validate.c
parent59257c35eb5ce4a58d6cff20ed24a8203b045af8 (diff)
broadcom: Add V3D 3.3 QPU instruction pack, unpack, and disasm.
Unlike VC4, I've defined an unpacked instruction format with pack/unpack functions to convert to 64-bit encoded instructions. This will let us incrementally put together our instructions and validate them in a more natural way than the QPU_GET_FIELD/QPU_SET_FIELD used to. The pack/unpack unfortuantely are written by hand. While I could define genxml for parts of it, there are many special cases (like operand order of commutative binops choosing which binop is being performed!) and it probably wouldn't come out much cleaner. The disasm unit test ensures that we have the same assembly format as Broadcom's internal tools, other than whitespace changes. v2: Fix automake variable redefinition complaints, add test to .gitignore
Diffstat (limited to 'src/broadcom/qpu/qpu_validate.c')
-rw-r--r--src/broadcom/qpu/qpu_validate.c0
1 files changed, 0 insertions, 0 deletions
diff --git a/src/broadcom/qpu/qpu_validate.c b/src/broadcom/qpu/qpu_validate.c
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/src/broadcom/qpu/qpu_validate.c