Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jul 2019 18:22:02 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r350181 - head/sys/powerpc/booke
Message-ID:  <201907201822.x6KIM2gI021946@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Sat Jul 20 18:22:01 2019
New Revision: 350181
URL: https://svnweb.freebsd.org/changeset/base/350181

Log:
  powerpc/SPE: Enable SPV bit for EFSCFD instruction emulation
  
  EFSCFD (floating point single convert from double) emulation requires saving
  the high word of the register, which uses SPE instructions.  Enable the SPE
  to avoid an SPV Unavailable exception.
  
  MFC after:	1 week

Modified:
  head/sys/powerpc/booke/spe.c

Modified: head/sys/powerpc/booke/spe.c
==============================================================================
--- head/sys/powerpc/booke/spe.c	Sat Jul 20 17:42:46 2019	(r350180)
+++ head/sys/powerpc/booke/spe.c	Sat Jul 20 18:22:01 2019	(r350181)
@@ -572,6 +572,7 @@ spe_handle_fpdata(struct trapframe *frame)
 			frame->fixreg[rd] = frame->fixreg[ra] ^ (1U << 31);
 			break;
 		case EFSCFD:
+			mtmsr(msr | PSL_VEC);
 			spe_explode(&fpemu, &fpemu.fe_f3, DOUBLE,
 			    spe_save_reg_high(rb), frame->fixreg[rb]);
 			result = &fpemu.fe_f3;



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