< prev index next >
test/compiler/unsafe/OpaqueAccesses.java
Print this page
*** 28,37 ****
--- 28,53 ----
* @bug 8155781
* @modules java.base/jdk.internal.misc
*
* @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
* -XX:-TieredCompilation -Xbatch
+ * -XX:+UseCompressedOops -XX:+UseCompressedClassPointers
+ * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test*
+ * compiler.unsafe.OpaqueAccesses
+ * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
+ * -XX:-TieredCompilation -Xbatch
+ * -XX:+UseCompressedOops -XX:-UseCompressedClassPointers
+ * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test*
+ * compiler.unsafe.OpaqueAccesses
+ * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
+ * -XX:-TieredCompilation -Xbatch
+ * -XX:-UseCompressedOops -XX:+UseCompressedClassPointers
+ * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test*
+ * compiler.unsafe.OpaqueAccesses
+ * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions
+ * -XX:-TieredCompilation -Xbatch
+ * -XX:-UseCompressedOops -XX:-UseCompressedClassPointers
* -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test*
* compiler.unsafe.OpaqueAccesses
*/
package compiler.unsafe;
*** 59,68 ****
--- 75,85 ----
throw new Error(e);
}
}
private Object f = new Object();
+ private long l1, l2;
static Object testFixedOffsetField(Object o) {
return UNSAFE.getObject(o, F_OFFSET);
}
*** 72,81 ****
--- 89,114 ----
static int testFixedOffsetHeader4(Object o) {
return UNSAFE.getInt(o, 4);
}
+ static int testFixedOffsetHeader8(Object o) {
+ return UNSAFE.getInt(o, 8);
+ }
+
+ static int testFixedOffsetHeader12(Object o) {
+ return UNSAFE.getInt(o, 12);
+ }
+
+ static int testFixedOffsetHeader16(Object o) {
+ return UNSAFE.getInt(o, 16);
+ }
+
+ static int testFixedOffsetHeader17(Object o) {
+ return UNSAFE.getIntUnaligned(o, 17);
+ }
+
static Object testFixedBase(long off) {
return UNSAFE.getObject(INSTANCE, off);
}
static Object testOpaque(Object o, long off) {
*** 88,97 ****
--- 121,146 ----
static int testFixedOffsetHeaderArray4(Object[] arr) {
return UNSAFE.getInt(arr, 4);
}
+ static int testFixedOffsetHeaderArray8(Object[] arr) {
+ return UNSAFE.getInt(arr, 8);
+ }
+
+ static int testFixedOffsetHeaderArray12(Object[] arr) {
+ return UNSAFE.getInt(arr, 12);
+ }
+
+ static int testFixedOffsetHeaderArray16(Object[] arr) {
+ return UNSAFE.getInt(arr, 16);
+ }
+
+ static int testFixedOffsetHeaderArray17(Object[] arr) {
+ return UNSAFE.getIntUnaligned(arr, 17);
+ }
+
static Object testFixedOffsetArray(Object[] arr) {
return UNSAFE.getObject(arr, E_OFFSET);
}
static Object testFixedBaseArray(long off) {
*** 116,132 ****
--- 165,189 ----
for (int i = 0; i < 20_000; i++) {
// Instance
testFixedOffsetField(INSTANCE);
testFixedOffsetHeader0(INSTANCE);
testFixedOffsetHeader4(INSTANCE);
+ testFixedOffsetHeader8(INSTANCE);
+ testFixedOffsetHeader12(INSTANCE);
+ testFixedOffsetHeader16(INSTANCE);
+ testFixedOffsetHeader17(INSTANCE);
testFixedBase(F_OFFSET);
testOpaque(INSTANCE, F_OFFSET);
testMixedAccess();
// Array
testFixedOffsetHeaderArray0(ARRAY);
testFixedOffsetHeaderArray4(ARRAY);
+ testFixedOffsetHeaderArray8(ARRAY);
+ testFixedOffsetHeaderArray12(ARRAY);
+ testFixedOffsetHeaderArray16(ARRAY);
+ testFixedOffsetHeaderArray17(ARRAY);
testFixedOffsetArray(ARRAY);
testFixedBaseArray(E_OFFSET);
testOpaqueArray(ARRAY, E_OFFSET);
}
System.out.println("TEST PASSED");
< prev index next >