summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-04-22 02:56:53 +0000
committerAlyssa Rosenzweig <[email protected]>2019-04-24 02:22:32 +0000
commitb453c877d91839cf4af32456ee39843433f43b65 (patch)
tree13c228ea9130b52654297b3e8bf5a6e424cb5894 /src/gallium
parent0b380a7868a588a0aabd31b6f01e9bcd674b26ae (diff)
panfrost/midgard: Update integer op list
In the future, we might want to switch to a table-based approach, but for now, at least have it current. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/panfrost/midgard/helpers.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/gallium/drivers/panfrost/midgard/helpers.h b/src/gallium/drivers/panfrost/midgard/helpers.h
index 4cd488af9df..3f682f1f731 100644
--- a/src/gallium/drivers/panfrost/midgard/helpers.h
+++ b/src/gallium/drivers/panfrost/midgard/helpers.h
@@ -22,8 +22,6 @@
* THE SOFTWARE.
*/
-/* Some constants and macros not found in the disassembler */
-
#define OP_IS_STORE_VARY(op) (\
op == midgard_op_store_vary_16 || \
op == midgard_op_store_vary_32 \
@@ -119,7 +117,8 @@
#define LDST_NOP (3)
-/* Is this opcode that of an integer? */
+/* Is this opcode that of an integer (regardless of signedness)? */
+
static bool
midgard_is_integer_op(int op)
{
@@ -129,7 +128,9 @@ midgard_is_integer_op(int op)
case midgard_alu_op_isub:
case midgard_alu_op_imul:
case midgard_alu_op_imin:
+ case midgard_alu_op_umin:
case midgard_alu_op_imax:
+ case midgard_alu_op_umax:
case midgard_alu_op_iasr:
case midgard_alu_op_ilsr:
case midgard_alu_op_ishl:
@@ -138,20 +139,30 @@ midgard_is_integer_op(int op)
case midgard_alu_op_inot:
case midgard_alu_op_iandnot:
case midgard_alu_op_ixor:
+ case midgard_alu_op_ilzcnt:
+ case midgard_alu_op_ibitcount8:
case midgard_alu_op_imov:
-
- //case midgard_alu_op_f2i:
- //case midgard_alu_op_f2u:
- case midgard_alu_op_ieq:
case midgard_alu_op_iabs:
+ case midgard_alu_op_ieq:
case midgard_alu_op_ine:
+ case midgard_alu_op_ult:
+ case midgard_alu_op_ule:
case midgard_alu_op_ilt:
case midgard_alu_op_ile:
case midgard_alu_op_iball_eq:
+ case midgard_alu_op_ball:
+ case midgard_alu_op_uball_lt:
+ case midgard_alu_op_uball_lte:
+ case midgard_alu_op_iball_lt:
+ case midgard_alu_op_iball_lte:
+ case midgard_alu_op_ibany_eq:
case midgard_alu_op_ibany_neq:
-
- //case midgard_alu_op_i2f:
- //case midgard_alu_op_u2f:
+ case midgard_alu_op_ubany_lt:
+ case midgard_alu_op_ubany_lte:
+ case midgard_alu_op_ibany_lt:
+ case midgard_alu_op_ibany_lte:
+ case midgard_alu_op_i2f:
+ case midgard_alu_op_u2f:
case midgard_alu_op_icsel:
return true;