< prev index next >

src/hotspot/share/jvmci/jvmciCodeInstaller.cpp

Print this page
@@ -35,14 +35,16 @@
  #include "oops/klass.inline.hpp"
  #include "prims/jvmtiExport.hpp"
  #include "prims/methodHandles.hpp"
  #include "runtime/arguments.hpp"
  #include "runtime/interfaceSupport.inline.hpp"
+ #include "runtime/javaThread.hpp"
  #include "runtime/jniHandles.inline.hpp"
  #include "runtime/os.hpp"
  #include "runtime/sharedRuntime.hpp"
  #include "utilities/align.hpp"
+ #include "utilities/exceptions.hpp"
  
  // frequently used constants
  // Allocate them with new so they are never destroyed (otherwise, a
  // forced exit could destroy these objects while they are still in
  // use).

@@ -61,11 +63,12 @@
  oop HotSpotCompiledCodeStream::get_oop(int id, JVMCI_TRAPS) const {
    if (_object_pool.is_null()) {
      JVMCI_ERROR_NULL("object pool is null%s", context());
    }
    if (!_object_pool.is_null() && 0 <= id && id < _object_pool->length()) {
-     return _object_pool->obj_at(id);
+     JavaThread* THREAD = JavaThread::current(); // For exception macros.
+     return _object_pool->obj_at(id, CHECK_NULL);
    }
    JVMCI_ERROR_NULL("unknown direct object id %d%s", id, context());
  }
  
  u4 HotSpotCompiledCodeStream::offset() const {

@@ -1180,14 +1183,15 @@
          stack_token = _debug_recorder->create_scope_values(stack);
          monitors_token = _debug_recorder->create_monitor_values(monitors);
        }
  
        // has_ea_local_in_scope and arg_escape should be added to JVMCI
+       const bool return_scalarized     = false;
        const bool has_ea_local_in_scope = false;
        const bool arg_escape            = false;
        _debug_recorder->describe_scope(pc_offset, method, nullptr, bci, reexecute, rethrow_exception, return_oop,
-                                       has_ea_local_in_scope, arg_escape,
+                                       return_scalarized, has_ea_local_in_scope, arg_escape,
                                        locals_token, stack_token, monitors_token);
      }
    }
    if (full_info) {
      // Clear the virtual objects as they are specific to one DebugInfo

@@ -1321,10 +1325,12 @@
      case UNVERIFIED_ENTRY:
        _offsets.set_value(CodeOffsets::Entry, pc_offset);
        break;
      case VERIFIED_ENTRY:
        _offsets.set_value(CodeOffsets::Verified_Entry, pc_offset);
+       _offsets.set_value(CodeOffsets::Verified_Inline_Entry, pc_offset);
+       _offsets.set_value(CodeOffsets::Verified_Inline_Entry_RO, pc_offset);
        break;
      case OSR_ENTRY:
        _offsets.set_value(CodeOffsets::OSR_Entry, pc_offset);
        break;
      case EXCEPTION_HANDLER_ENTRY:
< prev index next >