test/compiler/unsafe/UnsafeGetConstantField.java

Print this page




  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     }