Programming Note
The name"branch on index high" indicates that one
of the major purposes of this instruction is the incre
menting and testing of an index value. The incre
ment may be algebraic and of any magnitude.
Branch on Index Low or Equal
BXLE [RS]
o 8 12 1620 31
An increment is added to the first operand, and the
sum is compared algebraically with a comparand.
Subsequently, the sum is placed in the first-operand
location, regardless of whether the branch is taken.
The second-operand address is used as the branch
address.
When the sum is low or equal, the instruction
address in the currentPSW is replaced by the branch
address. When the sum is high, normal instruction
sequencing proceeds with the updated instruction
address.
The first operand and the increment are in the
registers specified by Rl and R3. The comparand
register address is odd and is either one larger than
R3 or equal to R3. The branch address is computed
before the addition and comparison.
This instruction is similar to BRANCHON IN
DEX HIGH, except that the branch is successful
when the sum is low or equal compared to the com
parand.
Condition Code:
The code remains unchanged.
Program Exceptions:
None
Compare
CR Rl,R2 [RR]
19I R, I R2 I 0 8 12 15
C Rl,D2(X2,B2) [RX]
59I R, I X
2I B2 I D2 I 0 8 12 16 20 31
The first operand is compared with the second oper
and, and the result determines the setting of the
condition code.
Comparison is algebraic., treating both compa
rands as 32-bit signed integers. Operands in regis
ters or storage are not changed.
Resulting Condition Code:
o Operands are equal
1 First operand is low
2 First operand is high
3 -
Program Excepfiom:
Access (fetch, operand 2 of Conly)
Compare and SwapCS [RS]
BA
o 8 12 1620 31
The first and second operands are compared. If they
are equal, the third operand is stored in the second
operand location. If they are unequal, the second
operand is loaded into the first-operand location.
The first and third operands are 32 bits in length,
with each operand occupying a general register. The
second operand is a word in main storage.
The result of the 32-bit comparison, either equal
or unequal, is used to set the condition code. When
the result of the comparison is unequal, no attempt
to store occurs, and no change-bit and store
protection actions are taken.
When an equal comparison occurs, no access by
anotherCPU is permitted at the second-operand
location between the moment that the second oper
and is fetched for comparison and the moment that
the third operand is stored at the second-operand
location.
A serialization function is performed before the
operand is fetched, and, if condition code0 is set,
after the result is stored.CPU operation is delayed
until all previous accesses by thisCPU to main stor
age have been completed, as observed by channels
and otherCPU s, and then the second operand is
fetched. No subsequent instructions or their oper
ands are accessed by thisCPU until the execution
of this instruction is completed, including placing the
result value, if any, in main storage, as observed by
channels and other CPUs.
The second operand must be designated on a'<';':1 word boundary; otherwise, a specification is recognized, and the operation is suppressed ....... General Instructions 123
The name
of the major purposes of this instruction is the incre
menting and testing of an index value. The incre
ment may be algebraic and of any magnitude.
Branch on Index Low or Equal
BXLE [RS]
o 8 12 16
An increment is added to the first operand, and the
sum is compared algebraically with a comparand.
Subsequently, the sum is placed in the first-operand
location, regardless of whether the branch is taken.
The second-operand address is used as the branch
address.
When the sum is low or equal, the instruction
address in the current
address. When the sum is high, normal instruction
sequencing proceeds with the updated instruction
address.
The first operand and the increment are in the
registers specified by Rl and R3. The comparand
register address is odd and is either one larger than
R3 or equal to R3. The branch address is computed
before the addition and comparison.
This instruction is similar to BRANCH
DEX HIGH, except that the branch is successful
when the sum is low or equal compared to the com
parand.
Condition Code:
The code remains unchanged.
Program Exceptions:
None
Compare
CR Rl,R2 [RR]
19
C Rl,D2(X2,B2) [RX]
59
2
The first operand is compared with the second oper
and, and the result determines the setting of the
condition code.
Comparison is algebraic., treating both compa
rands as 32-bit signed integers. Operands in regis
ters or storage are not changed.
Resulting Condition Code:
o Operands are equal
1 First operand is low
2 First operand is high
3 -
Program Excepfiom:
Access (fetch, operand 2 of Conly)
Compare and Swap
BA
o 8 12 16
The first and second operands are compared. If they
are equal, the third operand is stored in the second
operand location. If they are unequal, the second
operand is loaded into the first-operand location.
The first and third operands are 32 bits in length,
with each operand occupying a general register. The
second operand is a word in main storage.
The result of the 32-bit comparison, either equal
or unequal, is used to set the condition code. When
the result of the comparison is unequal, no attempt
to store occurs, and no change-bit and store
protection actions are taken.
When an equal comparison occurs, no access by
another
location between the moment that the second oper
and is fetched for comparison and the moment that
the third operand is stored at the second-operand
location.
A serialization function is performed before the
operand is fetched, and, if condition code
after the result is stored.
until all previous accesses by this
age have been completed, as observed by channels
and other
fetched. No subsequent instructions or their oper
ands are accessed by this
of this instruction is completed, including placing the
result value, if any, in main storage, as observed by
channels and other CPUs.
The second operand must be designated on a