Program mask conventions

The maskable program exceptions are enabled for all member languages represented in the root or main load module during Language Environment® initialization. Each member language informs Language Environment of its program mask requirements, and Language Environment ORs all of the requirements together and sets the program mask during initialization. During termination, the program mask is reset by Language Environment to its value upon entry to Language Environment initialization.

When running an ILC application, the subroutines might involve multiple HLLs. The characteristics of these HLLs, such as program mask attributes, will be shared across the enclave.

Language Environment neither saves nor restores the program mask setting across calls to Language Environment services or calls within the Language Environment environment.

The runtime option XUFLOW indicates the initial setting of the mask for exponent underflow. You can alter this setting by using the callable service CEE3SPM.

In summary, the initial setting of the program mask is determined by the requirements of the members within the main load module and by the setting of the XUFLOW runtime option.

While the enclave is running, the program mask is influenced by the callable service, CEE3SPM, and by members' requirements that are newly added as a result of a dynamic call or fetch.