VMS Help  —  MACRO  /ALPHA  Lexical Operators, %TYPE  Example
             .macro IS_GR ARG
               .IF equal, %TYPE(ARG) & <MACRO64$TYPE_GENREG>
                .PRINT "ARG is not a general register"
               .ENDC
             .endm IS_GR
             IS_GR F11

      Initially, the first line of the IS_GR macro expands as the
      following:

             .IF equal, <%TYPE(F11) & MACRO64$TYPE_GENREG>

      After lexical processing, the statement appears as:

             .IF equal, <8192 & MACRO64$TYPE_GENREG>

      In this example, 8192 is the attribute value for a floating-
      point register. This value could change in subsequent releases.
      Use only the predefined attribute masks described in %TYPE
      Attributes. Since the attribute for a general register
      MACRO64$TYPE_GENREG is 4096, the expression evaluates as 0.

             <8192 & MACRO64$TYPE_GENREG>
Close Help