Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Aug 2019 12:51:47 +0000 (UTC)
From:      Leandro Lupori <luporl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r350899 - head/sys/powerpc/powerpc
Message-ID:  <201908121251.x7CCpltl044859@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luporl
Date: Mon Aug 12 12:51:47 2019
New Revision: 350899
URL: https://svnweb.freebsd.org/changeset/base/350899

Log:
  [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.

Modified:
  head/sys/powerpc/powerpc/trap.c

Modified: head/sys/powerpc/powerpc/trap.c
==============================================================================
--- head/sys/powerpc/powerpc/trap.c	Mon Aug 12 12:05:40 2019	(r350898)
+++ head/sys/powerpc/powerpc/trap.c	Mon Aug 12 12:51:47 2019	(r350899)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908121251.x7CCpltl044859>