From: Aleksandar Rikalo <arik...@wavecomp.com> Add signal trampoline support for nanoMIPS.
Signed-off-by: Aleksandar Rikalo <arik...@wavecomp.com> Signed-off-by: Aleksandar Markovic <amarko...@wavecomp.com> Signed-off-by: Stefan Markovic <smarko...@wavecomp.com> --- linux-user/mips/signal.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/linux-user/mips/signal.c b/linux-user/mips/signal.c index ab66429..c6f5504 100644 --- a/linux-user/mips/signal.c +++ b/linux-user/mips/signal.c @@ -101,6 +101,17 @@ static inline int install_sigtramp(unsigned int *tramp, unsigned int syscall) { int err = 0; +#if defined(TARGET_ABI_MIPSP32) + uint16_t *tramp16 = (uint16_t *)tramp; + /* + * li $2, __NR__foo_sigreturn + * syscall 0 + */ + __put_user(0x6040 , tramp16 + 0); + __put_user(syscall, tramp16 + 1); + __put_user(0 , tramp16 + 2); + __put_user(0x1008 , tramp16 + 3); +#else /* * Set up the return code ... * @@ -110,7 +121,7 @@ static inline int install_sigtramp(unsigned int *tramp, unsigned int syscall) __put_user(0x24020000 + syscall, tramp + 0); __put_user(0x0000000c , tramp + 1); - +#endif return err; } -- 2.7.4