< prev index next >

test/compiler/unsafe/UnsafeGetConstantField.java

Print this page
rev 11557 : 8132919: use package in compiler tests
Reviewed-by: duke


  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 /*
  27  * @test
  28  * @summary tests on constant folding of unsafe get operations
  29  * @library /testlibrary
  30  *
  31  * @requires vm.flavor != "client"
  32  *
  33  * @modules java.base/jdk.internal.org.objectweb.asm
  34  *          java.base/jdk.internal.vm.annotation
  35  *          java.base/jdk.internal.misc
  36  *
  37  * @run main/bootclasspath/othervm -XX:+UnlockDiagnosticVMOptions
  38  *                                 -Xbatch -XX:-TieredCompilation
  39  *                                 -XX:+FoldStableValues
  40  *                                 -XX:CompileCommand=dontinline,UnsafeGetConstantField.checkGetAddress()
  41  *                                 -XX:CompileCommand=dontinline,*.test*
  42  *                                 -XX:+UseUnalignedAccesses
  43  *                         -XaddReads:java.base=ALL-UNNAMED
  44  *                                 compiler.unsafe.UnsafeGetConstantField
  45  *
  46  * @run main/bootclasspath/othervm -XX:+UnlockDiagnosticVMOptions
  47  *                                 -Xbatch -XX:-TieredCompilation
  48  *                                 -XX:+FoldStableValues
  49  *                                 -XX:CompileCommand=dontinline,UnsafeGetConstantField.checkGetAddress()
  50  *                                 -XX:CompileCommand=dontinline,*.test*
  51  *                                 -XX:CompileCommand=inline,*Unsafe.get*
  52  *                                 -XX:-UseUnalignedAccesses
  53  *                         -XaddReads:java.base=ALL-UNNAMED
  54  *                                 compiler.unsafe.UnsafeGetConstantField
  55  */

  56 package compiler.unsafe;
  57 

  58 import jdk.internal.org.objectweb.asm.ClassWriter;
  59 import jdk.internal.org.objectweb.asm.FieldVisitor;
  60 import jdk.internal.org.objectweb.asm.MethodVisitor;
  61 import jdk.internal.org.objectweb.asm.Opcodes;
  62 import jdk.internal.org.objectweb.asm.Type;
  63 import jdk.internal.vm.annotation.Stable;
  64 import jdk.test.lib.Asserts;
  65 import jdk.test.lib.Platform;
  66 import jdk.internal.misc.Unsafe;
  67 
  68 import java.io.IOException;
  69 import java.nio.file.Files;
  70 import java.nio.file.Path;
  71 import java.nio.file.Paths;
  72 
  73 import static jdk.internal.org.objectweb.asm.Opcodes.*;















  74 
  75 public class UnsafeGetConstantField {
  76     static final Class<?> THIS_CLASS = UnsafeGetConstantField.class;
  77     static final Unsafe U = Unsafe.getUnsafe();
  78 
  79     public static void main(String[] args) {
  80         if (Platform.isServer()) {
  81             testUnsafeGetAddress();
  82             testUnsafeGetField();
  83             testUnsafeGetFieldUnaligned();
  84         }
  85         System.out.println("TEST PASSED");
  86     }
  87 
  88     static final long nativeAddr = U.allocateMemory(16);
  89     static void testUnsafeGetAddress() {
  90         long cookie = 0x12345678L;
  91         U.putAddress(nativeAddr, cookie);
  92         for (int i = 0; i < 20_000; i++) {
  93             Asserts.assertEquals(checkGetAddress(), cookie);




  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 /*
  27  * @test
  28  * @summary tests on constant folding of unsafe get operations
  29  * @library /testlibrary
  30  *
  31  * @requires vm.flavor != "client"
  32  *
  33  * @modules java.base/jdk.internal.org.objectweb.asm
  34  *          java.base/jdk.internal.vm.annotation
  35  *          java.base/jdk.internal.misc
  36  *
  37  * @run main/bootclasspath/othervm -XX:+UnlockDiagnosticVMOptions
  38  *                                 -Xbatch -XX:-TieredCompilation
  39  *                                 -XX:+FoldStableValues
  40  *                                 -XX:CompileCommand=dontinline,compiler.unsafe.UnsafeGetConstantField::checkGetAddress
  41  *                                 -XX:CompileCommand=dontinline,*::test*
  42  *                                 -XX:+UseUnalignedAccesses
  43  *                                 -XaddReads:java.base=ALL-UNNAMED
  44  *                                 compiler.unsafe.UnsafeGetConstantField
  45  *
  46  * @run main/bootclasspath/othervm -XX:+UnlockDiagnosticVMOptions
  47  *                                 -Xbatch -XX:-TieredCompilation
  48  *                                 -XX:+FoldStableValues
  49  *                                 -XX:CompileCommand=dontinline,compiler.unsafe.UnsafeGetConstantField::checkGetAddress
  50  *                                 -XX:CompileCommand=dontinline,*::test*
  51  *                                 -XX:CompileCommand=inline,*Unsafe::get*
  52  *                                 -XX:-UseUnalignedAccesses
  53  *                                 -XaddReads:java.base=ALL-UNNAMED
  54  *                                 compiler.unsafe.UnsafeGetConstantField
  55  */
  56 
  57 package compiler.unsafe;
  58 
  59 import jdk.internal.misc.Unsafe;
  60 import jdk.internal.org.objectweb.asm.ClassWriter;
  61 import jdk.internal.org.objectweb.asm.FieldVisitor;
  62 import jdk.internal.org.objectweb.asm.MethodVisitor;
  63 import jdk.internal.org.objectweb.asm.Opcodes;
  64 import jdk.internal.org.objectweb.asm.Type;
  65 import jdk.internal.vm.annotation.Stable;
  66 import jdk.test.lib.Asserts;
  67 import jdk.test.lib.Platform;

  68 
  69 import java.io.IOException;
  70 import java.nio.file.Files;
  71 import java.nio.file.Path;
  72 import java.nio.file.Paths;
  73 
  74 import static jdk.internal.org.objectweb.asm.Opcodes.ACC_FINAL;
  75 import static jdk.internal.org.objectweb.asm.Opcodes.ACC_PUBLIC;
  76 import static jdk.internal.org.objectweb.asm.Opcodes.ACC_STATIC;
  77 import static jdk.internal.org.objectweb.asm.Opcodes.ACONST_NULL;
  78 import static jdk.internal.org.objectweb.asm.Opcodes.ALOAD;
  79 import static jdk.internal.org.objectweb.asm.Opcodes.ARETURN;
  80 import static jdk.internal.org.objectweb.asm.Opcodes.DUP;
  81 import static jdk.internal.org.objectweb.asm.Opcodes.GETFIELD;
  82 import static jdk.internal.org.objectweb.asm.Opcodes.GETSTATIC;
  83 import static jdk.internal.org.objectweb.asm.Opcodes.INVOKESPECIAL;
  84 import static jdk.internal.org.objectweb.asm.Opcodes.INVOKESTATIC;
  85 import static jdk.internal.org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
  86 import static jdk.internal.org.objectweb.asm.Opcodes.NEW;
  87 import static jdk.internal.org.objectweb.asm.Opcodes.PUTFIELD;
  88 import static jdk.internal.org.objectweb.asm.Opcodes.PUTSTATIC;
  89 import static jdk.internal.org.objectweb.asm.Opcodes.RETURN;
  90 
  91 public class UnsafeGetConstantField {
  92     static final Class<?> THIS_CLASS = UnsafeGetConstantField.class;
  93     static final Unsafe U = Unsafe.getUnsafe();
  94 
  95     public static void main(String[] args) {
  96         if (Platform.isServer()) {
  97             testUnsafeGetAddress();
  98             testUnsafeGetField();
  99             testUnsafeGetFieldUnaligned();
 100         }
 101         System.out.println("TEST PASSED");
 102     }
 103 
 104     static final long nativeAddr = U.allocateMemory(16);
 105     static void testUnsafeGetAddress() {
 106         long cookie = 0x12345678L;
 107         U.putAddress(nativeAddr, cookie);
 108         for (int i = 0; i < 20_000; i++) {
 109             Asserts.assertEquals(checkGetAddress(), cookie);


< prev index next >