diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 7db8af50acde50c3bdc13a811cf7745ec18f8c61..8cef7e742dc3ec455a397296be126d1616c83d29 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 816268c4f37e9a09e2c11b83e0394d9515fabe28..bf38433a758bfa8d545b1995f7336690be6ebda3 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; }