Example 4. Specifying a Register Quad (C6600 Only)

.global fooquad fooquad: .cproc q3:q2:q1:q0, s3:s2:s1:s0 .reg r3:r2:r1:r0 QMPY32 s3:s2:s1:s0, q3:q2:q1:q0, r3:r2:r1:r0 .return r3:r2:r1:r0 .endproc

In Example 4, the expression "q3:q2:q1:q0" means that the first argument into the linear assembly function is a register quad. By the C calling conventions, the quad "q3:q2:q1:q0" symbols are mapped to register quad "a7:a6:a5:a4". When a register quad syntax is used as the argument to a .reg directive (as shown), it means that the four register symbols are constrained to be an aligned register quad when the compiler processes the linear assembler source and allocates actual registers that the register quad symbols map to "r3:r2:r1:r0" as shown.