linux-user/signal.c: Use target address instead of host address for microblaze restorer

The return address is in target space, so the restorer address needs to
be target space, too.

Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
Chen Gang 2016-03-29 22:13:45 +08:00 committed by Riku Voipio
parent f1d9d1071c
commit 166c97edd6

View file

@ -3573,7 +3573,8 @@ static void setup_frame(int sig, struct target_sigaction *ka,
/* Return from sighandler will jump to the tramp.
Negative 8 offset because return is rtsd r15, 8 */
env->regs[15] = ((unsigned long)frame->tramp) - 8;
env->regs[15] = frame_addr + offsetof(struct target_signal_frame, tramp)
- 8;
}
/* Set up registers for signal handler */