| 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) \ |
| Nicolas Geoffray | e761bcc | 2017-01-19 08:59:37 +0000 | [diff] [blame] | 23 | V(AllocArrayResolved, void*, mirror::Class*, int32_t) \ |
| Nicolas Geoffray | b048cb7 | 2017-01-23 22:50:24 +0000 | [diff] [blame] | 24 | V(AllocArrayResolved8, void*, mirror::Class*, int32_t) \ |
| 25 | V(AllocArrayResolved16, void*, mirror::Class*, int32_t) \ |
| 26 | V(AllocArrayResolved32, void*, mirror::Class*, int32_t) \ |
| 27 | V(AllocArrayResolved64, void*, mirror::Class*, int32_t) \ |
| Nicolas Geoffray | 0d3998b | 2017-01-12 15:35:12 +0000 | [diff] [blame] | 28 | V(AllocObjectResolved, void*, mirror::Class*) \ |
| 29 | V(AllocObjectInitialized, void*, mirror::Class*) \ |
| 30 | V(AllocObjectWithChecks, void*, mirror::Class*) \ |
| Jeff Hao | 848f70a | 2014-01-15 13:49:50 -0800 | [diff] [blame] | 31 | V(AllocStringFromBytes, void*, void*, int32_t, int32_t, int32_t) \ |
| 32 | V(AllocStringFromChars, void*, int32_t, int32_t, void*) \ |
| 33 | V(AllocStringFromString, void*, void*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 34 | \ |
| Mathieu Chartier | 9fd8c60 | 2016-11-14 14:38:53 -0800 | [diff] [blame] | 35 | V(InstanceofNonTrivial, size_t, mirror::Object*, mirror::Class*) \ |
| Mathieu Chartier | b99f4d6 | 2016-11-07 16:17:26 -0800 | [diff] [blame] | 36 | V(CheckInstanceOf, void, mirror::Object*, mirror::Class*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 37 | \ |
| Vladimir Marko | 5ea536a | 2015-04-20 20:11:30 +0100 | [diff] [blame] | 38 | V(InitializeStaticStorage, void*, uint32_t) \ |
| 39 | V(InitializeTypeAndVerifyAccess, void*, uint32_t) \ |
| 40 | V(InitializeType, void*, uint32_t) \ |
| 41 | V(ResolveString, void*, uint32_t) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 42 | \ |
| Fred Shih | 37f05ef | 2014-07-16 18:38:08 -0700 | [diff] [blame] | 43 | V(Set8Instance, int, uint32_t, void*, int8_t) \ |
| 44 | V(Set8Static, int, uint32_t, int8_t) \ |
| 45 | V(Set16Instance, int, uint32_t, void*, int16_t) \ |
| 46 | V(Set16Static, int, uint32_t, int16_t) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 47 | V(Set32Instance, int, uint32_t, void*, int32_t) \ |
| 48 | V(Set32Static, int, uint32_t, int32_t) \ |
| 49 | V(Set64Instance, int, uint32_t, void*, int64_t) \ |
| 50 | V(Set64Static, int, uint32_t, int64_t) \ |
| 51 | V(SetObjInstance, int, uint32_t, void*, void*) \ |
| 52 | V(SetObjStatic, int, uint32_t, void*) \ |
| Andreas Gampe | 6740997 | 2016-07-19 22:34:53 -0700 | [diff] [blame] | 53 | V(GetByteInstance, ssize_t, uint32_t, void*) \ |
| 54 | V(GetBooleanInstance, size_t, uint32_t, void*) \ |
| 55 | V(GetByteStatic, ssize_t, uint32_t) \ |
| 56 | V(GetBooleanStatic, size_t, uint32_t) \ |
| 57 | V(GetShortInstance, ssize_t, uint32_t, void*) \ |
| 58 | V(GetCharInstance, size_t, uint32_t, void*) \ |
| 59 | V(GetShortStatic, ssize_t, uint32_t) \ |
| 60 | V(GetCharStatic, size_t, uint32_t) \ |
| 61 | V(Get32Instance, ssize_t, uint32_t, void*) \ |
| 62 | V(Get32Static, ssize_t, uint32_t) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 63 | V(Get64Instance, int64_t, uint32_t, void*) \ |
| 64 | V(Get64Static, int64_t, uint32_t) \ |
| 65 | V(GetObjInstance, void*, uint32_t, void*) \ |
| 66 | V(GetObjStatic, void*, uint32_t) \ |
| 67 | \ |
| Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 68 | V(AputObject, void, mirror::Array*, int32_t, mirror::Object*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 69 | \ |
| 70 | V(JniMethodStart, uint32_t, Thread*) \ |
| Igor Murashkin | 9d4b6da | 2016-07-29 09:51:58 -0700 | [diff] [blame] | 71 | V(JniMethodFastStart, uint32_t, Thread*) \ |
| Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 72 | V(JniMethodStartSynchronized, uint32_t, jobject, Thread*) \ |
| 73 | V(JniMethodEnd, void, uint32_t, Thread*) \ |
| Igor Murashkin | 9d4b6da | 2016-07-29 09:51:58 -0700 | [diff] [blame] | 74 | V(JniMethodFastEnd, void, uint32_t, Thread*) \ |
| Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 75 | V(JniMethodEndSynchronized, void, uint32_t, jobject, Thread*) \ |
| 76 | V(JniMethodEndWithReference, mirror::Object*, jobject, uint32_t, Thread*) \ |
| Igor Murashkin | af1e299 | 2016-10-12 17:44:50 -0700 | [diff] [blame] | 77 | V(JniMethodFastEndWithReference, mirror::Object*, jobject, uint32_t, Thread*) \ |
| Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 78 | V(JniMethodEndWithReferenceSynchronized, mirror::Object*, jobject, uint32_t, jobject, Thread*) \ |
| Mathieu Chartier | e401d14 | 2015-04-22 13:56:20 -0700 | [diff] [blame] | 79 | V(QuickGenericJniTrampoline, void, ArtMethod*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 80 | \ |
| Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 81 | V(LockObject, void, mirror::Object*) \ |
| 82 | V(UnlockObject, void, mirror::Object*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 83 | \ |
| 84 | V(CmpgDouble, int32_t, double, double) \ |
| 85 | V(CmpgFloat, int32_t, float, float) \ |
| 86 | V(CmplDouble, int32_t, double, double) \ |
| 87 | V(CmplFloat, int32_t, float, float) \ |
| Mark Mendell | a4f1220 | 2015-08-06 15:23:34 -0400 | [diff] [blame] | 88 | V(Cos, double, double) \ |
| 89 | V(Sin, double, double) \ |
| 90 | V(Acos, double, double) \ |
| 91 | V(Asin, double, double) \ |
| 92 | V(Atan, double, double) \ |
| 93 | V(Atan2, double, double, double) \ |
| 94 | V(Cbrt, double, double) \ |
| 95 | V(Cosh, double, double) \ |
| 96 | V(Exp, double, double) \ |
| 97 | V(Expm1, double, double) \ |
| 98 | V(Hypot, double, double, double) \ |
| 99 | V(Log, double, double) \ |
| 100 | V(Log10, double, double) \ |
| 101 | V(NextAfter, double, double, double) \ |
| 102 | V(Sinh, double, double) \ |
| 103 | V(Tan, double, double) \ |
| 104 | V(Tanh, double, double) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 105 | V(Fmod, double, double, double) \ |
| 106 | V(L2d, double, int64_t) \ |
| 107 | V(Fmodf, float, float, float) \ |
| 108 | V(L2f, float, int64_t) \ |
| 109 | V(D2iz, int32_t, double) \ |
| 110 | V(F2iz, int32_t, float) \ |
| 111 | V(Idivmod, int32_t, int32_t, int32_t) \ |
| 112 | V(D2l, int64_t, double) \ |
| 113 | V(F2l, int64_t, float) \ |
| 114 | V(Ldiv, int64_t, int64_t, int64_t) \ |
| 115 | V(Lmod, int64_t, int64_t, int64_t) \ |
| 116 | V(Lmul, int64_t, int64_t, int64_t) \ |
| 117 | V(ShlLong, uint64_t, uint64_t, uint32_t) \ |
| 118 | V(ShrLong, uint64_t, uint64_t, uint32_t) \ |
| 119 | V(UshrLong, uint64_t, uint64_t, uint32_t) \ |
| 120 | \ |
| Roland Levillain | 42ad288 | 2016-02-29 18:26:54 +0000 | [diff] [blame] | 121 | V(IndexOf, int32_t, void*, uint32_t, uint32_t) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 122 | V(StringCompareTo, int32_t, void*, void*) \ |
| 123 | V(Memcpy, void*, void*, const void*, size_t) \ |
| 124 | \ |
| Mathieu Chartier | e401d14 | 2015-04-22 13:56:20 -0700 | [diff] [blame] | 125 | V(QuickImtConflictTrampoline, void, ArtMethod*) \ |
| 126 | V(QuickResolutionTrampoline, void, ArtMethod*) \ |
| 127 | V(QuickToInterpreterBridge, void, ArtMethod*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 128 | V(InvokeDirectTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 129 | V(InvokeInterfaceTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 130 | V(InvokeStaticTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 131 | V(InvokeSuperTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| 132 | V(InvokeVirtualTrampolineWithAccessCheck, void, uint32_t, void*) \ |
| Orion Hodson | ac14139 | 2017-01-13 11:53:47 +0000 | [diff] [blame] | 133 | V(InvokePolymorphic, void, uint32_t, void*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 134 | \ |
| 135 | V(TestSuspend, void, void) \ |
| 136 | \ |
| Andreas Gampe | 1cc7dba | 2014-12-17 18:43:01 -0800 | [diff] [blame] | 137 | V(DeliverException, void, mirror::Object*) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 138 | V(ThrowArrayBounds, void, int32_t, int32_t) \ |
| 139 | V(ThrowDivZero, void, void) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 140 | V(ThrowNullPointer, void, void) \ |
| 141 | V(ThrowStackOverflow, void, void*) \ |
| Vladimir Marko | 87f3fcb | 2016-04-28 15:52:11 +0100 | [diff] [blame] | 142 | V(ThrowStringBounds, void, int32_t, int32_t) \ |
| Mingyao Yang | d43b3ac | 2015-04-01 14:03:04 -0700 | [diff] [blame] | 143 | V(Deoptimize, void, void) \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 144 | \ |
| 145 | V(A64Load, int64_t, volatile const int64_t *) \ |
| Jeff Hao | 848f70a | 2014-01-15 13:49:50 -0800 | [diff] [blame] | 146 | V(A64Store, void, volatile int64_t *, int64_t) \ |
| 147 | \ |
| 148 | V(NewEmptyString, void) \ |
| 149 | V(NewStringFromBytes_B, void) \ |
| 150 | V(NewStringFromBytes_BI, void) \ |
| 151 | V(NewStringFromBytes_BII, void) \ |
| 152 | V(NewStringFromBytes_BIII, void) \ |
| 153 | V(NewStringFromBytes_BIIString, void) \ |
| 154 | V(NewStringFromBytes_BString, void) \ |
| 155 | V(NewStringFromBytes_BIICharset, void) \ |
| 156 | V(NewStringFromBytes_BCharset, void) \ |
| 157 | V(NewStringFromChars_C, void) \ |
| 158 | V(NewStringFromChars_CII, void) \ |
| 159 | V(NewStringFromChars_IIC, void) \ |
| 160 | V(NewStringFromCodePoints, void) \ |
| 161 | V(NewStringFromString, void) \ |
| 162 | V(NewStringFromStringBuffer, void) \ |
| Hiroshi Yamauchi | 1cc71eb | 2015-05-07 10:47:27 -0700 | [diff] [blame] | 163 | V(NewStringFromStringBuilder, void) \ |
| 164 | \ |
| Man Cao | 1aee900 | 2015-07-14 22:31:42 -0700 | [diff] [blame] | 165 | V(ReadBarrierJni, void, mirror::CompressedReference<mirror::Object>*, Thread*) \ |
| Roland Levillain | 02b7580 | 2016-07-13 11:54:35 +0100 | [diff] [blame] | 166 | V(ReadBarrierMarkReg00, mirror::Object*, mirror::Object*) \ |
| 167 | V(ReadBarrierMarkReg01, mirror::Object*, mirror::Object*) \ |
| 168 | V(ReadBarrierMarkReg02, mirror::Object*, mirror::Object*) \ |
| 169 | V(ReadBarrierMarkReg03, mirror::Object*, mirror::Object*) \ |
| 170 | V(ReadBarrierMarkReg04, mirror::Object*, mirror::Object*) \ |
| 171 | V(ReadBarrierMarkReg05, mirror::Object*, mirror::Object*) \ |
| 172 | V(ReadBarrierMarkReg06, mirror::Object*, mirror::Object*) \ |
| 173 | V(ReadBarrierMarkReg07, mirror::Object*, mirror::Object*) \ |
| 174 | V(ReadBarrierMarkReg08, mirror::Object*, mirror::Object*) \ |
| 175 | V(ReadBarrierMarkReg09, mirror::Object*, mirror::Object*) \ |
| 176 | V(ReadBarrierMarkReg10, mirror::Object*, mirror::Object*) \ |
| 177 | V(ReadBarrierMarkReg11, mirror::Object*, mirror::Object*) \ |
| 178 | V(ReadBarrierMarkReg12, mirror::Object*, mirror::Object*) \ |
| 179 | V(ReadBarrierMarkReg13, mirror::Object*, mirror::Object*) \ |
| 180 | V(ReadBarrierMarkReg14, mirror::Object*, mirror::Object*) \ |
| 181 | V(ReadBarrierMarkReg15, mirror::Object*, mirror::Object*) \ |
| 182 | V(ReadBarrierMarkReg16, mirror::Object*, mirror::Object*) \ |
| 183 | V(ReadBarrierMarkReg17, mirror::Object*, mirror::Object*) \ |
| 184 | V(ReadBarrierMarkReg18, mirror::Object*, mirror::Object*) \ |
| 185 | V(ReadBarrierMarkReg19, mirror::Object*, mirror::Object*) \ |
| 186 | V(ReadBarrierMarkReg20, mirror::Object*, mirror::Object*) \ |
| 187 | V(ReadBarrierMarkReg21, mirror::Object*, mirror::Object*) \ |
| 188 | V(ReadBarrierMarkReg22, mirror::Object*, mirror::Object*) \ |
| 189 | V(ReadBarrierMarkReg23, mirror::Object*, mirror::Object*) \ |
| 190 | V(ReadBarrierMarkReg24, mirror::Object*, mirror::Object*) \ |
| 191 | V(ReadBarrierMarkReg25, mirror::Object*, mirror::Object*) \ |
| 192 | V(ReadBarrierMarkReg26, mirror::Object*, mirror::Object*) \ |
| 193 | V(ReadBarrierMarkReg27, mirror::Object*, mirror::Object*) \ |
| 194 | V(ReadBarrierMarkReg28, mirror::Object*, mirror::Object*) \ |
| 195 | V(ReadBarrierMarkReg29, mirror::Object*, mirror::Object*) \ |
| Roland Levillain | 0d5a281 | 2015-11-13 10:07:31 +0000 | [diff] [blame] | 196 | V(ReadBarrierSlow, mirror::Object*, mirror::Object*, mirror::Object*, uint32_t) \ |
| Igor Murashkin | 9d4b6da | 2016-07-29 09:51:58 -0700 | [diff] [blame] | 197 | V(ReadBarrierForRootSlow, mirror::Object*, GcRoot<mirror::Object>*) \ |
| 198 | \ |
| Andreas Gampe | 9843059 | 2014-07-27 19:44:50 -0700 | [diff] [blame] | 199 | |
| 200 | #endif // ART_RUNTIME_ENTRYPOINTS_QUICK_QUICK_ENTRYPOINTS_LIST_H_ |
| 201 | #undef ART_RUNTIME_ENTRYPOINTS_QUICK_QUICK_ENTRYPOINTS_LIST_H_ // #define is only for lint. |