arithmetic operation, but that an overflow occurred since the last clearing of XER[SO].
mtspr(XER)
sets XER[SO, OV] to the value of bit positions 0 and 1
in
the source register, respectively.
Once set, XER[SO] is not reset until
an
mtspr(XER) is executed with data that explicitly puts a 0
in
the SO bit, or until an
mcrxr
instruction is executed.
XER[OV] is set to indicate whether an instruction that updates XER[OV] produces a
result that
"overflows" the 32-bit target register. XER[OV] = 1 indicates overflow. For arithmetic operations, this
occurs when an operation has a carry-in to the most-significant bit of the
result that does not equal
the carry-out of the most-significant bit (that is, the exclusive-or of the carry-in and the carry-out is 1).
The
following instructions set XER[OV] differently. The specific behavior is indicated
in
the instruction
descriptions
in
Chapter 24, "Instruction Set."
โข
Move instructions:
mcrxr, mtspr(XER)
โข Multiply and divide instructions:
mullwo, mullwo., divwo,
divwo.,
divwuo,
divwuo
The Carry (CA) field is set to indicate whether an instruction that updates XER[CA] produces a result
that has a carry-out of the most-significant bit. XER[CA] = 1 indicates a carry.
The
following instructions set XER[CA] differently. The specific behavior is indicated
in
the instruction
descriptions
in
Chapter 24, "Instruction Set."
โข
Move instructions
mcrxr, mtspr(XER)
โข Shift-algebraic operations
sraw,
srawi
The Transfer Byte Count (TBC) field is the byte count for load/store string instructions.
The XER is part of the user programming
model.
Preliminary
Programming Model
3-9