This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
sysdep/*/locks.h
- From: Andrew Haley <aph at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Thu, 15 Jan 2004 12:46:13 +0000
- Subject: sysdep/*/locks.h
gcc doesn't like in/out memory constraints, and has recently started
to warn about them. Fixed thusly.
AFAICS other arches are OK.
Andrew.
2004-01-15 Andrew Haley <aph@redhat.com>
* sysdep/x86-64/locks.h: Don't use in/out memory constraints.
* sysdep/i386/locks.h: Likewise.
Index: sysdep/i386/locks.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/sysdep/i386/locks.h,v
retrieving revision 1.2
diff -p -2 -c -r1.2 locks.h
*** sysdep/i386/locks.h 21 Mar 2002 00:26:46 -0000 1.2
--- sysdep/i386/locks.h 15 Jan 2004 12:39:14 -0000
*************** compare_and_swap(volatile obj_addr_t *ad
*** 26,31 ****
char result;
__asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
! : "+m"(*(addr)), "=q"(result)
! : "r" (new_val), "a"(old)
: "memory");
return (bool) result;
--- 26,31 ----
char result;
__asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
! : "=m"(*addr), "=q"(result)
! : "r" (new_val), "a"(old), "m"(*addr)
: "memory");
return (bool) result;
Index: sysdep/x86-64/locks.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/sysdep/x86-64/locks.h,v
retrieving revision 1.2
diff -p -2 -c -r1.2 locks.h
*** sysdep/x86-64/locks.h 1 Oct 2002 09:02:08 -0000 1.2
--- sysdep/x86-64/locks.h 15 Jan 2004 12:39:14 -0000
*************** compare_and_swap(volatile obj_addr_t *ad
*** 27,37 ****
#ifdef __x86_64__
__asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
! : "+m"(*(addr)), "=q"(result)
! : "r" (new_val), "a"(old)
: "memory");
#else
__asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
! : "+m"(*(addr)), "=q"(result)
! : "r" (new_val), "a"(old)
: "memory");
#endif
--- 27,37 ----
#ifdef __x86_64__
__asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
! : "=m"(*(addr)), "=q"(result)
! : "r" (new_val), "a"(old), "m"(*addr)
: "memory");
#else
__asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
! : "=m"(*(addr)), "=q"(result)
! : "r" (new_val), "a"(old), "m"(*addr)
: "memory");
#endif