Module: xenomai-2.6 Branch: master Commit: d2f2904b5ce2012d342fc0e9b66fb1f87af50607 URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=d2f2904b5ce2012d342fc0e9b66fb1f87af50607
Author: Philippe Gerum <r...@xenomai.org> Date: Fri Apr 4 10:21:35 2014 +0200 hal/powerpc: fixup fpu save/restore helpers for v3.12+ --- ksrc/arch/powerpc/fpu.S | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ksrc/arch/powerpc/fpu.S b/ksrc/arch/powerpc/fpu.S index e0adf90..be23180 100644 --- a/ksrc/arch/powerpc/fpu.S +++ b/ksrc/arch/powerpc/fpu.S @@ -56,11 +56,20 @@ END_FTR_SECTION_IFSET(CPU_FTR_601) #endif #endif /* !CONFIG_PPC64 */ +#ifdef THREAD_FPSTATE +#define FIXUP_REG_FPSTATE(__reg) addi __reg,__reg,THREAD_FPSTATE +#else +#define FIXUP_REG_FPSTATE(__reg) +#ifndef THREAD_FPSCR /* * The following accessor has to work with ancient kernel versions, * for which THREAD_FPSCR is not usable for 64bit save/restore. */ -#define __FPSCR(base) THREAD_FPR0+32*8(base) +#define FPSTATE_FPSCR(base) THREAD_FPR0+32*8(base) +#else +#define FPSTATE_FPSCR(base) THREAD_FPSCR(base) +#endif +#endif /* r3 = &thread_struct (tcb->fpup) */ _GLOBAL(rthal_save_fpu) @@ -69,9 +78,10 @@ _GLOBAL(rthal_save_fpu) SYNC MTMSRD(r5) isync + FIXUP_REG_FPSTATE(r3) SAVE_32FPRS(0,r3) mffs fr0 - stfd fr0,__FPSCR(r3) + stfd fr0,FPSTATE_FPSCR(r3) blr /* r3 = &thread_struct */ @@ -90,7 +100,8 @@ _GLOBAL(rthal_restore_fpu) SYNC MTMSRD(r5) isync - lfd fr0,__FPSCR(r3) + FIXUP_REG_FPSTATE(r3) + lfd fr0,FPSTATE_FPSCR(r3) MTFSF_L(fr0) REST_32FPRS(0,r3) blr _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git