mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-28 22:11:21 +08:00
futex.h (sys_futex0): Change to static function with noinline, nomips16 attributes under MIPS16.
2012-08-29 Chung-Lin Tang <cltang@codesourcery.com> libgomp/ * config/linux/mips/futex.h (sys_futex0): Change to static function with noinline, nomips16 attributes under MIPS16. Adjust asm statement to place 'li v0,SYS_futex' immediately before syscall insn. From-SVN: r190772
This commit is contained in:
parent
27f36b7837
commit
c24dbebb44
@ -1,3 +1,10 @@
|
||||
2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
|
||||
|
||||
* config/linux/mips/futex.h (sys_futex0): Change to static
|
||||
function with noinline, nomips16 attributes under MIPS16. Adjust
|
||||
asm statement to place 'li v0,SYS_futex' immediately before
|
||||
syscall insn.
|
||||
|
||||
2012-07-04 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
* libgomp.texi (Library Index): Renamed from "Index" to prevent
|
||||
|
@ -28,20 +28,26 @@
|
||||
#define FUTEX_WAIT 0
|
||||
#define FUTEX_WAKE 1
|
||||
|
||||
#ifdef __mips16
|
||||
static void __attribute__((noinline,nomips16))
|
||||
#else
|
||||
static inline void
|
||||
#endif
|
||||
sys_futex0 (int *addr, int op, int val)
|
||||
{
|
||||
register unsigned long __v0 asm("$2") = (unsigned long) SYS_futex;
|
||||
register unsigned long __v0 asm("$2");
|
||||
register unsigned long __a0 asm("$4") = (unsigned long) addr;
|
||||
register unsigned long __a1 asm("$5") = (unsigned long) op;
|
||||
register unsigned long __a2 asm("$6") = (unsigned long) val;
|
||||
register unsigned long __a3 asm("$7") = 0;
|
||||
|
||||
__asm volatile ("syscall"
|
||||
__asm volatile ("li $2, %6\n\t"
|
||||
"syscall"
|
||||
/* returns $a3 (errno), $v0 (return value) */
|
||||
: "=r" (__v0), "=r" (__a3)
|
||||
/* arguments in v0 (syscall) a0-a3 */
|
||||
: "r" (__v0), "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a3)
|
||||
/* arguments in a0-a3, and syscall number */
|
||||
: "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a3),
|
||||
"IK" (SYS_futex)
|
||||
/* clobbers at, v1, t0-t9, memory */
|
||||
: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14",
|
||||
"$15", "$24", "$25", "memory");
|
||||
|
Loading…
x
Reference in New Issue
Block a user