Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2014 The Android Open Source Project |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
| 16 | |
| 17 | #ifndef ART_RUNTIME_ENTRYPOINTS_QUICK_QUICK_ENTRYPOINTS_LIST_H_ |
| 18 | #define ART_RUNTIME_ENTRYPOINTS_QUICK_QUICK_ENTRYPOINTS_LIST_H_ |
| 19 | |
| 20 | // All quick entrypoints. Format is name, return type, argument types. |
| 21 | |
| 22 | #define QUICK_ENTRYPOINT_LIST(V) \ |
Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 23 | V(AllocArray, void*, uint32_t, int32_t, mirror::ArtMethod*) \ |
| 24 | V(AllocArrayResolved, void*, mirror::Class*, int32_t, mirror::ArtMethod*) \ |
| 25 | V(AllocArrayWithAccessCheck, void*, uint32_t, int32_t, mirror::ArtMethod*) \ |
| 26 | V(AllocObject, void*, uint32_t, mirror::ArtMethod*) \ |
| 27 | V(AllocObjectResolved, void*, mirror::Class*, mirror::ArtMethod*) \ |
| 28 | V(AllocObjectInitialized, void*, mirror::Class*, mirror::ArtMethod*) \ |
| 29 | V(AllocObjectWithAccessCheck, void*, uint32_t, mirror::ArtMethod*) \ |
| 30 | V(CheckAndAllocArray, void*, uint32_t, int32_t, mirror::ArtMethod*) \ |
| 31 | V(CheckAndAllocArrayWithAccessCheck, void*, uint32_t, int32_t, mirror::ArtMethod*) \ |
Jeff Hao | 848f70a | 2014-01-15 13:49:50 -0800 | [diff] [blame] | 32 | V(AllocStringFromBytes, void*, void*, int32_t, int32_t, int32_t) \ |
| 33 | V(AllocStringFromChars, void*, int32_t, int32_t, void*) \ |
| 34 | V(AllocStringFromString, void*, void*) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 35 | \ |
| 36 | V(InstanceofNonTrivial, uint32_t, const mirror::Class*, const mirror::Class*) \ |
Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 37 | V(CheckCast, void, const mirror::Class*, const mirror::Class*) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 38 | \ |
Vladimir Marko | 5ea536a | 2015-04-20 20:11:30 +0100 | [diff] [blame] | 39 | V(InitializeStaticStorage, void*, uint32_t) \ |
| 40 | V(InitializeTypeAndVerifyAccess, void*, uint32_t) \ |
| 41 | V(InitializeType, void*, uint32_t) \ |
| 42 | V(ResolveString, void*, uint32_t) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 43 | \ |
Fred Shih | 37f05ef | 2014-07-16 18:38:08 -0700 | [diff] [blame] | 44 | V(Set8Instance, int, uint32_t, void*, int8_t) \ |
| 45 | V(Set8Static, int, uint32_t, int8_t) \ |
| 46 | V(Set16Instance, int, uint32_t, void*, int16_t) \ |
| 47 | V(Set16Static, int, uint32_t, int16_t) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 48 | V(Set32Instance, int, uint32_t, void*, int32_t) \ |
| 49 | V(Set32Static, int, uint32_t, int32_t) \ |
| 50 | V(Set64Instance, int, uint32_t, void*, int64_t) \ |
| 51 | V(Set64Static, int, uint32_t, int64_t) \ |
| 52 | V(SetObjInstance, int, uint32_t, void*, void*) \ |
| 53 | V(SetObjStatic, int, uint32_t, void*) \ |
Fred Shih | 37f05ef | 2014-07-16 18:38:08 -0700 | [diff] [blame] | 54 | V(GetByteInstance, int8_t, uint32_t, void*) \ |
| 55 | V(GetBooleanInstance, uint8_t, uint32_t, void*) \ |
| 56 | V(GetByteStatic, int8_t, uint32_t) \ |
| 57 | V(GetBooleanStatic, uint8_t, uint32_t) \ |
| 58 | V(GetShortInstance, int16_t, uint32_t, void*) \ |
| 59 | V(GetCharInstance, uint16_t, uint32_t, void*) \ |
| 60 | V(GetShortStatic, int16_t, uint32_t) \ |
| 61 | V(GetCharStatic, uint16_t, uint32_t) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 62 | V(Get32Instance, int32_t, uint32_t, void*) \ |
| 63 | V(Get32Static, int32_t, uint32_t) \ |
| 64 | V(Get64Instance, int64_t, uint32_t, void*) \ |
| 65 | V(Get64Static, int64_t, uint32_t) \ |
| 66 | V(GetObjInstance, void*, uint32_t, void*) \ |
| 67 | V(GetObjStatic, void*, uint32_t) \ |
| 68 | \ |
Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 69 | V(AputObjectWithNullAndBoundCheck, void, mirror::Array*, int32_t, mirror::Object*) \ |
| 70 | V(AputObjectWithBoundCheck, void, mirror::Array*, int32_t, mirror::Object*) \ |
| 71 | V(AputObject, void, mirror::Array*, int32_t, mirror::Object*) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 72 | V(HandleFillArrayData, void, void*, void*) \ |
| 73 | \ |
| 74 | V(JniMethodStart, uint32_t, Thread*) \ |
Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 75 | V(JniMethodStartSynchronized, uint32_t, jobject, Thread*) \ |
| 76 | V(JniMethodEnd, void, uint32_t, Thread*) \ |
| 77 | V(JniMethodEndSynchronized, void, uint32_t, jobject, Thread*) \ |
| 78 | V(JniMethodEndWithReference, mirror::Object*, jobject, uint32_t, Thread*) \ |
| 79 | V(JniMethodEndWithReferenceSynchronized, mirror::Object*, jobject, uint32_t, jobject, Thread*) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 80 | V(QuickGenericJniTrampoline, void, mirror::ArtMethod*) \ |
| 81 | \ |
Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 82 | V(LockObject, void, mirror::Object*) \ |
| 83 | V(UnlockObject, void, mirror::Object*) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 84 | \ |
| 85 | V(CmpgDouble, int32_t, double, double) \ |
| 86 | V(CmpgFloat, int32_t, float, float) \ |
| 87 | V(CmplDouble, int32_t, double, double) \ |
| 88 | V(CmplFloat, int32_t, float, float) \ |
| 89 | V(Fmod, double, double, double) \ |
| 90 | V(L2d, double, int64_t) \ |
| 91 | V(Fmodf, float, float, float) \ |
| 92 | V(L2f, float, int64_t) \ |
| 93 | V(D2iz, int32_t, double) \ |
| 94 | V(F2iz, int32_t, float) \ |
| 95 | V(Idivmod, int32_t, int32_t, int32_t) \ |
| 96 | V(D2l, int64_t, double) \ |
| 97 | V(F2l, int64_t, float) \ |
| 98 | V(Ldiv, int64_t, int64_t, int64_t) \ |
| 99 | V(Lmod, int64_t, int64_t, int64_t) \ |
| 100 | V(Lmul, int64_t, int64_t, int64_t) \ |
| 101 | V(ShlLong, uint64_t, uint64_t, uint32_t) \ |
| 102 | V(ShrLong, uint64_t, uint64_t, uint32_t) \ |
| 103 | V(UshrLong, uint64_t, uint64_t, uint32_t) \ |
| 104 | \ |
| 105 | V(IndexOf, int32_t, void*, uint32_t, uint32_t, uint32_t) \ |
| 106 | V(StringCompareTo, int32_t, void*, void*) \ |
| 107 | V(Memcpy, void*, void*, const void*, size_t) \ |
| 108 | \ |
| 109 | V(QuickImtConflictTrampoline, void, mirror::ArtMethod*) \ |
| 110 | V(QuickResolutionTrampoline, void, mirror::ArtMethod*) \ |
| 111 | V(QuickToInterpreterBridge, void, mirror::ArtMethod*) \ |
| 112 | V(InvokeDirectTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 113 | V(InvokeInterfaceTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 114 | V(InvokeStaticTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 115 | V(InvokeSuperTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 116 | V(InvokeVirtualTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 117 | \ |
| 118 | V(TestSuspend, void, void) \ |
| 119 | \ |
Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 120 | V(DeliverException, void, mirror::Object*) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 121 | V(ThrowArrayBounds, void, int32_t, int32_t) \ |
| 122 | V(ThrowDivZero, void, void) \ |
| 123 | V(ThrowNoSuchMethod, void, int32_t) \ |
| 124 | V(ThrowNullPointer, void, void) \ |
| 125 | V(ThrowStackOverflow, void, void*) \ |
Mingyao Yang | d43b3ac | 2015-04-01 14:03:04 -0700 | [diff] [blame] | 126 | V(Deoptimize, void, void) \ |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 127 | \ |
| 128 | V(A64Load, int64_t, volatile const int64_t *) \ |
Jeff Hao | 848f70a | 2014-01-15 13:49:50 -0800 | [diff] [blame] | 129 | V(A64Store, void, volatile int64_t *, int64_t) \ |
| 130 | \ |
| 131 | V(NewEmptyString, void) \ |
| 132 | V(NewStringFromBytes_B, void) \ |
| 133 | V(NewStringFromBytes_BI, void) \ |
| 134 | V(NewStringFromBytes_BII, void) \ |
| 135 | V(NewStringFromBytes_BIII, void) \ |
| 136 | V(NewStringFromBytes_BIIString, void) \ |
| 137 | V(NewStringFromBytes_BString, void) \ |
| 138 | V(NewStringFromBytes_BIICharset, void) \ |
| 139 | V(NewStringFromBytes_BCharset, void) \ |
| 140 | V(NewStringFromChars_C, void) \ |
| 141 | V(NewStringFromChars_CII, void) \ |
| 142 | V(NewStringFromChars_IIC, void) \ |
| 143 | V(NewStringFromCodePoints, void) \ |
| 144 | V(NewStringFromString, void) \ |
| 145 | V(NewStringFromStringBuffer, void) \ |
| 146 | V(NewStringFromStringBuilder, void) |
Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 147 | |
| 148 | #endif // ART_RUNTIME_ENTRYPOINTS_QUICK_QUICK_ENTRYPOINTS_LIST_H_ |
| 149 | #undef ART_RUNTIME_ENTRYPOINTS_QUICK_QUICK_ENTRYPOINTS_LIST_H_ // #define is only for lint. |