> Does Anybody help me to clear some concepts about MIPS
> How to detect and set a MIPS 5kc chip working in 32bit
> or 64bit mode? or the chip can automatically enter
> proper mode when it fetchs an MIPS 32/64 instruction?
> Also, does MIPS 5kc have some 64bit instructions?
I guess somebody (probably me) need to write a
MIPS32/MIPS64 FAQ one of these days.
To answer your last question first, yes, the MIPS5Kc
has the full compliment of 64-bit integer instructions.
It does not have the integrated FPU of the 5Kf, however,
so you have neither 32-bit nor 64-bit FP instructions.
There are two kinds of "64-bit-ness" to consider:
64-bit data types and 64-bit addresses. In kernel
mode, a MIPS64 CPU always has access to 64-bit
data types, but to have 64-bit instructions in user
mode, one needs to explicitly enable them in the
In pre-MIPS64 64-bit MIPS CPUs such as the
R4000 and R5000, user mode access to 64-bit
data types was only possible if 64-bit addressing
was also enabled for user mode by setting the
CP0.Status.UX bit. Kernel mode 64-bit addressing
is independently enabled by setting the CP0.Status.KX
bit. In MIPS64 (e.g. the 5Kc), it is also possible to enable
64-bit data types in user mode *without* 64-bit addressing
by setting the CP0.Status.PX bit (bit 23).