HP OpenVMS Systems Documentation
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