quick_alloc_entrypoints.S revision e6da9af8dfe0a3e3fbc2be700554f6478380e7b9
1cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier/* 2cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * Copyright (C) 2013 The Android Open Source Project 3cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * 4cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * Licensed under the Apache License, Version 2.0 (the "License"); 5cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * you may not use this file except in compliance with the License. 6cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * You may obtain a copy of the License at 7cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * 8cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * http://www.apache.org/licenses/LICENSE-2.0 9cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * 10cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * Unless required by applicable law or agreed to in writing, software 11cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * distributed under the License is distributed on an "AS IS" BASIS, 12cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * See the License for the specific language governing permissions and 14cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier * limitations under the License. 15cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier */ 16cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier 17cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier.macro GENERATE_ALLOC_ENTRYPOINTS c_suffix, cxx_suffix 18cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// Called by managed code to allocate an object. 19cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierTWO_ARG_DOWNCALL art_quick_alloc_object\c_suffix, artAllocObjectFromCode\cxx_suffix, RETURN_IF_RESULT_IS_NON_ZERO 20cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// Called by managed code to allocate an object when the caller doesn't know whether it has access 21cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// to the created type. 22cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierTWO_ARG_DOWNCALL art_quick_alloc_object_with_access_check\c_suffix, artAllocObjectFromCodeWithAccessCheck\cxx_suffix, RETURN_IF_RESULT_IS_NON_ZERO 23cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// Called by managed code to allocate an array. 24cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierTHREE_ARG_DOWNCALL art_quick_alloc_array\c_suffix, artAllocArrayFromCode\cxx_suffix, RETURN_IF_RESULT_IS_NON_ZERO 25cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// Called by managed code to allocate an array when the caller doesn't know whether it has access 26cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// to the created type. 27cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierTHREE_ARG_DOWNCALL art_quick_alloc_array_with_access_check\c_suffix, artAllocArrayFromCodeWithAccessCheck\cxx_suffix, RETURN_IF_RESULT_IS_NON_ZERO 28cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// Called by managed code to allocate an array in a special case for FILLED_NEW_ARRAY. 29cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierTHREE_ARG_DOWNCALL art_quick_check_and_alloc_array\c_suffix, artCheckAndAllocArrayFromCode\cxx_suffix, RETURN_IF_RESULT_IS_NON_ZERO 30cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier// Called by managed code to allocate an array in a special case for FILLED_NEW_ARRAY. 31cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierTHREE_ARG_DOWNCALL art_quick_check_and_alloc_array_with_access_check\c_suffix, artCheckAndAllocArrayFromCodeWithAccessCheck\cxx_suffix, RETURN_IF_RESULT_IS_NON_ZERO 32cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier.endm 33cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu Chartier 347410f29b4dae223befac036ea567d7f33351dad1Mathieu Chartier.macro GENERATE_ALL_ALLOC_ENTRYPOINTS 35e6da9af8dfe0a3e3fbc2be700554f6478380e7b9Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _dlmalloc, DlMalloc 36e6da9af8dfe0a3e3fbc2be700554f6478380e7b9Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _dlmalloc_instrumented, DlMallocInstrumented 37e6da9af8dfe0a3e3fbc2be700554f6478380e7b9Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _rosalloc, RosAlloc 38e6da9af8dfe0a3e3fbc2be700554f6478380e7b9Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _rosalloc_instrumented, RosAllocInstrumented 39cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _bump_pointer, BumpPointer 40cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _bump_pointer_instrumented, BumpPointerInstrumented 41692fafd9778141fa6ef0048c9569abd7ee0253bfMathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _tlab, TLAB 42692fafd9778141fa6ef0048c9569abd7ee0253bfMathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _tlab_instrumented, TLABInstrumented 437410f29b4dae223befac036ea567d7f33351dad1Mathieu Chartier.endm 44