[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP OpenVMS Calling Standard


Previous Contents Index

Chapter 4
4 OpenVMS I64 Conventions
     4.1     Register Usage
         4.1.1         Partitioning
         4.1.2         I64 General Register Usage
         4.1.3         I64 Floating-Point Register Usage
         4.1.4         I64 Predicate Register Usage
         4.1.5         I64 Branch Register Usage
         4.1.6         I64 Application Register Usage
         4.1.7         Floating-Point Status
         4.1.8         User Mask
         4.1.9         Additional Register Usage Information
     4.2     Address Representation
     4.3     Procedure Representation
     4.4     Procedure Types
     4.5     Memory Stack
         4.5.1         Procedure Frames
         4.5.2         Stack Overflow Detection
             4.5.2.1             Stack Limit Checking
             4.5.2.2             Methods for Stack Limit Checking
     4.6     Register Stack
         4.6.1         Input and Local Registers
         4.6.2         Output Registers
         4.6.3         Rotating Registers
         4.6.4         Frame Markers
         4.6.5         Backing Store for Register Stack
     4.7     Procedure Linkage
         4.7.1         The GP Register
         4.7.2         Types of Calls
         4.7.3         Calling Sequence
             4.7.3.1             Direct Calls
             4.7.3.2             Indirect Calls
         4.7.4         Parameter Passing
         4.7.5         Parameter Passing Mechanisms
             4.7.5.1             Allocation of Parameter Slots
             4.7.5.2             Normal Register Parameters
             4.7.5.3             Argument Information (AI) Register
             4.7.5.4             Memory Stack Parameters
             4.7.5.5             Variable Argument Lists
             4.7.5.6             Pointers to Formal Parameters
             4.7.5.7             Languages Other than C
             4.7.5.8             Rounding Floating-point Values
             4.7.5.9             Order of Argument Evaluation
             4.7.5.10             Examples
         4.7.6         Return Values
         4.7.7         Simple and Bound Procedures
     4.8     Procedure Call Stack
         4.8.1         Current Procedure
         4.8.2         Procedure Call Tracing
             4.8.2.1             Invocation Context Block
             4.8.2.2             Invocation Context Handle
         4.8.3         Invocation Context Block Access Routines
             4.8.3.1             Initializing the Invocation Context Block
             4.8.3.2             Walking the Call Stack
             4.8.3.3             LIB$I64_CREATE_INVO_CONTEXT
             4.8.3.4             LIB$I64_FREE_INVO_CONTEXT
             4.8.3.5             LIB$I64_INIT_INVO_CONTEXT
             4.8.3.6             LIB$I64_GET_INVO_CONTEXT
             4.8.3.7             LIB$I64_GET_CURR_INVO_CONTEXT
             4.8.3.8             LIB$I64_GET_PREV_INVO_CONTEXT
             4.8.3.9             LIB$I64_GET_INVO_HANDLE
             4.8.3.10             LIB$I64_GET_CURR_INVO_HANDLE
             4.8.3.11             LIB$I64_GET_PREV_INVO_HANDLE
             4.8.3.12             LIB$I64_PREV_INVO_END
             4.8.3.13             LIB$I64_PUT_INVO_REGISTERS
         4.8.4         Supplemental Invocation Context Access Routines
             4.8.4.1             LIB$I64_GET_FR
             4.8.4.2             LIB$I64_SET_FR
             4.8.4.3             LIB$I64_GET_GR
             4.8.4.4             LIB$I64_SET_GR
             4.8.4.5             LIB$I64_SET_PC
             4.8.4.6             LIB$I64_GET_UNWIND_LSDA
             4.8.4.7             LIB$I64_GET_UNWIND_OSSD
             4.8.4.8             LIB$I64_GET_UNWIND_HANDLER_FV
             4.8.4.9             LIB$I64_IS_EXC_DISPATCH_FRAME
             4.8.4.10             LIB$I64_IS_AST_DISPATCH_FRAME
         4.8.5         Invocation Context Callback Routines
             4.8.5.1             The Get Unwind Information Routine
             4.8.5.2             The Get Initial Context Routine
             4.8.5.3             The Read Memory Routine
             4.8.5.4             The Write Memory Routine
             4.8.5.5             The Write Register Routine
             4.8.5.6             The Memory Allocation Routine
             4.8.5.7             The Memory Deallocation Routine
     4.9     Data Allocation
         4.9.1         Alignment
         4.9.2         Global Data
         4.9.3         Local Static Data
         4.9.4         Constants and Literals
         4.9.5         Record Layout Conventions
             4.9.5.1             Aligned Record Layout
             4.9.5.2             OpenVMS VAX Compatible Record Layout
         4.9.6         Sample Code Sequences
             4.9.6.1             Addressing Own Data in the Short Data Area
             4.9.6.2             Addressing External Data or Data in a Long Data Area
             4.9.6.3             Addressing Literals in the Text Segment
             4.9.6.4             Materializing Function Pointers
             4.9.6.5             Jump Tables
                 4.9.6.5.1                 Preferred Method
                 4.9.6.5.2                 Alternative Method


Previous Next Contents Index