The usual answer is that if the kernel does not use floating points, it does not need to save floating point registers when entering the kernel or restore them when exiting. This saves you several hundred cycles of the cost of all system calls.
I do not know if anyone has tried to compare this savings with the performance improvement that might be available if the kernel could make a messy use of these registers. Note that you can use them in the kernel if you take proper care, and this is done in a context where huge speed advantages are available, for example. using SSE instructions to speed memcpy and the like. (Look for kernel_fpu_begin calls in Linux sources.)
source share