i965: Update JIP/UIP compaction code to operate on bytes.
JIP/UIP were previously in units of compacted instructions. On Gen8 they're in units of bytes. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
23ab55cb6c
commit
2faa1a414c
1 changed files with 8 additions and 4 deletions
|
|
@ -653,16 +653,20 @@ static void
|
|||
update_uip_jip(struct brw_context *brw, brw_inst *insn,
|
||||
int this_old_ip, int *compacted_counts)
|
||||
{
|
||||
int jip = brw_inst_jip(brw, insn);
|
||||
jip -= compacted_between(this_old_ip, this_old_ip + jip, compacted_counts);
|
||||
int scale = brw->gen >= 8 ? sizeof(brw_compact_inst) : 1;
|
||||
|
||||
int32_t jip = brw_inst_jip(brw, insn);
|
||||
jip -= scale *
|
||||
compacted_between(this_old_ip, this_old_ip + jip, compacted_counts);
|
||||
brw_inst_set_jip(brw, insn, jip);
|
||||
|
||||
if (brw_inst_opcode(brw, insn) == BRW_OPCODE_ENDIF ||
|
||||
brw_inst_opcode(brw, insn) == BRW_OPCODE_WHILE)
|
||||
return;
|
||||
|
||||
int uip = brw_inst_uip(brw, insn);
|
||||
uip -= compacted_between(this_old_ip, this_old_ip + uip, compacted_counts);
|
||||
int32_t uip = brw_inst_uip(brw, insn);
|
||||
uip -= scale *
|
||||
compacted_between(this_old_ip, this_old_ip + uip, compacted_counts);
|
||||
brw_inst_set_uip(brw, insn, uip);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue