154 {#if[Object]?handle.fieldType.cast(expected):expected}, |
154 {#if[Object]?handle.fieldType.cast(expected):expected}, |
155 {#if[Object]?handle.fieldType.cast(value):value}); |
155 {#if[Object]?handle.fieldType.cast(value):value}); |
156 } |
156 } |
157 |
157 |
158 @ForceInline |
158 @ForceInline |
|
159 static boolean weakCompareAndSetPlain(FieldInstanceReadWrite handle, Object holder, $type$ expected, $type$ value) { |
|
160 return UNSAFE.weakCompareAndSwap$Type$(Objects.requireNonNull(handle.receiverType.cast(holder)), |
|
161 handle.fieldOffset, |
|
162 {#if[Object]?handle.fieldType.cast(expected):expected}, |
|
163 {#if[Object]?handle.fieldType.cast(value):value}); |
|
164 } |
|
165 |
|
166 @ForceInline |
159 static boolean weakCompareAndSet(FieldInstanceReadWrite handle, Object holder, $type$ expected, $type$ value) { |
167 static boolean weakCompareAndSet(FieldInstanceReadWrite handle, Object holder, $type$ expected, $type$ value) { |
160 return UNSAFE.weakCompareAndSwap$Type$(Objects.requireNonNull(handle.receiverType.cast(holder)), |
|
161 handle.fieldOffset, |
|
162 {#if[Object]?handle.fieldType.cast(expected):expected}, |
|
163 {#if[Object]?handle.fieldType.cast(value):value}); |
|
164 } |
|
165 |
|
166 @ForceInline |
|
167 static boolean weakCompareAndSetVolatile(FieldInstanceReadWrite handle, Object holder, $type$ expected, $type$ value) { |
|
168 return UNSAFE.weakCompareAndSwap$Type$Volatile(Objects.requireNonNull(handle.receiverType.cast(holder)), |
168 return UNSAFE.weakCompareAndSwap$Type$Volatile(Objects.requireNonNull(handle.receiverType.cast(holder)), |
169 handle.fieldOffset, |
169 handle.fieldOffset, |
170 {#if[Object]?handle.fieldType.cast(expected):expected}, |
170 {#if[Object]?handle.fieldType.cast(expected):expected}, |
171 {#if[Object]?handle.fieldType.cast(value):value}); |
171 {#if[Object]?handle.fieldType.cast(value):value}); |
172 } |
172 } |
422 {#if[Object]?handle.fieldType.cast(expected):expected}, |
422 {#if[Object]?handle.fieldType.cast(expected):expected}, |
423 {#if[Object]?handle.fieldType.cast(value):value}); |
423 {#if[Object]?handle.fieldType.cast(value):value}); |
424 } |
424 } |
425 |
425 |
426 @ForceInline |
426 @ForceInline |
|
427 static boolean weakCompareAndSetPlain(FieldStaticReadWrite handle, $type$ expected, $type$ value) { |
|
428 return UNSAFE.weakCompareAndSwap$Type$(handle.base, |
|
429 handle.fieldOffset, |
|
430 {#if[Object]?handle.fieldType.cast(expected):expected}, |
|
431 {#if[Object]?handle.fieldType.cast(value):value}); |
|
432 } |
|
433 |
|
434 @ForceInline |
427 static boolean weakCompareAndSet(FieldStaticReadWrite handle, $type$ expected, $type$ value) { |
435 static boolean weakCompareAndSet(FieldStaticReadWrite handle, $type$ expected, $type$ value) { |
428 return UNSAFE.weakCompareAndSwap$Type$(handle.base, |
|
429 handle.fieldOffset, |
|
430 {#if[Object]?handle.fieldType.cast(expected):expected}, |
|
431 {#if[Object]?handle.fieldType.cast(value):value}); |
|
432 } |
|
433 |
|
434 @ForceInline |
|
435 static boolean weakCompareAndSetVolatile(FieldStaticReadWrite handle, $type$ expected, $type$ value) { |
|
436 return UNSAFE.weakCompareAndSwap$Type$Volatile(handle.base, |
436 return UNSAFE.weakCompareAndSwap$Type$Volatile(handle.base, |
437 handle.fieldOffset, |
437 handle.fieldOffset, |
438 {#if[Object]?handle.fieldType.cast(expected):expected}, |
438 {#if[Object]?handle.fieldType.cast(expected):expected}, |
439 {#if[Object]?handle.fieldType.cast(value):value}); |
439 {#if[Object]?handle.fieldType.cast(value):value}); |
440 } |
440 } |
733 {#if[Object]?handle.componentType.cast(expected):expected}, |
733 {#if[Object]?handle.componentType.cast(expected):expected}, |
734 {#if[Object]?handle.componentType.cast(value):value}); |
734 {#if[Object]?handle.componentType.cast(value):value}); |
735 } |
735 } |
736 |
736 |
737 @ForceInline |
737 @ForceInline |
|
738 static boolean weakCompareAndSetPlain(Array handle, Object oarray, int index, $type$ expected, $type$ value) { |
|
739 #if[Object] |
|
740 Object[] array = (Object[]) handle.arrayType.cast(oarray); |
|
741 #else[Object] |
|
742 $type$[] array = ($type$[]) oarray; |
|
743 #end[Object] |
|
744 return UNSAFE.weakCompareAndSwap$Type$(array, |
|
745 (((long) Preconditions.checkIndex(index, array.length, AIOOBE_SUPPLIER)) << handle.ashift) + handle.abase, |
|
746 {#if[Object]?handle.componentType.cast(expected):expected}, |
|
747 {#if[Object]?handle.componentType.cast(value):value}); |
|
748 } |
|
749 |
|
750 @ForceInline |
738 static boolean weakCompareAndSet(Array handle, Object oarray, int index, $type$ expected, $type$ value) { |
751 static boolean weakCompareAndSet(Array handle, Object oarray, int index, $type$ expected, $type$ value) { |
739 #if[Object] |
|
740 Object[] array = (Object[]) handle.arrayType.cast(oarray); |
|
741 #else[Object] |
|
742 $type$[] array = ($type$[]) oarray; |
|
743 #end[Object] |
|
744 return UNSAFE.weakCompareAndSwap$Type$(array, |
|
745 (((long) Preconditions.checkIndex(index, array.length, AIOOBE_SUPPLIER)) << handle.ashift) + handle.abase, |
|
746 {#if[Object]?handle.componentType.cast(expected):expected}, |
|
747 {#if[Object]?handle.componentType.cast(value):value}); |
|
748 } |
|
749 |
|
750 @ForceInline |
|
751 static boolean weakCompareAndSetVolatile(Array handle, Object oarray, int index, $type$ expected, $type$ value) { |
|
752 #if[Object] |
752 #if[Object] |
753 Object[] array = (Object[]) handle.arrayType.cast(oarray); |
753 Object[] array = (Object[]) handle.arrayType.cast(oarray); |
754 #else[Object] |
754 #else[Object] |
755 $type$[] array = ($type$[]) oarray; |
755 $type$[] array = ($type$[]) oarray; |
756 #end[Object] |
756 #end[Object] |