changeset 2953:cb0efad69ad3

D729448: 32-bit alignment on mips and mipsel 2013-11-21 Andrew John Hughes <gnu.andrew@redhat.com> * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/d729448-32_bit_alignment.patch: Fix alignment on mips and mipsel.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Mon, 20 Jan 2014 18:08:49 +0000
parents c9ac092141ed
children a083335563ec
files ChangeLog Makefile.am patches/d729448-32_bit_alignment.patch
diffstat 3 files changed, 56 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Sep 19 17:00:58 2013 +0100
+++ b/ChangeLog	Mon Jan 20 18:08:49 2014 +0000
@@ -1,3 +1,10 @@
+2013-11-21  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patch.
+	* patches/d729448-32_bit_alignment.patch:
+	Fix alignment on mips and mipsel.
+
 2013-09-19  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* configure.ac:
--- a/Makefile.am	Thu Sep 19 17:00:58 2013 +0100
+++ b/Makefile.am	Mon Jan 20 18:08:49 2014 +0000
@@ -813,7 +813,8 @@
 	patches/openjdk/6980681-corba_deadlock.patch \
 	patches/openjdk/7162902-corba_fixes.patch \
 	patches/traceable.patch \
-	patches/openjdk/6893617-cnctx_always_uses_default_orb.patch
+	patches/openjdk/6893617-cnctx_always_uses_default_orb.patch \
+	patches/d729448-32_bit_alignment.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/d729448-32_bit_alignment.patch	Mon Jan 20 18:08:49 2014 +0000
@@ -0,0 +1,47 @@
+# HG changeset patch
+# User andrew
+# Date 1384967615 0
+#      Wed Nov 20 17:13:35 2013 +0000
+# Node ID 05b64403a1917ddd9e0dd3880a5707e083ed9aba
+# Parent  9d01164b2dfc36fb13984cb0854b2c7a9e4dbfbe
+D729448: 32-bit alignment on mips and mipsel
+
+diff -r 9d01164b2dfc -r 05b64403a191 src/share/vm/interpreter/bytecodeInterpreter.hpp
+--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp	Tue Nov 12 17:58:35 2013 +0000
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp	Wed Nov 20 17:13:35 2013 +0000
+@@ -60,7 +60,16 @@
+     jlong   l;
+     jdouble d;
+     uint32_t      v[2];
+-};
++}
++#ifndef _LP64
++  /* Hotspot only aligns the union to the uintptr_t type, that is 32 bit
++     on a 32-bit CPU. Accesses to double values should be 64-bit aligned
++     on at least MIPS and SPARC. Declare it to GCC for all 32-bit CPUs,
++     as it might also help GCC to select the best instruction on other
++     CPUs. */
++  __attribute__ ((packed, aligned (4)))
++#endif
++;
+ 
+ 
+ typedef class BytecodeInterpreter* interpreterState;
+@@ -172,7 +181,16 @@
+     jlong   l;
+     jdouble d;
+     uint32_t      v[2];
+-};
++}
++#ifndef _LP64
++  /* Hotspot only aligns the union to the uintptr_t type, that is 32 bit
++     on a 32-bit CPU. Accesses to double values should be 64-bit aligned
++     on at least MIPS and SPARC. Declare it to GCC for all 32-bit CPUs,
++     as it might also help GCC to select the best instruction on other
++     CPUs. */
++  __attribute__ ((packed, aligned (4)))
++#endif
++;
+ 
+ /*
+  * Generic 32-bit wide "Java slot" definition. This type occurs