/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