This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]