summaryrefslogtreecommitdiff
path: root/libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S')
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S7
1 files changed, 5 insertions, 2 deletions
diff --git a/libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S b/libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S
index d965f3919..ec271b058 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S
+++ b/libc/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S
@@ -27,6 +27,7 @@
/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
.text
+ .set nomips16
LOCALSZ = 0
ARGSZ = 0
MASK = 0x00000000
@@ -63,7 +64,8 @@ NESTED (__swapcontext, FRAMESZ, ra)
# endif
PTR_ADDIU sp, -FRAMESZ
- SETUP_GP64 (GPOFF, __swapcontext)
+ cfi_adjust_cfa_offset (FRAMESZ)
+ SETUP_GP64_STACK (GPOFF, __swapcontext)
SAVE_GP (GPOFF)
#else /* ! __PIC__ */
@@ -198,8 +200,9 @@ NESTED (__swapcontext, FRAMESZ, ra)
99:
#ifdef __PIC__
PTR_LA t9, JUMPTARGET (__syscall_error)
- RESTORE_GP64
+ RESTORE_GP64_STACK
PTR_ADDIU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
jr t9
#else /* ! __PIC__ */