Paul Mackerras 18461960cb powerpc: Provide for giveup_fpu/altivec to save state in alternate location
This provides a facility which is intended for use by KVM, where the
contents of the FP/VSX and VMX (Altivec) registers can be saved away
to somewhere other than the thread_struct when kernel code wants to
use floating point or VMX instructions.  This is done by providing a
pointer in the thread_struct to indicate where the state should be
saved to.  The giveup_fpu() and giveup_altivec() functions test these
pointers and save state to the indicated location if they are non-NULL.
Note that the MSR_FP/VEC bits in task->thread.regs->msr are still used
to indicate whether the CPU register state is live, even when an
alternate save location is being used.

This also provides load_fp_state() and load_vr_state() functions, which
load up FP/VSX and VMX state from memory into the CPU registers, and
corresponding store_fp_state() and store_vr_state() functions, which
store FP/VSX and VMX state into memory from the CPU registers.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-10-11 17:26:50 +11:00
..
2012-03-28 18:30:02 +01:00
2012-03-28 18:30:02 +01:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2013-04-18 13:03:53 +10:00
2013-04-26 16:08:16 +10:00
2012-03-28 18:30:02 +01:00
2011-11-08 14:51:46 +11:00
2012-03-20 21:48:30 +08:00
2008-08-18 21:40:03 +02:00
2008-08-04 13:18:17 +10:00
2011-12-08 14:02:23 +11:00
2011-05-22 08:47:53 -04:00
2010-06-09 11:12:36 +02:00
2011-07-26 16:49:47 -07:00
2010-05-05 09:11:10 -04:00
2012-11-15 13:00:45 +11:00
2013-08-14 15:33:40 +10:00
2011-03-31 11:26:23 -03:00
2013-08-15 10:00:09 +02:00
2010-10-26 16:52:08 -07:00
2011-03-31 11:26:23 -03:00
2009-12-09 17:10:37 +11:00
2011-09-20 09:19:40 +10:00
2013-09-05 17:29:20 +10:00
2013-08-14 15:33:22 +10:00
2011-04-20 17:01:19 +10:00
2012-09-17 16:31:51 +10:00
2013-08-14 15:33:40 +10:00
2011-03-31 11:26:23 -03:00
2013-08-27 15:03:30 +10:00
2011-03-31 11:26:23 -03:00
2011-05-06 13:32:35 +10:00