Document revision date: 30 March 2001

## OpenVMS MACRO-32 Porting and User's Guide

Previous | Contents | Index

Chapter 4
4 | Improving the Performance of Ported Code
4.1 | Aligning Data
4.1.1 | Alignment Assumptions
4.1.2 | Directives and Qualifier for Changing Alignment Assumptions
4.1.3 | Precedence of Alignment Controls
4.1.4 | Recommendations for Aligning Data
4.2 | Code Flow and Branch Prediction
4.2.1 | Default Code Flow and Branch Prediction
4.2.2 | Changing the Compiler's Branch Prediction
4.2.3 | How to Use .BRANCH_LIKELY
4.2.4 | How to Use .BRANCH_UNLIKELY
4.2.5 | Forward Jumps into Loops
4.3 | Code Optimization
4.3.1 | Using the VAXREGS Optimization
4.4 | Common-Based Referencing
4.4.1 | Creating a Prefix File for Common-Based Referencing
Chapter 5
5 | MACRO-32 Programming Support for 64-Bit Addressing
5.1 | Guidelines for 64-Bit Addressing
5.2 | New and Changed Components for 64-Bit Addressing
5.3 | Passing 64-Bit Values
5.3.1 | Calls with a Fixed-Size Argument List
5.3.1.1 | Usage Notes for $SETUP_CALL64, $PUSH_ARG64, and $CALL64
5.3.2 | Calls with a Variable-Size Argument List
5.4 | Declaring 64-Bit Arguments
5.4.1 | Usage Notes for QUAD_ARGS
5.5 | Specifying 64-Bit Address Arithmetic
5.5.1 | Dependence on Wrapping Behavior of Longword Operations
5.6 | Sign Extending and Checking
5.7 | Alpha Instruction Built-ins
5.8 | Calculating Page-Size Dependent Values
5.9 | Creating and Using Buffers in 64-Bit Address Space
5.10 | Coding for Moves Longer Than 64 KB
Part 2
Part 2 | Reference
Appendix A
Appendix A | Compiler Qualifiers
Command 1 | MACRO/MIGRATION
Appendix B
Appendix B | Compiler Directives
B.1 | Support of VAX MACRO Assembler Directives
B.2 | Compiler Directives
Command 2 | .BRANCH_LIKELY
Command 3 | .BRANCH_UNLIKELY
Command 4 | .CALL_ENTRY
Command 5 | .DEFINE_PAL
Command 6 | .DISABLE
Command 7 | .ENABLE
Command 8 | .EXCEPTION_ENTRY
Command 9 | .GLOBAL_LABEL
Command 10 | .JSB_ENTRY
Command 11 | .JSB32_ENTRY
Command 12 | .LINKAGE_PSECT
Command 13 | .PRESERVE
Command 14 | .SET_REGISTERS
Command 15 | .SYMBOL_ALIGNMENT
Appendix C
Appendix C | Compiler Built-Ins
C.1 | Alpha Instruction Built-Ins
C.2 | Alpha PALcode Built-Ins
Appendix D
Appendix D | Macros for Porting to OpenVMS Alpha
D.1 | Page-Related Calculations
Command 16 | $BYTES_TO_PAGES
Command 17 | $NEXT_PAGE
Command 18 | $PAGES_TO_BYTES
Command 19 | $PREVIOUS_PAGE
Command 20 | $ROUND_RETADR
Command 21 | $START_OF_PAGE
D.2 | Saving and Restoring Alpha Registers
Command 22 | $POP64
Command 23 | $PUSH64
D.3 | Locking Pages into a Working Set
D.3.1 | Image Initialization-Time Lockdown
Command 24 | $LOCK_PAGE_INIT
Command 25 | $LOCKED_PAGE_END
Command 26 | $LOCKED_PAGE_START
D.3.2 | On-the-Fly Lockdown
Command 27 | $LOCK_PAGE
Command 28 | $UNLOCK_PAGE
Appendix E
Appendix E | MACRO-32 Macros for 64-Bit Addressing
E.1 | Macros for Manipulating 64-Bit Addresses
Command 29 | $SETUP_CALL64
Command 30 | $PUSH_ARG64
Command 31 | $CALL64
E.2 | Macros for Checking Sign Extension and Descriptor Format
Command 32 | $IS_32BITS
Command 33 | $IS_DESC64
Index
| Index
Tables
3-1 | Image Initialization-Time Lockdown
3-2 | On-the-Fly Lockdown
3-3 | Image Initialization-Time Lockdown with the Same Code
5-1 | New and Changed Components for 64-Bit Addressing
5-2 | Passing 64-Bit Values with a Fixed-Size Argument List
A-1 | Compiler Qualifiers
B-1 | Operand Descriptors
C-1 | Alpha Instruction Built-Ins
C-2 | Alpha PALcode Built-Ins
D-1 | Shift Values

Previous | Next | Contents | Index

| privacy and legal statement |
5601PRO_CONTENTS_001.HTML