This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
libjava multilib patch
- From: Bo Thorsen <bo at suse dot de>
- To: <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 1 Oct 2002 10:59:46 +0200 (CEST)
- Subject: libjava multilib patch
Hi all,
I'm installing the following patch as obvious. It fixes compilation of
libjava on x86-64 and doesn't touch any other port. Now I just need to fix
32 bit linking of libjava and we can finally have working multilib java
x86-64 support.
2002-09-30 Bo Thorsen <bo@suse.de>
* sysdep/x86-64/locks.h (compare_and_swap): Fix multilib support.
Index: libjava/sysdep/x86-64/locks.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/sysdep/x86-64/locks.h,v
retrieving revision 1.1
diff -u -r1.1 locks.h
--- libjava/sysdep/x86-64/locks.h 19 Jul 2002 14:41:15 -0000 1.1
+++ libjava/sysdep/x86-64/locks.h 1 Oct 2002 08:56:57 -0000
@@ -24,10 +24,17 @@
compare_and_swap(volatile obj_addr_t *addr, obj_addr_t old, obj_addr_t new_val)
{
char result;
+#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
return (bool) result;
}
Bo.
--
Bo Thorsen | Praestevejen 4
Free software developer | 5290 Marslev
SuSE Labs | Denmark