Encoding:

COP1

010001

BC1ANY2

01001

cc

xx0

nd

0

tf

1

offset

6

5

3

1

1

16

Format:

BC1ANY2T cc,offset

MIPS-3D

Branch on Any of Two Floating Point Condition Codes True

Purpose:

Branch on Any of Two Floating Point Condition Codes True

To test two consecutive FP condition codes and do a PC-relative conditional branch

Description:

If FPConditionCode(CCn+1) = 1 or FPConditionCode(CCn) = 1, 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 either one of the two FP condition code bits CC is true (1), the program branches to the effective target address after the instruction in the delay slot is executed.

The CC speciied must align to 2, so bit 18 must always be zero. For example, specifying a value of 2 will check if in UNPREeither one of CC3 or CC2 is 1 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.

Restrictions:

Processor operation is UNPREDICTABLE if a branch, jump, ERET, DERET, or WAIT instruction is placed in the delay slot of a branch or jump.

Operation:

This operation speciication is for the general Branch On Any Two Condition operation with the tf (true/false) as a variables. The individual instructions BC1ANY2F and BC1ANY2T have a speciic values for tf.

I:    condition = (FPConditionCode(cc) = 1) or
                   (FPConditionCode(cc+1) = 1)
      target_offset = (offset15)GPRLEN-(16+2)|| offset || 02
I+1:  if condition then
         PC = PC + target_offset
      endif

Exceptions:

Coprocessor Unusable, Reserved Instruction

Floating Point Exceptions:

Unimplemented Operation

Programming Notes:

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.