aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog4
-rw-r--r--libjava/java/lang/natObject.cc5
2 files changed, 7 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7db8af5..8cef7e7 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2002-01-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
+
+ * java/lang/natObject.cc (X86 compare_and_swap): Use +m constraint.
+
2002-01-24 Per Bothner <per@bothner.com>
* verify.cc (is_assignable_from_slow): If target is an interface,
diff --git a/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc
index 816268c..bf38433 100644
--- a/libjava/java/lang/natObject.cc
+++ b/libjava/java/lang/natObject.cc
@@ -327,8 +327,9 @@ typedef size_t obj_addr_t; /* Integer type big enough for object */
{
char result;
__asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
- : "=m"(*(addr)), "=q"(result)
- : "r" (new_val), "0"(*(addr)), "a"(old) : "memory");
+ : "+m"(*(addr)), "=q"(result)
+ : "r" (new_val), "a"(old)
+ : "memory");
return (bool) result;
}