From f1297d79b2ec55f66a02399525879a30e99ea4a7 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 25 Sep 2009 18:19:03 -0400 Subject: [PATCH] Prevent GCC reusing "hi" and "lo" across system calls. * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (__SYSCALL_CLOBBERS): Add "hi" and "lo". * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h (__SYSCALL_CLOBBERS): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h (__SYSCALL_CLOBBERS): Likewise. --- ChangeLog.mips | 9 +++++++++ sysdeps/unix/sysv/linux/mips/mips32/sysdep.h | 2 +- sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h | 2 +- sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog.mips b/ChangeLog.mips index 5ba4297..f8a651d 100644 --- a/ChangeLog.mips +++ b/ChangeLog.mips @@ -1,3 +1,12 @@ +2009-09-25 Daniel Jacobowitz + + * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h + (__SYSCALL_CLOBBERS): Add "hi" and "lo". + * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h + (__SYSCALL_CLOBBERS): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h + (__SYSCALL_CLOBBERS): Likewise. + 2009-08-05 Joseph Myers * sysdeps/mips/____longjmp_chk.c: Remove. Replaced by.... diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h index 753f98a..20a345d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h @@ -285,7 +285,7 @@ }) #define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \ - "$14", "$15", "$24", "$25", "memory" + "$14", "$15", "$24", "$25", "hi", "lo", "memory" #endif /* __ASSEMBLER__ */ diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h index 1513306..665f88b 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h @@ -253,7 +253,7 @@ }) #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ - "$14", "$15", "$24", "$25", "memory" + "$14", "$15", "$24", "$25", "hi", "lo", "memory" #endif /* __ASSEMBLER__ */ /* Pointer mangling is not yet supported for MIPS. */ diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h index af12bbd..b998a63 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h @@ -249,7 +249,7 @@ }) #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \ - "$14", "$15", "$24", "$25", "memory" + "$14", "$15", "$24", "$25", "hi", "lo", "memory" #endif /* __ASSEMBLER__ */ /* Pointer mangling is not yet supported for MIPS. */ -- 2.7.4