diff -r 5865398439d4 -r d7df2dd501ce src/hotspot/cpu/x86/interpreterRT_x86_64.cpp --- a/src/hotspot/cpu/x86/interpreterRT_x86_64.cpp Wed Mar 21 17:09:34 2018 -0400 +++ b/src/hotspot/cpu/x86/interpreterRT_x86_64.cpp Wed Mar 21 19:45:24 2018 -0400 @@ -23,6 +23,7 @@ */ #include "precompiled.hpp" +#include "interpreter/interp_masm.hpp" #include "interpreter/interpreter.hpp" #include "interpreter/interpreterRuntime.hpp" #include "memory/allocation.inline.hpp" @@ -38,6 +39,21 @@ // Implementation of SignatureHandlerGenerator +InterpreterRuntime::SignatureHandlerGenerator::SignatureHandlerGenerator(const methodHandle& method, CodeBuffer* buffer) : + NativeSignatureIterator(method) { + _masm = new MacroAssembler(buffer); +#ifdef AMD64 +#ifdef _WIN64 + _num_args = (method->is_static() ? 1 : 0); + _stack_offset = (Argument::n_int_register_parameters_c+1)* wordSize; // don't overwrite return address +#else + _num_int_args = (method->is_static() ? 1 : 0); + _num_fp_args = 0; + _stack_offset = wordSize; // don't overwrite return address +#endif // _WIN64 +#endif // AMD64 +} + Register InterpreterRuntime::SignatureHandlerGenerator::from() { return r14; } Register InterpreterRuntime::SignatureHandlerGenerator::to() { return rsp; } Register InterpreterRuntime::SignatureHandlerGenerator::temp() { return rscratch1; }