3e22b75948
libcontext currently restores and saves the FPSCR register on ppc64. This behavior is fine (though unnecessary) on the ELFv1 ABI which designates the register as volatile, but has been observed to cause crashes on ELFv2 systems. The ELFv2 ABI designates the FPSCR register as Limited-access and specifies specific conditions that must be met to clobber it. It does not seem that a context swap function meets these conditions (and indeed, the save/restore register example in the ABI document does not modify FPSCR). This patch fixes ELFv2 ABI compliance by removing the FPSCR save/restore code in libcontext entirely. This fixes observed crashes on the platform and should have no consequence for ELFv1 support. Fixes: lp:1840088 * https://bugs.launchpad.net/kicad/+bug/1840088 |
||
---|---|---|
.. | ||
libcontext.cpp |