• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef PANDA_RUNTIME_ARCH_ARM_ASM_CONSTANTS_H_
17 #define PANDA_RUNTIME_ARCH_ARM_ASM_CONSTANTS_H_
18 
19 // +---+----------------+
20 // |   |       LR       |
21 // |   |       FP       |
22 // |   |     Method *   |
23 // | c |      FLAGS     |
24 // | f +----------------+
25 // | r |       ...      |
26 // | a |      locals    |
27 // | m |       ...      |
28 // | e +--------+-------+ <-- CFRAME_CALLEE_REGS_START_SLOT
29 // | f |        | d15.1 |
30 // | r |        | d15.0 |
31 // | a |        | d14.1 |
32 // | m |        | d14.0 |
33 // | e |        | d13.1 |
34 // |   |        | d13.0 |
35 // |   |        | d12.1 |
36 // |   |        | d12.0 |
37 // |   |        | d11.1 |
38 // |   |        | d11.0 |
39 // |   |        | d10.1 |
40 // |   | callee | d10.0 |
41 // |   |  saved |  d9.1 |
42 // |   |        |  d9.0 |
43 // |   |        |  d8.1 |
44 // |   |        |  d8.0 |
45 // |   |        |   r10 |
46 // |   |        |    r9 |
47 // |   |        |    r8 |
48 // |   |        |    r7 |
49 // |   |        |    r6 |
50 // |   |        |    r5 |
51 // |   |        |    r4 |
52 // +---+--------+-------+ <-- CFRAME_ARM_SOFTFP_CALLEE_REGS_OFFSET
53 
54 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
55 #define CFRAME_ARM_SOFTFP_CALLEE_REGS_COUNT (16 + 7) /* [d8..d15] + [r4..r10] */
56 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
57 #define CFRAME_ARM_SOFTFP_CALLEE_REGS_OFFSET (4 * (CFRAME_CALLEE_REGS_START_SLOT + CFRAME_ARM_SOFTFP_CALLEE_REGS_COUNT))
58 
59 // +---+----------------+
60 // |   |       LR       |
61 // |   |       FP       |
62 // |   |     Method *   |
63 // |   |      FLAGS     |
64 // |   +----------------+
65 // |   |      ...       |
66 // |   |     locals     |
67 // |   |      ...       |
68 // | c +--------+-------+ <-- CFRAME_CALLEE_REGS_START_SLOT
69 // | f |        | d15.1 |
70 // | r |        | d15.0 |
71 // | a |        | d14.1 |
72 // | m |        | d14.0 |
73 // | e |        | d13.1 |
74 // |   |        | d13.0 |
75 // |   |        | d12.1 |
76 // |   |        | d12.0 |
77 // |   |        | d11.1 |
78 // |   |        | d11.0 |
79 // |   |        | d10.1 |
80 // |   | callee | d10.0 |
81 // |   |  saved |  d9.1 |
82 // |   |        |  d9.0 |
83 // |   |        |  d8.1 |
84 // |   |        |  d8.0 |
85 // |   |        |   r10 |
86 // |   |        |    r9 |
87 // |   |        |    r8 |
88 // |   |        |    r7 |
89 // |   |        |    r6 |
90 // |   |        |    r5 |
91 // |   |        |    r4 |
92 // +---+--------+-------+ <-- CFRAME_ARM_HARD_CALLEE_REGS_OFFSET
93 
94 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
95 #define CFRAME_ARM_HARD_CALLEE_REGS_COUNT (16 + 7) /* [d8..d15] + [r4..r10] */
96 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
97 #define CFRAME_ARM_HARD_CALLEE_REGS_OFFSET (4 * (CFRAME_CALLEE_REGS_START_SLOT + CFRAME_ARM_HARD_CALLEE_REGS_COUNT))
98 
99 #endif  // PANDA_RUNTIME_ARCH_ARM_ASM_CONSTANTS_H_
100