hotspot/src/share/vm/jvmci/jvmciCodeInstaller.hpp
changeset 46271 979ebd346ecf
parent 42861 1d4dfdf4390b
child 46289 1904e7ec236e
equal deleted inserted replaced
46270:2e7898927798 46271:979ebd346ecf
     1 /*
     1 /*
     2  * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   209   static bool is_general_purpose_reg(VMReg hotspotRegister);
   209   static bool is_general_purpose_reg(VMReg hotspotRegister);
   210 
   210 
   211   const OopMapSet* oopMapSet() const { return _debug_recorder->_oopmaps; }
   211   const OopMapSet* oopMapSet() const { return _debug_recorder->_oopmaps; }
   212 
   212 
   213 protected:
   213 protected:
   214   Location::Type get_oop_type(Handle value);
   214   Location::Type get_oop_type(Thread* thread, Handle value);
   215   ScopeValue* get_scope_value(Handle value, BasicType type, GrowableArray<ScopeValue*>* objects, ScopeValue* &second, TRAPS);
   215   ScopeValue* get_scope_value(Handle value, BasicType type, GrowableArray<ScopeValue*>* objects, ScopeValue* &second, TRAPS);
   216   MonitorValue* get_monitor_value(Handle value, GrowableArray<ScopeValue*>* objects, TRAPS);
   216   MonitorValue* get_monitor_value(Handle value, GrowableArray<ScopeValue*>* objects, TRAPS);
   217 
   217 
   218   void* record_metadata_reference(CodeSection* section, address dest, Handle constant, TRAPS);
   218   void* record_metadata_reference(CodeSection* section, address dest, Handle constant, TRAPS);
   219 #ifdef _LP64
   219 #ifdef _LP64
   227   int estimate_stubs_size(TRAPS);
   227   int estimate_stubs_size(TRAPS);
   228 
   228 
   229   // perform data and call relocation on the CodeBuffer
   229   // perform data and call relocation on the CodeBuffer
   230   JVMCIEnv::CodeInstallResult initialize_buffer(CodeBuffer& buffer, TRAPS);
   230   JVMCIEnv::CodeInstallResult initialize_buffer(CodeBuffer& buffer, TRAPS);
   231 
   231 
   232   void assumption_NoFinalizableSubclass(Handle assumption);
   232   void assumption_NoFinalizableSubclass(Thread* thread, Handle assumption);
   233   void assumption_ConcreteSubtype(Handle assumption);
   233   void assumption_ConcreteSubtype(Thread* thread, Handle assumption);
   234   void assumption_LeafType(Handle assumption);
   234   void assumption_LeafType(Thread* thread, Handle assumption);
   235   void assumption_ConcreteMethod(Handle assumption);
   235   void assumption_ConcreteMethod(Thread* thread, Handle assumption);
   236   void assumption_CallSiteTargetValue(Handle assumption);
   236   void assumption_CallSiteTargetValue(Thread* thread, Handle assumption);
   237 
   237 
   238   void site_Safepoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   238   void site_Safepoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   239   void site_Infopoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   239   void site_Infopoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   240   void site_Call(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   240   void site_Call(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   241   void site_DataPatch(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);
   241   void site_DataPatch(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS);