Compare Pointers for Equality (CMPPTRE)


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.

Resultant Conditions 

Authorization Required

Lock Enforcement

Exceptions

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