< prev index next >

src/hotspot/share/interpreter/abstractInterpreter.cpp

Print this page
*** 149,10 ***
--- 149,11 ---
        case vmIntrinsics::_fmaD:              return java_lang_math_fmaD;
        case vmIntrinsics::_fmaF:              return java_lang_math_fmaF;
        case vmIntrinsics::_dsqrt:             return java_lang_math_sqrt;
        case vmIntrinsics::_dsqrt_strict:      return native;
        case vmIntrinsics::_Reference_get:     return java_lang_ref_reference_get;
+       case vmIntrinsics::_Continuation_doYield: return java_lang_continuation_doYield;
        case vmIntrinsics::_Object_init:
          if (RegisterFinalizersAtInit && m->code_size() == 1) {
            // We need to execute the special return bytecode to check for
            // finalizer registration so create a normal frame.
            return zerolocals;

*** 162,10 ***
--- 163,13 ---
      }
    }
  
    // Native method?
    if (m->is_native()) {
+     if (m->is_continuation_enter_intrinsic()) {
+       return zerolocals;
+     }
      assert(!m->is_method_handle_intrinsic(), "overlapping bits here, watch out");
      return m->is_synchronized() ? native_synchronized : native;
    }
  
    // Synchronized?

*** 186,10 ***
--- 190,18 ---
    // Setter method?
    if (m->is_setter()) {
      return setter;
    }
  
+   // Symbol* kname = m->klass_name();
+   // Symbol* name = m->name();
+   // if (kname == vmSymbols::jdk_internal_vm_Continuation()) {
+   //   if (name == vmSymbols::enter_name()) {
+   //     return java_lang_continuation_enter;
+   //   }
+   // }
+ 
    // Note: for now: zero locals for all non-empty methods
    return zerolocals;
  }
  
  void AbstractInterpreter::set_entry_for_kind(AbstractInterpreter::MethodKind kind, address entry) {
< prev index next >