VMS Help
MACRO, MACRO Compiler Directives, .USE LINKAGE
*Conan The Librarian
|
OpenVMS I64 only.
Establishes a temporary named or anonymous linkage that will
be used by the compiler for the next CALLS, CALLG, JSB, BSBB,
or BSBW instruction processed in lexical order. This directive
is used when the target of the next CALLS, CALLG, JSB, BSBB,
or BSBW instruction is not a name, but a run-time value (for
example, CALLS #0, (R6)). When the compiler sees the next
CALLS, CALLG, JSB, BSBB, or BSBW instruction, it will use the
associated linkage to decide which registers need to be saved and
restored around the call. After the instruction is processed, the
temporary linkage is reset to null.
Format
.USE_LINKAGE [linkage_name] [,input] [,output] [,scratch]
[,preserve]
linkage_name
The name of a linkage previously defined with the .DEFINE_LINKAGE
directive. If you specify a linkage_name, you cannot specify an
input, output, scratch or preserve clause.
input=<>
Register set that indicates those registers from which the
routine called by the next CALLS, CALLG, JSB, BSBB, or BSBW
instruction receives input values.
output=<>
Register set that indicates those registers to which the routine
called by the next CALLS, CALLG, JSB, BSBB, or BSBW instruction
assigns values that are returned to the routine's caller.
Registers included in this register set are not saved and
restored around the call.
scratch=<>
Register set that indicates registers that are used within the
routine called by the next CALLS, CALLG, JSB, BSBB, or BSBW
instruction. This parameter is for documentation purposes only.
preserve=<>
Register set that indicates those registers which the routine
called by the next CALLS, CALLG, JSB, BSBB, or BSBW instruction
will preserve. Registers included in this register set are not
saved and restored around a call to the routine, since the called
routine will perform that task.