summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-20 06:16:26 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-20 06:16:26 +0000
commit07bd2a3fda47e7cfa83e808eb99a0da9d1184a30 (patch)
treea0e41495d990b736c8981a58677bc28175621728 /nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
parent3abb1ff7d1c7a2941df3c6234ec71b40a3879baa (diff)
Update.
2004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_CLONE_THREAD_FLAGS ): Define for newer SH kernel. (__ASSUME_TGKILL, __ASSUME_UTIMES): Likewise. * sysdeps/unix/sysv/linux/sh/socket.S: Add unwind information.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h b/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
index 3a80ec8e14..76d22c88f9 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
+++ b/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#define _IMP1 #1
#define _IMM1 #-1
+#define _IMM4 #-4
#define _IMM6 #-6
#define _IMM8 #-8
@@ -53,6 +54,16 @@
mov.l reg, mem; \
99: mov r1, r15
+#define XCHG(reg, mem, old) \
+ .align 2; \
+ mova 99f, r0; \
+ nop; \
+ mov r15, r1; \
+ mov _IMM4, r15; \
+98: mov.l mem, old; \
+ mov.l reg, mem; \
+99: mov r1, r15
+
#define CMPXCHG(reg, mem, new, old) \
.align 2; \
mova 99f, r0; \