]> granicus.if.org Git - esp-idf/blob - components/esp32/include/xtensa/tie/xt_MAC16.h
Initial public version
[esp-idf] / components / esp32 / include / xtensa / tie / xt_MAC16.h
1 /* Definitions for the xt_MAC16 TIE package */
2
3 /*
4  * Customer ID=11657; Build=0x5fe96; Copyright (c) 2004-2010 by Tensilica Inc.  ALL RIGHTS RESERVED.
5  * These coded instructions, statements, and computer programs are the
6  * copyrighted works and confidential proprietary information of Tensilica Inc.
7  * They may not be modified, copied, reproduced, distributed, or disclosed to
8  * third parties in any manner, medium, or form, in whole or in part, without
9  * the prior written consent of Tensilica Inc.
10  */
11
12 /* Do not modify. This is automatically generated.*/
13
14 #ifndef _XTENSA_xt_MAC16_HEADER
15 #define _XTENSA_xt_MAC16_HEADER
16
17 #ifdef __XTENSA__
18 #ifdef __XCC__
19
20 #include <xtensa/tie/xt_core.h>
21 #include <xtensa/tie/xt_mul.h>
22
23 /*
24  * The following prototypes describe intrinsic functions
25  * corresponding to TIE instructions.  Some TIE instructions
26  * may produce multiple results (designated as "out" operands
27  * in the iclass section) or may have operands used as both
28  * inputs and outputs (designated as "inout").  However, the C
29  * and C++ languages do not provide syntax that can express
30  * the in/out/inout constraints of TIE intrinsics.
31  * Nevertheless, the compiler understands these constraints
32  * and will check that the intrinsic functions are used
33  * correctly.  To improve the readability of these prototypes,
34  * the "out" and "inout" parameters are marked accordingly
35  * with comments.
36  */
37
38 extern void _TIE_xt_MAC16_UMUL_AA_HH(unsigned ars, unsigned art);
39 extern void _TIE_xt_MAC16_UMUL_AA_LH(unsigned ars, unsigned art);
40 extern void _TIE_xt_MAC16_UMUL_AA_HL(unsigned ars, unsigned art);
41 extern void _TIE_xt_MAC16_UMUL_AA_LL(unsigned ars, unsigned art);
42 extern void _TIE_xt_MAC16_MUL_AA_HH(unsigned ars, unsigned art);
43 extern void _TIE_xt_MAC16_MUL_AA_LH(unsigned ars, unsigned art);
44 extern void _TIE_xt_MAC16_MUL_AA_HL(unsigned ars, unsigned art);
45 extern void _TIE_xt_MAC16_MUL_AA_LL(unsigned ars, unsigned art);
46 extern void _TIE_xt_MAC16_MUL_AD_HH(unsigned ars, immediate my);
47 extern void _TIE_xt_MAC16_MUL_AD_LH(unsigned ars, immediate my);
48 extern void _TIE_xt_MAC16_MUL_AD_HL(unsigned ars, immediate my);
49 extern void _TIE_xt_MAC16_MUL_AD_LL(unsigned ars, immediate my);
50 extern void _TIE_xt_MAC16_MUL_DA_HH(immediate mx, unsigned art);
51 extern void _TIE_xt_MAC16_MUL_DA_LH(immediate mx, unsigned art);
52 extern void _TIE_xt_MAC16_MUL_DA_HL(immediate mx, unsigned art);
53 extern void _TIE_xt_MAC16_MUL_DA_LL(immediate mx, unsigned art);
54 extern void _TIE_xt_MAC16_MUL_DD_HH(immediate mx, immediate my);
55 extern void _TIE_xt_MAC16_MUL_DD_LH(immediate mx, immediate my);
56 extern void _TIE_xt_MAC16_MUL_DD_HL(immediate mx, immediate my);
57 extern void _TIE_xt_MAC16_MUL_DD_LL(immediate mx, immediate my);
58 extern void _TIE_xt_MAC16_MULS_AA_HH(unsigned ars, unsigned art);
59 extern void _TIE_xt_MAC16_MULS_AA_LH(unsigned ars, unsigned art);
60 extern void _TIE_xt_MAC16_MULS_AA_HL(unsigned ars, unsigned art);
61 extern void _TIE_xt_MAC16_MULS_AA_LL(unsigned ars, unsigned art);
62 extern void _TIE_xt_MAC16_MULA_AA_HH(unsigned ars, unsigned art);
63 extern void _TIE_xt_MAC16_MULA_AA_LH(unsigned ars, unsigned art);
64 extern void _TIE_xt_MAC16_MULA_AA_HL(unsigned ars, unsigned art);
65 extern void _TIE_xt_MAC16_MULA_AA_LL(unsigned ars, unsigned art);
66 extern void _TIE_xt_MAC16_MULS_AD_HH(unsigned ars, immediate my);
67 extern void _TIE_xt_MAC16_MULS_AD_LH(unsigned ars, immediate my);
68 extern void _TIE_xt_MAC16_MULS_AD_HL(unsigned ars, immediate my);
69 extern void _TIE_xt_MAC16_MULS_AD_LL(unsigned ars, immediate my);
70 extern void _TIE_xt_MAC16_MULA_AD_HH(unsigned ars, immediate my);
71 extern void _TIE_xt_MAC16_MULA_AD_LH(unsigned ars, immediate my);
72 extern void _TIE_xt_MAC16_MULA_AD_HL(unsigned ars, immediate my);
73 extern void _TIE_xt_MAC16_MULA_AD_LL(unsigned ars, immediate my);
74 extern void _TIE_xt_MAC16_MULS_DA_HH(immediate mx, unsigned art);
75 extern void _TIE_xt_MAC16_MULS_DA_LH(immediate mx, unsigned art);
76 extern void _TIE_xt_MAC16_MULS_DA_HL(immediate mx, unsigned art);
77 extern void _TIE_xt_MAC16_MULS_DA_LL(immediate mx, unsigned art);
78 extern void _TIE_xt_MAC16_MULA_DA_HH(immediate mx, unsigned art);
79 extern void _TIE_xt_MAC16_MULA_DA_LH(immediate mx, unsigned art);
80 extern void _TIE_xt_MAC16_MULA_DA_HL(immediate mx, unsigned art);
81 extern void _TIE_xt_MAC16_MULA_DA_LL(immediate mx, unsigned art);
82 extern void _TIE_xt_MAC16_MULS_DD_HH(immediate mx, immediate my);
83 extern void _TIE_xt_MAC16_MULS_DD_LH(immediate mx, immediate my);
84 extern void _TIE_xt_MAC16_MULS_DD_HL(immediate mx, immediate my);
85 extern void _TIE_xt_MAC16_MULS_DD_LL(immediate mx, immediate my);
86 extern void _TIE_xt_MAC16_MULA_DD_HH(immediate mx, immediate my);
87 extern void _TIE_xt_MAC16_MULA_DD_LH(immediate mx, immediate my);
88 extern void _TIE_xt_MAC16_MULA_DD_HL(immediate mx, immediate my);
89 extern void _TIE_xt_MAC16_MULA_DD_LL(immediate mx, immediate my);
90 extern unsigned _TIE_xt_MAC16_RSR_M0(void);
91 extern void _TIE_xt_MAC16_WSR_M0(unsigned art);
92 extern void _TIE_xt_MAC16_XSR_M0(unsigned art /*inout*/);
93 extern unsigned _TIE_xt_MAC16_RSR_M1(void);
94 extern void _TIE_xt_MAC16_WSR_M1(unsigned art);
95 extern void _TIE_xt_MAC16_XSR_M1(unsigned art /*inout*/);
96 extern unsigned _TIE_xt_MAC16_RSR_M2(void);
97 extern void _TIE_xt_MAC16_WSR_M2(unsigned art);
98 extern void _TIE_xt_MAC16_XSR_M2(unsigned art /*inout*/);
99 extern unsigned _TIE_xt_MAC16_RSR_M3(void);
100 extern void _TIE_xt_MAC16_WSR_M3(unsigned art);
101 extern void _TIE_xt_MAC16_XSR_M3(unsigned art /*inout*/);
102 extern unsigned _TIE_xt_MAC16_RSR_ACCLO(void);
103 extern void _TIE_xt_MAC16_WSR_ACCLO(unsigned art);
104 extern void _TIE_xt_MAC16_XSR_ACCLO(unsigned art /*inout*/);
105 extern unsigned _TIE_xt_MAC16_RSR_ACCHI(void);
106 extern void _TIE_xt_MAC16_WSR_ACCHI(unsigned art);
107 extern void _TIE_xt_MAC16_XSR_ACCHI(unsigned art /*inout*/);
108 extern void _TIE_xt_MAC16_MULA_DA_LL_LDDEC(immediate w, const short * s /*inout*/, immediate x, int t);
109 extern void _TIE_xt_MAC16_MULA_DA_LL_LDINC(immediate w, const short * s /*inout*/, immediate x, int t);
110 extern void _TIE_xt_MAC16_MULA_DA_HL_LDDEC(immediate w, const short * s /*inout*/, immediate x, int t);
111 extern void _TIE_xt_MAC16_MULA_DA_HL_LDINC(immediate w, const short * s /*inout*/, immediate x, int t);
112 extern void _TIE_xt_MAC16_MULA_DA_LH_LDDEC(immediate w, const short * s /*inout*/, immediate x, int t);
113 extern void _TIE_xt_MAC16_MULA_DA_LH_LDINC(immediate w, const short * s /*inout*/, immediate x, int t);
114 extern void _TIE_xt_MAC16_MULA_DA_HH_LDDEC(immediate w, const short * s /*inout*/, immediate x, int t);
115 extern void _TIE_xt_MAC16_MULA_DA_HH_LDINC(immediate w, const short * s /*inout*/, immediate x, int t);
116 extern void _TIE_xt_MAC16_MULA_DD_LL_LDDEC(immediate w, const short * s /*inout*/, immediate x, immediate y);
117 extern void _TIE_xt_MAC16_MULA_DD_LL_LDINC(immediate w, const short * s /*inout*/, immediate x, immediate y);
118 extern void _TIE_xt_MAC16_MULA_DD_HL_LDDEC(immediate w, const short * s /*inout*/, immediate x, immediate y);
119 extern void _TIE_xt_MAC16_MULA_DD_HL_LDINC(immediate w, const short * s /*inout*/, immediate x, immediate y);
120 extern void _TIE_xt_MAC16_MULA_DD_LH_LDDEC(immediate w, const short * s /*inout*/, immediate x, immediate y);
121 extern void _TIE_xt_MAC16_MULA_DD_LH_LDINC(immediate w, const short * s /*inout*/, immediate x, immediate y);
122 extern void _TIE_xt_MAC16_MULA_DD_HH_LDDEC(immediate w, const short * s /*inout*/, immediate x, immediate y);
123 extern void _TIE_xt_MAC16_MULA_DD_HH_LDINC(immediate w, const short * s /*inout*/, immediate x, immediate y);
124 extern void _TIE_xt_MAC16_LDDEC(immediate w, const short * p /*inout*/);
125 extern void _TIE_xt_MAC16_ULDDEC(immediate w, const unsigned short * p /*inout*/);
126 extern void _TIE_xt_MAC16_SLDDEC(immediate w, const short * p /*inout*/);
127 extern void _TIE_xt_MAC16_LDINC(immediate w, const short * p /*inout*/);
128 extern void _TIE_xt_MAC16_ULDINC(immediate w, const unsigned short * p /*inout*/);
129 extern void _TIE_xt_MAC16_SLDINC(immediate w, const short * p /*inout*/);
130 extern int _TIE_xt_MAC16_RSR16(void);
131 extern void _TIE_xt_MAC16_WSR16(int t);
132 extern void _TIE_xt_MAC16_XSR16(int t /*inout*/);
133 extern int _TIE_xt_MAC16_RSR17(void);
134 extern void _TIE_xt_MAC16_WSR17(int t);
135 extern void _TIE_xt_MAC16_XSR17(int t /*inout*/);
136 #define XT_UMUL_AA_HH _TIE_xt_MAC16_UMUL_AA_HH
137 #define XT_UMUL_AA_LH _TIE_xt_MAC16_UMUL_AA_LH
138 #define XT_UMUL_AA_HL _TIE_xt_MAC16_UMUL_AA_HL
139 #define XT_UMUL_AA_LL _TIE_xt_MAC16_UMUL_AA_LL
140 #define XT_MUL_AA_HH _TIE_xt_MAC16_MUL_AA_HH
141 #define XT_MUL_AA_LH _TIE_xt_MAC16_MUL_AA_LH
142 #define XT_MUL_AA_HL _TIE_xt_MAC16_MUL_AA_HL
143 #define XT_MUL_AA_LL _TIE_xt_MAC16_MUL_AA_LL
144 #define XT_MUL_AD_HH _TIE_xt_MAC16_MUL_AD_HH
145 #define XT_MUL_AD_LH _TIE_xt_MAC16_MUL_AD_LH
146 #define XT_MUL_AD_HL _TIE_xt_MAC16_MUL_AD_HL
147 #define XT_MUL_AD_LL _TIE_xt_MAC16_MUL_AD_LL
148 #define XT_MUL_DA_HH _TIE_xt_MAC16_MUL_DA_HH
149 #define XT_MUL_DA_LH _TIE_xt_MAC16_MUL_DA_LH
150 #define XT_MUL_DA_HL _TIE_xt_MAC16_MUL_DA_HL
151 #define XT_MUL_DA_LL _TIE_xt_MAC16_MUL_DA_LL
152 #define XT_MUL_DD_HH _TIE_xt_MAC16_MUL_DD_HH
153 #define XT_MUL_DD_LH _TIE_xt_MAC16_MUL_DD_LH
154 #define XT_MUL_DD_HL _TIE_xt_MAC16_MUL_DD_HL
155 #define XT_MUL_DD_LL _TIE_xt_MAC16_MUL_DD_LL
156 #define XT_MULS_AA_HH _TIE_xt_MAC16_MULS_AA_HH
157 #define XT_MULS_AA_LH _TIE_xt_MAC16_MULS_AA_LH
158 #define XT_MULS_AA_HL _TIE_xt_MAC16_MULS_AA_HL
159 #define XT_MULS_AA_LL _TIE_xt_MAC16_MULS_AA_LL
160 #define XT_MULA_AA_HH _TIE_xt_MAC16_MULA_AA_HH
161 #define XT_MULA_AA_LH _TIE_xt_MAC16_MULA_AA_LH
162 #define XT_MULA_AA_HL _TIE_xt_MAC16_MULA_AA_HL
163 #define XT_MULA_AA_LL _TIE_xt_MAC16_MULA_AA_LL
164 #define XT_MULS_AD_HH _TIE_xt_MAC16_MULS_AD_HH
165 #define XT_MULS_AD_LH _TIE_xt_MAC16_MULS_AD_LH
166 #define XT_MULS_AD_HL _TIE_xt_MAC16_MULS_AD_HL
167 #define XT_MULS_AD_LL _TIE_xt_MAC16_MULS_AD_LL
168 #define XT_MULA_AD_HH _TIE_xt_MAC16_MULA_AD_HH
169 #define XT_MULA_AD_LH _TIE_xt_MAC16_MULA_AD_LH
170 #define XT_MULA_AD_HL _TIE_xt_MAC16_MULA_AD_HL
171 #define XT_MULA_AD_LL _TIE_xt_MAC16_MULA_AD_LL
172 #define XT_MULS_DA_HH _TIE_xt_MAC16_MULS_DA_HH
173 #define XT_MULS_DA_LH _TIE_xt_MAC16_MULS_DA_LH
174 #define XT_MULS_DA_HL _TIE_xt_MAC16_MULS_DA_HL
175 #define XT_MULS_DA_LL _TIE_xt_MAC16_MULS_DA_LL
176 #define XT_MULA_DA_HH _TIE_xt_MAC16_MULA_DA_HH
177 #define XT_MULA_DA_LH _TIE_xt_MAC16_MULA_DA_LH
178 #define XT_MULA_DA_HL _TIE_xt_MAC16_MULA_DA_HL
179 #define XT_MULA_DA_LL _TIE_xt_MAC16_MULA_DA_LL
180 #define XT_MULS_DD_HH _TIE_xt_MAC16_MULS_DD_HH
181 #define XT_MULS_DD_LH _TIE_xt_MAC16_MULS_DD_LH
182 #define XT_MULS_DD_HL _TIE_xt_MAC16_MULS_DD_HL
183 #define XT_MULS_DD_LL _TIE_xt_MAC16_MULS_DD_LL
184 #define XT_MULA_DD_HH _TIE_xt_MAC16_MULA_DD_HH
185 #define XT_MULA_DD_LH _TIE_xt_MAC16_MULA_DD_LH
186 #define XT_MULA_DD_HL _TIE_xt_MAC16_MULA_DD_HL
187 #define XT_MULA_DD_LL _TIE_xt_MAC16_MULA_DD_LL
188 #define XT_RSR_M0 _TIE_xt_MAC16_RSR_M0
189 #define XT_WSR_M0 _TIE_xt_MAC16_WSR_M0
190 #define XT_XSR_M0 _TIE_xt_MAC16_XSR_M0
191 #define XT_RSR_M1 _TIE_xt_MAC16_RSR_M1
192 #define XT_WSR_M1 _TIE_xt_MAC16_WSR_M1
193 #define XT_XSR_M1 _TIE_xt_MAC16_XSR_M1
194 #define XT_RSR_M2 _TIE_xt_MAC16_RSR_M2
195 #define XT_WSR_M2 _TIE_xt_MAC16_WSR_M2
196 #define XT_XSR_M2 _TIE_xt_MAC16_XSR_M2
197 #define XT_RSR_M3 _TIE_xt_MAC16_RSR_M3
198 #define XT_WSR_M3 _TIE_xt_MAC16_WSR_M3
199 #define XT_XSR_M3 _TIE_xt_MAC16_XSR_M3
200 #define XT_RSR_ACCLO _TIE_xt_MAC16_RSR_ACCLO
201 #define XT_WSR_ACCLO _TIE_xt_MAC16_WSR_ACCLO
202 #define XT_XSR_ACCLO _TIE_xt_MAC16_XSR_ACCLO
203 #define XT_RSR_ACCHI _TIE_xt_MAC16_RSR_ACCHI
204 #define XT_WSR_ACCHI _TIE_xt_MAC16_WSR_ACCHI
205 #define XT_XSR_ACCHI _TIE_xt_MAC16_XSR_ACCHI
206 #define XT_MULA_DA_LL_LDDEC _TIE_xt_MAC16_MULA_DA_LL_LDDEC
207 #define XT_MULA_DA_LL_LDINC _TIE_xt_MAC16_MULA_DA_LL_LDINC
208 #define XT_MULA_DA_HL_LDDEC _TIE_xt_MAC16_MULA_DA_HL_LDDEC
209 #define XT_MULA_DA_HL_LDINC _TIE_xt_MAC16_MULA_DA_HL_LDINC
210 #define XT_MULA_DA_LH_LDDEC _TIE_xt_MAC16_MULA_DA_LH_LDDEC
211 #define XT_MULA_DA_LH_LDINC _TIE_xt_MAC16_MULA_DA_LH_LDINC
212 #define XT_MULA_DA_HH_LDDEC _TIE_xt_MAC16_MULA_DA_HH_LDDEC
213 #define XT_MULA_DA_HH_LDINC _TIE_xt_MAC16_MULA_DA_HH_LDINC
214 #define XT_MULA_DD_LL_LDDEC _TIE_xt_MAC16_MULA_DD_LL_LDDEC
215 #define XT_MULA_DD_LL_LDINC _TIE_xt_MAC16_MULA_DD_LL_LDINC
216 #define XT_MULA_DD_HL_LDDEC _TIE_xt_MAC16_MULA_DD_HL_LDDEC
217 #define XT_MULA_DD_HL_LDINC _TIE_xt_MAC16_MULA_DD_HL_LDINC
218 #define XT_MULA_DD_LH_LDDEC _TIE_xt_MAC16_MULA_DD_LH_LDDEC
219 #define XT_MULA_DD_LH_LDINC _TIE_xt_MAC16_MULA_DD_LH_LDINC
220 #define XT_MULA_DD_HH_LDDEC _TIE_xt_MAC16_MULA_DD_HH_LDDEC
221 #define XT_MULA_DD_HH_LDINC _TIE_xt_MAC16_MULA_DD_HH_LDINC
222 #define XT_LDDEC _TIE_xt_MAC16_LDDEC
223 #define XT_ULDDEC _TIE_xt_MAC16_ULDDEC
224 #define XT_SLDDEC _TIE_xt_MAC16_SLDDEC
225 #define XT_LDINC _TIE_xt_MAC16_LDINC
226 #define XT_ULDINC _TIE_xt_MAC16_ULDINC
227 #define XT_SLDINC _TIE_xt_MAC16_SLDINC
228 #define XT_RSR16 _TIE_xt_MAC16_RSR16
229 #define XT_WSR16 _TIE_xt_MAC16_WSR16
230 #define XT_XSR16 _TIE_xt_MAC16_XSR16
231 #define XT_RSR17 _TIE_xt_MAC16_RSR17
232 #define XT_WSR17 _TIE_xt_MAC16_WSR17
233 #define XT_XSR17 _TIE_xt_MAC16_XSR17
234
235 #endif /* __XCC__ */
236
237 #endif /* __XTENSA__ */
238
239 #endif /* !_XTENSA_xt_MAC16_HEADER */