1 /* 2 * Copyright (C) 2015 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_ARCH_MIPS_ENTRYPOINTS_DIRECT_MIPS_H_ 18 #define ART_RUNTIME_ARCH_MIPS_ENTRYPOINTS_DIRECT_MIPS_H_ 19 20 #include "entrypoints/quick/quick_entrypoints_enum.h" 21 22 namespace art { 23 24 /* Returns true if entrypoint contains direct reference to 25 native implementation. The list is required as direct 26 entrypoints need additional handling during invocation.*/ 27 static constexpr bool IsDirectEntrypoint(QuickEntrypointEnum entrypoint) { 28 return 29 entrypoint == kQuickInstanceofNonTrivial || 30 entrypoint == kQuickA64Load || 31 entrypoint == kQuickA64Store || 32 entrypoint == kQuickFmod || 33 entrypoint == kQuickFmodf || 34 entrypoint == kQuickMemcpy || 35 entrypoint == kQuickL2d || 36 entrypoint == kQuickL2f || 37 entrypoint == kQuickD2iz || 38 entrypoint == kQuickF2iz || 39 entrypoint == kQuickD2l || 40 entrypoint == kQuickF2l || 41 entrypoint == kQuickLdiv || 42 entrypoint == kQuickLmod || 43 entrypoint == kQuickLmul || 44 entrypoint == kQuickCmpgDouble || 45 entrypoint == kQuickCmpgFloat || 46 entrypoint == kQuickCmplDouble || 47 entrypoint == kQuickCmplFloat || 48 entrypoint == kQuickReadBarrierJni || 49 entrypoint == kQuickReadBarrierSlow || 50 entrypoint == kQuickReadBarrierForRootSlow || 51 entrypoint == kQuickCos || 52 entrypoint == kQuickSin || 53 entrypoint == kQuickAcos || 54 entrypoint == kQuickAsin || 55 entrypoint == kQuickAtan || 56 entrypoint == kQuickAtan2 || 57 entrypoint == kQuickCbrt || 58 entrypoint == kQuickCosh || 59 entrypoint == kQuickExp || 60 entrypoint == kQuickExpm1 || 61 entrypoint == kQuickHypot || 62 entrypoint == kQuickLog || 63 entrypoint == kQuickLog10 || 64 entrypoint == kQuickNextAfter || 65 entrypoint == kQuickSinh || 66 entrypoint == kQuickTan || 67 entrypoint == kQuickTanh; 68 } 69 70 } // namespace art 71 72 #endif // ART_RUNTIME_ARCH_MIPS_ENTRYPOINTS_DIRECT_MIPS_H_ 73