1.1 --- a/test/compiler/unsafe/OpaqueAccesses.java Wed Nov 23 23:10:03 2016 -0800 1.2 +++ b/test/compiler/unsafe/OpaqueAccesses.java Wed Nov 23 23:15:05 2016 -0800 1.3 @@ -30,6 +30,22 @@ 1.4 * 1.5 * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions 1.6 * -XX:-TieredCompilation -Xbatch 1.7 + * -XX:+UseCompressedOops -XX:+UseCompressedClassPointers 1.8 + * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test* 1.9 + * compiler.unsafe.OpaqueAccesses 1.10 + * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions 1.11 + * -XX:-TieredCompilation -Xbatch 1.12 + * -XX:+UseCompressedOops -XX:-UseCompressedClassPointers 1.13 + * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test* 1.14 + * compiler.unsafe.OpaqueAccesses 1.15 + * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions 1.16 + * -XX:-TieredCompilation -Xbatch 1.17 + * -XX:-UseCompressedOops -XX:+UseCompressedClassPointers 1.18 + * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test* 1.19 + * compiler.unsafe.OpaqueAccesses 1.20 + * @run main/bootclasspath/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions 1.21 + * -XX:-TieredCompilation -Xbatch 1.22 + * -XX:-UseCompressedOops -XX:-UseCompressedClassPointers 1.23 * -XX:CompileCommand=dontinline,compiler.unsafe.OpaqueAccesses::test* 1.24 * compiler.unsafe.OpaqueAccesses 1.25 */ 1.26 @@ -61,6 +77,7 @@ 1.27 } 1.28 1.29 private Object f = new Object(); 1.30 + private long l1, l2; 1.31 1.32 static Object testFixedOffsetField(Object o) { 1.33 return UNSAFE.getObject(o, F_OFFSET); 1.34 @@ -74,6 +91,18 @@ 1.35 return UNSAFE.getInt(o, 4); 1.36 } 1.37 1.38 + static int testFixedOffsetHeader8(Object o) { 1.39 + return UNSAFE.getInt(o, 8); 1.40 + } 1.41 + 1.42 + static int testFixedOffsetHeader12(Object o) { 1.43 + return UNSAFE.getInt(o, 12); 1.44 + } 1.45 + 1.46 + static int testFixedOffsetHeader16(Object o) { 1.47 + return UNSAFE.getInt(o, 16); 1.48 + } 1.49 + 1.50 static Object testFixedBase(long off) { 1.51 return UNSAFE.getObject(INSTANCE, off); 1.52 } 1.53 @@ -90,6 +119,18 @@ 1.54 return UNSAFE.getInt(arr, 4); 1.55 } 1.56 1.57 + static int testFixedOffsetHeaderArray8(Object[] arr) { 1.58 + return UNSAFE.getInt(arr, 8); 1.59 + } 1.60 + 1.61 + static int testFixedOffsetHeaderArray12(Object[] arr) { 1.62 + return UNSAFE.getInt(arr, 12); 1.63 + } 1.64 + 1.65 + static int testFixedOffsetHeaderArray16(Object[] arr) { 1.66 + return UNSAFE.getInt(arr, 16); 1.67 + } 1.68 + 1.69 static Object testFixedOffsetArray(Object[] arr) { 1.70 return UNSAFE.getObject(arr, E_OFFSET); 1.71 } 1.72 @@ -118,6 +159,9 @@ 1.73 testFixedOffsetField(INSTANCE); 1.74 testFixedOffsetHeader0(INSTANCE); 1.75 testFixedOffsetHeader4(INSTANCE); 1.76 + testFixedOffsetHeader8(INSTANCE); 1.77 + testFixedOffsetHeader12(INSTANCE); 1.78 + testFixedOffsetHeader16(INSTANCE); 1.79 testFixedBase(F_OFFSET); 1.80 testOpaque(INSTANCE, F_OFFSET); 1.81 testMixedAccess(); 1.82 @@ -125,6 +169,9 @@ 1.83 // Array 1.84 testFixedOffsetHeaderArray0(ARRAY); 1.85 testFixedOffsetHeaderArray4(ARRAY); 1.86 + testFixedOffsetHeaderArray8(ARRAY); 1.87 + testFixedOffsetHeaderArray12(ARRAY); 1.88 + testFixedOffsetHeaderArray16(ARRAY); 1.89 testFixedOffsetArray(ARRAY); 1.90 testFixedBaseArray(E_OFFSET); 1.91 testOpaqueArray(ARRAY, E_OFFSET);