Download SDK_Reference_Manual..
Transcript
SDK Reference Manual 11.6 Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 11.6.1 11.7 11.9 Pointer dereferencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 11.7.1 11.8 Table of contents Casting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 11.8.1 Poly flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 11.8.2 If statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 11.8.3 Switch statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 11.8.4 For, while and do...while loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 11.9.1 Function multiplicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 11.9.2 Returning from functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 11.10 Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.10.1 Including assembler macros in Cn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.10.2 Forcing the alignment of identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.10.3 Generating jump tables for switch statements . . . . . . . . . . . . . . . . . . . 125 11.10.4 Unrolling loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 11.10.5 Moving code to on-chip memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 11.10.6 Setting stack sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.10.7 Controlling inlining functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.11 Inline assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.11.1 Enable state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.11.2 Use of variables within assembler code . . . . . . . . . . . . . . . . . . . . . . . 128 11.11.3 Specifying constraints on register use . . . . . . . . . . . . . . . . . . . . . . . . . 129 11.11.4 Constraint directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.11.5 Inline assembly example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.12 Vector intrinsics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.13 Operator overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 11.14 Supported intrinsics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 11.14.1 Arithmetic operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 11.14.2 Cast operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 11.14.3 Reduce operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.14.4 Selection operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.14.5 Constructor operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 11.15 Reserved keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 11.16 Supported operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Document No. 06-RM-1600 Revision: 2.B ClearSpeed Technology Ltd 9