466 } |
466 } |
467 } |
467 } |
468 #endif |
468 #endif |
469 UNSAFE_END |
469 UNSAFE_END |
470 |
470 |
|
471 UNSAFE_ENTRY(void, Unsafe_LoadFence(JNIEnv *env, jobject unsafe)) |
|
472 UnsafeWrapper("Unsafe_LoadFence"); |
|
473 OrderAccess::acquire(); |
|
474 UNSAFE_END |
|
475 |
|
476 UNSAFE_ENTRY(void, Unsafe_StoreFence(JNIEnv *env, jobject unsafe)) |
|
477 UnsafeWrapper("Unsafe_StoreFence"); |
|
478 OrderAccess::release(); |
|
479 UNSAFE_END |
|
480 |
|
481 UNSAFE_ENTRY(void, Unsafe_FullFence(JNIEnv *env, jobject unsafe)) |
|
482 UnsafeWrapper("Unsafe_FullFence"); |
|
483 OrderAccess::fence(); |
|
484 UNSAFE_END |
|
485 |
471 ////// Data in the C heap. |
486 ////// Data in the C heap. |
472 |
487 |
473 // Note: These do not throw NullPointerException for bad pointers. |
488 // Note: These do not throw NullPointerException for bad pointers. |
474 // They just crash. Only a oop base pointer can generate a NullPointerException. |
489 // They just crash. Only a oop base pointer can generate a NullPointerException. |
475 // |
490 // |
1548 {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, |
1563 {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, |
1549 {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, |
1564 {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, |
1550 {CC"putOrderedObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetOrderedObject)}, |
1565 {CC"putOrderedObject", CC"("OBJ"J"OBJ")V", FN_PTR(Unsafe_SetOrderedObject)}, |
1551 {CC"putOrderedInt", CC"("OBJ"JI)V", FN_PTR(Unsafe_SetOrderedInt)}, |
1566 {CC"putOrderedInt", CC"("OBJ"JI)V", FN_PTR(Unsafe_SetOrderedInt)}, |
1552 {CC"putOrderedLong", CC"("OBJ"JJ)V", FN_PTR(Unsafe_SetOrderedLong)}, |
1567 {CC"putOrderedLong", CC"("OBJ"JJ)V", FN_PTR(Unsafe_SetOrderedLong)}, |
|
1568 {CC"loadFence", CC"()V", FN_PTR(Unsafe_LoadFence)}, |
|
1569 {CC"storeFence", CC"()V", FN_PTR(Unsafe_StoreFence)}, |
|
1570 {CC"fullFence", CC"()V", FN_PTR(Unsafe_FullFence)}, |
1553 {CC"park", CC"(ZJ)V", FN_PTR(Unsafe_Park)}, |
1571 {CC"park", CC"(ZJ)V", FN_PTR(Unsafe_Park)}, |
1554 {CC"unpark", CC"("OBJ")V", FN_PTR(Unsafe_Unpark)} |
1572 {CC"unpark", CC"("OBJ")V", FN_PTR(Unsafe_Unpark)} |
1555 |
1573 |
1556 // {CC"getLoadAverage", CC"([DI)I", FN_PTR(Unsafe_Loadavg)}, |
1574 // {CC"getLoadAverage", CC"([DI)I", FN_PTR(Unsafe_Loadavg)}, |
1557 |
1575 |