diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-04-22 02:56:53 +0000 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-04-24 02:22:32 +0000 |
commit | b453c877d91839cf4af32456ee39843433f43b65 (patch) | |
tree | 13c228ea9130b52654297b3e8bf5a6e424cb5894 /src | |
parent | 0b380a7868a588a0aabd31b6f01e9bcd674b26ae (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')
-rw-r--r-- | src/gallium/drivers/panfrost/midgard/helpers.h | 31 |
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; |