Data Movement Instructions

move Rdest, RsrcMove ${}^{\dagger}$
Move the contents of Rsrc to Rdest.

The multiply and divide unit produces its result in two additional registers, hi and lo. These instructions move values to and from these registers. The multiply, divide, and remainder instructions described above are pseudoinstructions that make it appear as if this unit operates on the general registers and detect error conditions such as divide by zero or overflow.

mfhi RdestMove From hi
mflo RdestMove From lo
Move the contents of the hi (lo) register to register Rdest.

mthi RdestMove To hi
mtlo RdestMove To lo
Move the contents register Rdest to the hi (lo) register.

Coprocessors have their own register sets. These instructions move values between these registers and the CPU's registers.

mfcz Rdest, CPsrcMove From Coprocessor $z$
Move the contents of coprocessor $z$'s register CPsrc to CPU register Rdest.

mfc1.d Rdest, FRsrc1Move Double From Coprocessor 1 ${}^{\dagger}$
Move the contents of floating point registers FRsrc1 and FRsrc1 + 1 to CPU registers Rdest and Rdest + 1.

mtcz Rsrc, CPdestMove To Coprocessor $z$
Move the contents of CPU register Rsrc to coprocessor $z$'s register CPdest.

Ian Moor 2009-03-11