POOL32F 010101 |
ft |
fs |
fd |
fmt |
SEL 010111000 |
6 |
5 |
5 |
5 |
2 |
9 |
SEL.fmt |
Select floating point values with FPR condition | |
SEL fd, fs, ft, fmt |
microMIPS32 Release 6 |
Select floating point values with FPR condition |
Select floating point values with FPR condition
FPR[fd] =FPR[fd].bit0 ? FPR[ft] : FPR[fs]
SEL fmt is a select operation, with a condition input in FPR fd, and 2 data inputs in FPRs ft and fs.
If the condition is true, the value of ft is written to fd.
If the condition is false, the value of fs is written to fd.
The condition input is specified by FPR fd, and is overwritten by the result.
The condition is true only if bit 0 of the condition input FPR fd is set. Other bits are ignored.
This instruction has floating point formats S and D, but these specify only the width of the operands. SEL.S can be used for 32-bit W data, and SEL.D can be used for 64 bit L data.
This instruction does not cause data-dependent exceptions. It does not trap on NaNs. It does not set the FPU Cause bits.
None
SEL fmt is introduced by and required as of microMIPS32 Release 6.
Special Considerations:
Only formats S and D are valid. Other format values may be used to encode other instructions. Unused format encodings are required to signal the Reserved Instruction exception.
tmp = ValueFPR(fd, UNINTERPRETED_WORD) cond = tmp.bit0 if cond then tmp = ValueFPR(ft, fmt) else tmp = ValueFPR(fs, fmt) endif StoreFPR(fd, fmt, tmp)
Coprocessor Unusable, Reserved Instruction
None