1.1 --- a/src/share/vm/memory/universe.cpp Mon Jun 17 11:17:49 2013 +0100 1.2 +++ b/src/share/vm/memory/universe.cpp Wed Jun 19 11:02:10 2013 +0100 1.3 @@ -822,12 +822,14 @@ 1.4 // keep the Universe::narrow_oop_base() set in Universe::reserve_heap() 1.5 Universe::set_narrow_oop_shift(LogMinObjAlignmentInBytes); 1.6 if (verbose) { 1.7 - tty->print(", Compressed Oops with base: "PTR_FORMAT, Universe::narrow_oop_base()); 1.8 + tty->print(", %s: "PTR_FORMAT, 1.9 + narrow_oop_mode_to_string(HeapBasedNarrowOop), 1.10 + Universe::narrow_oop_base()); 1.11 } 1.12 } else { 1.13 Universe::set_narrow_oop_base(0); 1.14 if (verbose) { 1.15 - tty->print(", zero based Compressed Oops"); 1.16 + tty->print(", %s", narrow_oop_mode_to_string(ZeroBasedNarrowOop)); 1.17 } 1.18 #ifdef _WIN64 1.19 if (!Universe::narrow_oop_use_implicit_null_checks()) { 1.20 @@ -842,7 +844,7 @@ 1.21 } else { 1.22 Universe::set_narrow_oop_shift(0); 1.23 if (verbose) { 1.24 - tty->print(", 32-bits Oops"); 1.25 + tty->print(", %s", narrow_oop_mode_to_string(UnscaledNarrowOop)); 1.26 } 1.27 } 1.28 } 1.29 @@ -949,6 +951,33 @@ 1.30 } 1.31 1.32 1.33 +const char* Universe::narrow_oop_mode_to_string(Universe::NARROW_OOP_MODE mode) { 1.34 + switch (mode) { 1.35 + case UnscaledNarrowOop: 1.36 + return "32-bits Oops"; 1.37 + case ZeroBasedNarrowOop: 1.38 + return "zero based Compressed Oops"; 1.39 + case HeapBasedNarrowOop: 1.40 + return "Compressed Oops with base"; 1.41 + } 1.42 + 1.43 + ShouldNotReachHere(); 1.44 + return ""; 1.45 +} 1.46 + 1.47 + 1.48 +Universe::NARROW_OOP_MODE Universe::narrow_oop_mode() { 1.49 + if (narrow_oop_base() != 0) { 1.50 + return HeapBasedNarrowOop; 1.51 + } 1.52 + 1.53 + if (narrow_oop_shift() != 0) { 1.54 + return ZeroBasedNarrowOop; 1.55 + } 1.56 + 1.57 + return UnscaledNarrowOop; 1.58 +} 1.59 + 1.60 1.61 void universe2_init() { 1.62 EXCEPTION_MARK;