< prev index next >

src/share/vm/opto/runtime.cpp

Print this page

        

*** 32,41 **** --- 32,42 ---- #include "code/scopeDesc.hpp" #include "code/vtableStubs.hpp" #include "compiler/compileBroker.hpp" #include "compiler/compilerOracle.hpp" #include "compiler/oopMap.hpp" + #include "gc_implementation/shenandoah/shenandoahBarrierSet.hpp" #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" #include "gc_implementation/g1/heapRegion.hpp" #include "gc_interface/collectedHeap.hpp" #include "interpreter/bytecode.hpp" #include "interpreter/interpreter.hpp"
*** 72,81 **** --- 73,84 ---- # include AD_MD_HPP #elif defined TARGET_ARCH_MODEL_x86_32 # include "adfiles/ad_x86_32.hpp" #elif defined TARGET_ARCH_MODEL_x86_64 # include "adfiles/ad_x86_64.hpp" + #elif defined TARGET_ARCH_MODEL_aarch64 + # include "adfiles/ad_aarch64.hpp" #elif defined TARGET_ARCH_MODEL_sparc # include "adfiles/ad_sparc.hpp" #elif defined TARGET_ARCH_MODEL_zero # include "adfiles/ad_zero.hpp" #elif defined TARGET_ARCH_MODEL_ppc_64
*** 577,586 **** --- 580,614 ---- const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields); return TypeFunc::make(domain, range); } + const TypeFunc *OptoRuntime::shenandoah_clone_barrier_Type() { + const Type **fields = TypeTuple::fields(1); + fields[TypeFunc::Parms+0] = TypeOopPtr::NOTNULL; // src oop + const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, 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::shenandoah_write_barrier_Type() { + const Type **fields = TypeTuple::fields(1); + fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // original field value + const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields); + + // create result type (range) + fields = TypeTuple::fields(1); + fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; + const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+1, fields); + + return TypeFunc::make(domain, range); + } + const TypeFunc *OptoRuntime::uncommon_trap_Type() { // create input type (domain) const Type **fields = TypeTuple::fields(1); // Symbol* name of class to be loaded fields[TypeFunc::Parms+0] = TypeInt::INT;
< prev index next >