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