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