567 #end[floatingPoint] |
567 #end[floatingPoint] |
568 } |
568 } |
569 |
569 |
570 @ForceInline |
570 @ForceInline |
571 static $type$ getVolatile(ByteBufferHandle handle, Object obb, int index) { |
571 static $type$ getVolatile(ByteBufferHandle handle, Object obb, int index) { |
572 ByteBuffer bb = (ByteBuffer) obb; |
572 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
573 return convEndian(handle.be, |
573 return convEndian(handle.be, |
574 UNSAFE.get$RawType$Volatile( |
574 UNSAFE.get$RawType$Volatile( |
575 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
575 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
576 address(bb, index(bb, index)))); |
576 address(bb, index(bb, index)))); |
577 } |
577 } |
578 |
578 |
579 @ForceInline |
579 @ForceInline |
580 static void setVolatile(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
580 static void setVolatile(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
581 ByteBuffer bb = (ByteBuffer) obb; |
581 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
582 UNSAFE.put$RawType$Volatile( |
582 UNSAFE.put$RawType$Volatile( |
583 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
583 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
584 address(bb, indexRO(bb, index)), |
584 address(bb, indexRO(bb, index)), |
585 convEndian(handle.be, value)); |
585 convEndian(handle.be, value)); |
586 } |
586 } |
587 |
587 |
588 @ForceInline |
588 @ForceInline |
589 static $type$ getAcquire(ByteBufferHandle handle, Object obb, int index) { |
589 static $type$ getAcquire(ByteBufferHandle handle, Object obb, int index) { |
590 ByteBuffer bb = (ByteBuffer) obb; |
590 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
591 return convEndian(handle.be, |
591 return convEndian(handle.be, |
592 UNSAFE.get$RawType$Acquire( |
592 UNSAFE.get$RawType$Acquire( |
593 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
593 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
594 address(bb, index(bb, index)))); |
594 address(bb, index(bb, index)))); |
595 } |
595 } |
596 |
596 |
597 @ForceInline |
597 @ForceInline |
598 static void setRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
598 static void setRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
599 ByteBuffer bb = (ByteBuffer) obb; |
599 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
600 UNSAFE.put$RawType$Release( |
600 UNSAFE.put$RawType$Release( |
601 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
601 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
602 address(bb, indexRO(bb, index)), |
602 address(bb, indexRO(bb, index)), |
603 convEndian(handle.be, value)); |
603 convEndian(handle.be, value)); |
604 } |
604 } |
605 |
605 |
606 @ForceInline |
606 @ForceInline |
607 static $type$ getOpaque(ByteBufferHandle handle, Object obb, int index) { |
607 static $type$ getOpaque(ByteBufferHandle handle, Object obb, int index) { |
608 ByteBuffer bb = (ByteBuffer) obb; |
608 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
609 return convEndian(handle.be, |
609 return convEndian(handle.be, |
610 UNSAFE.get$RawType$Opaque( |
610 UNSAFE.get$RawType$Opaque( |
611 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
611 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
612 address(bb, index(bb, index)))); |
612 address(bb, index(bb, index)))); |
613 } |
613 } |
614 |
614 |
615 @ForceInline |
615 @ForceInline |
616 static void setOpaque(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
616 static void setOpaque(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
617 ByteBuffer bb = (ByteBuffer) obb; |
617 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
618 UNSAFE.put$RawType$Opaque( |
618 UNSAFE.put$RawType$Opaque( |
619 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
619 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
620 address(bb, indexRO(bb, index)), |
620 address(bb, indexRO(bb, index)), |
621 convEndian(handle.be, value)); |
621 convEndian(handle.be, value)); |
622 } |
622 } |
623 #if[CAS] |
623 #if[CAS] |
624 |
624 |
625 @ForceInline |
625 @ForceInline |
626 static boolean compareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
626 static boolean compareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
627 ByteBuffer bb = (ByteBuffer) obb; |
627 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
628 return UNSAFE.compareAndSet$RawType$( |
628 return UNSAFE.compareAndSet$RawType$( |
629 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
629 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
630 address(bb, indexRO(bb, index)), |
630 address(bb, indexRO(bb, index)), |
631 convEndian(handle.be, expected), convEndian(handle.be, value)); |
631 convEndian(handle.be, expected), convEndian(handle.be, value)); |
632 } |
632 } |
633 |
633 |
634 @ForceInline |
634 @ForceInline |
635 static $type$ compareAndExchange(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
635 static $type$ compareAndExchange(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
636 ByteBuffer bb = (ByteBuffer) obb; |
636 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
637 return convEndian(handle.be, |
637 return convEndian(handle.be, |
638 UNSAFE.compareAndExchange$RawType$( |
638 UNSAFE.compareAndExchange$RawType$( |
639 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
639 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
640 address(bb, indexRO(bb, index)), |
640 address(bb, indexRO(bb, index)), |
641 convEndian(handle.be, expected), convEndian(handle.be, value))); |
641 convEndian(handle.be, expected), convEndian(handle.be, value))); |
642 } |
642 } |
643 |
643 |
644 @ForceInline |
644 @ForceInline |
645 static $type$ compareAndExchangeAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
645 static $type$ compareAndExchangeAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
646 ByteBuffer bb = (ByteBuffer) obb; |
646 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
647 return convEndian(handle.be, |
647 return convEndian(handle.be, |
648 UNSAFE.compareAndExchange$RawType$Acquire( |
648 UNSAFE.compareAndExchange$RawType$Acquire( |
649 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
649 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
650 address(bb, indexRO(bb, index)), |
650 address(bb, indexRO(bb, index)), |
651 convEndian(handle.be, expected), convEndian(handle.be, value))); |
651 convEndian(handle.be, expected), convEndian(handle.be, value))); |
652 } |
652 } |
653 |
653 |
654 @ForceInline |
654 @ForceInline |
655 static $type$ compareAndExchangeRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
655 static $type$ compareAndExchangeRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
656 ByteBuffer bb = (ByteBuffer) obb; |
656 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
657 return convEndian(handle.be, |
657 return convEndian(handle.be, |
658 UNSAFE.compareAndExchange$RawType$Release( |
658 UNSAFE.compareAndExchange$RawType$Release( |
659 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
659 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
660 address(bb, indexRO(bb, index)), |
660 address(bb, indexRO(bb, index)), |
661 convEndian(handle.be, expected), convEndian(handle.be, value))); |
661 convEndian(handle.be, expected), convEndian(handle.be, value))); |
662 } |
662 } |
663 |
663 |
664 @ForceInline |
664 @ForceInline |
665 static boolean weakCompareAndSetPlain(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
665 static boolean weakCompareAndSetPlain(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
666 ByteBuffer bb = (ByteBuffer) obb; |
666 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
667 return UNSAFE.weakCompareAndSet$RawType$Plain( |
667 return UNSAFE.weakCompareAndSet$RawType$Plain( |
668 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
668 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
669 address(bb, indexRO(bb, index)), |
669 address(bb, indexRO(bb, index)), |
670 convEndian(handle.be, expected), convEndian(handle.be, value)); |
670 convEndian(handle.be, expected), convEndian(handle.be, value)); |
671 } |
671 } |
672 |
672 |
673 @ForceInline |
673 @ForceInline |
674 static boolean weakCompareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
674 static boolean weakCompareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
675 ByteBuffer bb = (ByteBuffer) obb; |
675 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
676 return UNSAFE.weakCompareAndSet$RawType$( |
676 return UNSAFE.weakCompareAndSet$RawType$( |
677 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
677 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
678 address(bb, indexRO(bb, index)), |
678 address(bb, indexRO(bb, index)), |
679 convEndian(handle.be, expected), convEndian(handle.be, value)); |
679 convEndian(handle.be, expected), convEndian(handle.be, value)); |
680 } |
680 } |
681 |
681 |
682 @ForceInline |
682 @ForceInline |
683 static boolean weakCompareAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
683 static boolean weakCompareAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
684 ByteBuffer bb = (ByteBuffer) obb; |
684 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
685 return UNSAFE.weakCompareAndSet$RawType$Acquire( |
685 return UNSAFE.weakCompareAndSet$RawType$Acquire( |
686 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
686 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
687 address(bb, indexRO(bb, index)), |
687 address(bb, indexRO(bb, index)), |
688 convEndian(handle.be, expected), convEndian(handle.be, value)); |
688 convEndian(handle.be, expected), convEndian(handle.be, value)); |
689 } |
689 } |
690 |
690 |
691 @ForceInline |
691 @ForceInline |
692 static boolean weakCompareAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
692 static boolean weakCompareAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) { |
693 ByteBuffer bb = (ByteBuffer) obb; |
693 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
694 return UNSAFE.weakCompareAndSet$RawType$Release( |
694 return UNSAFE.weakCompareAndSet$RawType$Release( |
695 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
695 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
696 address(bb, indexRO(bb, index)), |
696 address(bb, indexRO(bb, index)), |
697 convEndian(handle.be, expected), convEndian(handle.be, value)); |
697 convEndian(handle.be, expected), convEndian(handle.be, value)); |
698 } |
698 } |
699 |
699 |
700 @ForceInline |
700 @ForceInline |
701 static $type$ getAndSet(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
701 static $type$ getAndSet(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
702 ByteBuffer bb = (ByteBuffer) obb; |
702 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
703 return convEndian(handle.be, |
703 return convEndian(handle.be, |
704 UNSAFE.getAndSet$RawType$( |
704 UNSAFE.getAndSet$RawType$( |
705 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
705 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
706 address(bb, indexRO(bb, index)), |
706 address(bb, indexRO(bb, index)), |
707 convEndian(handle.be, value))); |
707 convEndian(handle.be, value))); |
708 } |
708 } |
709 |
709 |
710 @ForceInline |
710 @ForceInline |
711 static $type$ getAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
711 static $type$ getAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
712 ByteBuffer bb = (ByteBuffer) obb; |
712 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
713 return convEndian(handle.be, |
713 return convEndian(handle.be, |
714 UNSAFE.getAndSet$RawType$Acquire( |
714 UNSAFE.getAndSet$RawType$Acquire( |
715 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
715 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
716 address(bb, indexRO(bb, index)), |
716 address(bb, indexRO(bb, index)), |
717 convEndian(handle.be, value))); |
717 convEndian(handle.be, value))); |
718 } |
718 } |
719 |
719 |
720 @ForceInline |
720 @ForceInline |
721 static $type$ getAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
721 static $type$ getAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) { |
722 ByteBuffer bb = (ByteBuffer) obb; |
722 ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb); |
723 return convEndian(handle.be, |
723 return convEndian(handle.be, |
724 UNSAFE.getAndSet$RawType$Release( |
724 UNSAFE.getAndSet$RawType$Release( |
725 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
725 UNSAFE.getObject(bb, BYTE_BUFFER_HB), |
726 address(bb, indexRO(bb, index)), |
726 address(bb, indexRO(bb, index)), |
727 convEndian(handle.be, value))); |
727 convEndian(handle.be, value))); |