linux-user/ppc: Fix XER access in save/restore_user_regs
commit66c6b40aba13807506f20c7522f4930c9ffc76ce
authorMatheus Ferst <matheus.ferst@eldorado.org.br>
Thu, 14 Oct 2021 22:32:31 +0000 (14 19:32 -0300)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 21 Oct 2021 00:42:47 +0000 (21 11:42 +1100)
treed1658e09ad6da6d61eebcbe4c2a323bf4fcf2c68
parent252fcf36bba483493365e91c2f98569de29a43fd
linux-user/ppc: Fix XER access in save/restore_user_regs

We should use cpu_read_xer/cpu_write_xer to save/restore the complete
register since some of its bits are in other fields of CPUPPCState. A
test is added to prevent future regressions.

Fixes: da91a00f191f ("target-ppc: Split out SO, OV, CA fields from XER")
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
Message-Id: <20211014223234.127012-2-matheus.ferst@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
linux-user/ppc/signal.c
tests/tcg/ppc64/Makefile.target
tests/tcg/ppc64le/Makefile.target
tests/tcg/ppc64le/signal_save_restore_xer.c [new file with mode: 0644]