< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.cpp

Print this page
rev 50307 : [mq]: cont

@@ -3066,14 +3066,38 @@
 
   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_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();
     ciProfileData* data = md->bci_to_data(bci);
< prev index next >