Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 May 2013 04:24:25 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r250552 - stable/9/sys/amd64/amd64
Message-ID:  <201305120424.r4C4OPWH025250@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Sun May 12 04:24:25 2013
New Revision: 250552
URL: http://svnweb.freebsd.org/changeset/base/250552

Log:
  MFC r250415:
  Correct the type for the literal used on the left side of the shift up
  to 63 bit positions.
  
  Do not fill the save area and do not set the saved bit in the xstate
  bit vector for the state which is not marked as enabled in xsave_mask.

Modified:
  stable/9/sys/amd64/amd64/fpu.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/amd64/amd64/fpu.c
==============================================================================
--- stable/9/sys/amd64/amd64/fpu.c	Sun May 12 04:05:01 2013	(r250551)
+++ stable/9/sys/amd64/amd64/fpu.c	Sun May 12 04:24:25 2013	(r250552)
@@ -687,8 +687,8 @@ fpugetregs(struct thread *td)
 		    offsetof(struct xstate_hdr, xstate_bv));
 		max_ext_n = flsl(xsave_mask);
 		for (i = 0; i < max_ext_n; i++) {
-			bit = 1 << i;
-			if ((*xstate_bv & bit) != 0)
+			bit = 1ULL << i;
+			if ((xsave_mask & bit) == 0 || (*xstate_bv & bit) != 0)
 				continue;
 			bcopy((char *)fpu_initialstate +
 			    xsave_area_desc[i].offset,



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