OPM Parameter Address (OPM_PARM_ADDR)

Instruction Syntax

Bound Program Access
Built-in number for OPMPARMADDR is 7.
OPM_PARM_ADDR (                                                                 
               parameter_number   : unsigned binary(4) value which specifies       
                                    a non-bound program parameter list          
                                    entry                                       
) :   space pointer(16) to the parameter list entry specified by                        
      parameter_number                                                          

Description:

The entry in the non-bound program parameter list specified by parameter number is returned.

If the parameter number referenced is greater than the number of parameters passed to the program entry procedure, an address is returned which will cause a parameter reference violation (hex 0801) exception to be signaled when it is used.

This function can only be used by procedures defined to be a program entry procedure. Otherwise, an instruction stream not valid (hex 2A1B) exception will be signaled during module creation.

Note:
  1. The non-bound program operand passing protocol is "call by reference", and hence the OPM_PARM_ADDR built-in is architected to be returning the reference addresses that are passed.
  2. Faster code will be generated when the parameter number passed to the built-in is a literal. Still faster code will be generated when the parameter number passed to the built-in is a literal which is less than or equal to the minimum number of parameters required value associated with this program entry procedure.

Authorization Required

  • None

Lock Enforcement

  • None

Exceptions

  • None