[Mesa-dev] [PATCH 1/2] intel/compiler: grf127 can not be dest when src and dest overlap in send
Jose Maria Casanova Crespo
jmcasanova at igalia.com
Thu Apr 12 02:30:57 UTC 2018
Implement at brw_eu_validate the restriction from Intel Broadwell PRM, vol 07,
section "Instruction Set Reference", subsection "EUISA Instructions", Send
Message (page 990):
"r127 must not be used for return address when there is a src and dest overlap
in send instruction."
Cc: Jason Ekstrand <jason at jlekstrand.net>
Cc: Matt Turner <mattst88 at gmail.com>
---
src/intel/compiler/brw_eu_validate.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c
index d3189d1ef5e..0d711501303 100644
--- a/src/intel/compiler/brw_eu_validate.c
+++ b/src/intel/compiler/brw_eu_validate.c
@@ -261,6 +261,15 @@ send_restrictions(const struct gen_device_info *devinfo,
brw_inst_src0_da_reg_nr(devinfo, inst) < 112,
"send with EOT must use g112-g127");
}
+ if (devinfo->gen >= 8) {
+ ERROR_IF(!dst_is_null(devinfo, inst) &&
+ (brw_inst_dst_da_reg_nr(devinfo, inst) +
+ brw_inst_rlen(devinfo, inst) > 127 ) &&
+ (brw_inst_src0_da_reg_nr(devinfo, inst) +
+ brw_inst_mlen(devinfo, inst) >
+ brw_inst_dst_da_reg_nr(devinfo, inst)),
+ "r127 can not be dest when src and dest overlap in send");
+ }
}
return error_msg;
--
2.16.3
More information about the mesa-dev
mailing list