intel/compiler: Validate fuzzed instructions

... before giving them to the instruction compactor.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2635>
This commit is contained in:
Matt Turner
2019-11-11 16:11:34 -08:00
committed by Marge Bot
parent 72cf63cfc6
commit 22462ba242
3 changed files with 7 additions and 1 deletions

View File

@@ -1243,6 +1243,9 @@ void brw_debug_compact_uncompact(const struct gen_device_info *devinfo,
brw_inst *orig, brw_inst *uncompacted);
/* brw_eu_validate.c */
bool brw_validate_instruction(const struct gen_device_info *devinfo,
const brw_inst *inst, int offset,
struct disasm_info *disasm);
bool brw_validate_instructions(const struct gen_device_info *devinfo,
const void *assembly, int start_offset, int end_offset,
struct disasm_info *disasm);

View File

@@ -1937,7 +1937,7 @@ instruction_restrictions(const struct gen_device_info *devinfo,
return error_msg;
}
static bool
bool
brw_validate_instruction(const struct gen_device_info *devinfo,
const brw_inst *inst, int offset,
struct disasm_info *disasm)

View File

@@ -160,6 +160,9 @@ test_fuzz_compact_instruction(struct brw_codegen *p, brw_inst src)
clear_pad_bits(p->devinfo, &instr);
if (!brw_validate_instruction(p->devinfo, &instr, 0, NULL))
continue;
if (!test_compact_instruction(p, instr)) {
printf(" twiddled bits for fuzzing %d, %d\n", bit0, bit1);
return false;