From gbenson at redhat.com Thu Jun 10 08:03:25 2010 From: gbenson at redhat.com (Gary Benson) Date: Thu, 10 Jun 2010 16:03:25 +0100 Subject: Shark build passes TCK Message-ID: <20100610150324.GE3279@redhat.com> For the past few months the OpenJDK team at Red Hat has been working to stabilize the Shark JIT compiler for HotSpot to the point where IcedTea builds of OpenJDK using Shark are capable of passing the Java SE 6 TCK. As a result of this work I am pleased to announce that an IcedTea build of OpenJDK using Shark has passed the Java SE 6 TCK and is compatible with the Java SE 6 platform. The test system was as follows: Operating system: Fedora 12, x86_64 LLVM: http://llvm.org/releases/2.6/llvm-2.6.tar.gz, configured with: --with-pic --enable-pic IcedTea: http://icedtea.classpath.org/hg/icedtea6 revision: 7674917fa451 configured with: --enable-shark This work was funded by Red Hat. From ed at camswl.com Thu Jun 10 10:50:04 2010 From: ed at camswl.com (Edward Nevill) Date: Thu, 10 Jun 2010 18:50:04 +0100 Subject: Shark build passes TCK In-Reply-To: <20100610150324.GE3279@redhat.com> References: <20100610150324.GE3279@redhat.com> Message-ID: <1276192204.30027.1.camel@mint> Congratulations Gary et al, great work. Rod: Copied FYI, Ed. On Thu, 2010-06-10 at 16:03 +0100, Gary Benson wrote: > For the past few months the OpenJDK team at Red Hat has been working > to stabilize the Shark JIT compiler for HotSpot to the point where > IcedTea builds of OpenJDK using Shark are capable of passing the Java > SE 6 TCK. > > As a result of this work I am pleased to announce that an IcedTea > build of OpenJDK using Shark has passed the Java SE 6 TCK and is > compatible with the Java SE 6 platform. > > The test system was as follows: > > Operating system: Fedora 12, x86_64 > LLVM: http://llvm.org/releases/2.6/llvm-2.6.tar.gz, > configured with: --with-pic --enable-pic > IcedTea: http://icedtea.classpath.org/hg/icedtea6 > revision: 7674917fa451 > configured with: --enable-shark > > This work was funded by Red Hat. From gbenson at redhat.com Fri Jun 11 07:31:26 2010 From: gbenson at redhat.com (Gary Benson) Date: Fri, 11 Jun 2010 15:31:26 +0100 Subject: Shark build passes TCK In-Reply-To: <1276192204.30027.1.camel@mint> References: <20100610150324.GE3279@redhat.com> <1276192204.30027.1.camel@mint> Message-ID: <20100611143126.GL3674@redhat.com> Thanks! Edward Nevill wrote: > Congratulations Gary et al, great work. > > Rod: Copied FYI, > > Ed. > > On Thu, 2010-06-10 at 16:03 +0100, Gary Benson wrote: > > For the past few months the OpenJDK team at Red Hat has been working > > to stabilize the Shark JIT compiler for HotSpot to the point where > > IcedTea builds of OpenJDK using Shark are capable of passing the Java > > SE 6 TCK. > > > > As a result of this work I am pleased to announce that an IcedTea > > build of OpenJDK using Shark has passed the Java SE 6 TCK and is > > compatible with the Java SE 6 platform. > > > > The test system was as follows: > > > > Operating system: Fedora 12, x86_64 > > LLVM: http://llvm.org/releases/2.6/llvm-2.6.tar.gz, > > configured with: --with-pic --enable-pic > > IcedTea: http://icedtea.classpath.org/hg/icedtea6 > > revision: 7674917fa451 > > configured with: --enable-shark > > > > This work was funded by Red Hat. > > > -- http://gbenson.net/ From ahughes at redhat.com Wed Jun 30 08:35:20 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Wed, 30 Jun 2010 16:35:20 +0100 Subject: Fwd: openjdk/zero: use double code for atomic64 on powerpc In-Reply-To: <20100630153051.GA29468@Chamillionaire.breakpoint.cc> References: <20100630153051.GA29468@Chamillionaire.breakpoint.cc> Message-ID: Forwarding to zero-dev and distro-pkg-dev, where Zero is usually discussed: ---------- Forwarded message ---------- From: Sebastian Andrzej Siewior Date: 30 June 2010 16:30 Subject: openjdk/zero: use double code for atomic64 on powerpc To: jdk6-dev at openjdk.java.net Cc: hotspot-compiler-dev at openjdk.java.net this cute C code does the same thing on powerpc as the assembly code that was here before. If the compiler was built with the SPE extensions instead of traditional FPU and double operations are performed in HW then we are one step further: The compiler turns this into evldd & evstdd. Voila :) This C code could also be activated on s390. The compiler turns this into a single mvc instruction which does the copy operation. I don't know if mvc's copy ability is atomic _or_ not and therefore I leave it as it. Signed-off-by: Sebastian Andrzej Siewior Index: openjdk-6-6b18-1.8/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp =================================================================== --- openjdk-6-6b18-1.8.orig/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp ? ?2010-06-30 16:55:28.000000000 +0200 +++ openjdk-6-6b18-1.8/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp 2010-06-30 17:08:49.000000000 +0200 @@ -22,6 +22,15 @@ ?* have any questions. ?* ?*/ +#if defined(PPC) && !defined(_LP64) +#ifndef __NO_FPRS__ +#define ATOMIC64_COPY_THROUGH_DOUBLE 1 + +#elif defined(__SPE__) && !defined(_SOFT_DOUBLE) +#define ATOMIC64_COPY_THROUGH_DOUBLE 1 + +#endif +#endif ? static void setup_fpu() {} @@ -33,12 +42,23 @@ ? // Atomically copy 64 bits of data ? static void atomic_copy64(volatile void *src, volatile void *dst) { -#if defined(PPC) && !defined(_LP64) - ? ?double tmp; - ? ?asm volatile ("lfd ?%0, 0(%1)\n" - ? ? ? ? ? ? ? ? ?"stfd %0, 0(%2)\n" - ? ? ? ? ? ? ? ? ?: "=f"(tmp) - ? ? ? ? ? ? ? ? ?: "b"(src), "b"(dst)); +#if ATOMIC64_COPY_THROUGH_DOUBLE + ? ? ? ? /* + ? ? ? ? ?* In order to copy 8 bytes atomicly we rely on the trick that some + ? ? ? ? ?* architectures can load and store a double as a single operation. + ? ? ? ? ?* gcc picks the correct opcode here and with optimization turned on + ? ? ? ? ?* all temporary assignments are gone. ? ? ? ? ? ? ? ? ? ? ? - bigeasy + ? ? ? ? ?*/ + ? ? ? ? union { + ? ? ? ? ? ? ? ? double *d; + ? ? ? ? ? ? ? ? volatile void *v; + ? ? ? ? } s, d; + + ? ? ? ? s.v = src; + ? ? ? ? d.v = dst; + + ? ? ? ? *d.d = *s.d; + ?#elif defined(S390) && !defined(_LP64) ? ? double tmp; ? ? asm volatile ("ld ?%0, 0(%1)\n" -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8