summaryrefslogtreecommitdiff
path: root/libpthread
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread')
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h3
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h4
2 files changed, 4 insertions, 3 deletions
diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
index 1fff78239..b2c0dfe89 100644
--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
@@ -28,7 +28,8 @@
# undef PSEUDO
# define PSEUDO(name, syscall_name, args) \
.align 2; \
- 99: la t9,__syscall_error; \
+ 99: move a0, v0; \
+ la t9,__syscall_error; \
jr t9; \
ENTRY (name) \
.set noreorder; \
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
index 1cf625f4e..c2cd14fe9 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
@@ -26,12 +26,12 @@
# ifdef __PIC__
# define PSEUDO_CPLOAD .cpload t9;
-# define PSEUDO_ERRJMP la t9, __syscall_error; jr t9;
+# define PSEUDO_ERRJMP move a0, v0; la t9, __syscall_error; jr t9;
# define PSEUDO_SAVEGP sw gp, 32(sp); cfi_rel_offset (gp, 32);
# define PSEUDO_LOADGP lw gp, 32(sp);
# else
# define PSEUDO_CPLOAD
-# define PSEUDO_ERRJMP j __syscall_error;
+# define PSEUDO_ERRJMP move a0, v0; j __syscall_error;
# define PSEUDO_SAVEGP
# define PSEUDO_LOADGP
# endif