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 <caio.oliveira@intel.com>
This commit is contained in:
@@ -784,12 +784,14 @@ set_subreg_index(const struct gen_device_info *devinfo, brw_compact_inst *dst,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
get_src_index(uint16_t uncompacted,
|
set_src0_index(const struct gen_device_info *devinfo,
|
||||||
uint16_t *compacted)
|
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++) {
|
for (int i = 0; i < 32; i++) {
|
||||||
if (src_index_table[i] == uncompacted) {
|
if (src_index_table[i] == uncompacted) {
|
||||||
*compacted = i;
|
brw_compact_inst_set_src0_index(devinfo, dst, i);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -797,39 +799,26 @@ get_src_index(uint16_t uncompacted,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
static bool
|
||||||
set_src1_index(const struct gen_device_info *devinfo, brw_compact_inst *dst,
|
set_src1_index(const struct gen_device_info *devinfo, brw_compact_inst *dst,
|
||||||
const brw_inst *src, bool is_immediate)
|
const brw_inst *src, bool is_immediate)
|
||||||
{
|
{
|
||||||
uint16_t compacted;
|
|
||||||
|
|
||||||
if (is_immediate) {
|
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 {
|
} else {
|
||||||
uint16_t uncompacted = brw_inst_bits(src, 120, 109); /* 12b */
|
uint16_t uncompacted = brw_inst_bits(src, 120, 109); /* 12b */
|
||||||
|
|
||||||
if (!get_src_index(uncompacted, &compacted))
|
for (int i = 0; i < 32; i++) {
|
||||||
return false;
|
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 false;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
Reference in New Issue
Block a user