SPRUIG3C January 2018 – August 2019 TDA4VM , TDA4VM-Q1
The following terms are used throughout the document:
init()
, kernel()
, and
vloops()
refer to the functions generated by the VCC tool
to implement the kernel API. The real names are prepended with the name of the
kernel. For example, for a kernel named image_filter
the term
“vloops()
function” in this document refers to the
image_filter_vloops()
function generated by VCC.init()
function and used by the
vloops()
function, corresponding to VCOPs pblock. See Section 2.3.1. An expression of the form tvals->pN
refers to an
arbitrary field from the tvals structure.In code sequences in either the text or the tables, the following symbolic conventions are used:
Vsrc, Vdst, Vtmp, Vpred
, etc.Vperm
is a C7x vector register containing a pre-computed vector for use with a VPERM
instruction.Sreg, Stmp
, etc.Cwidth, Csize
, etc.Pred, Pnz
, etc. Pmask is a special vector
predicate used to select certain lanes. Symbols of the form P8b, P8h,
P8w
and so on are precomputed vector predicates used as lane masks
for partial vector stores; for example P8h
is a mask for
storing 8 halfwords. See Section 5.3. Addr
represents a C7x indirect
address expression, perhaps with an register or SA-based offset or index, for
example *A4
, *A4[A0]
, or
*B0[SA0++]
.base, in
, and
out
represent the base address in a VCOP load or store. A
base address can be an expression, or a value loaded from the tvals structure
(see Section 2.3).Agen
represents either a VCOP address generator declared with
__agen
, or the C7x variable or register that represents its
translation. SEn
refers to a C7x Streaming Engine access, either
SE0 or SE1. Similarly SAn
refers to a C7x Streaming Address
Generator access.