Chapter 2. Programming Model
2-57
Instruction Set Summary
not greater than 896, this conversion requires denormalization. The MPC7400 supports this
denormalization by shifting the mantissa one bit at a time. Anywhere from 1 to 23 clock
cycles are required to complete the denormalization, depending upon the value to be stored.
Because of how oating-point numbers are implemented in the MPC7400, there is also a
case when execution of a store oating-point double (
stfd
,
stfdu
,
stfdx
,
stfdux
) instruction
can require internal shifting of the mantissa. This case occurs when the operand of a store
oating-point double instruction is a denormalized single-precision value. The value could
be the result of a load oating-point single instruction, a single-precision arithmetic
instruction, or a oating round to single-precision instruction. In these cases, shifting the
mantissa takes from 1 to 23 clock cycles, depending upon the value to be stored. These
cycles are incurred during the store.
2.3.4.4 Branch and Flow Control Instructions
Some branch instructions can redirect instruction execution conditionally based on the
value of bits in the CR. When the processor encounters one of these instructions, it scans
the execution pipelines to determine whether an instruction in progress can affect the
particular CR bit. If no interlock is found, the branch can be resolved immediately by
checking the bit in the CR and taking the action deTned for the branch instruction.
2.3.4.4.1 Branch Instruction Address Calculation
Branch instructions can alter the sequence of instruction execution. Instruction addresses
are always assumed to be word aligned; the PowerPC processors ignore the two low-order
bits of the generated branch target address.
Branch instructions compute the EA of the next instruction address using the following
addressing modes:
¥
¥
¥
¥
¥
¥
Branch relative
Branch conditional to relative address
Branch to absolute address
Branch conditional to absolute address
Branch conditional to link register
Branch conditional to count register
Note that in the MPC7400, all branch instructions (
b
,
ba
,
bl
,
bla
,
bc
,
bca
,
bcl
,
bcla
,
bclr
,
bclrl
,
bcctr
,
bcctrl
) and condition register logical instructions (
crand
,
cror
,
crxor
,
crnand
,
crnor
,
crandc
,
creqv
,
crorc
,
and
mcrf
) are executed by the BPU. Some of these
instructions can redirect instruction execution conditionally based on the value of bits in the
CR. When the CR bits resolve, the branch direction is either marked as correct or
mispredicted. Correcting a mispredicted branch requires that the MPC7400 ush
speculatively executed instructions and restore the machine state to immediately after the
branch. This correction can be done immediately upon resolution of the condition register
bits.