Copyright Digital Equipment Corp. All rights reserved.

Parameters

 

input=<>

   Register set that indicates those registers from which the
   routine receives input values.

   This register set informs the compiler that the registers
   specified have meaningful values at routine entry and are
   unavailable for use as temporary registers even before the first
   compiler-detected use of the registers. Specifying registers in
   this register set affects compiler temporary register usage in
   this case:

   o  If you are explicitly using any of the Alpha or Itanium
      registers (R13 and above).

   In either of these cases, if you do not specify a register that
   is being used as input in the input argument, the compiler may
   use the register as a temporary register, corrupting the input
   value.

   This register set has no effect on the compiler's default
   register preservation behavior. If you are not using the VAXREGS
   optimization switch or any of the Alpha registers, the input mask
   is used only to document your routine.
 

output=<>

   Register set that indicates those registers to which the routine
   assigns values that are returned to the routine's caller.
   Registers included in this register set are not saved and
   restored by the compiler, even if they are modified by the
   routine.

   This register set also informs the compiler that the registers
   specified have meaningful values at routine exit and are
   unavailable for use as temporary registers even after the last
   compiler-detected use of the registers. Specifying registers in
   this register set affects compiler temporary register usage in
   this case:

   o  If you are explicitly using any of the Alpha or Itanium
      registers (R13 and above).

   In either of these cases, if you do not specify a register that
   is being used as output in the output argument, the compiler may
   use the register as a temporary register, corrupting the output
   value.
 

scratch=<>

   Register set that indicates registers that are used within the
   routine but which should not be saved and restored at routine
   entry and exit. The caller of the routine does not expect to
   receive output values nor does it expect the registers to be
   preserved. Registers included in this register set are not saved
   and restored by the compiler, even if they are modified by the
   routine.

   On OpenVMS I64 systems, the compiler will not use these registers
   as temporary registers.
 

preserve=<>

   Register set that indicates those registers that should be
   preserved over the routine call. This should include only those
   registers that are modified and whose full 64-bit contents should
   be saved and restored.

   This register set causes registers to be preserved whether or
   not they would have been preserved automatically by the compiler.
   Note that because R0 and R1 are scratch registers, by calling
   standard definition, the compiler never saves and restores them
   unless you specify them in this register set.

   This register set overrides the output and scratch register sets.
   If you specify a register both in the preserve register set and
   in the output or scratch register sets, the compiler will report
   the following warning:

   %AMAC-W-REGDECCON, register declaration conflict in routine A