/sys$common/syshlp/HELPLIB.HLB  —  RTL Routines, LIB$  LIB$I64_PUT_INVO_REGISTERS
    (I64 only.) The Put Invocation Registers routine updates the
    fields of a given procedure invocation context.

    Note that if user override routines are specified in the
    invocation context block, then they are used to find and modify
    the invocation context.

    Format

      LIB$I64_PUT_INVO_REGISTERS   invo_handle, invo_context,

                                   [,gr_mask] [,fr_mask]

                                   [,br_mask] [,pr_mask] [,misc_mask]

1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (unsigned)
    access:       write only
    mechanism:    by value

2  –  Arguments

 invo_handle

    OpenVMS usage:invo_handle
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by reference

    Handle for the invocation to be updated.

 invo_context

    OpenVMS usage:invo_context_blk
    type:         structure
    access:       read only
    mechanism:    by reference

    Address of a valid invocation context block that contains new
    register contents.

    Each register that is set in the xx_mask argument (along with
    its NaT bit, if any) is updated using the value found in the
    corresponding IREG[n], FREG[n], BRANCH[n], or PRED[n] field. GP,
    TP, and AI can also be updated in this way.

    No other fields of the invocation context block are used.

 gr_mask

    OpenVMS usage:mask_octaword
    type:         128-bit vector
    access:       read only
    mechanism:    by reference

    Address of a 128-bit bit vector, where each bit corresponds to a
    register field in the invo_context argument. Bits 0 through 127
    correspond to IREG[0] through IREG[127].

    Bit 0 corresponds to R0, which cannot be written, and is ignored.

    Bit 1 corresponds to the global data pointer (GP).

    Bit 13 corresponds to the thread pointer (TP).

    Bit 25 corresponds to the argument information register (AI).

    If bit 12, which corresponds to SP, is set, then no changes are
    made.

 fr_mask

    OpenVMS usage:mask_octaword
    type:         128-bit vector
    access:       read only
    mechanism:    by reference

    Address of a 128-bit bit vector, where each bit corresponds to a
    register field in the passed invo_context.

    To update floating-point registers F32-F127, provide a pointer to
    an array of 96 octawords in LIBICB$PH_F32_F127.

    Bits 0 through 127 correspond to FREG[0] through FREG[127].

    Bit 0 corresponds to F0, which cannot be written, and is ignored.
    Bit 1 corresponds to F1, which cannot be written, and is ignored.

 br_mask

    OpenVMS usage:mask_byte
    type:         8-bit vector
    access:       read only
    mechanism:    by reference

    Address of a 8-bit bit vector, where each bit corresponds to
    a register field in the passed invo_context. Bits 0 through 7
    correspond to BRANCH[0] through BRANCH[7].

 pr_mask

    OpenVMS usage:mask_quadword
    type:         64-bit vector
    access:       read only
    mechanism:    by reference

    Address of a 64-bit bit vector, where each bit corresponds to
    a register field in the passed invo_context. Bits 0 through 63
    correspond to PRED[0] through PRED[63].

 misc_mask

    OpenVMS usage:mask_quadword
    type:         64-bit vector
    access:       read only
    mechanism:    by reference

    Address of a 64-bit bit vector, where each bit corresponds to a
    register field in the passed invo_context as follows:

       Bit 0=PC.
       Bit 1=FPSR.
       Bits 2-63 are reserved.
Close Help