src/share/vm/opto/runtime.cpp

changeset 777
37f87013dfd8
parent 435
a61af66fc99e
child 1040
98cb887364d3
     1.1 --- a/src/share/vm/opto/runtime.cpp	Wed Jun 04 13:51:09 2008 -0700
     1.2 +++ b/src/share/vm/opto/runtime.cpp	Thu Jun 05 15:57:56 2008 -0700
     1.3 @@ -44,6 +44,8 @@
     1.4  address OptoRuntime::_multianewarray3_Java                        = NULL;
     1.5  address OptoRuntime::_multianewarray4_Java                        = NULL;
     1.6  address OptoRuntime::_multianewarray5_Java                        = NULL;
     1.7 +address OptoRuntime::_g1_wb_pre_Java                              = NULL;
     1.8 +address OptoRuntime::_g1_wb_post_Java                             = NULL;
     1.9  address OptoRuntime::_vtable_must_compile_Java                    = NULL;
    1.10  address OptoRuntime::_complete_monitor_locking_Java               = NULL;
    1.11  address OptoRuntime::_rethrow_Java                                = NULL;
    1.12 @@ -89,6 +91,8 @@
    1.13    gen(env, _multianewarray3_Java           , multianewarray3_Type         , multianewarray3_C               ,    0 , true , false, false);
    1.14    gen(env, _multianewarray4_Java           , multianewarray4_Type         , multianewarray4_C               ,    0 , true , false, false);
    1.15    gen(env, _multianewarray5_Java           , multianewarray5_Type         , multianewarray5_C               ,    0 , true , false, false);
    1.16 +  gen(env, _g1_wb_pre_Java                 , g1_wb_pre_Type               , SharedRuntime::g1_wb_pre        ,    0 , false, false, false);
    1.17 +  gen(env, _g1_wb_post_Java                , g1_wb_post_Type              , SharedRuntime::g1_wb_post       ,    0 , false, false, false);
    1.18    gen(env, _complete_monitor_locking_Java  , complete_monitor_enter_Type  , SharedRuntime::complete_monitor_locking_C      ,    0 , false, false, false);
    1.19    gen(env, _rethrow_Java                   , rethrow_Type                 , rethrow_C                       ,    2 , true , false, true );
    1.20  
    1.21 @@ -385,6 +389,33 @@
    1.22    return multianewarray_Type(5);
    1.23  }
    1.24  
    1.25 +const TypeFunc *OptoRuntime::g1_wb_pre_Type() {
    1.26 +  const Type **fields = TypeTuple::fields(2);
    1.27 +  fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // original field value
    1.28 +  fields[TypeFunc::Parms+1] = TypeRawPtr::NOTNULL; // thread
    1.29 +  const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
    1.30 +
    1.31 +  // create result type (range)
    1.32 +  fields = TypeTuple::fields(0);
    1.33 +  const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
    1.34 +
    1.35 +  return TypeFunc::make(domain, range);
    1.36 +}
    1.37 +
    1.38 +const TypeFunc *OptoRuntime::g1_wb_post_Type() {
    1.39 +
    1.40 +  const Type **fields = TypeTuple::fields(2);
    1.41 +  fields[TypeFunc::Parms+0] = TypeRawPtr::NOTNULL;  // Card addr
    1.42 +  fields[TypeFunc::Parms+1] = TypeRawPtr::NOTNULL;  // thread
    1.43 +  const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
    1.44 +
    1.45 +  // create result type (range)
    1.46 +  fields = TypeTuple::fields(0);
    1.47 +  const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
    1.48 +
    1.49 +  return TypeFunc::make(domain, range);
    1.50 +}
    1.51 +
    1.52  const TypeFunc *OptoRuntime::uncommon_trap_Type() {
    1.53    // create input type (domain)
    1.54    const Type **fields = TypeTuple::fields(1);

mercurial