26 /* 27 * @test 28 * @summary tests on constant folding of unsafe get operations 29 * @library /testlibrary /../../test/lib 30 * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions 31 * -Xbatch -XX:-TieredCompilation 32 * -XX:+FoldStableValues 33 * -XX:+UseUnalignedAccesses 34 * java.lang.invoke.UnsafeGetConstantField 35 * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions 36 * -Xbatch -XX:-TieredCompilation 37 * -XX:+FoldStableValues 38 * -XX:-UseUnalignedAccesses 39 * java.lang.invoke.UnsafeGetConstantField 40 */ 41 package java.lang.invoke; 42 43 import jdk.internal.org.objectweb.asm.*; 44 import jdk.test.lib.Asserts; 45 import jdk.test.lib.Utils; 46 import sun.misc.Unsafe; 47 import static jdk.internal.org.objectweb.asm.Opcodes.*; 48 49 public class UnsafeGetConstantField { 50 static final Class<?> THIS_CLASS = UnsafeGetConstantField.class; 51 52 static final Unsafe U = Utils.getUnsafe(); 53 54 public static void main(String[] args) { 55 testUnsafeGetAddress(); 56 testUnsafeGetField(); 57 testUnsafeGetFieldUnaligned(); 58 System.out.println("TEST PASSED"); 59 } 60 61 static final long nativeAddr = U.allocateMemory(16); 62 static void testUnsafeGetAddress() { 63 long cookie = 0x12345678L; 64 U.putAddress(nativeAddr, cookie); 65 for (int i = 0; i < 20_000; i++) { 66 Asserts.assertEquals(checkGetAddress(), cookie); 67 } 68 } 69 @DontInline 70 static long checkGetAddress() { 71 return U.getAddress(nativeAddr); 72 } | 26 /* 27 * @test 28 * @summary tests on constant folding of unsafe get operations 29 * @library /testlibrary /../../test/lib 30 * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions 31 * -Xbatch -XX:-TieredCompilation 32 * -XX:+FoldStableValues 33 * -XX:+UseUnalignedAccesses 34 * java.lang.invoke.UnsafeGetConstantField 35 * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions 36 * -Xbatch -XX:-TieredCompilation 37 * -XX:+FoldStableValues 38 * -XX:-UseUnalignedAccesses 39 * java.lang.invoke.UnsafeGetConstantField 40 */ 41 package java.lang.invoke; 42 43 import jdk.internal.org.objectweb.asm.*; 44 import jdk.test.lib.Asserts; 45 import jdk.test.lib.Utils; 46 import jdk.internal.misc.Unsafe; 47 import static jdk.internal.org.objectweb.asm.Opcodes.*; 48 49 public class UnsafeGetConstantField { 50 static final Class<?> THIS_CLASS = UnsafeGetConstantField.class; 51 52 static final Unsafe U = Unsafe.getUnsafe(); 53 54 public static void main(String[] args) { 55 testUnsafeGetAddress(); 56 testUnsafeGetField(); 57 testUnsafeGetFieldUnaligned(); 58 System.out.println("TEST PASSED"); 59 } 60 61 static final long nativeAddr = U.allocateMemory(16); 62 static void testUnsafeGetAddress() { 63 long cookie = 0x12345678L; 64 U.putAddress(nativeAddr, cookie); 65 for (int i = 0; i < 20_000; i++) { 66 Asserts.assertEquals(checkGetAddress(), cookie); 67 } 68 } 69 @DontInline 70 static long checkGetAddress() { 71 return U.getAddress(nativeAddr); 72 } |