diff options
author | Laurent Vivier <laurent@vivier.eu> | 2015-11-23 11:38:26 +0100 |
---|---|---|
committer | Riku Voipio <riku.voipio@linaro.org> | 2016-01-08 15:24:57 +0200 |
commit | 2a0fa68fb9761e2eb3dae4034131948d33018dc9 (patch) | |
tree | bc45e914b06f678d92bc879c890005c8da5caa04 /linux-user/syscall_defs.h | |
parent | 861d72cd28b5793fc367c46b7821a5372b66e3f4 (diff) | |
download | qemu-2a0fa68fb9761e2eb3dae4034131948d33018dc9.zip qemu-2a0fa68fb9761e2eb3dae4034131948d33018dc9.tar.gz qemu-2a0fa68fb9761e2eb3dae4034131948d33018dc9.tar.bz2 |
linux-user,sh4: fix signal retcode address
To return from a signal, setup_frame() puts an instruction to
be executed in the stack. This sequence calls the syscall sigreturn().
The address of the instruction must be set in the PR register
to be executed.
This patch fixes this: the current code sets the register to the address
of the instruction in the host address space (which can be 64bit whereas
PR is only 32bit), but the virtual CPU can't access this address space,
so we put in PR the address of the instruction in the guest address space.
This patch also removes an useless variable (ret) in the modified functions.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user/syscall_defs.h')
0 files changed, 0 insertions, 0 deletions