SC100 C Compiler
xiii
1-1
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9
3-10
3-11
3-12
3-13
5-1
5-2
5-3
5-4
5-5
5-6
5-7
5-8
5-9
5-10
5-11
5-12
5-13
5-14
6-1
6-2
The SC100 C Compilation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
The C Compilation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Non-Global Optimization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Global Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
File Extensions in the Shell Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Characters—Memory Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38
Characters—Dn Register Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38
Characters—Rn Register Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38
Integers—Memory Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39
Integers—Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39
Integers—Dn Register Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40
Integers—Rn Register Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40
Fractional Integers—Dn Register Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-41
Extended Precision Fractional—Dn Register Layout. . . . . . . . . . . . . . . . . . . . 3-46
Linear and Parallelized Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3
Square Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14
Triangular Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
Sequence of Low-Level Transformation Optimizations . . . . . . . . . . . . . . . . . 5-20
Single Sample and Multisample Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-35
Single ALU Operand and Memory Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . 5-36
Quad ALU Operand and Memory Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . 5-36
Options for Increasing Operand Bandwidth. . . . . . . . . . . . . . . . . . . . . . . . . . . 5-37
Number of Samples and ALUs for Implementing DSP Algorithms . . . . . . . . 5-37
Quad Coefficient Loading from Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-38
Misalignment when Loading Quad Operands . . . . . . . . . . . . . . . . . . . . . . . . . 5-38
Quad ALU, Quad Sample FIR Filter Data Flow . . . . . . . . . . . . . . . . . . . . . . . 5-39
FIR Filter Equations for Four Samples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-40
Generic Kernel For Quad ALU FIR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-40
SC100 Default Memory Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
Stack Frame Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21
List of Figures