aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgomp/ChangeLog6
-rw-r--r--libgomp/config/linux/x86/futex.h23
-rw-r--r--libitm/ChangeLog6
-rw-r--r--libitm/config/linux/x86/futex_bits.h22
4 files changed, 14 insertions, 43 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 07eec06..0725c60 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,9 @@
+2015-05-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]:
+ Change operand "op" to long.
+ [__PIC__]: Remove sys_futex0 function.
+
2015-05-27 Chung-Lin Tang <cltang@codesourcery.com>
* target.c (gomp_map_pointer): New function abstracting out
diff --git a/libgomp/config/linux/x86/futex.h b/libgomp/config/linux/x86/futex.h
index 6c6d317..7ae36fe 100644
--- a/libgomp/config/linux/x86/futex.h
+++ b/libgomp/config/linux/x86/futex.h
@@ -81,27 +81,8 @@ futex_wake (int *addr, int count)
# define SYS_futex 240
# endif
-# ifdef __PIC__
-
static inline long
-sys_futex0 (int *addr, int op, int val)
-{
- long res;
-
- __asm volatile ("xchgl\t%%ebx, %2\n\t"
- "int\t$0x80\n\t"
- "xchgl\t%%ebx, %2"
- : "=a" (res)
- : "0"(SYS_futex), "r" (addr), "c"(op),
- "d"(val), "S"(0)
- : "memory");
- return res;
-}
-
-# else
-
-static inline long
-sys_futex0 (int *addr, int op, int val)
+sys_futex0 (int *addr, long op, int val)
{
long res;
@@ -113,8 +94,6 @@ sys_futex0 (int *addr, int op, int val)
return res;
}
-# endif /* __PIC__ */
-
static inline void
futex_wait (int *addr, int val)
{
diff --git a/libitm/ChangeLog b/libitm/ChangeLog
index a2b3a15..91f1dd0 100644
--- a/libitm/ChangeLog
+++ b/libitm/ChangeLog
@@ -1,3 +1,9 @@
+2015-05-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/linux/x86/futex_bits.h (sys_futex0) [!__x86_64__]:
+ Change operand "op" to long.
+ [__PIC__]: Remove sys_futex0 function.
+
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
* Makefile.in: Regenerated with automake-1.11.6.
diff --git a/libitm/config/linux/x86/futex_bits.h b/libitm/config/linux/x86/futex_bits.h
index 235a053..7529fc4 100644
--- a/libitm/config/linux/x86/futex_bits.h
+++ b/libitm/config/linux/x86/futex_bits.h
@@ -46,27 +46,8 @@ sys_futex0 (std::atomic<int> *addr, long op, long val)
# define SYS_futex 240
# endif
-# ifdef __PIC__
-
-static inline long
-sys_futex0 (std::atomic<int> *addr, int op, int val)
-{
- long res;
-
- __asm volatile ("xchgl\t%%ebx, %2\n\t"
- "int\t$0x80\n\t"
- "xchgl\t%%ebx, %2"
- : "=a" (res)
- : "0"(SYS_futex), "r" (addr), "c"(op),
- "d"(val), "S"(0)
- : "memory");
- return res;
-}
-
-# else
-
static inline long
-sys_futex0 (std::atomic<int> *addr, int op, int val)
+sys_futex0 (std::atomic<int> *addr, long op, int val)
{
long res;
@@ -78,5 +59,4 @@ sys_futex0 (std::atomic<int> *addr, int op, int val)
return res;
}
-# endif /* __PIC__ */
#endif /* __x86_64__ */