pan/bi: Move LD_VAR packing out of bi_pack_add()
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7636>
This commit is contained in:
parent
058bcf4406
commit
4321b4fc93
|
@ -710,6 +710,25 @@ bi_pack_add_special(bi_clause *clause, bi_instruction *ins, bi_registers *regs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static unsigned
|
||||||
|
bi_pack_add_ld_var(bi_clause *clause, bi_instruction *ins, bi_registers *regs)
|
||||||
|
{
|
||||||
|
bool imm = ins->src[0] & BIR_INDEX_CONSTANT;
|
||||||
|
|
||||||
|
if (imm && bi_get_immediate(ins, 0) >= 20)
|
||||||
|
return pan_pack_add_ld_var_special(clause, ins, regs);
|
||||||
|
|
||||||
|
if (ins->load_vary.flat) {
|
||||||
|
return imm ?
|
||||||
|
pan_pack_add_ld_var_flat_imm(clause, ins, regs) :
|
||||||
|
pan_pack_add_ld_var_flat(clause, ins, regs);
|
||||||
|
}
|
||||||
|
|
||||||
|
return imm ?
|
||||||
|
pan_pack_add_ld_var_imm(clause, ins, regs) :
|
||||||
|
pan_pack_add_ld_var(clause, ins, regs);
|
||||||
|
}
|
||||||
|
|
||||||
static unsigned
|
static unsigned
|
||||||
bi_pack_add(bi_clause *clause, bi_bundle bundle, bi_registers *regs, gl_shader_stage stage)
|
bi_pack_add(bi_clause *clause, bi_bundle bundle, bi_registers *regs, gl_shader_stage stage)
|
||||||
{
|
{
|
||||||
|
@ -858,19 +877,7 @@ bi_pack_add(bi_clause *clause, bi_bundle bundle, bi_registers *regs, gl_shader_s
|
||||||
default: unreachable("Invalid channel count");
|
default: unreachable("Invalid channel count");
|
||||||
}
|
}
|
||||||
case BI_LOAD_VAR:
|
case BI_LOAD_VAR:
|
||||||
if (bundle.add->src[0] & BIR_INDEX_CONSTANT) {
|
return bi_pack_add_ld_var(clause, bundle.add, regs);
|
||||||
if (bi_get_immediate(bundle.add, 0) >= 20)
|
|
||||||
return pan_pack_add_ld_var_special(clause, bundle.add, regs);
|
|
||||||
else if (bundle.add->load_vary.flat)
|
|
||||||
return pan_pack_add_ld_var_flat_imm(clause, bundle.add, regs);
|
|
||||||
else
|
|
||||||
return pan_pack_add_ld_var_imm(clause, bundle.add, regs);
|
|
||||||
} else {
|
|
||||||
if (bundle.add->load_vary.flat)
|
|
||||||
return pan_pack_add_ld_var_flat(clause, bundle.add, regs);
|
|
||||||
else
|
|
||||||
return pan_pack_add_ld_var(clause, bundle.add, regs);
|
|
||||||
}
|
|
||||||
case BI_LOAD_VAR_ADDRESS:
|
case BI_LOAD_VAR_ADDRESS:
|
||||||
return pan_pack_add_lea_attr_imm(clause, bundle.add, regs);
|
return pan_pack_add_lea_attr_imm(clause, bundle.add, regs);
|
||||||
case BI_LOAD_TILE:
|
case BI_LOAD_TILE:
|
||||||
|
|
Loading…
Reference in New Issue