User`s guide

3
Recommended and Required Source Changes
This chapter describes the coding constructs you should examine when porting
VAX MACRO code to OpenVMS Alpha or OpenVMS I64. The occurrence of any of
these in a module can make porting take longer than it would otherwise.
The compiler cannot transparently convert all VAX MACRO code. There are
many coding practices that cannot be directly compiled into OpenVMS Alpha or
OpenVMS I64 code, although the compiler can detect many of these practices and
flag them with diagnostic messages. You must remove or modify these coding
practices must to guarantee a successful compilation.
In most cases, it will be necessary to change your source code. The exceptions are
noted.
This chapter contains the following topics:
• Section 3.1, Stack Usage
• Section 3.2, Instruction Stream
• Section 3.3, Flow Control Mechanisms
• Section 3.4, Dynamic Image Relocation
• Section 3.5, Overwriting Static Data
• Section 3.6, Static Initialization Using External Symbols
• Section 3.7, Transfer Vectors
• Section 3.8, Arithmetic Exceptions
• Section 3.9, Page Size
• Section 3.10, Locking Pages into a Working Set
• Section 3.11, Synchronization
3.1 Stack Usage
The OpenVMS calling standard defines a stack frame format for OpenVMS
Alpha and OpenVMS I64 systems substantially different from that defined for
OpenVMS VAX systems. If your code relies on the format of the OpenVMS VAX
stack frame, you will need to change it when porting it to an OpenVMS Alpha or
OpenVMS I64 system.
Recommended and Required Source Changes 3–1