< prev index next >

src/hotspot/share/opto/runtime.cpp

Print this page
@@ -142,11 +142,11 @@
    gen(env, _multianewarray2_Java           , multianewarray2_Type         , multianewarray2_C               ,    0 , true, false);
    gen(env, _multianewarray3_Java           , multianewarray3_Type         , multianewarray3_C               ,    0 , true, false);
    gen(env, _multianewarray4_Java           , multianewarray4_Type         , multianewarray4_C               ,    0 , true, false);
    gen(env, _multianewarray5_Java           , multianewarray5_Type         , multianewarray5_C               ,    0 , true, false);
    gen(env, _multianewarrayN_Java           , multianewarrayN_Type         , multianewarrayN_C               ,    0 , true, false);
-   gen(env, _complete_monitor_locking_Java  , complete_monitor_enter_Type  , SharedRuntime::complete_monitor_locking_C, 0, false, false);
+   gen(env, _complete_monitor_locking_Java  , complete_monitor_enter_Type  , SharedRuntime::complete_monitor_locking_C_inc_held_monitor_count, 0, false, false);
    gen(env, _monitor_notify_Java            , monitor_notify_Type          , monitor_notify_C                ,    0 , false, false);
    gen(env, _monitor_notifyAll_Java         , monitor_notify_Type          , monitor_notifyAll_C             ,    0 , false, false);
    gen(env, _rethrow_Java                   , rethrow_Type                 , rethrow_C                       ,    2 , true , true );
  
    gen(env, _slow_arraycopy_Java            , slow_arraycopy_Type          , SharedRuntime::slow_arraycopy_C ,    0 , false, false);

@@ -713,10 +713,67 @@
    const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+2, fields);
  
    return TypeFunc::make(domain, range);
  }
  
+ const TypeFunc* OptoRuntime::void_void_Type() {
+    // create input type (domain)
+    const Type **fields = TypeTuple::fields(0);
+    const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+0, fields);
+ 
+    // create result type (range)
+    fields = TypeTuple::fields(0);
+    const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
+    return TypeFunc::make(domain, range);
+  }
+ 
+  const TypeFunc* OptoRuntime::continuation_doYield_Type() {
+    // create input type (domain)
+    const Type **fields = TypeTuple::fields(0);
+    const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+0, fields);
+ 
+    // create result type (range)
+    fields = TypeTuple::fields(1);
+    fields[TypeFunc::Parms+0] = TypeInt::INT;
+    const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+1, fields);
+ 
+    return TypeFunc::make(domain, range);
+  }
+ 
+  const TypeFunc* OptoRuntime::continuation_jump_Type() {
+   // create input type (domain)
+   const Type **fields = TypeTuple::fields(6);
+   fields[TypeFunc::Parms+0] = TypeLong::LONG;
+   fields[TypeFunc::Parms+1] = Type::HALF;
+   fields[TypeFunc::Parms+2] = TypeLong::LONG;
+   fields[TypeFunc::Parms+3] = Type::HALF;
+   fields[TypeFunc::Parms+4] = TypeLong::LONG;
+   fields[TypeFunc::Parms+5] = Type::HALF;
+   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+6, fields);
+ 
+   // create result type (range)
+   fields = TypeTuple::fields(0);
+   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
+   return TypeFunc::make(domain, range);
+  }
+ 
+ 
+  const TypeFunc* OptoRuntime::jfr_write_checkpoint_Type() {
+    // create input type (domain)
+    const Type **fields = TypeTuple::fields(2);
+    fields[TypeFunc::Parms + 0] = TypeLong::LONG;
+    fields[TypeFunc::Parms + 1] = Type::HALF;
+    const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms + 2, fields);
+ 
+    // create result type (range)
+    fields = TypeTuple::fields(0);
+    const TypeTuple *range = TypeTuple::make(TypeFunc::Parms + 0, fields);
+ 
+    return TypeFunc::make(domain, range);
+  }
+ 
+ 
  // arraycopy stub variations:
  enum ArrayCopyType {
    ac_fast,                      // void(ptr, ptr, size_t)
    ac_checkcast,                 //  int(ptr, ptr, size_t, size_t, ptr)
    ac_slow,                      // void(ptr, int, ptr, int, int)
< prev index next >