111
|
1 /* Intrinsic definitions of Andes NDS32 cpu for GNU compiler
|
145
|
2 Copyright (C) 2012-2020 Free Software Foundation, Inc.
|
111
|
3 Contributed by Andes Technology Corporation.
|
|
4
|
|
5 This file is part of GCC.
|
|
6
|
|
7 GCC is free software; you can redistribute it and/or modify it
|
|
8 under the terms of the GNU General Public License as published
|
|
9 by the Free Software Foundation; either version 3, or (at your
|
|
10 option) any later version.
|
|
11
|
|
12 GCC is distributed in the hope that it will be useful, but WITHOUT
|
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
15 License for more details.
|
|
16
|
|
17 Under Section 7 of GPL version 3, you are granted additional
|
|
18 permissions described in the GCC Runtime Library Exception, version
|
|
19 3.1, as published by the Free Software Foundation.
|
|
20
|
|
21 You should have received a copy of the GNU General Public License and
|
|
22 a copy of the GCC Runtime Library Exception along with this program;
|
|
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
24 <http://www.gnu.org/licenses/>. */
|
|
25
|
|
26 #ifndef _NDS32_INTRINSIC_H
|
|
27 #define _NDS32_INTRINSIC_H
|
|
28
|
131
|
29 typedef signed char int8x4_t __attribute ((vector_size(4)));
|
|
30 typedef short int16x2_t __attribute ((vector_size(4)));
|
|
31 typedef int int32x2_t __attribute__((vector_size(8)));
|
|
32 typedef unsigned char uint8x4_t __attribute__ ((vector_size (4)));
|
|
33 typedef unsigned short uint16x2_t __attribute__ ((vector_size (4)));
|
|
34 typedef unsigned int uint32x2_t __attribute__((vector_size(8)));
|
|
35
|
|
36 /* General instrinsic register names. */
|
111
|
37 enum nds32_intrinsic_registers
|
|
38 {
|
131
|
39 __NDS32_REG_CPU_VER__ = 1024,
|
|
40 __NDS32_REG_ICM_CFG__,
|
|
41 __NDS32_REG_DCM_CFG__,
|
|
42 __NDS32_REG_MMU_CFG__,
|
|
43 __NDS32_REG_MSC_CFG__,
|
|
44 __NDS32_REG_MSC_CFG2__,
|
|
45 __NDS32_REG_CORE_ID__,
|
|
46 __NDS32_REG_FUCOP_EXIST__,
|
|
47
|
|
48 __NDS32_REG_PSW__,
|
111
|
49 __NDS32_REG_IPSW__,
|
131
|
50 __NDS32_REG_P_IPSW__,
|
|
51 __NDS32_REG_IVB__,
|
|
52 __NDS32_REG_EVA__,
|
|
53 __NDS32_REG_P_EVA__,
|
111
|
54 __NDS32_REG_ITYPE__,
|
131
|
55 __NDS32_REG_P_ITYPE__,
|
|
56
|
|
57 __NDS32_REG_MERR__,
|
|
58 __NDS32_REG_IPC__,
|
|
59 __NDS32_REG_P_IPC__,
|
|
60 __NDS32_REG_OIPC__,
|
|
61 __NDS32_REG_P_P0__,
|
|
62 __NDS32_REG_P_P1__,
|
|
63
|
|
64 __NDS32_REG_INT_MASK__,
|
|
65 __NDS32_REG_INT_MASK2__,
|
|
66 __NDS32_REG_INT_MASK3__,
|
|
67 __NDS32_REG_INT_PEND__,
|
|
68 __NDS32_REG_INT_PEND2__,
|
|
69 __NDS32_REG_INT_PEND3__,
|
|
70 __NDS32_REG_SP_USR__,
|
|
71 __NDS32_REG_SP_PRIV__,
|
|
72 __NDS32_REG_INT_PRI__,
|
|
73 __NDS32_REG_INT_PRI2__,
|
|
74 __NDS32_REG_INT_PRI3__,
|
|
75 __NDS32_REG_INT_PRI4__,
|
|
76 __NDS32_REG_INT_CTRL__,
|
|
77 __NDS32_REG_INT_TRIGGER__,
|
|
78 __NDS32_REG_INT_TRIGGER2__,
|
|
79 __NDS32_REG_INT_GPR_PUSH_DIS__,
|
|
80
|
|
81 __NDS32_REG_MMU_CTL__,
|
|
82 __NDS32_REG_L1_PPTB__,
|
|
83 __NDS32_REG_TLB_VPN__,
|
|
84 __NDS32_REG_TLB_DATA__,
|
|
85 __NDS32_REG_TLB_MISC__,
|
|
86 __NDS32_REG_VLPT_IDX__,
|
|
87 __NDS32_REG_ILMB__,
|
|
88 __NDS32_REG_DLMB__,
|
|
89
|
|
90 __NDS32_REG_CACHE_CTL__,
|
|
91 __NDS32_REG_HSMP_SADDR__,
|
|
92 __NDS32_REG_HSMP_EADDR__,
|
|
93 __NDS32_REG_SDZ_CTL__,
|
|
94 __NDS32_REG_N12MISC_CTL__,
|
|
95 __NDS32_REG_MISC_CTL__,
|
|
96 __NDS32_REG_ECC_MISC__,
|
|
97
|
|
98 __NDS32_REG_BPC0__,
|
|
99 __NDS32_REG_BPC1__,
|
|
100 __NDS32_REG_BPC2__,
|
|
101 __NDS32_REG_BPC3__,
|
|
102 __NDS32_REG_BPC4__,
|
|
103 __NDS32_REG_BPC5__,
|
|
104 __NDS32_REG_BPC6__,
|
|
105 __NDS32_REG_BPC7__,
|
|
106
|
|
107 __NDS32_REG_BPA0__,
|
|
108 __NDS32_REG_BPA1__,
|
|
109 __NDS32_REG_BPA2__,
|
|
110 __NDS32_REG_BPA3__,
|
|
111 __NDS32_REG_BPA4__,
|
|
112 __NDS32_REG_BPA5__,
|
|
113 __NDS32_REG_BPA6__,
|
|
114 __NDS32_REG_BPA7__,
|
|
115
|
|
116 __NDS32_REG_BPAM0__,
|
|
117 __NDS32_REG_BPAM1__,
|
|
118 __NDS32_REG_BPAM2__,
|
|
119 __NDS32_REG_BPAM3__,
|
|
120 __NDS32_REG_BPAM4__,
|
|
121 __NDS32_REG_BPAM5__,
|
|
122 __NDS32_REG_BPAM6__,
|
|
123 __NDS32_REG_BPAM7__,
|
|
124
|
|
125 __NDS32_REG_BPV0__,
|
|
126 __NDS32_REG_BPV1__,
|
|
127 __NDS32_REG_BPV2__,
|
|
128 __NDS32_REG_BPV3__,
|
|
129 __NDS32_REG_BPV4__,
|
|
130 __NDS32_REG_BPV5__,
|
|
131 __NDS32_REG_BPV6__,
|
|
132 __NDS32_REG_BPV7__,
|
|
133
|
|
134 __NDS32_REG_BPCID0__,
|
|
135 __NDS32_REG_BPCID1__,
|
|
136 __NDS32_REG_BPCID2__,
|
|
137 __NDS32_REG_BPCID3__,
|
|
138 __NDS32_REG_BPCID4__,
|
|
139 __NDS32_REG_BPCID5__,
|
|
140 __NDS32_REG_BPCID6__,
|
|
141 __NDS32_REG_BPCID7__,
|
|
142
|
|
143 __NDS32_REG_EDM_CFG__,
|
|
144 __NDS32_REG_EDMSW__,
|
|
145 __NDS32_REG_EDM_CTL__,
|
|
146 __NDS32_REG_EDM_DTR__,
|
|
147 __NDS32_REG_BPMTC__,
|
|
148 __NDS32_REG_DIMBR__,
|
|
149
|
|
150 __NDS32_REG_TECR0__,
|
|
151 __NDS32_REG_TECR1__,
|
|
152 __NDS32_REG_PFMC0__,
|
|
153 __NDS32_REG_PFMC1__,
|
|
154 __NDS32_REG_PFMC2__,
|
|
155 __NDS32_REG_PFM_CTL__,
|
|
156 __NDS32_REG_PFT_CTL__,
|
|
157 __NDS32_REG_HSP_CTL__,
|
|
158 __NDS32_REG_SP_BOUND__,
|
|
159 __NDS32_REG_SP_BOUND_PRIV__,
|
|
160 __NDS32_REG_SP_BASE__,
|
|
161 __NDS32_REG_SP_BASE_PRIV__,
|
|
162 __NDS32_REG_FUCOP_CTL__,
|
|
163 __NDS32_REG_PRUSR_ACC_CTL__,
|
|
164
|
|
165 __NDS32_REG_DMA_CFG__,
|
|
166 __NDS32_REG_DMA_GCSW__,
|
|
167 __NDS32_REG_DMA_CHNSEL__,
|
|
168 __NDS32_REG_DMA_ACT__,
|
|
169 __NDS32_REG_DMA_SETUP__,
|
|
170 __NDS32_REG_DMA_ISADDR__,
|
|
171 __NDS32_REG_DMA_ESADDR__,
|
|
172 __NDS32_REG_DMA_TCNT__,
|
|
173 __NDS32_REG_DMA_STATUS__,
|
|
174 __NDS32_REG_DMA_2DSET__,
|
|
175 __NDS32_REG_DMA_2DSCTL__,
|
|
176 __NDS32_REG_DMA_RCNT__,
|
|
177 __NDS32_REG_DMA_HSTATUS__,
|
|
178
|
|
179 __NDS32_REG_PC__,
|
|
180 __NDS32_REG_SP_USR1__,
|
|
181 __NDS32_REG_SP_USR2__,
|
|
182 __NDS32_REG_SP_USR3__,
|
|
183 __NDS32_REG_SP_PRIV1__,
|
|
184 __NDS32_REG_SP_PRIV2__,
|
|
185 __NDS32_REG_SP_PRIV3__,
|
|
186 __NDS32_REG_BG_REGION__,
|
|
187 __NDS32_REG_SFCR__,
|
|
188 __NDS32_REG_SIGN__,
|
|
189 __NDS32_REG_ISIGN__,
|
|
190 __NDS32_REG_P_ISIGN__,
|
|
191 __NDS32_REG_IFC_LP__,
|
|
192 __NDS32_REG_ITB__
|
|
193 };
|
|
194
|
|
195 /* The cctl subtype for intrinsic. */
|
|
196 enum nds32_cctl_valck
|
|
197 {
|
|
198 __NDS32_CCTL_L1D_VA_FILLCK__,
|
|
199 __NDS32_CCTL_L1D_VA_ULCK__,
|
|
200 __NDS32_CCTL_L1I_VA_FILLCK__,
|
|
201 __NDS32_CCTL_L1I_VA_ULCK__
|
|
202 };
|
|
203
|
|
204 enum nds32_cctl_idxwbinv
|
|
205 {
|
|
206 __NDS32_CCTL_L1D_IX_WBINVAL__,
|
|
207 __NDS32_CCTL_L1D_IX_INVAL__,
|
|
208 __NDS32_CCTL_L1D_IX_WB__,
|
|
209 __NDS32_CCTL_L1I_IX_INVAL__
|
|
210 };
|
|
211
|
|
212 enum nds32_cctl_vawbinv
|
|
213 {
|
|
214 __NDS32_CCTL_L1D_VA_INVAL__,
|
|
215 __NDS32_CCTL_L1D_VA_WB__,
|
|
216 __NDS32_CCTL_L1D_VA_WBINVAL__,
|
|
217 __NDS32_CCTL_L1I_VA_INVAL__
|
|
218 };
|
|
219
|
|
220 enum nds32_cctl_idxread
|
|
221 {
|
|
222 __NDS32_CCTL_L1D_IX_RTAG__,
|
|
223 __NDS32_CCTL_L1D_IX_RWD__,
|
|
224 __NDS32_CCTL_L1I_IX_RTAG__,
|
|
225 __NDS32_CCTL_L1I_IX_RWD__
|
|
226 };
|
|
227
|
|
228 enum nds32_cctl_idxwrite
|
|
229 {
|
|
230 __NDS32_CCTL_L1D_IX_WTAG__,
|
|
231 __NDS32_CCTL_L1D_IX_WWD__,
|
|
232 __NDS32_CCTL_L1I_IX_WTAG__,
|
|
233 __NDS32_CCTL_L1I_IX_WWD__
|
|
234 };
|
|
235
|
|
236 enum nds32_dpref
|
|
237 {
|
|
238 __NDS32_DPREF_SRD__,
|
|
239 __NDS32_DPREF_MRD__,
|
|
240 __NDS32_DPREF_SWR__,
|
|
241 __NDS32_DPREF_MWR__,
|
|
242 __NDS32_DPREF_PTE__,
|
|
243 __NDS32_DPREF_CLWR__
|
111
|
244 };
|
|
245
|
131
|
246 /* ------------------------------------------------------------------------ */
|
|
247
|
|
248 /* Define interrupt number for intrinsic function. */
|
|
249 #define NDS32_INT_H0 0
|
|
250 #define NDS32_INT_H1 1
|
|
251 #define NDS32_INT_H2 2
|
|
252 #define NDS32_INT_H3 3
|
|
253 #define NDS32_INT_H4 4
|
|
254 #define NDS32_INT_H5 5
|
|
255 #define NDS32_INT_H6 6
|
|
256 #define NDS32_INT_H7 7
|
|
257 #define NDS32_INT_H8 8
|
|
258 #define NDS32_INT_H9 9
|
|
259 #define NDS32_INT_H10 10
|
|
260 #define NDS32_INT_H11 11
|
|
261 #define NDS32_INT_H12 12
|
|
262 #define NDS32_INT_H13 13
|
|
263 #define NDS32_INT_H14 14
|
|
264 #define NDS32_INT_H15 15
|
|
265 #define NDS32_INT_H16 16
|
|
266 #define NDS32_INT_H17 17
|
|
267 #define NDS32_INT_H18 18
|
|
268 #define NDS32_INT_H19 19
|
|
269 #define NDS32_INT_H20 20
|
|
270 #define NDS32_INT_H21 21
|
|
271 #define NDS32_INT_H22 22
|
|
272 #define NDS32_INT_H23 23
|
|
273 #define NDS32_INT_H24 24
|
|
274 #define NDS32_INT_H25 25
|
|
275 #define NDS32_INT_H26 26
|
|
276 #define NDS32_INT_H27 27
|
|
277 #define NDS32_INT_H28 28
|
|
278 #define NDS32_INT_H29 29
|
|
279 #define NDS32_INT_H30 30
|
|
280 #define NDS32_INT_H31 31
|
|
281 #define NDS32_INT_H32 32
|
|
282 #define NDS32_INT_H33 33
|
|
283 #define NDS32_INT_H34 34
|
|
284 #define NDS32_INT_H35 35
|
|
285 #define NDS32_INT_H36 36
|
|
286 #define NDS32_INT_H37 37
|
|
287 #define NDS32_INT_H38 38
|
|
288 #define NDS32_INT_H39 39
|
|
289 #define NDS32_INT_H40 40
|
|
290 #define NDS32_INT_H41 41
|
|
291 #define NDS32_INT_H42 42
|
|
292 #define NDS32_INT_H43 43
|
|
293 #define NDS32_INT_H44 44
|
|
294 #define NDS32_INT_H45 45
|
|
295 #define NDS32_INT_H46 46
|
|
296 #define NDS32_INT_H47 47
|
|
297 #define NDS32_INT_H48 48
|
|
298 #define NDS32_INT_H49 49
|
|
299 #define NDS32_INT_H50 50
|
|
300 #define NDS32_INT_H51 51
|
|
301 #define NDS32_INT_H52 52
|
|
302 #define NDS32_INT_H53 53
|
|
303 #define NDS32_INT_H54 54
|
|
304 #define NDS32_INT_H55 55
|
|
305 #define NDS32_INT_H56 56
|
|
306 #define NDS32_INT_H57 57
|
|
307 #define NDS32_INT_H58 58
|
|
308 #define NDS32_INT_H59 59
|
|
309 #define NDS32_INT_H60 60
|
|
310 #define NDS32_INT_H61 61
|
|
311 #define NDS32_INT_H62 62
|
|
312 #define NDS32_INT_H63 63
|
|
313 #define NDS32_INT_SWI 64
|
|
314 #define NDS32_INT_ALZ 65
|
|
315 #define NDS32_INT_IDIVZE 66
|
|
316 #define NDS32_INT_DSSIM 67
|
|
317
|
|
318 /* ------------------------------------------------------------------------ */
|
|
319
|
|
320 /* Define intrinsic register name macro for compatibility. */
|
|
321 #define NDS32_SR_CPU_VER __NDS32_REG_CPU_VER__
|
|
322 #define NDS32_SR_ICM_CFG __NDS32_REG_ICM_CFG__
|
|
323 #define NDS32_SR_DCM_CFG __NDS32_REG_DCM_CFG__
|
|
324 #define NDS32_SR_MMU_CFG __NDS32_REG_MMU_CFG__
|
|
325 #define NDS32_SR_MSC_CFG __NDS32_REG_MSC_CFG__
|
|
326 #define NDS32_SR_MSC_CFG2 __NDS32_REG_MSC_CFG2__
|
|
327 #define NDS32_SR_CORE_ID __NDS32_REG_CORE_ID__
|
|
328 #define NDS32_SR_FUCOP_EXIST __NDS32_REG_FUCOP_EXIST__
|
|
329 #define NDS32_SR_PSW __NDS32_REG_PSW__
|
|
330 #define NDS32_SR_IPSW __NDS32_REG_IPSW__
|
|
331 #define NDS32_SR_P_IPSW __NDS32_REG_P_IPSW__
|
|
332 #define NDS32_SR_IVB __NDS32_REG_IVB__
|
|
333 #define NDS32_SR_EVA __NDS32_REG_EVA__
|
|
334 #define NDS32_SR_P_EVA __NDS32_REG_P_EVA__
|
|
335 #define NDS32_SR_ITYPE __NDS32_REG_ITYPE__
|
|
336 #define NDS32_SR_P_ITYPE __NDS32_REG_P_ITYPE__
|
|
337 #define NDS32_SR_MERR __NDS32_REG_MERR__
|
|
338 #define NDS32_SR_IPC __NDS32_REG_IPC__
|
|
339 #define NDS32_SR_P_IPC __NDS32_REG_P_IPC__
|
|
340 #define NDS32_SR_OIPC __NDS32_REG_OIPC__
|
|
341 #define NDS32_SR_P_P0 __NDS32_REG_P_P0__
|
|
342 #define NDS32_SR_P_P1 __NDS32_REG_P_P1__
|
|
343 #define NDS32_SR_INT_MASK __NDS32_REG_INT_MASK__
|
|
344 #define NDS32_SR_INT_MASK2 __NDS32_REG_INT_MASK2__
|
|
345 #define NDS32_SR_INT_MASK3 __NDS32_REG_INT_MASK3__
|
|
346 #define NDS32_SR_INT_PEND __NDS32_REG_INT_PEND__
|
|
347 #define NDS32_SR_INT_PEND2 __NDS32_REG_INT_PEND2__
|
|
348 #define NDS32_SR_INT_PEND3 __NDS32_REG_INT_PEND3__
|
|
349 #define NDS32_SR_SP_USR __NDS32_REG_SP_USR__
|
|
350 #define NDS32_SR_SP_PRIV __NDS32_REG_SP_PRIV__
|
|
351 #define NDS32_SR_INT_PRI __NDS32_REG_INT_PRI__
|
|
352 #define NDS32_SR_INT_PRI2 __NDS32_REG_INT_PRI2__
|
|
353 #define NDS32_SR_INT_PRI3 __NDS32_REG_INT_PRI3__
|
|
354 #define NDS32_SR_INT_PRI4 __NDS32_REG_INT_PRI4__
|
|
355 #define NDS32_SR_INT_CTRL __NDS32_REG_INT_CTRL__
|
|
356 #define NDS32_SR_INT_TRIGGER __NDS32_REG_INT_TRIGGER__
|
|
357 #define NDS32_SR_INT_TRIGGER2 __NDS32_REG_INT_TRIGGER2__
|
|
358 #define NDS32_SR_INT_GPR_PUSH_DIS __NDS32_REG_INT_GPR_PUSH_DIS__
|
|
359 #define NDS32_SR_MMU_CTL __NDS32_REG_MMU_CTL__
|
|
360 #define NDS32_SR_L1_PPTB __NDS32_REG_L1_PPTB__
|
|
361 #define NDS32_SR_TLB_VPN __NDS32_REG_TLB_VPN__
|
|
362 #define NDS32_SR_TLB_DATA __NDS32_REG_TLB_DATA__
|
|
363 #define NDS32_SR_TLB_MISC __NDS32_REG_TLB_MISC__
|
|
364 #define NDS32_SR_VLPT_IDX __NDS32_REG_VLPT_IDX__
|
|
365 #define NDS32_SR_ILMB __NDS32_REG_ILMB__
|
|
366 #define NDS32_SR_DLMB __NDS32_REG_DLMB__
|
|
367 #define NDS32_SR_CACHE_CTL __NDS32_REG_CACHE_CTL__
|
|
368 #define NDS32_SR_HSMP_SADDR __NDS32_REG_HSMP_SADDR__
|
|
369 #define NDS32_SR_HSMP_EADDR __NDS32_REG_HSMP_EADDR__
|
|
370 #define NDS32_SR_SDZ_CTL __NDS32_REG_SDZ_CTL__
|
|
371 #define NDS32_SR_N12MISC_CTL __NDS32_REG_N12MISC_CTL__
|
|
372 #define NDS32_SR_MISC_CTL __NDS32_REG_MISC_CTL__
|
|
373 #define NDS32_SR_ECC_MISC __NDS32_REG_ECC_MISC__
|
|
374 #define NDS32_SR_BPC0 __NDS32_REG_BPC0__
|
|
375 #define NDS32_SR_BPC1 __NDS32_REG_BPC1__
|
|
376 #define NDS32_SR_BPC2 __NDS32_REG_BPC2__
|
|
377 #define NDS32_SR_BPC3 __NDS32_REG_BPC3__
|
|
378 #define NDS32_SR_BPC4 __NDS32_REG_BPC4__
|
|
379 #define NDS32_SR_BPC5 __NDS32_REG_BPC5__
|
|
380 #define NDS32_SR_BPC6 __NDS32_REG_BPC6__
|
|
381 #define NDS32_SR_BPC7 __NDS32_REG_BPC7__
|
|
382 #define NDS32_SR_BPA0 __NDS32_REG_BPA0__
|
|
383 #define NDS32_SR_BPA1 __NDS32_REG_BPA1__
|
|
384 #define NDS32_SR_BPA2 __NDS32_REG_BPA2__
|
|
385 #define NDS32_SR_BPA3 __NDS32_REG_BPA3__
|
|
386 #define NDS32_SR_BPA4 __NDS32_REG_BPA4__
|
|
387 #define NDS32_SR_BPA5 __NDS32_REG_BPA5__
|
|
388 #define NDS32_SR_BPA6 __NDS32_REG_BPA6__
|
|
389 #define NDS32_SR_BPA7 __NDS32_REG_BPA7__
|
|
390 #define NDS32_SR_BPAM0 __NDS32_REG_BPAM0__
|
|
391 #define NDS32_SR_BPAM1 __NDS32_REG_BPAM1__
|
|
392 #define NDS32_SR_BPAM2 __NDS32_REG_BPAM2__
|
|
393 #define NDS32_SR_BPAM3 __NDS32_REG_BPAM3__
|
|
394 #define NDS32_SR_BPAM4 __NDS32_REG_BPAM4__
|
|
395 #define NDS32_SR_BPAM5 __NDS32_REG_BPAM5__
|
|
396 #define NDS32_SR_BPAM6 __NDS32_REG_BPAM6__
|
|
397 #define NDS32_SR_BPAM7 __NDS32_REG_BPAM7__
|
|
398 #define NDS32_SR_BPV0 __NDS32_REG_BPV0__
|
|
399 #define NDS32_SR_BPV1 __NDS32_REG_BPV1__
|
|
400 #define NDS32_SR_BPV2 __NDS32_REG_BPV2__
|
|
401 #define NDS32_SR_BPV3 __NDS32_REG_BPV3__
|
|
402 #define NDS32_SR_BPV4 __NDS32_REG_BPV4__
|
|
403 #define NDS32_SR_BPV5 __NDS32_REG_BPV5__
|
|
404 #define NDS32_SR_BPV6 __NDS32_REG_BPV6__
|
|
405 #define NDS32_SR_BPV7 __NDS32_REG_BPV7__
|
|
406 #define NDS32_SR_BPCID0 __NDS32_REG_BPCID0__
|
|
407 #define NDS32_SR_BPCID1 __NDS32_REG_BPCID1__
|
|
408 #define NDS32_SR_BPCID2 __NDS32_REG_BPCID2__
|
|
409 #define NDS32_SR_BPCID3 __NDS32_REG_BPCID3__
|
|
410 #define NDS32_SR_BPCID4 __NDS32_REG_BPCID4__
|
|
411 #define NDS32_SR_BPCID5 __NDS32_REG_BPCID5__
|
|
412 #define NDS32_SR_BPCID6 __NDS32_REG_BPCID6__
|
|
413 #define NDS32_SR_BPCID7 __NDS32_REG_BPCID7__
|
|
414 #define NDS32_SR_EDM_CFG __NDS32_REG_EDM_CFG__
|
|
415 #define NDS32_SR_EDMSW __NDS32_REG_EDMSW__
|
|
416 #define NDS32_SR_EDM_CTL __NDS32_REG_EDM_CTL__
|
|
417 #define NDS32_SR_EDM_DTR __NDS32_REG_EDM_DTR__
|
|
418 #define NDS32_SR_BPMTC __NDS32_REG_BPMTC__
|
|
419 #define NDS32_SR_DIMBR __NDS32_REG_DIMBR__
|
|
420 #define NDS32_SR_TECR0 __NDS32_REG_TECR0__
|
|
421 #define NDS32_SR_TECR1 __NDS32_REG_TECR1__
|
|
422 #define NDS32_SR_PFMC0 __NDS32_REG_PFMC0__
|
|
423 #define NDS32_SR_PFMC1 __NDS32_REG_PFMC1__
|
|
424 #define NDS32_SR_PFMC2 __NDS32_REG_PFMC2__
|
|
425 #define NDS32_SR_PFM_CTL __NDS32_REG_PFM_CTL__
|
|
426 #define NDS32_SR_HSP_CTL __NDS32_REG_HSP_CTL__
|
|
427 #define NDS32_SR_SP_BOUND __NDS32_REG_SP_BOUND__
|
|
428 #define NDS32_SR_SP_BOUND_PRIV __NDS32_REG_SP_BOUND_PRIV__
|
|
429 #define NDS32_SR_SP_BASE __NDS32_REG_SP_BASE__
|
|
430 #define NDS32_SR_SP_BASE_PRIV __NDS32_REG_SP_BASE_PRIV__
|
|
431 #define NDS32_SR_FUCOP_CTL __NDS32_REG_FUCOP_CTL__
|
|
432 #define NDS32_SR_PRUSR_ACC_CTL __NDS32_REG_PRUSR_ACC_CTL__
|
|
433 #define NDS32_SR_DMA_CFG __NDS32_REG_DMA_CFG__
|
|
434 #define NDS32_SR_DMA_GCSW __NDS32_REG_DMA_GCSW__
|
|
435 #define NDS32_SR_DMA_CHNSEL __NDS32_REG_DMA_CHNSEL__
|
|
436 #define NDS32_SR_DMA_ACT __NDS32_REG_DMA_ACT__
|
|
437 #define NDS32_SR_DMA_SETUP __NDS32_REG_DMA_SETUP__
|
|
438 #define NDS32_SR_DMA_ISADDR __NDS32_REG_DMA_ISADDR__
|
|
439 #define NDS32_SR_DMA_ESADDR __NDS32_REG_DMA_ESADDR__
|
|
440 #define NDS32_SR_DMA_TCNT __NDS32_REG_DMA_TCNT__
|
|
441 #define NDS32_SR_DMA_STATUS __NDS32_REG_DMA_STATUS__
|
|
442 #define NDS32_SR_DMA_2DSET __NDS32_REG_DMA_2DSET__
|
|
443 #define NDS32_SR_DMA_2DSCTL __NDS32_REG_DMA_2DSCTL__
|
|
444 #define NDS32_SR_DMA_RCNT __NDS32_REG_DMA_RCNT__
|
|
445 #define NDS32_SR_DMA_HSTATUS __NDS32_REG_DMA_HSTATUS__
|
|
446 #define NDS32_SR_SP_USR1 __NDS32_REG_SP_USR1__
|
|
447 #define NDS32_SR_SP_USR2 __NDS32_REG_SP_USR2__
|
|
448 #define NDS32_SR_SP_USR3 __NDS32_REG_SP_USR3__
|
|
449 #define NDS32_SR_SP_PRIV1 __NDS32_REG_SP_PRIV1__
|
|
450 #define NDS32_SR_SP_PRIV2 __NDS32_REG_SP_PRIV2__
|
|
451 #define NDS32_SR_SP_PRIV3 __NDS32_REG_SP_PRIV3__
|
|
452 #define NDS32_SR_BG_REGION __NDS32_REG_BG_REGION__
|
|
453 #define NDS32_SR_SFCR __NDS32_REG_SFCR__
|
|
454 #define NDS32_SR_SIGN __NDS32_REG_SIGN__
|
|
455 #define NDS32_SR_ISIGN __NDS32_REG_ISIGN__
|
|
456 #define NDS32_SR_P_ISIGN __NDS32_REG_P_ISIGN__
|
|
457
|
|
458 #define NDS32_USR_PC __NDS32_REG_PC__
|
|
459 #define NDS32_USR_DMA_CFG __NDS32_REG_DMA_CFG__
|
|
460 #define NDS32_USR_DMA_GCSW __NDS32_REG_DMA_GCSW__
|
|
461 #define NDS32_USR_DMA_CHNSEL __NDS32_REG_DMA_CHNSEL__
|
|
462 #define NDS32_USR_DMA_ACT __NDS32_REG_DMA_ACT__
|
|
463 #define NDS32_USR_DMA_SETUP __NDS32_REG_DMA_SETUP__
|
|
464 #define NDS32_USR_DMA_ISADDR __NDS32_REG_DMA_ISADDR__
|
|
465 #define NDS32_USR_DMA_ESADDR __NDS32_REG_DMA_ESADDR__
|
|
466 #define NDS32_USR_DMA_TCNT __NDS32_REG_DMA_TCNT__
|
|
467 #define NDS32_USR_DMA_STATUS __NDS32_REG_DMA_STATUS__
|
|
468 #define NDS32_USR_DMA_2DSET __NDS32_REG_DMA_2DSET__
|
|
469 #define NDS32_USR_DMA_2DSCTL __NDS32_REG_DMA_2DSCTL__
|
|
470 #define NDS32_USR_PFMC0 __NDS32_REG_PFMC0__
|
|
471 #define NDS32_USR_PFMC1 __NDS32_REG_PFMC1__
|
|
472 #define NDS32_USR_PFMC2 __NDS32_REG_PFMC2__
|
|
473 #define NDS32_USR_PFM_CTL __NDS32_REG_PFM_CTL__
|
|
474 #define NDS32_USR_IFC_LP __NDS32_REG_IFC_LP__
|
|
475 #define NDS32_USR_ITB __NDS32_REG_ITB__
|
|
476
|
|
477 #define NDS32_CCTL_L1D_VA_FILLCK __NDS32_CCTL_L1D_VA_FILLCK__
|
|
478 #define NDS32_CCTL_L1D_VA_ULCK __NDS32_CCTL_L1D_VA_ULCK__
|
|
479 #define NDS32_CCTL_L1I_VA_FILLCK __NDS32_CCTL_L1I_VA_FILLCK__
|
|
480 #define NDS32_CCTL_L1I_VA_ULCK __NDS32_CCTL_L1I_VA_ULCK__
|
|
481
|
|
482 #define NDS32_CCTL_L1D_IX_WBINVAL __NDS32_CCTL_L1D_IX_WBINVAL__
|
|
483 #define NDS32_CCTL_L1D_IX_INVAL __NDS32_CCTL_L1D_IX_INVAL__
|
|
484 #define NDS32_CCTL_L1D_IX_WB __NDS32_CCTL_L1D_IX_WB__
|
|
485 #define NDS32_CCTL_L1I_IX_INVAL __NDS32_CCTL_L1I_IX_INVAL__
|
|
486
|
|
487 #define NDS32_CCTL_L1D_VA_INVAL __NDS32_CCTL_L1D_VA_INVAL__
|
|
488 #define NDS32_CCTL_L1D_VA_WB __NDS32_CCTL_L1D_VA_WB__
|
|
489 #define NDS32_CCTL_L1D_VA_WBINVAL __NDS32_CCTL_L1D_VA_WBINVAL__
|
|
490 #define NDS32_CCTL_L1I_VA_INVAL __NDS32_CCTL_L1I_VA_INVAL__
|
|
491
|
|
492 #define NDS32_CCTL_L1D_IX_RTAG __NDS32_CCTL_L1D_IX_RTAG__
|
|
493 #define NDS32_CCTL_L1D_IX_RWD __NDS32_CCTL_L1D_IX_RWD__
|
|
494 #define NDS32_CCTL_L1I_IX_RTAG __NDS32_CCTL_L1I_IX_RTAG__
|
|
495 #define NDS32_CCTL_L1I_IX_RWD __NDS32_CCTL_L1I_IX_RWD__
|
|
496
|
|
497 #define NDS32_CCTL_L1D_IX_WTAG __NDS32_CCTL_L1D_IX_WTAG__
|
|
498 #define NDS32_CCTL_L1D_IX_WWD __NDS32_CCTL_L1D_IX_WWD__
|
|
499 #define NDS32_CCTL_L1I_IX_WTAG __NDS32_CCTL_L1I_IX_WTAG__
|
|
500 #define NDS32_CCTL_L1I_IX_WWD __NDS32_CCTL_L1I_IX_WWD__
|
|
501
|
|
502 #define NDS32_DPREF_SRD __NDS32_DPREF_SRD__
|
|
503 #define NDS32_DPREF_MRD __NDS32_DPREF_MRD__
|
|
504 #define NDS32_DPREF_SWR __NDS32_DPREF_SWR__
|
|
505 #define NDS32_DPREF_MWR __NDS32_DPREF_MWR__
|
|
506 #define NDS32_DPREF_PTE __NDS32_DPREF_PTE__
|
|
507 #define NDS32_DPREF_CLWR __NDS32_DPREF_CLWR__
|
|
508
|
|
509 /* ------------------------------------------------------------------------ */
|
|
510
|
|
511
|
|
512 /* Map __nds32__xxx() to __builtin_xxx() functions for compatibility. */
|
|
513 #define __nds32__llw(a) \
|
|
514 (__builtin_nds32_llw ((a)))
|
|
515 #define __nds32__lwup(a) \
|
|
516 (__builtin_nds32_lwup ((a)))
|
|
517 #define __nds32__lbup(a) \
|
|
518 (__builtin_nds32_lbup ((a)))
|
|
519 #define __nds32__scw(a, b) \
|
|
520 (__builtin_nds32_scw ((a), (b)))
|
|
521 #define __nds32__swup(a, b) \
|
|
522 (__builtin_nds32_swup ((a), (b)))
|
|
523 #define __nds32__sbup(a, b) \
|
|
524 (__builtin_nds32_sbup ((a), (b)))
|
|
525
|
|
526 #define __nds32__mfsr(srname) \
|
|
527 (__builtin_nds32_mfsr ((srname)))
|
|
528 #define __nds32__mfusr(usrname) \
|
|
529 (__builtin_nds32_mfusr ((usrname)))
|
|
530 #define __nds32__mtsr(val, srname) \
|
|
531 (__builtin_nds32_mtsr ((val), (srname)))
|
|
532 #define __nds32__mtsr_isb(val, srname) \
|
|
533 (__builtin_nds32_mtsr_isb ((val), (srname)))
|
|
534 #define __nds32__mtsr_dsb(val, srname) \
|
|
535 (__builtin_nds32_mtsr_dsb ((val), (srname)))
|
|
536 #define __nds32__mtusr(val, usrname) \
|
|
537 (__builtin_nds32_mtusr ((val), (usrname)))
|
|
538
|
|
539 #define __nds32__break(swid) \
|
|
540 (__builtin_nds32_break(swid))
|
|
541 #define __nds32__cctlva_lck(subtype, va) \
|
|
542 (__builtin_nds32_cctl_va_lck ((subtype), (va)))
|
|
543 #define __nds32__cctlidx_wbinval(subtype, idx) \
|
|
544 (__builtin_nds32_cctl_idx_wbinval ((subtype), (idx)))
|
|
545 #define __nds32__cctlva_wbinval_alvl(subtype, va) \
|
|
546 (__builtin_nds32_cctl_va_wbinval_la ((subtype), (va)))
|
|
547 #define __nds32__cctlva_wbinval_one_lvl(subtype, va) \
|
|
548 (__builtin_nds32_cctl_va_wbinval_l1 ((subtype), (va)))
|
|
549 #define __nds32__cctlidx_read(subtype, idx) \
|
|
550 (__builtin_nds32_cctl_idx_read ((subtype), (idx)))
|
|
551 #define __nds32__cctlidx_write(subtype, b, idxw) \
|
|
552 (__builtin_nds32_cctl_idx_write ((subtype), (b), (idxw)))
|
|
553 #define __nds32__cctl_l1d_invalall() \
|
|
554 (__builtin_nds32_cctl_l1d_invalall())
|
|
555 #define __nds32__cctl_l1d_wball_alvl() \
|
|
556 (__builtin_nds32_cctl_l1d_wball_alvl())
|
|
557 #define __nds32__cctl_l1d_wball_one_lvl() \
|
|
558 (__builtin_nds32_cctl_l1d_wball_one_lvl())
|
|
559
|
|
560 #define __nds32__dsb() \
|
|
561 (__builtin_nds32_dsb())
|
|
562 #define __nds32__isb() \
|
|
563 (__builtin_nds32_isb())
|
|
564 #define __nds32__msync_store() \
|
|
565 (__builtin_nds32_msync_store())
|
|
566 #define __nds32__msync_all() \
|
|
567 (__builtin_nds32_msync_all())
|
|
568 #define __nds32__nop() \
|
|
569 (__builtin_nds32_nop())
|
|
570
|
|
571 #define __nds32__standby_wait_done() \
|
|
572 (__builtin_nds32_standby_wait_done())
|
|
573 #define __nds32__standby_no_wake_grant() \
|
|
574 (__builtin_nds32_standby_no_wake_grant())
|
|
575 #define __nds32__standby_wake_grant() \
|
|
576 (__builtin_nds32_standby_wake_grant())
|
|
577 #define __nds32__schedule_barrier() \
|
|
578 (__builtin_nds32_schedule_barrier())
|
|
579 #define __nds32__setend_big() \
|
|
580 (__builtin_nds32_setend_big())
|
|
581 #define __nds32__setend_little() \
|
|
582 (__builtin_nds32_setend_little())
|
|
583 #define __nds32__setgie_en() \
|
|
584 (__builtin_nds32_setgie_en())
|
|
585 #define __nds32__setgie_dis() \
|
|
586 (__builtin_nds32_setgie_dis())
|
|
587
|
|
588 #define __nds32__jr_itoff(a) \
|
|
589 (__builtin_nds32_jr_itoff ((a)))
|
|
590 #define __nds32__jr_toff(a) \
|
|
591 (__builtin_nds32_jr_toff ((a)))
|
|
592 #define __nds32__jral_iton(a) \
|
|
593 (__builtin_nds32_jral_iton ((a)))
|
|
594 #define __nds32__jral_ton(a) \
|
|
595 (__builtin_nds32_jral_ton ((a)))
|
|
596 #define __nds32__ret_itoff(a) \
|
|
597 (__builtin_nds32_ret_itoff ((a)))
|
|
598 #define __nds32__ret_toff(a) \
|
|
599 (__builtin_nds32_ret_toff ((a)))
|
|
600 #define __nds32__svs(a, b) \
|
|
601 (__builtin_nds32_svs ((a), (b)))
|
|
602 #define __nds32__sva(a, b) \
|
|
603 (__builtin_nds32_sva ((a), (b)))
|
|
604 #define __nds32__dpref_qw(a, b, subtype) \
|
|
605 (__builtin_nds32_dpref_qw ((a), (b), (subtype)))
|
|
606 #define __nds32__dpref_hw(a, b, subtype) \
|
|
607 (__builtin_nds32_dpref_hw ((a), (b), (subtype)))
|
|
608 #define __nds32__dpref_w(a, b, subtype) \
|
|
609 (__builtin_nds32_dpref_w ((a), (b), (subtype)))
|
|
610 #define __nds32__dpref_dw(a, b, subtype) \
|
|
611 (__builtin_nds32_dpref_dw ((a), (b), (subtype)))
|
|
612
|
|
613 #define __nds32__teqz(a, swid) \
|
|
614 (__builtin_nds32_teqz ((a), (swid)))
|
|
615 #define __nds32__tnez(a, swid) \
|
|
616 ( __builtin_nds32_tnez ((a), (swid)))
|
|
617 #define __nds32__trap(swid) \
|
|
618 (__builtin_nds32_trap ((swid)))
|
|
619 #define __nds32__isync(a) \
|
|
620 (__builtin_nds32_isync ((a)))
|
|
621 #define __nds32__rotr(val, ror) \
|
|
622 (__builtin_nds32_rotr ((val), (ror)))
|
|
623 #define __nds32__wsbh(a) \
|
|
624 (__builtin_nds32_wsbh ((a)))
|
|
625 #define __nds32__syscall(a) \
|
|
626 (__builtin_nds32_syscall ((a)))
|
|
627 #define __nds32__return_address() \
|
|
628 (__builtin_nds32_return_address())
|
|
629 #define __nds32__get_current_sp() \
|
|
630 (__builtin_nds32_get_current_sp())
|
|
631 #define __nds32__set_current_sp(a) \
|
|
632 (__builtin_nds32_set_current_sp ((a)))
|
|
633 #define __nds32__abs(a) \
|
|
634 (__builtin_nds32_pe_abs ((a)))
|
|
635 #define __nds32__ave(a, b) \
|
|
636 (__builtin_nds32_pe_ave ((a), (b)))
|
|
637 #define __nds32__bclr(a, pos) \
|
|
638 (__builtin_nds32_pe_bclr ((a), (pos)))
|
|
639 #define __nds32__bset(a, pos) \
|
|
640 (__builtin_nds32_pe_bset ((a), (pos)))
|
|
641 #define __nds32__btgl(a, pos) \
|
|
642 (__builtin_nds32_pe_btgl ((a), (pos)))
|
|
643 #define __nds32__btst(a, pos) \
|
|
644 (__builtin_nds32_pe_btst ((a), (pos)))
|
|
645
|
|
646 #define __nds32__clip(a, imm) \
|
|
647 (__builtin_nds32_pe_clip ((a), (imm)))
|
|
648 #define __nds32__clips(a, imm) \
|
|
649 (__builtin_nds32_pe_clips ((a), (imm)))
|
|
650 #define __nds32__clz(a) \
|
|
651 (__builtin_nds32_pe_clz ((a)))
|
|
652 #define __nds32__clo(a) \
|
|
653 (__builtin_nds32_pe_clo ((a)))
|
|
654 #define __nds32__bse(r, a, b) \
|
|
655 (__builtin_nds32_pe2_bse ((r), (a), (b)))
|
|
656 #define __nds32__bsp(r, a, b) \
|
|
657 (__builtin_nds32_pe2_bsp ((r), (a), (b)))
|
|
658 #define __nds32__pbsad(a, b) \
|
|
659 (__builtin_nds32_pe2_pbsad ((a), (b)))
|
|
660 #define __nds32__pbsada(acc, a, b) \
|
|
661 (__builtin_nds32_pe2_pbsada ((acc), (a), (b)))
|
|
662
|
|
663 #define __nds32__ffb(a, b) \
|
|
664 (__builtin_nds32_se_ffb ((a), (b)))
|
|
665 #define __nds32__ffmism(a, b) \
|
|
666 (__builtin_nds32_se_ffmism ((a), (b)))
|
|
667 #define __nds32__flmism(a, b) \
|
|
668 (__builtin_nds32_se_flmism ((a), (b)))
|
|
669 #define __nds32__fcpynsd(a, b) \
|
|
670 (__builtin_nds32_fcpynsd ((a), (b)))
|
|
671 #define __nds32__fcpynss(a, b) \
|
|
672 (__builtin_nds32_fcpynss ((a), (b)))
|
|
673 #define __nds32__fcpysd(a, b) \
|
|
674 (__builtin_nds32_fcpysd ((a), (b)))
|
|
675 #define __nds32__fcpyss(a, b) \
|
|
676 (__builtin_nds32_fcpyss ((a), (b)))
|
|
677 #define __nds32__fmfcsr() \
|
|
678 (__builtin_nds32_fmfcsr())
|
|
679 #define __nds32__fmtcsr(fpcsr) \
|
|
680 (__builtin_nds32_fmtcsr ((fpcsr)))
|
|
681 #define __nds32__fmfcfg() \
|
|
682 (__builtin_nds32_fmfcfg())
|
|
683
|
|
684 #define __nds32__tlbop_trd(a) \
|
|
685 (__builtin_nds32_tlbop_trd ((a)))
|
|
686 #define __nds32__tlbop_twr(a) \
|
|
687 (__builtin_nds32_tlbop_twr ((a)))
|
|
688 #define __nds32__tlbop_rwr(a) \
|
|
689 (__builtin_nds32_tlbop_rwr ((a)))
|
|
690 #define __nds32__tlbop_rwlk(a) \
|
|
691 (__builtin_nds32_tlbop_rwlk ((a)))
|
|
692 #define __nds32__tlbop_unlk(a) \
|
|
693 (__builtin_nds32_tlbop_unlk ((a)))
|
|
694 #define __nds32__tlbop_pb(a) \
|
|
695 (__builtin_nds32_tlbop_pb ((a)))
|
|
696 #define __nds32__tlbop_inv(a) \
|
|
697 (__builtin_nds32_tlbop_inv ((a)))
|
|
698 #define __nds32__tlbop_flua() \
|
|
699 (__builtin_nds32_tlbop_flua())
|
|
700
|
|
701 #define __nds32__kaddw(a, b) \
|
|
702 (__builtin_nds32_kaddw ((a), (b)))
|
|
703 #define __nds32__kaddh(a, b) \
|
|
704 (__builtin_nds32_kaddh ((a), (b)))
|
|
705 #define __nds32__ksubw(a, b) \
|
|
706 (__builtin_nds32_ksubw ((a), (b)))
|
|
707 #define __nds32__ksubh(a, b) \
|
|
708 (__builtin_nds32_ksubh ((a), (b)))
|
|
709 #define __nds32__kdmbb(a, b) \
|
|
710 (__builtin_nds32_kdmbb ((a), (b)))
|
|
711 #define __nds32__v_kdmbb(a, b) \
|
|
712 (__builtin_nds32_v_kdmbb ((a), (b)))
|
|
713 #define __nds32__kdmbt(a, b) \
|
|
714 (__builtin_nds32_kdmbt ((a), (b)))
|
|
715 #define __nds32__v_kdmbt(a, b) \
|
|
716 (__builtin_nds32_v_kdmbt ((a), (b)))
|
|
717 #define __nds32__kdmtb(a, b) \
|
|
718 (__builtin_nds32_kdmtb ((a), (b)))
|
|
719 #define __nds32__v_kdmtb(a, b) \
|
|
720 (__builtin_nds32_v_kdmtb ((a), (b)))
|
|
721 #define __nds32__kdmtt(a, b) \
|
|
722 (__builtin_nds32_kdmtt ((a), (b)))
|
|
723 #define __nds32__v_kdmtt(a, b) \
|
|
724 (__builtin_nds32_v_kdmtt ((a), (b)))
|
|
725 #define __nds32__khmbb(a, b) \
|
|
726 (__builtin_nds32_khmbb ((a), (b)))
|
|
727 #define __nds32__v_khmbb(a, b) \
|
|
728 (__builtin_nds32_v_khmbb ((a), (b)))
|
|
729 #define __nds32__khmbt(a, b) \
|
|
730 (__builtin_nds32_khmbt ((a), (b)))
|
|
731 #define __nds32__v_khmbt(a, b) \
|
|
732 (__builtin_nds32_v_khmbt ((a), (b)))
|
|
733 #define __nds32__khmtb(a, b) \
|
|
734 (__builtin_nds32_khmtb ((a), (b)))
|
|
735 #define __nds32__v_khmtb(a, b) \
|
|
736 (__builtin_nds32_v_khmtb ((a), (b)))
|
|
737 #define __nds32__khmtt(a, b) \
|
|
738 (__builtin_nds32_khmtt ((a), (b)))
|
|
739 #define __nds32__v_khmtt(a, b) \
|
|
740 (__builtin_nds32_v_khmtt ((a), (b)))
|
|
741 #define __nds32__kslraw(a, b) \
|
|
742 (__builtin_nds32_kslraw ((a), (b)))
|
|
743 #define __nds32__kslraw_u(a, b) \
|
|
744 (__builtin_nds32_kslraw_u ((a), (b)))
|
|
745
|
|
746 #define __nds32__rdov() \
|
|
747 (__builtin_nds32_rdov())
|
|
748 #define __nds32__clrov() \
|
|
749 (__builtin_nds32_clrov())
|
|
750 #define __nds32__gie_dis() \
|
|
751 (__builtin_nds32_gie_dis())
|
|
752 #define __nds32__gie_en() \
|
|
753 (__builtin_nds32_gie_en())
|
|
754 #define __nds32__enable_int(a) \
|
|
755 (__builtin_nds32_enable_int ((a)))
|
|
756 #define __nds32__disable_int(a) \
|
|
757 (__builtin_nds32_disable_int ((a)))
|
|
758 #define __nds32__set_pending_swint() \
|
|
759 (__builtin_nds32_set_pending_swint())
|
|
760 #define __nds32__clr_pending_swint() \
|
|
761 (__builtin_nds32_clr_pending_swint())
|
|
762 #define __nds32__clr_pending_hwint(a) \
|
|
763 (__builtin_nds32_clr_pending_hwint(a))
|
|
764 #define __nds32__get_all_pending_int() \
|
|
765 (__builtin_nds32_get_all_pending_int())
|
|
766 #define __nds32__get_pending_int(a) \
|
|
767 (__builtin_nds32_get_pending_int ((a)))
|
|
768 #define __nds32__set_int_priority(a, b) \
|
|
769 (__builtin_nds32_set_int_priority ((a), (b)))
|
|
770 #define __nds32__get_int_priority(a) \
|
|
771 (__builtin_nds32_get_int_priority ((a)))
|
|
772 #define __nds32__set_trig_type_level(a) \
|
|
773 (__builtin_nds32_set_trig_level(a))
|
|
774 #define __nds32__set_trig_type_edge(a) \
|
|
775 (__builtin_nds32_set_trig_edge(a))
|
|
776 #define __nds32__get_trig_type(a) \
|
|
777 (__builtin_nds32_get_trig_type ((a)))
|
|
778
|
|
779 #define __nds32__get_unaligned_hw(a) \
|
|
780 (__builtin_nds32_unaligned_load_hw ((a)))
|
|
781 #define __nds32__get_unaligned_w(a) \
|
|
782 (__builtin_nds32_unaligned_load_w ((a)))
|
|
783 #define __nds32__get_unaligned_dw(a) \
|
|
784 (__builtin_nds32_unaligned_load_dw ((a)))
|
|
785 #define __nds32__put_unaligned_hw(a, data) \
|
|
786 (__builtin_nds32_unaligned_store_hw ((a), (data)))
|
|
787 #define __nds32__put_unaligned_w(a, data) \
|
|
788 (__builtin_nds32_unaligned_store_w ((a), (data)))
|
|
789 #define __nds32__put_unaligned_dw(a, data) \
|
|
790 (__builtin_nds32_unaligned_store_dw ((a), (data)))
|
|
791
|
|
792 #define __nds32__add16(a, b) \
|
|
793 (__builtin_nds32_add16 ((a), (b)))
|
|
794 #define __nds32__v_uadd16(a, b) \
|
|
795 (__builtin_nds32_v_uadd16 ((a), (b)))
|
|
796 #define __nds32__v_sadd16(a, b) \
|
|
797 (__builtin_nds32_v_sadd16 ((a), (b)))
|
|
798 #define __nds32__radd16(a, b) \
|
|
799 (__builtin_nds32_radd16 ((a), (b)))
|
|
800 #define __nds32__v_radd16(a, b) \
|
|
801 (__builtin_nds32_v_radd16 ((a), (b)))
|
|
802 #define __nds32__uradd16(a, b) \
|
|
803 (__builtin_nds32_uradd16 ((a), (b)))
|
|
804 #define __nds32__v_uradd16(a, b) \
|
|
805 (__builtin_nds32_v_uradd16 ((a), (b)))
|
|
806 #define __nds32__kadd16(a, b) \
|
|
807 (__builtin_nds32_kadd16 ((a), (b)))
|
|
808 #define __nds32__v_kadd16(a, b) \
|
|
809 (__builtin_nds32_v_kadd16 ((a), (b)))
|
|
810 #define __nds32__ukadd16(a, b) \
|
|
811 (__builtin_nds32_ukadd16 ((a), (b)))
|
|
812 #define __nds32__v_ukadd16(a, b) \
|
|
813 (__builtin_nds32_v_ukadd16 ((a), (b)))
|
|
814 #define __nds32__sub16(a, b) \
|
|
815 (__builtin_nds32_sub16 ((a), (b)))
|
|
816 #define __nds32__v_usub16(a, b) \
|
|
817 (__builtin_nds32_v_usub16 ((a), (b)))
|
|
818 #define __nds32__v_ssub16(a, b) \
|
|
819 (__builtin_nds32_v_ssub16 ((a), (b)))
|
|
820 #define __nds32__rsub16(a, b) \
|
|
821 (__builtin_nds32_rsub16 ((a), (b)))
|
|
822 #define __nds32__v_rsub16(a, b) \
|
|
823 (__builtin_nds32_v_rsub16 ((a), (b)))
|
|
824 #define __nds32__ursub16(a, b) \
|
|
825 (__builtin_nds32_ursub16 ((a), (b)))
|
|
826 #define __nds32__v_ursub16(a, b) \
|
|
827 (__builtin_nds32_v_ursub16 ((a), (b)))
|
|
828 #define __nds32__ksub16(a, b) \
|
|
829 (__builtin_nds32_ksub16 ((a), (b)))
|
|
830 #define __nds32__v_ksub16(a, b) \
|
|
831 (__builtin_nds32_v_ksub16 ((a), (b)))
|
|
832 #define __nds32__uksub16(a, b) \
|
|
833 (__builtin_nds32_uksub16 ((a), (b)))
|
|
834 #define __nds32__v_uksub16(a, b) \
|
|
835 (__builtin_nds32_v_uksub16 ((a), (b)))
|
|
836 #define __nds32__cras16(a, b) \
|
|
837 (__builtin_nds32_cras16 ((a), (b)))
|
|
838 #define __nds32__v_ucras16(a, b) \
|
|
839 (__builtin_nds32_v_ucras16 ((a), (b)))
|
|
840 #define __nds32__v_scras16(a, b) \
|
|
841 (__builtin_nds32_v_scras16 ((a), (b)))
|
|
842 #define __nds32__rcras16(a, b) \
|
|
843 (__builtin_nds32_rcras16 ((a), (b)))
|
|
844 #define __nds32__v_rcras16(a, b) \
|
|
845 (__builtin_nds32_v_rcras16 ((a), (b)))
|
|
846 #define __nds32__urcras16(a, b) \
|
|
847 (__builtin_nds32_urcras16 ((a), (b)))
|
|
848 #define __nds32__v_urcras16(a, b) \
|
|
849 (__builtin_nds32_v_urcras16 ((a), (b)))
|
|
850 #define __nds32__kcras16(a, b) \
|
|
851 (__builtin_nds32_kcras16 ((a), (b)))
|
|
852 #define __nds32__v_kcras16(a, b) \
|
|
853 (__builtin_nds32_v_kcras16 ((a), (b)))
|
|
854 #define __nds32__ukcras16(a, b) \
|
|
855 (__builtin_nds32_ukcras16 ((a), (b)))
|
|
856 #define __nds32__v_ukcras16(a, b) \
|
|
857 (__builtin_nds32_v_ukcras16 ((a), (b)))
|
|
858 #define __nds32__crsa16(a, b) \
|
|
859 (__builtin_nds32_crsa16 ((a), (b)))
|
|
860 #define __nds32__v_ucrsa16(a, b) \
|
|
861 (__builtin_nds32_v_ucrsa16 ((a), (b)))
|
|
862 #define __nds32__v_scrsa16(a, b) \
|
|
863 (__builtin_nds32_v_scrsa16 ((a), (b)))
|
|
864 #define __nds32__rcrsa16(a, b) \
|
|
865 (__builtin_nds32_rcrsa16 ((a), (b)))
|
|
866 #define __nds32__v_rcrsa16(a, b) \
|
|
867 (__builtin_nds32_v_rcrsa16 ((a), (b)))
|
|
868 #define __nds32__urcrsa16(a, b) \
|
|
869 (__builtin_nds32_urcrsa16 ((a), (b)))
|
|
870 #define __nds32__v_urcrsa16(a, b) \
|
|
871 (__builtin_nds32_v_urcrsa16 ((a), (b)))
|
|
872 #define __nds32__kcrsa16(a, b) \
|
|
873 (__builtin_nds32_kcrsa16 ((a), (b)))
|
|
874 #define __nds32__v_kcrsa16(a, b) \
|
|
875 (__builtin_nds32_v_kcrsa16 ((a), (b)))
|
|
876 #define __nds32__ukcrsa16(a, b) \
|
|
877 (__builtin_nds32_ukcrsa16 ((a), (b)))
|
|
878 #define __nds32__v_ukcrsa16(a, b) \
|
|
879 (__builtin_nds32_v_ukcrsa16 ((a), (b)))
|
|
880
|
|
881 #define __nds32__add8(a, b) \
|
|
882 (__builtin_nds32_add8 ((a), (b)))
|
|
883 #define __nds32__v_uadd8(a, b) \
|
|
884 (__builtin_nds32_v_uadd8 ((a), (b)))
|
|
885 #define __nds32__v_sadd8(a, b) \
|
|
886 (__builtin_nds32_v_sadd8 ((a), (b)))
|
|
887 #define __nds32__radd8(a, b) \
|
|
888 (__builtin_nds32_radd8 ((a), (b)))
|
|
889 #define __nds32__v_radd8(a, b) \
|
|
890 (__builtin_nds32_v_radd8 ((a), (b)))
|
|
891 #define __nds32__uradd8(a, b) \
|
|
892 (__builtin_nds32_uradd8 ((a), (b)))
|
|
893 #define __nds32__v_uradd8(a, b) \
|
|
894 (__builtin_nds32_v_uradd8 ((a), (b)))
|
|
895 #define __nds32__kadd8(a, b) \
|
|
896 (__builtin_nds32_kadd8 ((a), (b)))
|
|
897 #define __nds32__v_kadd8(a, b) \
|
|
898 (__builtin_nds32_v_kadd8 ((a), (b)))
|
|
899 #define __nds32__ukadd8(a, b) \
|
|
900 (__builtin_nds32_ukadd8 ((a), (b)))
|
|
901 #define __nds32__v_ukadd8(a, b) \
|
|
902 (__builtin_nds32_v_ukadd8 ((a), (b)))
|
|
903 #define __nds32__sub8(a, b) \
|
|
904 (__builtin_nds32_sub8 ((a), (b)))
|
|
905 #define __nds32__v_usub8(a, b) \
|
|
906 (__builtin_nds32_v_usub8 ((a), (b)))
|
|
907 #define __nds32__v_ssub8(a, b) \
|
|
908 (__builtin_nds32_v_ssub8 ((a), (b)))
|
|
909 #define __nds32__rsub8(a, b) \
|
|
910 (__builtin_nds32_rsub8 ((a), (b)))
|
|
911 #define __nds32__v_rsub8(a, b) \
|
|
912 (__builtin_nds32_v_rsub8 ((a), (b)))
|
|
913 #define __nds32__ursub8(a, b) \
|
|
914 (__builtin_nds32_ursub8 ((a), (b)))
|
|
915 #define __nds32__v_ursub8(a, b) \
|
|
916 (__builtin_nds32_v_ursub8 ((a), (b)))
|
|
917 #define __nds32__ksub8(a, b) \
|
|
918 (__builtin_nds32_ksub8 ((a), (b)))
|
|
919 #define __nds32__v_ksub8(a, b) \
|
|
920 (__builtin_nds32_v_ksub8 ((a), (b)))
|
|
921 #define __nds32__uksub8(a, b) \
|
|
922 (__builtin_nds32_uksub8 ((a), (b)))
|
|
923 #define __nds32__v_uksub8(a, b) \
|
|
924 (__builtin_nds32_v_uksub8 ((a), (b)))
|
|
925
|
|
926 #define __nds32__sra16(a, b) \
|
|
927 (__builtin_nds32_sra16 ((a), (b)))
|
|
928 #define __nds32__v_sra16(a, b) \
|
|
929 (__builtin_nds32_v_sra16 ((a), (b)))
|
|
930 #define __nds32__sra16_u(a, b) \
|
|
931 (__builtin_nds32_sra16_u ((a), (b)))
|
|
932 #define __nds32__v_sra16_u(a, b) \
|
|
933 (__builtin_nds32_v_sra16_u ((a), (b)))
|
|
934 #define __nds32__srl16(a, b) \
|
|
935 (__builtin_nds32_srl16 ((a), (b)))
|
|
936 #define __nds32__v_srl16(a, b) \
|
|
937 (__builtin_nds32_v_srl16 ((a), (b)))
|
|
938 #define __nds32__srl16_u(a, b) \
|
|
939 (__builtin_nds32_srl16_u ((a), (b)))
|
|
940 #define __nds32__v_srl16_u(a, b) \
|
|
941 (__builtin_nds32_v_srl16_u ((a), (b)))
|
|
942 #define __nds32__sll16(a, b) \
|
|
943 (__builtin_nds32_sll16 ((a), (b)))
|
|
944 #define __nds32__v_sll16(a, b) \
|
|
945 (__builtin_nds32_v_sll16 ((a), (b)))
|
|
946 #define __nds32__ksll16(a, b) \
|
|
947 (__builtin_nds32_ksll16 ((a), (b)))
|
|
948 #define __nds32__v_ksll16(a, b) \
|
|
949 (__builtin_nds32_v_ksll16 ((a), (b)))
|
|
950 #define __nds32__kslra16(a, b) \
|
|
951 (__builtin_nds32_kslra16 ((a), (b)))
|
|
952 #define __nds32__v_kslra16(a, b) \
|
|
953 (__builtin_nds32_v_kslra16 ((a), (b)))
|
|
954 #define __nds32__kslra16_u(a, b) \
|
|
955 (__builtin_nds32_kslra16_u ((a), (b)))
|
|
956 #define __nds32__v_kslra16_u(a, b) \
|
|
957 (__builtin_nds32_v_kslra16_u ((a), (b)))
|
|
958
|
|
959 #define __nds32__cmpeq16(a, b) \
|
|
960 (__builtin_nds32_cmpeq16 ((a), (b)))
|
|
961 #define __nds32__v_scmpeq16(a, b) \
|
|
962 (__builtin_nds32_v_scmpeq16 ((a), (b)))
|
|
963 #define __nds32__v_ucmpeq16(a, b) \
|
|
964 (__builtin_nds32_v_ucmpeq16 ((a), (b)))
|
|
965 #define __nds32__scmplt16(a, b) \
|
|
966 (__builtin_nds32_scmplt16 ((a), (b)))
|
|
967 #define __nds32__v_scmplt16(a, b) \
|
|
968 (__builtin_nds32_v_scmplt16 ((a), (b)))
|
|
969 #define __nds32__scmple16(a, b) \
|
|
970 (__builtin_nds32_scmple16 ((a), (b)))
|
|
971 #define __nds32__v_scmple16(a, b) \
|
|
972 (__builtin_nds32_v_scmple16 ((a), (b)))
|
|
973 #define __nds32__ucmplt16(a, b) \
|
|
974 (__builtin_nds32_ucmplt16 ((a), (b)))
|
|
975 #define __nds32__v_ucmplt16(a, b) \
|
|
976 (__builtin_nds32_v_ucmplt16 ((a), (b)))
|
|
977 #define __nds32__ucmple16(a, b) \
|
|
978 (__builtin_nds32_ucmple16 ((a), (b)))
|
|
979 #define __nds32__v_ucmple16(a, b) \
|
|
980 (__builtin_nds32_v_ucmple16 ((a), (b)))
|
|
981
|
|
982 #define __nds32__cmpeq8(a, b) \
|
|
983 (__builtin_nds32_cmpeq8 ((a), (b)))
|
|
984 #define __nds32__v_scmpeq8(a, b) \
|
|
985 (__builtin_nds32_v_scmpeq8 ((a), (b)))
|
|
986 #define __nds32__v_ucmpeq8(a, b) \
|
|
987 (__builtin_nds32_v_ucmpeq8 ((a), (b)))
|
|
988 #define __nds32__scmplt8(a, b) \
|
|
989 (__builtin_nds32_scmplt8 ((a), (b)))
|
|
990 #define __nds32__v_scmplt8(a, b) \
|
|
991 (__builtin_nds32_v_scmplt8 ((a), (b)))
|
|
992 #define __nds32__scmple8(a, b) \
|
|
993 (__builtin_nds32_scmple8 ((a), (b)))
|
|
994 #define __nds32__v_scmple8(a, b) \
|
|
995 (__builtin_nds32_v_scmple8 ((a), (b)))
|
|
996 #define __nds32__ucmplt8(a, b) \
|
|
997 (__builtin_nds32_ucmplt8 ((a), (b)))
|
|
998 #define __nds32__v_ucmplt8(a, b) \
|
|
999 (__builtin_nds32_v_ucmplt8 ((a), (b)))
|
|
1000 #define __nds32__ucmple8(a, b) \
|
|
1001 (__builtin_nds32_ucmple8 ((a), (b)))
|
|
1002 #define __nds32__v_ucmple8(a, b) \
|
|
1003 (__builtin_nds32_v_ucmple8 ((a), (b)))
|
|
1004
|
|
1005 #define __nds32__smin16(a, b) \
|
|
1006 (__builtin_nds32_smin16 ((a), (b)))
|
|
1007 #define __nds32__v_smin16(a, b) \
|
|
1008 (__builtin_nds32_v_smin16 ((a), (b)))
|
|
1009 #define __nds32__umin16(a, b) \
|
|
1010 (__builtin_nds32_umin16 ((a), (b)))
|
|
1011 #define __nds32__v_umin16(a, b) \
|
|
1012 (__builtin_nds32_v_umin16 ((a), (b)))
|
|
1013 #define __nds32__smax16(a, b) \
|
|
1014 (__builtin_nds32_smax16 ((a), (b)))
|
|
1015 #define __nds32__v_smax16(a, b) \
|
|
1016 (__builtin_nds32_v_smax16 ((a), (b)))
|
|
1017 #define __nds32__umax16(a, b) \
|
|
1018 (__builtin_nds32_umax16 ((a), (b)))
|
|
1019 #define __nds32__v_umax16(a, b) \
|
|
1020 (__builtin_nds32_v_umax16 ((a), (b)))
|
|
1021 #define __nds32__sclip16(a, b) \
|
|
1022 (__builtin_nds32_sclip16 ((a), (b)))
|
|
1023 #define __nds32__v_sclip16(a, b) \
|
|
1024 (__builtin_nds32_v_sclip16 ((a), (b)))
|
|
1025 #define __nds32__uclip16(a, b) \
|
|
1026 (__builtin_nds32_uclip16 ((a), (b)))
|
|
1027 #define __nds32__v_uclip16(a, b) \
|
|
1028 (__builtin_nds32_v_uclip16 ((a), (b)))
|
|
1029 #define __nds32__khm16(a, b) \
|
|
1030 (__builtin_nds32_khm16 ((a), (b)))
|
|
1031 #define __nds32__v_khm16(a, b) \
|
|
1032 (__builtin_nds32_v_khm16 ((a), (b)))
|
|
1033 #define __nds32__khmx16(a, b) \
|
|
1034 (__builtin_nds32_khmx16 ((a), (b)))
|
|
1035 #define __nds32__v_khmx16(a, b) \
|
|
1036 (__builtin_nds32_v_khmx16 ((a), (b)))
|
|
1037 #define __nds32__kabs16(a) \
|
|
1038 (__builtin_nds32_kabs16 ((a)))
|
|
1039 #define __nds32__v_kabs16(a) \
|
|
1040 (__builtin_nds32_v_kabs16 ((a)))
|
|
1041
|
|
1042 #define __nds32__smin8(a, b) \
|
|
1043 (__builtin_nds32_smin8 ((a), (b)))
|
|
1044 #define __nds32__v_smin8(a, b) \
|
|
1045 (__builtin_nds32_v_smin8 ((a), (b)))
|
|
1046 #define __nds32__umin8(a, b) \
|
|
1047 (__builtin_nds32_umin8 ((a), (b)))
|
|
1048 #define __nds32__v_umin8(a, b) \
|
|
1049 (__builtin_nds32_v_umin8 ((a), (b)))
|
|
1050 #define __nds32__smax8(a, b) \
|
|
1051 (__builtin_nds32_smax8 ((a), (b)))
|
|
1052 #define __nds32__v_smax8(a, b) \
|
|
1053 (__builtin_nds32_v_smax8 ((a), (b)))
|
|
1054 #define __nds32__umax8(a, b) \
|
|
1055 (__builtin_nds32_umax8 ((a), (b)))
|
|
1056 #define __nds32__v_umax8(a, b) \
|
|
1057 (__builtin_nds32_v_umax8 ((a), (b)))
|
|
1058 #define __nds32__kabs8(a) \
|
|
1059 (__builtin_nds32_kabs8 ((a)))
|
|
1060 #define __nds32__v_kabs8(a) \
|
|
1061 (__builtin_nds32_v_kabs8 ((a)))
|
|
1062
|
|
1063 #define __nds32__sunpkd810(a) \
|
|
1064 (__builtin_nds32_sunpkd810 ((a)))
|
|
1065 #define __nds32__v_sunpkd810(a) \
|
|
1066 (__builtin_nds32_v_sunpkd810 ((a)))
|
|
1067 #define __nds32__sunpkd820(a) \
|
|
1068 (__builtin_nds32_sunpkd820 ((a)))
|
|
1069 #define __nds32__v_sunpkd820(a) \
|
|
1070 (__builtin_nds32_v_sunpkd820 ((a)))
|
|
1071 #define __nds32__sunpkd830(a) \
|
|
1072 (__builtin_nds32_sunpkd830 ((a)))
|
|
1073 #define __nds32__v_sunpkd830(a) \
|
|
1074 (__builtin_nds32_v_sunpkd830 ((a)))
|
|
1075 #define __nds32__sunpkd831(a) \
|
|
1076 (__builtin_nds32_sunpkd831 ((a)))
|
|
1077 #define __nds32__v_sunpkd831(a) \
|
|
1078 (__builtin_nds32_v_sunpkd831 ((a)))
|
|
1079 #define __nds32__zunpkd810(a) \
|
|
1080 (__builtin_nds32_zunpkd810 ((a)))
|
|
1081 #define __nds32__v_zunpkd810(a) \
|
|
1082 (__builtin_nds32_v_zunpkd810 ((a)))
|
|
1083 #define __nds32__zunpkd820(a) \
|
|
1084 (__builtin_nds32_zunpkd820 ((a)))
|
|
1085 #define __nds32__v_zunpkd820(a) \
|
|
1086 (__builtin_nds32_v_zunpkd820 ((a)))
|
|
1087 #define __nds32__zunpkd830(a) \
|
|
1088 (__builtin_nds32_zunpkd830 ((a)))
|
|
1089 #define __nds32__v_zunpkd830(a) \
|
|
1090 (__builtin_nds32_v_zunpkd830 ((a)))
|
|
1091 #define __nds32__zunpkd831(a) \
|
|
1092 (__builtin_nds32_zunpkd831 ((a)))
|
|
1093 #define __nds32__v_zunpkd831(a) \
|
|
1094 (__builtin_nds32_v_zunpkd831 ((a)))
|
|
1095
|
|
1096 #define __nds32__raddw(a, b) \
|
|
1097 (__builtin_nds32_raddw ((a), (b)))
|
|
1098 #define __nds32__uraddw(a, b) \
|
|
1099 (__builtin_nds32_uraddw ((a), (b)))
|
|
1100 #define __nds32__rsubw(a, b) \
|
|
1101 (__builtin_nds32_rsubw ((a), (b)))
|
|
1102 #define __nds32__ursubw(a, b) \
|
|
1103 (__builtin_nds32_ursubw ((a), (b)))
|
|
1104
|
|
1105 #define __nds32__sra_u(a, b) \
|
|
1106 (__builtin_nds32_sra_u ((a), (b)))
|
|
1107 #define __nds32__ksll(a, b) \
|
|
1108 (__builtin_nds32_ksll ((a), (b)))
|
|
1109 #define __nds32__pkbb16(a, b) \
|
|
1110 (__builtin_nds32_pkbb16 ((a), (b)))
|
|
1111 #define __nds32__v_pkbb16(a, b) \
|
|
1112 (__builtin_nds32_v_pkbb16 ((a), (b)))
|
|
1113 #define __nds32__pkbt16(a, b) \
|
|
1114 (__builtin_nds32_pkbt16 ((a), (b)))
|
|
1115 #define __nds32__v_pkbt16(a, b) \
|
|
1116 (__builtin_nds32_v_pkbt16 ((a), (b)))
|
|
1117 #define __nds32__pktb16(a, b) \
|
|
1118 (__builtin_nds32_pktb16 ((a), (b)))
|
|
1119 #define __nds32__v_pktb16(a, b) \
|
|
1120 (__builtin_nds32_v_pktb16 ((a), (b)))
|
|
1121 #define __nds32__pktt16(a, b) \
|
|
1122 (__builtin_nds32_pktt16 ((a), (b)))
|
|
1123 #define __nds32__v_pktt16(a, b) \
|
|
1124 (__builtin_nds32_v_pktt16 ((a), (b)))
|
|
1125
|
|
1126 #define __nds32__smmul(a, b) \
|
|
1127 (__builtin_nds32_smmul ((a), (b)))
|
|
1128 #define __nds32__smmul_u(a, b) \
|
|
1129 (__builtin_nds32_smmul_u ((a), (b)))
|
|
1130 #define __nds32__kmmac(r, a, b) \
|
|
1131 (__builtin_nds32_kmmac ((r), (a), (b)))
|
|
1132 #define __nds32__kmmac_u(r, a, b) \
|
|
1133 (__builtin_nds32_kmmac_u ((r), (a), (b)))
|
|
1134 #define __nds32__kmmsb(r, a, b) \
|
|
1135 (__builtin_nds32_kmmsb ((r), (a), (b)))
|
|
1136 #define __nds32__kmmsb_u(r, a, b) \
|
|
1137 (__builtin_nds32_kmmsb_u ((r), (a), (b)))
|
|
1138 #define __nds32__kwmmul(a, b) \
|
|
1139 (__builtin_nds32_kwmmul ((a), (b)))
|
|
1140 #define __nds32__kwmmul_u(a, b) \
|
|
1141 (__builtin_nds32_kwmmul_u ((a), (b)))
|
|
1142
|
|
1143 #define __nds32__smmwb(a, b) \
|
|
1144 (__builtin_nds32_smmwb ((a), (b)))
|
|
1145 #define __nds32__v_smmwb(a, b) \
|
|
1146 (__builtin_nds32_v_smmwb ((a), (b)))
|
|
1147 #define __nds32__smmwb_u(a, b) \
|
|
1148 (__builtin_nds32_smmwb_u ((a), (b)))
|
|
1149 #define __nds32__v_smmwb_u(a, b) \
|
|
1150 (__builtin_nds32_v_smmwb_u ((a), (b)))
|
|
1151 #define __nds32__smmwt(a, b) \
|
|
1152 (__builtin_nds32_smmwt ((a), (b)))
|
|
1153 #define __nds32__v_smmwt(a, b) \
|
|
1154 (__builtin_nds32_v_smmwt ((a), (b)))
|
|
1155 #define __nds32__smmwt_u(a, b) \
|
|
1156 (__builtin_nds32_smmwt_u ((a), (b)))
|
|
1157 #define __nds32__v_smmwt_u(a, b) \
|
|
1158 (__builtin_nds32_v_smmwt_u ((a), (b)))
|
|
1159 #define __nds32__kmmawb(r, a, b) \
|
|
1160 (__builtin_nds32_kmmawb ((r), (a), (b)))
|
|
1161 #define __nds32__v_kmmawb(r, a, b) \
|
|
1162 (__builtin_nds32_v_kmmawb ((r), (a), (b)))
|
|
1163 #define __nds32__kmmawb_u(r, a, b) \
|
|
1164 (__builtin_nds32_kmmawb_u ((r), (a), (b)))
|
|
1165 #define __nds32__v_kmmawb_u(r, a, b) \
|
|
1166 (__builtin_nds32_v_kmmawb_u ((r), (a), (b)))
|
|
1167 #define __nds32__kmmawt(r, a, b) \
|
|
1168 (__builtin_nds32_kmmawt ((r), (a), (b)))
|
|
1169 #define __nds32__v_kmmawt(r, a, b) \
|
|
1170 (__builtin_nds32_v_kmmawt ((r), (a), (b)))
|
|
1171 #define __nds32__kmmawt_u(r, a, b) \
|
|
1172 (__builtin_nds32_kmmawt_u ((r), (a), (b)))
|
|
1173 #define __nds32__v_kmmawt_u(r, a, b) \
|
|
1174 (__builtin_nds32_v_kmmawt_u ((r), (a), (b)))
|
|
1175
|
|
1176 #define __nds32__smbb(a, b) \
|
|
1177 (__builtin_nds32_smbb ((a), (b)))
|
|
1178 #define __nds32__v_smbb(a, b) \
|
|
1179 (__builtin_nds32_v_smbb ((a), (b)))
|
|
1180 #define __nds32__smbt(a, b) \
|
|
1181 (__builtin_nds32_smbt ((a), (b)))
|
|
1182 #define __nds32__v_smbt(a, b) \
|
|
1183 (__builtin_nds32_v_smbt ((a), (b)))
|
|
1184 #define __nds32__smtt(a, b) \
|
|
1185 (__builtin_nds32_smtt ((a), (b)))
|
|
1186 #define __nds32__v_smtt(a, b) \
|
|
1187 (__builtin_nds32_v_smtt ((a), (b)))
|
|
1188 #define __nds32__kmda(a, b) \
|
|
1189 (__builtin_nds32_kmda ((a), (b)))
|
|
1190 #define __nds32__v_kmda(a, b) \
|
|
1191 (__builtin_nds32_v_kmda ((a), (b)))
|
|
1192 #define __nds32__kmxda(a, b) \
|
|
1193 (__builtin_nds32_kmxda ((a), (b)))
|
|
1194 #define __nds32__v_kmxda(a, b) \
|
|
1195 (__builtin_nds32_v_kmxda ((a), (b)))
|
|
1196 #define __nds32__smds(a, b) \
|
|
1197 (__builtin_nds32_smds ((a), (b)))
|
|
1198 #define __nds32__v_smds(a, b) \
|
|
1199 (__builtin_nds32_v_smds ((a), (b)))
|
|
1200 #define __nds32__smdrs(a, b) \
|
|
1201 (__builtin_nds32_smdrs ((a), (b)))
|
|
1202 #define __nds32__v_smdrs(a, b) \
|
|
1203 (__builtin_nds32_v_smdrs ((a), (b)))
|
|
1204 #define __nds32__smxds(a, b) \
|
|
1205 (__builtin_nds32_smxds ((a), (b)))
|
|
1206 #define __nds32__v_smxds(a, b) \
|
|
1207 (__builtin_nds32_v_smxds ((a), (b)))
|
|
1208 #define __nds32__kmabb(r, a, b) \
|
|
1209 (__builtin_nds32_kmabb ((r), (a), (b)))
|
|
1210 #define __nds32__v_kmabb(r, a, b) \
|
|
1211 (__builtin_nds32_v_kmabb ((r), (a), (b)))
|
|
1212 #define __nds32__kmabt(r, a, b) \
|
|
1213 (__builtin_nds32_kmabt ((r), (a), (b)))
|
|
1214 #define __nds32__v_kmabt(r, a, b) \
|
|
1215 (__builtin_nds32_v_kmabt ((r), (a), (b)))
|
|
1216 #define __nds32__kmatt(r, a, b) \
|
|
1217 (__builtin_nds32_kmatt ((r), (a), (b)))
|
|
1218 #define __nds32__v_kmatt(r, a, b) \
|
|
1219 (__builtin_nds32_v_kmatt ((r), (a), (b)))
|
|
1220 #define __nds32__kmada(r, a, b) \
|
|
1221 (__builtin_nds32_kmada ((r), (a), (b)))
|
|
1222 #define __nds32__v_kmada(r, a, b) \
|
|
1223 (__builtin_nds32_v_kmada ((r), (a), (b)))
|
|
1224 #define __nds32__kmaxda(r, a, b) \
|
|
1225 (__builtin_nds32_kmaxda ((r), (a), (b)))
|
|
1226 #define __nds32__v_kmaxda(r, a, b) \
|
|
1227 (__builtin_nds32_v_kmaxda ((r), (a), (b)))
|
|
1228 #define __nds32__kmads(r, a, b) \
|
|
1229 (__builtin_nds32_kmads ((r), (a), (b)))
|
|
1230 #define __nds32__v_kmads(r, a, b) \
|
|
1231 (__builtin_nds32_v_kmads ((r), (a), (b)))
|
|
1232 #define __nds32__kmadrs(r, a, b) \
|
|
1233 (__builtin_nds32_kmadrs ((r), (a), (b)))
|
|
1234 #define __nds32__v_kmadrs(r, a, b) \
|
|
1235 (__builtin_nds32_v_kmadrs ((r), (a), (b)))
|
|
1236 #define __nds32__kmaxds(r, a, b) \
|
|
1237 (__builtin_nds32_kmaxds ((r), (a), (b)))
|
|
1238 #define __nds32__v_kmaxds(r, a, b) \
|
|
1239 (__builtin_nds32_v_kmaxds ((r), (a), (b)))
|
|
1240 #define __nds32__kmsda(r, a, b) \
|
|
1241 (__builtin_nds32_kmsda ((r), (a), (b)))
|
|
1242 #define __nds32__v_kmsda(r, a, b) \
|
|
1243 (__builtin_nds32_v_kmsda ((r), (a), (b)))
|
|
1244 #define __nds32__kmsxda(r, a, b) \
|
|
1245 (__builtin_nds32_kmsxda ((r), (a), (b)))
|
|
1246 #define __nds32__v_kmsxda(r, a, b) \
|
|
1247 (__builtin_nds32_v_kmsxda ((r), (a), (b)))
|
|
1248
|
|
1249 #define __nds32__smal(a, b) \
|
|
1250 (__builtin_nds32_smal ((a), (b)))
|
|
1251 #define __nds32__v_smal(a, b) \
|
|
1252 (__builtin_nds32_v_smal ((a), (b)))
|
|
1253
|
|
1254 #define __nds32__bitrev(a, b) \
|
|
1255 (__builtin_nds32_bitrev ((a), (b)))
|
|
1256 #define __nds32__wext(a, b) \
|
|
1257 (__builtin_nds32_wext ((a), (b)))
|
|
1258 #define __nds32__bpick(r, a, b) \
|
|
1259 (__builtin_nds32_bpick ((r), (a), (b)))
|
|
1260 #define __nds32__insb(r, a, b) \
|
|
1261 (__builtin_nds32_insb ((r), (a), (b)))
|
|
1262
|
|
1263 #define __nds32__sadd64(a, b) \
|
|
1264 (__builtin_nds32_sadd64 ((a), (b)))
|
|
1265 #define __nds32__uadd64(a, b) \
|
|
1266 (__builtin_nds32_uadd64 ((a), (b)))
|
|
1267 #define __nds32__radd64(a, b) \
|
|
1268 (__builtin_nds32_radd64 ((a), (b)))
|
|
1269 #define __nds32__uradd64(a, b) \
|
|
1270 (__builtin_nds32_uradd64 ((a), (b)))
|
|
1271 #define __nds32__kadd64(a, b) \
|
|
1272 (__builtin_nds32_kadd64 ((a), (b)))
|
|
1273 #define __nds32__ukadd64(a, b) \
|
|
1274 (__builtin_nds32_ukadd64 ((a), (b)))
|
|
1275 #define __nds32__ssub64(a, b) \
|
|
1276 (__builtin_nds32_ssub64 ((a), (b)))
|
|
1277 #define __nds32__usub64(a, b) \
|
|
1278 (__builtin_nds32_usub64 ((a), (b)))
|
|
1279 #define __nds32__rsub64(a, b) \
|
|
1280 (__builtin_nds32_rsub64 ((a), (b)))
|
|
1281 #define __nds32__ursub64(a, b) \
|
|
1282 (__builtin_nds32_ursub64 ((a), (b)))
|
|
1283 #define __nds32__ksub64(a, b) \
|
|
1284 (__builtin_nds32_ksub64 ((a), (b)))
|
|
1285 #define __nds32__uksub64(a, b) \
|
|
1286 (__builtin_nds32_uksub64 ((a), (b)))
|
|
1287
|
|
1288 #define __nds32__smar64(r, a, b) \
|
|
1289 (__builtin_nds32_smar64 ((r), (a), (b)))
|
|
1290 #define __nds32__smsr64(r, a, b) \
|
|
1291 (__builtin_nds32_smsr64 ((r), (a), (b)))
|
|
1292 #define __nds32__umar64(r, a, b) \
|
|
1293 (__builtin_nds32_umar64 ((r), (a), (b)))
|
|
1294 #define __nds32__umsr64(r, a, b) \
|
|
1295 (__builtin_nds32_umsr64 ((r), (a), (b)))
|
|
1296 #define __nds32__kmar64(r, a, b) \
|
|
1297 (__builtin_nds32_kmar64 ((r), (a), (b)))
|
|
1298 #define __nds32__kmsr64(r, a, b) \
|
|
1299 (__builtin_nds32_kmsr64 ((r), (a), (b)))
|
|
1300 #define __nds32__ukmar64(r, a, b) \
|
|
1301 (__builtin_nds32_ukmar64 ((r), (a), (b)))
|
|
1302 #define __nds32__ukmsr64(r, a, b) \
|
|
1303 (__builtin_nds32_ukmsr64 ((r), (a), (b)))
|
|
1304
|
|
1305 #define __nds32__smalbb(r, a, b) \
|
|
1306 (__builtin_nds32_smalbb ((r), (a), (b)))
|
|
1307 #define __nds32__v_smalbb(r, a, b) \
|
|
1308 (__builtin_nds32_v_smalbb ((r), (a), (b)))
|
|
1309 #define __nds32__smalbt(r, a, b) \
|
|
1310 (__builtin_nds32_smalbt ((r), (a), (b)))
|
|
1311 #define __nds32__v_smalbt(r, a, b) \
|
|
1312 (__builtin_nds32_v_smalbt ((r), (a), (b)))
|
|
1313 #define __nds32__smaltt(r, a, b) \
|
|
1314 (__builtin_nds32_smaltt ((r), (a), (b)))
|
|
1315 #define __nds32__v_smaltt(r, a, b) \
|
|
1316 (__builtin_nds32_v_smaltt ((r), (a), (b)))
|
|
1317 #define __nds32__smalda(r, a, b) \
|
|
1318 (__builtin_nds32_smalda ((r), (a), (b)))
|
|
1319 #define __nds32__v_smalda(r, a, b) \
|
|
1320 (__builtin_nds32_v_smalda ((r), (a), (b)))
|
|
1321 #define __nds32__smalxda(r, a, b) \
|
|
1322 (__builtin_nds32_smalxda ((r), (a), (b)))
|
|
1323 #define __nds32__v_smalxda(r, a, b) \
|
|
1324 (__builtin_nds32_v_smalxda ((r), (a), (b)))
|
|
1325 #define __nds32__smalds(r, a, b) \
|
|
1326 (__builtin_nds32_smalds ((r), (a), (b)))
|
|
1327 #define __nds32__v_smalds(r, a, b) \
|
|
1328 (__builtin_nds32_v_smalds ((r), (a), (b)))
|
|
1329 #define __nds32__smaldrs(r, a, b) \
|
|
1330 (__builtin_nds32_smaldrs ((r), (a), (b)))
|
|
1331 #define __nds32__v_smaldrs(r, a, b) \
|
|
1332 (__builtin_nds32_v_smaldrs ((r), (a), (b)))
|
|
1333 #define __nds32__smalxds(r, a, b) \
|
|
1334 (__builtin_nds32_smalxds ((r), (a), (b)))
|
|
1335 #define __nds32__v_smalxds(r, a, b) \
|
|
1336 (__builtin_nds32_v_smalxds ((r), (a), (b)))
|
|
1337 #define __nds32__smslda(r, a, b) \
|
|
1338 (__builtin_nds32_smslda ((r), (a), (b)))
|
|
1339 #define __nds32__v_smslda(r, a, b) \
|
|
1340 (__builtin_nds32_v_smslda ((r), (a), (b)))
|
|
1341 #define __nds32__smslxda(r, a, b) \
|
|
1342 (__builtin_nds32_smslxda ((r), (a), (b)))
|
|
1343 #define __nds32__v_smslxda(r, a, b) \
|
|
1344 (__builtin_nds32_v_smslxda ((r), (a), (b)))
|
|
1345
|
|
1346 #define __nds32__smul16(a, b) \
|
|
1347 (__builtin_nds32_smul16 ((a), (b)))
|
|
1348 #define __nds32__v_smul16(a, b) \
|
|
1349 (__builtin_nds32_v_smul16 ((a), (b)))
|
|
1350 #define __nds32__smulx16(a, b) \
|
|
1351 (__builtin_nds32_smulx16 ((a), (b)))
|
|
1352 #define __nds32__v_smulx16(a, b) \
|
|
1353 (__builtin_nds32_v_smulx16 ((a), (b)))
|
|
1354 #define __nds32__umul16(a, b) \
|
|
1355 (__builtin_nds32_umul16 ((a), (b)))
|
|
1356 #define __nds32__v_umul16(a, b) \
|
|
1357 (__builtin_nds32_v_umul16 ((a), (b)))
|
|
1358 #define __nds32__umulx16(a, b) \
|
|
1359 (__builtin_nds32_umulx16 ((a), (b)))
|
|
1360 #define __nds32__v_umulx16(a, b) \
|
|
1361 (__builtin_nds32_v_umulx16 ((a), (b)))
|
|
1362
|
|
1363 #define __nds32__uclip32(a, imm) \
|
|
1364 (__builtin_nds32_uclip32 ((a), (imm)))
|
|
1365 #define __nds32__sclip32(a, imm) \
|
|
1366 (__builtin_nds32_sclip32 ((a), (imm)))
|
|
1367 #define __nds32__kabs(a) \
|
|
1368 (__builtin_nds32_kabs ((a)))
|
|
1369
|
|
1370 #define __nds32__unaligned_feature() \
|
|
1371 (__builtin_nds32_unaligned_feature())
|
|
1372 #define __nds32__enable_unaligned() \
|
|
1373 (__builtin_nds32_enable_unaligned())
|
|
1374 #define __nds32__disable_unaligned() \
|
|
1375 (__builtin_nds32_disable_unaligned())
|
|
1376
|
|
1377 #define __nds32__get_unaligned_u16x2(a) \
|
|
1378 (__builtin_nds32_get_unaligned_u16x2 ((a)))
|
|
1379 #define __nds32__get_unaligned_s16x2(a) \
|
|
1380 (__builtin_nds32_get_unaligned_s16x2 ((a)))
|
|
1381 #define __nds32__get_unaligned_u8x4(a) \
|
|
1382 (__builtin_nds32_get_unaligned_u8x4 ((a)))
|
|
1383 #define __nds32__get_unaligned_s8x4(a) \
|
|
1384 (__builtin_nds32_get_unaligned_s8x4 ((a)))
|
|
1385
|
|
1386 #define __nds32__put_unaligned_u16x2(a, data) \
|
|
1387 (__builtin_nds32_put_unaligned_u16x2 ((a), (data)))
|
|
1388 #define __nds32__put_unaligned_s16x2(a, data) \
|
|
1389 (__builtin_nds32_put_unaligned_s16x2 ((a), (data)))
|
|
1390 #define __nds32__put_unaligned_u8x4(a, data) \
|
|
1391 (__builtin_nds32_put_unaligned_u8x4 ((a), (data)))
|
|
1392 #define __nds32__put_unaligned_s8x4(a, data) \
|
|
1393 (__builtin_nds32_put_unaligned_s8x4 ((a), (data)))
|
|
1394
|
|
1395 #define NDS32ATTR_SIGNATURE __attribute__((signature))
|
|
1396
|
111
|
1397 #endif /* nds32_intrinsic.h */
|