From 18cc8e0e459edf5391016ef76a4ff3108981d86a Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 25 Sep 2009 18:48:39 -0400 Subject: mips: do not save variables in "hi" or "lo" across system calls The kernel does not save these registers across system calls. GCC 4.4 has gotten more aggressive about using them for temporary variables, so this shows up as intermittent crashes if you use a recent compiler. Signed-off-by: Daniel Jacobowitz Signed-off-by: Mike Frysinger --- libc/sysdeps/linux/mips/bits/syscalls.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libc/sysdeps/linux/mips/bits') diff --git a/libc/sysdeps/linux/mips/bits/syscalls.h b/libc/sysdeps/linux/mips/bits/syscalls.h index 363991368..28b0f91e9 100644 --- a/libc/sysdeps/linux/mips/bits/syscalls.h +++ b/libc/sysdeps/linux/mips/bits/syscalls.h @@ -261,7 +261,7 @@ }) #define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \ - "$14", "$15", "$24", "$25", "memory" + "$14", "$15", "$24", "$25", "hi", "lo", "memory" #else /* N32 || N64 */ @@ -318,7 +318,7 @@ }) #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ - "$14", "$15", "$24", "$25", "memory" + "$14", "$15", "$24", "$25", "hi", "lo", "memory" #endif -- cgit v1.2.3