You need to save anything that is used. This includes floating point registers, unless at least one of the tasks has the floating point unit disabled. Do you really mean switching tasks (e.g. going from one userspace task to another userspace task), or do you mean entering the kernel (as in your previous questions)? If the kernel does not use the floating point unit, then you don't need to save the floating point registers when you enter the kernel (but you will need to save them later if you switch to another userspace task).
What error are you getting? Is MSR[FP] set?