Commit d26b35ba authored by Iago Toral's avatar Iago Toral

v3d: add helpers to emit ldtlb and ldtlbu signals

The ldtlbu version will read an implicit uniform with the TLB read
specifier and should be used for the first read in a sequence
of TLB reads (unless the default configuration is valid, in which
case we can use ldtlb). The ldtlb version is used for any subsequent
TLB read in the sequence.
Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
parent aff8885c
......@@ -1076,6 +1076,30 @@ vir_UMUL(struct v3d_compile *c, struct qreg src0, struct qreg src1)
return vir_UMUL24(c, src0, src1);
}
static inline struct qreg
vir_TLBU_COLOR_READ(struct v3d_compile *c, uint32_t config)
{
assert(c->devinfo->ver >= 41); /* XXX */
assert((config & 0xffffff00) == 0xffffff00);
struct qinst *ldtlb = vir_add_inst(V3D_QPU_A_NOP, c->undef,
c->undef, c->undef);
ldtlb->qpu.sig.ldtlbu = true;
ldtlb->uniform = vir_get_uniform_index(c, QUNIFORM_CONSTANT, config);
return vir_emit_def(c, ldtlb);
}
static inline struct qreg
vir_TLB_COLOR_READ(struct v3d_compile *c)
{
assert(c->devinfo->ver >= 41); /* XXX */
struct qinst *ldtlb = vir_add_inst(V3D_QPU_A_NOP, c->undef,
c->undef, c->undef);
ldtlb->qpu.sig.ldtlb = true;
return vir_emit_def(c, ldtlb);
}
/*
static inline struct qreg
vir_LOAD_IMM(struct v3d_compile *c, uint32_t val)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment