diff options
author | Matt Turner <[email protected]> | 2018-02-12 16:35:49 -0800 |
---|---|---|
committer | Matt Turner <[email protected]> | 2019-10-30 11:11:50 -0700 |
commit | cde73625f8aab8cc2a709ae1b83326ab266d4621 (patch) | |
tree | 9bed38b90648d8774601b35864fdd86f365d164f /src/intel/compiler/brw_eu_compact.c | |
parent | d0eff8a539fbd14e29a4ff2618114c5b9e01e9fb (diff) |
intel/compiler: Inline get_src_index()
TGL will have separate tables for src0 and src1, so the shared function
will no longer make sense.
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_eu_compact.c')
-rw-r--r-- | src/intel/compiler/brw_eu_compact.c | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/src/intel/compiler/brw_eu_compact.c b/src/intel/compiler/brw_eu_compact.c index afe87a82a6c..1363f5bc0a4 100644 --- a/src/intel/compiler/brw_eu_compact.c +++ b/src/intel/compiler/brw_eu_compact.c @@ -784,12 +784,14 @@ set_subreg_index(const struct gen_device_info *devinfo, brw_compact_inst *dst, } static bool -get_src_index(uint16_t uncompacted, - uint16_t *compacted) +set_src0_index(const struct gen_device_info *devinfo, + brw_compact_inst *dst, const brw_inst *src) { + uint16_t uncompacted = brw_inst_bits(src, 88, 77); /* 12b */ + for (int i = 0; i < 32; i++) { if (src_index_table[i] == uncompacted) { - *compacted = i; + brw_compact_inst_set_src0_index(devinfo, dst, i); return true; } } @@ -798,38 +800,25 @@ get_src_index(uint16_t uncompacted, } static bool -set_src0_index(const struct gen_device_info *devinfo, - brw_compact_inst *dst, const brw_inst *src) -{ - uint16_t compacted; - uint16_t uncompacted = brw_inst_bits(src, 88, 77); /* 12b */ - - if (!get_src_index(uncompacted, &compacted)) - return false; - - brw_compact_inst_set_src0_index(devinfo, dst, compacted); - - return true; -} - -static bool set_src1_index(const struct gen_device_info *devinfo, brw_compact_inst *dst, const brw_inst *src, bool is_immediate) { - uint16_t compacted; - if (is_immediate) { - compacted = (brw_inst_imm_ud(devinfo, src) >> 8) & 0x1f; + uint16_t imm = (brw_inst_imm_ud(devinfo, src) >> 8) & 0x1f; + brw_compact_inst_set_src1_index(devinfo, dst, imm); + return true; } else { uint16_t uncompacted = brw_inst_bits(src, 120, 109); /* 12b */ - if (!get_src_index(uncompacted, &compacted)) - return false; + for (int i = 0; i < 32; i++) { + if (src_index_table[i] == uncompacted) { + brw_compact_inst_set_src1_index(devinfo, dst, i); + return true; + } + } } - brw_compact_inst_set_src1_index(devinfo, dst, compacted); - - return true; + return false; } static bool |