diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-02-08 05:54:29 +0300 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2022-02-09 08:46:23 +1100 |
commit | 620d0b49a40e24465472b667f19b5fb0c63a6f0c (patch) | |
tree | 1f5574c5dadb9d24491fe566cee3a7ba8cc5ef85 /common-user/host/sparc64/safe-syscall.inc.S | |
parent | 0a301624c2f4ced3331ffd5bce85b4274fe132af (diff) |
common-user/host/sparc64: Fix safe_syscall_base
Use the "retl" instead of "ret" instruction alias, since we
do not allocate a register window in this function.
Fix the offset to the first stacked parameter, which lies
beyond the register window save area.
Fixes: 95c021dac835 ("linux-user/host/sparc64: Add safe-syscall.inc.S")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'common-user/host/sparc64/safe-syscall.inc.S')
-rw-r--r-- | common-user/host/sparc64/safe-syscall.inc.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/common-user/host/sparc64/safe-syscall.inc.S b/common-user/host/sparc64/safe-syscall.inc.S index a2f2b9c967..c7be8f2d25 100644 --- a/common-user/host/sparc64/safe-syscall.inc.S +++ b/common-user/host/sparc64/safe-syscall.inc.S @@ -24,7 +24,8 @@ .type safe_syscall_end, @function #define STACK_BIAS 2047 -#define PARAM(N) STACK_BIAS + N*8 +#define WINDOW_SIZE 16 * 8 +#define PARAM(N) STACK_BIAS + WINDOW_SIZE + N * 8 /* * This is the entry point for making a system call. The calling @@ -74,7 +75,7 @@ safe_syscall_end: /* code path for having successfully executed the syscall */ bcs,pn %xcc, 1f nop - ret + retl nop /* code path when we didn't execute the syscall */ |