Mercurial > hg > graal-jvmci-8
comparison src/share/vm/compiler/oopMap.cpp @ 22294: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
22272:b6d504612b3f | 22294: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 |