hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java
changeset 36316 7a83de7aabca
parent 35103 d19354bcbfa6
child 36827 53d2d43551d2
equal deleted inserted replaced
36315:150a415079ae 36316:7a83de7aabca
   161             UNSAFE.putOrderedLong(base, offset, 1L);
   161             UNSAFE.putOrderedLong(base, offset, 1L);
   162             long x = UNSAFE.getLongVolatile(base, offset);
   162             long x = UNSAFE.getLongVolatile(base, offset);
   163             assertEquals(x, 1L, "putRelease long value");
   163             assertEquals(x, 1L, "putRelease long value");
   164         }
   164         }
   165 
   165 
       
   166         // Lazy
       
   167         {
       
   168             UNSAFE.putLongRelease(base, offset, 1L);
       
   169             long x = UNSAFE.getLongAcquire(base, offset);
       
   170             assertEquals(x, 1L, "putRelease long value");
       
   171         }
       
   172 
       
   173         // Opaque
       
   174         {
       
   175             UNSAFE.putLongOpaque(base, offset, 2L);
       
   176             long x = UNSAFE.getLongOpaque(base, offset);
       
   177             assertEquals(x, 2L, "putOpaque long value");
       
   178         }
       
   179 
   166         // Unaligned
   180         // Unaligned
   167         {
   181         {
   168             UNSAFE.putLongUnaligned(base, offset, 2L);
   182             UNSAFE.putLongUnaligned(base, offset, 2L);
   169             long x = UNSAFE.getLongUnaligned(base, offset);
   183             long x = UNSAFE.getLongUnaligned(base, offset);
   170             assertEquals(x, 2L, "putUnaligned long value");
   184             assertEquals(x, 2L, "putUnaligned long value");
   197             assertEquals(r, false, "failing compareAndSwap long");
   211             assertEquals(r, false, "failing compareAndSwap long");
   198             long x = UNSAFE.getLong(base, offset);
   212             long x = UNSAFE.getLong(base, offset);
   199             assertEquals(x, 2L, "failing compareAndSwap long value");
   213             assertEquals(x, 2L, "failing compareAndSwap long value");
   200         }
   214         }
   201 
   215 
       
   216         // Advanced compare
       
   217         {
       
   218             long r = UNSAFE.compareAndExchangeLongVolatile(base, offset, 2L, 1L);
       
   219             assertEquals(r, 2L, "success compareAndExchangeVolatile long");
       
   220             long x = UNSAFE.getLong(base, offset);
       
   221             assertEquals(x, 1L, "success compareAndExchangeVolatile long value");
       
   222         }
       
   223 
       
   224         {
       
   225             long r = UNSAFE.compareAndExchangeLongVolatile(base, offset, 2L, 3L);
       
   226             assertEquals(r, 1L, "failing compareAndExchangeVolatile long");
       
   227             long x = UNSAFE.getLong(base, offset);
       
   228             assertEquals(x, 1L, "failing compareAndExchangeVolatile long value");
       
   229         }
       
   230 
       
   231         {
       
   232             long r = UNSAFE.compareAndExchangeLongAcquire(base, offset, 1L, 2L);
       
   233             assertEquals(r, 1L, "success compareAndExchangeAcquire long");
       
   234             long x = UNSAFE.getLong(base, offset);
       
   235             assertEquals(x, 2L, "success compareAndExchangeAcquire long value");
       
   236         }
       
   237 
       
   238         {
       
   239             long r = UNSAFE.compareAndExchangeLongAcquire(base, offset, 1L, 3L);
       
   240             assertEquals(r, 2L, "failing compareAndExchangeAcquire long");
       
   241             long x = UNSAFE.getLong(base, offset);
       
   242             assertEquals(x, 2L, "failing compareAndExchangeAcquire long value");
       
   243         }
       
   244 
       
   245         {
       
   246             long r = UNSAFE.compareAndExchangeLongRelease(base, offset, 2L, 1L);
       
   247             assertEquals(r, 2L, "success compareAndExchangeRelease long");
       
   248             long x = UNSAFE.getLong(base, offset);
       
   249             assertEquals(x, 1L, "success compareAndExchangeRelease long value");
       
   250         }
       
   251 
       
   252         {
       
   253             long r = UNSAFE.compareAndExchangeLongRelease(base, offset, 2L, 3L);
       
   254             assertEquals(r, 1L, "failing compareAndExchangeRelease long");
       
   255             long x = UNSAFE.getLong(base, offset);
       
   256             assertEquals(x, 1L, "failing compareAndExchangeRelease long value");
       
   257         }
       
   258 
       
   259         {
       
   260             boolean r = UNSAFE.weakCompareAndSwapLong(base, offset, 1L, 2L);
       
   261             assertEquals(r, true, "weakCompareAndSwap long");
       
   262             long x = UNSAFE.getLong(base, offset);
       
   263             assertEquals(x, 2L, "weakCompareAndSwap long value");
       
   264         }
       
   265 
       
   266         {
       
   267             boolean r = UNSAFE.weakCompareAndSwapLongAcquire(base, offset, 2L, 1L);
       
   268             assertEquals(r, true, "weakCompareAndSwapAcquire long");
       
   269             long x = UNSAFE.getLong(base, offset);
       
   270             assertEquals(x, 1L, "weakCompareAndSwapAcquire long");
       
   271         }
       
   272 
       
   273         {
       
   274             boolean r = UNSAFE.weakCompareAndSwapLongRelease(base, offset, 1L, 2L);
       
   275             assertEquals(r, true, "weakCompareAndSwapRelease long");
       
   276             long x = UNSAFE.getLong(base, offset);
       
   277             assertEquals(x, 2L, "weakCompareAndSwapRelease long");
       
   278         }
       
   279 
   202         // Compare set and get
   280         // Compare set and get
   203         {
   281         {
   204             long o = UNSAFE.getAndSetLong(base, offset, 1L);
   282             long o = UNSAFE.getAndSetLong(base, offset, 1L);
   205             assertEquals(o, 2L, "getAndSet long");
   283             assertEquals(o, 2L, "getAndSet long");
   206             long x = UNSAFE.getLong(base, offset);
   284             long x = UNSAFE.getLong(base, offset);