Mercurial > hg > graal-jvmci-8
comparison agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java @ 6848:8e47bac5643a
7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Tue, 09 Oct 2012 10:11:38 +0200 |
parents | da91efe96a93 |
children | f9d003ea9023 |
comparison
equal
deleted
inserted
replaced
6847:65d07d9ee446 | 6848:8e47bac5643a |
---|---|
51 private static sun.jvm.hotspot.types.AddressField singleArrayKlassField; | 51 private static sun.jvm.hotspot.types.AddressField singleArrayKlassField; |
52 private static sun.jvm.hotspot.types.AddressField doubleArrayKlassField; | 52 private static sun.jvm.hotspot.types.AddressField doubleArrayKlassField; |
53 | 53 |
54 private static AddressField narrowOopBaseField; | 54 private static AddressField narrowOopBaseField; |
55 private static CIntegerField narrowOopShiftField; | 55 private static CIntegerField narrowOopShiftField; |
56 private static AddressField narrowKlassBaseField; | |
57 private static CIntegerField narrowKlassShiftField; | |
56 | 58 |
57 static { | 59 static { |
58 VM.registerVMInitializedObserver(new Observer() { | 60 VM.registerVMInitializedObserver(new Observer() { |
59 public void update(Observable o, Object data) { | 61 public void update(Observable o, Object data) { |
60 initialize(VM.getVM().getTypeDataBase()); | 62 initialize(VM.getVM().getTypeDataBase()); |
84 singleArrayKlassField = type.getAddressField("_singleArrayKlassObj"); | 86 singleArrayKlassField = type.getAddressField("_singleArrayKlassObj"); |
85 doubleArrayKlassField = type.getAddressField("_doubleArrayKlassObj"); | 87 doubleArrayKlassField = type.getAddressField("_doubleArrayKlassObj"); |
86 | 88 |
87 narrowOopBaseField = type.getAddressField("_narrow_oop._base"); | 89 narrowOopBaseField = type.getAddressField("_narrow_oop._base"); |
88 narrowOopShiftField = type.getCIntegerField("_narrow_oop._shift"); | 90 narrowOopShiftField = type.getCIntegerField("_narrow_oop._shift"); |
91 narrowKlassBaseField = type.getAddressField("_narrow_klass._base"); | |
92 narrowKlassShiftField = type.getCIntegerField("_narrow_klass._shift"); | |
89 } | 93 } |
90 | 94 |
91 public Universe() { | 95 public Universe() { |
92 } | 96 } |
93 | 97 |
108 } | 112 } |
109 | 113 |
110 public static int getNarrowOopShift() { | 114 public static int getNarrowOopShift() { |
111 return (int)narrowOopShiftField.getValue(); | 115 return (int)narrowOopShiftField.getValue(); |
112 } | 116 } |
117 | |
118 public static long getNarrowKlassBase() { | |
119 if (narrowKlassBaseField.getValue() == null) { | |
120 return 0; | |
121 } else { | |
122 return narrowKlassBaseField.getValue().minus(null); | |
123 } | |
124 } | |
125 | |
126 public static int getNarrowKlassShift() { | |
127 return (int)narrowKlassShiftField.getValue(); | |
128 } | |
129 | |
113 | 130 |
114 /** Returns "TRUE" iff "p" points into the allocated area of the heap. */ | 131 /** Returns "TRUE" iff "p" points into the allocated area of the heap. */ |
115 public boolean isIn(Address p) { | 132 public boolean isIn(Address p) { |
116 return heap().isIn(p); | 133 return heap().isIn(p); |
117 } | 134 } |