svn commit: r341751 - head/sys/powerpc/booke
Justin Hibbits
jhibbits at FreeBSD.org
Sun Dec 9 04:13:15 UTC 2018
Author: jhibbits
Date: Sun Dec 9 04:13:14 2018
New Revision: 341751
URL: https://svnweb.freebsd.org/changeset/base/341751
Log:
powerpc/SPE: Reload vector registers after efdabs/efdnabs/efdneg
While here, also style(9)-adjust indents around this code.
Modified:
head/sys/powerpc/booke/spe.c
Modified: head/sys/powerpc/booke/spe.c
==============================================================================
--- head/sys/powerpc/booke/spe.c Sun Dec 9 03:07:45 2018 (r341750)
+++ head/sys/powerpc/booke/spe.c Sun Dec 9 04:13:14 2018 (r341751)
@@ -464,17 +464,17 @@ spe_handle_fpdata(struct trapframe *frame)
switch (instr_sec_op) {
case EVFSABS:
curthread->td_pcb->pcb_vec.vr[rd][0] =
- curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31);
+ curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31);
frame->fixreg[rd] = frame->fixreg[ra] & ~(1U << 31);
break;
case EVFSNABS:
curthread->td_pcb->pcb_vec.vr[rd][0] =
- curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31);
+ curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31);
frame->fixreg[rd] = frame->fixreg[ra] | (1U << 31);
break;
case EVFSNEG:
curthread->td_pcb->pcb_vec.vr[rd][0] =
- curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31);
+ curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31);
frame->fixreg[rd] = frame->fixreg[ra] ^ (1U << 31);
break;
default:
@@ -542,15 +542,18 @@ spe_handle_fpdata(struct trapframe *frame)
switch (instr_sec_op) {
case EFDABS:
curthread->td_pcb->pcb_vec.vr[rd][0] =
- curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31);
+ curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31);
+ enable_vec(curthread);
break;
case EFDNABS:
curthread->td_pcb->pcb_vec.vr[rd][0] =
- curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31);
+ curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31);
+ enable_vec(curthread);
break;
case EFDNEG:
curthread->td_pcb->pcb_vec.vr[rd][0] =
- curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31);
+ curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31);
+ enable_vec(curthread);
break;
case EFDCFS:
spe_explode(&fpemu, &fpemu.fe_f3, SINGLE,
More information about the svn-src-all
mailing list