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.