This patchset fixes the ARM-specific parts of the linux-user signal handling code to save the VFP and iWMMXT registers to the signal context struct when invoking a signal handler, and restore them afterwards. (This omission was previously marked with a 'FIXME' comment, and meant that signal handlers which used floating point might have corrupted the FPU regs of the code they interrupted, and that signal handlers which tried to examine or change the FPU regs of the interrupted code would crash.)
Peter Maydell (6): ARM: linux-user: Correct size of padding in target_ucontext_v2 ARM: Expose vfp_get_fpscr() and vfp_set_fpscr() to C code ARM: linux-user: Expose VFP registers to signal handlers ARM: linux-user: Restore VFP state from ucontext on sigreturn ARM: linux-user: Expose iWMMXT registers to signal handlers ARM: linux-user: Restore iWMMXT state from ucontext on sigreturn linux-user/signal.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++- target-arm/cpu.h | 4 + target-arm/helper.c | 10 +++ 3 files changed, 168 insertions(+), 2 deletions(-)