i965: Add a brw_hw_type_to_reg_type() function
Will be used in later commits. Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
This commit is contained in:
@@ -69,6 +69,31 @@ brw_reg_type_to_hw_type(const struct gen_device_info *devinfo,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the hardware representation into a brw_reg_type enumeration value.
|
||||||
|
*
|
||||||
|
* The hardware encoding may depend on whether the value is an immediate.
|
||||||
|
*/
|
||||||
|
enum brw_reg_type
|
||||||
|
brw_hw_type_to_reg_type(const struct gen_device_info *devinfo,
|
||||||
|
enum brw_reg_file file, unsigned hw_type)
|
||||||
|
{
|
||||||
|
if (file == BRW_IMMEDIATE_VALUE) {
|
||||||
|
for (enum brw_reg_type i = 0; i <= BRW_REGISTER_TYPE_LAST; i++) {
|
||||||
|
if (gen4_hw_type[i].imm_type == hw_type) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (enum brw_reg_type i = 0; i <= BRW_REGISTER_TYPE_LAST; i++) {
|
||||||
|
if (gen4_hw_type[i].reg_type == hw_type) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unreachable("not reached");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the element size given a hardware register type and file.
|
* Return the element size given a hardware register type and file.
|
||||||
*
|
*
|
||||||
|
@@ -63,6 +63,10 @@ unsigned
|
|||||||
brw_reg_type_to_hw_type(const struct gen_device_info *devinfo,
|
brw_reg_type_to_hw_type(const struct gen_device_info *devinfo,
|
||||||
enum brw_reg_file file, enum brw_reg_type type);
|
enum brw_reg_file file, enum brw_reg_type type);
|
||||||
|
|
||||||
|
enum brw_reg_type
|
||||||
|
brw_hw_type_to_reg_type(const struct gen_device_info *devinfo,
|
||||||
|
enum brw_reg_file file, unsigned hw_type);
|
||||||
|
|
||||||
#define brw_element_size(devinfo, inst, operand) \
|
#define brw_element_size(devinfo, inst, operand) \
|
||||||
brw_hw_reg_type_to_size(devinfo, \
|
brw_hw_reg_type_to_size(devinfo, \
|
||||||
brw_inst_ ## operand ## _reg_file(devinfo, inst), \
|
brw_inst_ ## operand ## _reg_file(devinfo, inst), \
|
||||||
|
Reference in New Issue
Block a user