COP1 010001 |
fmt |
cc |
0 0 |
tf 0 |
fs |
fd |
MOVCF 010001 |
6 |
5 |
3 |
1 |
1 |
5 |
5 |
6 |
MOVF.fmt |
Floating Point Move Conditional on Floating Point False | |
MOVF.S fd, fs, cc |
MIPS32, removed in Release 6 |
Floating Point Move Conditional on Floating Point False |
MOVF.D fd, fs, cc |
MIPS32, removed in Release 6 |
Floating Point Move Conditional on Floating Point False |
MOVF.PS fd, fs, cc |
MIPS64 removed in Release 6 |
Floating Point Move Conditional on Floating Point False |
Floating Point Move Conditional on Floating Point False
To test an FP condition code then conditionally move an FP value.
if FPConditionCode(cc) = 0 then FPR[fd] = FPR[fs]
If the floating point condition code specified by CC is zero, then the value in FPR fs is placed into FPR fd. The source and destination are values in format fmt.
If the condition code is not zero, then FPR fs is not copied and FPR fd retains 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.
MOVF.PS merges the lower half of FPR fs into the lower half of FPR fd if condition code CC is zero, and independently merges the upper half of FPR fs into the upper half of FPR fd if condition code CC+1 is zero. The CC field must be even; if it is odd, the result of this operation is UNPREDICTABLE.
The move is non-arithmetic; it causes no IEEE 754 exceptions, and the FCSRCause and FCSRFlags fields are not modified.
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 UNPREDITABLE and the value of the operand FPR becomes UNPREDICTABLE.
The result of MOVF.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.
This instruction has been removed in Release 6 and has been replaced by the 'SEL.fmt' instruction. Refer to the
SEL fmt instruction in this manual for more information. Release 6 does not support Paired Single (PS).
if fmt != PS if FPConditionCode(cc) = 0 then StoreFPR(fd, fmt, ValueFPR(fs, fmt)) else StoreFPR(fd, fmt, ValueFPR(fd, fmt)) endif else mask = 0 if FPConditionCode(cc+0) = 0 then mask = mask or 0xF0 endif if FPConditionCode(cc+1) = 0 then mask = mask or 0x0F endif StoreFPR(fd, PS, ByteMerge(mask, fd, fs)) endif
Coprocessor Unusable, Reserved Instruction
Unimplemented Operation