From b501589d8173bda8a062c6fd0836919a657addd2 Mon Sep 17 00:00:00 2001 From: Leandro Lupori Date: Mon, 12 Aug 2019 12:51:47 +0000 Subject: [PATCH] [PPC64] Save FPU registers before enabling VSX Fixed trap handler logic, in order to make it save FPU registers, if FPU is enabled, before enabling VSX. Without this change, FPU register contents were being lost when set before VSX was enabled. --- sys/powerpc/powerpc/trap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c index 143811eedf9..cd589f31be8 100644 --- a/sys/powerpc/powerpc/trap.c +++ b/sys/powerpc/powerpc/trap.c @@ -295,7 +295,7 @@ trap(struct trapframe *frame) ("VSX already enabled for thread")); if (!(td->td_pcb->pcb_flags & PCB_VEC)) enable_vec(td); - if (!(td->td_pcb->pcb_flags & PCB_FPU)) + if (td->td_pcb->pcb_flags & PCB_FPU) save_fpu(td); td->td_pcb->pcb_flags |= PCB_VSX; enable_fpu(td);