| Title and Copyright Information |
| About This Manual |
| Audience |
| New and Changed Features |
| Organization |
| Related Documents |
| Reader's Comments |
| Conventions |
| 1 | Architecture-Based Considerations |
| 1.1 | Registers |
| 1.1.1 | Integer Registers |
| 1.1.2 | Floating-Point Registers |
| 1.2 | Bit and Byte Ordering |
| 1.3 | Addressing |
| 1.3.1 | Aligned Data Operations |
| 1.3.2 | Unaligned Data Operations |
| 1.4 | Exceptions |
| 1.4.1 | Main Processor Exceptions |
| 1.4.2 | Floating-Point Processor Exceptions |
| 2 | Lexical Conventions |
| 2.1 | Blank and Tab Characters |
| 2.2 | Comments |
| 2.3 | Identifiers |
| 2.4 | Constants |
| 2.4.1 | Scalar Constants |
| 2.4.2 | Floating-Point Constants |
| 2.4.3 | String Constants |
| 2.5 | Multiple Lines Per Physical Line |
| 2.6 | Statements |
| 2.6.1 | Labels |
| 2.6.2 | Null Statements |
| 2.6.3 | Keyword Statements |
| 2.6.4 | Relocation Operands |
| 2.7 | Expressions |
| 2.7.1 | Expression Operators |
| 2.7.2 | Expression Operator Precedence Rules |
| 2.7.3 | Data Types |
| 2.7.4 | Type Propagation in Expressions |
| 2.8 | Address Formats |
| 3 | Main Instruction Set |
| 3.1 | Load and Store Instructions |
| 3.1.1 | Load Instruction Descriptions |
| 3.1.2 | Store Instruction Descriptions |
| 3.2 | Arithmetic Instructions |
| 3.3 | Logical and Shift Instructions |
| 3.4 | Relational Instructions |
| 3.5 | Move Instructions |
| 3.6 | Control Instructions |
| 3.7 | Byte-Manipulation Instructions |
| 3.8 | Special-Purpose Instructions |
| 4 | Floating-Point Instruction Set |
| 4.1 | Background Information on Floating-Point Operations |
| 4.1.1 | Floating-Point Data Types |
| 4.1.2 | Floating-Point Control Register |
| 4.1.3 | Floating-Point Exceptions |
| 4.1.4 | Floating-Point Rounding Modes |
| 4.1.5 | Floating-Point Instruction Qualifiers |
| 4.2 | Floating-Point Load and Store Instructions |
| 4.3 | Floating-Point Arithmetic Instructions |
| 4.4 | Floating-Point Relational Instructions |
| 4.5 | Floating-Point Move Instructions |
| 4.6 | Floating-Point Control Instructions |
| 4.7 | Floating-Point Special-Purpose Instructions |
| 5 | Assembler Directives |
| 6 | Programming Considerations |
| 6.1 | Calling Conventions |
| 6.2 | Program Model |
| 6.3 | General Coding Concerns |
| 6.3.1 | Register Use |
| 6.3.2 | Using Directives to Control Sections and Location Counters |
| 6.3.3 | The Stack Frame |
| 6.3.4 | Coding Examples |
| 6.4 | Developing Code for Procedure Calls |
| 6.4.1 | Calling a High-Level Language Procedure |
| 6.4.2 | Calling an Assembly Language Procedure |
| 6.5 | Memory Allocation |
| A | Instruction Summaries |
| B | 32-Bit Considerations |
| B.1 | Canonical Form |
| B.2 | Longword Instructions |
| B.3 | Quadword Instructions for Longword Operations |
| B.4 | Logical Shift Instructions |
| B.5 | Conversions to Quadword |
| B.6 | Conversions to Longword |
| C | Basic Machine Definition |
| C.1 | Implicit Register Use |
| C.2 | Addresses |
| C.3 | Immediate Values |
| C.4 | Load and Store Instructions |
| C.5 | Integer Arithmetic Instructions |
| C.6 | Floating-Point Load Immediate Instructions |
| C.7 | One-to-One Instruction Mappings |
| D | PALcode Instruction Summaries |
| D.1 | Unprivileged PALcode Instructions |
| D.2 | Privileged PALcode Instructions |
| Examples |
| 6-1 | Nonleaf Procedure |
| 6-2 | Leaf Procedure Without Stack Space for Local Variables |
| 6-3 | Leaf Procedure with Stack Space for Local Variables |
| Figures |
| 1-1 | Byte Ordering |
| 4-1 | Floating-Point Data Formats |
| 4-2 | Floating-Point Control Register |
| 6-1 | Sections and Location Counters for Nonshared Object Files |
| 6-2 | Stack Organization |
| 6-3 | Default Layout of Memory (User Program View) |
| Tables |
| 2-1 | Backslash Conventions |
| 2-2 | Expression Operators |
| 2-3 | Operator Precedence |
| 2-4 | Data Types |
| 2-5 | Address Formats |
| 3-1 | Load and Store Formats |
| 3-2 | Load Instruction Descriptions |
| 3-3 | Store Instruction Descriptions |
| 3-4 | Arithmetic Instruction Formats |
| 3-5 | Arithmetic Instruction Descriptions |
| 3-6 | Logical and Shift Instruction Formats |
| 3-7 | Logical and Shift Instruction Descriptions |
| 3-8 | Relational Instruction Formats |
| 3-9 | Relational Instruction Descriptions |
| 3-10 | Move Instruction Formats |
| 3-11 | Move Instruction Descriptions |
| 3-12 | Control Instruction Formats |
| 3-13 | Control Instruction Descriptions |
| 3-14 | Byte-Manipulation Instruction Formats |
| 3-15 | Byte-Manipulation Instruction Descriptions |
| 3-16 | Special-Purpose Instruction Formats |
| 3-17 | Special-Purpose Instruction Descriptions |
| 4-1 | Qualifier Combinations for Floating-Point Instructions |
| 4-2 | Load and Store Instruction Formats |
| 4-3 | Load and Store Instruction Descriptions |
| 4-4 | Arithmetic Instruction Formats |
| 4-5 | Arithmetic Instruction Descriptions |
| 4-6 | Relational Instruction Formats |
| 4-7 | Relational Instruction Descriptions |
| 4-8 | Move Instruction Formats |
| 4-9 | Move Instruction Descriptions |
| 4-10 | Control Instruction Formats |
| 4-11 | Control Instruction Descriptions |
| 4-12 | Special-Purpose Instruction Formats |
| 4-13 | Control Register Instruction Descriptions |
| 5-1 | Summary of Assembler Directives |
| 6-1 | Integer Registers |
| 6-2 | Floating-Point Registers |
| 6-3 | Argument Locations |
| A-1 | Main Instruction Set Summary |
| A-2 | Floating-Point Instruction Set Summary |
| A-3 | Rounding and Trapping Modes |
| D-1 | Unprivileged PALcode Instructions |
| D-2 | Privileged PALcode Instructions |
| Index |