COP1 010001 |
BC1ANY4 01010 |
cc x00 |
nd 0 |
tf 0 |
offset |
6 |
5 |
3 |
1 |
1 |
16 |
BC1ANY4F cc,offset |
MIPS-3D |
Branch on Any of Four Floating Point Condition Codes False |
Branch on Any of Four Floating Point Condition Codes False
To test four consecutive FP condition codes and do a PC-relative conditional branch
If FPConditionCode(CCn+3) = 0 or FPConditionCode(CCn+2) = 0 or FPConditionCode(CCn+1) = 0 or FPConditionCode(CCn) = 0, then branch
An 18-bit signed offset (the 16-bit offset ield shifted left 2 bits) is added to the address of the instruction following the branch (not the branch itself) in the branch delay slot to form a PC-relative effective target address. If any of the four FP condition code bits CC is false (0), the program branches to the effective target address after the instruction in the delay slot is executed.
The CC speciied must align to 4, so bits 18 and 19 must always be zero. For example, specifying a value of 0 will in UNPREcheck if any one of CC3..0 is 0 and branch accordingly. Specifying an illegally aligned CC will result
DICTABLE behavior.
An FP condition code is set by an FP compare instruction, C.cond.fmt and the MIPS-3D compare absolute instruction
CABS.cond.fmt.
Processor operation is UNPREDICTABLE if a branch, jump, ERET, DERET, or WAIT instruction is placed in the delay slot of a branch or jump.
This operation speciication is for the general Branch On Any Four Condition operation with the tf (true/false) as a variables. The individual instructions BC1ANY4F and BC1ANY4T have a speciic values for tf.
I: condition = (FPConditionCode(cc) = 0) or (FPConditionCode(cc+1) = 0) or (FPConditionCode(cc+2) = 0) or (FPConditionCode(cc+3) = 0) target_offset = (offset15)GPRLEN-(16+2)|| offset || 02 I+1: if condition then PC = PC + target_offset endif
Coprocessor Unusable, Reserved Instruction
Unimplemented Operation
With the 18-bit signed instruction offset, the conditional branch range is ± 128 KBytes. Use jump (J) or jump register
(JR) instructions to branch to addresses outside this range.