Mercurial > hg > release > icedtea6-1.10
changeset 2507:aafbc0658df1
S7031385, PR680: Incorrect register allocation in orderAccess_linux_x86.inline.hpp
author | Deepak Bhole <dbhole@redhat.com> |
---|---|
date | Fri, 01 Apr 2011 11:37:40 -0400 |
parents | e63694eb18ec |
children | e92db53adff0 |
files | ChangeLog Makefile.am NEWS patches/openjdk/7031385-gcc-register-allocation-fix.patch |
diffstat | 4 files changed, 34 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Apr 01 00:30:31 2011 +0100 +++ b/ChangeLog Fri Apr 01 11:37:40 2011 -0400 @@ -1,3 +1,13 @@ +2011-04-01 Deepak Bhole <dbhole@redhat.com> + + S7031385, PR680: Incorrect register allocation in + orderAccess_linux_x86.inline.hpp + * Makefile.am: Apply patch. + * NEWS: Updated + * patches/openjdk/7031385-gcc-register-allocation-fix.patch: New patch. + Fixes register allocation by constraining output to one of a/b/c/d + registers. + 2011-03-31 Andrew John Hughes <ahughes@redhat.com> S7032388, PR682: Make HotSpot work on machines without
--- a/Makefile.am Fri Apr 01 00:30:31 2011 +0100 +++ b/Makefile.am Fri Apr 01 11:37:40 2011 -0400 @@ -328,7 +328,8 @@ patches/openjdk/7027667-AAShapePipeRegTest.patch \ patches/g356743-libpng-1.5.patch \ patches/mark_sun_toolkit_privileged_code.patch \ - patches/hotspot/$(HSBUILD)/7032388-work_without_cmov_instruction.patch + patches/hotspot/$(HSBUILD)/7032388-work_without_cmov_instruction.patch \ + patches/openjdk/7031385-gcc-register-allocation-fix.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \
--- a/NEWS Fri Apr 01 00:30:31 2011 +0100 +++ b/NEWS Fri Apr 01 11:37:40 2011 -0400 @@ -18,6 +18,7 @@ - S7032388, PR682: Make HotSpot work on machines without cmov instruction again * Fixes - G356743: Support libpng 1.5. + - S7031385, PR680: Incorrect register allocation in orderAccess_linux_x86.inline.hpp * CACAO - Ignore all unknown options, but report them. - Fixes build for newer gcc (at least 4.4) on PPC64, breaks older gcc.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7031385-gcc-register-allocation-fix.patch Fri Apr 01 11:37:40 2011 -0400 @@ -0,0 +1,21 @@ +diff -ur openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp openjdk/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp +--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp 2011-03-31 13:05:19.924400634 -0400 ++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp 2011-03-31 13:06:00.617400605 -0400 +@@ -86,7 +86,7 @@ + + inline void OrderAccess::store_fence(jbyte* p, jbyte v) { + __asm__ volatile ( "xchgb (%2),%0" +- : "=r" (v) ++ : "=q" (v) + : "0" (v), "r" (p) + : "memory"); + } +@@ -148,7 +148,7 @@ + // Must duplicate definitions instead of calling store_fence because we don't want to cast away volatile. + inline void OrderAccess::release_store_fence(volatile jbyte* p, jbyte v) { + __asm__ volatile ( "xchgb (%2),%0" +- : "=r" (v) ++ : "=q" (v) + : "0" (v), "r" (p) + : "memory"); + }