]>
Commit | Line | Data |
---|---|---|
a67ef280 AB |
1 | /* |
2 | * Copyright (C) 1995, 1997, 2007-2013 Free Software Foundation, Inc. | |
3 | * | |
4 | * SPDX-License-Identifier: GPL-2.0+ | |
5 | */ | |
6 | ||
7 | /* ANSI concatenation macros. */ | |
8 | ||
9 | #define CONCAT1(a, b) CONCAT2(a, b) | |
10 | #define CONCAT2(a, b) a ## b | |
11 | ||
12 | /* Use the right prefix for global labels. */ | |
13 | ||
14 | #define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) | |
15 | ||
16 | #ifndef WORKING_ASSEMBLER | |
17 | #define abs_l abs | |
18 | #define asl_l asl | |
19 | #define mov_l mov | |
20 | #endif | |
21 | ||
22 | #define FUNC(X) .type SYM(X),@function | |
23 | #define HIDDEN_FUNC(X) FUNC(X)` .hidden X | |
24 | #define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X | |
25 | #define ENDFUNC(X) ENDFUNC0(X) | |
26 | ||
27 | .section .text | |
28 | .align 4 | |
29 | .global SYM(__st_r13_to_r15) | |
30 | .global SYM(__st_r13_to_r16) | |
31 | .global SYM(__st_r13_to_r17) | |
32 | .global SYM(__st_r13_to_r18) | |
33 | .global SYM(__st_r13_to_r19) | |
34 | .global SYM(__st_r13_to_r20) | |
35 | .global SYM(__st_r13_to_r21) | |
36 | .global SYM(__st_r13_to_r22) | |
37 | .global SYM(__st_r13_to_r23) | |
38 | .global SYM(__st_r13_to_r24) | |
39 | .global SYM(__st_r13_to_r25) | |
40 | HIDDEN_FUNC(__st_r13_to_r15) | |
41 | HIDDEN_FUNC(__st_r13_to_r16) | |
42 | HIDDEN_FUNC(__st_r13_to_r17) | |
43 | HIDDEN_FUNC(__st_r13_to_r18) | |
44 | HIDDEN_FUNC(__st_r13_to_r19) | |
45 | HIDDEN_FUNC(__st_r13_to_r20) | |
46 | HIDDEN_FUNC(__st_r13_to_r21) | |
47 | HIDDEN_FUNC(__st_r13_to_r22) | |
48 | HIDDEN_FUNC(__st_r13_to_r23) | |
49 | HIDDEN_FUNC(__st_r13_to_r24) | |
50 | HIDDEN_FUNC(__st_r13_to_r25) | |
51 | .align 4 | |
52 | SYM(__st_r13_to_r25): | |
53 | st r25, [sp,48] | |
54 | SYM(__st_r13_to_r24): | |
55 | st r24, [sp,44] | |
56 | SYM(__st_r13_to_r23): | |
57 | st r23, [sp,40] | |
58 | SYM(__st_r13_to_r22): | |
59 | st r22, [sp,36] | |
60 | SYM(__st_r13_to_r21): | |
61 | st r21, [sp,32] | |
62 | SYM(__st_r13_to_r20): | |
63 | st r20, [sp,28] | |
64 | SYM(__st_r13_to_r19): | |
65 | st r19, [sp,24] | |
66 | SYM(__st_r13_to_r18): | |
67 | st r18, [sp,20] | |
68 | SYM(__st_r13_to_r17): | |
69 | st r17, [sp,16] | |
70 | SYM(__st_r13_to_r16): | |
71 | st r16, [sp,12] | |
72 | SYM(__st_r13_to_r15): | |
73 | #ifdef __ARC700__ | |
74 | st r15, [sp,8] ; minimum function size to avoid stall: 6 bytes. | |
75 | #else | |
76 | st_s r15, [sp,8] | |
77 | #endif | |
78 | st_s r14, [sp,4] | |
79 | j_s.d [%blink] | |
80 | st_s r13, [sp,0] | |
81 | ENDFUNC(__st_r13_to_r15) | |
82 | ENDFUNC(__st_r13_to_r16) | |
83 | ENDFUNC(__st_r13_to_r17) | |
84 | ENDFUNC(__st_r13_to_r18) | |
85 | ENDFUNC(__st_r13_to_r19) | |
86 | ENDFUNC(__st_r13_to_r20) | |
87 | ENDFUNC(__st_r13_to_r21) | |
88 | ENDFUNC(__st_r13_to_r22) | |
89 | ENDFUNC(__st_r13_to_r23) | |
90 | ENDFUNC(__st_r13_to_r24) | |
91 | ENDFUNC(__st_r13_to_r25) | |
92 | ||
93 | .section .text | |
94 | .align 4 | |
95 | ; ================================== | |
96 | ; the loads | |
97 | ||
98 | .global SYM(__ld_r13_to_r15) | |
99 | .global SYM(__ld_r13_to_r16) | |
100 | .global SYM(__ld_r13_to_r17) | |
101 | .global SYM(__ld_r13_to_r18) | |
102 | .global SYM(__ld_r13_to_r19) | |
103 | .global SYM(__ld_r13_to_r20) | |
104 | .global SYM(__ld_r13_to_r21) | |
105 | .global SYM(__ld_r13_to_r22) | |
106 | .global SYM(__ld_r13_to_r23) | |
107 | .global SYM(__ld_r13_to_r24) | |
108 | .global SYM(__ld_r13_to_r25) | |
109 | HIDDEN_FUNC(__ld_r13_to_r15) | |
110 | HIDDEN_FUNC(__ld_r13_to_r16) | |
111 | HIDDEN_FUNC(__ld_r13_to_r17) | |
112 | HIDDEN_FUNC(__ld_r13_to_r18) | |
113 | HIDDEN_FUNC(__ld_r13_to_r19) | |
114 | HIDDEN_FUNC(__ld_r13_to_r20) | |
115 | HIDDEN_FUNC(__ld_r13_to_r21) | |
116 | HIDDEN_FUNC(__ld_r13_to_r22) | |
117 | HIDDEN_FUNC(__ld_r13_to_r23) | |
118 | HIDDEN_FUNC(__ld_r13_to_r24) | |
119 | HIDDEN_FUNC(__ld_r13_to_r25) | |
120 | SYM(__ld_r13_to_r25): | |
121 | ld r25, [sp,48] | |
122 | SYM(__ld_r13_to_r24): | |
123 | ld r24, [sp,44] | |
124 | SYM(__ld_r13_to_r23): | |
125 | ld r23, [sp,40] | |
126 | SYM(__ld_r13_to_r22): | |
127 | ld r22, [sp,36] | |
128 | SYM(__ld_r13_to_r21): | |
129 | ld r21, [sp,32] | |
130 | SYM(__ld_r13_to_r20): | |
131 | ld r20, [sp,28] | |
132 | SYM(__ld_r13_to_r19): | |
133 | ld r19, [sp,24] | |
134 | SYM(__ld_r13_to_r18): | |
135 | ld r18, [sp,20] | |
136 | SYM(__ld_r13_to_r17): | |
137 | ld r17, [sp,16] | |
138 | SYM(__ld_r13_to_r16): | |
139 | ld r16, [sp,12] | |
140 | SYM(__ld_r13_to_r15): | |
141 | #ifdef __ARC700__ | |
142 | ld r15, [sp,8] ; minimum function size to avoid stall: 6 bytes. | |
143 | #else | |
144 | ld_s r15, [sp,8] | |
145 | #endif | |
146 | ld_s r14, [sp,4] | |
147 | j_s.d [%blink] | |
148 | ld_s r13, [sp,0] | |
149 | ENDFUNC(__ld_r13_to_r15) | |
150 | ENDFUNC(__ld_r13_to_r16) | |
151 | ENDFUNC(__ld_r13_to_r17) | |
152 | ENDFUNC(__ld_r13_to_r18) | |
153 | ENDFUNC(__ld_r13_to_r19) | |
154 | ENDFUNC(__ld_r13_to_r20) | |
155 | ENDFUNC(__ld_r13_to_r21) | |
156 | ENDFUNC(__ld_r13_to_r22) | |
157 | ENDFUNC(__ld_r13_to_r23) | |
158 | ENDFUNC(__ld_r13_to_r24) | |
159 | ENDFUNC(__ld_r13_to_r25) | |
160 | ||
161 | .global SYM(__ld_r13_to_r14_ret) | |
162 | .global SYM(__ld_r13_to_r15_ret) | |
163 | .global SYM(__ld_r13_to_r16_ret) | |
164 | .global SYM(__ld_r13_to_r17_ret) | |
165 | .global SYM(__ld_r13_to_r18_ret) | |
166 | .global SYM(__ld_r13_to_r19_ret) | |
167 | .global SYM(__ld_r13_to_r20_ret) | |
168 | .global SYM(__ld_r13_to_r21_ret) | |
169 | .global SYM(__ld_r13_to_r22_ret) | |
170 | .global SYM(__ld_r13_to_r23_ret) | |
171 | .global SYM(__ld_r13_to_r24_ret) | |
172 | .global SYM(__ld_r13_to_r25_ret) | |
173 | HIDDEN_FUNC(__ld_r13_to_r14_ret) | |
174 | HIDDEN_FUNC(__ld_r13_to_r15_ret) | |
175 | HIDDEN_FUNC(__ld_r13_to_r16_ret) | |
176 | HIDDEN_FUNC(__ld_r13_to_r17_ret) | |
177 | HIDDEN_FUNC(__ld_r13_to_r18_ret) | |
178 | HIDDEN_FUNC(__ld_r13_to_r19_ret) | |
179 | HIDDEN_FUNC(__ld_r13_to_r20_ret) | |
180 | HIDDEN_FUNC(__ld_r13_to_r21_ret) | |
181 | HIDDEN_FUNC(__ld_r13_to_r22_ret) | |
182 | HIDDEN_FUNC(__ld_r13_to_r23_ret) | |
183 | HIDDEN_FUNC(__ld_r13_to_r24_ret) | |
184 | HIDDEN_FUNC(__ld_r13_to_r25_ret) | |
185 | .section .text | |
186 | .align 4 | |
187 | SYM(__ld_r13_to_r25_ret): | |
188 | ld r25, [sp,48] | |
189 | SYM(__ld_r13_to_r24_ret): | |
190 | ld r24, [sp,44] | |
191 | SYM(__ld_r13_to_r23_ret): | |
192 | ld r23, [sp,40] | |
193 | SYM(__ld_r13_to_r22_ret): | |
194 | ld r22, [sp,36] | |
195 | SYM(__ld_r13_to_r21_ret): | |
196 | ld r21, [sp,32] | |
197 | SYM(__ld_r13_to_r20_ret): | |
198 | ld r20, [sp,28] | |
199 | SYM(__ld_r13_to_r19_ret): | |
200 | ld r19, [sp,24] | |
201 | SYM(__ld_r13_to_r18_ret): | |
202 | ld r18, [sp,20] | |
203 | SYM(__ld_r13_to_r17_ret): | |
204 | ld r17, [sp,16] | |
205 | SYM(__ld_r13_to_r16_ret): | |
206 | ld r16, [sp,12] | |
207 | SYM(__ld_r13_to_r15_ret): | |
208 | ld r15, [sp,8] | |
209 | SYM(__ld_r13_to_r14_ret): | |
210 | ld blink,[sp,r12] | |
211 | ld_s r14, [sp,4] | |
212 | ld.ab r13, [sp,r12] | |
213 | j_s.d [%blink] | |
214 | add_s sp,sp,4 | |
215 | ENDFUNC(__ld_r13_to_r14_ret) | |
216 | ENDFUNC(__ld_r13_to_r15_ret) | |
217 | ENDFUNC(__ld_r13_to_r16_ret) | |
218 | ENDFUNC(__ld_r13_to_r17_ret) | |
219 | ENDFUNC(__ld_r13_to_r18_ret) | |
220 | ENDFUNC(__ld_r13_to_r19_ret) | |
221 | ENDFUNC(__ld_r13_to_r20_ret) | |
222 | ENDFUNC(__ld_r13_to_r21_ret) | |
223 | ENDFUNC(__ld_r13_to_r22_ret) | |
224 | ENDFUNC(__ld_r13_to_r23_ret) | |
225 | ENDFUNC(__ld_r13_to_r24_ret) | |
226 | ENDFUNC(__ld_r13_to_r25_ret) |