src/share/vm/runtime/sharedRuntime.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/runtime/sharedRuntime.hpp	Thu Feb 18 15:25:09 2016
--- new/src/share/vm/runtime/sharedRuntime.hpp	Thu Feb 18 15:25:09 2016

*** 396,405 **** --- 396,409 ---- // be converted to longs. Needed if CCallingConventionRequiresIntsAsLongs // is true. static void convert_ints_to_longints(int i2l_argcnt, int& in_args_count, BasicType*& in_sig_bt, VMRegPair*& in_regs); + static size_t trampoline_size(); + + static void generate_trampoline(MacroAssembler *masm, address destination); + // Generate I2C and C2I adapters. These adapters are simple argument marshalling // blobs. Unlike adapters in the tiger and earlier releases the code in these // blobs does not create a new frame and are therefore virtually invisible // to the stack walking code. In general these blobs extend the callers stack // as needed for the conversion of argument locations.
*** 678,694 **** --- 682,710 ---- //virtual void print_on(outputStream* st) const; DO NOT USE void print_adapter_on(outputStream* st) const; }; + class CDSAdapterHandlerEntry: public AdapterHandlerEntry { + address _c2i_entry_trampoline; // allocated from shared spaces "MC" region + AdapterHandlerEntry** _adapter_trampoline; // allocated from shared spaces "MD" region + + public: + address get_c2i_entry_trampoline() const { return _c2i_entry_trampoline; } + AdapterHandlerEntry** get_adapter_trampoline() const { return _adapter_trampoline; } + void init() NOT_CDS_RETURN; + }; + + class AdapterHandlerLibrary: public AllStatic { private: static BufferBlob* _buffer; // the temporary code buffer in CodeCache static AdapterHandlerTable* _adapters; static AdapterHandlerEntry* _abstract_method_handler; static BufferBlob* buffer_blob(); static void initialize(); + static AdapterHandlerEntry* get_adapter0(const methodHandle& method); public: static AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry);

src/share/vm/runtime/sharedRuntime.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File