171fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe/*
271fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * Copyright (C) 2015 The Android Open Source Project
371fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe *
471fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * Licensed under the Apache License, Version 2.0 (the "License");
571fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * you may not use this file except in compliance with the License.
671fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * You may obtain a copy of the License at
771fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe *
871fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe *      http://www.apache.org/licenses/LICENSE-2.0
971fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe *
1071fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * Unless required by applicable law or agreed to in writing, software
1171fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * distributed under the License is distributed on an "AS IS" BASIS,
1271fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1371fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * See the License for the specific language governing permissions and
1471fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe * limitations under the License.
1571fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe */
1671fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe
1771fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe#ifndef ART_COMPILER_OPTIMIZING_INTRINSICS_LIST_H_
1871fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe#define ART_COMPILER_OPTIMIZING_INTRINSICS_LIST_H_
1971fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe
2071fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe// All intrinsics supported by the optimizing compiler. Format is name, then whether it is expected
2157b81ecbe74138992dd447251e94ed06cd5eb802agicsaki// to be a HInvokeStaticOrDirect node (compared to HInvokeVirtual), then whether it requires an
222f9fcc999fab4ba6cd86c30e664325b47b9618e5Aart Bik// environment, may have side effects, or may throw exceptions.
2371fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe
2471fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe#define INTRINSICS_LIST(V) \
255d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(DoubleDoubleToRawLongBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
262a6aad9d388bd29bff04aeec3eb9429d436d1873Aart Bik  V(DoubleDoubleToLongBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
2759c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(DoubleIsInfinite, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
2859c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(DoubleIsNaN, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
295d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(DoubleLongBitsToDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
305d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(FloatFloatToRawIntBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
312a6aad9d388bd29bff04aeec3eb9429d436d1873Aart Bik  V(FloatFloatToIntBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
3259c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(FloatIsInfinite, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
3359c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(FloatIsNaN, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
345d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(FloatIntBitsToFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
355d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(IntegerReverse, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
365d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(IntegerReverseBytes, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
373f67e692860d281858485d48a4f1f81b907f1444Aart Bik  V(IntegerBitCount, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
3859c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(IntegerCompare, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
3959c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(IntegerHighestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
4059c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(IntegerLowestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
415d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(IntegerNumberOfLeadingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
425d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(IntegerNumberOfTrailingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
435d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(IntegerRotateRight, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
445d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(IntegerRotateLeft, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
4559c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(IntegerSignum, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
465d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(LongReverse, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
475d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(LongReverseBytes, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
483f67e692860d281858485d48a4f1f81b907f1444Aart Bik  V(LongBitCount, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
4959c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(LongCompare, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
5059c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(LongHighestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
5159c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(LongLowestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
525d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(LongNumberOfLeadingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
535d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(LongNumberOfTrailingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
545d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(LongRotateRight, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
555d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(LongRotateLeft, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
5659c9454b92c2096a30a2bbdffb64edf33dbdd916Aart Bik  V(LongSignum, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
575d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(ShortReverseBytes, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
585d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAbsDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
595d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAbsFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
605d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAbsLong, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
615d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAbsInt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
625d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMinDoubleDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
635d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMinFloatFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
645d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMinLongLong, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
655d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMinIntInt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
665d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMaxDoubleDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
675d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMaxFloatFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
685d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMaxLongLong, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
695d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathMaxIntInt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
705d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathCos, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
715d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathSin, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
725d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAcos, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
735d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAsin, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
745d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAtan, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
755d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathAtan2, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
765d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathCbrt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
775d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathCosh, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
785d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathExp, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
795d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathExpm1, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
805d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathHypot, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
815d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathLog, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
825d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathLog10, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
835d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathNextAfter, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
845d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathSinh, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
855d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathTan, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
865d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathTanh, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
875d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathSqrt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
885d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathCeil, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
895d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathFloor, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
905d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathRint, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
915d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathRoundDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
925d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MathRoundFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
935d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(SystemArrayCopyChar, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
945d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(SystemArrayCopy, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
955d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(ThreadCurrentThread, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow) \
965d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPeekByte, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
975d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPeekIntNative, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
985d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPeekLongNative, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
995d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPeekShortNative, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1005d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPokeByte, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow) \
1015d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPokeIntNative, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow) \
1025d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPokeLongNative, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow) \
1035d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(MemoryPokeShortNative, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow) \
1045d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringCharAt, kDirect, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1055d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringCompareTo, kDirect, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1065d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringEquals, kDirect, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1075d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringGetCharsNoCheck, kDirect, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1085d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringIndexOf, kDirect, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1095d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringIndexOfAfter, kDirect, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow) \
1105d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringNewStringFromBytes, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1115d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringNewStringFromChars, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1125d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(StringNewStringFromString, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1135d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeCASInt, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1145d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeCASLong, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1155d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeCASObject, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1165d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeGet, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1175d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeGetVolatile, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1185d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeGetObject, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1195d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeGetObjectVolatile, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1205d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeGetLong, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1215d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafeGetLongVolatile, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1225d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePut, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1235d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutOrdered, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1245d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutVolatile, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1255d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutObject, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1265d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutObjectOrdered, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1275d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutObjectVolatile, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1285d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutLong, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1295d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutLongOrdered, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1305d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(UnsafePutLongVolatile, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1310e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeGetAndAddInt, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1320e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeGetAndAddLong, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1330e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeGetAndSetInt, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1340e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeGetAndSetLong, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1350e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeGetAndSetObject, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1360e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeLoadFence, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1370e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeStoreFence, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1380e54c0160c84894696c05af6cad9eae3690f9496Aart Bik  V(UnsafeFullFence, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow) \
1395d75afe333f57546786686d9bee16b52f1bbe971Aart Bik  V(ReferenceGetReferent, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow)
14071fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe
14171fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe#endif  // ART_COMPILER_OPTIMIZING_INTRINSICS_LIST_H_
14271fb52fee246b7d511f520febbd73dc7a9bbca79Andreas Gampe#undef ART_COMPILER_OPTIMIZING_INTRINSICS_LIST_H_   // #define is only for lint.
143