diff options
author | Matt Turner <[email protected]> | 2017-11-15 17:08:42 -0800 |
---|---|---|
committer | Matt Turner <[email protected]> | 2017-11-17 12:14:38 -0800 |
commit | 4f82b17287194ca7d10816f6cfe4712a3e0a03fc (patch) | |
tree | 7e2bb056e5c389643e9338e4359e5aae9ab49f92 /src/intel/compiler/brw_eu_validate.c | |
parent | f80e97346b0da9fab3d60b46bdcf0a0d702f97c9 (diff) |
i965: Rewrite disassembly annotation code
The old code used an array to store each "instruction group" (the new,
better name than the old overloaded "annotation"), and required a
memmove() to shift elements over in the array when we needed to split a
group so that we could add an error message. This was confusing and
difficult to get right, not the least of which was because the array
has a tail sentinel not included in .ann_count.
Instead use a linked list, a data structure made for efficient
insertion.
Acked-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_eu_validate.c')
-rw-r--r-- | src/intel/compiler/brw_eu_validate.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c index 647835af7ac..6ee6b4ffbe7 100644 --- a/src/intel/compiler/brw_eu_validate.c +++ b/src/intel/compiler/brw_eu_validate.c @@ -1258,7 +1258,7 @@ special_requirements_for_handling_double_precision_data_types( bool brw_validate_instructions(const struct gen_device_info *devinfo, const void *assembly, int start_offset, int end_offset, - struct annotation_info *annotation) + struct disasm_info *disasm) { bool valid = true; @@ -1286,8 +1286,8 @@ brw_validate_instructions(const struct gen_device_info *devinfo, CHECK(special_requirements_for_handling_double_precision_data_types); } - if (error_msg.str && annotation) { - annotation_insert_error(annotation, src_offset, error_msg.str); + if (error_msg.str && disasm) { + disasm_insert_error(disasm, src_offset, error_msg.str); } valid = valid && error_msg.len == 0; free(error_msg.str); |