powerpc/e500: SPE register saving: take arbitrary struct offset
Previously, these macros hardcoded THREAD_EVR0 as the base of the save area, relative to the base register passed. This base offset is now passed as a separate macro parameter, allowing reuse with other SPE save areas, such as used by KVM. Acked-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
@@ -656,7 +656,7 @@ load_up_spe:
|
||||
cmpi 0,r4,0
|
||||
beq 1f
|
||||
addi r4,r4,THREAD /* want THREAD of last_task_used_spe */
|
||||
SAVE_32EVRS(0,r10,r4)
|
||||
SAVE_32EVRS(0,r10,r4,THREAD_EVR0)
|
||||
evxor evr10, evr10, evr10 /* clear out evr10 */
|
||||
evmwumiaa evr10, evr10, evr10 /* evr10 <- ACC = 0 * 0 + ACC */
|
||||
li r5,THREAD_ACC
|
||||
@@ -676,7 +676,7 @@ load_up_spe:
|
||||
stw r4,THREAD_USED_SPE(r5)
|
||||
evlddx evr4,r10,r5
|
||||
evmra evr4,evr4
|
||||
REST_32EVRS(0,r10,r5)
|
||||
REST_32EVRS(0,r10,r5,THREAD_EVR0)
|
||||
#ifndef CONFIG_SMP
|
||||
subi r4,r5,THREAD
|
||||
stw r4,last_task_used_spe@l(r3)
|
||||
@@ -787,7 +787,7 @@ _GLOBAL(giveup_spe)
|
||||
addi r3,r3,THREAD /* want THREAD of task */
|
||||
lwz r5,PT_REGS(r3)
|
||||
cmpi 0,r5,0
|
||||
SAVE_32EVRS(0, r4, r3)
|
||||
SAVE_32EVRS(0, r4, r3, THREAD_EVR0)
|
||||
evxor evr6, evr6, evr6 /* clear out evr6 */
|
||||
evmwumiaa evr6, evr6, evr6 /* evr6 <- ACC = 0 * 0 + ACC */
|
||||
li r4,THREAD_ACC
|
||||
|
مرجع در شماره جدید
Block a user