Mercurial > hg > release > icedtea7-forest-2.1 > hotspot
changeset 2967:5141cdd9bfbf
Merge
author | andrew |
---|---|
date | Thu, 07 Jun 2012 19:21:04 +0100 |
parents | 8101ee1cb493 (current diff) 883fc064689b (diff) |
children | 8b7c4c5f6ba9 |
files | |
diffstat | 2 files changed, 17 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_arm.S Thu Jun 07 15:21:53 2012 +0100 +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Thu Jun 07 19:21:04 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}
--- a/src/cpu/zero/vm/thumb2.cpp Thu Jun 07 15:21:53 2012 +0100 +++ b/src/cpu/zero/vm/thumb2.cpp Thu Jun 07 19:21:04 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();