< prev index next >
src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
Print this page
*** 22,31 ****
--- 22,32 ----
*
*/
#include "precompiled.hpp"
#include "asm/macroAssembler.hpp"
+ #include "compiler/disassembler.hpp"
#include "gc/shared/barrierSetAssembler.hpp"
#include "interpreter/bytecodeHistogram.hpp"
#include "interpreter/interp_masm.hpp"
#include "interpreter/interpreter.hpp"
#include "interpreter/interpreterRuntime.hpp"
*** 46,56 ****
#include "runtime/timer.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/debug.hpp"
#include "utilities/macros.hpp"
! #define __ _masm->
// 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.
--- 47,57 ----
#include "runtime/timer.hpp"
#include "runtime/vframeArray.hpp"
#include "utilities/debug.hpp"
#include "utilities/macros.hpp"
! #define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
// 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.
*** 1772,1793 ****
address& fep,
address& dep,
address& vep) {
assert(t->is_valid() && t->tos_in() == vtos, "illegal template");
Label L;
! aep = __ pc(); __ push_ptr(); __ jmp(L);
#ifndef _LP64
! fep = __ pc(); __ push(ftos); __ jmp(L);
! dep = __ pc(); __ push(dtos); __ jmp(L);
#else
! fep = __ pc(); __ push_f(xmm0); __ jmp(L);
! dep = __ pc(); __ push_d(xmm0); __ jmp(L);
#endif // _LP64
! lep = __ pc(); __ push_l(); __ jmp(L);
! bep = cep = sep =
! iep = __ pc(); __ push_i();
! vep = __ pc();
__ bind(L);
generate_and_dispatch(t);
}
//-----------------------------------------------------------------------------
--- 1773,1806 ----
address& fep,
address& dep,
address& vep) {
assert(t->is_valid() && t->tos_in() == vtos, "illegal template");
Label L;
! aep = __ pc(); // atos entry point
! __ push_ptr();
! __ jmp(L);
#ifndef _LP64
! fep = __ pc(); // ftos entry point
! __ push(ftos);
! __ jmp(L);
! dep = __ pc(); // dtos entry point
! __ push(dtos);
! __ jmp(L);
#else
! fep = __ pc(); // ftos entry point
! __ push_f(xmm0);
! __ jmp(L);
! dep = __ pc(); // dtos entry point
! __ push_d(xmm0);
! __ jmp(L);
#endif // _LP64
! lep = __ pc(); // ltos entry point
! __ push_l();
! __ jmp(L);
! bep = cep = sep = iep = __ pc(); // [bcsi]tos entry point
! __ push_i();
! vep = __ pc(); // vtos entry point
__ bind(L);
generate_and_dispatch(t);
}
//-----------------------------------------------------------------------------
< prev index next >