Encoding:

COP1

010001

fmt

rt

fs

fd

MOVN

010011

6

5

5

5

5

6

Format:

MOVN.fmt 

Floating Point Move Conditional on Not Zero

MOVN.S fd, fs, rt

MIPS32, removed in Release 6

Floating Point Move Conditional on Not Zero

MOVN.D fd, fs, rt

MIPS32, removed in Release 6

Floating Point Move Conditional on Not Zero

MOVN.PS fd, fs, rt

MIPS64, MIPS32 Release 2, removed in Release 6

Floating Point Move Conditional on Not Zero

Purpose:

Floating Point Move Conditional on Not Zero

To test a GPR then conditionally move an FP value.

Description:

 if GPR[rt] != 0 then FPR[fd] = FPR[fs]

If the value in GPR rt is not equal to zero, then the value in FPR fs is placed in FPR fd. The source and destination are values in format fmt.

If GPR rt contains zero, then FPR fs is not copied and FPR fd contains its previous value in format fmt. If fd did not contain a value either in format fmt or previously unused data from a load or move-to operation that could be interpreted in format fmt, then the value of fd becomes UNPREDICTABLE.

The move is non-arithmetic; it causes no IEEE 754 exceptions, and the FCSRCause and FCSRFlags fields are not modified.

Restrictions:

The fields fs and fd must specify FPRs valid for operands of type fmt. If the fields are not valid, the result is UNPREDICTABLE.

The operand must be a value in format fmt; if it is not, the result is UNPREDICTABLE and the value of the operand

FPR becomes UNPREDICTABLE.

The result of MOVN.PS is UNPREDICTABLE if the processor is executing in the FR=0 32-bit FPU register model.

It is predictable if executing on a 64-bit FPU in the FR=1 mode, but not with FR=0, and not on a 32-bit FPU.

Availability and Compatibility:

This instruction has been removed in Release 6 and has been replaced by the 'SELNEZ fmt' instruction. Refer to the

SELNEZ.fmt instruction in this manual for more information. Release 6 does not support Paired Single (PS).

Operation:

if GPR[rt] != 0 then
   StoreFPR(fd, fmt, ValueFPR(fs, fmt))
else
   StoreFPR(fd, fmt, ValueFPR(fd, fmt))
endif

Exceptions:

Coprocessor Unusable, Reserved Instruction

Floating Point Exceptions:

Unimplemented Operation