Contents
xviii
Notes
Case Sensitivity in Filename Extensions 2-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
No Default Extension for Source Files is Assume 2-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Path Information in Angle Brackets 2-27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Function Inlining Can Greatly Increase Code Size 2-36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RTS Library Files Are Not Built With –mi Option 2-41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Do Not Lower the Optimization Level to Control Code Size 3-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The –on Option Applies to the Assembly Optimizer 3-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Software Pipelining Can Significantly Increase Code Size 3-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
More Details on Software Pipelining Information 3-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Turning Off Redundant Loops 3-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Turning Off Redundant Loops 3-17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disabling Code-Size Optimizations or Reducing the Optimization Level 3-17. . . . . . . . . . . . . . . . . . . .
Do Not Lower the Optimization Level to Control Code Size 3-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
–o3 Optimization and Inlining 3-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inlining and Code Size 3-29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Impact on Performance and Code Size 3-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The –g or –gw Option Causes Performance and Code Size Degradations 3-33. . . . . . . . . . . . . . . . . .
Profile Points 3-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Finer Grained Profiling 3-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Do Not Use Scheduled Assembly Code as Source 4-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reserving Registers A4 and A5 4-30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Dependency Exception 4-44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Dependence/Bank Conflict 4-47. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The _c_int00 Symbol 5-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining Global Variables in Assembly Code 7-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Avoid Disrupting the C/C++ Environment With asm Statements 7-17. . . . . . . . . . . . . . . . . . . . . . . . . . .
The Linker Defines the Memory Map 8-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Use Only Code in Program Memory 8-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stack Overflow 8-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intrinsic Instructions in C versus Assembly Language 8-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C++ Syntax for _nassert 8-36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the asm Statement 8-38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initializing Variables 8-46. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Use Unique Function Names 9-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Writing Your Own Clock Function 9-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Writing Your Own Clock Function 9-50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
No Previously Allocated Objects Are Available After minit 9-75. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The time Function Is Target-System Specific 9-103. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .