This "OpenVMS MACRO-32 Porting and User’s Guide" (April 2001) provides comprehensive guidance for software engineers on how to port existing VAX MACRO code to an OpenVMS Alpha system using the MACRO-32 compiler. It also details the compiler's support for 64-bit addressing.
The document emphasizes that porting VAX MACRO code to Alpha requires significant changes due to fundamental architectural differences between VAX and Alpha, and because the MACRO-32 compiler behaves as an optimizing compiler rather than a direct assembler.
Key aspects covered include:
.CALL_ENTRY, .JSB_ENTRY, and .JSB32_ENTRY (critical for register preservation and argument handling), handling packed decimal and floating-point instructions (which are emulated on Alpha), and managing atomicity and granularity differences (requiring explicit directives or qualifiers)..BRANCH_LIKELY, .BRANCH_UNLIKELY), and leveraging compiler optimizations (like VAXREGS).$SETUP_CALL64, $PUSH_ARG64, $CALL64, $IS_32BITS, $IS_DESC64), directives (QUAD_ARGS), and Alpha instruction built-ins for manipulating 64-bit values and addresses.The guide serves as both a conceptual framework and a practical reference, highlighting that while MACRO-32 facilitates porting, new OpenVMS Alpha development is recommended to use higher-level languages.
Site structure and layout ©2025 Majenko Technologies