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