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.*/ IsDirectEntrypoint(QuickEntrypointEnum entrypoint)27static 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 == kQuickReadBarrierMark || 49 entrypoint == kQuickReadBarrierSlow || 50 entrypoint == kQuickReadBarrierForRootSlow; 51 } 52 53 } // namespace art 54 55 #endif // ART_RUNTIME_ARCH_MIPS_ENTRYPOINTS_DIRECT_MIPS_H_ 56