src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7057587 Sdiff src/share/vm/code

src/share/vm/code/nmethod.cpp

Print this page



1815                   (intptr_t)(*p), (intptr_t)p);
1816     (*p)->print();
1817   }
1818 #endif //PRODUCT
1819 };
1820 
1821 bool nmethod::detect_scavenge_root_oops() {
1822   DetectScavengeRoot detect_scavenge_root;
1823   NOT_PRODUCT(if (TraceScavenge)  detect_scavenge_root._print_nm = this);
1824   oops_do(&detect_scavenge_root);
1825   return detect_scavenge_root.detected_scavenge_root();
1826 }
1827 
1828 // Method that knows how to preserve outgoing arguments at call. This method must be
1829 // called with a frame corresponding to a Java invoke
1830 void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) {
1831 #ifndef SHARK
1832   if (!method()->is_native()) {
1833     SimpleScopeDesc ssd(this, fr.pc());
1834     Bytecode_invoke call(ssd.method(), ssd.bci());
1835     bool has_receiver = call.has_receiver();

1836     Symbol* signature = call.signature();
1837     fr.oops_compiled_arguments_do(signature, has_receiver, reg_map, f);
1838   }
1839 #endif // !SHARK
1840 }
1841 
1842 
1843 oop nmethod::embeddedOop_at(u_char* p) {
1844   RelocIterator iter(this, p, p + 1);
1845   while (iter.next())
1846     if (iter.type() == relocInfo::oop_type) {
1847       return iter.oop_reloc()->oop_value();
1848     }
1849   return NULL;
1850 }
1851 
1852 
1853 inline bool includes(void* p, void* from, void* to) {
1854   return from <= p && p < to;
1855 }



1815                   (intptr_t)(*p), (intptr_t)p);
1816     (*p)->print();
1817   }
1818 #endif //PRODUCT
1819 };
1820 
1821 bool nmethod::detect_scavenge_root_oops() {
1822   DetectScavengeRoot detect_scavenge_root;
1823   NOT_PRODUCT(if (TraceScavenge)  detect_scavenge_root._print_nm = this);
1824   oops_do(&detect_scavenge_root);
1825   return detect_scavenge_root.detected_scavenge_root();
1826 }
1827 
1828 // Method that knows how to preserve outgoing arguments at call. This method must be
1829 // called with a frame corresponding to a Java invoke
1830 void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) {
1831 #ifndef SHARK
1832   if (!method()->is_native()) {
1833     SimpleScopeDesc ssd(this, fr.pc());
1834     Bytecode_invoke call(ssd.method(), ssd.bci());
1835     // invokedynamic has a receiver in the signature at this point
1836     bool has_receiver = !call.is_invokestatic();
1837     Symbol* signature = call.signature();
1838     fr.oops_compiled_arguments_do(signature, has_receiver, reg_map, f);
1839   }
1840 #endif // !SHARK
1841 }
1842 
1843 
1844 oop nmethod::embeddedOop_at(u_char* p) {
1845   RelocIterator iter(this, p, p + 1);
1846   while (iter.next())
1847     if (iter.type() == relocInfo::oop_type) {
1848       return iter.oop_reloc()->oop_value();
1849     }
1850   return NULL;
1851 }
1852 
1853 
1854 inline bool includes(void* p, void* from, void* to) {
1855   return from <= p && p < to;
1856 }


src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File