bool header_present)
{
if (devinfo->ver >= 5) {
- return (SET_BITS(msg_length, 28, 25) |
- SET_BITS(response_length, 24, 20) |
+ assert(msg_length % reg_unit(devinfo) == 0);
+ assert(response_length % reg_unit(devinfo) == 0);
+ return (SET_BITS(msg_length / reg_unit(devinfo), 28, 25) |
+ SET_BITS(response_length / reg_unit(devinfo), 24, 20) |
SET_BITS(header_present, 19, 19));
} else {
return (SET_BITS(msg_length, 23, 20) |
brw_message_desc_mlen(const struct intel_device_info *devinfo, uint32_t desc)
{
if (devinfo->ver >= 5)
- return GET_BITS(desc, 28, 25);
+ return GET_BITS(desc, 28, 25) * reg_unit(devinfo);
else
return GET_BITS(desc, 23, 20);
}
brw_message_desc_rlen(const struct intel_device_info *devinfo, uint32_t desc)
{
if (devinfo->ver >= 5)
- return GET_BITS(desc, 24, 20);
+ return GET_BITS(desc, 24, 20) * reg_unit(devinfo);
else
return GET_BITS(desc, 19, 16);
}
}
static inline unsigned
-brw_message_ex_desc(UNUSED const struct intel_device_info *devinfo,
+brw_message_ex_desc(const struct intel_device_info *devinfo,
unsigned ex_msg_length)
{
- return SET_BITS(ex_msg_length, 9, 6);
+ assert(ex_msg_length % reg_unit(devinfo) == 0);
+ return SET_BITS(ex_msg_length / reg_unit(devinfo), 9, 6);
}
static inline unsigned
-brw_message_ex_desc_ex_mlen(UNUSED const struct intel_device_info *devinfo,
+brw_message_ex_desc_ex_mlen(const struct intel_device_info *devinfo,
uint32_t ex_desc)
{
- return GET_BITS(ex_desc, 9, 6);
+ return GET_BITS(ex_desc, 9, 6) * reg_unit(devinfo);
}
static inline uint32_t
unsigned dest_length = !has_dest ? 0 :
DIV_ROUND_UP(lsc_data_size_bytes(data_sz) * num_channels * simd_size,
- REG_SIZE);
+ reg_unit(devinfo) * REG_SIZE);
unsigned src0_length =
DIV_ROUND_UP(lsc_addr_size_bytes(addr_sz) * num_coordinates * simd_size,
- REG_SIZE);
+ reg_unit(devinfo) * REG_SIZE);
assert(!transpose || lsc_opcode_has_transpose(opcode));
uint32_t desc)
{
assert(devinfo->has_lsc);
- return GET_BITS(desc, 24, 20);
+ return GET_BITS(desc, 24, 20) * reg_unit(devinfo);
}
static inline unsigned
uint32_t desc)
{
assert(devinfo->has_lsc);
- return GET_BITS(desc, 28, 25);
+ return GET_BITS(desc, 28, 25) * reg_unit(devinfo);
}
static inline enum lsc_addr_surface_type
unsigned mlen = 1;
if (!brw_inst_send_sel_reg32_desc(devinfo, inst)) {
const uint32_t desc = brw_inst_send_desc(devinfo, inst);
- mlen = brw_message_desc_mlen(devinfo, desc);
+ mlen = brw_message_desc_mlen(devinfo, desc) / reg_unit(devinfo);
}
unsigned ex_mlen = 1;
if (!brw_inst_send_sel_reg32_ex_desc(devinfo, inst)) {
const uint32_t ex_desc = brw_inst_sends_ex_desc(devinfo, inst);
- ex_mlen = brw_message_ex_desc_ex_mlen(devinfo, ex_desc);
+ ex_mlen = brw_message_ex_desc_ex_mlen(devinfo, ex_desc) /
+ reg_unit(devinfo);
}
const unsigned src0_reg_nr = brw_inst_src0_da_reg_nr(devinfo, inst);
const unsigned src1_reg_nr = brw_inst_send_src1_reg_nr(devinfo, inst);