comparison src/share/vm/compiler/oopMap.cpp @ 22295:d86b226e331a

Enable derived oop processing by the GC with JVMCI
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Tue, 21 Jul 2015 15:00:07 -0700
parents be896a1983c0
children c28cb37b2e1d
comparison
equal deleted inserted replaced
22274:b6d504612b3f 22295:d86b226e331a
317 static void add_derived_oop(oop* base, oop* derived) { 317 static void add_derived_oop(oop* base, oop* derived) {
318 #ifndef TIERED 318 #ifndef TIERED
319 COMPILER1_PRESENT(ShouldNotReachHere();) 319 COMPILER1_PRESENT(ShouldNotReachHere();)
320 COMPILERJVMCI_PRESENT(ShouldNotReachHere();) 320 COMPILERJVMCI_PRESENT(ShouldNotReachHere();)
321 #endif // TIERED 321 #endif // TIERED
322 #ifdef COMPILER2 322 #if defined(COMPILER2) || defined(JVMCI)
323 DerivedPointerTable::add(derived, base); 323 DerivedPointerTable::add(derived, base);
324 #endif // COMPILER2 324 #endif // COMPILER2 || JVMCI
325 } 325 }
326 326
327 327
328 #ifndef PRODUCT 328 #ifndef PRODUCT
329 static void trace_codeblob_maps(const frame *fr, const RegisterMap *reg_map) { 329 static void trace_codeblob_maps(const frame *fr, const RegisterMap *reg_map) {
507 bool OopMap::has_derived_pointer() const { 507 bool OopMap::has_derived_pointer() const {
508 #ifndef TIERED 508 #ifndef TIERED
509 COMPILER1_PRESENT(return false); 509 COMPILER1_PRESENT(return false);
510 COMPILERJVMCI_PRESENT(return false); 510 COMPILERJVMCI_PRESENT(return false);
511 #endif // !TIERED 511 #endif // !TIERED
512 #ifdef COMPILER2 512 #if defined(COMPILER2) || defined(JVMCI)
513 OopMapStream oms((OopMap*)this,OopMapValue::derived_oop_value); 513 OopMapStream oms((OopMap*)this,OopMapValue::derived_oop_value);
514 return oms.is_done(); 514 return oms.is_done();
515 #else 515 #else
516 return false; 516 return false;
517 #endif // COMPILER2 517 #endif // COMPILER2 || JVMCI
518 } 518 }
519 519
520 #endif //PRODUCT 520 #endif //PRODUCT
521 521
522 // Printing code is present in product build for -XX:+PrintAssembly. 522 // Printing code is present in product build for -XX:+PrintAssembly.
579 579
580 580
581 581
582 //------------------------------DerivedPointerTable--------------------------- 582 //------------------------------DerivedPointerTable---------------------------
583 583
584 #ifdef COMPILER2 584 #if defined(COMPILER2) || defined(JVMCI)
585 585
586 class DerivedPointerEntry : public CHeapObj<mtCompiler> { 586 class DerivedPointerEntry : public CHeapObj<mtCompiler> {
587 private: 587 private:
588 oop* _location; // Location of derived pointer (also pointing to the base) 588 oop* _location; // Location of derived pointer (also pointing to the base)
589 intptr_t _offset; // Offset from base pointer 589 intptr_t _offset; // Offset from base pointer
672 } 672 }
673 _list->clear(); 673 _list->clear();
674 _active = false; 674 _active = false;
675 } 675 }
676 676
677 #endif // COMPILER2 677 #endif // COMPILER2 || JVMCI