Op Code (Hex) | Extender | Operand 1 | Operand 2 | Operand 3 [4] |
---|---|---|---|---|
CMPPTREB 1C12 | Branch options | Compare operand 1 | Compare operand 2 | Branch targets |
| ||||
CMPPTREI 1812 | Indicator options | Compare operand 1 | Compare operand 2 | Indicator targets |
Operand 1: Pointer data object
Operand 2: Pointer data object
Operand 3 [4]:
Description: The pointer specified by operand 1 is compared with the pointer specified by operand 2 to determine if both operands are of the same type and contain equal values. Based on the comparison, the resulting condition is used with the extender to transfer control (branch form) or to assign a value to each of the indicator operands (indicator form).
Pointers may be specified for operands 1 and 2 in any combination. An equal condition occurs if the pointers are of the same type and contain the same value, or if neither pointer has been set. If one pointer is set and the other is not, a not equal condition occurs.
System pointers and data pointers are not resolved by this instruction. The comparison result is undefined when an unresolved pointer is supplied for one or both operands.
Note that any authorities stored in a resolved system pointer are part of the pointer. Thus system pointers pointing to the same object, but with different levels of authority, will compare as not equal.
Since any pointer type may be specified for this instruction, the pointer type invalid (hex 2402) exception is not signaled except for pointers used as a base for the operands. Similarly, since the instruction accepts unset pointers, the pointer does not exist (hex 2401) exception is not signaled except for pointers used as a base for the operands.
While it is possible for two synchronization pointers to compare as equal, the item referenced by the pointer may not be usable from both pointer locations. A copied synchronization pointer is not useful, because a synchronization pointer is defined to reside at only a single location in memory.
06 Addressing
08 Argument/Parameter
0A Authorization
10 Damage Encountered
1A Lock State
1C Machine-Dependent
20 Machine Support
22 Object Access
24 Pointer Specification
2E Resource Control Limit
36 Space Management
44 Protection Violation