< prev index next >

src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp

Print this page
*** 36,10 ***
--- 36,11 ---
  #include "interpreter/templateTable.hpp"
  #include "oops/arrayOop.hpp"
  #include "oops/methodData.hpp"
  #include "oops/method.hpp"
  #include "oops/oop.inline.hpp"
+ #include "oops/inlineKlass.hpp"
  #include "prims/jvmtiExport.hpp"
  #include "prims/jvmtiThreadState.hpp"
  #include "runtime/continuation.hpp"
  #include "runtime/deoptimization.hpp"
  #include "runtime/frame.inline.hpp"

*** 59,11 ***
  // 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.
  // Max size with JVMTI
  #ifdef AMD64
! int TemplateInterpreter::InterpreterCodeSize = JVMCI_ONLY(268) NOT_JVMCI(256) * 1024;
  #else
  int TemplateInterpreter::InterpreterCodeSize = 224 * 1024;
  #endif // AMD64
  
  // Global Register Names
--- 60,11 ---
  // 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.
  // Max size with JVMTI
  #ifdef AMD64
! int TemplateInterpreter::InterpreterCodeSize = JVMCI_ONLY(280) NOT_JVMCI(268) * 1024;
  #else
  int TemplateInterpreter::InterpreterCodeSize = 224 * 1024;
  #endif // AMD64
  
  // Global Register Names

*** 207,10 ***
--- 208,14 ---
    // Restore stack bottom in case i2c adjusted stack
    __ movptr(rsp, Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize));
    // and NULL it as marker that esp is now tos until next java call
    __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
  
+   if (state == atos && InlineTypeReturnedAsFields) {
+     __ store_inline_type_fields_to_buf(NULL);
+   }
+ 
    __ restore_bcp();
    __ restore_locals();
  
    if (state == atos) {
      Register mdp = rbx;

*** 349,10 ***
--- 354,11 ---
  #else
    case T_FLOAT  : /* nothing to do */        break;
    case T_DOUBLE : /* nothing to do */        break;
  #endif // _LP64
  
+   case T_PRIMITIVE_OBJECT: // fall through (inline types are handled with oops)
    case T_OBJECT :
      // retrieve result from frame
      __ movptr(rax, Address(rbp, frame::interpreter_frame_oop_temp_offset*wordSize));
      // and verify it
      __ verify_oop(rax);
< prev index next >