--- old/src/cpu/sparc/vm/templateInterpreter_sparc.cpp 2015-12-17 17:52:01.925132874 -0500 +++ new/src/cpu/sparc/vm/templateInterpreter_sparc.cpp 2015-12-17 17:52:01.664241463 -0500 @@ -24,7 +24,6 @@ #include "precompiled.hpp" #include "interpreter/interpreter.hpp" -#include "interpreter/interpreterGenerator.hpp" #include "oops/constMethod.hpp" #include "oops/method.hpp" #include "runtime/arguments.hpp" @@ -32,6 +31,18 @@ #include "runtime/synchronizer.hpp" #include "utilities/macros.hpp" +// Size of interpreter code. Increase if too small. Interpreter will +// fail with a guarantee ("not enough space for interpreter generation"); +// if too small. +// Run with +PrintInterpreter to get the VM to print out the size. +// Max size with JVMTI +#ifdef _LP64 + // The sethi() instruction generates lots more instructions when shell + // stack limit is unlimited, so that's why this is much bigger. +int TemplateInterpreter::InterpreterCodeSize = 260 * K; +#else +int TemplateInterpreter::InterpreterCodeSize = 230 * K; +#endif int AbstractInterpreter::BasicType_as_index(BasicType type) { int i = 0; @@ -107,7 +118,7 @@ int callee_locals, bool is_top_frame) { // Note: This calculation must exactly parallel the frame setup - // in InterpreterGenerator::generate_fixed_frame. + // in TemplateInterpreterGenerator::generate_fixed_frame. int monitor_size = monitors * frame::interpreter_frame_monitor_size();