< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.cpp

Print this page

        

@@ -3090,14 +3090,41 @@
 
   case vmIntrinsics::_vectorizedMismatch:
     do_vectorizedMismatch(x);
     break;
 
+  case vmIntrinsics::_Continuation_getFP:
+    do_continuation_getFP(x);
+    break;
+  case vmIntrinsics::_Continuation_getSP:
+    do_continuation_getSP(x);
+    break;
+  case vmIntrinsics::_Continuation_getPC:
+    do_continuation_getPC(x);
+    break;
+  case vmIntrinsics::_Continuation_doContinue:
+    do_continuation_doContinue(x);
+    break;
+  case vmIntrinsics::_Continuation_doYield:
+    do_continuation_doYield(x);
+    break;
+  case vmIntrinsics::_Continuation_jump:
+    do_continuation_jump(x);
+    break;
+  case vmIntrinsics::_Continuation_runLevel:
+    do_continuation_runLevel(x);
+    break;
+
   default: ShouldNotReachHere(); break;
   }
 }
 
+void LIRGenerator::do_continuation_runLevel(Intrinsic* x) {
+  LIR_Opr result = rlock_result(x);
+  __ move(LIR_OprFact::intConst(1), result);
+}
+
 void LIRGenerator::profile_arguments(ProfileCall* x) {
   if (compilation()->profile_arguments()) {
     int bci = x->bci_of_invoke();
     ciMethodData* md = x->method()->method_data_or_null();
     assert(md != NULL, "Sanity");
< prev index next >