nv50: RCP and RSQ cannot load from VP inputs

This commit is contained in:
Christoph Bumiller 2009-09-24 17:24:48 +02:00
parent ef6805710d
commit 001daf78c8
1 changed files with 21 additions and 1 deletions

View File

@ -573,6 +573,22 @@ check_swap_src_0_1(struct nv50_pc *pc,
return FALSE;
}
static void
set_src_0_restricted(struct nv50_pc *pc, struct nv50_reg *src,
struct nv50_program_exec *e)
{
struct nv50_reg *temp;
if (src->type != P_TEMP) {
temp = temp_temp(pc);
emit_mov(pc, temp, src);
src = temp;
}
alloc_reg(pc, src);
e->inst[0] |= (src->hw << 9);
}
static void
set_src_0(struct nv50_pc *pc, struct nv50_reg *src, struct nv50_program_exec *e)
{
@ -775,7 +791,11 @@ emit_flop(struct nv50_pc *pc, unsigned sub,
}
set_dst(pc, dst, e);
set_src_0(pc, src, e);
if (sub == 0 || sub == 2)
set_src_0_restricted(pc, src, e);
else
set_src_0(pc, src, e);
emit(pc, e);
}