| Appendix B | 
  
  
    | 
      Appendix B
     | 
    
      Alpha Object Language
     | 
  
  
    | 
           B.1
     | 
    
          Object Language Overview
     | 
  
  
    | 
           B.2
     | 
    
          Module Header Records (EOBJ$C_EMH)
     | 
  
  
    | 
               B.2.1
     | 
    
              Main Module Header Record (EMH$C_MHD)
     | 
  
  
    | 
               B.2.2
     | 
    
              Language Processor Name Header Record (EMH$C_LNM)
     | 
  
  
    | 
               B.2.3
     | 
    
              Source Files Header Record (EMH$C_SRC)
     | 
  
  
    | 
               B.2.4
     | 
    
              Title Text Header Record (EMH$C_TTL)
     | 
  
  
    | 
           B.3
     | 
    
          Global Symbol Directory Records (EOBJ$C_EGSD)
     | 
  
  
    | 
               B.3.1
     | 
    
              Program Section Definition Subrecords (EGSD$C_PSC, EGSD$C_PSC64,  EGSD$C_SPSC, EGSD$C_SPSC64)
     | 
  
  
    | 
                   B.3.1.1
     | 
    
                  Normal Program Section Definition Subrecord (EGSD$C_PSC, EGSD$C_PSC64)
     | 
  
  
    | 
                   B.3.1.2
     | 
    
                  Program-Section-Definition-in-Shareable-Image Subrecord  (GSD$C_SPSC, EGSD$C_SPSC64)
     | 
  
  
    | 
                   B.3.1.3
     | 
    
                  Standard Program Section Names and Attributes
     | 
  
  
    | 
               B.3.2
     | 
    
              Global Symbol Specification Subrecords (EGSD$C_SYM, EGSD$C_SYMG)
     | 
  
  
    | 
                   B.3.2.1
     | 
    
                  GSD Subrecord for a Global Symbol Definition (EGSD$C_SYM with  EGSY$V_DEF Set)
     | 
  
  
    | 
                   B.3.2.2
     | 
    
                  GSD Subrecord for a Universal Symbol Definition (EGSD$C_SYMG)  
     | 
  
  
    | 
                   B.3.2.3
     | 
    
                  GSD Subrecord for a Symbol Reference
     | 
  
  
    | 
               B.3.3
     | 
    
              Entity-Ident-Consistency-Check Subrecord  (EGSD$C_IDC)
     | 
  
  
    | 
               B.3.4
     | 
    
              GSD Subrecords Reserved to the OpenVMS Operating System (EGSD$C_SYMV, EGSD$C_SYMM)
     | 
  
  
    | 
                   B.3.4.1
     | 
    
                  Vectored-Symbol-Definition Subrecord  (EGSD$C_SYMV)
     | 
  
  
    | 
                   B.3.4.2
     | 
    
                  Symbol-Definition-with-Version-Mask Subrecord  (EGSD$C_SYMM)
     | 
  
  
    | 
           B.4
     | 
    
          Text Information and Relocation Records (EOBJ$C_ETIR)
     | 
  
  
    | 
               B.4.1
     | 
    
              Stack Commands
     | 
  
  
    | 
               B.4.2
     | 
    
              Store Commands
     | 
  
  
    | 
               B.4.3
     | 
    
              Operator Commands
     | 
  
  
    | 
               B.4.4
     | 
    
              Control Commands
     | 
  
  
    | 
               B.4.5
     | 
    
              Conditional Store Commands
     | 
  
  
    | 
                   B.4.5.1
     | 
    
                  Defining Conditional Linkage with Address-Related Commands
     | 
  
  
    | 
                   B.4.5.2
     | 
    
                  Optimizing Instructions with Instruction-Related  Commands
     | 
  
  
    | 
                       B.4.5.2.1
     | 
    
                      Calculating JSR Hints
     | 
  
  
    | 
           B.5
     | 
    
          End-of-Module Record (EOBJ$C_EEOM)
     | 
  
  
    | 
           B.6
     | 
    
          Debugger Information Records (EOBJ$C_EDBG)
     | 
  
  
    | 
           B.7
     | 
    
          Traceback Information Records (EOBJ$C_ETBT)
     | 
  
  
    | Index | 
  
    Index | 
  
  
    | Examples | 
  
  
    | 1-1 | 
    Hello World! Program (HELLO.C) | 
  
  
    | 1-2 | 
    Sample Linker Options File | 
  
  
    | 2-1 | 
    Module Containing a Symbolic Reference: my_main.c | 
  
  
    | 2-2 | 
    Module Containing a Symbol Definition: my_math.c | 
  
  
    | 3-1 | 
    Sample Program MYTEST.C | 
  
  
    | 3-2 | 
    Sample Program MYADD.C | 
  
  
    | 3-3 | 
    Sample Program MYSUB.C | 
  
  
    | 3-4 | 
    Program Sections Generated by Example 3-1 | 
  
  
    | 3-5 | 
    Linking Examples 3-1, 3-2, and 3-3 | 
  
  
    | 3-6 | 
    Image Section Information in a Map File | 
  
  
    | 3-7 | 
    Program Section Information in a Map File (VAX Example) | 
  
  
    | 3-8 | 
    Image Section Descriptions in an ANALYZE/IMAGE Display | 
  
  
    | 3-9 | 
    Image Section Synopsis of Second Link | 
  
  
    | 4-1 | 
    Shareable Image Test Module: my_main.c | 
  
  
    | 4-2 | 
    Shareable Image: my_math.c | 
  
  
    | 4-3 | 
    Transfer Vector for the Shareable Image MY_MATH.EXE | 
  
  
    | Figures | 
  
  
    | 1-1 | 
    Position of the Linker in Program Development | 
  
  
    | 2-1 | 
    Symbol Vector Contents | 
  
  
    | 2-2 | 
    Symbol Resolution | 
  
  
    | 2-3 | 
    Clusters Created for Sample Link | 
  
  
    | 2-4 | 
    Linker Processing of Default Libraries and SYS$BASE_IMAGE.EXE | 
  
  
    | 3-1 | 
    Communication of Image Memory Requirements | 
  
  
    | 3-2 | 
    Program Sections Created for Examples 3-1, 3-2, and 3-3 | 
  
  
    | 3-3 | 
    Combining Program Sections into Image Sections | 
  
  
    | 4-1 | 
    Comparison of UNIVERSAL = Option and Transfer Vectors | 
  
  
    | 4-2 | 
    Accessing Universal Symbols Specified Using the SYMBOL_VECTOR = Option | 
  
  
    | A-1 | 
    Order of Records in an Object Module | 
  
  
    | A-2 | 
    GSD Record with Multiple Subrecords | 
  
  
    | B-1 | 
    Order of Records in an Object Module | 
  
  
    | B-2 | 
    Module Header Record with Subrecords | 
  
  
    | B-3 | 
    GSD Subrecord for a Program Section Definition | 
  
  
    | B-4 | 
    GSD Subrecord for a Shareable Image Program Section Definition | 
  
  
    | B-5 | 
    GSD Subrecord for a Global Symbol Definition (Data) | 
  
  
    | B-6 | 
    GSD Subrecord for a Global Symbol Definition (Procedure) | 
  
  
    | B-7 | 
    GSD Subrecords for Universal Data Definition | 
  
  
    | B-8 | 
    GSD Subrecord for a Universal Procedure Definition | 
  
  
    | B-9 | 
    GSD Subrecord for a Global Symbol Reference (EGSD$C_SYM with EGSY$V_DEF Clear) | 
  
  
    | B-10 | 
    GSD Subrecord for an Entity Ident Consistency Check | 
  
  
    | B-11 | 
    Optimization of a Standard Call | 
  
  
    | B-12 | 
    Calculating a Hint to a Shareable Image | 
  
  
    | B-13 | 
    End-of-Module Record | 
  
  
    | Tables | 
  
  
    | 1-1 | 
    Input Files Accepted by the Linker | 
  
  
    | 1-2 | 
    Output Files Generated by the Linker | 
  
  
    | 1-3 | 
    Linker Qualifiers | 
  
  
    | 1-4 | 
    Linker Options | 
  
  
    | 1-5 | 
    Logical Names for Cross-Architecture Linking | 
  
  
    | 2-1 | 
    Linker Input File Processing | 
  
  
    | 2-2 | 
    Linker Input File Cluster Processing | 
  
  
    | 3-1 | 
    Program Section Attributes | 
  
  
    | 3-2 | 
    Mapping Program Section Attributes to Image Section Attributes for Executable Images | 
  
  
    | 3-3 | 
    Mapping Program Section Attributes to Image Section Attributes for Shareable Images | 
  
  
    | 3-4 | 
    Significant Attributes of Program Sections in MYSUB_CLUS Cluster | 
  
  
    | 3-5 | 
    Image Section Attributes | 
  
  
    | 4-1 | 
    Linker Qualifiers and Options Used to Create Shareable Images | 
  
  
    | 5-1 | 
    LINK Command Map File Qualifiers | 
  
  
    | 5-2 | 
    Image Map Sections | 
  
  
    | 5-3 | 
    Symbol Characterization Codes | 
  
  
    | A-1 | 
    Types of GSD Subrecords | 
  
  
    | A-2 | 
    Alignment Field Values | 
  
  
    | A-3 | 
    Stack Commands | 
  
  
    | A-4 | 
    Store Commands | 
  
  
    | A-5 | 
    Operator Commands | 
  
  
    | A-6 | 
    Control Commands | 
  
  
    | B-1 | 
    Object Record Types | 
  
  
    | B-2 | 
    Relationships of Structures in the Alpha Object Language | 
  
  
    | B-3 | 
    Key to Structure Prefixes | 
  
  
    | B-4 | 
    Module Header Subrecords | 
  
  
    | B-5 | 
    Types of GSD Subrecords | 
  
  
    | B-6 | 
    Alignment Field Values | 
  
  
    | B-7 | 
    Standard Program Sections | 
  
  
    | B-8 | 
    Stack Commands | 
  
  
    | B-9 | 
    Store Commands | 
  
  
    | B-10 | 
    Operator Commands | 
  
  
    | B-11 | 
    Control Commands | 
  
  
    | B-12 | 
    Summary of Store Conditional Commands for Linkage | 
  
  
    | B-13 | 
    Contents of Linkage When Symbol Is Local to the Image | 
  
  
    | B-14 | 
    Contents of Linkage When Symbol Is External to the Image | 
  
  
    | B-15 | 
    Summary of Store Conditional Commands for Instruction Replacement |