To free up a general purpose register for some other use.
(You might also push the register's contents on the run-time stack, and later pop it back into the register.)
There is a floating point load immediate pseudoinstruction. This loads a floating point register with a constant value that is specified in the instruction.
li.s fd,val # load register $fd with val # (pseudoinstruction)
Here is a code snippet showing this:
li.s $f1,1.0 # $f1 = constant 1.0 li.s $f2,2.0 # $f2 = constant 2.0 li.s $f10,1.0e-5 # $f10 = 0.00001
(Take a guess: ) Could the first instruction be written as
li.s $f1,1 ?