[PowerPC] Use QEMU-compatible version of SPE accumulator save

Switch from "evaddumiaaw 0,0" to "evmwumiaa 0,0,0" when persisting the
accumulator. This has the benefit of actually being implemented in QEMU
as it is the form Linux uses for the same task.

Both instructions are functionally equivilent, as we are using them for
their side effect of copying the accumulator to GPRs rather than for the
actual math operation that they are performing.

Reviewed by: jhibbits
This commit is contained in:
bdragon 2019-11-23 21:18:55 +00:00
parent 217642f2b5
commit 259e36feb2

View File

@ -83,7 +83,7 @@ save_vec_int(struct thread *td)
#undef EVSTDW #undef EVSTDW
__asm ( "evxor 0,0,0\n" __asm ( "evxor 0,0,0\n"
"evaddumiaaw 0,0\n" "evmwumiaa 0,0,0\n"
"evstdd 0,0(%0)" :: "b"(&pcb->pcb_vec.spare[0])); "evstdd 0,0(%0)" :: "b"(&pcb->pcb_vec.spare[0]));
pcb->pcb_vec.vscr = mfspr(SPR_SPEFSCR); pcb->pcb_vec.vscr = mfspr(SPR_SPEFSCR);