< prev index next >

## src/share/vm/opto/runtime.cpp

Print this page

     927   int num_args      = 6;
     928   int argcnt = num_args;
     929   const Type** fields = TypeTuple::fields(argcnt);
     930   int argp = TypeFunc::Parms;
     931   fields[argp++] = TypePtr::NOTNULL;    // x
     932   fields[argp++] = TypeInt::INT;        // xlen
     933   fields[argp++] = TypePtr::NOTNULL;    // y
     934   fields[argp++] = TypeInt::INT;        // ylen
     935   fields[argp++] = TypePtr::NOTNULL;    // z
     936   fields[argp++] = TypeInt::INT;        // zlen
     937   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
     938   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
     939
     940   // no result type needed
     941   fields = TypeTuple::fields(1);
     942   fields[TypeFunc::Parms+0] = NULL;
     943   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
     944   return TypeFunc::make(domain, range);
     945 }
     946

     947
     948
     949 //------------- Interpreter state access for on stack replacement
     950 const TypeFunc* OptoRuntime::osr_end_Type() {
     951   // create input type (domain)
     952   const Type **fields = TypeTuple::fields(1);
     953   fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf
     954   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
     955
     956   // create result type
     957   fields = TypeTuple::fields(1);
     958   // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop
     959   fields[TypeFunc::Parms+0] = NULL; // void
     960   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
     961   return TypeFunc::make(domain, range);
     962 }
     963
     964 //-------------- methodData update helpers
     965
     966 const TypeFunc* OptoRuntime::profile_receiver_type_Type() {
     927   int num_args      = 6;
     928   int argcnt = num_args;
     929   const Type** fields = TypeTuple::fields(argcnt);
     930   int argp = TypeFunc::Parms;
     931   fields[argp++] = TypePtr::NOTNULL;    // x
     932   fields[argp++] = TypeInt::INT;        // xlen
     933   fields[argp++] = TypePtr::NOTNULL;    // y
     934   fields[argp++] = TypeInt::INT;        // ylen
     935   fields[argp++] = TypePtr::NOTNULL;    // z
     936   fields[argp++] = TypeInt::INT;        // zlen
     937   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
     938   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
     939
     940   // no result type needed
     941   fields = TypeTuple::fields(1);
     942   fields[TypeFunc::Parms+0] = NULL;
     943   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
     944   return TypeFunc::make(domain, range);
     945 }
     946
     947 const TypeFunc* OptoRuntime::squareToLen_Type() {
     948   // create input type (domain)
     949   int num_args      = 4;
     950   int argcnt = num_args;
     951   const Type** fields = TypeTuple::fields(argcnt);
     952   int argp = TypeFunc::Parms;
     953   fields[argp++] = TypePtr::NOTNULL;    // x
     954   fields[argp++] = TypeInt::INT;        // len
     955   fields[argp++] = TypePtr::NOTNULL;    // z
     956   fields[argp++] = TypeInt::INT;        // zlen
     957   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
     958   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
     959
     960   // no result type needed
     961   fields = TypeTuple::fields(1);
     962   fields[TypeFunc::Parms+0] = NULL;
     963   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
     964   return TypeFunc::make(domain, range);
     965 }
     966
     967 // for mulAdd calls, 2 pointers and 3 ints, returning int
     968 const TypeFunc* OptoRuntime::mulAdd_Type() {
     969   // create input type (domain)
     970   int num_args      = 5;
     971   int argcnt = num_args;
     972   const Type** fields = TypeTuple::fields(argcnt);
     973   int argp = TypeFunc::Parms;
     974   fields[argp++] = TypePtr::NOTNULL;    // out
     975   fields[argp++] = TypePtr::NOTNULL;    // in
     976   fields[argp++] = TypeInt::INT;        // offset
     977   fields[argp++] = TypeInt::INT;        // len
     978   fields[argp++] = TypeInt::INT;        // k
     979   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
     980   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
     981
     982   // returning carry (int)
     983   fields = TypeTuple::fields(1);
     984   fields[TypeFunc::Parms+0] = TypeInt::INT;
     985   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields);
     986   return TypeFunc::make(domain, range);
     987 }
     988
     989
     990
     991 //------------- Interpreter state access for on stack replacement
     992 const TypeFunc* OptoRuntime::osr_end_Type() {
     993   // create input type (domain)
     994   const Type **fields = TypeTuple::fields(1);
     995   fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf
     996   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
     997
     998   // create result type
     999   fields = TypeTuple::fields(1);
    1000   // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop
    1001   fields[TypeFunc::Parms+0] = NULL; // void
    1002   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
    1003   return TypeFunc::make(domain, range);
    1004 }
    1005
    1006 //-------------- methodData update helpers
    1007
    1008 const TypeFunc* OptoRuntime::profile_receiver_type_Type() {

< prev index next >