1762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray/*
2b20f1feff8b1125ecf1f7d4537ed4d6eb002973fNicolas Geoffray * Copyright (C) 2015 The Android Open Source Project
3762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray *
4b20f1feff8b1125ecf1f7d4537ed4d6eb002973fNicolas Geoffray * Licensed under the Apache License, Version 2.0 (the "License");
5762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * you may not use this file except in compliance with the License.
6762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * You may obtain a copy of the License at
7762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray *
8762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray *      http://www.apache.org/licenses/LICENSE-2.0
9762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray *
10762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * Unless required by applicable law or agreed to in writing, software
11762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * distributed under the License is distributed on an "AS IS" BASIS,
12762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * See the License for the specific language governing permissions and
14762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray * limitations under the License.
15762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray */
16762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray
1726ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson#ifndef ART_RUNTIME_INTRINSICS_LIST_H_
1826ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson#define ART_RUNTIME_INTRINSICS_LIST_H_
19762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray
2026ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// This file defines the set of intrinsics that are supported by ART
2126ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// in the compiler and runtime. Neither compiler nor runtime has
2226ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// intrinsics for all methods here.
2326ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//
2426ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// The entries in the INTRINSICS_LIST below have the following format:
2526ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//
2626ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   1. name
2726ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   2. invocation-type (art::InvokeType value).
2826ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   3. needs-environment (art::IntrinsicNeedsEnvironmentOrCache value)
2926ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   4. side-effects (art::IntrinsicSideEffects value)
3026ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   5. exception-info (art::::IntrinsicExceptions value)
3126ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   6. declaring class descriptor
3226ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   7. method name
3326ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//   8. method descriptor
3426ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//
3526ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// The needs-environment, side-effects and exception-info are compiler
3626ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// related properties (compiler/optimizing/nodes.h) that should not be
3726ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// used outside of the compiler.
3826ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//
39762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray// Note: adding a new intrinsic requires an art image version change,
40762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray// as the modifiers flag for some ArtMethods will need to be changed.
4126ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//
4226ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// Note: j.l.Integer.valueOf says kNoThrow even though it could throw an
4326ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// OOME. The kNoThrow should be renamed to kNoVisibleThrow, as it is ok to
4426ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// GVN Integer.valueOf (kNoSideEffects), and it is also OK to remove it if
4526ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// it's unused.
4626ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson//
4726ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// Note: Thread.interrupted is marked with kAllSideEffects due to the lack
4826ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson// of finer grain side effects representation.
49365719c23d809e595cf320bfba40e76bb4e87940Nicolas Geoffray
5043f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson// Intrinsics for methods with signature polymorphic behaviours.
5143f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson#define SIGNATURE_POLYMORPHIC_INTRINSICS_LIST(V) \
5243f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(MethodHandleInvokeExact, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/MethodHandle;", "invokeExact", "([Ljava/lang/Object;)Ljava/lang/Object;") \
5343f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(MethodHandleInvoke, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/MethodHandle;", "invoke", "([Ljava/lang/Object;)Ljava/lang/Object;") \
5443f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleCompareAndExchange, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "compareAndExchange", "([Ljava/lang/Object;)Ljava/lang/Object;") \
5543f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleCompareAndExchangeAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "compareAndExchangeAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
5643f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleCompareAndExchangeRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "compareAndExchangeRelease", "([Ljava/lang/Object;)Ljava/lang/Object;") \
5743f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleCompareAndSet, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "compareAndSet", "([Ljava/lang/Object;)Z") \
5843f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGet, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "get", "([Ljava/lang/Object;)Ljava/lang/Object;") \
5943f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6043f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndAdd, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndAdd", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6143f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndAddAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndAddAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6243f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndAddRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndAddRelease", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6343f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseAnd, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseAnd", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6443f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseAndAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseAndAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6543f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseAndRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseAndRelease", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6643f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseOr, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseOr", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6743f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseOrAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseOrAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6843f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseOrRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseOrRelease", "([Ljava/lang/Object;)Ljava/lang/Object;") \
6943f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseXor, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseXor", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7043f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseXorAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseXorAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7143f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndBitwiseXorRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndBitwiseXorRelease", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7243f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndSet, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndSet", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7343f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndSetAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndSetAcquire", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7443f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetAndSetRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getAndSetRelease", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7543f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetOpaque, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getOpaque", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7643f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleGetVolatile, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "getVolatile", "([Ljava/lang/Object;)Ljava/lang/Object;") \
7743f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleSet, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "set", "([Ljava/lang/Object;)V") \
7843f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleSetOpaque, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "setOpaque", "([Ljava/lang/Object;)V") \
7943f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleSetRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "setRelease", "([Ljava/lang/Object;)V") \
8043f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleSetVolatile, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "setVolatile", "([Ljava/lang/Object;)V") \
8143f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleWeakCompareAndSet, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "weakCompareAndSet", "([Ljava/lang/Object;)Z") \
8243f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleWeakCompareAndSetAcquire, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "weakCompareAndSetAcquire", "([Ljava/lang/Object;)Z") \
8343f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleWeakCompareAndSetPlain, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "weakCompareAndSetPlain", "([Ljava/lang/Object;)Z") \
8443f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleWeakCompareAndSetRelease, kPolymorphic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/invoke/VarHandle;", "weakCompareAndSetRelease", "([Ljava/lang/Object;)Z")
8543f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson
8643f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson// The complete list of intrinsics.
87762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray#define INTRINSICS_LIST(V) \
88762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(DoubleDoubleToRawLongBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Double;", "doubleToRawLongBits", "(D)J") \
89762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(DoubleDoubleToLongBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Double;", "doubleToLongBits", "(D)J") \
90762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(DoubleIsInfinite, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Double;", "isInfinite", "(D)Z") \
91762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(DoubleIsNaN, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Double;", "isNaN", "(D)Z") \
92762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(DoubleLongBitsToDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Double;", "longBitsToDouble", "(J)D") \
93762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(FloatFloatToRawIntBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Float;", "floatToRawIntBits", "(F)I") \
94762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(FloatFloatToIntBits, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Float;", "floatToIntBits", "(F)I") \
95762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(FloatIsInfinite, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Float;", "isInfinite", "(F)Z") \
96762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(FloatIsNaN, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Float;", "isNaN", "(F)Z") \
97762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(FloatIntBitsToFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Float;", "intBitsToFloat", "(I)F") \
98762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerReverse, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "reverse", "(I)I") \
99762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerReverseBytes, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "reverseBytes", "(I)I") \
100762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerBitCount, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "bitCount", "(I)I") \
101762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerCompare, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "compare", "(II)I") \
102762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerHighestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "highestOneBit", "(I)I") \
103762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerLowestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "lowestOneBit", "(I)I") \
104762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerNumberOfLeadingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "numberOfLeadingZeros", "(I)I") \
105762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerNumberOfTrailingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "numberOfTrailingZeros", "(I)I") \
106762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerRotateRight, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "rotateRight", "(II)I") \
107762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerRotateLeft, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "rotateLeft", "(II)I") \
108762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(IntegerSignum, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "signum", "(I)I") \
109762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongReverse, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "reverse", "(J)J") \
110762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongReverseBytes, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "reverseBytes", "(J)J") \
111762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongBitCount, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "bitCount", "(J)I") \
112762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongCompare, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "compare", "(JJ)I") \
113762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongHighestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "highestOneBit", "(J)J") \
114762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongLowestOneBit, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "lowestOneBit", "(J)J") \
115762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongNumberOfLeadingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "numberOfLeadingZeros", "(J)I") \
116762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongNumberOfTrailingZeros, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "numberOfTrailingZeros", "(J)I") \
117762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongRotateRight, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "rotateRight", "(JI)J") \
118762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongRotateLeft, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "rotateLeft", "(JI)J") \
119762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(LongSignum, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Long;", "signum", "(J)I") \
120762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(ShortReverseBytes, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Short;", "reverseBytes", "(S)S") \
121762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAbsDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "abs", "(D)D") \
122762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAbsFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "abs", "(F)F") \
123762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAbsLong, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "abs", "(J)J") \
124762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAbsInt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "abs", "(I)I") \
125762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMinDoubleDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "min", "(DD)D") \
126762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMinFloatFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "min", "(FF)F") \
127762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMinLongLong, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "min", "(JJ)J") \
128762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMinIntInt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "min", "(II)I") \
129762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMaxDoubleDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "max", "(DD)D") \
130762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMaxFloatFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "max", "(FF)F") \
131762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMaxLongLong, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "max", "(JJ)J") \
132762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathMaxIntInt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "max", "(II)I") \
133762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathCos, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "cos", "(D)D") \
134762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathSin, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "sin", "(D)D") \
135762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAcos, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "acos", "(D)D") \
136762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAsin, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "asin", "(D)D") \
137762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAtan, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "atan", "(D)D") \
138762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathAtan2, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "atan2", "(DD)D") \
1394d17987da58d9411adbed1a18203d76d6119612dVladimir Marko  V(MathPow, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "pow", "(DD)D") \
140762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathCbrt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "cbrt", "(D)D") \
141762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathCosh, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "cosh", "(D)D") \
142762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathExp, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "exp", "(D)D") \
143762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathExpm1, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "expm1", "(D)D") \
144762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathHypot, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "hypot", "(DD)D") \
145762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathLog, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "log", "(D)D") \
146762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathLog10, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "log10", "(D)D") \
147762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathNextAfter, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "nextAfter", "(DD)D") \
148762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathSinh, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "sinh", "(D)D") \
149762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathTan, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "tan", "(D)D") \
150762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathTanh, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "tanh", "(D)D") \
151762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathSqrt, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "sqrt", "(D)D") \
152762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathCeil, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "ceil", "(D)D") \
153762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathFloor, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "floor", "(D)D") \
154762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathRint, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "rint", "(D)D") \
155762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathRoundDouble, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "round", "(D)J") \
156762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MathRoundFloat, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Math;", "round", "(F)I") \
157762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(SystemArrayCopyChar, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/System;", "arraycopy", "([CI[CII)V") \
158762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(SystemArrayCopy, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/System;", "arraycopy", "(Ljava/lang/Object;ILjava/lang/Object;II)V") \
159762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(ThreadCurrentThread, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Thread;", "currentThread", "()Ljava/lang/Thread;") \
160762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPeekByte, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Llibcore/io/Memory;", "peekByte", "(J)B") \
161762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPeekIntNative, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Llibcore/io/Memory;", "peekIntNative", "(J)I") \
162762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPeekLongNative, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Llibcore/io/Memory;", "peekLongNative", "(J)J") \
163762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPeekShortNative, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Llibcore/io/Memory;", "peekShortNative", "(J)S") \
164762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPokeByte, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow, "Llibcore/io/Memory;", "pokeByte", "(JB)V") \
165762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPokeIntNative, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow, "Llibcore/io/Memory;", "pokeIntNative", "(JI)V") \
166762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPokeLongNative, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow, "Llibcore/io/Memory;", "pokeLongNative", "(JJ)V") \
167762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(MemoryPokeShortNative, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kCanThrow, "Llibcore/io/Memory;", "pokeShortNative", "(JS)V") \
168762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringCharAt, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Ljava/lang/String;", "charAt", "(I)C") \
169762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringCompareTo, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Ljava/lang/String;", "compareTo", "(Ljava/lang/String;)I") \
170762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringEquals, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Ljava/lang/String;", "equals", "(Ljava/lang/Object;)Z") \
171762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringGetCharsNoCheck, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Ljava/lang/String;", "getCharsNoCheck", "(II[CI)V") \
172ff7d89c0364f6ebd0f0798eb18ef8bd62917de6aAart Bik  V(StringIndexOf, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kNoThrow, "Ljava/lang/String;", "indexOf", "(I)I") \
173ff7d89c0364f6ebd0f0798eb18ef8bd62917de6aAart Bik  V(StringIndexOfAfter, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kNoThrow, "Ljava/lang/String;", "indexOf", "(II)I") \
174ff7d89c0364f6ebd0f0798eb18ef8bd62917de6aAart Bik  V(StringStringIndexOf, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Ljava/lang/String;", "indexOf", "(Ljava/lang/String;)I") \
175ff7d89c0364f6ebd0f0798eb18ef8bd62917de6aAart Bik  V(StringStringIndexOfAfter, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kCanThrow, "Ljava/lang/String;", "indexOf", "(Ljava/lang/String;I)I") \
176762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringIsEmpty, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kNoThrow, "Ljava/lang/String;", "isEmpty", "()Z") \
177762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringLength, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kNoThrow, "Ljava/lang/String;", "length", "()I") \
178762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringNewStringFromBytes, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringFactory;", "newStringFromBytes", "([BIII)Ljava/lang/String;") \
179762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringNewStringFromChars, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringFactory;", "newStringFromChars", "(II[C)Ljava/lang/String;") \
180762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(StringNewStringFromString, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringFactory;", "newStringFromString", "(Ljava/lang/String;)Ljava/lang/String;") \
18171bf7b43380eb445973f32a7f789d9670f8cc97dAart Bik  V(StringBufferAppend, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringBuffer;", "append", "(Ljava/lang/String;)Ljava/lang/StringBuffer;") \
18271bf7b43380eb445973f32a7f789d9670f8cc97dAart Bik  V(StringBufferLength, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kNoThrow, "Ljava/lang/StringBuffer;", "length", "()I") \
18371bf7b43380eb445973f32a7f789d9670f8cc97dAart Bik  V(StringBufferToString, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringBuffer;", "toString", "()Ljava/lang/String;") \
18471bf7b43380eb445973f32a7f789d9670f8cc97dAart Bik  V(StringBuilderAppend, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringBuilder;", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;") \
18571bf7b43380eb445973f32a7f789d9670f8cc97dAart Bik  V(StringBuilderLength, kVirtual, kNeedsEnvironmentOrCache, kReadSideEffects, kNoThrow, "Ljava/lang/StringBuilder;", "length", "()I") \
18671bf7b43380eb445973f32a7f789d9670f8cc97dAart Bik  V(StringBuilderToString, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/StringBuilder;", "toString", "()Ljava/lang/String;") \
187762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeCASInt, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "compareAndSwapInt", "(Ljava/lang/Object;JII)Z") \
188762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeCASLong, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "compareAndSwapLong", "(Ljava/lang/Object;JJJ)Z") \
189762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeCASObject, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "compareAndSwapObject", "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z") \
190762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGet, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getInt", "(Ljava/lang/Object;J)I") \
191762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetVolatile, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getIntVolatile", "(Ljava/lang/Object;J)I") \
192762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetObject, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getObject", "(Ljava/lang/Object;J)Ljava/lang/Object;") \
193762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetObjectVolatile, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getObjectVolatile", "(Ljava/lang/Object;J)Ljava/lang/Object;") \
194762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetLong, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getLong", "(Ljava/lang/Object;J)J") \
195762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetLongVolatile, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getLongVolatile", "(Ljava/lang/Object;J)J") \
196762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePut, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putInt", "(Ljava/lang/Object;JI)V") \
197762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutOrdered, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putOrderedInt", "(Ljava/lang/Object;JI)V") \
198762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutVolatile, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putIntVolatile", "(Ljava/lang/Object;JI)V") \
199762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutObject, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putObject", "(Ljava/lang/Object;JLjava/lang/Object;)V") \
200762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutObjectOrdered, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putOrderedObject", "(Ljava/lang/Object;JLjava/lang/Object;)V") \
201762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutObjectVolatile, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putObjectVolatile", "(Ljava/lang/Object;JLjava/lang/Object;)V") \
202762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutLong, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putLong", "(Ljava/lang/Object;JJ)V") \
203762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutLongOrdered, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putOrderedLong", "(Ljava/lang/Object;JJ)V") \
204762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafePutLongVolatile, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "putLongVolatile", "(Ljava/lang/Object;JJ)V") \
205762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetAndAddInt, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getAndAddInt", "(Ljava/lang/Object;JI)I") \
206762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetAndAddLong, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getAndAddLong", "(Ljava/lang/Object;JJ)J") \
207762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetAndSetInt, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getAndSetInt", "(Ljava/lang/Object;JI)I") \
208762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetAndSetLong, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getAndSetLong", "(Ljava/lang/Object;JJ)J") \
209762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeGetAndSetObject, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "getAndSetObject", "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;") \
210762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeLoadFence, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "loadFence", "()V") \
211762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeStoreFence, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "storeFence", "()V") \
212762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray  V(UnsafeFullFence, kVirtual, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Lsun/misc/Unsafe;", "fullFence", "()V") \
213331605a7ba842573b3876e14c933175382b923c8Nicolas Geoffray  V(ReferenceGetReferent, kDirect, kNeedsEnvironmentOrCache, kAllSideEffects, kCanThrow, "Ljava/lang/ref/Reference;", "getReferent", "()Ljava/lang/Object;") \
214365719c23d809e595cf320bfba40e76bb4e87940Nicolas Geoffray  V(IntegerValueOf, kStatic, kNeedsEnvironmentOrCache, kNoSideEffects, kNoThrow, "Ljava/lang/Integer;", "valueOf", "(I)Ljava/lang/Integer;") \
2154a4610a438ff2b836f6fe07839a0689ce618863aOrion Hodson  V(ThreadInterrupted, kStatic, kNeedsEnvironmentOrCache, kAllSideEffects, kNoThrow, "Ljava/lang/Thread;", "interrupted", "()Z") \
2164a4610a438ff2b836f6fe07839a0689ce618863aOrion Hodson  V(VarHandleFullFence, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kNoThrow, "Ljava/lang/invoke/VarHandle;", "fullFence", "()V") \
2174a4610a438ff2b836f6fe07839a0689ce618863aOrion Hodson  V(VarHandleAcquireFence, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kNoThrow, "Ljava/lang/invoke/VarHandle;", "acquireFence", "()V") \
2184a4610a438ff2b836f6fe07839a0689ce618863aOrion Hodson  V(VarHandleReleaseFence, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kNoThrow, "Ljava/lang/invoke/VarHandle;", "releaseFence", "()V") \
2194a4610a438ff2b836f6fe07839a0689ce618863aOrion Hodson  V(VarHandleLoadLoadFence, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kNoThrow, "Ljava/lang/invoke/VarHandle;", "loadLoadFence", "()V") \
22043f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  V(VarHandleStoreStoreFence, kStatic, kNeedsEnvironmentOrCache, kReadSideEffects, kNoThrow, "Ljava/lang/invoke/VarHandle;", "storeStoreFence", "()V") \
2214d4175a132b944214ed7559beb9b6b91d2eb36e1Hans Boehm  V(ReachabilityFence, kStatic, kNeedsEnvironmentOrCache, kWriteSideEffects, kNoThrow, "Ljava/lang/ref/Reference;", "reachabilityFence", "(Ljava/lang/Object;)V") \
22243f0cdbe3281cd5c9a33d5472b1538e5617f6691Orion Hodson  SIGNATURE_POLYMORPHIC_INTRINSICS_LIST(V)
223762869dee6e0eadab5be1c606792d6693bbabf4eNicolas Geoffray
22426ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson#endif  // ART_RUNTIME_INTRINSICS_LIST_H_
22526ef34c01ae5db2d3c964844b3717b8974a612c9Orion Hodson#undef ART_RUNTIME_INTRINSICS_LIST_H_   // #define is only for lint.
226