VMS Help  —  MACRO  /ALPHA  Supplied Library Macros, $CALL  Parameters
 NAME

    The name of the routine to call. This argument is required.

 Rls

    Linkage section register to use when generating the LDQ, LDQ, JSR
    instruction sequence. This argument is optional.

    If Rls is omitted, $CALL assumes that you entered a .BASE
    directive before invoking $CALL that establishes the value of a
    base register pointing into the linkage section. If you omit the
    Rls argument and you do not enter such a .BASE directive before
    invoking $CALL, the assembler issues the following error message
    during the $CALL macro expansion:

        "Argument 2 invalid"  The assembler failed to find a
         base register specified with a previous .BASE directive
         to form a register expression of the form offset(Rn)"

 LS

    LS is the address of the linkage section. If you use $CALL within
    a routine defined by the $ROUTINE macro, the LS argument defaults
    to the $LS symbol defined by $ROUTINE. If you use $CALL outside
    of a routine defined by the $ROUTINE macro, there are two ways
    that you can indicate the location of the linkage section to
    $CALL. First, you can specify the LS argument to $CALL as a
    relocatable address expression that indicates the base of the
    linkage section. In this case you must also specify the Rls
    argument. Second, you can specify both the linkage-section base
    register and the linkage-section address in a .BASE directive
    before invoking $CALL. In this case, you must omit both the Rls
    and LS arguments to $CALL.

    Digital recommends that you omit this argument if you use $CALL
    within a routine defined by the $ROUTINE macro.

 LOCAL

    A Boolean value (TRUE or FALSE) that specifies whether the
    routine to be called is local to the module or globally visible.
    By default, $CALL generates a call to a globally visible routine.
    To generate a call to a routine that is not globally visible, you
    must specify LOCAL=TRUE.

 ARGS

    An optional list of arguments to pass to the called routine.
    Enclose the argument list within angle brackets (<>)  and
    separate the arguments with commas (,).  You can use the
    following qualifiers with each argument you specify with the
    ARGS argument. These qualifiers are described in the following
    table.

    Each argument is an address expression (which may include a
    register) followed by a qualifier. The table also contains
    the argument type, the instruction used to load the argument
    into a register, the instruction used to store the argument on
    the stack, and the encodings used in the Argument Information
    Register (R25) in the call signature block when you specify
    TIE=TRUE. See the OpenVMS Calling Standard for more information
    on these encodings. Note that arguments are only stored on
    the stack if there are more than six arguments provided to the
    routine.

                                    ARGS Arguments
 _________________________________________________________________________
 Argument
           Argument   LOAD        STORE       AI       Reg Arg   Mem Arg
 Qualifier Type       Instruction Instruction Encoding Signature Signature
 _________________________________________________________________________
Additional Information: explode extract

/A Address LDA STQ I64 I32 I32
/D D-floating LDG STG FD FD Q
/F F-floating LDF STF FF FF I32
/G G-floating LDG STG FG FG Q
/L Longword LDL STQ I64 I32 I32
/Q Quadword LDQ STQ I64 Q Q
/S S-floating LDS STS FS FS I32
/T T-floating LDT STT FT FT Q
/UL(1) Unsigned LDL STQ I64 U32 I32
Close Help