< prev index next >

src/share/vm/opto/runtime.cpp

Print this page




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/systemDictionary.hpp"
  27 #include "classfile/vmSymbols.hpp"
  28 #include "code/compiledIC.hpp"
  29 #include "code/icBuffer.hpp"
  30 #include "code/nmethod.hpp"
  31 #include "code/pcDesc.hpp"
  32 #include "code/scopeDesc.hpp"
  33 #include "code/vtableStubs.hpp"
  34 #include "compiler/compileBroker.hpp"
  35 #include "compiler/compilerOracle.hpp"
  36 #include "compiler/oopMap.hpp"

  37 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
  38 #include "gc_implementation/g1/heapRegion.hpp"
  39 #include "gc_interface/collectedHeap.hpp"
  40 #include "interpreter/bytecode.hpp"
  41 #include "interpreter/interpreter.hpp"
  42 #include "interpreter/linkResolver.hpp"
  43 #include "memory/barrierSet.hpp"
  44 #include "memory/gcLocker.inline.hpp"
  45 #include "memory/oopFactory.hpp"
  46 #include "oops/objArrayKlass.hpp"
  47 #include "oops/oop.inline.hpp"
  48 #include "opto/addnode.hpp"
  49 #include "opto/callnode.hpp"
  50 #include "opto/cfgnode.hpp"
  51 #include "opto/connode.hpp"
  52 #include "opto/graphKit.hpp"
  53 #include "opto/machnode.hpp"
  54 #include "opto/matcher.hpp"
  55 #include "opto/memnode.hpp"
  56 #include "opto/mulnode.hpp"


 560   fields[TypeFunc::Parms+1] = TypeRawPtr::NOTNULL; // thread
 561   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
 562 
 563   // create result type (range)
 564   fields = TypeTuple::fields(0);
 565   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
 566 
 567   return TypeFunc::make(domain, range);
 568 }
 569 
 570 const TypeFunc *OptoRuntime::g1_wb_post_Type() {
 571 
 572   const Type **fields = TypeTuple::fields(2);
 573   fields[TypeFunc::Parms+0] = TypeRawPtr::NOTNULL;  // Card addr
 574   fields[TypeFunc::Parms+1] = TypeRawPtr::NOTNULL;  // thread
 575   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
 576 
 577   // create result type (range)
 578   fields = TypeTuple::fields(0);
 579   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);

























 580 
 581   return TypeFunc::make(domain, range);
 582 }
 583 
 584 const TypeFunc *OptoRuntime::uncommon_trap_Type() {
 585   // create input type (domain)
 586   const Type **fields = TypeTuple::fields(1);
 587   // Symbol* name of class to be loaded
 588   fields[TypeFunc::Parms+0] = TypeInt::INT;
 589   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 590 
 591   // create result type (range)
 592   fields = TypeTuple::fields(0);
 593   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
 594 
 595   return TypeFunc::make(domain, range);
 596 }
 597 
 598 # ifdef ENABLE_ZAP_DEAD_LOCALS
 599 // Type used for stub generation for zap_dead_locals.




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/systemDictionary.hpp"
  27 #include "classfile/vmSymbols.hpp"
  28 #include "code/compiledIC.hpp"
  29 #include "code/icBuffer.hpp"
  30 #include "code/nmethod.hpp"
  31 #include "code/pcDesc.hpp"
  32 #include "code/scopeDesc.hpp"
  33 #include "code/vtableStubs.hpp"
  34 #include "compiler/compileBroker.hpp"
  35 #include "compiler/compilerOracle.hpp"
  36 #include "compiler/oopMap.hpp"
  37 #include "gc_implementation/shenandoah/shenandoahBarrierSet.hpp"
  38 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
  39 #include "gc_implementation/g1/heapRegion.hpp"
  40 #include "gc_interface/collectedHeap.hpp"
  41 #include "interpreter/bytecode.hpp"
  42 #include "interpreter/interpreter.hpp"
  43 #include "interpreter/linkResolver.hpp"
  44 #include "memory/barrierSet.hpp"
  45 #include "memory/gcLocker.inline.hpp"
  46 #include "memory/oopFactory.hpp"
  47 #include "oops/objArrayKlass.hpp"
  48 #include "oops/oop.inline.hpp"
  49 #include "opto/addnode.hpp"
  50 #include "opto/callnode.hpp"
  51 #include "opto/cfgnode.hpp"
  52 #include "opto/connode.hpp"
  53 #include "opto/graphKit.hpp"
  54 #include "opto/machnode.hpp"
  55 #include "opto/matcher.hpp"
  56 #include "opto/memnode.hpp"
  57 #include "opto/mulnode.hpp"


 561   fields[TypeFunc::Parms+1] = TypeRawPtr::NOTNULL; // thread
 562   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
 563 
 564   // create result type (range)
 565   fields = TypeTuple::fields(0);
 566   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
 567 
 568   return TypeFunc::make(domain, range);
 569 }
 570 
 571 const TypeFunc *OptoRuntime::g1_wb_post_Type() {
 572 
 573   const Type **fields = TypeTuple::fields(2);
 574   fields[TypeFunc::Parms+0] = TypeRawPtr::NOTNULL;  // Card addr
 575   fields[TypeFunc::Parms+1] = TypeRawPtr::NOTNULL;  // thread
 576   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
 577 
 578   // create result type (range)
 579   fields = TypeTuple::fields(0);
 580   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
 581 
 582   return TypeFunc::make(domain, range);
 583 }
 584 
 585 const TypeFunc *OptoRuntime::shenandoah_clone_barrier_Type() {
 586   const Type **fields = TypeTuple::fields(1);
 587   fields[TypeFunc::Parms+0] = TypeOopPtr::NOTNULL; // src oop
 588   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 589 
 590   // create result type (range)
 591   fields = TypeTuple::fields(0);
 592   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
 593 
 594   return TypeFunc::make(domain, range);
 595 }
 596 
 597 const TypeFunc *OptoRuntime::shenandoah_write_barrier_Type() {
 598   const Type **fields = TypeTuple::fields(1);
 599   fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // original field value
 600   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 601 
 602   // create result type (range)
 603   fields = TypeTuple::fields(1);
 604   fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL;
 605   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+1, fields);
 606 
 607   return TypeFunc::make(domain, range);
 608 }
 609 
 610 const TypeFunc *OptoRuntime::uncommon_trap_Type() {
 611   // create input type (domain)
 612   const Type **fields = TypeTuple::fields(1);
 613   // Symbol* name of class to be loaded
 614   fields[TypeFunc::Parms+0] = TypeInt::INT;
 615   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 616 
 617   // create result type (range)
 618   fields = TypeTuple::fields(0);
 619   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
 620 
 621   return TypeFunc::make(domain, range);
 622 }
 623 
 624 # ifdef ENABLE_ZAP_DEAD_LOCALS
 625 // Type used for stub generation for zap_dead_locals.


< prev index next >