add place-holder directory for the a3000 wd533c93 scsi controller implementation.
[AROS.git] / arch / m68k-amiga / hidd / p96gfx / p96call.h
blob093383a52d1477a212ed0145955ea09591e412f3
1 /* AUTOGENERATED by p96call.c */
2 /* If you can get this to work for anything other */
3 /* than gcc-4.5.1 m68k-elf, it would be surprising. */
5 #ifndef P96CALL_H
6 #define P96CALL_H
8 /* Call a P96 function */
10 #define P96_LC0(t,vector,id) \
11 ({ APTR _n = (vector);\
12 register volatile ULONG _ret asm("%d0"); \
13 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
14 (t)_ret; \
17 #define P96_LC1(t,vector,id,a1) \
18 ({ APTR _n = (vector);\
19 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
20 register volatile ULONG _ret asm("%d0"); \
21 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
22 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
23 __AROS_LTA(a1) = _arg1; } \
24 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
25 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc1_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc1_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
26 , "r" (__AROS_LTA(a1)) \
27 ); }\
28 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG))) {\
29 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc1_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc1_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
30 , "r" (__AROS_LTA(a1)) \
31 ); }\
32 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
33 (t)_ret; \
36 #define P96_LC2(t,vector,id,a1,a2) \
37 ({ APTR _n = (vector);\
38 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
39 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
40 register volatile ULONG _ret asm("%d0"); \
41 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
42 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
43 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
44 __AROS_LTA(a1) = _arg1; } \
45 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
46 __AROS_LTA(a2) = _arg2; } \
47 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
48 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc2_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc2_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
49 , "r" (__AROS_LTA(a1)) \
50 , "r" (__AROS_LTA(a2)) \
51 ); }\
52 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
53 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc2_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc2_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
54 , "r" (__AROS_LTA(a1)) \
55 , "r" (__AROS_LTA(a2)) \
56 ); }\
57 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG))) {\
58 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc2_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc2_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
59 , "r" (__AROS_LTA(a1)) \
60 , "r" (__AROS_LTA(a2)) \
61 ); }\
62 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
63 (t)_ret; \
66 #define P96_LC3(t,vector,id,a1,a2,a3) \
67 ({ APTR _n = (vector);\
68 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
69 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
70 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
71 register volatile ULONG _ret asm("%d0"); \
72 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
73 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
74 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
75 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
76 __AROS_LTA(a1) = _arg1; } \
77 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
78 __AROS_LTA(a2) = _arg2; } \
79 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
80 __AROS_LTA(a3) = _arg3; } \
81 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
82 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc3_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc3_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
83 , "r" (__AROS_LTA(a1)) \
84 , "r" (__AROS_LTA(a2)) \
85 , "r" (__AROS_LTA(a3)) \
86 ); }\
87 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
88 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc3_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc3_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
89 , "r" (__AROS_LTA(a1)) \
90 , "r" (__AROS_LTA(a2)) \
91 , "r" (__AROS_LTA(a3)) \
92 ); }\
93 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
94 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc3_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc3_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
95 , "r" (__AROS_LTA(a1)) \
96 , "r" (__AROS_LTA(a2)) \
97 , "r" (__AROS_LTA(a3)) \
98 ); }\
99 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG))) {\
100 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc3_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc3_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
101 , "r" (__AROS_LTA(a1)) \
102 , "r" (__AROS_LTA(a2)) \
103 , "r" (__AROS_LTA(a3)) \
104 ); }\
105 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
106 (t)_ret; \
109 #define P96_LC4(t,vector,id,a1,a2,a3,a4) \
110 ({ APTR _n = (vector);\
111 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
112 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
113 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
114 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
115 register volatile ULONG _ret asm("%d0"); \
116 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
117 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
118 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
119 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
120 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
121 __AROS_LTA(a1) = _arg1; } \
122 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
123 __AROS_LTA(a2) = _arg2; } \
124 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
125 __AROS_LTA(a3) = _arg3; } \
126 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
127 __AROS_LTA(a4) = _arg4; } \
128 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
129 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc4_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc4_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
130 , "r" (__AROS_LTA(a1)) \
131 , "r" (__AROS_LTA(a2)) \
132 , "r" (__AROS_LTA(a3)) \
133 , "r" (__AROS_LTA(a4)) \
134 ); }\
135 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
136 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc4_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc4_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
137 , "r" (__AROS_LTA(a1)) \
138 , "r" (__AROS_LTA(a2)) \
139 , "r" (__AROS_LTA(a3)) \
140 , "r" (__AROS_LTA(a4)) \
141 ); }\
142 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
143 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc4_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc4_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
144 , "r" (__AROS_LTA(a1)) \
145 , "r" (__AROS_LTA(a2)) \
146 , "r" (__AROS_LTA(a3)) \
147 , "r" (__AROS_LTA(a4)) \
148 ); }\
149 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
150 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc4_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc4_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
151 , "r" (__AROS_LTA(a1)) \
152 , "r" (__AROS_LTA(a2)) \
153 , "r" (__AROS_LTA(a3)) \
154 , "r" (__AROS_LTA(a4)) \
155 ); }\
156 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG))) {\
157 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc4_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc4_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
158 , "r" (__AROS_LTA(a1)) \
159 , "r" (__AROS_LTA(a2)) \
160 , "r" (__AROS_LTA(a3)) \
161 , "r" (__AROS_LTA(a4)) \
162 ); }\
163 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
164 (t)_ret; \
167 #define P96_LC5(t,vector,id,a1,a2,a3,a4,a5) \
168 ({ APTR _n = (vector);\
169 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
170 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
171 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
172 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
173 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
174 register volatile ULONG _ret asm("%d0"); \
175 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
176 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
177 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
178 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
179 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
180 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
181 __AROS_LTA(a1) = _arg1; } \
182 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
183 __AROS_LTA(a2) = _arg2; } \
184 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
185 __AROS_LTA(a3) = _arg3; } \
186 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
187 __AROS_LTA(a4) = _arg4; } \
188 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
189 __AROS_LTA(a5) = _arg5; } \
190 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
191 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc5_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc5_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
192 , "r" (__AROS_LTA(a1)) \
193 , "r" (__AROS_LTA(a2)) \
194 , "r" (__AROS_LTA(a3)) \
195 , "r" (__AROS_LTA(a4)) \
196 , "r" (__AROS_LTA(a5)) \
197 ); }\
198 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
199 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc5_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc5_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
200 , "r" (__AROS_LTA(a1)) \
201 , "r" (__AROS_LTA(a2)) \
202 , "r" (__AROS_LTA(a3)) \
203 , "r" (__AROS_LTA(a4)) \
204 , "r" (__AROS_LTA(a5)) \
205 ); }\
206 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
207 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc5_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc5_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
208 , "r" (__AROS_LTA(a1)) \
209 , "r" (__AROS_LTA(a2)) \
210 , "r" (__AROS_LTA(a3)) \
211 , "r" (__AROS_LTA(a4)) \
212 , "r" (__AROS_LTA(a5)) \
213 ); }\
214 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
215 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc5_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc5_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
216 , "r" (__AROS_LTA(a1)) \
217 , "r" (__AROS_LTA(a2)) \
218 , "r" (__AROS_LTA(a3)) \
219 , "r" (__AROS_LTA(a4)) \
220 , "r" (__AROS_LTA(a5)) \
221 ); }\
222 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
223 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc5_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc5_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
224 , "r" (__AROS_LTA(a1)) \
225 , "r" (__AROS_LTA(a2)) \
226 , "r" (__AROS_LTA(a3)) \
227 , "r" (__AROS_LTA(a4)) \
228 , "r" (__AROS_LTA(a5)) \
229 ); }\
230 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG))) {\
231 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc5_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc5_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
232 , "r" (__AROS_LTA(a1)) \
233 , "r" (__AROS_LTA(a2)) \
234 , "r" (__AROS_LTA(a3)) \
235 , "r" (__AROS_LTA(a4)) \
236 , "r" (__AROS_LTA(a5)) \
237 ); }\
238 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
239 (t)_ret; \
242 #define P96_LC6(t,vector,id,a1,a2,a3,a4,a5,a6) \
243 ({ APTR _n = (vector);\
244 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
245 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
246 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
247 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
248 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
249 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
250 register volatile ULONG _ret asm("%d0"); \
251 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
252 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
253 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
254 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
255 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
256 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
257 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
258 __AROS_LTA(a1) = _arg1; } \
259 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
260 __AROS_LTA(a2) = _arg2; } \
261 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
262 __AROS_LTA(a3) = _arg3; } \
263 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
264 __AROS_LTA(a4) = _arg4; } \
265 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
266 __AROS_LTA(a5) = _arg5; } \
267 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
268 __AROS_LTA(a6) = _arg6; } \
269 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
270 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
271 , "r" (__AROS_LTA(a1)) \
272 , "r" (__AROS_LTA(a2)) \
273 , "r" (__AROS_LTA(a3)) \
274 , "r" (__AROS_LTA(a4)) \
275 , "r" (__AROS_LTA(a5)) \
276 , "r" (__AROS_LTA(a6)) \
277 ); }\
278 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
279 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
280 , "r" (__AROS_LTA(a1)) \
281 , "r" (__AROS_LTA(a2)) \
282 , "r" (__AROS_LTA(a3)) \
283 , "r" (__AROS_LTA(a4)) \
284 , "r" (__AROS_LTA(a5)) \
285 , "r" (__AROS_LTA(a6)) \
286 ); }\
287 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
288 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
289 , "r" (__AROS_LTA(a1)) \
290 , "r" (__AROS_LTA(a2)) \
291 , "r" (__AROS_LTA(a3)) \
292 , "r" (__AROS_LTA(a4)) \
293 , "r" (__AROS_LTA(a5)) \
294 , "r" (__AROS_LTA(a6)) \
295 ); }\
296 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
297 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
298 , "r" (__AROS_LTA(a1)) \
299 , "r" (__AROS_LTA(a2)) \
300 , "r" (__AROS_LTA(a3)) \
301 , "r" (__AROS_LTA(a4)) \
302 , "r" (__AROS_LTA(a5)) \
303 , "r" (__AROS_LTA(a6)) \
304 ); }\
305 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
306 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
307 , "r" (__AROS_LTA(a1)) \
308 , "r" (__AROS_LTA(a2)) \
309 , "r" (__AROS_LTA(a3)) \
310 , "r" (__AROS_LTA(a4)) \
311 , "r" (__AROS_LTA(a5)) \
312 , "r" (__AROS_LTA(a6)) \
313 ); }\
314 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
315 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
316 , "r" (__AROS_LTA(a1)) \
317 , "r" (__AROS_LTA(a2)) \
318 , "r" (__AROS_LTA(a3)) \
319 , "r" (__AROS_LTA(a4)) \
320 , "r" (__AROS_LTA(a5)) \
321 , "r" (__AROS_LTA(a6)) \
322 ); }\
323 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG))) {\
324 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc6_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc6_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
325 , "r" (__AROS_LTA(a1)) \
326 , "r" (__AROS_LTA(a2)) \
327 , "r" (__AROS_LTA(a3)) \
328 , "r" (__AROS_LTA(a4)) \
329 , "r" (__AROS_LTA(a5)) \
330 , "r" (__AROS_LTA(a6)) \
331 ); }\
332 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
333 (t)_ret; \
336 #define P96_LC7(t,vector,id,a1,a2,a3,a4,a5,a6,a7) \
337 ({ APTR _n = (vector);\
338 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
339 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
340 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
341 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
342 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
343 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
344 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
345 register volatile ULONG _ret asm("%d0"); \
346 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
347 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
348 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
349 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
350 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
351 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
352 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
353 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
354 __AROS_LTA(a1) = _arg1; } \
355 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
356 __AROS_LTA(a2) = _arg2; } \
357 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
358 __AROS_LTA(a3) = _arg3; } \
359 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
360 __AROS_LTA(a4) = _arg4; } \
361 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
362 __AROS_LTA(a5) = _arg5; } \
363 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
364 __AROS_LTA(a6) = _arg6; } \
365 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
366 __AROS_LTA(a7) = _arg7; } \
367 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
368 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
369 , "r" (__AROS_LTA(a1)) \
370 , "r" (__AROS_LTA(a2)) \
371 , "r" (__AROS_LTA(a3)) \
372 , "r" (__AROS_LTA(a4)) \
373 , "r" (__AROS_LTA(a5)) \
374 , "r" (__AROS_LTA(a6)) \
375 , "r" (__AROS_LTA(a7)) \
376 ); }\
377 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
378 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
379 , "r" (__AROS_LTA(a1)) \
380 , "r" (__AROS_LTA(a2)) \
381 , "r" (__AROS_LTA(a3)) \
382 , "r" (__AROS_LTA(a4)) \
383 , "r" (__AROS_LTA(a5)) \
384 , "r" (__AROS_LTA(a6)) \
385 , "r" (__AROS_LTA(a7)) \
386 ); }\
387 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
388 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
389 , "r" (__AROS_LTA(a1)) \
390 , "r" (__AROS_LTA(a2)) \
391 , "r" (__AROS_LTA(a3)) \
392 , "r" (__AROS_LTA(a4)) \
393 , "r" (__AROS_LTA(a5)) \
394 , "r" (__AROS_LTA(a6)) \
395 , "r" (__AROS_LTA(a7)) \
396 ); }\
397 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
398 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
399 , "r" (__AROS_LTA(a1)) \
400 , "r" (__AROS_LTA(a2)) \
401 , "r" (__AROS_LTA(a3)) \
402 , "r" (__AROS_LTA(a4)) \
403 , "r" (__AROS_LTA(a5)) \
404 , "r" (__AROS_LTA(a6)) \
405 , "r" (__AROS_LTA(a7)) \
406 ); }\
407 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
408 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
409 , "r" (__AROS_LTA(a1)) \
410 , "r" (__AROS_LTA(a2)) \
411 , "r" (__AROS_LTA(a3)) \
412 , "r" (__AROS_LTA(a4)) \
413 , "r" (__AROS_LTA(a5)) \
414 , "r" (__AROS_LTA(a6)) \
415 , "r" (__AROS_LTA(a7)) \
416 ); }\
417 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
418 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
419 , "r" (__AROS_LTA(a1)) \
420 , "r" (__AROS_LTA(a2)) \
421 , "r" (__AROS_LTA(a3)) \
422 , "r" (__AROS_LTA(a4)) \
423 , "r" (__AROS_LTA(a5)) \
424 , "r" (__AROS_LTA(a6)) \
425 , "r" (__AROS_LTA(a7)) \
426 ); }\
427 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
428 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
429 , "r" (__AROS_LTA(a1)) \
430 , "r" (__AROS_LTA(a2)) \
431 , "r" (__AROS_LTA(a3)) \
432 , "r" (__AROS_LTA(a4)) \
433 , "r" (__AROS_LTA(a5)) \
434 , "r" (__AROS_LTA(a6)) \
435 , "r" (__AROS_LTA(a7)) \
436 ); }\
437 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG))) {\
438 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc7_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc7_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
439 , "r" (__AROS_LTA(a1)) \
440 , "r" (__AROS_LTA(a2)) \
441 , "r" (__AROS_LTA(a3)) \
442 , "r" (__AROS_LTA(a4)) \
443 , "r" (__AROS_LTA(a5)) \
444 , "r" (__AROS_LTA(a6)) \
445 , "r" (__AROS_LTA(a7)) \
446 ); }\
447 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
448 (t)_ret; \
451 #define P96_LC8(t,vector,id,a1,a2,a3,a4,a5,a6,a7,a8) \
452 ({ APTR _n = (vector);\
453 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
454 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
455 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
456 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
457 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
458 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
459 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
460 ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
461 register volatile ULONG _ret asm("%d0"); \
462 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
463 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
464 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
465 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
466 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
467 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
468 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
469 register volatile ULONG __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
470 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
471 __AROS_LTA(a1) = _arg1; } \
472 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
473 __AROS_LTA(a2) = _arg2; } \
474 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
475 __AROS_LTA(a3) = _arg3; } \
476 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
477 __AROS_LTA(a4) = _arg4; } \
478 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
479 __AROS_LTA(a5) = _arg5; } \
480 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
481 __AROS_LTA(a6) = _arg6; } \
482 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
483 __AROS_LTA(a7) = _arg7; } \
484 if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
485 __AROS_LTA(a8) = _arg8; } \
486 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
487 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
488 , "r" (__AROS_LTA(a1)) \
489 , "r" (__AROS_LTA(a2)) \
490 , "r" (__AROS_LTA(a3)) \
491 , "r" (__AROS_LTA(a4)) \
492 , "r" (__AROS_LTA(a5)) \
493 , "r" (__AROS_LTA(a6)) \
494 , "r" (__AROS_LTA(a7)) \
495 , "r" (__AROS_LTA(a8)) \
496 ); }\
497 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
498 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
499 , "r" (__AROS_LTA(a1)) \
500 , "r" (__AROS_LTA(a2)) \
501 , "r" (__AROS_LTA(a3)) \
502 , "r" (__AROS_LTA(a4)) \
503 , "r" (__AROS_LTA(a5)) \
504 , "r" (__AROS_LTA(a6)) \
505 , "r" (__AROS_LTA(a7)) \
506 , "r" (__AROS_LTA(a8)) \
507 ); }\
508 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
509 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
510 , "r" (__AROS_LTA(a1)) \
511 , "r" (__AROS_LTA(a2)) \
512 , "r" (__AROS_LTA(a3)) \
513 , "r" (__AROS_LTA(a4)) \
514 , "r" (__AROS_LTA(a5)) \
515 , "r" (__AROS_LTA(a6)) \
516 , "r" (__AROS_LTA(a7)) \
517 , "r" (__AROS_LTA(a8)) \
518 ); }\
519 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
520 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
521 , "r" (__AROS_LTA(a1)) \
522 , "r" (__AROS_LTA(a2)) \
523 , "r" (__AROS_LTA(a3)) \
524 , "r" (__AROS_LTA(a4)) \
525 , "r" (__AROS_LTA(a5)) \
526 , "r" (__AROS_LTA(a6)) \
527 , "r" (__AROS_LTA(a7)) \
528 , "r" (__AROS_LTA(a8)) \
529 ); }\
530 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
531 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
532 , "r" (__AROS_LTA(a1)) \
533 , "r" (__AROS_LTA(a2)) \
534 , "r" (__AROS_LTA(a3)) \
535 , "r" (__AROS_LTA(a4)) \
536 , "r" (__AROS_LTA(a5)) \
537 , "r" (__AROS_LTA(a6)) \
538 , "r" (__AROS_LTA(a7)) \
539 , "r" (__AROS_LTA(a8)) \
540 ); }\
541 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
542 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
543 , "r" (__AROS_LTA(a1)) \
544 , "r" (__AROS_LTA(a2)) \
545 , "r" (__AROS_LTA(a3)) \
546 , "r" (__AROS_LTA(a4)) \
547 , "r" (__AROS_LTA(a5)) \
548 , "r" (__AROS_LTA(a6)) \
549 , "r" (__AROS_LTA(a7)) \
550 , "r" (__AROS_LTA(a8)) \
551 ); }\
552 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
553 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
554 , "r" (__AROS_LTA(a1)) \
555 , "r" (__AROS_LTA(a2)) \
556 , "r" (__AROS_LTA(a3)) \
557 , "r" (__AROS_LTA(a4)) \
558 , "r" (__AROS_LTA(a5)) \
559 , "r" (__AROS_LTA(a6)) \
560 , "r" (__AROS_LTA(a7)) \
561 , "r" (__AROS_LTA(a8)) \
562 ); }\
563 if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
564 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__), "i" (id) \
565 , "r" (__AROS_LTA(a1)) \
566 , "r" (__AROS_LTA(a2)) \
567 , "r" (__AROS_LTA(a3)) \
568 , "r" (__AROS_LTA(a4)) \
569 , "r" (__AROS_LTA(a5)) \
570 , "r" (__AROS_LTA(a6)) \
571 , "r" (__AROS_LTA(a7)) \
572 , "r" (__AROS_LTA(a8)) \
573 ); }\
574 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG))) {\
575 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc8_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc8_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
576 , "r" (__AROS_LTA(a1)) \
577 , "r" (__AROS_LTA(a2)) \
578 , "r" (__AROS_LTA(a3)) \
579 , "r" (__AROS_LTA(a4)) \
580 , "r" (__AROS_LTA(a5)) \
581 , "r" (__AROS_LTA(a6)) \
582 , "r" (__AROS_LTA(a7)) \
583 , "r" (__AROS_LTA(a8)) \
584 ); }\
585 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
586 (t)_ret; \
589 #define P96_LC9(t,vector,id,a1,a2,a3,a4,a5,a6,a7,a8,a9) \
590 ({ APTR _n = (vector);\
591 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
592 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
593 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
594 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
595 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
596 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
597 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
598 ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
599 ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
600 register volatile ULONG _ret asm("%d0"); \
601 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
602 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
603 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
604 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
605 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
606 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
607 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
608 register volatile ULONG __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
609 register volatile ULONG __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
610 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
611 __AROS_LTA(a1) = _arg1; } \
612 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
613 __AROS_LTA(a2) = _arg2; } \
614 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
615 __AROS_LTA(a3) = _arg3; } \
616 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
617 __AROS_LTA(a4) = _arg4; } \
618 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
619 __AROS_LTA(a5) = _arg5; } \
620 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
621 __AROS_LTA(a6) = _arg6; } \
622 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
623 __AROS_LTA(a7) = _arg7; } \
624 if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
625 __AROS_LTA(a8) = _arg8; } \
626 if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
627 __AROS_LTA(a9) = _arg9; } \
628 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
629 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
630 , "r" (__AROS_LTA(a1)) \
631 , "r" (__AROS_LTA(a2)) \
632 , "r" (__AROS_LTA(a3)) \
633 , "r" (__AROS_LTA(a4)) \
634 , "r" (__AROS_LTA(a5)) \
635 , "r" (__AROS_LTA(a6)) \
636 , "r" (__AROS_LTA(a7)) \
637 , "r" (__AROS_LTA(a8)) \
638 , "r" (__AROS_LTA(a9)) \
639 ); }\
640 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
641 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
642 , "r" (__AROS_LTA(a1)) \
643 , "r" (__AROS_LTA(a2)) \
644 , "r" (__AROS_LTA(a3)) \
645 , "r" (__AROS_LTA(a4)) \
646 , "r" (__AROS_LTA(a5)) \
647 , "r" (__AROS_LTA(a6)) \
648 , "r" (__AROS_LTA(a7)) \
649 , "r" (__AROS_LTA(a8)) \
650 , "r" (__AROS_LTA(a9)) \
651 ); }\
652 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
653 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
654 , "r" (__AROS_LTA(a1)) \
655 , "r" (__AROS_LTA(a2)) \
656 , "r" (__AROS_LTA(a3)) \
657 , "r" (__AROS_LTA(a4)) \
658 , "r" (__AROS_LTA(a5)) \
659 , "r" (__AROS_LTA(a6)) \
660 , "r" (__AROS_LTA(a7)) \
661 , "r" (__AROS_LTA(a8)) \
662 , "r" (__AROS_LTA(a9)) \
663 ); }\
664 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
665 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
666 , "r" (__AROS_LTA(a1)) \
667 , "r" (__AROS_LTA(a2)) \
668 , "r" (__AROS_LTA(a3)) \
669 , "r" (__AROS_LTA(a4)) \
670 , "r" (__AROS_LTA(a5)) \
671 , "r" (__AROS_LTA(a6)) \
672 , "r" (__AROS_LTA(a7)) \
673 , "r" (__AROS_LTA(a8)) \
674 , "r" (__AROS_LTA(a9)) \
675 ); }\
676 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
677 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
678 , "r" (__AROS_LTA(a1)) \
679 , "r" (__AROS_LTA(a2)) \
680 , "r" (__AROS_LTA(a3)) \
681 , "r" (__AROS_LTA(a4)) \
682 , "r" (__AROS_LTA(a5)) \
683 , "r" (__AROS_LTA(a6)) \
684 , "r" (__AROS_LTA(a7)) \
685 , "r" (__AROS_LTA(a8)) \
686 , "r" (__AROS_LTA(a9)) \
687 ); }\
688 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
689 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
690 , "r" (__AROS_LTA(a1)) \
691 , "r" (__AROS_LTA(a2)) \
692 , "r" (__AROS_LTA(a3)) \
693 , "r" (__AROS_LTA(a4)) \
694 , "r" (__AROS_LTA(a5)) \
695 , "r" (__AROS_LTA(a6)) \
696 , "r" (__AROS_LTA(a7)) \
697 , "r" (__AROS_LTA(a8)) \
698 , "r" (__AROS_LTA(a9)) \
699 ); }\
700 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
701 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
702 , "r" (__AROS_LTA(a1)) \
703 , "r" (__AROS_LTA(a2)) \
704 , "r" (__AROS_LTA(a3)) \
705 , "r" (__AROS_LTA(a4)) \
706 , "r" (__AROS_LTA(a5)) \
707 , "r" (__AROS_LTA(a6)) \
708 , "r" (__AROS_LTA(a7)) \
709 , "r" (__AROS_LTA(a8)) \
710 , "r" (__AROS_LTA(a9)) \
711 ); }\
712 if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
713 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__), "i" (id) \
714 , "r" (__AROS_LTA(a1)) \
715 , "r" (__AROS_LTA(a2)) \
716 , "r" (__AROS_LTA(a3)) \
717 , "r" (__AROS_LTA(a4)) \
718 , "r" (__AROS_LTA(a5)) \
719 , "r" (__AROS_LTA(a6)) \
720 , "r" (__AROS_LTA(a7)) \
721 , "r" (__AROS_LTA(a8)) \
722 , "r" (__AROS_LTA(a9)) \
723 ); }\
724 if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
725 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__), "i" (id) \
726 , "r" (__AROS_LTA(a1)) \
727 , "r" (__AROS_LTA(a2)) \
728 , "r" (__AROS_LTA(a3)) \
729 , "r" (__AROS_LTA(a4)) \
730 , "r" (__AROS_LTA(a5)) \
731 , "r" (__AROS_LTA(a6)) \
732 , "r" (__AROS_LTA(a7)) \
733 , "r" (__AROS_LTA(a8)) \
734 , "r" (__AROS_LTA(a9)) \
735 ); }\
736 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG))) {\
737 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc9_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc9_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
738 , "r" (__AROS_LTA(a1)) \
739 , "r" (__AROS_LTA(a2)) \
740 , "r" (__AROS_LTA(a3)) \
741 , "r" (__AROS_LTA(a4)) \
742 , "r" (__AROS_LTA(a5)) \
743 , "r" (__AROS_LTA(a6)) \
744 , "r" (__AROS_LTA(a7)) \
745 , "r" (__AROS_LTA(a8)) \
746 , "r" (__AROS_LTA(a9)) \
747 ); }\
748 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
749 (t)_ret; \
752 #define P96_LC10(t,vector,id,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) \
753 ({ APTR _n = (vector);\
754 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
755 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
756 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
757 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
758 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
759 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
760 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
761 ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
762 ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
763 ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
764 register volatile ULONG _ret asm("%d0"); \
765 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
766 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
767 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
768 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
769 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
770 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
771 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
772 register volatile ULONG __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
773 register volatile ULONG __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
774 register volatile ULONG __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
775 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
776 __AROS_LTA(a1) = _arg1; } \
777 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
778 __AROS_LTA(a2) = _arg2; } \
779 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
780 __AROS_LTA(a3) = _arg3; } \
781 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
782 __AROS_LTA(a4) = _arg4; } \
783 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
784 __AROS_LTA(a5) = _arg5; } \
785 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
786 __AROS_LTA(a6) = _arg6; } \
787 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
788 __AROS_LTA(a7) = _arg7; } \
789 if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
790 __AROS_LTA(a8) = _arg8; } \
791 if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
792 __AROS_LTA(a9) = _arg9; } \
793 if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
794 __AROS_LTA(a10) = _arg10; } \
795 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
796 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
797 , "r" (__AROS_LTA(a1)) \
798 , "r" (__AROS_LTA(a2)) \
799 , "r" (__AROS_LTA(a3)) \
800 , "r" (__AROS_LTA(a4)) \
801 , "r" (__AROS_LTA(a5)) \
802 , "r" (__AROS_LTA(a6)) \
803 , "r" (__AROS_LTA(a7)) \
804 , "r" (__AROS_LTA(a8)) \
805 , "r" (__AROS_LTA(a9)) \
806 , "r" (__AROS_LTA(a10)) \
807 ); }\
808 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
809 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
810 , "r" (__AROS_LTA(a1)) \
811 , "r" (__AROS_LTA(a2)) \
812 , "r" (__AROS_LTA(a3)) \
813 , "r" (__AROS_LTA(a4)) \
814 , "r" (__AROS_LTA(a5)) \
815 , "r" (__AROS_LTA(a6)) \
816 , "r" (__AROS_LTA(a7)) \
817 , "r" (__AROS_LTA(a8)) \
818 , "r" (__AROS_LTA(a9)) \
819 , "r" (__AROS_LTA(a10)) \
820 ); }\
821 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
822 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
823 , "r" (__AROS_LTA(a1)) \
824 , "r" (__AROS_LTA(a2)) \
825 , "r" (__AROS_LTA(a3)) \
826 , "r" (__AROS_LTA(a4)) \
827 , "r" (__AROS_LTA(a5)) \
828 , "r" (__AROS_LTA(a6)) \
829 , "r" (__AROS_LTA(a7)) \
830 , "r" (__AROS_LTA(a8)) \
831 , "r" (__AROS_LTA(a9)) \
832 , "r" (__AROS_LTA(a10)) \
833 ); }\
834 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
835 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
836 , "r" (__AROS_LTA(a1)) \
837 , "r" (__AROS_LTA(a2)) \
838 , "r" (__AROS_LTA(a3)) \
839 , "r" (__AROS_LTA(a4)) \
840 , "r" (__AROS_LTA(a5)) \
841 , "r" (__AROS_LTA(a6)) \
842 , "r" (__AROS_LTA(a7)) \
843 , "r" (__AROS_LTA(a8)) \
844 , "r" (__AROS_LTA(a9)) \
845 , "r" (__AROS_LTA(a10)) \
846 ); }\
847 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
848 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
849 , "r" (__AROS_LTA(a1)) \
850 , "r" (__AROS_LTA(a2)) \
851 , "r" (__AROS_LTA(a3)) \
852 , "r" (__AROS_LTA(a4)) \
853 , "r" (__AROS_LTA(a5)) \
854 , "r" (__AROS_LTA(a6)) \
855 , "r" (__AROS_LTA(a7)) \
856 , "r" (__AROS_LTA(a8)) \
857 , "r" (__AROS_LTA(a9)) \
858 , "r" (__AROS_LTA(a10)) \
859 ); }\
860 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
861 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
862 , "r" (__AROS_LTA(a1)) \
863 , "r" (__AROS_LTA(a2)) \
864 , "r" (__AROS_LTA(a3)) \
865 , "r" (__AROS_LTA(a4)) \
866 , "r" (__AROS_LTA(a5)) \
867 , "r" (__AROS_LTA(a6)) \
868 , "r" (__AROS_LTA(a7)) \
869 , "r" (__AROS_LTA(a8)) \
870 , "r" (__AROS_LTA(a9)) \
871 , "r" (__AROS_LTA(a10)) \
872 ); }\
873 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
874 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
875 , "r" (__AROS_LTA(a1)) \
876 , "r" (__AROS_LTA(a2)) \
877 , "r" (__AROS_LTA(a3)) \
878 , "r" (__AROS_LTA(a4)) \
879 , "r" (__AROS_LTA(a5)) \
880 , "r" (__AROS_LTA(a6)) \
881 , "r" (__AROS_LTA(a7)) \
882 , "r" (__AROS_LTA(a8)) \
883 , "r" (__AROS_LTA(a9)) \
884 , "r" (__AROS_LTA(a10)) \
885 ); }\
886 if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
887 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__), "i" (id) \
888 , "r" (__AROS_LTA(a1)) \
889 , "r" (__AROS_LTA(a2)) \
890 , "r" (__AROS_LTA(a3)) \
891 , "r" (__AROS_LTA(a4)) \
892 , "r" (__AROS_LTA(a5)) \
893 , "r" (__AROS_LTA(a6)) \
894 , "r" (__AROS_LTA(a7)) \
895 , "r" (__AROS_LTA(a8)) \
896 , "r" (__AROS_LTA(a9)) \
897 , "r" (__AROS_LTA(a10)) \
898 ); }\
899 if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
900 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__), "i" (id) \
901 , "r" (__AROS_LTA(a1)) \
902 , "r" (__AROS_LTA(a2)) \
903 , "r" (__AROS_LTA(a3)) \
904 , "r" (__AROS_LTA(a4)) \
905 , "r" (__AROS_LTA(a5)) \
906 , "r" (__AROS_LTA(a6)) \
907 , "r" (__AROS_LTA(a7)) \
908 , "r" (__AROS_LTA(a8)) \
909 , "r" (__AROS_LTA(a9)) \
910 , "r" (__AROS_LTA(a10)) \
911 ); }\
912 if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
913 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__), "i" (id) \
914 , "r" (__AROS_LTA(a1)) \
915 , "r" (__AROS_LTA(a2)) \
916 , "r" (__AROS_LTA(a3)) \
917 , "r" (__AROS_LTA(a4)) \
918 , "r" (__AROS_LTA(a5)) \
919 , "r" (__AROS_LTA(a6)) \
920 , "r" (__AROS_LTA(a7)) \
921 , "r" (__AROS_LTA(a8)) \
922 , "r" (__AROS_LTA(a9)) \
923 , "r" (__AROS_LTA(a10)) \
924 ); }\
925 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG))) {\
926 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc10_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc10_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
927 , "r" (__AROS_LTA(a1)) \
928 , "r" (__AROS_LTA(a2)) \
929 , "r" (__AROS_LTA(a3)) \
930 , "r" (__AROS_LTA(a4)) \
931 , "r" (__AROS_LTA(a5)) \
932 , "r" (__AROS_LTA(a6)) \
933 , "r" (__AROS_LTA(a7)) \
934 , "r" (__AROS_LTA(a8)) \
935 , "r" (__AROS_LTA(a9)) \
936 , "r" (__AROS_LTA(a10)) \
937 ); }\
938 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
939 (t)_ret; \
942 #define P96_LC11(t,vector,id,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \
943 ({ APTR _n = (vector);\
944 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
945 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
946 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
947 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
948 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
949 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
950 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
951 ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
952 ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
953 ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
954 ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
955 register volatile ULONG _ret asm("%d0"); \
956 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
957 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
958 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
959 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
960 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
961 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
962 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
963 register volatile ULONG __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
964 register volatile ULONG __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
965 register volatile ULONG __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
966 register volatile ULONG __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
967 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
968 __AROS_LTA(a1) = _arg1; } \
969 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
970 __AROS_LTA(a2) = _arg2; } \
971 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
972 __AROS_LTA(a3) = _arg3; } \
973 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
974 __AROS_LTA(a4) = _arg4; } \
975 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
976 __AROS_LTA(a5) = _arg5; } \
977 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
978 __AROS_LTA(a6) = _arg6; } \
979 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
980 __AROS_LTA(a7) = _arg7; } \
981 if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
982 __AROS_LTA(a8) = _arg8; } \
983 if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
984 __AROS_LTA(a9) = _arg9; } \
985 if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
986 __AROS_LTA(a10) = _arg10; } \
987 if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
988 __AROS_LTA(a11) = _arg11; } \
989 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
990 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
991 , "r" (__AROS_LTA(a1)) \
992 , "r" (__AROS_LTA(a2)) \
993 , "r" (__AROS_LTA(a3)) \
994 , "r" (__AROS_LTA(a4)) \
995 , "r" (__AROS_LTA(a5)) \
996 , "r" (__AROS_LTA(a6)) \
997 , "r" (__AROS_LTA(a7)) \
998 , "r" (__AROS_LTA(a8)) \
999 , "r" (__AROS_LTA(a9)) \
1000 , "r" (__AROS_LTA(a10)) \
1001 , "r" (__AROS_LTA(a11)) \
1002 ); }\
1003 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
1004 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
1005 , "r" (__AROS_LTA(a1)) \
1006 , "r" (__AROS_LTA(a2)) \
1007 , "r" (__AROS_LTA(a3)) \
1008 , "r" (__AROS_LTA(a4)) \
1009 , "r" (__AROS_LTA(a5)) \
1010 , "r" (__AROS_LTA(a6)) \
1011 , "r" (__AROS_LTA(a7)) \
1012 , "r" (__AROS_LTA(a8)) \
1013 , "r" (__AROS_LTA(a9)) \
1014 , "r" (__AROS_LTA(a10)) \
1015 , "r" (__AROS_LTA(a11)) \
1016 ); }\
1017 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
1018 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
1019 , "r" (__AROS_LTA(a1)) \
1020 , "r" (__AROS_LTA(a2)) \
1021 , "r" (__AROS_LTA(a3)) \
1022 , "r" (__AROS_LTA(a4)) \
1023 , "r" (__AROS_LTA(a5)) \
1024 , "r" (__AROS_LTA(a6)) \
1025 , "r" (__AROS_LTA(a7)) \
1026 , "r" (__AROS_LTA(a8)) \
1027 , "r" (__AROS_LTA(a9)) \
1028 , "r" (__AROS_LTA(a10)) \
1029 , "r" (__AROS_LTA(a11)) \
1030 ); }\
1031 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
1032 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
1033 , "r" (__AROS_LTA(a1)) \
1034 , "r" (__AROS_LTA(a2)) \
1035 , "r" (__AROS_LTA(a3)) \
1036 , "r" (__AROS_LTA(a4)) \
1037 , "r" (__AROS_LTA(a5)) \
1038 , "r" (__AROS_LTA(a6)) \
1039 , "r" (__AROS_LTA(a7)) \
1040 , "r" (__AROS_LTA(a8)) \
1041 , "r" (__AROS_LTA(a9)) \
1042 , "r" (__AROS_LTA(a10)) \
1043 , "r" (__AROS_LTA(a11)) \
1044 ); }\
1045 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
1046 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
1047 , "r" (__AROS_LTA(a1)) \
1048 , "r" (__AROS_LTA(a2)) \
1049 , "r" (__AROS_LTA(a3)) \
1050 , "r" (__AROS_LTA(a4)) \
1051 , "r" (__AROS_LTA(a5)) \
1052 , "r" (__AROS_LTA(a6)) \
1053 , "r" (__AROS_LTA(a7)) \
1054 , "r" (__AROS_LTA(a8)) \
1055 , "r" (__AROS_LTA(a9)) \
1056 , "r" (__AROS_LTA(a10)) \
1057 , "r" (__AROS_LTA(a11)) \
1058 ); }\
1059 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
1060 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
1061 , "r" (__AROS_LTA(a1)) \
1062 , "r" (__AROS_LTA(a2)) \
1063 , "r" (__AROS_LTA(a3)) \
1064 , "r" (__AROS_LTA(a4)) \
1065 , "r" (__AROS_LTA(a5)) \
1066 , "r" (__AROS_LTA(a6)) \
1067 , "r" (__AROS_LTA(a7)) \
1068 , "r" (__AROS_LTA(a8)) \
1069 , "r" (__AROS_LTA(a9)) \
1070 , "r" (__AROS_LTA(a10)) \
1071 , "r" (__AROS_LTA(a11)) \
1072 ); }\
1073 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
1074 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
1075 , "r" (__AROS_LTA(a1)) \
1076 , "r" (__AROS_LTA(a2)) \
1077 , "r" (__AROS_LTA(a3)) \
1078 , "r" (__AROS_LTA(a4)) \
1079 , "r" (__AROS_LTA(a5)) \
1080 , "r" (__AROS_LTA(a6)) \
1081 , "r" (__AROS_LTA(a7)) \
1082 , "r" (__AROS_LTA(a8)) \
1083 , "r" (__AROS_LTA(a9)) \
1084 , "r" (__AROS_LTA(a10)) \
1085 , "r" (__AROS_LTA(a11)) \
1086 ); }\
1087 if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
1088 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__), "i" (id) \
1089 , "r" (__AROS_LTA(a1)) \
1090 , "r" (__AROS_LTA(a2)) \
1091 , "r" (__AROS_LTA(a3)) \
1092 , "r" (__AROS_LTA(a4)) \
1093 , "r" (__AROS_LTA(a5)) \
1094 , "r" (__AROS_LTA(a6)) \
1095 , "r" (__AROS_LTA(a7)) \
1096 , "r" (__AROS_LTA(a8)) \
1097 , "r" (__AROS_LTA(a9)) \
1098 , "r" (__AROS_LTA(a10)) \
1099 , "r" (__AROS_LTA(a11)) \
1100 ); }\
1101 if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
1102 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__), "i" (id) \
1103 , "r" (__AROS_LTA(a1)) \
1104 , "r" (__AROS_LTA(a2)) \
1105 , "r" (__AROS_LTA(a3)) \
1106 , "r" (__AROS_LTA(a4)) \
1107 , "r" (__AROS_LTA(a5)) \
1108 , "r" (__AROS_LTA(a6)) \
1109 , "r" (__AROS_LTA(a7)) \
1110 , "r" (__AROS_LTA(a8)) \
1111 , "r" (__AROS_LTA(a9)) \
1112 , "r" (__AROS_LTA(a10)) \
1113 , "r" (__AROS_LTA(a11)) \
1114 ); }\
1115 if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
1116 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__), "i" (id) \
1117 , "r" (__AROS_LTA(a1)) \
1118 , "r" (__AROS_LTA(a2)) \
1119 , "r" (__AROS_LTA(a3)) \
1120 , "r" (__AROS_LTA(a4)) \
1121 , "r" (__AROS_LTA(a5)) \
1122 , "r" (__AROS_LTA(a6)) \
1123 , "r" (__AROS_LTA(a7)) \
1124 , "r" (__AROS_LTA(a8)) \
1125 , "r" (__AROS_LTA(a9)) \
1126 , "r" (__AROS_LTA(a10)) \
1127 , "r" (__AROS_LTA(a11)) \
1128 ); }\
1129 if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
1130 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg11), "r" (_n), "i" (__LINE__), "i" (id) \
1131 , "r" (__AROS_LTA(a1)) \
1132 , "r" (__AROS_LTA(a2)) \
1133 , "r" (__AROS_LTA(a3)) \
1134 , "r" (__AROS_LTA(a4)) \
1135 , "r" (__AROS_LTA(a5)) \
1136 , "r" (__AROS_LTA(a6)) \
1137 , "r" (__AROS_LTA(a7)) \
1138 , "r" (__AROS_LTA(a8)) \
1139 , "r" (__AROS_LTA(a9)) \
1140 , "r" (__AROS_LTA(a10)) \
1141 , "r" (__AROS_LTA(a11)) \
1142 ); }\
1143 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG))) {\
1144 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc11_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc11_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
1145 , "r" (__AROS_LTA(a1)) \
1146 , "r" (__AROS_LTA(a2)) \
1147 , "r" (__AROS_LTA(a3)) \
1148 , "r" (__AROS_LTA(a4)) \
1149 , "r" (__AROS_LTA(a5)) \
1150 , "r" (__AROS_LTA(a6)) \
1151 , "r" (__AROS_LTA(a7)) \
1152 , "r" (__AROS_LTA(a8)) \
1153 , "r" (__AROS_LTA(a9)) \
1154 , "r" (__AROS_LTA(a10)) \
1155 , "r" (__AROS_LTA(a11)) \
1156 ); }\
1157 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
1158 (t)_ret; \
1161 #define P96_LC12(t,vector,id,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \
1162 ({ APTR _n = (vector);\
1163 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
1164 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
1165 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
1166 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
1167 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
1168 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
1169 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
1170 ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
1171 ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
1172 ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
1173 ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
1174 ULONG _arg12 = (ULONG)__AROS_LCA(a12); \
1175 register volatile ULONG _ret asm("%d0"); \
1176 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
1177 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
1178 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
1179 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
1180 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
1181 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
1182 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
1183 register volatile ULONG __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
1184 register volatile ULONG __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
1185 register volatile ULONG __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
1186 register volatile ULONG __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
1187 register volatile ULONG __AROS_LTA(a12) asm(__AROS_LSA(a12)); \
1188 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
1189 __AROS_LTA(a1) = _arg1; } \
1190 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
1191 __AROS_LTA(a2) = _arg2; } \
1192 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
1193 __AROS_LTA(a3) = _arg3; } \
1194 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
1195 __AROS_LTA(a4) = _arg4; } \
1196 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
1197 __AROS_LTA(a5) = _arg5; } \
1198 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
1199 __AROS_LTA(a6) = _arg6; } \
1200 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
1201 __AROS_LTA(a7) = _arg7; } \
1202 if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
1203 __AROS_LTA(a8) = _arg8; } \
1204 if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
1205 __AROS_LTA(a9) = _arg9; } \
1206 if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
1207 __AROS_LTA(a10) = _arg10; } \
1208 if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
1209 __AROS_LTA(a11) = _arg11; } \
1210 if (! __AROS_ISREG(a12,__AROS_FP_REG)) { \
1211 __AROS_LTA(a12) = _arg12; } \
1212 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
1213 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
1214 , "r" (__AROS_LTA(a1)) \
1215 , "r" (__AROS_LTA(a2)) \
1216 , "r" (__AROS_LTA(a3)) \
1217 , "r" (__AROS_LTA(a4)) \
1218 , "r" (__AROS_LTA(a5)) \
1219 , "r" (__AROS_LTA(a6)) \
1220 , "r" (__AROS_LTA(a7)) \
1221 , "r" (__AROS_LTA(a8)) \
1222 , "r" (__AROS_LTA(a9)) \
1223 , "r" (__AROS_LTA(a10)) \
1224 , "r" (__AROS_LTA(a11)) \
1225 , "r" (__AROS_LTA(a12)) \
1226 ); }\
1227 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
1228 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
1229 , "r" (__AROS_LTA(a1)) \
1230 , "r" (__AROS_LTA(a2)) \
1231 , "r" (__AROS_LTA(a3)) \
1232 , "r" (__AROS_LTA(a4)) \
1233 , "r" (__AROS_LTA(a5)) \
1234 , "r" (__AROS_LTA(a6)) \
1235 , "r" (__AROS_LTA(a7)) \
1236 , "r" (__AROS_LTA(a8)) \
1237 , "r" (__AROS_LTA(a9)) \
1238 , "r" (__AROS_LTA(a10)) \
1239 , "r" (__AROS_LTA(a11)) \
1240 , "r" (__AROS_LTA(a12)) \
1241 ); }\
1242 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
1243 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
1244 , "r" (__AROS_LTA(a1)) \
1245 , "r" (__AROS_LTA(a2)) \
1246 , "r" (__AROS_LTA(a3)) \
1247 , "r" (__AROS_LTA(a4)) \
1248 , "r" (__AROS_LTA(a5)) \
1249 , "r" (__AROS_LTA(a6)) \
1250 , "r" (__AROS_LTA(a7)) \
1251 , "r" (__AROS_LTA(a8)) \
1252 , "r" (__AROS_LTA(a9)) \
1253 , "r" (__AROS_LTA(a10)) \
1254 , "r" (__AROS_LTA(a11)) \
1255 , "r" (__AROS_LTA(a12)) \
1256 ); }\
1257 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
1258 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
1259 , "r" (__AROS_LTA(a1)) \
1260 , "r" (__AROS_LTA(a2)) \
1261 , "r" (__AROS_LTA(a3)) \
1262 , "r" (__AROS_LTA(a4)) \
1263 , "r" (__AROS_LTA(a5)) \
1264 , "r" (__AROS_LTA(a6)) \
1265 , "r" (__AROS_LTA(a7)) \
1266 , "r" (__AROS_LTA(a8)) \
1267 , "r" (__AROS_LTA(a9)) \
1268 , "r" (__AROS_LTA(a10)) \
1269 , "r" (__AROS_LTA(a11)) \
1270 , "r" (__AROS_LTA(a12)) \
1271 ); }\
1272 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
1273 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
1274 , "r" (__AROS_LTA(a1)) \
1275 , "r" (__AROS_LTA(a2)) \
1276 , "r" (__AROS_LTA(a3)) \
1277 , "r" (__AROS_LTA(a4)) \
1278 , "r" (__AROS_LTA(a5)) \
1279 , "r" (__AROS_LTA(a6)) \
1280 , "r" (__AROS_LTA(a7)) \
1281 , "r" (__AROS_LTA(a8)) \
1282 , "r" (__AROS_LTA(a9)) \
1283 , "r" (__AROS_LTA(a10)) \
1284 , "r" (__AROS_LTA(a11)) \
1285 , "r" (__AROS_LTA(a12)) \
1286 ); }\
1287 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
1288 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
1289 , "r" (__AROS_LTA(a1)) \
1290 , "r" (__AROS_LTA(a2)) \
1291 , "r" (__AROS_LTA(a3)) \
1292 , "r" (__AROS_LTA(a4)) \
1293 , "r" (__AROS_LTA(a5)) \
1294 , "r" (__AROS_LTA(a6)) \
1295 , "r" (__AROS_LTA(a7)) \
1296 , "r" (__AROS_LTA(a8)) \
1297 , "r" (__AROS_LTA(a9)) \
1298 , "r" (__AROS_LTA(a10)) \
1299 , "r" (__AROS_LTA(a11)) \
1300 , "r" (__AROS_LTA(a12)) \
1301 ); }\
1302 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
1303 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
1304 , "r" (__AROS_LTA(a1)) \
1305 , "r" (__AROS_LTA(a2)) \
1306 , "r" (__AROS_LTA(a3)) \
1307 , "r" (__AROS_LTA(a4)) \
1308 , "r" (__AROS_LTA(a5)) \
1309 , "r" (__AROS_LTA(a6)) \
1310 , "r" (__AROS_LTA(a7)) \
1311 , "r" (__AROS_LTA(a8)) \
1312 , "r" (__AROS_LTA(a9)) \
1313 , "r" (__AROS_LTA(a10)) \
1314 , "r" (__AROS_LTA(a11)) \
1315 , "r" (__AROS_LTA(a12)) \
1316 ); }\
1317 if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
1318 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__), "i" (id) \
1319 , "r" (__AROS_LTA(a1)) \
1320 , "r" (__AROS_LTA(a2)) \
1321 , "r" (__AROS_LTA(a3)) \
1322 , "r" (__AROS_LTA(a4)) \
1323 , "r" (__AROS_LTA(a5)) \
1324 , "r" (__AROS_LTA(a6)) \
1325 , "r" (__AROS_LTA(a7)) \
1326 , "r" (__AROS_LTA(a8)) \
1327 , "r" (__AROS_LTA(a9)) \
1328 , "r" (__AROS_LTA(a10)) \
1329 , "r" (__AROS_LTA(a11)) \
1330 , "r" (__AROS_LTA(a12)) \
1331 ); }\
1332 if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
1333 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__), "i" (id) \
1334 , "r" (__AROS_LTA(a1)) \
1335 , "r" (__AROS_LTA(a2)) \
1336 , "r" (__AROS_LTA(a3)) \
1337 , "r" (__AROS_LTA(a4)) \
1338 , "r" (__AROS_LTA(a5)) \
1339 , "r" (__AROS_LTA(a6)) \
1340 , "r" (__AROS_LTA(a7)) \
1341 , "r" (__AROS_LTA(a8)) \
1342 , "r" (__AROS_LTA(a9)) \
1343 , "r" (__AROS_LTA(a10)) \
1344 , "r" (__AROS_LTA(a11)) \
1345 , "r" (__AROS_LTA(a12)) \
1346 ); }\
1347 if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
1348 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__), "i" (id) \
1349 , "r" (__AROS_LTA(a1)) \
1350 , "r" (__AROS_LTA(a2)) \
1351 , "r" (__AROS_LTA(a3)) \
1352 , "r" (__AROS_LTA(a4)) \
1353 , "r" (__AROS_LTA(a5)) \
1354 , "r" (__AROS_LTA(a6)) \
1355 , "r" (__AROS_LTA(a7)) \
1356 , "r" (__AROS_LTA(a8)) \
1357 , "r" (__AROS_LTA(a9)) \
1358 , "r" (__AROS_LTA(a10)) \
1359 , "r" (__AROS_LTA(a11)) \
1360 , "r" (__AROS_LTA(a12)) \
1361 ); }\
1362 if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
1363 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg11), "r" (_n), "i" (__LINE__), "i" (id) \
1364 , "r" (__AROS_LTA(a1)) \
1365 , "r" (__AROS_LTA(a2)) \
1366 , "r" (__AROS_LTA(a3)) \
1367 , "r" (__AROS_LTA(a4)) \
1368 , "r" (__AROS_LTA(a5)) \
1369 , "r" (__AROS_LTA(a6)) \
1370 , "r" (__AROS_LTA(a7)) \
1371 , "r" (__AROS_LTA(a8)) \
1372 , "r" (__AROS_LTA(a9)) \
1373 , "r" (__AROS_LTA(a10)) \
1374 , "r" (__AROS_LTA(a11)) \
1375 , "r" (__AROS_LTA(a12)) \
1376 ); }\
1377 if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
1378 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg12), "r" (_n), "i" (__LINE__), "i" (id) \
1379 , "r" (__AROS_LTA(a1)) \
1380 , "r" (__AROS_LTA(a2)) \
1381 , "r" (__AROS_LTA(a3)) \
1382 , "r" (__AROS_LTA(a4)) \
1383 , "r" (__AROS_LTA(a5)) \
1384 , "r" (__AROS_LTA(a6)) \
1385 , "r" (__AROS_LTA(a7)) \
1386 , "r" (__AROS_LTA(a8)) \
1387 , "r" (__AROS_LTA(a9)) \
1388 , "r" (__AROS_LTA(a10)) \
1389 , "r" (__AROS_LTA(a11)) \
1390 , "r" (__AROS_LTA(a12)) \
1391 ); }\
1392 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG) || __AROS_ISREG(a12,__AROS_FP_REG))) {\
1393 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc12_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc12_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
1394 , "r" (__AROS_LTA(a1)) \
1395 , "r" (__AROS_LTA(a2)) \
1396 , "r" (__AROS_LTA(a3)) \
1397 , "r" (__AROS_LTA(a4)) \
1398 , "r" (__AROS_LTA(a5)) \
1399 , "r" (__AROS_LTA(a6)) \
1400 , "r" (__AROS_LTA(a7)) \
1401 , "r" (__AROS_LTA(a8)) \
1402 , "r" (__AROS_LTA(a9)) \
1403 , "r" (__AROS_LTA(a10)) \
1404 , "r" (__AROS_LTA(a11)) \
1405 , "r" (__AROS_LTA(a12)) \
1406 ); }\
1407 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
1408 (t)_ret; \
1411 #define P96_LC13(t,vector,id,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) \
1412 ({ APTR _n = (vector);\
1413 ULONG _arg1 = (ULONG)__AROS_LCA(a1); \
1414 ULONG _arg2 = (ULONG)__AROS_LCA(a2); \
1415 ULONG _arg3 = (ULONG)__AROS_LCA(a3); \
1416 ULONG _arg4 = (ULONG)__AROS_LCA(a4); \
1417 ULONG _arg5 = (ULONG)__AROS_LCA(a5); \
1418 ULONG _arg6 = (ULONG)__AROS_LCA(a6); \
1419 ULONG _arg7 = (ULONG)__AROS_LCA(a7); \
1420 ULONG _arg8 = (ULONG)__AROS_LCA(a8); \
1421 ULONG _arg9 = (ULONG)__AROS_LCA(a9); \
1422 ULONG _arg10 = (ULONG)__AROS_LCA(a10); \
1423 ULONG _arg11 = (ULONG)__AROS_LCA(a11); \
1424 ULONG _arg12 = (ULONG)__AROS_LCA(a12); \
1425 ULONG _arg13 = (ULONG)__AROS_LCA(a13); \
1426 register volatile ULONG _ret asm("%d0"); \
1427 register volatile ULONG __AROS_LTA(a1) asm(__AROS_LSA(a1)); \
1428 register volatile ULONG __AROS_LTA(a2) asm(__AROS_LSA(a2)); \
1429 register volatile ULONG __AROS_LTA(a3) asm(__AROS_LSA(a3)); \
1430 register volatile ULONG __AROS_LTA(a4) asm(__AROS_LSA(a4)); \
1431 register volatile ULONG __AROS_LTA(a5) asm(__AROS_LSA(a5)); \
1432 register volatile ULONG __AROS_LTA(a6) asm(__AROS_LSA(a6)); \
1433 register volatile ULONG __AROS_LTA(a7) asm(__AROS_LSA(a7)); \
1434 register volatile ULONG __AROS_LTA(a8) asm(__AROS_LSA(a8)); \
1435 register volatile ULONG __AROS_LTA(a9) asm(__AROS_LSA(a9)); \
1436 register volatile ULONG __AROS_LTA(a10) asm(__AROS_LSA(a10)); \
1437 register volatile ULONG __AROS_LTA(a11) asm(__AROS_LSA(a11)); \
1438 register volatile ULONG __AROS_LTA(a12) asm(__AROS_LSA(a12)); \
1439 register volatile ULONG __AROS_LTA(a13) asm(__AROS_LSA(a13)); \
1440 if (! __AROS_ISREG(a1,__AROS_FP_REG)) { \
1441 __AROS_LTA(a1) = _arg1; } \
1442 if (! __AROS_ISREG(a2,__AROS_FP_REG)) { \
1443 __AROS_LTA(a2) = _arg2; } \
1444 if (! __AROS_ISREG(a3,__AROS_FP_REG)) { \
1445 __AROS_LTA(a3) = _arg3; } \
1446 if (! __AROS_ISREG(a4,__AROS_FP_REG)) { \
1447 __AROS_LTA(a4) = _arg4; } \
1448 if (! __AROS_ISREG(a5,__AROS_FP_REG)) { \
1449 __AROS_LTA(a5) = _arg5; } \
1450 if (! __AROS_ISREG(a6,__AROS_FP_REG)) { \
1451 __AROS_LTA(a6) = _arg6; } \
1452 if (! __AROS_ISREG(a7,__AROS_FP_REG)) { \
1453 __AROS_LTA(a7) = _arg7; } \
1454 if (! __AROS_ISREG(a8,__AROS_FP_REG)) { \
1455 __AROS_LTA(a8) = _arg8; } \
1456 if (! __AROS_ISREG(a9,__AROS_FP_REG)) { \
1457 __AROS_LTA(a9) = _arg9; } \
1458 if (! __AROS_ISREG(a10,__AROS_FP_REG)) { \
1459 __AROS_LTA(a10) = _arg10; } \
1460 if (! __AROS_ISREG(a11,__AROS_FP_REG)) { \
1461 __AROS_LTA(a11) = _arg11; } \
1462 if (! __AROS_ISREG(a12,__AROS_FP_REG)) { \
1463 __AROS_LTA(a12) = _arg12; } \
1464 if (! __AROS_ISREG(a13,__AROS_FP_REG)) { \
1465 __AROS_LTA(a13) = _arg13; } \
1466 if ( __AROS_ISREG(a1,__AROS_FP_REG)) { \
1467 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg1), "r" (_n), "i" (__LINE__), "i" (id) \
1468 , "r" (__AROS_LTA(a1)) \
1469 , "r" (__AROS_LTA(a2)) \
1470 , "r" (__AROS_LTA(a3)) \
1471 , "r" (__AROS_LTA(a4)) \
1472 , "r" (__AROS_LTA(a5)) \
1473 , "r" (__AROS_LTA(a6)) \
1474 , "r" (__AROS_LTA(a7)) \
1475 , "r" (__AROS_LTA(a8)) \
1476 , "r" (__AROS_LTA(a9)) \
1477 , "r" (__AROS_LTA(a10)) \
1478 , "r" (__AROS_LTA(a11)) \
1479 , "r" (__AROS_LTA(a12)) \
1480 , "r" (__AROS_LTA(a13)) \
1481 ); }\
1482 if ( __AROS_ISREG(a2,__AROS_FP_REG)) { \
1483 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg2), "r" (_n), "i" (__LINE__), "i" (id) \
1484 , "r" (__AROS_LTA(a1)) \
1485 , "r" (__AROS_LTA(a2)) \
1486 , "r" (__AROS_LTA(a3)) \
1487 , "r" (__AROS_LTA(a4)) \
1488 , "r" (__AROS_LTA(a5)) \
1489 , "r" (__AROS_LTA(a6)) \
1490 , "r" (__AROS_LTA(a7)) \
1491 , "r" (__AROS_LTA(a8)) \
1492 , "r" (__AROS_LTA(a9)) \
1493 , "r" (__AROS_LTA(a10)) \
1494 , "r" (__AROS_LTA(a11)) \
1495 , "r" (__AROS_LTA(a12)) \
1496 , "r" (__AROS_LTA(a13)) \
1497 ); }\
1498 if ( __AROS_ISREG(a3,__AROS_FP_REG)) { \
1499 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg3), "r" (_n), "i" (__LINE__), "i" (id) \
1500 , "r" (__AROS_LTA(a1)) \
1501 , "r" (__AROS_LTA(a2)) \
1502 , "r" (__AROS_LTA(a3)) \
1503 , "r" (__AROS_LTA(a4)) \
1504 , "r" (__AROS_LTA(a5)) \
1505 , "r" (__AROS_LTA(a6)) \
1506 , "r" (__AROS_LTA(a7)) \
1507 , "r" (__AROS_LTA(a8)) \
1508 , "r" (__AROS_LTA(a9)) \
1509 , "r" (__AROS_LTA(a10)) \
1510 , "r" (__AROS_LTA(a11)) \
1511 , "r" (__AROS_LTA(a12)) \
1512 , "r" (__AROS_LTA(a13)) \
1513 ); }\
1514 if ( __AROS_ISREG(a4,__AROS_FP_REG)) { \
1515 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg4), "r" (_n), "i" (__LINE__), "i" (id) \
1516 , "r" (__AROS_LTA(a1)) \
1517 , "r" (__AROS_LTA(a2)) \
1518 , "r" (__AROS_LTA(a3)) \
1519 , "r" (__AROS_LTA(a4)) \
1520 , "r" (__AROS_LTA(a5)) \
1521 , "r" (__AROS_LTA(a6)) \
1522 , "r" (__AROS_LTA(a7)) \
1523 , "r" (__AROS_LTA(a8)) \
1524 , "r" (__AROS_LTA(a9)) \
1525 , "r" (__AROS_LTA(a10)) \
1526 , "r" (__AROS_LTA(a11)) \
1527 , "r" (__AROS_LTA(a12)) \
1528 , "r" (__AROS_LTA(a13)) \
1529 ); }\
1530 if ( __AROS_ISREG(a5,__AROS_FP_REG)) { \
1531 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg5), "r" (_n), "i" (__LINE__), "i" (id) \
1532 , "r" (__AROS_LTA(a1)) \
1533 , "r" (__AROS_LTA(a2)) \
1534 , "r" (__AROS_LTA(a3)) \
1535 , "r" (__AROS_LTA(a4)) \
1536 , "r" (__AROS_LTA(a5)) \
1537 , "r" (__AROS_LTA(a6)) \
1538 , "r" (__AROS_LTA(a7)) \
1539 , "r" (__AROS_LTA(a8)) \
1540 , "r" (__AROS_LTA(a9)) \
1541 , "r" (__AROS_LTA(a10)) \
1542 , "r" (__AROS_LTA(a11)) \
1543 , "r" (__AROS_LTA(a12)) \
1544 , "r" (__AROS_LTA(a13)) \
1545 ); }\
1546 if ( __AROS_ISREG(a6,__AROS_FP_REG)) { \
1547 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg6), "r" (_n), "i" (__LINE__), "i" (id) \
1548 , "r" (__AROS_LTA(a1)) \
1549 , "r" (__AROS_LTA(a2)) \
1550 , "r" (__AROS_LTA(a3)) \
1551 , "r" (__AROS_LTA(a4)) \
1552 , "r" (__AROS_LTA(a5)) \
1553 , "r" (__AROS_LTA(a6)) \
1554 , "r" (__AROS_LTA(a7)) \
1555 , "r" (__AROS_LTA(a8)) \
1556 , "r" (__AROS_LTA(a9)) \
1557 , "r" (__AROS_LTA(a10)) \
1558 , "r" (__AROS_LTA(a11)) \
1559 , "r" (__AROS_LTA(a12)) \
1560 , "r" (__AROS_LTA(a13)) \
1561 ); }\
1562 if ( __AROS_ISREG(a7,__AROS_FP_REG)) { \
1563 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg7), "r" (_n), "i" (__LINE__), "i" (id) \
1564 , "r" (__AROS_LTA(a1)) \
1565 , "r" (__AROS_LTA(a2)) \
1566 , "r" (__AROS_LTA(a3)) \
1567 , "r" (__AROS_LTA(a4)) \
1568 , "r" (__AROS_LTA(a5)) \
1569 , "r" (__AROS_LTA(a6)) \
1570 , "r" (__AROS_LTA(a7)) \
1571 , "r" (__AROS_LTA(a8)) \
1572 , "r" (__AROS_LTA(a9)) \
1573 , "r" (__AROS_LTA(a10)) \
1574 , "r" (__AROS_LTA(a11)) \
1575 , "r" (__AROS_LTA(a12)) \
1576 , "r" (__AROS_LTA(a13)) \
1577 ); }\
1578 if ( __AROS_ISREG(a8,__AROS_FP_REG)) { \
1579 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg8), "r" (_n), "i" (__LINE__), "i" (id) \
1580 , "r" (__AROS_LTA(a1)) \
1581 , "r" (__AROS_LTA(a2)) \
1582 , "r" (__AROS_LTA(a3)) \
1583 , "r" (__AROS_LTA(a4)) \
1584 , "r" (__AROS_LTA(a5)) \
1585 , "r" (__AROS_LTA(a6)) \
1586 , "r" (__AROS_LTA(a7)) \
1587 , "r" (__AROS_LTA(a8)) \
1588 , "r" (__AROS_LTA(a9)) \
1589 , "r" (__AROS_LTA(a10)) \
1590 , "r" (__AROS_LTA(a11)) \
1591 , "r" (__AROS_LTA(a12)) \
1592 , "r" (__AROS_LTA(a13)) \
1593 ); }\
1594 if ( __AROS_ISREG(a9,__AROS_FP_REG)) { \
1595 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg9), "r" (_n), "i" (__LINE__), "i" (id) \
1596 , "r" (__AROS_LTA(a1)) \
1597 , "r" (__AROS_LTA(a2)) \
1598 , "r" (__AROS_LTA(a3)) \
1599 , "r" (__AROS_LTA(a4)) \
1600 , "r" (__AROS_LTA(a5)) \
1601 , "r" (__AROS_LTA(a6)) \
1602 , "r" (__AROS_LTA(a7)) \
1603 , "r" (__AROS_LTA(a8)) \
1604 , "r" (__AROS_LTA(a9)) \
1605 , "r" (__AROS_LTA(a10)) \
1606 , "r" (__AROS_LTA(a11)) \
1607 , "r" (__AROS_LTA(a12)) \
1608 , "r" (__AROS_LTA(a13)) \
1609 ); }\
1610 if ( __AROS_ISREG(a10,__AROS_FP_REG)) { \
1611 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg10), "r" (_n), "i" (__LINE__), "i" (id) \
1612 , "r" (__AROS_LTA(a1)) \
1613 , "r" (__AROS_LTA(a2)) \
1614 , "r" (__AROS_LTA(a3)) \
1615 , "r" (__AROS_LTA(a4)) \
1616 , "r" (__AROS_LTA(a5)) \
1617 , "r" (__AROS_LTA(a6)) \
1618 , "r" (__AROS_LTA(a7)) \
1619 , "r" (__AROS_LTA(a8)) \
1620 , "r" (__AROS_LTA(a9)) \
1621 , "r" (__AROS_LTA(a10)) \
1622 , "r" (__AROS_LTA(a11)) \
1623 , "r" (__AROS_LTA(a12)) \
1624 , "r" (__AROS_LTA(a13)) \
1625 ); }\
1626 if ( __AROS_ISREG(a11,__AROS_FP_REG)) { \
1627 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg11), "r" (_n), "i" (__LINE__), "i" (id) \
1628 , "r" (__AROS_LTA(a1)) \
1629 , "r" (__AROS_LTA(a2)) \
1630 , "r" (__AROS_LTA(a3)) \
1631 , "r" (__AROS_LTA(a4)) \
1632 , "r" (__AROS_LTA(a5)) \
1633 , "r" (__AROS_LTA(a6)) \
1634 , "r" (__AROS_LTA(a7)) \
1635 , "r" (__AROS_LTA(a8)) \
1636 , "r" (__AROS_LTA(a9)) \
1637 , "r" (__AROS_LTA(a10)) \
1638 , "r" (__AROS_LTA(a11)) \
1639 , "r" (__AROS_LTA(a12)) \
1640 , "r" (__AROS_LTA(a13)) \
1641 ); }\
1642 if ( __AROS_ISREG(a12,__AROS_FP_REG)) { \
1643 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg12), "r" (_n), "i" (__LINE__), "i" (id) \
1644 , "r" (__AROS_LTA(a1)) \
1645 , "r" (__AROS_LTA(a2)) \
1646 , "r" (__AROS_LTA(a3)) \
1647 , "r" (__AROS_LTA(a4)) \
1648 , "r" (__AROS_LTA(a5)) \
1649 , "r" (__AROS_LTA(a6)) \
1650 , "r" (__AROS_LTA(a7)) \
1651 , "r" (__AROS_LTA(a8)) \
1652 , "r" (__AROS_LTA(a9)) \
1653 , "r" (__AROS_LTA(a10)) \
1654 , "r" (__AROS_LTA(a11)) \
1655 , "r" (__AROS_LTA(a12)) \
1656 , "r" (__AROS_LTA(a13)) \
1657 ); }\
1658 if ( __AROS_ISREG(a13,__AROS_FP_REG)) { \
1659 asm volatile ("move.l %%" __AROS_FP_SREG ",%%sp@-\nmove.l %0,%%" __AROS_FP_SREG "\nmove.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\nmove.l %%sp@+,%%" __AROS_FP_SREG "\n" : : "r" (_arg13), "r" (_n), "i" (__LINE__), "i" (id) \
1660 , "r" (__AROS_LTA(a1)) \
1661 , "r" (__AROS_LTA(a2)) \
1662 , "r" (__AROS_LTA(a3)) \
1663 , "r" (__AROS_LTA(a4)) \
1664 , "r" (__AROS_LTA(a5)) \
1665 , "r" (__AROS_LTA(a6)) \
1666 , "r" (__AROS_LTA(a7)) \
1667 , "r" (__AROS_LTA(a8)) \
1668 , "r" (__AROS_LTA(a9)) \
1669 , "r" (__AROS_LTA(a10)) \
1670 , "r" (__AROS_LTA(a11)) \
1671 , "r" (__AROS_LTA(a12)) \
1672 , "r" (__AROS_LTA(a13)) \
1673 ); }\
1674 if (!(0 || __AROS_ISREG(a1,__AROS_FP_REG) || __AROS_ISREG(a2,__AROS_FP_REG) || __AROS_ISREG(a3,__AROS_FP_REG) || __AROS_ISREG(a4,__AROS_FP_REG) || __AROS_ISREG(a5,__AROS_FP_REG) || __AROS_ISREG(a6,__AROS_FP_REG) || __AROS_ISREG(a7,__AROS_FP_REG) || __AROS_ISREG(a8,__AROS_FP_REG) || __AROS_ISREG(a9,__AROS_FP_REG) || __AROS_ISREG(a10,__AROS_FP_REG) || __AROS_ISREG(a11,__AROS_FP_REG) || __AROS_ISREG(a12,__AROS_FP_REG) || __AROS_ISREG(a13,__AROS_FP_REG))) {\
1675 asm volatile ("move.l %3,%%sp@-\npea.l .Lufc13_%c2\nmove.l %1, %%sp@-\nrts\n.Lufc13_%c2:\naddq.l #4,%%sp\n\n" : : "i" (0), "r" (_n), "i" (__LINE__), "i" (id) \
1676 , "r" (__AROS_LTA(a1)) \
1677 , "r" (__AROS_LTA(a2)) \
1678 , "r" (__AROS_LTA(a3)) \
1679 , "r" (__AROS_LTA(a4)) \
1680 , "r" (__AROS_LTA(a5)) \
1681 , "r" (__AROS_LTA(a6)) \
1682 , "r" (__AROS_LTA(a7)) \
1683 , "r" (__AROS_LTA(a8)) \
1684 , "r" (__AROS_LTA(a9)) \
1685 , "r" (__AROS_LTA(a10)) \
1686 , "r" (__AROS_LTA(a11)) \
1687 , "r" (__AROS_LTA(a12)) \
1688 , "r" (__AROS_LTA(a13)) \
1689 ); }\
1690 asm volatile ("" : "=r" (_ret) : : "%a0", "%a1", "%d1", "cc", "memory"); \
1691 (t)_ret; \
1694 #endif /* P96CALL_H */