Arguments are passed in General Purpose Registers (GPR) 3–10, Floating-point Registers (FPR) 1–13, and in the parameter area of the stack according to the Open PL/I standard calling conventions.
- If the function returns a value in a temporary storage area, a pointer to that area is passed in GPR3 and all other arguments are displaced by one.
- The argument list contains addresses of the actual arguments in order of their appearance. If any arguments have the BYVALUE attribute, the actual argument is passed.
- If OPTIONS(VARIABLE) is used, any missing arguments are replaced by null pointers.
- If any of the function's parameters have variable extents, for example asterisks (*), the addresses of dope vectors describing the arguments are appended to the explicit argument list.