comparison src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp @ 10370:47bdfb3d010f

8015486: PSScavenge::is_obj_in_young is unnecessarily slow with UseCompressedOops Summary: Compare compressed oops to a compressed young gen boundary instead of uncompressing the oops before doing the young gen boundary check. Reviewed-by: brutisso, jmasa
author stefank
date Thu, 30 May 2013 10:58:16 +0200
parents 22b8d3d181d9
children f2110083203d
comparison
equal deleted inserted replaced
10369:5534bd30c151 10370:47bdfb3d010f
40 if (p != NULL) { // XXX: error if p != NULL here 40 if (p != NULL) { // XXX: error if p != NULL here
41 oop o = oopDesc::load_decode_heap_oop_not_null(p); 41 oop o = oopDesc::load_decode_heap_oop_not_null(p);
42 if (o->is_forwarded()) { 42 if (o->is_forwarded()) {
43 o = o->forwardee(); 43 o = o->forwardee();
44 // Card mark 44 // Card mark
45 if (PSScavenge::is_obj_in_young((HeapWord*) o)) { 45 if (PSScavenge::is_obj_in_young(o)) {
46 PSScavenge::card_table()->inline_write_ref_field_gc(p, o); 46 PSScavenge::card_table()->inline_write_ref_field_gc(p, o);
47 } 47 }
48 oopDesc::encode_store_heap_oop_not_null(p, o); 48 oopDesc::encode_store_heap_oop_not_null(p, o);
49 } else { 49 } else {
50 push_depth(p); 50 push_depth(p);