- •IMPORTANT NOTICE
- •Read This First
- •About This Manual
- •Notational Conventions
- •Related Documentation From Texas Instruments
- •Trademarks
- •Contents
- •Tables
- •Examples
- •Getting Started With ppca
- •About ppca
- •Program Development
- •Invoking ppca
- •Summary of Directives
- •Using ppca
- •Declaring Variables
- •Dummy Variables
- •Defining Entry Points
- •Specifying Program Flow
- •Specifying a branch to a label inside the current file
- •The .ujump directive
- •The .cjump directive
- •Specifying a branch or return to a point outside the current file
- •Calling external subroutines
- •Reserving Registers
- •Controlling Register and Variable Lifetime
- •Controlling Compaction
- •The register move instruction
- •The pack directives
- •Controlling Scheduling
- •Copying the Contents of an Include File
- •Compacting Before Register Allocation
- •ppca Outputs
- •Output Format
- •Variable Naming Conventions
- •Variable-Usage Table
- •Opcode-Usage Table
- •Progress and Error Messages
- •Parse-stage messages
- •Register-allocation messages
- •Compaction messages
- •Known Deficiencies
Contents
Contents
1 Getting Started With ppca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Explains the functionality of the tool and how to invoke it. Also summarizes the ppca directives.
1.1 About ppca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 1.2 Program Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 1.3 Invoking ppca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 1.4 Summary of Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
2 Using ppca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Explains how to use the tool to control program functions. Includes descriptions of the tool's directives.
2.1 Declaring Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Dummy Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 2.2 Defining Entry Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.3 Specifying Program Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Specifying a branch to a label inside the current file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 The .ujump directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 The .cjump directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 Specifying a branch or return to a point outside the current file . . . . . . . . . . . . . . . . . . . . 2-8 Calling external subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
2.4 Reserving Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 2.5 Controlling Register and Variable Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 2.6 Controlling Compaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 The register move instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 The pack directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
2.7 Controlling Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14 2.8 Copying the Contents of an Include File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15 2.9 Compacting Before Register Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
ix
Contents
3 ppca Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
3-1 |
Describes the various outputs produced by the tool.
3.1 Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Variable Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Variable-Usage Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Opcode-Usage Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
3.2 Progress and Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Parse-stage messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Register-allocation messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
Compaction messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
A Known Deficiencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
A-1 |
Lists the deficiencies that are known to exist in this release.
x
Tables
Tables
1±1 |
Summary of Allocation and Compaction Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
1-5 |
2±1 |
Variable Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
2-2 |
Examples
2±1 Using dummy variables to store instruction results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 2±2 Using .live to achieve a read of a dummy variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 2±3 Using .ujump to specify an unconditional branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 2±4 Using .cjump to specify a conditional branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 2±5 Using .cjump with multiple labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 2±6 Using .uexit to specify an unconditional branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 2±7 Using .cexit to specify a conditional branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 2±8 Using .cjump and .ujump when indicating subroutine calls . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 2±9 Using .entry to specify outputs from a subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 2±10 Using .lock and .free to reserve and free registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 2±11 Loop containing an uninitialized register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 2±12 Using .live to indicate the lifetime of register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 2±13 Copying the contents of an include file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15 3±1 Variable-Usage Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 3±2 Opcode-Usage Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Contents xi
