powerpc: Fix asm offsets to point to actual FP and VMX regs
The asm code assumes the FP regs are at the start of fp_state. While this is true now, it may not always be the case and there is nothing enforcing it. This fixes the asm-offsets to point to the actual FP registers inside the fp_state. Similarly for VMX. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Родитель
64ebb9a208
Коммит
aa9a951636
|
@ -100,12 +100,12 @@ int main(void)
|
||||||
OFFSET(THREAD_NORMSAVES, thread_struct, normsave[0]);
|
OFFSET(THREAD_NORMSAVES, thread_struct, normsave[0]);
|
||||||
#endif
|
#endif
|
||||||
OFFSET(THREAD_FPEXC_MODE, thread_struct, fpexc_mode);
|
OFFSET(THREAD_FPEXC_MODE, thread_struct, fpexc_mode);
|
||||||
OFFSET(THREAD_FPSTATE, thread_struct, fp_state);
|
OFFSET(THREAD_FPSTATE, thread_struct, fp_state.fpr);
|
||||||
OFFSET(THREAD_FPSAVEAREA, thread_struct, fp_save_area);
|
OFFSET(THREAD_FPSAVEAREA, thread_struct, fp_save_area);
|
||||||
OFFSET(FPSTATE_FPSCR, thread_fp_state, fpscr);
|
OFFSET(FPSTATE_FPSCR, thread_fp_state, fpscr);
|
||||||
OFFSET(THREAD_LOAD_FP, thread_struct, load_fp);
|
OFFSET(THREAD_LOAD_FP, thread_struct, load_fp);
|
||||||
#ifdef CONFIG_ALTIVEC
|
#ifdef CONFIG_ALTIVEC
|
||||||
OFFSET(THREAD_VRSTATE, thread_struct, vr_state);
|
OFFSET(THREAD_VRSTATE, thread_struct, vr_state.vr);
|
||||||
OFFSET(THREAD_VRSAVEAREA, thread_struct, vr_save_area);
|
OFFSET(THREAD_VRSAVEAREA, thread_struct, vr_save_area);
|
||||||
OFFSET(THREAD_VRSAVE, thread_struct, vrsave);
|
OFFSET(THREAD_VRSAVE, thread_struct, vrsave);
|
||||||
OFFSET(THREAD_USED_VR, thread_struct, used_vr);
|
OFFSET(THREAD_USED_VR, thread_struct, used_vr);
|
||||||
|
@ -145,9 +145,9 @@ int main(void)
|
||||||
OFFSET(THREAD_TM_PPR, thread_struct, tm_ppr);
|
OFFSET(THREAD_TM_PPR, thread_struct, tm_ppr);
|
||||||
OFFSET(THREAD_TM_DSCR, thread_struct, tm_dscr);
|
OFFSET(THREAD_TM_DSCR, thread_struct, tm_dscr);
|
||||||
OFFSET(PT_CKPT_REGS, thread_struct, ckpt_regs);
|
OFFSET(PT_CKPT_REGS, thread_struct, ckpt_regs);
|
||||||
OFFSET(THREAD_CKVRSTATE, thread_struct, ckvr_state);
|
OFFSET(THREAD_CKVRSTATE, thread_struct, ckvr_state.vr);
|
||||||
OFFSET(THREAD_CKVRSAVE, thread_struct, ckvrsave);
|
OFFSET(THREAD_CKVRSAVE, thread_struct, ckvrsave);
|
||||||
OFFSET(THREAD_CKFPSTATE, thread_struct, ckfp_state);
|
OFFSET(THREAD_CKFPSTATE, thread_struct, ckfp_state.fpr);
|
||||||
/* Local pt_regs on stack for Transactional Memory funcs. */
|
/* Local pt_regs on stack for Transactional Memory funcs. */
|
||||||
DEFINE(TM_FRAME_SIZE, STACK_FRAME_OVERHEAD +
|
DEFINE(TM_FRAME_SIZE, STACK_FRAME_OVERHEAD +
|
||||||
sizeof(struct pt_regs) + 16);
|
sizeof(struct pt_regs) + 16);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче