Mercurial > hg > graal-jvmci-8
diff agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java Fri Apr 11 09:56:35 2008 -0400 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java Sun Apr 13 17:43:42 2008 -0400 @@ -53,6 +53,8 @@ // system obj array klass object private static sun.jvm.hotspot.types.OopField systemObjArrayKlassObjField; + private static AddressField heapBaseField; + static { VM.registerVMInitializedObserver(new Observer() { public void update(Observable o, Object data) { @@ -83,6 +85,8 @@ doubleArrayKlassObjField = type.getOopField("_doubleArrayKlassObj"); systemObjArrayKlassObjField = type.getOopField("_systemObjArrayKlassObj"); + + heapBaseField = type.getAddressField("_heap_base"); } public Universe() { @@ -96,6 +100,14 @@ } } + public static long getHeapBase() { + if (heapBaseField.getValue() == null) { + return 0; + } else { + return heapBaseField.getValue().minus(null); + } + } + /** Returns "TRUE" iff "p" points into the allocated area of the heap. */ public boolean isIn(Address p) { return heap().isIn(p);