Digital Equipment Corporation Alpha Calling Standard

Order Number: XX-B0197-B8

This document defines the ALPHA calling standard, providing detailed specifications for how software components interact on ALPHA systems. It distinguishes between two primary "flavors" of the standard:

  1. ALPHA-64 Calling Standard: Designed for 64-bit address ALPHA environments (e.g., ALPHA/VMS, ULTRIX, OZIX). Its focus is on exploiting the architectural and performance advantages of ALPHA hardware. A key technical decision for ALPHA-64 is the use of a PC (Program Counter) mapped method for call chain navigation, chosen for its speed benefits.
  2. ALPHA-32 Calling Standard: Intended for 32-bit address ALPHA/VMS environments. Its overriding goal is to provide a high degree of compatibility with the existing VAX/VMS environment, simplifying coexistence and translation of VAX assembly code. For ALPHA-32, an FP (Frame Pointer) based method is used for call chain navigation, prioritizing VAX/VMS compatibility and rapid development.

Both standards cover:

  • Basic Considerations: Address and procedure representation, and conventions for integer and floating-point register usage.
  • Flow Control: Definition of procedure types (Stack Frame, Register Frame, No Frame), procedure descriptors, call chain mechanisms, transfer of control (including call conventions, linkage, calling computed addresses, and bound procedures), and required entry/exit code sequences.
  • Data Manipulation: Specifications for data types (atomic, string, miscellaneous, and unsupported), argument descriptors (byte-addressable and bit-addressable), and data passing mechanisms (immediate value, reference, descriptor), along with static data alignment and record format conventions.
  • Event Processing: Comprehensive details on exception handling (requirements, handler types, establishment, invocation, modification of exception records, completion, synchronization) and unwinding procedures (general and exit unwinds, initiation, completion, coexistence with setjmp/longjmp).
  • Multithreaded Environment Conventions: Defines the Thread Environment Block (TEB), stack limit checking, thread exit protocols, and thread private storage (TPS) management.
  • Run Time Generated Code: Guidelines and library functions for managing procedure descriptors and PC ranges for code generated at runtime, ensuring stack traceability.

The document is primarily intended for implementers of compilers, debuggers, runtime tools, runtime libraries, and operating systems, providing the rules for correct procedure operation in multilanguage and multithreaded user mode environments.

XX-B0197-B8
2000
291 pages
Quality

Original
12MB

Site structure and layout ©2025 Majenko Technologies