SC100 C Compiler
xvii
5-21
5-22
5-23
5-24
5-25
5-26
5-27
5-28
5-29
5-30
5-31
5-32
5-33
5-34
5-35
5-36
5-37
6-1
6-2
6-3
6-4
6-5
6-6
6-8
6-7
6-9
6-10
6-11
6-12
6-13
6-14
6-15
7-1
7-2
7-3
7-4
7-5
Instruction scheduling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21
Filling delay slots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21
Avoiding pipeline restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22
Software pipelining - complex FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23
Software pipelining - vector multiplication by a constant . . . . . . . . . . . . . . . . 5-24
Conditional execution and predication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25
Speculative execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26
Post-increment detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27
Low-level peephole optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28
Combined pipelining and peephole optimizations . . . . . . . . . . . . . . . . . . . . . . 5-28
Simple and complex array accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-31
MAC usage limited by dependency in loop . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-32
Partial summation for dual MAC usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-33
Alignment restrictions in algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-34
Single instruction quad ALU generic filter kernel . . . . . . . . . . . . . . . . . . . . . . 5-41
FIR_A4S4 quad ALU, quad sample C simulation code. . . . . . . . . . . . . . . . . . 5-41
Avoiding software pipelining in source code. . . . . . . . . . . . . . . . . . . . . . . . . . 5-43
Creating a new startup file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Assembling the modified startup file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Using the modified startup file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Big and small memory models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
Small memory mode instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
Allocating large arrays from the heap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
Modified memory configuration in the linker command file. . . . . . . . . . . . . . . 6-9
Modified memory map configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
Defining a data memory space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
Defining a program memory space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
Defining multiple memory spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
Defining additional entry points for an application . . . . . . . . . . . . . . . . . . . . . 6-15
Placing a variable at an absolute location. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
Defining global variable overlays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17
Function call and allocation of parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19
Changing the round mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
Disabling flushing to zero. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
Using the exception status word. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
Setting a signal for exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6
Timing an application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19