gpu_neon: fix some missing ebuf updates
[pcsx_rearmed.git] / deps / lightning / check / unldst.tst
1 #define GENTABLE                0
2 #define USEFUNC                 0
3
4 #if __WORDSIZE == 32
5 #define GVAL                    0xfedcba98
6 #else
7 #define GVAL                    0xfedcba9876543210
8 #endif
9 #define FVAL                    2.5
10 #define DVAL                    7.5
11
12 #if USEFUNC
13 #  define LOAD(NAME, TYPE, R0, BASE, SIZE, RESULT)                      \
14         prepare                                                         \
15                 pushargi BASE                                           \
16                 pushargi SIZE                                           \
17         finishi NAME##TYPE                                              \
18         retval %R0                                                      \
19         beqi NAME##TYPE##R0##BASE##SIZE %R0 RESULT                      \
20         calli @abort                                                    \
21 NAME##TYPE##R0##BASE##SIZE:
22 #else
23 #  define LOAD(NAME, TYPE, R0, BASE, SIZE, RESULT)                      \
24         movi %R0 BASE                                                   \
25         NAME##r##TYPE %R0 %R0 SIZE                                      \
26         beqi NAME##r##TYPE##R0##BASE##SIZE %R0 RESULT                   \
27         calli @abort                                                    \
28 NAME##r##TYPE##R0##BASE##SIZE:                                          \
29         NAME##i##TYPE %R0 BASE SIZE                                     \
30         beqi NAME##i##TYPE##R0##BASE##SIZE %R0 RESULT                   \
31         calli @abort                                                    \
32 NAME##i##TYPE##R0##BASE##SIZE:
33 #endif
34 #define LOAD1(NAME, TYPE, R0, R1, R2, V0, V1, V2, BASE, SIZE, RESULT)   \
35         LOAD(NAME, TYPE, R0, BASE, SIZE, RESULT)                        \
36         LOAD(NAME, TYPE, R1, BASE, SIZE, RESULT)                        \
37         LOAD(NAME, TYPE, R2, BASE, SIZE, RESULT)                        \
38         LOAD(NAME, TYPE, V0, BASE, SIZE, RESULT)                        \
39         LOAD(NAME, TYPE, V1, BASE, SIZE, RESULT)                        \
40         LOAD(NAME, TYPE, V2, BASE, SIZE, RESULT)
41 #define  UNLD(BASE, SIZE, RESULT)                                       \
42         LOAD1(unld, , r0, r1, r2, v0, v1, v2, BASE, SIZE, RESULT)
43 #define UNLDU(BASE, SIZE, RESULT)                                       \
44         LOAD1(unld, _u, r0, r1, r2, v0, v1, v2, BASE, SIZE, RESULT)
45
46 #if USEFUNC
47 #  define STORE(R0, R1, R2, BASE, SIZE, RES0, RES1)                     \
48         movi %R0 str0                                                   \
49         movi %R1 0                                                      \
50         str %R0 %R1                                                     \
51         stxi $(__WORDSIZE >> 3) %R0 %R1                                 \
52         movi %R0 GVAL                                                   \
53         prepare                                                         \
54                 pushargi BASE                                           \
55                 pushargr %R0                                            \
56                 pushargi SIZE                                           \
57         finishi unst                                                    \
58         movi %R0 str0                                                   \
59         ldr %R1 %R0                                                     \
60         ldxi %R2 %R0 $(__WORDSIZE >> 3)                                 \
61         bnei unst##R0##R1##R2##BASE##SIZE##fail %R1 RES0                \
62         beqi unst##R0##R1##R2##BASE##SIZE %R2 RES1                      \
63 unst##R0##R1##R2##BASE##SIZE##fail:                                     \
64         calli @abort                                                    \
65 unst##R0##R1##R2##BASE##SIZE:
66 #else
67 #  define STORE(R0, R1, R2, BASE, SIZE, RES0, RES1)                     \
68         movi %R0 str0                                                   \
69         movi %R1 0                                                      \
70         str %R0 %R1                                                     \
71         stxi $(__WORDSIZE >> 3) %R0 %R1                                 \
72         movi %R0 GVAL                                                   \
73         movi %R1 BASE                                                   \
74         unstr %R1 %R0 SIZE                                              \
75         movi %R0 str0                                                   \
76         ldr %R1 %R0                                                     \
77         ldxi %R2 %R0 $(__WORDSIZE >> 3)                                 \
78         bnei unst##r##R0##R1##R2##BASE##SIZE##fail %R1 RES0             \
79         beqi unst##r##R0##R1##R2##BASE##SIZE %R2 RES1                   \
80 unst##r##R0##R1##R2##BASE##SIZE##fail:                                  \
81         calli @abort                                                    \
82 unst##r##R0##R1##R2##BASE##SIZE:                                        \
83         movi %R0 str0                                                   \
84         movi %R1 0                                                      \
85         str %R0 %R1                                                     \
86         stxi $(__WORDSIZE >> 3) %R0 %R1                                 \
87         movi %R0 GVAL                                                   \
88         unsti BASE %R0 SIZE                                             \
89         movi %R0 str0                                                   \
90         ldr %R1 %R0                                                     \
91         ldxi %R2 %R0 $(__WORDSIZE >> 3)                                 \
92         bnei unst##i##R0##R1##R2##BASE##SIZE##fail %R1 RES0             \
93         beqi unst##i##R0##R1##R2##BASE##SIZE %R2 RES1                   \
94 unst##i##R0##R1##R2##BASE##SIZE##fail:                                  \
95         calli @abort                                                    \
96 unst##i##R0##R1##R2##BASE##SIZE:
97 #endif
98 #define STORE1(R0, R1, R2, V0, V1, V2, BASE, SIZE, RES0, RES1)          \
99         STORE(R0, R1, R2, BASE, SIZE, RES0, RES1)                       \
100         STORE(R1, R2, V0, BASE, SIZE, RES0, RES1)                       \
101         STORE(R2, V0, V1, BASE, SIZE, RES0, RES1)                       \
102         STORE(V0, V1, V2, BASE, SIZE, RES0, RES1)                       \
103         STORE(V1, V2, R0, BASE, SIZE, RES0, RES1)                       \
104         STORE(V2, R0, R1, BASE, SIZE, RES0, RES1)
105 #define  UNST(BASE, SIZE, RES0, RES1)                                   \
106         STORE1(r0, r1, r2, v0, v1, v2, BASE, SIZE, RES0, RES1)
107
108 #if USEFUNC
109 #  define F_LDST(F0, BASE, VAL)                                         \
110         movi %r2 str0                                                   \
111         movi %r1 0                                                      \
112         str %r2 %r1                                                     \
113         stxi $(__WORDSIZE >> 3) %r2 %r1                                 \
114         movi_f %F0 VAL                                                  \
115         sti_f cvt %F0                                                   \
116         ldi_i %r0 cvt                                                   \
117         prepare                                                         \
118                 pushargi BASE                                           \
119                 pushargr %r0                                            \
120         finishi st4                                                     \
121         prepare                                                         \
122                 pushargi BASE                                           \
123         finishi ld4                                                     \
124         retval %r0                                                      \
125         sti_i cvt %r0                                                   \
126         movi_f %F0 -VAL                                                 \
127         ldi_f %F0 cvt                                                   \
128         beqi_f f##F0##BASE %F0 VAL                                      \
129         calli @abort                                                    \
130 f##F0##BASE:
131 #else
132 #  define F_LDST(F0, BASE, VAL)                                         \
133         movi %v0 BASE                                                   \
134         movi_f %F0 VAL                                                  \
135         unstr_x %v0 %F0 4                                               \
136         movi_f %F0 0                                                    \
137         unldr_x %F0 %v0 4                                               \
138         beqi_f fr##F0##BASE %F0 VAL                                     \
139         calli @abort                                                    \
140 fr##F0##BASE:                                                           \
141         movi_f %F0 VAL                                                  \
142         unsti_x BASE %F0 4                                              \
143         movi_f %F0 0                                                    \
144         unldi_x %F0 BASE 4                                              \
145         beqi_f fi##F0##BASE %F0 VAL                                     \
146         calli @abort                                                    \
147 fi##F0##BASE:
148 #endif
149 #define FLDST1(F0, F1, F2, F3, F4, F5, BASE, VAL)                       \
150         F_LDST(F0, BASE, VAL)                                           \
151         F_LDST(F1, BASE, VAL)                                           \
152         F_LDST(F2, BASE, VAL)                                           \
153         F_LDST(F3, BASE, VAL)                                           \
154         F_LDST(F4, BASE, VAL)                                           \
155         F_LDST(F5, BASE, VAL)
156 #define FLDST(BASE, VAL)                                                \
157         FLDST1(f0, f1, f2, f3, f4, f5, BASE, VAL)
158
159 #if USEFUNC
160 #  if __WORDSIZE == 32
161 #    if __BYTE_ORDER == __LITTLE_ENDIAN
162 #      define D_LDST(F0, BASE, VAL)                                     \
163         movi %r2 BASE                                                   \
164         movi %r1 0                                                      \
165         str %r2 %r1                                                     \
166         stxi 4 %r2 %r1                                                  \
167         movi_d %F0 VAL                                                  \
168         sti_d cvt %F0                                                   \
169         movi %r0 cvt                                                    \
170         ldr %r0 %r0                                                     \
171         prepare                                                         \
172                 pushargi BASE                                           \
173                 pushargr %r0                                            \
174         finishi st4                                                     \
175         prepare                                                         \
176                 pushargi BASE                                           \
177         finishi ld4                                                     \
178         retval %v2                                                      \
179         movi %r0 cvt                                                    \
180         addi %r0 %r0 4                                                  \
181         ldr %r0 %r0                                                     \
182         movi %v0 BASE                                                   \
183         addi %v0 %v0 4                                                  \
184         prepare                                                         \
185                 pushargr %v0                                            \
186                 pushargr %r0                                            \
187         finishi st4                                                     \
188         prepare                                                         \
189                 pushargr %v0                                            \
190         finishi ld4                                                     \
191         retval %r0                                                      \
192         movi %r1 cvt                                                    \
193         str %r1 %v2                                                     \
194         stxi 4 %r1 %r0                                                  \
195         ldi_d %F0 cvt                                                   \
196         beqi_d d##F0##BASE %F0 VAL                                      \
197         calli @abort                                                    \
198 d##F0##BASE:
199 #    else
200 #      define D_LDST(F0, BASE, VAL)                                     \
201         movi %r2 BASE                                                   \
202         movi %r1 0                                                      \
203         str %r2 %r1                                                     \
204         stxi 4 %r2 %r1                                                  \
205         movi_d %F0 VAL                                                  \
206         sti_d cvt %F0                                                   \
207         movi %r0 cvt                                                    \
208         addi %r0 %r0 4                                                  \
209         ldr %r0 %r0                                                     \
210         prepare                                                         \
211                 pushargi BASE                                           \
212                 pushargr %r0                                            \
213         finishi st4                                                     \
214         prepare                                                         \
215                 pushargi BASE                                           \
216         finishi ld4                                                     \
217         retval %v2                                                      \
218         movi %r0 cvt                                                    \
219         ldr %r0 %r0                                                     \
220         movi %v0 BASE                                                   \
221         addi %v0 %v0 4                                                  \
222         prepare                                                         \
223                 pushargr %v0                                            \
224                 pushargr %r0                                            \
225         finishi st4                                                     \
226         prepare                                                         \
227                 pushargr %v0                                            \
228         finishi ld4                                                     \
229         retval %r0                                                      \
230         movi %r1 cvt                                                    \
231         str %r1 %r0                                                     \
232         stxi 4 %r1 %v2                                                  \
233         ldi_d %F0 cvt                                                   \
234         beqi_d d##F0##BASE %F0 VAL                                      \
235         calli @abort                                                    \
236 d##F0##BASE:
237 #    endif
238 #  else
239 #    define D_LDST(F0, BASE, VAL)                                       \
240         movi %r2 str0                                                   \
241         movi %r1 0                                                      \
242         stxi 8 %r2 %r1                                                  \
243         movi_d %F0 DVAL                                                 \
244         sti_d cvt %F0                                                   \
245         ldi %r0 cvt                                                     \
246         prepare                                                         \
247                 pushargi BASE                                           \
248                 pushargr %r0                                            \
249         finishi st8                                                     \
250         prepare                                                         \
251                 pushargi BASE                                           \
252         finishi ld8                                                     \
253         retval %r0                                                      \
254         sti cvt %r0                                                     \
255         ldi_d %F0 cvt                                                   \
256         beqi_d d##F0##BASE %F0 VAL                                      \
257         calli @abort                                                    \
258 d##F0##BASE:
259 #  endif
260 #else
261 #  define D_LDST(F0, BASE, VAL)                                         \
262         movi %v0 BASE                                                   \
263         movi_d %F0 VAL                                                  \
264         unstr_x %v0 %F0 8                                               \
265         movi_d %F0 0                                                    \
266         unldr_x %F0 %v0 8                                               \
267         beqi_d dr##F0##BASE %F0 VAL                                     \
268         calli @abort                                                    \
269 dr##F0##BASE:                                                           \
270         movi_d %F0 VAL                                                  \
271         unsti_x BASE %F0 8                                              \
272         movi_d %F0 0                                                    \
273         unldi_x %F0 BASE 8                                              \
274         beqi_d di##F0##BASE %F0 VAL                                     \
275         calli @abort                                                    \
276 di##F0##BASE:
277 #endif
278
279 #define DLDST1(F0, F1, F2, F3, F4, F5, BASE, VAL)                       \
280         D_LDST(F0, BASE, VAL)                                           \
281         D_LDST(F1, BASE, VAL)                                           \
282         D_LDST(F2, BASE, VAL)                                           \
283         D_LDST(F3, BASE, VAL)                                           \
284         D_LDST(F4, BASE, VAL)                                           \
285         D_LDST(F5, BASE, VAL)
286 #define DLDST(BASE, VAL)                                                \
287         DLDST1(f0, f1, f2, f3, f4, f5, BASE, VAL)
288
289 .data   4096
290 ok:
291 .c      "ok"
292 sUNLD:
293 .c      " UNLD"
294 sUNLDU:
295 .c      "UNLDU"
296 fmt_ldf:
297 .c      "\tFLDST(str%d, %.1f)\n"
298 fmt_ldd:
299 .c      "\tDLDST(str%d, %.1f)\n"
300 .align  8
301 cvt:
302 .size   8
303 str0:
304 .c      0x00
305 str1:
306 .c      0x00
307 str2:
308 .c      0x00
309 str3:
310 .c      0x00
311 str4:
312 .c      0x00
313 str5:
314 .c      0x00
315 str6:
316 .c      0x00
317 str7:
318 .c      0x00
319 str8:
320 .c      0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
321 #if __WORDSIZE == 32
322 buf0:
323 .c      0x80
324 buf1:
325 .c      0x81
326 buf2:
327 .c      0x82
328 buf3:
329 .c      0x83 0x84 0x85 0x86 0x87
330 fmt:
331 .c      "0x%08x\n"
332 fmt_ld:
333 .c      "\t%s(buf%d, %d, 0x%08x)\n"
334 fmt_st:
335 .c      "\t UNST(str%d, %d, 0x%08x, 0x%08x)\n"
336 #else
337 buf0:
338 .c      0x80
339 buf1:
340 .c      0x81
341 buf2:
342 .c      0x82
343 buf3:
344 .c      0x83
345 buf4:
346 .c      0x84
347 buf5:
348 .c      0x85
349 buf6:
350 .c      0x86
351 buf7:
352 .c      0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f
353 fmt:
354 .c      "0x%016lx\n"
355 fmt_ld:
356 .c      "\t%s(buf%d, %d, 0x%016lx)\n"
357 fmt_st:
358 .c      "\t UNST(str%d, %d, 0x%016lx, 0x%016lx)\n"
359 #endif
360
361 .code
362         jmpi main
363
364 ld2:
365         prolog
366         arg $addr
367         getarg %r1 $addr
368         andi %r2 %r1 -2
369         bner ld2_un2 %r1 %r2
370         ldr_s %r0 %r1
371         jmpi ld2_al
372 ld2_un2:
373 #if __BYTE_ORDER == __LITTLE_ENDIAN
374         ldr_uc %r0 %r1
375         ldxi_c %r2 %r1 1
376         lshi %r2 %r2 8
377 #else
378         ldr_c %r0 %r1
379         lshi %r0 %r0 8
380         ldxi_uc %r2 %r1 1
381 #endif
382         orr %r0 %r0 %r2
383 ld2_al:
384         retr %r0
385         epilog
386
387 ld2u:
388         prolog
389         arg $addr
390         getarg %r1 $addr
391         andi %r2 %r1 -2
392         bner ld2u_un2 %r1 %r2
393         ldr_us %r0 %r1
394         jmpi ld2u_al
395 ld2u_un2:
396         ldr_uc %r0 %r1
397         ldxi_uc %r2 %r1 1
398 #if __BYTE_ORDER == __LITTLE_ENDIAN
399         lshi %r2 %r2 8
400 #else
401         lshi %r0 %r0 8
402 #endif
403         orr %r0 %r0 %r2
404 ld2u_al:
405         retr %r0
406         epilog
407
408 ld3:
409         prolog
410         arg $addr
411         getarg %r1 $addr
412         andi %r2 %r1 -2
413         bner ld3_un2 %r1 %r2
414 #if __BYTE_ORDER == __LITTLE_ENDIAN
415         ldr_us %r0 %r1
416         ldxi_c %r2 %r1 2
417         lshi %r2 %r2 16
418 #else
419         ldr_s %r0 %r1
420         lshi %r0 %r0 8
421         ldxi_uc %r2 %r1 2
422 #endif
423         jmpi ld3_or
424 ld3_un2:
425 #if __BYTE_ORDER == __LITTLE_ENDIAN
426         ldr_uc %r0 %r1
427         ldxi_s %r2 %r1 1
428         lshi %r2 %r2 8
429 #else
430         ldr_c %r0 %r1
431         lshi %r0 %r0 16
432         ldxi_us %r2 %r1 1
433 #endif
434 ld3_or:
435         orr %r0 %r0 %r2
436         retr %r0
437         epilog
438
439 ld3u:
440         prolog
441         arg $addr
442         getarg %r1 $addr
443         andi %r2 %r1 -2
444         bner ld3u_un2 %r1 %r2
445 #if __BYTE_ORDER == __LITTLE_ENDIAN
446         ldr_us %r0 %r1
447         ldxi_uc %r2 %r1 2
448         lshi %r2 %r2 16
449 #else
450         ldr_us %r0 %r1
451         lshi %r0 %r0 8
452         ldxi_uc %r2 %r1 2
453 #endif
454         jmpi ld3u_or
455 ld3u_un2:
456 #if __BYTE_ORDER == __LITTLE_ENDIAN
457         ldr_uc %r0 %r1
458         ldxi_us %r2 %r1 1
459         lshi %r2 %r2 8
460 #else
461         ldr_uc %r0 %r1
462         lshi %r0 %r0 16
463         ldxi_us %r2 %r1 1
464 #endif
465 ld3u_or:
466         orr %r0 %r0 %r2
467         retr %r0
468         epilog
469
470 ld4:
471         prolog
472         arg $addr
473         getarg %r1 $addr
474         andi %r2 %r1 -4
475         bner ld4_un4 %r1 %r2
476         ldr_i %r0 %r1
477         jmpi ld4_al
478 ld4_un4:
479         andi %r2 %r1 -2
480         bner ld4_un2 %r1 %r2
481 #if __BYTE_ORDER == __LITTLE_ENDIAN
482         ldr_us %r0 %r1
483         ldxi_s %r2 %r1 2
484         lshi %r2 %r2 16
485 #else
486         ldr_s %r0 %r1
487         lshi %r0 %r0 16
488         ldxi_us %r2 %r1 2
489 #endif
490         jmpi ld4_or
491         // assume address is mapped in a multiple of 4 as it will read
492         // one out of bounds byte to reduce number of used instructions
493 ld4_un2:
494         andi %r2 %r1 3
495         bnei ld4_un3 %r2 3
496 #if __BYTE_ORDER == __LITTLE_ENDIAN
497         ldr_uc %r0 %r1
498         ldxi_i %r2 %r1 1
499         lshi %r2 %r2 8
500 #  if __WORDSIZE == 64
501         extr_i %r2 %r2
502 #  endif
503 #else
504         ldr_c %r0 %r1
505         lshi %r0 %r0 24
506 #  if __WORDSIZE == 32
507         ldxi %r2 %r1 1
508 #  else
509         ldxi_ui %r2 %r1 1
510 #  endif
511         rshi_u %r2 %r2 8
512 #endif
513         jmpi ld4_or
514 ld4_un3:
515 #if __BYTE_ORDER == __LITTLE_ENDIAN
516 #  if __WORDSIZE == 32
517         ldxi %r0 %r1 -1
518 #  else
519         ldxi_ui %r0 %r1 -1
520 #  endif
521         rshi_u %r0 %r0 8
522         ldxi_c %r2 %r1 3
523         lshi %r2 %r2 24
524 #else
525         ldxi_i %r0 %r1 -1
526         lshi %r0 %r0 8
527 #  if __WORDSIZE == 64
528         extr_i %r0 %r0
529 #  endif
530         ldxi_uc %r2 %r1 3
531 #endif
532 ld4_or:
533         orr %r0 %r0 %r2
534 ld4_al:
535         retr %r0
536         epilog
537
538 #if __WORDSIZE == 64
539 ld4u:
540         prolog
541         arg $addr
542         getarg %r1 $addr
543         andi %r2 %r1 -4
544         bner ld4u_un4 %r1 %r2
545         ldr_ui %r0 %r1
546         jmpi ld4u_al
547 ld4u_un4:
548         andi %r2 %r1 -2
549         bner ld4u_un2 %r1 %r2
550 #  if __BYTE_ORDER == __LITTLE_ENDIAN
551         ldr_us %r0 %r1
552         ldxi_us %r2 %r1 2
553         lshi %r2 %r2 16
554 #  else
555         ldr_us %r0 %r1
556         lshi %r0 %r0 16
557         ldxi_us %r2 %r1 2
558 #  endif
559         jmpi ld4u_or
560         // assume address is mapped in a multiple of 4 as it will read
561         // one out of bounds byte to reduce number of used instructions
562 ld4u_un2:
563         andi %r2 %r1 3
564         bnei ld4u_un3 %r2 3
565 #  if __BYTE_ORDER == __LITTLE_ENDIAN
566         ldr_uc %r0 %r1
567         ldxi_ui %r2 %r1 1
568         lshi %r2 %r2 8
569         extr_ui %r2 %r2
570 #  else
571         ldr_uc %r0 %r1
572         lshi %r0 %r0 24
573         ldxi_ui %r2 %r1 1
574         rshi_u %r2 %r2 8
575 #  endif
576         jmpi ld4u_or
577 ld4u_un3:
578 #  if __BYTE_ORDER == __LITTLE_ENDIAN
579         ldxi_ui %r0 %r1 -1
580         rshi %r0 %r0 8
581         ldxi_uc %r2 %r1 3
582         lshi %r2 %r2 24
583 #  else
584         ldxi_ui %r0 %r1 -1
585         lshi %r0 %r0 8
586         extr_ui %r0 %r0
587         ldxi_uc %r2 %r1 3
588 #  endif
589 ld4u_or:
590         orr %r0 %r0 %r2
591 ld4u_al:
592         retr %r0
593         epilog
594
595 ld5:
596         prolog
597         arg $addr
598         getarg %r1 $addr
599         andi %r2 %r1 -4
600         bner ld5_un4 %r1 %r2
601 #  if __BYTE_ORDER == __LITTLE_ENDIAN
602         ldr_ui %r0 %r1
603         ldxi_c %r2 %r1 4
604         lshi %r2 %r2 32
605 #  else
606         ldr_i %r0 %r1
607         lshi %r0 %r0 8
608         ldxi_uc %r2 %r1 4
609 #  endif
610         jmpi ld5_or
611 ld5_un4:
612         andi %r2 %r1 -2
613         bner ld5_un2 %r1 %r2
614 #  if __BYTE_ORDER == __LITTLE_ENDIAN
615         ldr_us %r0 %r1
616         ldxi_us %r2 %r1 2
617         lshi %r2 %r2 16
618         orr %r0 %r0 %r2
619         ldxi_c %r2 %r1 4
620         lshi %r2 %r2 32
621 #  else
622         ldr_s %r0 %r1
623         lshi %r0 %r0 24
624         ldxi_us %r2 %r1 2
625         lshi %r2 %r2 8
626         orr %r0 %r0 %r2
627         ldxi_uc %r2 %r1 4
628 #  endif
629         jmpi ld5_or
630 ld5_un2:
631         andi %r2 %r1 3
632         bnei ld5_un3 %r2 3
633 #  if __BYTE_ORDER == __LITTLE_ENDIAN
634         ldr_uc %r0 %r1
635         ldxi_i %r2 %r1 1
636         lshi %r2 %r2 8
637 #  else
638         ldr_c %r0 %r1
639         lshi %r0 %r0 32
640         ldxi_ui %r2 %r1 1
641 #  endif
642         jmpi ld5_or
643 ld5_un3:
644 #  if __BYTE_ORDER == __LITTLE_ENDIAN
645         ldr_uc %r0 %r1
646         ldxi_us %r2 %r1 1
647         lshi %r2 %r2 8
648         orr %r0 %r0 %r2
649         ldxi_s %r2 %r1 3
650         lshi %r2 %r2 24
651 #  else
652         ldr_c %r0 %r1
653         lshi %r0 %r0 32
654         ldxi_us %r2 %r1 1
655         lshi %r2 %r2 16
656         orr %r0 %r0 %r2
657         ldxi_us %r2 %r1 3
658 #  endif
659 ld5_or:
660         orr %r0 %r0 %r2
661         retr %r0
662         epilog
663
664 ld5u:
665         prolog
666         arg $addr
667         getarg %r1 $addr
668         andi %r2 %r1 -4
669         bner ld5u_un4 %r1 %r2
670 #  if __BYTE_ORDER == __LITTLE_ENDIAN
671         ldr_ui %r0 %r1
672         ldxi_uc %r2 %r1 4
673         lshi %r2 %r2 32
674 #  else
675         ldr_ui %r0 %r1
676         lshi %r0 %r0 8
677         ldxi_uc %r2 %r1 4
678 #  endif
679         jmpi ld5u_or
680 ld5u_un4:
681         andi %r2 %r1 -2
682         bner ld5u_un2 %r1 %r2
683 #  if __BYTE_ORDER == __LITTLE_ENDIAN
684         ldr_us %r0 %r1
685         ldxi_us %r2 %r1 2
686         lshi %r2 %r2 16
687         orr %r0 %r0 %r2
688         ldxi_uc %r2 %r1 4
689         lshi %r2 %r2 32
690 #  else
691         ldr_us %r0 %r1
692         lshi %r0 %r0 24
693         ldxi_us %r2 %r1 2
694         lshi %r2 %r2 8
695         orr %r0 %r0 %r2
696         ldxi_uc %r2 %r1 4
697 #  endif
698         jmpi ld5u_or
699 ld5u_un2:
700         andi %r2 %r1 3
701         bnei ld5u_un3 %r2 3
702 #  if __BYTE_ORDER == __LITTLE_ENDIAN
703         ldr_uc %r0 %r1
704         ldxi_ui %r2 %r1 1
705         lshi %r2 %r2 8
706 #  else
707         ldr_uc %r0 %r1
708         lshi %r0 %r0 32
709         ldxi_ui %r2 %r1 1
710 #  endif
711         jmpi ld5u_or
712 ld5u_un3:
713 #  if __BYTE_ORDER == __LITTLE_ENDIAN
714         ldr_uc %r0 %r1
715         ldxi_us %r2 %r1 1
716         lshi %r2 %r2 8
717         orr %r0 %r0 %r2
718         ldxi_us %r2 %r1 3
719         lshi %r2 %r2 24
720 #  else
721         ldr_uc %r0 %r1
722         lshi %r0 %r0 32
723         ldxi_us %r2 %r1 1
724         lshi %r2 %r2 16
725         orr %r0 %r0 %r2
726         ldxi_us %r2 %r1 3
727 #  endif
728 ld5u_or:
729         orr %r0 %r0 %r2
730         retr %r0
731         epilog
732
733 ld6:
734         prolog
735         arg $addr
736         getarg %r1 $addr
737         andi %r2 %r1 -4
738         bner ld6_un4 %r1 %r2
739 #  if __BYTE_ORDER == __LITTLE_ENDIAN
740         ldr_ui %r0 %r1
741         ldxi_s %r2 %r1 4
742         lshi %r2 %r2 32
743 #  else
744         ldr_i %r0 %r1
745         lshi %r0 %r0 16
746         ldxi_us %r2 %r1 4
747 #  endif
748         jmpi ld6_or
749 ld6_un4:
750         andi %r2 %r1 -2
751         bner ld6_un2 %r1 %r2
752 #  if __BYTE_ORDER == __LITTLE_ENDIAN
753         ldr_us %r0 %r1
754         ldxi_i %r2 %r1 2
755         lshi %r2 %r2 16
756 #  else
757         ldr_s %r0 %r1
758         lshi %r0 %r0 32
759         ldxi_ui %r2 %r1 2
760 #  endif
761         jmpi ld6_or
762 ld6_un2:
763         andi %r2 %r1 3
764         bnei ld6_un3 %r2 3
765 #  if __BYTE_ORDER == __LITTLE_ENDIAN
766         ldr_uc %r0 %r1
767         ldxi_ui %r2 %r1 1
768         lshi %r2 %r2 8
769         orr %r0 %r0 %r2
770         ldxi_c %r2 %r1 5
771         lshi %r2 %r2 40
772 #  else
773         ldr_c %r0 %r1
774         lshi %r0 %r0 40
775         ldxi_ui %r2 %r1 1
776         lshi %r2 %r2 8
777         orr %r0 %r0 %r2
778         ldxi_uc %r2 %r1 5
779 #  endif
780         jmpi ld6_or
781 ld6_un3:
782 #  if __BYTE_ORDER == __LITTLE_ENDIAN
783         ldr_uc %r0 %r1
784         ldxi_us %r2 %r1 1
785         lshi %r2 %r2 8
786         orr %r0 %r0 %r2
787         ldxi_us %r2 %r1 3
788         lshi %r2 %r2 24
789         orr %r0 %r0 %r2
790         ldxi_c %r2 %r1 5
791         lshi %r2 %r2 40
792 #  else
793         ldr_c %r0 %r1
794         lshi %r0 %r0 40
795         ldxi_us %r2 %r1 1
796         lshi %r2 %r2 24
797         orr %r0 %r0 %r2
798         ldxi_us %r2 %r1 3
799         lshi %r2 %r2 8
800         orr %r0 %r0 %r2
801         ldxi_uc %r2 %r1 5
802 #  endif
803 ld6_or:
804         orr %r0 %r0 %r2
805         retr %r0
806         epilog
807
808 ld6u:
809         prolog
810         arg $addr
811         getarg %r1 $addr
812         andi %r2 %r1 -4
813         bner ld6u_un4 %r1 %r2
814 #  if __BYTE_ORDER == __LITTLE_ENDIAN
815         ldr_ui %r0 %r1
816         ldxi_us %r2 %r1 4
817         lshi %r2 %r2 32
818 #  else
819         ldr_ui %r0 %r1
820         lshi %r0 %r0 16
821         ldxi_us %r2 %r1 4
822 #  endif
823         jmpi ld6u_or
824 ld6u_un4:
825         andi %r2 %r1 -2
826         bner ld6u_un2 %r1 %r2
827 #  if __BYTE_ORDER == __LITTLE_ENDIAN
828         ldr_us %r0 %r1
829         ldxi_ui %r2 %r1 2
830         lshi %r2 %r2 16
831 #  else
832         ldr_us %r0 %r1
833         lshi %r0 %r0 32
834         ldxi_ui %r2 %r1 2
835 #  endif
836         jmpi ld6u_or
837 ld6u_un2:
838         andi %r2 %r1 3
839         bnei ld6u_un3 %r2 3
840 #  if __BYTE_ORDER == __LITTLE_ENDIAN
841         ldr_uc %r0 %r1
842         ldxi_ui %r2 %r1 1
843         lshi %r2 %r2 8
844         orr %r0 %r0 %r2
845         ldxi_uc %r2 %r1 5
846         lshi %r2 %r2 40
847 #  else
848         ldr_uc %r0 %r1
849         lshi %r0 %r0 40
850         ldxi_ui %r2 %r1 1
851         lshi %r2 %r2 8
852         orr %r0 %r0 %r2
853         ldxi_uc %r2 %r1 5
854 #  endif
855         jmpi ld6u_or
856 ld6u_un3:
857 #  if __BYTE_ORDER == __LITTLE_ENDIAN
858         ldr_uc %r0 %r1
859         ldxi_us %r2 %r1 1
860         lshi %r2 %r2 8
861         orr %r0 %r0 %r2
862         ldxi_us %r2 %r1 3
863         lshi %r2 %r2 24
864         orr %r0 %r0 %r2
865         ldxi_uc %r2 %r1 5
866         lshi %r2 %r2 40
867 #  else
868         ldr_uc %r0 %r1
869         lshi %r0 %r0 40
870         ldxi_us %r2 %r1 1
871         lshi %r2 %r2 24
872         orr %r0 %r0 %r2
873         ldxi_us %r2 %r1 3
874         lshi %r2 %r2 8
875         orr %r0 %r0 %r2
876         ldxi_uc %r2 %r1 5
877 #  endif
878 ld6u_or:
879         orr %r0 %r0 %r2
880         retr %r0
881         epilog
882
883 ld7:
884         prolog
885         arg $addr
886         getarg %r1 $addr
887         andi %r2 %r1 -4
888         bner ld7_un4 %r1 %r2
889 #  if __BYTE_ORDER == __LITTLE_ENDIAN
890         ldr_ui %r0 %r1
891         ldxi_i %r2 %r1 4
892         lshi %r2 %r2 40
893         rshi %r2 %r2 8
894 #  else
895         ldr_i %r0 %r1
896         lshi %r0 %r0 24
897         ldxi_ui %r2 %r1 4
898         rshi %r2 %r2 8
899 #  endif
900         jmpi ld7_or
901 ld7_un4:
902         andi %r2 %r1 -2
903         bner ld7_un2 %r1 %r2
904 #  if __BYTE_ORDER == __LITTLE_ENDIAN
905         ldr_us %r0 %r1
906         ldxi_ui %r2 %r1 2
907         lshi %r2 %r2 16
908         orr %r0 %r0 %r2
909         ldxi_c %r2 %r1 6
910         lshi %r2 %r2 48
911 #  else
912         ldr_s %r0 %r1
913         lshi %r0 %r0 40
914         ldxi_ui %r2 %r1 2
915         lshi %r2 %r2 8
916         orr %r0 %r0 %r2
917         ldxi_uc %r2 %r1 6
918 #  endif
919         jmpi ld7_or
920 ld7_un2:
921         andi %r2 %r1 3
922         bnei ld7_un3 %r2 3
923 #  if __BYTE_ORDER == __LITTLE_ENDIAN
924         ldr_uc %r0 %r1
925         ldxi_ui %r2 %r1 1
926         lshi %r2 %r2 8
927         orr %r0 %r0 %r2
928         ldxi_s %r2 %r1 5
929         lshi %r2 %r2 40
930 #else
931         ldr_c %r0 %r1
932         lshi %r0 %r0 48
933         ldxi_ui %r2 %r1 1
934         lshi %r2 %r2 16
935         orr %r0 %r0 %r2
936         ldxi_us %r2 %r1 5
937 #  endif
938         jmpi ld7_or
939 ld7_un3:
940 #  if __BYTE_ORDER == __LITTLE_ENDIAN
941         ldr_uc %r0 %r1
942         ldxi_us %r2 %r1 1
943         lshi %r2 %r2 8
944         orr %r0 %r0 %r2
945         ldxi_i %r2 %r1 3
946         lshi %r2 %r2 24
947 #  else
948         ldr_c %r0 %r1
949         lshi %r0 %r0 48
950         ldxi_us %r2 %r1 1
951         lshi %r2 %r2 32
952         orr %r0 %r0 %r2
953         ldxi_ui %r2 %r1 3
954 #  endif
955 ld7_or:
956         orr %r0 %r0 %r2
957         retr %r0
958         epilog
959
960 ld7u:
961         prolog
962         arg $addr
963         getarg %r1 $addr
964         andi %r2 %r1 -4
965         bner ld7u_un4 %r1 %r2
966 #  if __BYTE_ORDER == __LITTLE_ENDIAN
967         ldr_ui %r0 %r1
968         ldxi_ui %r2 %r1 4
969         lshi %r2 %r2 40
970         rshi_u %r2 %r2 8
971 #  else
972         ldr_ui %r0 %r1
973         lshi %r0 %r0 24
974         ldxi_ui %r2 %r1 4
975         rshi_u %r2 %r2 8
976 #  endif
977         jmpi ld7u_or
978 ld7u_un4:
979         andi %r2 %r1 -2
980         bner ld7u_un2 %r1 %r2
981 #  if __BYTE_ORDER == __LITTLE_ENDIAN
982         ldr_us %r0 %r1
983         ldxi_ui %r2 %r1 2
984         lshi %r2 %r2 16
985         orr %r0 %r0 %r2
986         ldxi_uc %r2 %r1 6
987         lshi %r2 %r2 48
988 #  else
989         ldr_us %r0 %r1
990         lshi %r0 %r0 40
991         ldxi_ui %r2 %r1 2
992         lshi %r2 %r2 8
993         orr %r0 %r0 %r2
994         ldxi_uc %r2 %r1 6
995 #  endif
996         jmpi ld7u_or
997 ld7u_un2:
998         andi %r2 %r1 3
999         bnei ld7u_un3 %r2 3
1000 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1001         ldr_uc %r0 %r1
1002         ldxi_ui %r2 %r1 1
1003         lshi %r2 %r2 8
1004         orr %r0 %r0 %r2
1005         ldxi_us %r2 %r1 5
1006         lshi %r2 %r2 40
1007 #else
1008         ldr_uc %r0 %r1
1009         lshi %r0 %r0 48
1010         ldxi_ui %r2 %r1 1
1011         lshi %r2 %r2 16
1012         orr %r0 %r0 %r2
1013         ldxi_us %r2 %r1 5
1014 #  endif
1015         jmpi ld7u_or
1016 ld7u_un3:
1017 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1018         ldr_uc %r0 %r1
1019         ldxi_us %r2 %r1 1
1020         lshi %r2 %r2 8
1021         orr %r0 %r0 %r2
1022         ldxi_ui %r2 %r1 3
1023         lshi %r2 %r2 24
1024 #  else
1025         ldr_uc %r0 %r1
1026         lshi %r0 %r0 48
1027         ldxi_us %r2 %r1 1
1028         lshi %r2 %r2 32
1029         orr %r0 %r0 %r2
1030         ldxi_ui %r2 %r1 3
1031 #  endif
1032 ld7u_or:
1033         orr %r0 %r0 %r2
1034         retr %r0
1035         epilog
1036
1037 ld8:
1038         prolog
1039         arg $addr
1040         getarg %r1 $addr
1041         andi %r2 %r1 -8
1042         bner ld8_un8 %r1 %r2
1043         ldr_l %r0 %r1
1044         jmpi ld8_al
1045 ld8_un8:
1046         andi %r2 %r1 -4
1047         bner ld8_un4 %r1 %r2
1048 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1049         ldr_ui %r0 %r1
1050         ldxi_i %r2 %r1 4
1051         lshi %r2 %r2 32
1052 #  else
1053         ldr_i %r0 %r1
1054         ldxi_ui %r2 %r1 4
1055         lshi %r0 %r0 32
1056 #  endif
1057         jmpi ld8_or
1058 ld8_un4:
1059         andi %r2 %r1 -2
1060         bner ld8_un2 %r1 %r2
1061 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1062         ldr_us %r0 %r1
1063         ldxi_ui %r2 %r1 2
1064         lshi %r2 %r2 16
1065         orr %r0 %r0 %r2
1066         ldxi_s %r2 %r1 6
1067         lshi %r2 %r2 48
1068 #  else
1069         ldr_s %r0 %r1
1070         lshi %r0 %r0 48
1071         ldxi_ui %r2 %r1 2
1072         lshi %r2 %r2 16
1073         orr %r0 %r0 %r2
1074         ldxi_us %r2 %r1 6
1075 #  endif
1076         jmpi ld8_or
1077 ld8_un2:
1078         andi %r2 %r1 7
1079         bnei ld8_un7 %r2 7
1080 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1081         ldr_uc %r0 %r1
1082         ldxi_l %r2 %r1 1
1083         lshi %r2 %r2 8
1084 #  else
1085         ldr_c %r0 %r1
1086         ldxi_l %r2 %r1 1
1087         rshi_u %r2 %r2 8
1088         lshi %r0 %r0 56
1089 #  endif
1090         jmpi ld8_or
1091 ld8_un7:
1092         bnei ld8_un6 %r2 6
1093 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1094         ldr_us %r0 %r1
1095         ldxi_l %r2 %r1 2
1096         lshi %r2 %r2 16
1097 #  else
1098         ldr_s %r0 %r1
1099         lshi %r0 %r0 48
1100         ldxi_l %r2 %r1 2
1101         rshi_u %r2 %r2 16
1102 #  endif
1103         jmpi ld8_or
1104 ld8_un6:
1105         bnei ld8_un5 %r2 5
1106 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1107         ldxi_ui %r0 %r1 -1
1108         rshi_u %r0 %r0 8
1109         ldxi_ui %r2 %r1 3
1110         lshi %r2 %r2 24
1111         orr %r0 %r0 %r2
1112         ldxi_c %r2 %r1 7
1113         lshi %r2 %r2 56
1114 #  else
1115         ldxi_i %r0 %r1 -1
1116         lshi %r0 %r0 40
1117         ldxi_ui %r2 %r1 3
1118         lshi %r2 %r2 8
1119         orr %r0 %r0 %r2
1120         ldxi_uc %r2 %r1 7
1121 #  endif
1122         jmpi ld8_or
1123 ld8_un5:
1124         bnei ld8_un3 %r2 3
1125 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1126         ldr_uc %r0 %r1
1127         ldxi_ui %r2 %r1 1
1128         lshi %r2 %r2 8
1129         orr %r0 %r0 %r2
1130         ldxi_i %r2 %r1 5
1131         lshi %r2 %r2 40
1132 #  else
1133         ldr_c %r0 %r1
1134         lshi %r0 %r0 56
1135         ldxi_ui %r2 %r1 1
1136         lshi %r2 %r2 24
1137         orr %r0 %r0 %r2
1138         ldxi_ui %r2 %r1 5
1139         rshi_u %r2 %r2 8
1140 #  endif
1141         jmpi ld8_or
1142 ld8_un3:
1143 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1144         ldr_uc %r0 %r1
1145         ldxi_us %r2 %r1 1
1146         lshi %r2 %r2 8
1147         orr %r0 %r0 %r2
1148         ldxi_ui %r2 %r1 3
1149         lshi %r2 %r2 24
1150         orr %r0 %r0 %r2
1151         ldxi_c %r2 %r1 7
1152         lshi %r2 %r2 56
1153 #  else
1154         ldr_c %r0 %r1
1155         lshi %r0 %r0 56
1156         ldxi_us %r2 %r1 1
1157         lshi %r2 %r2 40
1158         orr %r0 %r0 %r2
1159         ldxi_ui %r2 %r1 3
1160         lshi %r2 %r2 8
1161         orr %r0 %r0 %r2
1162         ldxi_uc %r2 %r1 7
1163 #  endif
1164 ld8_or:
1165         orr %r0 %r0 %r2
1166 ld8_al:
1167         retr %r0
1168         epilog
1169 #endif
1170
1171 st2:
1172         prolog
1173         arg $addr
1174         arg $value
1175         getarg %r1 $addr
1176         getarg %r0 $value
1177         andi %r2 %r1 -2
1178         bner st2_un2 %r2 %r1
1179         str_s %r1 %r0
1180         jmpi st2_al
1181 st2_un2:
1182 #if __BYTE_ORDER == __LITTLE_ENDIAN
1183         str_c %r1 %r0
1184         rshi_u %r0 %r0 8
1185         stxi_c 1 %r1 %r0
1186 #else
1187         stxi_c 1 %r1 %r0
1188         rshi_u %r0 %r0 8
1189         str_c %r1 %r0
1190 #endif
1191 st2_al:
1192         ret
1193         epilog
1194
1195 st3:
1196         prolog
1197         arg $addr
1198         arg $value
1199         getarg %r1 $addr
1200         getarg %r0 $value
1201         andi %r2 %r1 -2
1202         bner st3_un2 %r2 %r1
1203 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1204         str_s %r1 %r0
1205         rshi %r0 %r0 16
1206         stxi_c 2 %r1 %r0
1207 #  else
1208         stxi_c 2 %r1 %r0
1209         rshi %r0 %r0 8
1210         str_s %r1 %r0
1211 #  endif
1212         jmpi st3_al
1213 st3_un2:
1214 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1215         str_c %r1 %r0
1216         rshi %r0 %r0 8
1217         stxi_s 1 %r1 %r0
1218 #  else
1219         stxi_s 1 %r1 %r0
1220         rshi %r0 %r0 16
1221         str_c %r1 %r0
1222 #  endif
1223 st3_al:
1224         ret
1225         epilog
1226
1227 st4:
1228         prolog
1229         arg $addr
1230         arg $value
1231         getarg %r1 $addr
1232         getarg %r0 $value
1233         andi %r2 %r1 -4
1234         bner st4_un4 %r2 %r1
1235         str_i %r1 %r0
1236         jmpi st4_al
1237 st4_un4:
1238         andi %r2 %r1 -2
1239         bner st4_un2 %r2 %r1
1240 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1241         str_s %r1 %r0
1242         rshi %r0 %r0 16
1243         stxi_s 2 %r1 %r0
1244 #  else
1245         stxi_s 2 %r1 %r0
1246         rshi %r0 %r0 16
1247         str_s %r1 %r0
1248 #  endif
1249         jmpi st4_al
1250 st4_un2:
1251 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1252         str_c %r1 %r0
1253         rshi %r0 %r0 8
1254         stxi_s 1 %r1 %r0
1255         rshi %r0 %r0 16
1256         stxi_c 3 %r1 %r0
1257 #  else
1258         stxi_c 3 %r1 %r0
1259         rshi %r0 %r0 8
1260         stxi_s 1 %r1 %r0
1261         rshi %r0 %r0 16
1262         str_c %r1 %r0
1263 #  endif
1264 st4_al:
1265         ret
1266         epilog
1267
1268 #if __WORDSIZE == 64
1269 st5:
1270         prolog
1271         arg $addr
1272         arg $value
1273         getarg %r1 $addr
1274         getarg %r0 $value
1275         andi %r2 %r1 3
1276         bnei st5_un3 %r2 3
1277 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1278         str_c %r1 %r0
1279         rshi %r0 %r0 8
1280         stxi_i 1 %r1 %r0
1281 #  else
1282         stxi_i 1 %r1 %r0
1283         rshi %r0 %r0 32
1284         str_c %r1 %r0   
1285 #  endif
1286         jmpi st5_al
1287 st5_un3:
1288         bnei st5_un2 %r2 2
1289 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1290         str_s %r1 %r0
1291         rshi %r0 %r0 16
1292         stxi_s 2 %r1 %r0
1293         rshi %r0 %r0 16
1294         stxi_c 4 %r1 %r0
1295 #  else
1296         stxi_c 4 %r1 %r0
1297         rshi %r0 %r0 8
1298         stxi_s 2 %r1 %r0
1299         rshi %r0 %r0 16
1300         str_s %r1 %r0
1301 #  endif
1302         jmpi st5_al
1303 st5_un2:
1304         bnei st5_un1 %r2 1
1305 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1306         str_c %r1 %r0
1307         rshi %r0 %r0 8
1308         stxi_s 1 %r1 %r0
1309         rshi %r0 %r0 16
1310         stxi_s 3 %r1 %r0
1311 #  else
1312         stxi_s 3 %r1 %r0
1313         rshi %r0 %r0 16
1314         stxi_s 1 %r1 %r0
1315         rshi %r0 %r0 16
1316         str_c %r1 %r0
1317 #  endif
1318         jmpi st5_al
1319 st5_un1:
1320 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1321         str_i %r1 %r0
1322         rshi %r0 %r0 32
1323         stxi_c 4 %r1 %r0
1324 #  else
1325         stxi_c 4 %r1 %r0
1326         rshi %r0 %r0 8
1327         str_i %r1 %r0
1328 #  endif
1329 st5_al:
1330         ret
1331         epilog
1332
1333 st6:
1334         prolog
1335         arg $addr
1336         arg $value
1337         getarg %r1 $addr
1338         getarg %r0 $value
1339         andi %r2 %r1 3
1340         bnei st6_un3 %r2 3
1341 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1342         str_c %r1 %r0
1343         rshi %r0 %r0 8
1344         stxi_i 1 %r1 %r0
1345         rshi %r0 %r0 32
1346         stxi_c 5 %r1 %r0
1347 #  else
1348         stxi_c 5 %r1 %r0
1349         rshi %r0 %r0 8
1350         stxi_i 1 %r1 %r0
1351         rshi %r0 %r0 32
1352         str_c %r1 %r0   
1353 #  endif
1354         jmpi st6_al
1355 st6_un3:
1356         bnei st6_un2 %r2 2
1357 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1358         str_s %r1 %r0
1359         rshi %r0 %r0 16
1360         stxi_s 2 %r1 %r0
1361         rshi %r0 %r0 16
1362         stxi_s 4 %r1 %r0
1363 #  else
1364         stxi_s 4 %r1 %r0
1365         rshi %r0 %r0 16
1366         stxi_s 2 %r1 %r0
1367         rshi %r0 %r0 16
1368         str_s %r1 %r0
1369 #  endif
1370         jmpi st6_al
1371 st6_un2:
1372         bnei st6_un1 %r2 1
1373 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1374         str_c %r1 %r0
1375         rshi %r0 %r0 8
1376         stxi_s 1 %r1 %r0
1377         rshi %r0 %r0 16
1378         stxi_s 3 %r1 %r0
1379         rshi %r0 %r0 16
1380         stxi_c 5 %r1 %r0
1381 #  else
1382         stxi_c 5 %r1 %r0
1383         rshi %r0 %r0 8
1384         stxi_s 3 %r1 %r0
1385         rshi %r0 %r0 16
1386         stxi_s 1 %r1 %r0
1387         rshi %r0 %r0 16
1388         str_c %r1 %r0
1389 #  endif
1390         jmpi st6_al
1391 st6_un1:
1392 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1393         str_i %r1 %r0
1394         rshi %r0 %r0 32
1395         stxi_s 4 %r1 %r0
1396 #  else
1397         stxi_s 4 %r1 %r0
1398         rshi %r0 %r0 16
1399         str_i %r1 %r0
1400 #  endif
1401 st6_al:
1402         ret
1403         epilog
1404
1405 st7:
1406         prolog
1407         arg $addr
1408         arg $value
1409         getarg %r1 $addr
1410         getarg %r0 $value
1411         andi %r2 %r1 3
1412         bnei st7_un3 %r2 3
1413 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1414         str_c %r1 %r0
1415         rshi %r0 %r0 8
1416         stxi_i 1 %r1 %r0
1417         rshi %r0 %r0 32
1418         stxi_s 5 %r1 %r0
1419 #  else
1420         stxi_s 5 %r1 %r0
1421         rshi %r0 %r0 16
1422         stxi_i 1 %r1 %r0
1423         rshi %r0 %r0 32
1424         str_c %r1 %r0   
1425 #  endif
1426         jmpi st7_al
1427 st7_un3:
1428         bnei st7_un2 %r2 2
1429 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1430         str_s %r1 %r0
1431         rshi %r0 %r0 16
1432         stxi_i 2 %r1 %r0
1433         rshi %r0 %r0 32
1434         stxi_c 6 %r1 %r0
1435 #  else
1436         stxi_c 6 %r1 %r0
1437         rshi %r0 %r0 8
1438         stxi_i 2 %r1 %r0
1439         rshi %r0 %r0 32
1440         str_s %r1 %r0
1441 #  endif
1442         jmpi st7_al
1443 st7_un2:
1444         bnei st7_un1 %r2 1
1445 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1446         str_c %r1 %r0
1447         rshi %r0 %r0 8
1448         stxi_s 1 %r1 %r0
1449         rshi %r0 %r0 16
1450         stxi_i 3 %r1 %r0
1451 #  else
1452         stxi_i 3 %r1 %r0
1453         rshi %r0 %r0 32
1454         stxi_s 1 %r1 %r0
1455         rshi %r0 %r0 16
1456         str_c %r1 %r0
1457 #  endif
1458         jmpi st7_al
1459 st7_un1:
1460 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1461         str_i %r1 %r0
1462         rshi %r0 %r0 32
1463         stxi_s 4 %r1 %r0
1464         rshi %r0 %r0 16
1465         stxi_c 6 %r1 %r0
1466 #  else
1467         stxi_c 6 %r1 %r0
1468         rshi %r0 %r0 8
1469         stxi_s 4 %r1 %r0
1470         rshi %r0 %r0 16
1471         str_i %r1 %r0
1472 #  endif
1473 st7_al:
1474         ret
1475         epilog
1476
1477 st8:
1478         prolog
1479         arg $addr
1480         arg $value
1481         getarg %r1 $addr
1482         getarg %r0 $value
1483         andi %r2 %r1 -8
1484         bner st8_un8 %r2 %r1
1485         str_l %r1 %r0
1486         jmpi st8_al
1487 st8_un8:
1488         andi %r2 %r1 -4
1489         bner st8_un4 %r2 %r1
1490 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1491         str_i %r1 %r0
1492         rshi %r0 %r0 32
1493         stxi_i 4 %r1 %r0
1494 #  else
1495         stxi_i 4 %r1 %r0
1496         rshi %r0 %r0 32
1497         str_i %r1 %r0
1498 #  endif
1499         jmpi st8_al
1500 st8_un4:
1501         andi %r2 %r1 -2
1502         bner st8_un2 %r2 %r1
1503 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1504         str_s %r1 %r0
1505         rshi %r0 %r0 16
1506         stxi_i 2 %r1 %r0
1507         rshi %r0 %r0 32
1508         stxi_s 6 %r1 %r0
1509 #  else
1510         stxi_s 6 %r1 %r0
1511         rshi %r0 %r0 16
1512         stxi_i 2 %r1 %r0
1513         rshi %r0 %r0 32
1514         str_s %r1 %r0
1515 #  endif
1516         jmpi st8_al
1517 st8_un2:
1518         andi %r2 %r1 3
1519         bnei st8_un3 %r2 3
1520 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1521         str_c %r1 %r0
1522         rshi %r0 %r0 8
1523         stxi_i 1 %r1 %r0
1524         rshi %r0 %r0 32
1525         stxi_s 5 %r1 %r0
1526         rshi %r0 %r0 16
1527         stxi_c 7 %r1 %r0
1528 #  else
1529         stxi_c 7 %r1 %r0
1530         rshi %r0 %r0 8
1531         stxi_s 5 %r1 %r0
1532         rshi %r0 %r0 16
1533         stxi_i 1 %r1 %r0
1534         rshi %r0 %r0 32
1535         str_c %r1 %r0
1536 #  endif
1537         jmpi st8_al
1538 st8_un3:
1539 #  if __BYTE_ORDER == __LITTLE_ENDIAN
1540         str_c %r1 %r0
1541         rshi %r0 %r0 8
1542         stxi_s 1 %r1 %r0
1543         rshi %r0 %r0 16
1544         stxi_i 3 %r1 %r0
1545         rshi %r0 %r0 32
1546         stxi_c 7 %r1 %r0
1547 #  else
1548         stxi_c 7 %r1 %r0
1549         rshi %r0 %r0 8
1550         stxi_i 3 %r1 %r0
1551         rshi %r0 %r0 32
1552         stxi_s 1 %r1 %r0
1553         rshi %r0 %r0 16
1554         str_c %r1 %r0
1555 #  endif
1556 st8_al:
1557         ret
1558         epilog
1559 #endif
1560
1561 unld:
1562         prolog
1563         arg $base
1564         arg $size
1565         getarg %v0 $base
1566         getarg %v1 $size
1567         bnei unld2 %v1 1
1568         ldr_c %r0 %v0
1569         jmpi unld_done
1570 unld2:
1571         bnei unld3 %v1 2
1572         prepare
1573                 pushargr %v0
1574         finishi ld2
1575         retval %r0
1576         jmpi unld_done
1577 unld3:
1578         bnei unld4 %v1 3
1579         prepare
1580                 pushargr %v0
1581         finishi ld3
1582         retval %r0
1583         jmpi unld_done
1584 unld4:
1585 #if __WORDSIZE == 64
1586         bnei unld5 %v1 4
1587 #else
1588         bnei unld_fail %v1 4
1589 #endif
1590         prepare
1591                 pushargr %v0
1592         finishi ld4
1593         retval %r0
1594         jmpi unld_done
1595 #if __WORDSIZE == 64
1596 unld5:
1597         bnei unld6 %v1 5
1598         prepare
1599                 pushargr %v0
1600         finishi ld5
1601         retval %r0
1602         jmpi unld_done
1603 unld6:
1604         bnei unld7 %v1 6
1605         prepare
1606                 pushargr %v0
1607         finishi ld6
1608         retval %r0
1609         jmpi unld_done
1610 unld7:
1611         bnei unld8 %v1 7
1612         prepare
1613                 pushargr %v0
1614         finishi ld7
1615         retval %r0
1616         jmpi unld_done
1617 unld8:
1618         bnei unld_fail %v1 8
1619         prepare
1620                 pushargr %v0
1621         finishi ld8
1622         retval %r0
1623 #endif
1624 unld_done:
1625         retr %r0
1626 unld_fail:
1627         calli @abort
1628         epilog
1629
1630 unld_u:
1631         prolog
1632         arg $base
1633         arg $size
1634         getarg %v0 $base
1635         getarg %v1 $size
1636         bnei unld_u2 %v1 1
1637         ldr_uc %r0 %v0
1638         jmpi unld_done
1639 unld_u2:
1640         bnei unld_u3 %v1 2
1641         prepare
1642                 pushargr %v0
1643         finishi ld2u
1644         retval %r0
1645         jmpi unld_u_done
1646 unld_u3:
1647         bnei unld_u4 %v1 3
1648         prepare
1649                 pushargr %v0
1650         finishi ld3u
1651         retval %r0
1652         jmpi unld_u_done
1653 unld_u4:
1654 #if __WORDSIZE == 64
1655         bnei unld_u5 %v1 4
1656 #else
1657         bnei unld_fail %v1 4
1658 #endif
1659         prepare
1660                 pushargr %v0
1661 #if __WORDSIZE == 32
1662         finishi ld4
1663 #else
1664         finishi ld4u
1665 #endif
1666         retval %r0
1667         jmpi unld_u_done
1668 #if __WORDSIZE == 64
1669 unld_u5:
1670         bnei unld_u6 %v1 5
1671         prepare
1672                 pushargr %v0
1673         finishi ld5u
1674         retval %r0
1675         jmpi unld_u_done
1676 unld_u6:
1677         bnei unld_u7 %v1 6
1678         prepare
1679                 pushargr %v0
1680         finishi ld6u
1681         retval %r0
1682         jmpi unld_u_done
1683 unld_u7:
1684         bnei unld_u8 %v1 7
1685         prepare
1686                 pushargr %v0
1687         finishi ld7u
1688         retval %r0
1689         jmpi unld_u_done
1690 unld_u8:
1691         bnei unld_u_fail %v1 8
1692         prepare
1693                 pushargr %v0
1694         finishi ld8
1695         retval %r0
1696 #endif
1697 unld_u_done:
1698         retr %r0
1699 unld_u_fail:
1700         calli @abort
1701         epilog
1702
1703 unst:
1704         prolog
1705         arg $base
1706         arg $data
1707         arg $size
1708         getarg %v0 $base
1709         getarg %v2 $data
1710         getarg %v1 $size
1711         bnei unst2 %v1 1
1712         str_c %v0 %v2
1713         jmpi unst_done
1714 unst2:
1715         bnei unst3 %v1 2
1716         prepare
1717                 pushargr %v0
1718                 pushargr %v2
1719         finishi st2
1720         jmpi unst_done
1721 unst3:
1722         bnei unst4 %v1 3
1723         prepare
1724                 pushargr %v0
1725                 pushargr %v2
1726         finishi st3
1727         jmpi unst_done
1728 unst4:
1729 #if __WORDSIZE == 64
1730         bnei unst5 %v1 4
1731 #else
1732         bnei unst_fail %v1 4
1733 #endif
1734         prepare
1735                 pushargr %v0
1736                 pushargr %v2
1737         finishi st4
1738 #if __WORDSIZE == 64
1739         jmpi unst_done
1740 unst5:
1741         bnei unst6 %v1 5
1742         prepare
1743                 pushargr %v0
1744                 pushargr %v2
1745         finishi st5
1746         jmpi unst_done
1747 unst6:
1748         bnei unst7 %v1 6
1749         prepare
1750                 pushargr %v0
1751                 pushargr %v2
1752         finishi st6
1753         jmpi unst_done
1754 unst7:
1755         bnei unst8 %v1 7
1756         prepare
1757                 pushargr %v0
1758                 pushargr %v2
1759         finishi st7
1760         jmpi unst_done
1761 unst8:
1762         bnei unst_fail %v1 8
1763         prepare
1764                 pushargr %v0
1765                 pushargr %v2
1766         finishi st8
1767 #endif
1768 unst_done:
1769         ret
1770 unst_fail:
1771         calli @abort
1772         epilog
1773
1774 main:
1775         prolog
1776 #if GENTABLE
1777         movi %v0 buf0
1778 out_loop_ld:
1779         movi %v1 GVAL
1780         movi %v2 1
1781 loop_ld:
1782         prepare
1783                 pushargr %v0
1784                 pushargr %v2
1785         finishi unld
1786         retval %r0
1787         subi %r2 %v0 buf0
1788         prepare
1789                 pushargi fmt_ld
1790                 ellipsis
1791                 pushargi sUNLD
1792                 pushargr %r2
1793                 pushargr %v2
1794                 pushargr %r0
1795         finishi @printf
1796         addi %v2 %v2 1
1797         blei loop_ld %v2 $(__WORDSIZE >> 3)
1798         addi %v0 %v0 1
1799         subi %r2 %v0 buf0
1800         blti out_loop_ld %r2 $(__WORDSIZE >> 3)
1801
1802         movi %v0 buf0
1803 out_loop_ldu:
1804         movi %v2 1
1805 loop_ldu:
1806         prepare
1807                 pushargr %v0
1808                 pushargr %v2
1809         finishi unld_u
1810         retval %r0
1811         subi %r2 %v0 buf0
1812         prepare
1813                 pushargi fmt_ld
1814                 ellipsis
1815                 pushargi sUNLDU
1816                 pushargr %r2
1817                 pushargr %v2
1818                 pushargr %r0
1819         finishi @printf
1820         addi %v2 %v2 1
1821         blei loop_ldu %v2 $(__WORDSIZE >> 3)
1822         addi %v0 %v0 1
1823         subi %r2 %v0 buf0
1824         blti out_loop_ldu %r2 $(__WORDSIZE >> 3)
1825
1826         movi %v0 str0
1827 out_loop_st:
1828         movi %v2 1
1829 loop_st:
1830         movi %r0 str0
1831         movi %r1 0
1832         str %r0 %r1
1833         stxi $(__WORDSIZE >> 3) %r0 %r1
1834         prepare
1835                 pushargr %v0
1836                 pushargr %v1
1837                 pushargr %v2
1838         finishi unst
1839         movi %r2 str0
1840         ldr %r0 %r2
1841         ldxi %r1 %r2 $(__WORDSIZE >> 3)
1842         subi %r2 %v0 str0
1843         prepare
1844                 pushargi fmt_st
1845                 ellipsis
1846                 pushargr %r2
1847                 pushargr %v2
1848                 pushargr %r0
1849                 pushargr %r1
1850         finishi @printf
1851         addi %v2 %v2 1
1852         blei loop_st %v2 $(__WORDSIZE >> 3)
1853         addi %v0 %v0 1
1854         subi %r2 %v0 str0
1855         blti out_loop_st %r2 $(__WORDSIZE >> 3)
1856
1857         /* Do complex operations to also ensure sample fallbacks are correct */
1858         movi %v0 str0
1859         movi %v1 0
1860 loop_f:
1861         movi %r2 str0
1862         movi %r1 0
1863         str %r2 %r1
1864         stxi $(__WORDSIZE >> 3) %r2 %r1
1865         movi_f %f0 FVAL
1866         sti_f cvt %f0
1867         ldi_i %r0 cvt
1868         prepare
1869                 pushargr %v0
1870                 pushargr %r0
1871         finishi st4
1872         prepare
1873                 pushargr %v0
1874         finishi ld4
1875         retval %r0
1876         sti_i cvt %r0
1877         ldi_f %f0 cvt
1878         extr_f_d %f0 %f0
1879         prepare
1880                 pushargi fmt_ldf
1881                 ellipsis
1882                 pushargr %v1
1883                 pushargr_d %f0
1884         finishi @printf
1885         addi %v0 %v0 1
1886         addi %v1 %v1 1
1887         blei loop_f %v1 4
1888
1889         movi %v0 str0
1890         movi %v1 0
1891 loop_d:
1892         movi %r2 str0
1893         movi %r1 0
1894         str %r2 %r1
1895         stxi $(__WORDSIZE >> 3) %r2 %r1
1896         movi_d %f0 DVAL
1897         sti_d cvt %f0
1898 #  if __WORDSIZE == 32
1899         movi %r0 cvt
1900 #    if __BYTE_ORDER == __BIG_ENDIAN
1901         addi %r0 %r0 4
1902 #    endif
1903         ldr %r0 %r0
1904         prepare
1905                 pushargr %v0
1906                 pushargr %r0
1907         finishi st4
1908         prepare
1909                 pushargr %v0
1910         finishi ld4
1911         retval %v2
1912         movi %r0 cvt
1913 #    if __BYTE_ORDER == __LITTLE_ENDIAN
1914         addi %r0 %r0 4
1915 #    endif
1916         ldr %r0 %r0
1917         prepare
1918                 pushargr %v0
1919                 pushargr %r0
1920         finishi st4
1921         prepare
1922                 pushargr %v0
1923         finishi ld4
1924         retval %r0
1925         movi %r1 cvt
1926 #    if __BYTE_ORDER == __LITTLE_ENDIAN
1927         str %r1 %v1
1928         stxi 4 %r1 %r0
1929 #    else
1930         str %r1 %r0
1931         stxi 4 %r1 %v1
1932 #    endif
1933 #  else
1934         ldi %r0 cvt
1935         prepare
1936                 pushargr %v0
1937                 pushargr %r0
1938         finishi st8
1939         prepare
1940                 pushargr %v0
1941         finishi ld8
1942         retval %r0
1943         sti cvt %r0
1944 #  endif
1945         ldi_d %f0 cvt
1946         prepare
1947                 pushargi fmt_ldd
1948                 ellipsis
1949                 pushargr %v1
1950                 pushargr_d %f0
1951         finishi @printf
1952         addi %v0 %v0 1
1953         addi %v1 %v1 1
1954         blei loop_d %v1 8
1955 #else
1956
1957 #  if __WORDSIZE == 32
1958 #    if __BYTE_ORDER == __LITTLE_ENDIAN
1959          UNLD(buf0, 1, 0xffffff80)
1960          UNLD(buf0, 2, 0xffff8180)
1961          UNLD(buf0, 3, 0xff828180)
1962          UNLD(buf0, 4, 0x83828180)
1963          UNLD(buf1, 1, 0xffffff81)
1964          UNLD(buf1, 2, 0xffff8281)
1965          UNLD(buf1, 3, 0xff838281)
1966          UNLD(buf1, 4, 0x84838281)
1967          UNLD(buf2, 1, 0xffffff82)
1968          UNLD(buf2, 2, 0xffff8382)
1969          UNLD(buf2, 3, 0xff848382)
1970          UNLD(buf2, 4, 0x85848382)
1971          UNLD(buf3, 1, 0xffffff83)
1972          UNLD(buf3, 2, 0xffff8483)
1973          UNLD(buf3, 3, 0xff858483)
1974          UNLD(buf3, 4, 0x86858483)
1975         UNLDU(buf0, 1, 0x00000080)
1976         UNLDU(buf0, 2, 0x00008180)
1977         UNLDU(buf0, 3, 0x00828180)
1978         UNLDU(buf0, 4, 0x83828180)
1979         UNLDU(buf1, 1, 0x00000081)
1980         UNLDU(buf1, 2, 0x00008281)
1981         UNLDU(buf1, 3, 0x00838281)
1982         UNLDU(buf1, 4, 0x84838281)
1983         UNLDU(buf2, 1, 0x00000082)
1984         UNLDU(buf2, 2, 0x00008382)
1985         UNLDU(buf2, 3, 0x00848382)
1986         UNLDU(buf2, 4, 0x85848382)
1987         UNLDU(buf3, 1, 0x00000083)
1988         UNLDU(buf3, 2, 0x00008483)
1989         UNLDU(buf3, 3, 0x00858483)
1990         UNLDU(buf3, 4, 0x86858483)
1991          UNST(str0, 1, 0x00000098, 0x00000000)
1992          UNST(str0, 2, 0x0000ba98, 0x00000000)
1993          UNST(str0, 3, 0x00dcba98, 0x00000000)
1994          UNST(str0, 4, 0xfedcba98, 0x00000000)
1995          UNST(str1, 1, 0x00009800, 0x00000000)
1996          UNST(str1, 2, 0x00ba9800, 0x00000000)
1997          UNST(str1, 3, 0xdcba9800, 0x00000000)
1998          UNST(str1, 4, 0xdcba9800, 0x000000fe)
1999          UNST(str2, 1, 0x00980000, 0x00000000)
2000          UNST(str2, 2, 0xba980000, 0x00000000)
2001          UNST(str2, 3, 0xba980000, 0x000000dc)
2002          UNST(str2, 4, 0xba980000, 0x0000fedc)
2003          UNST(str3, 1, 0x98000000, 0x00000000)
2004          UNST(str3, 2, 0x98000000, 0x000000ba)
2005          UNST(str3, 3, 0x98000000, 0x0000dcba)
2006          UNST(str3, 4, 0x98000000, 0x00fedcba)
2007 #    else
2008          UNLD(buf0, 1, 0xffffff80)
2009          UNLD(buf0, 2, 0xffff8081)
2010          UNLD(buf0, 3, 0xff808182)
2011          UNLD(buf0, 4, 0x80818283)
2012          UNLD(buf1, 1, 0xffffff81)
2013          UNLD(buf1, 2, 0xffff8182)
2014          UNLD(buf1, 3, 0xff818283)
2015          UNLD(buf1, 4, 0x81828384)
2016          UNLD(buf2, 1, 0xffffff82)
2017          UNLD(buf2, 2, 0xffff8283)
2018          UNLD(buf2, 3, 0xff828384)
2019          UNLD(buf2, 4, 0x82838485)
2020          UNLD(buf3, 1, 0xffffff83)
2021          UNLD(buf3, 2, 0xffff8384)
2022          UNLD(buf3, 3, 0xff838485)
2023          UNLD(buf3, 4, 0x83848586)
2024         UNLDU(buf0, 1, 0x00000080)
2025         UNLDU(buf0, 2, 0x00008081)
2026         UNLDU(buf0, 3, 0x00808182)
2027         UNLDU(buf0, 4, 0x80818283)
2028         UNLDU(buf1, 1, 0x00000081)
2029         UNLDU(buf1, 2, 0x00008182)
2030         UNLDU(buf1, 3, 0x00818283)
2031         UNLDU(buf1, 4, 0x81828384)
2032         UNLDU(buf2, 1, 0x00000082)
2033         UNLDU(buf2, 2, 0x00008283)
2034         UNLDU(buf2, 3, 0x00828384)
2035         UNLDU(buf2, 4, 0x82838485)
2036         UNLDU(buf3, 1, 0x00000083)
2037         UNLDU(buf3, 2, 0x00008384)
2038         UNLDU(buf3, 3, 0x00838485)
2039         UNLDU(buf3, 4, 0x83848586)
2040          UNST(str0, 1, 0x98000000, 0x00000000)
2041          UNST(str0, 2, 0xba980000, 0x00000000)
2042          UNST(str0, 3, 0xdcba9800, 0x00000000)
2043          UNST(str0, 4, 0xfedcba98, 0x00000000)
2044          UNST(str1, 1, 0x00980000, 0x00000000)
2045          UNST(str1, 2, 0x00ba9800, 0x00000000)
2046          UNST(str1, 3, 0x00dcba98, 0x00000000)
2047          UNST(str1, 4, 0x00fedcba, 0x98000000)
2048          UNST(str2, 1, 0x00009800, 0x00000000)
2049          UNST(str2, 2, 0x0000ba98, 0x00000000)
2050          UNST(str2, 3, 0x0000dcba, 0x98000000)
2051          UNST(str2, 4, 0x0000fedc, 0xba980000)
2052          UNST(str3, 1, 0x00000098, 0x00000000)
2053          UNST(str3, 2, 0x000000ba, 0x98000000)
2054          UNST(str3, 3, 0x000000dc, 0xba980000)
2055          UNST(str3, 4, 0x000000fe, 0xdcba9800)
2056 #    endif
2057
2058 #  else
2059 #    if __BYTE_ORDER == __LITTLE_ENDIAN
2060          UNLD(buf0, 1, 0xffffffffffffff80)
2061          UNLD(buf0, 2, 0xffffffffffff8180)
2062          UNLD(buf0, 3, 0xffffffffff828180)
2063          UNLD(buf0, 4, 0xffffffff83828180)
2064          UNLD(buf0, 5, 0xffffff8483828180)
2065          UNLD(buf0, 6, 0xffff858483828180)
2066          UNLD(buf0, 7, 0xff86858483828180)
2067          UNLD(buf0, 8, 0x8786858483828180)
2068          UNLD(buf1, 1, 0xffffffffffffff81)
2069          UNLD(buf1, 2, 0xffffffffffff8281)
2070          UNLD(buf1, 3, 0xffffffffff838281)
2071          UNLD(buf1, 4, 0xffffffff84838281)
2072          UNLD(buf1, 5, 0xffffff8584838281)
2073          UNLD(buf1, 6, 0xffff868584838281)
2074          UNLD(buf1, 7, 0xff87868584838281)
2075          UNLD(buf1, 8, 0x8887868584838281)
2076          UNLD(buf2, 1, 0xffffffffffffff82)
2077          UNLD(buf2, 2, 0xffffffffffff8382)
2078          UNLD(buf2, 3, 0xffffffffff848382)
2079          UNLD(buf2, 4, 0xffffffff85848382)
2080          UNLD(buf2, 5, 0xffffff8685848382)
2081          UNLD(buf2, 6, 0xffff878685848382)
2082          UNLD(buf2, 7, 0xff88878685848382)
2083          UNLD(buf2, 8, 0x8988878685848382)
2084          UNLD(buf3, 1, 0xffffffffffffff83)
2085          UNLD(buf3, 2, 0xffffffffffff8483)
2086          UNLD(buf3, 3, 0xffffffffff858483)
2087          UNLD(buf3, 4, 0xffffffff86858483)
2088          UNLD(buf3, 5, 0xffffff8786858483)
2089          UNLD(buf3, 6, 0xffff888786858483)
2090          UNLD(buf3, 7, 0xff89888786858483)
2091          UNLD(buf3, 8, 0x8a89888786858483)
2092          UNLD(buf4, 1, 0xffffffffffffff84)
2093          UNLD(buf4, 2, 0xffffffffffff8584)
2094          UNLD(buf4, 3, 0xffffffffff868584)
2095          UNLD(buf4, 4, 0xffffffff87868584)
2096          UNLD(buf4, 5, 0xffffff8887868584)
2097          UNLD(buf4, 6, 0xffff898887868584)
2098          UNLD(buf4, 7, 0xff8a898887868584)
2099          UNLD(buf4, 8, 0x8b8a898887868584)
2100          UNLD(buf5, 1, 0xffffffffffffff85)
2101          UNLD(buf5, 2, 0xffffffffffff8685)
2102          UNLD(buf5, 3, 0xffffffffff878685)
2103          UNLD(buf5, 4, 0xffffffff88878685)
2104          UNLD(buf5, 5, 0xffffff8988878685)
2105          UNLD(buf5, 6, 0xffff8a8988878685)
2106          UNLD(buf5, 7, 0xff8b8a8988878685)
2107          UNLD(buf5, 8, 0x8c8b8a8988878685)
2108          UNLD(buf6, 1, 0xffffffffffffff86)
2109          UNLD(buf6, 2, 0xffffffffffff8786)
2110          UNLD(buf6, 3, 0xffffffffff888786)
2111          UNLD(buf6, 4, 0xffffffff89888786)
2112          UNLD(buf6, 5, 0xffffff8a89888786)
2113          UNLD(buf6, 6, 0xffff8b8a89888786)
2114          UNLD(buf6, 7, 0xff8c8b8a89888786)
2115          UNLD(buf6, 8, 0x8d8c8b8a89888786)
2116          UNLD(buf7, 1, 0xffffffffffffff87)
2117          UNLD(buf7, 2, 0xffffffffffff8887)
2118          UNLD(buf7, 3, 0xffffffffff898887)
2119          UNLD(buf7, 4, 0xffffffff8a898887)
2120          UNLD(buf7, 5, 0xffffff8b8a898887)
2121          UNLD(buf7, 6, 0xffff8c8b8a898887)
2122          UNLD(buf7, 7, 0xff8d8c8b8a898887)
2123          UNLD(buf7, 8, 0x8e8d8c8b8a898887)
2124         UNLDU(buf0, 1, 0x0000000000000080)
2125         UNLDU(buf0, 2, 0x0000000000008180)
2126         UNLDU(buf0, 3, 0x0000000000828180)
2127         UNLDU(buf0, 4, 0x0000000083828180)
2128         UNLDU(buf0, 5, 0x0000008483828180)
2129         UNLDU(buf0, 6, 0x0000858483828180)
2130         UNLDU(buf0, 7, 0x0086858483828180)
2131         UNLDU(buf0, 8, 0x8786858483828180)
2132         UNLDU(buf1, 1, 0x0000000000000081)
2133         UNLDU(buf1, 2, 0x0000000000008281)
2134         UNLDU(buf1, 3, 0x0000000000838281)
2135         UNLDU(buf1, 4, 0x0000000084838281)
2136         UNLDU(buf1, 5, 0x0000008584838281)
2137         UNLDU(buf1, 6, 0x0000868584838281)
2138         UNLDU(buf1, 7, 0x0087868584838281)
2139         UNLDU(buf1, 8, 0x8887868584838281)
2140         UNLDU(buf2, 1, 0x0000000000000082)
2141         UNLDU(buf2, 2, 0x0000000000008382)
2142         UNLDU(buf2, 3, 0x0000000000848382)
2143         UNLDU(buf2, 4, 0x0000000085848382)
2144         UNLDU(buf2, 5, 0x0000008685848382)
2145         UNLDU(buf2, 6, 0x0000878685848382)
2146         UNLDU(buf2, 7, 0x0088878685848382)
2147         UNLDU(buf2, 8, 0x8988878685848382)
2148         UNLDU(buf3, 1, 0x0000000000000083)
2149         UNLDU(buf3, 2, 0x0000000000008483)
2150         UNLDU(buf3, 3, 0x0000000000858483)
2151         UNLDU(buf3, 4, 0x0000000086858483)
2152         UNLDU(buf3, 5, 0x0000008786858483)
2153         UNLDU(buf3, 6, 0x0000888786858483)
2154         UNLDU(buf3, 7, 0x0089888786858483)
2155         UNLDU(buf3, 8, 0x8a89888786858483)
2156         UNLDU(buf4, 1, 0x0000000000000084)
2157         UNLDU(buf4, 2, 0x0000000000008584)
2158         UNLDU(buf4, 3, 0x0000000000868584)
2159         UNLDU(buf4, 4, 0x0000000087868584)
2160         UNLDU(buf4, 5, 0x0000008887868584)
2161         UNLDU(buf4, 6, 0x0000898887868584)
2162         UNLDU(buf4, 7, 0x008a898887868584)
2163         UNLDU(buf4, 8, 0x8b8a898887868584)
2164         UNLDU(buf5, 1, 0x0000000000000085)
2165         UNLDU(buf5, 2, 0x0000000000008685)
2166         UNLDU(buf5, 3, 0x0000000000878685)
2167         UNLDU(buf5, 4, 0x0000000088878685)
2168         UNLDU(buf5, 5, 0x0000008988878685)
2169         UNLDU(buf5, 6, 0x00008a8988878685)
2170         UNLDU(buf5, 7, 0x008b8a8988878685)
2171         UNLDU(buf5, 8, 0x8c8b8a8988878685)
2172         UNLDU(buf6, 1, 0x0000000000000086)
2173         UNLDU(buf6, 2, 0x0000000000008786)
2174         UNLDU(buf6, 3, 0x0000000000888786)
2175         UNLDU(buf6, 4, 0x0000000089888786)
2176         UNLDU(buf6, 5, 0x0000008a89888786)
2177         UNLDU(buf6, 6, 0x00008b8a89888786)
2178         UNLDU(buf6, 7, 0x008c8b8a89888786)
2179         UNLDU(buf6, 8, 0x8d8c8b8a89888786)
2180         UNLDU(buf7, 1, 0x0000000000000087)
2181         UNLDU(buf7, 2, 0x0000000000008887)
2182         UNLDU(buf7, 3, 0x0000000000898887)
2183         UNLDU(buf7, 4, 0x000000008a898887)
2184         UNLDU(buf7, 5, 0x0000008b8a898887)
2185         UNLDU(buf7, 6, 0x00008c8b8a898887)
2186         UNLDU(buf7, 7, 0x008d8c8b8a898887)
2187         UNLDU(buf7, 8, 0x8e8d8c8b8a898887)
2188          UNST(str0, 1, 0x0000000000000010, 0x0000000000000000)
2189          UNST(str0, 2, 0x0000000000003210, 0x0000000000000000)
2190          UNST(str0, 3, 0x0000000000543210, 0x0000000000000000)
2191          UNST(str0, 4, 0x0000000076543210, 0x0000000000000000)
2192          UNST(str0, 5, 0x0000009876543210, 0x0000000000000000)
2193          UNST(str0, 6, 0x0000ba9876543210, 0x0000000000000000)
2194          UNST(str0, 7, 0x00dcba9876543210, 0x0000000000000000)
2195          UNST(str0, 8, 0xfedcba9876543210, 0x0000000000000000)
2196          UNST(str1, 1, 0x0000000000001000, 0x0000000000000000)
2197          UNST(str1, 2, 0x0000000000321000, 0x0000000000000000)
2198          UNST(str1, 3, 0x0000000054321000, 0x0000000000000000)
2199          UNST(str1, 4, 0x0000007654321000, 0x0000000000000000)
2200          UNST(str1, 5, 0x0000987654321000, 0x0000000000000000)
2201          UNST(str1, 6, 0x00ba987654321000, 0x0000000000000000)
2202          UNST(str1, 7, 0xdcba987654321000, 0x0000000000000000)
2203          UNST(str1, 8, 0xdcba987654321000, 0x00000000000000fe)
2204          UNST(str2, 1, 0x0000000000100000, 0x0000000000000000)
2205          UNST(str2, 2, 0x0000000032100000, 0x0000000000000000)
2206          UNST(str2, 3, 0x0000005432100000, 0x0000000000000000)
2207          UNST(str2, 4, 0x0000765432100000, 0x0000000000000000)
2208          UNST(str2, 5, 0x0098765432100000, 0x0000000000000000)
2209          UNST(str2, 6, 0xba98765432100000, 0x0000000000000000)
2210          UNST(str2, 7, 0xba98765432100000, 0x00000000000000dc)
2211          UNST(str2, 8, 0xba98765432100000, 0x000000000000fedc)
2212          UNST(str3, 1, 0x0000000010000000, 0x0000000000000000)
2213          UNST(str3, 2, 0x0000003210000000, 0x0000000000000000)
2214          UNST(str3, 3, 0x0000543210000000, 0x0000000000000000)
2215          UNST(str3, 4, 0x0076543210000000, 0x0000000000000000)
2216          UNST(str3, 5, 0x9876543210000000, 0x0000000000000000)
2217          UNST(str3, 6, 0x9876543210000000, 0x00000000000000ba)
2218          UNST(str3, 7, 0x9876543210000000, 0x000000000000dcba)
2219          UNST(str3, 8, 0x9876543210000000, 0x0000000000fedcba)
2220          UNST(str4, 1, 0x0000001000000000, 0x0000000000000000)
2221          UNST(str4, 2, 0x0000321000000000, 0x0000000000000000)
2222          UNST(str4, 3, 0x0054321000000000, 0x0000000000000000)
2223          UNST(str4, 4, 0x7654321000000000, 0x0000000000000000)
2224          UNST(str4, 5, 0x7654321000000000, 0x0000000000000098)
2225          UNST(str4, 6, 0x7654321000000000, 0x000000000000ba98)
2226          UNST(str4, 7, 0x7654321000000000, 0x0000000000dcba98)
2227          UNST(str4, 8, 0x7654321000000000, 0x00000000fedcba98)
2228          UNST(str5, 1, 0x0000100000000000, 0x0000000000000000)
2229          UNST(str5, 2, 0x0032100000000000, 0x0000000000000000)
2230          UNST(str5, 3, 0x5432100000000000, 0x0000000000000000)
2231          UNST(str5, 4, 0x5432100000000000, 0x0000000000000076)
2232          UNST(str5, 5, 0x5432100000000000, 0x0000000000009876)
2233          UNST(str5, 6, 0x5432100000000000, 0x0000000000ba9876)
2234          UNST(str5, 7, 0x5432100000000000, 0x00000000dcba9876)
2235          UNST(str5, 8, 0x5432100000000000, 0x000000fedcba9876)
2236          UNST(str6, 1, 0x0010000000000000, 0x0000000000000000)
2237          UNST(str6, 2, 0x3210000000000000, 0x0000000000000000)
2238          UNST(str6, 3, 0x3210000000000000, 0x0000000000000054)
2239          UNST(str6, 4, 0x3210000000000000, 0x0000000000007654)
2240          UNST(str6, 5, 0x3210000000000000, 0x0000000000987654)
2241          UNST(str6, 6, 0x3210000000000000, 0x00000000ba987654)
2242          UNST(str6, 7, 0x3210000000000000, 0x000000dcba987654)
2243          UNST(str6, 8, 0x3210000000000000, 0x0000fedcba987654)
2244          UNST(str7, 1, 0x1000000000000000, 0x0000000000000000)
2245          UNST(str7, 2, 0x1000000000000000, 0x0000000000000032)
2246          UNST(str7, 3, 0x1000000000000000, 0x0000000000005432)
2247          UNST(str7, 4, 0x1000000000000000, 0x0000000000765432)
2248          UNST(str7, 5, 0x1000000000000000, 0x0000000098765432)
2249          UNST(str7, 6, 0x1000000000000000, 0x000000ba98765432)
2250          UNST(str7, 7, 0x1000000000000000, 0x0000dcba98765432)
2251          UNST(str7, 8, 0x1000000000000000, 0x00fedcba98765432)
2252 #    else
2253          UNLD(buf0, 1, 0xffffffffffffff80)
2254          UNLD(buf0, 2, 0xffffffffffff8081)
2255          UNLD(buf0, 3, 0xffffffffff808182)
2256          UNLD(buf0, 4, 0xffffffff80818283)
2257          UNLD(buf0, 5, 0xffffff8081828384)
2258          UNLD(buf0, 6, 0xffff808182838485)
2259          UNLD(buf0, 7, 0xff80818283848586)
2260          UNLD(buf0, 8, 0x8081828384858687)
2261          UNLD(buf1, 1, 0xffffffffffffff81)
2262          UNLD(buf1, 2, 0xffffffffffff8182)
2263          UNLD(buf1, 3, 0xffffffffff818283)
2264          UNLD(buf1, 4, 0xffffffff81828384)
2265          UNLD(buf1, 5, 0xffffff8182838485)
2266          UNLD(buf1, 6, 0xffff818283848586)
2267          UNLD(buf1, 7, 0xff81828384858687)
2268          UNLD(buf1, 8, 0x8182838485868788)
2269          UNLD(buf2, 1, 0xffffffffffffff82)
2270          UNLD(buf2, 2, 0xffffffffffff8283)
2271          UNLD(buf2, 3, 0xffffffffff828384)
2272          UNLD(buf2, 4, 0xffffffff82838485)
2273          UNLD(buf2, 5, 0xffffff8283848586)
2274          UNLD(buf2, 6, 0xffff828384858687)
2275          UNLD(buf2, 7, 0xff82838485868788)
2276          UNLD(buf2, 8, 0x8283848586878889)
2277          UNLD(buf3, 1, 0xffffffffffffff83)
2278          UNLD(buf3, 2, 0xffffffffffff8384)
2279          UNLD(buf3, 3, 0xffffffffff838485)
2280          UNLD(buf3, 4, 0xffffffff83848586)
2281          UNLD(buf3, 5, 0xffffff8384858687)
2282          UNLD(buf3, 6, 0xffff838485868788)
2283          UNLD(buf3, 7, 0xff83848586878889)
2284          UNLD(buf3, 8, 0x838485868788898a)
2285          UNLD(buf4, 1, 0xffffffffffffff84)
2286          UNLD(buf4, 2, 0xffffffffffff8485)
2287          UNLD(buf4, 3, 0xffffffffff848586)
2288          UNLD(buf4, 4, 0xffffffff84858687)
2289          UNLD(buf4, 5, 0xffffff8485868788)
2290          UNLD(buf4, 6, 0xffff848586878889)
2291          UNLD(buf4, 7, 0xff8485868788898a)
2292          UNLD(buf4, 8, 0x8485868788898a8b)
2293          UNLD(buf5, 1, 0xffffffffffffff85)
2294          UNLD(buf5, 2, 0xffffffffffff8586)
2295          UNLD(buf5, 3, 0xffffffffff858687)
2296          UNLD(buf5, 4, 0xffffffff85868788)
2297          UNLD(buf5, 5, 0xffffff8586878889)
2298          UNLD(buf5, 6, 0xffff85868788898a)
2299          UNLD(buf5, 7, 0xff85868788898a8b)
2300          UNLD(buf5, 8, 0x85868788898a8b8c)
2301          UNLD(buf6, 1, 0xffffffffffffff86)
2302          UNLD(buf6, 2, 0xffffffffffff8687)
2303          UNLD(buf6, 3, 0xffffffffff868788)
2304          UNLD(buf6, 4, 0xffffffff86878889)
2305          UNLD(buf6, 5, 0xffffff868788898a)
2306          UNLD(buf6, 6, 0xffff868788898a8b)
2307          UNLD(buf6, 7, 0xff868788898a8b8c)
2308          UNLD(buf6, 8, 0x868788898a8b8c8d)
2309          UNLD(buf7, 1, 0xffffffffffffff87)
2310          UNLD(buf7, 2, 0xffffffffffff8788)
2311          UNLD(buf7, 3, 0xffffffffff878889)
2312          UNLD(buf7, 4, 0xffffffff8788898a)
2313          UNLD(buf7, 5, 0xffffff8788898a8b)
2314          UNLD(buf7, 6, 0xffff8788898a8b8c)
2315          UNLD(buf7, 7, 0xff8788898a8b8c8d)
2316          UNLD(buf7, 8, 0x8788898a8b8c8d8e)
2317         UNLDU(buf0, 1, 0x0000000000000080)
2318         UNLDU(buf0, 2, 0x0000000000008081)
2319         UNLDU(buf0, 3, 0x0000000000808182)
2320         UNLDU(buf0, 4, 0x0000000080818283)
2321         UNLDU(buf0, 5, 0x0000008081828384)
2322         UNLDU(buf0, 6, 0x0000808182838485)
2323         UNLDU(buf0, 7, 0x0080818283848586)
2324         UNLDU(buf0, 8, 0x8081828384858687)
2325         UNLDU(buf1, 1, 0x0000000000000081)
2326         UNLDU(buf1, 2, 0x0000000000008182)
2327         UNLDU(buf1, 3, 0x0000000000818283)
2328         UNLDU(buf1, 4, 0x0000000081828384)
2329         UNLDU(buf1, 5, 0x0000008182838485)
2330         UNLDU(buf1, 6, 0x0000818283848586)
2331         UNLDU(buf1, 7, 0x0081828384858687)
2332         UNLDU(buf1, 8, 0x8182838485868788)
2333         UNLDU(buf2, 1, 0x0000000000000082)
2334         UNLDU(buf2, 2, 0x0000000000008283)
2335         UNLDU(buf2, 3, 0x0000000000828384)
2336         UNLDU(buf2, 4, 0x0000000082838485)
2337         UNLDU(buf2, 5, 0x0000008283848586)
2338         UNLDU(buf2, 6, 0x0000828384858687)
2339         UNLDU(buf2, 7, 0x0082838485868788)
2340         UNLDU(buf2, 8, 0x8283848586878889)
2341         UNLDU(buf3, 1, 0x0000000000000083)
2342         UNLDU(buf3, 2, 0x0000000000008384)
2343         UNLDU(buf3, 3, 0x0000000000838485)
2344         UNLDU(buf3, 4, 0x0000000083848586)
2345         UNLDU(buf3, 5, 0x0000008384858687)
2346         UNLDU(buf3, 6, 0x0000838485868788)
2347         UNLDU(buf3, 7, 0x0083848586878889)
2348         UNLDU(buf3, 8, 0x838485868788898a)
2349         UNLDU(buf4, 1, 0x0000000000000084)
2350         UNLDU(buf4, 2, 0x0000000000008485)
2351         UNLDU(buf4, 3, 0x0000000000848586)
2352         UNLDU(buf4, 4, 0x0000000084858687)
2353         UNLDU(buf4, 5, 0x0000008485868788)
2354         UNLDU(buf4, 6, 0x0000848586878889)
2355         UNLDU(buf4, 7, 0x008485868788898a)
2356         UNLDU(buf4, 8, 0x8485868788898a8b)
2357         UNLDU(buf5, 1, 0x0000000000000085)
2358         UNLDU(buf5, 2, 0x0000000000008586)
2359         UNLDU(buf5, 3, 0x0000000000858687)
2360         UNLDU(buf5, 4, 0x0000000085868788)
2361         UNLDU(buf5, 5, 0x0000008586878889)
2362         UNLDU(buf5, 6, 0x000085868788898a)
2363         UNLDU(buf5, 7, 0x0085868788898a8b)
2364         UNLDU(buf5, 8, 0x85868788898a8b8c)
2365         UNLDU(buf6, 1, 0x0000000000000086)
2366         UNLDU(buf6, 2, 0x0000000000008687)
2367         UNLDU(buf6, 3, 0x0000000000868788)
2368         UNLDU(buf6, 4, 0x0000000086878889)
2369         UNLDU(buf6, 5, 0x000000868788898a)
2370         UNLDU(buf6, 6, 0x0000868788898a8b)
2371         UNLDU(buf6, 7, 0x00868788898a8b8c)
2372         UNLDU(buf6, 8, 0x868788898a8b8c8d)
2373         UNLDU(buf7, 1, 0x0000000000000087)
2374         UNLDU(buf7, 2, 0x0000000000008788)
2375         UNLDU(buf7, 3, 0x0000000000878889)
2376         UNLDU(buf7, 4, 0x000000008788898a)
2377         UNLDU(buf7, 5, 0x0000008788898a8b)
2378         UNLDU(buf7, 6, 0x00008788898a8b8c)
2379         UNLDU(buf7, 7, 0x008788898a8b8c8d)
2380         UNLDU(buf7, 8, 0x8788898a8b8c8d8e)
2381          UNST(str0, 1, 0x1000000000000000, 0x0000000000000000)
2382          UNST(str0, 2, 0x3210000000000000, 0x0000000000000000)
2383          UNST(str0, 3, 0x5432100000000000, 0x0000000000000000)
2384          UNST(str0, 4, 0x7654321000000000, 0x0000000000000000)
2385          UNST(str0, 5, 0x9876543210000000, 0x0000000000000000)
2386          UNST(str0, 6, 0xba98765432100000, 0x0000000000000000)
2387          UNST(str0, 7, 0xdcba987654321000, 0x0000000000000000)
2388          UNST(str0, 8, 0xfedcba9876543210, 0x0000000000000000)
2389          UNST(str1, 1, 0x0010000000000000, 0x0000000000000000)
2390          UNST(str1, 2, 0x0032100000000000, 0x0000000000000000)
2391          UNST(str1, 3, 0x0054321000000000, 0x0000000000000000)
2392          UNST(str1, 4, 0x0076543210000000, 0x0000000000000000)
2393          UNST(str1, 5, 0x0098765432100000, 0x0000000000000000)
2394          UNST(str1, 6, 0x00ba987654321000, 0x0000000000000000)
2395          UNST(str1, 7, 0x00dcba9876543210, 0x0000000000000000)
2396          UNST(str1, 8, 0x00fedcba98765432, 0x1000000000000000)
2397          UNST(str2, 1, 0x0000100000000000, 0x0000000000000000)
2398          UNST(str2, 2, 0x0000321000000000, 0x0000000000000000)
2399          UNST(str2, 3, 0x0000543210000000, 0x0000000000000000)
2400          UNST(str2, 4, 0x0000765432100000, 0x0000000000000000)
2401          UNST(str2, 5, 0x0000987654321000, 0x0000000000000000)
2402          UNST(str2, 6, 0x0000ba9876543210, 0x0000000000000000)
2403          UNST(str2, 7, 0x0000dcba98765432, 0x1000000000000000)
2404          UNST(str2, 8, 0x0000fedcba987654, 0x3210000000000000)
2405          UNST(str3, 1, 0x0000001000000000, 0x0000000000000000)
2406          UNST(str3, 2, 0x0000003210000000, 0x0000000000000000)
2407          UNST(str3, 3, 0x0000005432100000, 0x0000000000000000)
2408          UNST(str3, 4, 0x0000007654321000, 0x0000000000000000)
2409          UNST(str3, 5, 0x0000009876543210, 0x0000000000000000)
2410          UNST(str3, 6, 0x000000ba98765432, 0x1000000000000000)
2411          UNST(str3, 7, 0x000000dcba987654, 0x3210000000000000)
2412          UNST(str3, 8, 0x000000fedcba9876, 0x5432100000000000)
2413          UNST(str4, 1, 0x0000000010000000, 0x0000000000000000)
2414          UNST(str4, 2, 0x0000000032100000, 0x0000000000000000)
2415          UNST(str4, 3, 0x0000000054321000, 0x0000000000000000)
2416          UNST(str4, 4, 0x0000000076543210, 0x0000000000000000)
2417          UNST(str4, 5, 0x0000000098765432, 0x1000000000000000)
2418          UNST(str4, 6, 0x00000000ba987654, 0x3210000000000000)
2419          UNST(str4, 7, 0x00000000dcba9876, 0x5432100000000000)
2420          UNST(str4, 8, 0x00000000fedcba98, 0x7654321000000000)
2421          UNST(str5, 1, 0x0000000000100000, 0x0000000000000000)
2422          UNST(str5, 2, 0x0000000000321000, 0x0000000000000000)
2423          UNST(str5, 3, 0x0000000000543210, 0x0000000000000000)
2424          UNST(str5, 4, 0x0000000000765432, 0x1000000000000000)
2425          UNST(str5, 5, 0x0000000000987654, 0x3210000000000000)
2426          UNST(str5, 6, 0x0000000000ba9876, 0x5432100000000000)
2427          UNST(str5, 7, 0x0000000000dcba98, 0x7654321000000000)
2428          UNST(str5, 8, 0x0000000000fedcba, 0x9876543210000000)
2429          UNST(str6, 1, 0x0000000000001000, 0x0000000000000000)
2430          UNST(str6, 2, 0x0000000000003210, 0x0000000000000000)
2431          UNST(str6, 3, 0x0000000000005432, 0x1000000000000000)
2432          UNST(str6, 4, 0x0000000000007654, 0x3210000000000000)
2433          UNST(str6, 5, 0x0000000000009876, 0x5432100000000000)
2434          UNST(str6, 6, 0x000000000000ba98, 0x7654321000000000)
2435          UNST(str6, 7, 0x000000000000dcba, 0x9876543210000000)
2436          UNST(str6, 8, 0x000000000000fedc, 0xba98765432100000)
2437          UNST(str7, 1, 0x0000000000000010, 0x0000000000000000)
2438          UNST(str7, 2, 0x0000000000000032, 0x1000000000000000)
2439          UNST(str7, 3, 0x0000000000000054, 0x3210000000000000)
2440          UNST(str7, 4, 0x0000000000000076, 0x5432100000000000)
2441          UNST(str7, 5, 0x0000000000000098, 0x7654321000000000)
2442          UNST(str7, 6, 0x00000000000000ba, 0x9876543210000000)
2443          UNST(str7, 7, 0x00000000000000dc, 0xba98765432100000)
2444          UNST(str7, 8, 0x00000000000000fe, 0xdcba987654321000)
2445 #    endif
2446
2447 #  endif
2448         FLDST(str0, 2.5)
2449         FLDST(str1, 2.5)
2450         FLDST(str2, 2.5)
2451         FLDST(str3, 2.5)
2452         FLDST(str4, 2.5)
2453         DLDST(str0, 7.5)
2454         DLDST(str1, 7.5)
2455         DLDST(str2, 7.5)
2456         DLDST(str3, 7.5)
2457         DLDST(str4, 7.5)
2458         DLDST(str5, 7.5)
2459         DLDST(str6, 7.5)
2460         DLDST(str7, 7.5)
2461         DLDST(str8, 7.5)
2462
2463         prepare
2464                 pushargi ok
2465         finishi @puts
2466 #endif
2467         ret
2468         epilog