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:
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.
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