55 @Override |
56 @Override |
56 public void setupVarHandleSources() { |
57 public void setupVarHandleSources() { |
57 // Combinations of VarHandle byte[] or ByteBuffer |
58 // Combinations of VarHandle byte[] or ByteBuffer |
58 vhss = new ArrayList<>(); |
59 vhss = new ArrayList<>(); |
59 for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) { |
60 for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) { |
|
61 |
|
62 ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN |
|
63 ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN; |
60 VarHandleSource aeh = new VarHandleSource( |
64 VarHandleSource aeh = new VarHandleSource( |
61 MethodHandles.byteArrayViewVarHandle(char[].class, |
65 MethodHandles.byteArrayViewVarHandle(char[].class, bo), |
62 endianess == MemoryMode.BIG_ENDIAN), |
|
63 endianess, MemoryMode.READ_WRITE); |
66 endianess, MemoryMode.READ_WRITE); |
64 vhss.add(aeh); |
67 vhss.add(aeh); |
65 |
68 |
66 VarHandleSource bbh = new VarHandleSource( |
69 VarHandleSource bbh = new VarHandleSource( |
67 MethodHandles.byteBufferViewVarHandle(char[].class, |
70 MethodHandles.byteBufferViewVarHandle(char[].class, bo), |
68 endianess == MemoryMode.BIG_ENDIAN), |
|
69 endianess, MemoryMode.READ_WRITE); |
71 endianess, MemoryMode.READ_WRITE); |
70 vhss.add(bbh); |
72 vhss.add(bbh); |
71 } |
73 } |
72 } |
74 } |
73 |
75 |
90 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_VOLATILE)); |
92 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_VOLATILE)); |
91 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_ACQUIRE)); |
93 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_ACQUIRE)); |
92 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE)); |
94 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE)); |
93 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET)); |
95 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET)); |
94 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE)); |
96 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE)); |
95 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE)); |
|
96 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE)); |
97 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE)); |
97 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET)); |
98 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET)); |
98 |
99 |
99 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD)); |
100 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD)); |
100 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.ADD_AND_GET)); |
101 assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.ADD_AND_GET)); |