/hg/release/icedtea7-forest-2.1/hotspot: 2 new changesets

aph at icedtea.classpath.org aph at icedtea.classpath.org
Thu Jun 7 09:54:17 PDT 2012


changeset 51380f2370a7 in /hg/release/icedtea7-forest-2.1/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=51380f2370a7
author: aph
date: Wed Jun 06 10:09:22 2012 -0400

	Fix JIT bug that miscompiles org.eclipse.ui.internal.contexts.ContextAuthority.sourceChanged
	2012-06-06  Andrew Haley  <aph at redhat.com>

		* thumb2.cpp (Thumb2_Compile): Ask the CompilerOracle if we should
		compile this method.
		(Thumb2_iOp): Use a temporary to hold the shift count.


changeset 883fc064689b in /hg/release/icedtea7-forest-2.1/hotspot
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=883fc064689b
author: aph
date: Thu Jun 07 17:53:27 2012 +0100

	merge


diffstat:

 src/cpu/zero/vm/cppInterpreter_arm.S |   1 +
 src/cpu/zero/vm/thumb2.cpp           |  22 ++++++++++++++++------
 2 files changed, 17 insertions(+), 6 deletions(-)

diffs (57 lines):

diff -r d11542907511 -r 883fc064689b src/cpu/zero/vm/cppInterpreter_arm.S
--- a/src/cpu/zero/vm/cppInterpreter_arm.S	Thu May 31 06:42:18 2012 -0400
+++ b/src/cpu/zero/vm/cppInterpreter_arm.S	Thu Jun 07 17:53:27 2012 +0100
@@ -2992,6 +2992,7 @@
 	ALIGN_CODE
 fast_method_handle_entry:
 	stmfd	arm_sp!, {regset, lr}
+	mov	r2, thread
 	bl	_ZN14CppInterpreter19method_handle_entryEP13methodOopDesciP6Thread
 	ldmia	sp!, {regset, pc}
 
diff -r d11542907511 -r 883fc064689b src/cpu/zero/vm/thumb2.cpp
--- a/src/cpu/zero/vm/thumb2.cpp	Thu May 31 06:42:18 2012 -0400
+++ b/src/cpu/zero/vm/thumb2.cpp	Thu Jun 07 17:53:27 2012 +0100
@@ -68,6 +68,7 @@
 #include <ucontext.h>
 #include "precompiled.hpp"
 #include "interpreter/bytecodes.hpp"
+#include "compiler/compilerOracle.hpp"
 
 #define opc_nop			0x00
 #define opc_aconst_null		0x01
@@ -3969,8 +3970,12 @@
   case opc_ishl:
   case opc_ishr:
   case opc_iushr:
-    and_imm(jinfo->codebuf, r_rho, r_rho, 31);
-    break;
+    {
+      unsigned tmp_reg = Thumb2_Tmp(jinfo, 1 << r_lho | 1 << r_rho | 1 << r);
+      and_imm(jinfo->codebuf, tmp_reg, r_rho, 31);
+      r_rho = tmp_reg;
+      break;
+    }
   }
   dop_reg(jinfo->codebuf, dOps[opc-opc_iadd], r, r_lho, r_rho, 0, 0);
 }
@@ -7044,10 +7049,15 @@
   if (!(CPUInfo & ARCH_THUMB2))
 	UseCompiler = false;
 
-  if (!UseCompiler || method->is_not_compilable()) {
-	ic->set(ic->state(), 1);
-	bc->set(ic->state(), 1);
-	return 0;
+  {
+    bool ignore;
+    methodHandle mh(thread, method);
+    if (!UseCompiler || method->is_not_compilable()
+	|| CompilerOracle::should_exclude(mh, ignore)) {
+      ic->set(ic->state(), 1);
+      bc->set(ic->state(), 1);
+      return 0;
+    }
   }
 
   slow_entry = *(unsigned *)method->from_interpreted_entry();



More information about the distro-pkg-dev mailing list