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.
|