Test Exception (TESTEXCP)


Op Code (Hex) Extender Operand 1 Operand 2 Operand 3-4
TESTEXCP 104A
Receiver Exception description


TESTEXCPB 1C4A Branch options Receiver Exception description Branch options


TESTEXCPI 184A Indicator options Receiver Exception description Indicator options

Operand 1: Space pointer.

Operand 2: Exception description.

Operand 3-4:

Description

The instruction tests the signaled status of the exception description specified in operand 2, and optionally alters the control flow or sets the specified indicators based on the test. Exception data is returned at the location identified by operand 1. The branch or indicator setting occurs based on the conditions specified in the extender field depending on whether or not the specified exception description is signaled.

Operand 2 is an exception description whose signaled status is to be tested. An exception can be signaled only if the referenced exception description is in the deferred state.

Operand 1 addresses a space into which the exception data is placed if an exception identified by the exception description has been signaled.

The template identified by operand 1 must be 16-byte aligned in the space and is formatted as follows:

Offset
Dec Hex
Field Name
Data Type and Length
0 0
Template size
Char(8)
0 0
Number of bytes provided for materialization
Bin(4)
4 4
Number of bytes available for materialization
Bin(4)



(0 if exception description is not signaled)


8 8
Exception identification
Char(2)
10 A
Compare value length (maximum of 32 bytes)
Bin(2)
12 C
Compare value
Char(32)
44 2C
Message reference key
Char(4)
48 30
Exception-specific data
Char(*)
* *
Source invocation address
Invocation pointer or Null pointer
* *
Target invocation address
Invocation pointer
* *
Signaling program instruction address
UBin(2)
* *
Signaled program instruction address
UBin(2)
* *
Machine-dependent data
Char(10)
* *
--- End ---

The first 4 bytes of the materialization identify the total number of bytes provided for use by the instruction. This value is supplied as input to the instruction and is not modified by the instruction. A value of less than 8 causes the materialization length invalid  (hex 3803) exception to be signaled.

The second 4 bytes of the materialization identify the total number of bytes available to be materialized. The instruction materializes as many bytes as can be contained in the area specified as the receiver. If the byte area identified by the receiver is greater than that required to contain the information requested, then the excess bytes are unchanged. No exceptions (other than the materialization length invalid  (hex 3803) exception) are signaled in the event that the receiver contains insufficient area for the materialization.

If the exception description is not in the signaled state, the number of bytes available for the materialization entry is set to binary 0's, and no other bytes are modified.

The message reference key field holds the architected value that uniquely identifies the exception message in a process queue space.

The source invocation address field will contain a null pointer value if the source invocation no longer exists when this instruction is executed.

The area beyond the exception-specific data area is extended with binary 0's so that pointers to program invocations are properly aligned.

If no branch options are specified, instruction execution proceeds at the instruction following the Test Exception instruction.

If the exception data retention option, from the exception description, is set to 1 (do not save), no data is returned by this instruction.

Resultant Conditions

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

10 Damage Encountered

16 Exception Management

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2E Resource Control Limit

36 Space Management

38 Template Specification

44 Protection Violation