i965: Ensure that we end instruction streams properly.

Threads must terminate with a SEND message to a particular shared function,
such as a URB write or FB write, so the instruction stream really shouldn't
ever end in an IF/ELSE/ENDIF or similar block structure.

However, if the instruction stream (incorrectly) ends in a block structure
the last block's end pointer will not be set, leading to a crash later on in
fs_live_variables::setup_def_use(). It is better to detect this earlier, so
assert on that.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Iago Toral Quiroga
2014-06-09 12:00:04 +02:00
parent dc2d3a7f5c
commit c75f827f12

View File

@@ -257,6 +257,8 @@ cfg_t::cfg_t(exec_list *instructions)
}
}
assert(cur->end);
cur->end_ip = ip;
make_block_array();