quick_alloc_entrypoints.S revision 7410f29b4dae223befac036ea567d7f33351dad1
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 35cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS 36cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _instrumented, Instrumented 37cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _bump_pointer, BumpPointer 38cbb2d20bea2861f244da2e2318d8c088300a3710Mathieu ChartierGENERATE_ALLOC_ENTRYPOINTS _bump_pointer_instrumented, BumpPointerInstrumented 397410f29b4dae223befac036ea567d7f33351dad1Mathieu Chartier.endm 40