]> git.pld-linux.org Git - packages/ffcall.git/blob - ffcall-sparc64.patch
- x32 rebuild
[packages/ffcall.git] / ffcall-sparc64.patch
1 Index: callback/vacall_r/vacall-sparc64.S
2 ===================================================================
3 RCS file: /sources/libffcall/ffcall/callback/vacall_r/vacall-sparc64.S,v
4 retrieving revision 1.3
5 diff -u -r1.3 vacall-sparc64.S
6 --- callback/vacall_r/vacall-sparc64.S  23 May 2005 10:15:06 -0000      1.3
7 +++ callback/vacall_r/vacall-sparc64.S  11 Mar 2008 21:52:48 -0000
8 @@ -8,6 +8,8 @@
9         .type    __vacall_r,$function
10         .proc   020
11  __vacall_r:
12 +       .register       %g2, $scratch
13 +       .register       %g3, $scratch
14         !$PROLOGUE$ 0
15         save    %sp, -448, %sp
16         !$PROLOGUE$ 1
17 Index: vacall/vacall-sparc64.S
18 ===================================================================
19 RCS file: /sources/libffcall/ffcall/vacall/vacall-sparc64.S,v
20 retrieving revision 1.4
21 diff -u -r1.4 vacall-sparc64.S
22 --- vacall/vacall-sparc64.S     23 May 2005 10:15:06 -0000      1.4
23 +++ vacall/vacall-sparc64.S     11 Mar 2008 21:52:50 -0000
24 @@ -8,6 +8,8 @@
25         .type    __vacall,$function
26         .proc   020
27  __vacall:
28 +       .register       %g2, $scratch
29 +       .register       %g3, $scratch
30         !$PROLOGUE$ 0
31         save    %sp, -448, %sp
32         !$PROLOGUE$ 1
33 Index: avcall/avcall.h.in
34 ===================================================================
35 RCS file: /sources/libffcall/ffcall/avcall/avcall.h.in,v
36 retrieving revision 1.25
37 diff -u -r1.25 avcall.h.in
38 --- avcall/avcall.h.in  2 Nov 2007 15:24:53 -0000       1.25
39 +++ avcall/avcall.h.in  11 Mar 2008 21:52:44 -0000
40 @@ -345,8 +345,7 @@
41  #if defined(__sparc64__)
42    /* store the floating-point arguments in an extra array */
43    int                  anum;           /* redundant: (LIST).aptr = &(LIST).args[(LIST).anum] */
44 -  unsigned int         farg_mask;      /* bitmask of those entries in farg[] which have a value */
45 -  unsigned int         darg_mask;      /* bitmask of those entries in args[] which have a double value */
46 +  unsigned int         darg_mask;      /* bitmask of those entries in args[] which have a float or double value */
47  #endif
48  #if defined(__ia64__) || defined(__x86_64__)
49    /* store the floating-point arguments in an extra array */
50 @@ -430,7 +429,6 @@
51  #if defined(__sparc64__)
52  #define __av_start1(LIST)                                              \
53     (LIST).anum = 0,                                                    \
54 -   (LIST).farg_mask = 0,                                               \
55     (LIST).darg_mask = 0,                                               \
56     (LIST).aptr = &(LIST).args[0],                                      \
57     (LIST).eptr = &(LIST).args[__AV_ALIST_WORDS],
58 @@ -870,8 +868,8 @@
59   */
60  #define av_float(LIST,VAL)                                             \
61    ((LIST).aptr >= __av_eptr(LIST)                                      \
62 -   ? -1 : (((LIST).anum < 16 && ((LIST).farg_mask |= (1 << (LIST).anum))), \
63 -          (*(float*)(LIST).aptr = (float)(VAL)),                       \
64 +   ? -1 : (((LIST).anum < 16 && ((LIST).darg_mask |= (1 << (LIST).anum))), \
65 +          (((float*)(LIST).aptr)[1] = (float)(VAL)),                   \
66            (LIST).anum++,                                               \
67            (LIST).aptr++,                                               \
68            0))
69 @@ -1300,10 +1298,8 @@
70        ? -1 : (ASSIGN(TYPE,TYPE_SIZE,TYPE_ALIGN,(void*)((__avword)(LIST).aptr-(TYPE_SIZE)),VAL),\
71               (LIST).aptr = (__avword*)(((__avword)(LIST).aptr+sizeof(__avword)-1) & -(long)sizeof(__avword)),\
72               ((LIST).anum < 16                                         \
73 -               && ((LIST).farg_mask |= (-1 << (LIST).anum),            \
74 -                   (LIST).darg_mask |= (-1 << (LIST).anum))),          \
75 +               && ((LIST).darg_mask |= (-1 << (LIST).anum))),          \
76               (LIST).anum += (((((TYPE_SIZE)+(TYPE_ALIGN)-1) & -(long)(TYPE_ALIGN)) + sizeof(__avword)-1) & -(long)sizeof(__avword))/sizeof(__avword),\
77 -             (LIST).farg_mask &= (1 << ((LIST).anum < 16 ? (LIST).anum : 16)) - 1, \
78               (LIST).darg_mask &= (1 << ((LIST).anum < 16 ? (LIST).anum : 16)) - 1, \
79               0)))
80  #endif
81 Index: avcall/avcall-sparc64.c
82 ===================================================================
83 RCS file: /sources/libffcall/ffcall/avcall/avcall-sparc64.c,v
84 retrieving revision 1.3
85 diff -u -r1.3 avcall-sparc64.c
86 --- avcall/avcall-sparc64.c     23 May 2005 10:17:21 -0000      1.3
87 +++ avcall/avcall-sparc64.c     11 Mar 2008 21:52:42 -0000
88 @@ -86,7 +86,6 @@
89  #define RETURN(TYPE,VAL)       (*(TYPE*)l->raddr = (TYPE)(VAL))
90  #define OFFSETOF(struct,member) ((int)&(((struct*)0)->member))
91  
92 -register void* callee  __asm__("%g2");  /* any global or local register */
93  register __avword o0   __asm__("%o0");
94  register __avword o1   __asm__("%o1");
95  register __avword o2   __asm__("%o2");
96 @@ -102,83 +101,58 @@
97    register double dret __asm__("%f0");  /* %f0,%f1 */
98  
99    __avword trampoline[6];              /* room for a trampoline */
100 -  __avword space[__AV_ALIST_WORDS];    /* space for callee's stack frame */
101 -  __avword *argframe = sp + 17;                /* stack offset for argument list */
102    int arglen = l->aptr - l->args;
103    __avword i;
104  
105 -  if (l->farg_mask) {
106 -    /* push leading float args */
107 -    if (l->farg_mask & (1<<0))
108 -      __asm__("ld %1(%0),%%f1" : : "p" (l), "i" OFFSETOF(av_alist,args[0]));
109 -    if (l->farg_mask & (1<<1))
110 -      __asm__("ld %1(%0),%%f3" : : "p" (l), "i" OFFSETOF(av_alist,args[1]));
111 -    if (l->farg_mask & (1<<2))
112 -      __asm__("ld %1(%0),%%f5" : : "p" (l), "i" OFFSETOF(av_alist,args[2]));
113 -    if (l->farg_mask & (1<<3))
114 -      __asm__("ld %1(%0),%%f7" : : "p" (l), "i" OFFSETOF(av_alist,args[3]));
115 -    if (l->farg_mask & (1<<4))
116 -      __asm__("ld %1(%0),%%f9" : : "p" (l), "i" OFFSETOF(av_alist,args[4]));
117 -    if (l->farg_mask & (1<<5))
118 -      __asm__("ld %1(%0),%%f11" : : "p" (l), "i" OFFSETOF(av_alist,args[5]));
119 -    if (l->farg_mask & (1<<6))
120 -      __asm__("ld %1(%0),%%f13" : : "p" (l), "i" OFFSETOF(av_alist,args[6]));
121 -    if (l->farg_mask & (1<<7))
122 -      __asm__("ld %1(%0),%%f15" : : "p" (l), "i" OFFSETOF(av_alist,args[7]));
123 -    if (l->farg_mask & (1<<8))
124 -      __asm__("ld %1(%0),%%f17" : : "p" (l), "i" OFFSETOF(av_alist,args[8]));
125 -    if (l->farg_mask & (1<<9))
126 -      __asm__("ld %1(%0),%%f19" : : "p" (l), "i" OFFSETOF(av_alist,args[9]));
127 -    if (l->farg_mask & (1<<10))
128 -      __asm__("ld %1(%0),%%f21" : : "p" (l), "i" OFFSETOF(av_alist,args[10]));
129 -    if (l->farg_mask & (1<<11))
130 -      __asm__("ld %1(%0),%%f23" : : "p" (l), "i" OFFSETOF(av_alist,args[11]));
131 -    if (l->farg_mask & (1<<12))
132 -      __asm__("ld %1(%0),%%f25" : : "p" (l), "i" OFFSETOF(av_alist,args[12]));
133 -    if (l->farg_mask & (1<<13))
134 -      __asm__("ld %1(%0),%%f27" : : "p" (l), "i" OFFSETOF(av_alist,args[13]));
135 -    if (l->farg_mask & (1<<14))
136 -      __asm__("ld %1(%0),%%f29" : : "p" (l), "i" OFFSETOF(av_alist,args[14]));
137 -    if (l->farg_mask & (1<<15))
138 -      __asm__("ld %1(%0),%%f31" : : "p" (l), "i" OFFSETOF(av_alist,args[15]));
139 -  }
140    if (l->darg_mask) {
141 -    /* push leading double args */
142 +    /* push leading float/double args */
143      if (l->darg_mask & (1<<0))
144 -      __asm__("ldd %1(%0),%%f0" : : "p" (l), "i" OFFSETOF(av_alist,args[0]));
145 +      __asm__("ldd [%0+%1],%%f0" : : "p" (l), "i" OFFSETOF(av_alist,args[0]));
146      if (l->darg_mask & (1<<1))
147 -      __asm__("ldd %1(%0),%%f2" : : "p" (l), "i" OFFSETOF(av_alist,args[1]));
148 +      __asm__("ldd [%0+%1],%%f2" : : "p" (l), "i" OFFSETOF(av_alist,args[1]));
149      if (l->darg_mask & (1<<2))
150 -      __asm__("ldd %1(%0),%%f4" : : "p" (l), "i" OFFSETOF(av_alist,args[2]));
151 +      __asm__("ldd [%0+%1],%%f4" : : "p" (l), "i" OFFSETOF(av_alist,args[2]));
152      if (l->darg_mask & (1<<3))
153 -      __asm__("ldd %1(%0),%%f6" : : "p" (l), "i" OFFSETOF(av_alist,args[3]));
154 +      __asm__("ldd [%0+%1],%%f6" : : "p" (l), "i" OFFSETOF(av_alist,args[3]));
155      if (l->darg_mask & (1<<4))
156 -      __asm__("ldd %1(%0),%%f8" : : "p" (l), "i" OFFSETOF(av_alist,args[4]));
157 +      __asm__("ldd [%0+%1],%%f8" : : "p" (l), "i" OFFSETOF(av_alist,args[4]));
158      if (l->darg_mask & (1<<5))
159 -      __asm__("ldd %1(%0),%%f10" : : "p" (l), "i" OFFSETOF(av_alist,args[5]));
160 +      __asm__("ldd [%0+%1],%%f10" : : "p" (l), "i" OFFSETOF(av_alist,args[5]));
161      if (l->darg_mask & (1<<6))
162 -      __asm__("ldd %1(%0),%%f12" : : "p" (l), "i" OFFSETOF(av_alist,args[6]));
163 +      __asm__("ldd [%0+%1],%%f12" : : "p" (l), "i" OFFSETOF(av_alist,args[6]));
164      if (l->darg_mask & (1<<7))
165 -      __asm__("ldd %1(%0),%%f14" : : "p" (l), "i" OFFSETOF(av_alist,args[7]));
166 +      __asm__("ldd [%0+%1],%%f14" : : "p" (l), "i" OFFSETOF(av_alist,args[7]));
167      if (l->darg_mask & (1<<8))
168 -      __asm__("ldd %1(%0),%%f16" : : "p" (l), "i" OFFSETOF(av_alist,args[8]));
169 +      __asm__("ldd [%0+%1],%%f16" : : "p" (l), "i" OFFSETOF(av_alist,args[8]));
170      if (l->darg_mask & (1<<9))
171 -      __asm__("ldd %1(%0),%%f18" : : "p" (l), "i" OFFSETOF(av_alist,args[9]));
172 +      __asm__("ldd [%0+%1],%%f18" : : "p" (l), "i" OFFSETOF(av_alist,args[9]));
173      if (l->darg_mask & (1<<10))
174 -      __asm__("ldd %1(%0),%%f20" : : "p" (l), "i" OFFSETOF(av_alist,args[10]));
175 +      __asm__("ldd [%0+%1],%%f20" : : "p" (l), "i" OFFSETOF(av_alist,args[10]));
176      if (l->darg_mask & (1<<11))
177 -      __asm__("ldd %1(%0),%%f22" : : "p" (l), "i" OFFSETOF(av_alist,args[11]));
178 +      __asm__("ldd [%0+%1],%%f22" : : "p" (l), "i" OFFSETOF(av_alist,args[11]));
179      if (l->darg_mask & (1<<12))
180 -      __asm__("ldd %1(%0),%%f24" : : "p" (l), "i" OFFSETOF(av_alist,args[12]));
181 +      __asm__("ldd [%0+%1],%%f24" : : "p" (l), "i" OFFSETOF(av_alist,args[12]));
182      if (l->darg_mask & (1<<13))
183 -      __asm__("ldd %1(%0),%%f26" : : "p" (l), "i" OFFSETOF(av_alist,args[13]));
184 +      __asm__("ldd [%0+%1],%%f26" : : "p" (l), "i" OFFSETOF(av_alist,args[13]));
185      if (l->darg_mask & (1<<14))
186 -      __asm__("ldd %1(%0),%%f28" : : "p" (l), "i" OFFSETOF(av_alist,args[14]));
187 +      __asm__("ldd [%0+%1],%%f28" : : "p" (l), "i" OFFSETOF(av_alist,args[14]));
188      if (l->darg_mask & (1<<15))
189 -      __asm__("ldd %1(%0),%%f30" : : "p" (l), "i" OFFSETOF(av_alist,args[15]));
190 +      __asm__("ldd [%0+%1],%%f30" : : "p" (l), "i" OFFSETOF(av_alist,args[15]));
191    }
192  
193 -  {
194 +  if (arglen > 6) {
195 +    /* alloca space is separated from the extra outgoing args area by
196 +     * the area for compiler temps (addressable with postive offsets from sp)
197 +     * but they shouldn't be needed for this function, so, effectively,
198 +     * space returned by alloca is safe to use as the area for extra args.
199 +     */
200 +    void *extra_args_area = __builtin_alloca(sizeof(__avword) * (arglen - 6));
201 +    __avword *argframe = (__avword *)extra_args_area - 6;
202 +#if 0
203 +    /* "by construction" */
204 +    assert(argframe == (void *)((unsigned long)(sp + 16)+2047));
205 +#endif
206 +
207      int i;
208      for (i = 6; i < arglen; i++)       /* push excess function args */
209        argframe[i] = l->args[i];
210 @@ -188,7 +162,7 @@
211    i = ({ register __avword iret __asm__ ("%o0");
212           iret = (*l->func)(l->args[0], l->args[1], l->args[2],
213                            l->args[3], l->args[4], l->args[5]);
214 -         asm ("nop");  /* struct returning functions skip this instruction */
215 +         asm __volatile__("nop");      /* struct returning functions skip this instruction */
216           iret;
217         });
218  
219 --- avcall/avcall-sparc64.S.orig        2005-05-23 12:17:21.000000000 +0200
220 +++ avcall/avcall-sparc64.S     2008-10-09 22:10:17.000000000 +0200
221 @@ -1,937 +1,907 @@
222  #include "asmsparc.h"
223         .file   "avcall-sparc64.c"
224 -       .version        "01.01"
225 -.section       ".text"
226 +       .section        ".text"
227         .align 4
228 +       .align 32
229         .global __builtin_avcall
230         DECLARE_FUNCTION(__builtin_avcall)
231 -       .type    __builtin_avcall,$function
232         .proc   04
233  __builtin_avcall:
234 -       !$PROLOGUE$ 0
235 -       save    %sp, -2288, %sp
236 -       !$PROLOGUE$ 1
237 -       ldx     [%i0+40], %g3
238 -       ld      [%i0+60], %o7
239 -       add     %g3, -72, %g3
240 -       add     %sp, 136, %g1
241 -       sub     %g3, %i0, %g3
242 -       cmp     %o7, 0
243 -       sdivx   %g3, 8, %g3
244 -       be,pn   %icc, .LL3
245 -       sra     %g3, 0, %l3
246 -       and     %o7, 1, %g3
247 -       cmp     %g3, 0
248 -       be,pn   %icc, .LL161
249 -       and     %o7, 2, %g3
250 -       ld 72(%i0),%f1
251 -       and     %o7, 2, %g3
252 -.LL161:
253 -       cmp     %g3, 0
254 -       be,pn   %icc, .LL162
255 -       and     %o7, 4, %g3
256 -       ld 80(%i0),%f3
257 -       and     %o7, 4, %g3
258 -.LL162:
259 -       cmp     %g3, 0
260 -       be,pn   %icc, .LL163
261 -       and     %o7, 8, %g3
262 -       ld 88(%i0),%f5
263 -       and     %o7, 8, %g3
264 -.LL163:
265 -       cmp     %g3, 0
266 -       be,pn   %icc, .LL164
267 -       and     %o7, 16, %g3
268 -       ld 96(%i0),%f7
269 -       and     %o7, 16, %g3
270 -.LL164:
271 -       cmp     %g3, 0
272 -       be,pn   %icc, .LL165
273 -       and     %o7, 32, %g3
274 -       ld 104(%i0),%f9
275 -       and     %o7, 32, %g3
276 -.LL165:
277 -       cmp     %g3, 0
278 -       be,pn   %icc, .LL166
279 -       and     %o7, 64, %g3
280 -       ld 112(%i0),%f11
281 -       and     %o7, 64, %g3
282 -.LL166:
283 -       cmp     %g3, 0
284 -       be,pn   %icc, .LL167
285 -       and     %o7, 128, %g3
286 -       ld 120(%i0),%f13
287 -       and     %o7, 128, %g3
288 -.LL167:
289 -       cmp     %g3, 0
290 -       be,pn   %icc, .LL168
291 -       and     %o7, 256, %g3
292 -       ld 128(%i0),%f15
293 -       and     %o7, 256, %g3
294 +       .register       %g2, $scratch
295 +       .register       %g3, $scratch
296 +       save    %sp, -192, %sp
297 +       ldx     [%i0+40], %g1
298 +       add     %i0, 64, %g2
299 +       lduw    [%i0+60], %g3
300 +       sub     %g1, %g2, %g1
301 +       cmp     %g3, 0
302 +       be,pt   %icc, .LL2
303 +        srlx   %g1, 3, %o7
304 +       andcc   %g3, 1, %g0
305 +       bne,pt  %xcc, .LL161
306 +        andcc  %g3, 2, %g0
307 +       bne,pt  %xcc, .LL162
308 +        andcc  %g3, 4, %g0
309 +.LL222:
310 +       bne,pt  %xcc, .LL163
311 +        andcc  %g3, 8, %g0
312 +.LL221:
313 +       bne,pt  %xcc, .LL164
314 +        andcc  %g3, 16, %g0
315 +.LL220:
316 +       bne,pt  %xcc, .LL165
317 +        andcc  %g3, 32, %g0
318 +.LL219:
319 +       bne,pt  %xcc, .LL166
320 +        andcc  %g3, 64, %g0
321 +.LL218:
322 +       bne,pt  %xcc, .LL167
323 +        andcc  %g3, 128, %g0
324 +.LL217:
325 +       bne,pt  %xcc, .LL168
326 +        andcc  %g3, 256, %g0
327 +.LL216:
328 +       bne,pt  %xcc, .LL169
329 +        andcc  %g3, 512, %g0
330 +.LL215:
331 +       bne,pt  %xcc, .LL170
332 +        andcc  %g3, 1024, %g0
333 +.LL226:
334 +       bne,pt  %xcc, .LL171
335 +        andcc  %g3, 2048, %g0
336 +.LL225:
337 +       bne,pt  %xcc, .LL172
338 +        sethi  %hi(4096), %g1
339 +.LL224:
340 +       andcc   %g3, %g1, %g0
341 +       bne,pt  %icc, .LL173
342 +        sethi  %hi(8192), %g1
343 +.LL223:
344 +       andcc   %g3, %g1, %g0
345 +       bne,pt  %icc, .LL174
346 +        sethi  %hi(16384), %g1
347 +.LL228:
348 +       andcc   %g3, %g1, %g0
349 +       bne,pt  %icc, .LL175
350 +        sethi  %hi(32768), %g1
351 +.LL227:
352 +       andcc   %g3, %g1, %g0
353 +       bne,pt  %icc, .LL176
354 +        nop
355 +.LL2:
356 +       cmp     %o7, 6
357 +.LL229:
358 +       bg,pn   %icc, .LL213
359 +        add    %o7, -6, %g1
360 +       ldx     [%i0], %g1
361 +.LL212:
362 +       ldx     [%i0+64], %o0
363 +       ldx     [%i0+72], %o1
364 +       ldx     [%i0+80], %o2
365 +       ldx     [%i0+88], %o3
366 +       ldx     [%i0+96], %o4
367 +       call    %g1, 0
368 +        ldx    [%i0+104], %o5
369 +       mov     %o0, %l1
370 +       nop
371 +       lduw    [%i0+24], %g1
372 +       cmp     %g1, 1
373 +       be,pn   %icc, .LL38
374 +        cmp    %g1, 0
375 +       be,a,pt %icc, .LL214
376 +        ldx    [%i0+16], %g1
377 +       cmp     %g1, 2
378 +       be,pn   %icc, .LL153
379 +        cmp    %g1, 3
380 +       be,pn   %icc, .LL153
381 +        cmp    %g1, 4
382 +       be,pn   %icc, .LL153
383 +        cmp    %g1, 5
384 +       be,pn   %icc, .LL154
385 +        cmp    %g1, 6
386 +       be,pn   %icc, .LL154
387 +        cmp    %g1, 7
388 +       be,pn   %icc, .LL155
389 +        cmp    %g1, 8
390 +       be,pn   %icc, .LL155
391 +        cmp    %g1, 9
392 +       be,pn   %icc, .LL159
393 +        cmp    %g1, 10
394 +       be,pn   %icc, .LL159
395 +        cmp    %g1, 11
396 +       be,pn   %icc, .LL159
397 +        cmp    %g1, 12
398 +       be,pn   %icc, .LL159
399 +        cmp    %g1, 13
400 +       be,pn   %icc, .LL178
401 +        cmp    %g1, 14
402 +       be,pn   %icc, .LL179
403 +        cmp    %g1, 15
404 +       be,pn   %icc, .LL159
405 +        cmp    %g1, 16
406 +       bne,pt  %icc, .LL38
407 +        nop
408 +       lduw    [%i0+8], %g1
409 +       andcc   %g1, 1, %g0
410 +       be,pt   %xcc, .LL71
411 +        andcc  %g1, 512, %g0
412 +       ldx     [%i0+32], %g1
413 +       cmp     %g1, 1
414 +       be,pn   %xcc, .LL180
415 +        cmp    %g1, 2
416 +       be,pn   %xcc, .LL181
417 +        cmp    %g1, 4
418 +       be,pn   %xcc, .LL182
419 +        cmp    %g1, 8
420 +       be,pn   %xcc, .LL183
421 +        add    %g1, 7, %g1
422 +       srlx    %g1, 3, %g1
423 +       addcc   %g1, -1, %g4
424 +       bneg,pn %icc, .LL38
425 +        sra    %g4, 0, %g1
426 +       ldx     [%i0+16], %i0
427 +       sllx    %g1, 3, %g2
428 +       add     %o0, %g2, %g3
429 +.LL82:
430 +       ldx     [%g3], %g1
431 +       add     %g4, -1, %g4
432 +       add     %g3, -8, %g3
433 +       cmp     %g4, -1
434 +       stx     %g1, [%g2+%i0]
435 +       bne,pt  %icc, .LL82
436 +        add    %g2, -8, %g2
437 +.LL38:
438 +       return  %i7+8
439 +        mov    0, %o0
440 +.LL159:
441 +       ldx     [%i0+16], %g1
442 +.LL214:
443 +       stx     %l1, [%g1]
444 +       return  %i7+8
445 +        mov    0, %o0
446 +.LL176:
447 +       ldd [%i0+184],%f30
448 +       cmp     %o7, 6
449 +       ble,a,pt %icc, .LL212
450 +        ldx    [%i0], %g1
451 +       add     %o7, -6, %g1
452 +.LL213:
453 +       mov     6, %g4
454 +       sra     %g1, 0, %g1
455 +       mov     0, %g3
456 +       sllx    %g1, 3, %g1
457 +       add     %g1, 15, %g1
458 +       and     %g1, -16, %g1
459 +       sub     %sp, %g1, %sp
460 +       add     %sp, 2238, %g2
461 +       and     %g2, -16, %g5
462 +.LL37:
463 +       add     %g3, %i0, %g1
464 +       add     %g4, 1, %g4
465 +       ldx     [%g1+112], %g2
466 +       cmp     %o7, %g4
467 +       stx     %g2, [%g3+%g5]
468 +       bne,pt  %icc, .LL37
469 +        add    %g3, 8, %g3
470 +       ba,pt   %xcc, .LL212
471 +        ldx    [%i0], %g1
472  .LL168:
473 -       cmp     %g3, 0
474 -       be,pn   %icc, .LL169
475 -       and     %o7, 512, %g3
476 -       ld 136(%i0),%f17
477 -       and     %o7, 512, %g3
478 -.LL169:
479 -       cmp     %g3, 0
480 -       be,a,pn %icc, .LL170
481 -       ld      [%i0+60], %o7
482 -       ld 144(%i0),%f19
483 -       ld      [%i0+60], %o7
484 -.LL170:
485 -       and     %o7, 1024, %g3
486 -       cmp     %g3, 0
487 -       be,pn   %icc, .LL171
488 -       and     %o7, 2048, %g3
489 -       ld 152(%i0),%f21
490 -       and     %o7, 2048, %g3
491 -.LL171:
492 -       cmp     %g3, 0
493 -       be,pn   %icc, .LL172
494 -       sethi   %hi(4096), %g3
495 -       ld 160(%i0),%f23
496 -       sethi   %hi(4096), %g3
497 +       ldd [%i0+120],%f14
498 +       andcc   %g3, 256, %g0
499 +       be,pt   %xcc, .LL215
500 +        andcc  %g3, 512, %g0
501 +       ba,pt   %xcc, .LL169
502 +        nop
503 +.LL167:
504 +       ldd [%i0+112],%f12
505 +       andcc   %g3, 128, %g0
506 +       be,pt   %xcc, .LL216
507 +        andcc  %g3, 256, %g0
508 +       ba,pt   %xcc, .LL168
509 +        nop
510 +.LL166:
511 +       ldd [%i0+104],%f10
512 +       andcc   %g3, 64, %g0
513 +       be,pt   %xcc, .LL217
514 +        andcc  %g3, 128, %g0
515 +       ba,pt   %xcc, .LL167
516 +        nop
517 +.LL165:
518 +       ldd [%i0+96],%f8
519 +       andcc   %g3, 32, %g0
520 +       be,pt   %xcc, .LL218
521 +        andcc  %g3, 64, %g0
522 +       ba,pt   %xcc, .LL166
523 +        nop
524 +.LL164:
525 +       ldd [%i0+88],%f6
526 +       andcc   %g3, 16, %g0
527 +       be,pt   %xcc, .LL219
528 +        andcc  %g3, 32, %g0
529 +       ba,pt   %xcc, .LL165
530 +        nop
531 +.LL163:
532 +       ldd [%i0+80],%f4
533 +       andcc   %g3, 8, %g0
534 +       be,pt   %xcc, .LL220
535 +        andcc  %g3, 16, %g0
536 +       ba,pt   %xcc, .LL164
537 +        nop
538 +.LL162:
539 +       ldd [%i0+72],%f2
540 +       andcc   %g3, 4, %g0
541 +       be,pt   %xcc, .LL221
542 +        andcc  %g3, 8, %g0
543 +       ba,pt   %xcc, .LL163
544 +        nop
545 +.LL161:
546 +       ldd [%i0+64],%f0
547 +       andcc   %g3, 2, %g0
548 +       be,pt   %xcc, .LL222
549 +        andcc  %g3, 4, %g0
550 +       ba,pt   %xcc, .LL162
551 +        nop
552  .LL172:
553 -       andcc   %o7, %g3, %g0
554 -       be,pn   %icc, .LL173
555 -       sethi   %hi(8192), %g3
556 -       ld 168(%i0),%f25
557 -       sethi   %hi(8192), %g3
558 -.LL173:
559 -       andcc   %o7, %g3, %g0
560 -       be,pn   %icc, .LL174
561 -       sethi   %hi(16384), %g3
562 -       ld 176(%i0),%f27
563 -       sethi   %hi(16384), %g3
564 +       ldd [%i0+152],%f22
565 +       sethi   %hi(4096), %g1
566 +       andcc   %g3, %g1, %g0
567 +       be,pt   %icc, .LL223
568 +        sethi  %hi(8192), %g1
569 +       ba,pt   %xcc, .LL173
570 +        nop
571 +.LL171:
572 +       ldd [%i0+144],%f20
573 +       andcc   %g3, 2048, %g0
574 +       be,pt   %xcc, .LL224
575 +        sethi  %hi(4096), %g1
576 +       ba,pt   %xcc, .LL172
577 +        nop
578 +.LL170:
579 +       ldd [%i0+136],%f18
580 +       andcc   %g3, 1024, %g0
581 +       be,pt   %xcc, .LL225
582 +        andcc  %g3, 2048, %g0
583 +       ba,pt   %xcc, .LL171
584 +        nop
585 +.LL169:
586 +       ldd [%i0+128],%f16
587 +       andcc   %g3, 512, %g0
588 +       be,pt   %xcc, .LL226
589 +        andcc  %g3, 1024, %g0
590 +       ba,pt   %xcc, .LL170
591 +        nop
592  .LL174:
593 -       andcc   %o7, %g3, %g0
594 -       be,pn   %icc, .LL175
595 -       sethi   %hi(32768), %g3
596 -       ld 184(%i0),%f29
597 -       sethi   %hi(32768), %g3
598 +       ldd [%i0+168],%f26
599 +       sethi   %hi(16384), %g1
600 +       andcc   %g3, %g1, %g0
601 +       be,pt   %icc, .LL227
602 +        sethi  %hi(32768), %g1
603 +       ba,pt   %xcc, .LL175
604 +        nop
605 +.LL173:
606 +       ldd [%i0+160],%f24
607 +       sethi   %hi(8192), %g1
608 +       andcc   %g3, %g1, %g0
609 +       be,pt   %icc, .LL228
610 +        sethi  %hi(16384), %g1
611 +       ba,pt   %xcc, .LL174
612 +        nop
613  .LL175:
614 -       andcc   %o7, %g3, %g0
615 -       be,a,pn %icc, .LL176
616 -       ld      [%i0+64], %g3
617 -       ld 192(%i0),%f31
618 -.LL3:
619 -       ld      [%i0+64], %g3
620 -.LL176:
621 -       cmp     %g3, 0
622 -       be,pn   %icc, .LL20
623 -       mov     %g3, %o7
624 -       and     %o7, 1, %g3
625 -       cmp     %g3, 0
626 -       be,pn   %icc, .LL177
627 -       and     %o7, 2, %g3
628 -       ldd 72(%i0),%f0
629 -       and     %o7, 2, %g3
630 -.LL177:
631 -       cmp     %g3, 0
632 -       be,pn   %icc, .LL178
633 -       and     %o7, 4, %g3
634 -       ldd 80(%i0),%f2
635 -       and     %o7, 4, %g3
636 +       ldd [%i0+176],%f28
637 +       sethi   %hi(32768), %g1
638 +       andcc   %g3, %g1, %g0
639 +       be,pt   %icc, .LL229
640 +        cmp    %o7, 6
641 +       ba,pt   %xcc, .LL176
642 +        nop
643 +.LL153:
644 +       ldx     [%i0+16], %g1
645 +       stb     %l1, [%g1]
646 +       return  %i7+8
647 +        mov    0, %o0
648 +.LL154:
649 +       ldx     [%i0+16], %g1
650 +       ba,pt   %xcc, .LL38
651 +        sth    %l1, [%g1]
652 +.LL155:
653 +       ldx     [%i0+16], %g1
654 +       ba,pt   %xcc, .LL38
655 +        st     %l1, [%g1]
656  .LL178:
657 -       cmp     %g3, 0
658 -       be,pn   %icc, .LL179
659 -       and     %o7, 8, %g3
660 -       ldd 88(%i0),%f4
661 -       and     %o7, 8, %g3
662 +       ldx     [%i0+16], %g1
663 +       ba,pt   %xcc, .LL38
664 +        st     %f0, [%g1]
665  .LL179:
666 -       cmp     %g3, 0
667 -       be,pn   %icc, .LL180
668 -       and     %o7, 16, %g3
669 -       ldd 96(%i0),%f6
670 -       and     %o7, 16, %g3
671 +       ldx     [%i0+16], %g1
672 +       ba,pt   %xcc, .LL38
673 +        std    %f0, [%g1]
674 +.LL71:
675 +       be,pn   %xcc, .LL38
676 +        nop
677 +       ldx     [%i0+32], %g2
678 +       add     %g2, -1, %g1
679 +       cmp     %g1, 31
680 +       bgu,pn  %xcc, .LL38
681 +        cmp    %g2, 1
682 +       be,pn   %xcc, .LL184
683 +        cmp    %g2, 2
684 +       be,pn   %xcc, .LL185
685 +        cmp    %g2, 3
686 +       be,pn   %xcc, .LL186
687 +        cmp    %g2, 4
688 +       be,pn   %xcc, .LL187
689 +        cmp    %g2, 5
690 +       be,pn   %xcc, .LL188
691 +        cmp    %g2, 6
692 +       be,pn   %xcc, .LL189
693 +        cmp    %g2, 7
694 +       be,pn   %xcc, .LL190
695 +        add    %g2, -8, %g1
696 +       cmp     %g1, 24
697 +       bgu,pn  %xcc, .LL38
698 +        srax   %o0, 56, %g1
699 +       ldx     [%i0+16], %g2
700 +       srax    %o0, 48, %g3
701 +       stb     %g1, [%g2]
702 +       srax    %o0, 40, %g4
703 +       ldx     [%i0+16], %g1
704 +       srax    %o0, 32, %g5
705 +       srax    %o0, 24, %o7
706 +       stb     %g3, [%g1+1]
707 +       srax    %o0, 16, %l0
708 +       ldx     [%i0+16], %g2
709 +       srax    %o0, 8, %g3
710 +       stb     %g4, [%g2+2]
711 +       ldx     [%i0+16], %g1
712 +       stb     %g5, [%g1+3]
713 +       ldx     [%i0+16], %g2
714 +       stb     %o7, [%g2+4]
715 +       ldx     [%i0+16], %g1
716 +       stb     %l0, [%g1+5]
717 +       ldx     [%i0+16], %g2
718 +       stb     %g3, [%g2+6]
719 +       ldx     [%i0+16], %g1
720 +       stb     %o0, [%g1+7]
721 +       ldx     [%i0+32], %g1
722 +       cmp     %g1, 8
723 +       be,pn   %xcc, .LL38
724 +        cmp    %g1, 9
725 +       be,pn   %xcc, .LL191
726 +        cmp    %g1, 10
727 +       be,pn   %xcc, .LL192
728 +        cmp    %g1, 11
729 +       be,pn   %xcc, .LL193
730 +        cmp    %g1, 12
731 +       be,pn   %xcc, .LL194
732 +        cmp    %g1, 13
733 +       be,pn   %xcc, .LL195
734 +        cmp    %g1, 14
735 +       be,pn   %xcc, .LL196
736 +        cmp    %g1, 15
737 +       be,pn   %xcc, .LL197
738 +        add    %g1, -16, %g1
739 +       cmp     %g1, 16
740 +       bgu,pn  %xcc, .LL38
741 +        srax   %o1, 56, %g1
742 +       ldx     [%i0+16], %g2
743 +       srax    %o1, 48, %g3
744 +       stb     %g1, [%g2+8]
745 +       srax    %o1, 40, %g4
746 +       ldx     [%i0+16], %g1
747 +       srax    %o1, 32, %g5
748 +       srax    %o1, 24, %o7
749 +       stb     %g3, [%g1+9]
750 +       srax    %o1, 16, %l0
751 +       ldx     [%i0+16], %g2
752 +       srax    %o1, 8, %g3
753 +       stb     %g4, [%g2+10]
754 +       ldx     [%i0+16], %g1
755 +       stb     %g5, [%g1+11]
756 +       ldx     [%i0+16], %g2
757 +       stb     %o7, [%g2+12]
758 +       ldx     [%i0+16], %g1
759 +       stb     %l0, [%g1+13]
760 +       ldx     [%i0+16], %g2
761 +       stb     %g3, [%g2+14]
762 +       ldx     [%i0+16], %g1
763 +       stb     %o1, [%g1+15]
764 +       ldx     [%i0+32], %g1
765 +       cmp     %g1, 16
766 +       be,pn   %xcc, .LL38
767 +        cmp    %g1, 17
768 +       be,pn   %xcc, .LL198
769 +        cmp    %g1, 18
770 +       be,pn   %xcc, .LL199
771 +        cmp    %g1, 19
772 +       be,pn   %xcc, .LL200
773 +        cmp    %g1, 20
774 +       be,pn   %xcc, .LL201
775 +        cmp    %g1, 21
776 +       be,pn   %xcc, .LL202
777 +        cmp    %g1, 22
778 +       be,pn   %xcc, .LL203
779 +        cmp    %g1, 23
780 +       be,pn   %xcc, .LL204
781 +        add    %g1, -24, %g1
782 +       cmp     %g1, 8
783 +       bgu,pn  %xcc, .LL38
784 +        srax   %o2, 56, %g1
785 +       ldx     [%i0+16], %g2
786 +       srax    %o2, 48, %g3
787 +       stb     %g1, [%g2+16]
788 +       srax    %o2, 40, %g4
789 +       ldx     [%i0+16], %g1
790 +       srax    %o2, 32, %g5
791 +       srax    %o2, 24, %o7
792 +       stb     %g3, [%g1+17]
793 +       srax    %o2, 16, %l0
794 +       ldx     [%i0+16], %g2
795 +       srax    %o2, 8, %g3
796 +       stb     %g4, [%g2+18]
797 +       ldx     [%i0+16], %g1
798 +       stb     %g5, [%g1+19]
799 +       ldx     [%i0+16], %g2
800 +       stb     %o7, [%g2+20]
801 +       ldx     [%i0+16], %g1
802 +       stb     %l0, [%g1+21]
803 +       ldx     [%i0+16], %g2
804 +       stb     %g3, [%g2+22]
805 +       ldx     [%i0+16], %g1
806 +       stb     %o2, [%g1+23]
807 +       ldx     [%i0+32], %g1
808 +       cmp     %g1, 24
809 +       be,pn   %xcc, .LL38
810 +        cmp    %g1, 25
811 +       be,pn   %xcc, .LL205
812 +        cmp    %g1, 26
813 +       be,pn   %xcc, .LL206
814 +        cmp    %g1, 27
815 +       be,pn   %xcc, .LL207
816 +        cmp    %g1, 28
817 +       be,pn   %xcc, .LL208
818 +        cmp    %g1, 29
819 +       be,pn   %xcc, .LL209
820 +        cmp    %g1, 30
821 +       be,pn   %xcc, .LL210
822 +        cmp    %g1, 31
823 +       be,pn   %xcc, .LL211
824 +        cmp    %g1, 32
825 +       bne,pt  %xcc, .LL38
826 +        srax   %o3, 56, %g1
827 +       ldx     [%i0+16], %g2
828 +       srax    %o3, 48, %g3
829 +       stb     %g1, [%g2+24]
830 +       srax    %o3, 40, %g4
831 +       ldx     [%i0+16], %g1
832 +       srax    %o3, 32, %g5
833 +       srax    %o3, 24, %o7
834 +       stb     %g3, [%g1+25]
835 +       srax    %o3, 16, %l0
836 +       ldx     [%i0+16], %g2
837 +       srax    %o3, 8, %g3
838 +       stb     %g4, [%g2+26]
839 +       ldx     [%i0+16], %g1
840 +       stb     %g5, [%g1+27]
841 +       ldx     [%i0+16], %g2
842 +       stb     %o7, [%g2+28]
843 +       ldx     [%i0+16], %g1
844 +       stb     %l0, [%g1+29]
845 +       ldx     [%i0+16], %g2
846 +       stb     %g3, [%g2+30]
847 +       ldx     [%i0+16], %g1
848 +       ba,pt   %xcc, .LL38
849 +        stb    %o3, [%g1+31]
850  .LL180:
851 -       cmp     %g3, 0
852 -       be,pn   %icc, .LL181
853 -       and     %o7, 32, %g3
854 -       ldd 104(%i0),%f8
855 -       and     %o7, 32, %g3
856 +       ldx     [%i0+16], %g2
857 +       ldub    [%o0], %g1
858 +       ba,pt   %xcc, .LL38
859 +        stb    %g1, [%g2]
860  .LL181:
861 -       cmp     %g3, 0
862 -       be,pn   %icc, .LL182
863 -       and     %o7, 64, %g3
864 -       ldd 112(%i0),%f10
865 -       and     %o7, 64, %g3
866 -.LL182:
867 -       cmp     %g3, 0
868 -       be,pn   %icc, .LL183
869 -       and     %o7, 128, %g3
870 -       ldd 120(%i0),%f12
871 -       and     %o7, 128, %g3
872 +       ldx     [%i0+16], %g2
873 +       lduh    [%o0], %g1
874 +       ba,pt   %xcc, .LL38
875 +        sth    %g1, [%g2]
876  .LL183:
877 -       cmp     %g3, 0
878 -       be,pn   %icc, .LL184
879 -       and     %o7, 256, %g3
880 -       ldd 128(%i0),%f14
881 -       and     %o7, 256, %g3
882 -.LL184:
883 -       cmp     %g3, 0
884 -       be,pn   %icc, .LL185
885 -       and     %o7, 512, %g3
886 -       ldd 136(%i0),%f16
887 -       and     %o7, 512, %g3
888 -.LL185:
889 -       cmp     %g3, 0
890 -       be,pn   %icc, .LL186
891 -       and     %o7, 1024, %g3
892 -       ldd 144(%i0),%f18
893 -       and     %o7, 1024, %g3
894 -.LL186:
895 -       cmp     %g3, 0
896 -       be,pn   %icc, .LL187
897 -       and     %o7, 2048, %g3
898 -       ldd 152(%i0),%f20
899 -       and     %o7, 2048, %g3
900 -.LL187:
901 -       cmp     %g3, 0
902 -       be,pn   %icc, .LL188
903 -       sethi   %hi(4096), %g3
904 -       ldd 160(%i0),%f22
905 -       sethi   %hi(4096), %g3
906 -.LL188:
907 -       andcc   %o7, %g3, %g0
908 -       be,pn   %icc, .LL189
909 -       sethi   %hi(8192), %g3
910 -       ldd 168(%i0),%f24
911 -       sethi   %hi(8192), %g3
912 -.LL189:
913 -       andcc   %o7, %g3, %g0
914 -       be,pn   %icc, .LL190
915 -       sethi   %hi(16384), %g3
916 -       ldd 176(%i0),%f26
917 -       sethi   %hi(16384), %g3
918 -.LL190:
919 -       andcc   %o7, %g3, %g0
920 -       be,pn   %icc, .LL191
921 -       sethi   %hi(32768), %g3
922 -       ldd 184(%i0),%f28
923 -       sethi   %hi(32768), %g3
924 -.LL191:
925 -       andcc   %o7, %g3, %g0
926 -       be,pn   %icc, .LL192
927 -       mov     6, %l1
928 -       ldd 192(%i0),%f30
929 -.LL20:
930 -       mov     6, %l1
931 -.LL192:
932 -       cmp     %l1, %l3
933 -       bge,a,pt %icc, .LL193
934 -       ldx     [%i0], %g3
935 -       add     %i0, 72, %l2
936 -.LL40:
937 -       sllx    %l1, 3, %l0
938 -       add     %l1, 1, %g3
939 -       sra     %g3, 0, %l1
940 -       ldx     [%l2+%l0], %o7
941 -       cmp     %l1, %l3
942 -       bl,pt   %icc, .LL40
943 -       stx     %o7, [%g1+%l0]
944 -       ldx     [%i0], %g3
945 -.LL193:
946 -       ldx     [%i0+72], %o0
947 -       ldx     [%i0+80], %o1
948 -       ldx     [%i0+88], %o2
949 -       ldx     [%i0+96], %o3
950 -       ldx     [%i0+104], %o4
951 -       call    %g3, 0
952 -       ldx     [%i0+112], %o5
953 -       nop
954 -       ld      [%i0+24], %g3
955 -       cmp     %g3, 1
956 -       be,pn   %icc, .LL43
957 -       mov     %o0, %g1
958 -       cmp     %g3, 0
959 -       be,pn   %icc, .LL157
960 -       cmp     %g3, 2
961 -       be,pn   %icc, .LL158
962 -       cmp     %g3, 3
963 -       be,pn   %icc, .LL158
964 -       cmp     %g3, 4
965 -       bne,pt  %icc, .LL50
966 -       cmp     %g3, 5
967 -.LL158:
968 -       ldx     [%i0+16], %g3
969 -       ba,pt   %xcc, .LL43
970 -       stb     %g1, [%g3]
971 -.LL50:
972 -       be,pn   %icc, .LL159
973 -       cmp     %g3, 6
974 -       bne,pt  %icc, .LL54
975 -       cmp     %g3, 7
976 -.LL159:
977 -       ldx     [%i0+16], %g3
978 -       ba,pt   %xcc, .LL43
979 -       sth     %g1, [%g3]
980 -.LL54:
981 -       be,pn   %icc, .LL160
982 -       cmp     %g3, 8
983 -       bne,pt  %icc, .LL58
984 -       cmp     %g3, 9
985 -.LL160:
986 -       ldx     [%i0+16], %g3
987 -       ba,pt   %xcc, .LL43
988 -       st      %g1, [%g3]
989 -.LL58:
990 -       be,pn   %icc, .LL157
991 -       cmp     %g3, 10
992 -       be,a,pn %icc, .LL194
993 -       ldx     [%i0+16], %g3
994 -       ld      [%i0+24], %g3
995 -       cmp     %g3, 11
996 -       be,pn   %icc, .LL157
997 -       cmp     %g3, 12
998 -       be,pn   %icc, .LL157
999 -       cmp     %g3, 13
1000 -       bne,pt  %icc, .LL68
1001 -       cmp     %g3, 14
1002 -       ldx     [%i0+16], %g3
1003 -       ba,pt   %xcc, .LL43
1004 -       st      %f0, [%g3]
1005 -.LL68:
1006 -       bne,pt  %icc, .LL70
1007 -       cmp     %g3, 15
1008 -       ldx     [%i0+16], %g3
1009 -       ba,pt   %xcc, .LL43
1010 -       std     %f0, [%g3]
1011 -.LL70:
1012 -       bne,pt  %icc, .LL72
1013 -       cmp     %g3, 16
1014 -.LL157:
1015 -       ldx     [%i0+16], %g3
1016 +       ldx     [%i0+16], %g2
1017 +       ldx     [%o0], %g1
1018 +       ba,pt   %xcc, .LL38
1019 +        stx    %g1, [%g2]
1020 +.LL182:
1021 +       ldx     [%i0+16], %g2
1022 +       lduw    [%o0], %g1
1023 +       ba,pt   %xcc, .LL38
1024 +        st     %g1, [%g2]
1025 +.LL211:
1026 +       ldx     [%i0+16], %g2
1027 +       srax    %o3, 56, %g1
1028 +       srax    %o3, 48, %g3
1029 +       stb     %g1, [%g2+24]
1030 +       srax    %o3, 40, %g4
1031 +       ldx     [%i0+16], %g1
1032 +       srax    %o3, 32, %g5
1033 +       srax    %o3, 24, %o7
1034 +       stb     %g3, [%g1+25]
1035 +       srax    %o3, 16, %l0
1036 +       ldx     [%i0+16], %g2
1037 +       srax    %o3, 8, %g3
1038 +       stb     %g4, [%g2+26]
1039 +       ldx     [%i0+16], %g1
1040 +       stb     %g5, [%g1+27]
1041 +       ldx     [%i0+16], %g2
1042 +       stb     %o7, [%g2+28]
1043 +       ldx     [%i0+16], %g1
1044 +       stb     %l0, [%g1+29]
1045 +       ldx     [%i0+16], %g2
1046 +       ba,pt   %xcc, .LL38
1047 +        stb    %g3, [%g2+30]
1048 +.LL210:
1049 +       ldx     [%i0+16], %g2
1050 +       srax    %o3, 56, %g1
1051 +       srax    %o3, 48, %g3
1052 +       stb     %g1, [%g2+24]
1053 +       srax    %o3, 40, %g4
1054 +       ldx     [%i0+16], %g1
1055 +       srax    %o3, 32, %g5
1056 +       srax    %o3, 24, %o7
1057 +       stb     %g3, [%g1+25]
1058 +       srax    %o3, 16, %l0
1059 +       ldx     [%i0+16], %g1
1060 +       stb     %g4, [%g1+26]
1061 +       ldx     [%i0+16], %g2
1062 +       stb     %g5, [%g2+27]
1063 +       ldx     [%i0+16], %g1
1064 +       stb     %o7, [%g1+28]
1065 +       ldx     [%i0+16], %g2
1066 +       ba,pt   %xcc, .LL38
1067 +        stb    %l0, [%g2+29]
1068 +.LL209:
1069 +       ldx     [%i0+16], %g2
1070 +       srax    %o3, 56, %g1
1071 +       srax    %o3, 48, %g3
1072 +       stb     %g1, [%g2+24]
1073 +       srax    %o3, 40, %g4
1074 +       ldx     [%i0+16], %g2
1075 +       srax    %o3, 32, %g5
1076 +       srax    %o3, 24, %o7
1077 +       stb     %g3, [%g2+25]
1078 +       ldx     [%i0+16], %g1
1079 +       stb     %g4, [%g1+26]
1080 +       ldx     [%i0+16], %g2
1081 +       stb     %g5, [%g2+27]
1082 +       ldx     [%i0+16], %g1
1083 +       ba,pt   %xcc, .LL38
1084 +        stb    %o7, [%g1+28]
1085 +.LL208:
1086 +       ldx     [%i0+16], %g2
1087 +       srax    %o3, 56, %g1
1088 +       srax    %o3, 48, %g3
1089 +       stb     %g1, [%g2+24]
1090 +       srax    %o3, 40, %g4
1091 +       ldx     [%i0+16], %g2
1092 +       srax    %o3, 32, %g5
1093 +       stb     %g3, [%g2+25]
1094 +       ldx     [%i0+16], %g1
1095 +       stb     %g4, [%g1+26]
1096 +       ldx     [%i0+16], %g2
1097 +       ba,pt   %xcc, .LL38
1098 +        stb    %g5, [%g2+27]
1099 +.LL207:
1100 +       ldx     [%i0+16], %g2
1101 +       srax    %o3, 56, %g1
1102 +       srax    %o3, 48, %g3
1103 +       stb     %g1, [%g2+24]
1104 +       srax    %o3, 40, %g4
1105 +       ldx     [%i0+16], %g1
1106 +       stb     %g3, [%g1+25]
1107 +       ldx     [%i0+16], %g2
1108 +       ba,pt   %xcc, .LL38
1109 +        stb    %g4, [%g2+26]
1110 +.LL206:
1111 +       ldx     [%i0+16], %g3
1112 +       srax    %o3, 56, %g2
1113 +       srax    %o3, 48, %g4
1114 +       stb     %g2, [%g3+24]
1115 +       ldx     [%i0+16], %g1
1116 +       ba,pt   %xcc, .LL38
1117 +        stb    %g4, [%g1+25]
1118 +.LL205:
1119 +       ldx     [%i0+16], %g2
1120 +       srax    %o3, 56, %g1
1121 +       ba,pt   %xcc, .LL38
1122 +        stb    %g1, [%g2+24]
1123 +.LL204:
1124 +       ldx     [%i0+16], %g2
1125 +       srax    %o2, 56, %g1
1126 +       srax    %o2, 48, %g3
1127 +       stb     %g1, [%g2+16]
1128 +       srax    %o2, 40, %g4
1129 +       ldx     [%i0+16], %g1
1130 +       srax    %o2, 32, %g5
1131 +       srax    %o2, 24, %o7
1132 +       stb     %g3, [%g1+17]
1133 +       srax    %o2, 16, %l0
1134 +       ldx     [%i0+16], %g2
1135 +       srax    %o2, 8, %g3
1136 +       stb     %g4, [%g2+18]
1137 +       ldx     [%i0+16], %g1
1138 +       stb     %g5, [%g1+19]
1139 +       ldx     [%i0+16], %g2
1140 +       stb     %o7, [%g2+20]
1141 +       ldx     [%i0+16], %g1
1142 +       stb     %l0, [%g1+21]
1143 +       ldx     [%i0+16], %g2
1144 +       ba,pt   %xcc, .LL38
1145 +        stb    %g3, [%g2+22]
1146 +.LL203:
1147 +       ldx     [%i0+16], %g2
1148 +       srax    %o2, 56, %g1
1149 +       srax    %o2, 48, %g3
1150 +       stb     %g1, [%g2+16]
1151 +       srax    %o2, 40, %g4
1152 +       ldx     [%i0+16], %g1
1153 +       srax    %o2, 32, %g5
1154 +       srax    %o2, 24, %o7
1155 +       stb     %g3, [%g1+17]
1156 +       srax    %o2, 16, %l0
1157 +       ldx     [%i0+16], %g1
1158 +       stb     %g4, [%g1+18]
1159 +       ldx     [%i0+16], %g2
1160 +       stb     %g5, [%g2+19]
1161 +       ldx     [%i0+16], %g1
1162 +       stb     %o7, [%g1+20]
1163 +       ldx     [%i0+16], %g2
1164 +       ba,pt   %xcc, .LL38
1165 +        stb    %l0, [%g2+21]
1166 +.LL202:
1167 +       ldx     [%i0+16], %g2
1168 +       srax    %o2, 56, %g1
1169 +       srax    %o2, 48, %g3
1170 +       stb     %g1, [%g2+16]
1171 +       srax    %o2, 40, %g4
1172 +       ldx     [%i0+16], %g2
1173 +       srax    %o2, 32, %g5
1174 +       srax    %o2, 24, %o7
1175 +       stb     %g3, [%g2+17]
1176 +       ldx     [%i0+16], %g1
1177 +       stb     %g4, [%g1+18]
1178 +       ldx     [%i0+16], %g2
1179 +       stb     %g5, [%g2+19]
1180 +       ldx     [%i0+16], %g1
1181 +       ba,pt   %xcc, .LL38
1182 +        stb    %o7, [%g1+20]
1183 +.LL201:
1184 +       ldx     [%i0+16], %g2
1185 +       srax    %o2, 56, %g1
1186 +       srax    %o2, 48, %g3
1187 +       stb     %g1, [%g2+16]
1188 +       srax    %o2, 40, %g4
1189 +       ldx     [%i0+16], %g2
1190 +       srax    %o2, 32, %g5
1191 +       stb     %g3, [%g2+17]
1192 +       ldx     [%i0+16], %g1
1193 +       stb     %g4, [%g1+18]
1194 +       ldx     [%i0+16], %g2
1195 +       ba,pt   %xcc, .LL38
1196 +        stb    %g5, [%g2+19]
1197 +.LL200:
1198 +       ldx     [%i0+16], %g2
1199 +       srax    %o2, 56, %g1
1200 +       srax    %o2, 48, %g3
1201 +       stb     %g1, [%g2+16]
1202 +       srax    %o2, 40, %g4
1203 +       ldx     [%i0+16], %g1
1204 +       stb     %g3, [%g1+17]
1205 +       ldx     [%i0+16], %g2
1206 +       ba,pt   %xcc, .LL38
1207 +        stb    %g4, [%g2+18]
1208 +.LL199:
1209 +       ldx     [%i0+16], %g3
1210 +       srax    %o2, 56, %g2
1211 +       srax    %o2, 48, %g4
1212 +       stb     %g2, [%g3+16]
1213 +       ldx     [%i0+16], %g1
1214 +       ba,pt   %xcc, .LL38
1215 +        stb    %g4, [%g1+17]
1216 +.LL198:
1217 +       ldx     [%i0+16], %g2
1218 +       srax    %o2, 56, %g1
1219 +       ba,pt   %xcc, .LL38
1220 +        stb    %g1, [%g2+16]
1221 +.LL197:
1222 +       ldx     [%i0+16], %g2
1223 +       srax    %o1, 56, %g1
1224 +       srax    %o1, 48, %g3
1225 +       stb     %g1, [%g2+8]
1226 +       srax    %o1, 40, %g4
1227 +       ldx     [%i0+16], %g1
1228 +       srax    %o1, 32, %g5
1229 +       srax    %o1, 24, %o7
1230 +       stb     %g3, [%g1+9]
1231 +       srax    %o1, 16, %l0
1232 +       ldx     [%i0+16], %g2
1233 +       srax    %o1, 8, %g3
1234 +       stb     %g4, [%g2+10]
1235 +       ldx     [%i0+16], %g1
1236 +       stb     %g5, [%g1+11]
1237 +       ldx     [%i0+16], %g2
1238 +       stb     %o7, [%g2+12]
1239 +       ldx     [%i0+16], %g1
1240 +       stb     %l0, [%g1+13]
1241 +       ldx     [%i0+16], %g2
1242 +       ba,pt   %xcc, .LL38
1243 +        stb    %g3, [%g2+14]
1244 +.LL196:
1245 +       ldx     [%i0+16], %g2
1246 +       srax    %o1, 56, %g1
1247 +       srax    %o1, 48, %g3
1248 +       stb     %g1, [%g2+8]
1249 +       srax    %o1, 40, %g4
1250 +       ldx     [%i0+16], %g1
1251 +       srax    %o1, 32, %g5
1252 +       srax    %o1, 24, %o7
1253 +       stb     %g3, [%g1+9]
1254 +       srax    %o1, 16, %l0
1255 +       ldx     [%i0+16], %g1
1256 +       stb     %g4, [%g1+10]
1257 +       ldx     [%i0+16], %g2
1258 +       stb     %g5, [%g2+11]
1259 +       ldx     [%i0+16], %g1
1260 +       stb     %o7, [%g1+12]
1261 +       ldx     [%i0+16], %g2
1262 +       ba,pt   %xcc, .LL38
1263 +        stb    %l0, [%g2+13]
1264 +.LL195:
1265 +       ldx     [%i0+16], %g2
1266 +       srax    %o1, 56, %g1
1267 +       srax    %o1, 48, %g3
1268 +       stb     %g1, [%g2+8]
1269 +       srax    %o1, 40, %g4
1270 +       ldx     [%i0+16], %g2
1271 +       srax    %o1, 32, %g5
1272 +       srax    %o1, 24, %o7
1273 +       stb     %g3, [%g2+9]
1274 +       ldx     [%i0+16], %g1
1275 +       stb     %g4, [%g1+10]
1276 +       ldx     [%i0+16], %g2
1277 +       stb     %g5, [%g2+11]
1278 +       ldx     [%i0+16], %g1
1279 +       ba,pt   %xcc, .LL38
1280 +        stb    %o7, [%g1+12]
1281  .LL194:
1282 -       ba,pt   %xcc, .LL43
1283 -       stx     %g1, [%g3]
1284 -.LL72:
1285 -       bne,pt  %icc, .LL43
1286 -       nop
1287 -       ld      [%i0+8], %o7
1288 -       and     %o7, 1, %g3
1289 -       cmp     %g3, 0
1290 -       be,pn   %icc, .LL75
1291 -       and     %o7, 512, %g3
1292 -       ldx     [%i0+32], %g3
1293 -       cmp     %g3, 1
1294 -       bne,pt  %xcc, .LL76
1295 -       cmp     %g3, 2
1296 -       ldx     [%i0+16], %o7
1297 -       ldub    [%g1], %g3
1298 -       ba,pt   %xcc, .LL43
1299 -       stb     %g3, [%o7]
1300 -.LL76:
1301 -       bne,pt  %xcc, .LL78
1302 -       cmp     %g3, 4
1303 -       ldx     [%i0+16], %o7
1304 -       lduh    [%g1], %g3
1305 -       ba,pt   %xcc, .LL43
1306 -       sth     %g3, [%o7]
1307 -.LL78:
1308 -       bne,pt  %xcc, .LL80
1309 -       cmp     %g3, 8
1310 -       ldx     [%i0+16], %o7
1311 -       ld      [%g1], %g3
1312 -       ba,pt   %xcc, .LL43
1313 -       st      %g3, [%o7]
1314 -.LL80:
1315 -       bne,pt  %xcc, .LL82
1316 -       add     %g3, 7, %g3
1317 -       ldx     [%i0+16], %o7
1318 -       ldx     [%g1], %g3
1319 -       ba,pt   %xcc, .LL43
1320 -       stx     %g3, [%o7]
1321 -.LL82:
1322 -       srlx    %g3, 3, %g3
1323 -       add     %g3, -1, %g3
1324 -       cmp     %g3, 0
1325 -       bl,pn   %icc, .LL43
1326 -       sra     %g3, 0, %g3
1327 -.LL86:
1328 -       sllx    %g3, 3, %l0
1329 -       add     %g3, -1, %l1
1330 -       ldx     [%g1+%l0], %g3
1331 -       ldx     [%i0+16], %o7
1332 -       stx     %g3, [%o7+%l0]
1333 -       cmp     %l1, 0
1334 -       bge,pt  %icc, .LL86
1335 -       sra     %l1, 0, %g3
1336 -       ba,pt   %xcc, .LL43
1337 -        nop
1338 -.LL75:
1339 -       cmp     %g3, 0
1340 -       be,pn   %icc, .LL43
1341 -       nop
1342 -       ldx     [%i0+32], %o7
1343 -       add     %o7, -1, %g3
1344 -       cmp     %g3, 31
1345 -       bgu,pn  %xcc, .LL43
1346 -       cmp     %o7, 1
1347 -       bne,pt  %xcc, .LL91
1348 -       cmp     %o7, 2
1349 -       ldx     [%i0+16], %o7
1350 -       srax    %g1, 56, %g3
1351 -       ba,pt   %xcc, .LL43
1352 -       stb     %g3, [%o7]
1353 -.LL91:
1354 -       bne,pt  %xcc, .LL93
1355 -       cmp     %o7, 3
1356 -       ldx     [%i0+16], %o7
1357 -       srax    %g1, 56, %g3
1358 -       stb     %g3, [%o7]
1359 -       srax    %g1, 48, %l0
1360 -       ldx     [%i0+16], %g3
1361 -       ba,pt   %xcc, .LL43
1362 -       stb     %l0, [%g3+1]
1363 -.LL93:
1364 -       bne,pt  %xcc, .LL95
1365 -       cmp     %o7, 4
1366 -       ldx     [%i0+16], %o7
1367 -       srax    %g1, 56, %g3
1368 -       stb     %g3, [%o7]
1369 -       srax    %g1, 48, %l0
1370 -       ldx     [%i0+16], %o7
1371 -       srax    %g1, 40, %l1
1372 -       stb     %l0, [%o7+1]
1373 -       ldx     [%i0+16], %g3
1374 -       ba,pt   %xcc, .LL43
1375 -       stb     %l1, [%g3+2]
1376 -.LL95:
1377 -       bne,pt  %xcc, .LL97
1378 -       cmp     %o7, 5
1379 -       ldx     [%i0+16], %o7
1380 -       srax    %g1, 56, %g3
1381 -       stb     %g3, [%o7]
1382 -       srax    %g1, 48, %l0
1383 -       ldx     [%i0+16], %g3
1384 -       srax    %g1, 40, %l1
1385 -       stb     %l0, [%g3+1]
1386 -       srax    %g1, 32, %l2
1387 -       ldx     [%i0+16], %g3
1388 -       stb     %l1, [%g3+2]
1389 -       ldx     [%i0+16], %o7
1390 -       ba,pt   %xcc, .LL43
1391 -       stb     %l2, [%o7+3]
1392 -.LL97:
1393 -       bne,pt  %xcc, .LL99
1394 -       cmp     %o7, 6
1395 -       ldx     [%i0+16], %o7
1396 -       srax    %g1, 56, %g3
1397 -       stb     %g3, [%o7]
1398 -       srax    %g1, 48, %l0
1399 -       ldx     [%i0+16], %g3
1400 -       srax    %g1, 40, %l1
1401 -       stb     %l0, [%g3+1]
1402 -       srax    %g1, 32, %l2
1403 -       ldx     [%i0+16], %o7
1404 -       srax    %g1, 24, %l0
1405 -       stb     %l1, [%o7+2]
1406 -       ldx     [%i0+16], %g3
1407 -       stb     %l2, [%g3+3]
1408 -       ldx     [%i0+16], %o7
1409 -       ba,pt   %xcc, .LL43
1410 -       stb     %l0, [%o7+4]
1411 -.LL99:
1412 -       bne,pt  %xcc, .LL101
1413 -       cmp     %o7, 7
1414 -       ldx     [%i0+16], %o7
1415 -       srax    %g1, 56, %g3
1416 -       stb     %g3, [%o7]
1417 -       srax    %g1, 48, %l0
1418 -       ldx     [%i0+16], %g3
1419 -       srax    %g1, 40, %o7
1420 -       stb     %l0, [%g3+1]
1421 -       srax    %g1, 32, %l1
1422 -       ldx     [%i0+16], %g3
1423 -       srax    %g1, 24, %l0
1424 -       stb     %o7, [%g3+2]
1425 -       srax    %g1, 16, %l2
1426 -       ldx     [%i0+16], %g3
1427 -       stb     %l1, [%g3+3]
1428 -       ldx     [%i0+16], %o7
1429 -       stb     %l0, [%o7+4]
1430 -       ldx     [%i0+16], %g3
1431 -       ba,pt   %xcc, .LL43
1432 -       stb     %l2, [%g3+5]
1433 -.LL101:
1434 -       bne,pt  %xcc, .LL103
1435 -       add     %o7, -8, %g3
1436 -       ldx     [%i0+16], %o7
1437 -       srax    %g1, 56, %g3
1438 -       stb     %g3, [%o7]
1439 -       srax    %g1, 48, %l0
1440 -       ldx     [%i0+16], %g3
1441 -       srax    %g1, 40, %o7
1442 -       stb     %l0, [%g3+1]
1443 -       srax    %g1, 32, %l1
1444 -       ldx     [%i0+16], %g3
1445 -       srax    %g1, 24, %l0
1446 -       stb     %o7, [%g3+2]
1447 -       srax    %g1, 16, %l2
1448 -       ldx     [%i0+16], %o7
1449 -       srax    %g1, 8, %l3
1450 -       stb     %l1, [%o7+3]
1451 -       ldx     [%i0+16], %g3
1452 -       stb     %l0, [%g3+4]
1453 -       ldx     [%i0+16], %o7
1454 -       stb     %l2, [%o7+5]
1455 -       ldx     [%i0+16], %g3
1456 -       ba,pt   %xcc, .LL43
1457 -       stb     %l3, [%g3+6]
1458 -.LL103:
1459 -       cmp     %g3, 24
1460 -       bgu,pn  %xcc, .LL43
1461 -       srax    %g1, 56, %g3
1462 -       ldx     [%i0+16], %o7
1463 -       stb     %g3, [%o7]
1464 -       srax    %g1, 48, %l0
1465 -       ldx     [%i0+16], %g3
1466 -       srax    %g1, 40, %o7
1467 -       stb     %l0, [%g3+1]
1468 -       srax    %g1, 32, %l1
1469 -       ldx     [%i0+16], %g3
1470 -       srax    %g1, 24, %l0
1471 -       stb     %o7, [%g3+2]
1472 -       srax    %g1, 16, %l2
1473 -       ldx     [%i0+16], %o7
1474 -       srax    %g1, 8, %l3
1475 -       stb     %l1, [%o7+3]
1476 -       ldx     [%i0+16], %g3
1477 -       stb     %l0, [%g3+4]
1478 -       ldx     [%i0+16], %o7
1479 -       stb     %l2, [%o7+5]
1480 -       ldx     [%i0+16], %g3
1481 -       stb     %l3, [%g3+6]
1482 -       ldx     [%i0+16], %o7
1483 -       stb     %g1, [%o7+7]
1484 -       ldx     [%i0+32], %g3
1485 -       cmp     %g3, 8
1486 -       be,pn   %xcc, .LL43
1487 -       cmp     %g3, 9
1488 -       bne,pt  %xcc, .LL108
1489 -       cmp     %g3, 10
1490 -       ldx     [%i0+16], %o7
1491 -       srax    %o1, 56, %g3
1492 -       ba,pt   %xcc, .LL43
1493 -       stb     %g3, [%o7+8]
1494 -.LL108:
1495 -       bne,pt  %xcc, .LL110
1496 -       cmp     %g3, 11
1497 -       ldx     [%i0+16], %o7
1498 -       srax    %o1, 56, %g3
1499 -       stb     %g3, [%o7+8]
1500 -       srax    %o1, 48, %l0
1501 -       ldx     [%i0+16], %g3
1502 -       ba,pt   %xcc, .LL43
1503 -       stb     %l0, [%g3+9]
1504 -.LL110:
1505 -       bne,pt  %xcc, .LL112
1506 -       cmp     %g3, 12
1507 -       ldx     [%i0+16], %o7
1508 -       srax    %o1, 56, %g3
1509 -       stb     %g3, [%o7+8]
1510 -       srax    %o1, 48, %l0
1511 -       ldx     [%i0+16], %o7
1512 -       srax    %o1, 40, %l1
1513 -       stb     %l0, [%o7+9]
1514 -       ldx     [%i0+16], %g3
1515 -       ba,pt   %xcc, .LL43
1516 -       stb     %l1, [%g3+10]
1517 -.LL112:
1518 -       bne,pt  %xcc, .LL114
1519 -       cmp     %g3, 13
1520 -       ldx     [%i0+16], %o7
1521 -       srax    %o1, 56, %g3
1522 -       stb     %g3, [%o7+8]
1523 -       srax    %o1, 48, %l0
1524 -       ldx     [%i0+16], %g3
1525 -       srax    %o1, 40, %l1
1526 -       stb     %l0, [%g3+9]
1527 -       srax    %o1, 32, %l2
1528 -       ldx     [%i0+16], %g3
1529 -       stb     %l1, [%g3+10]
1530 -       ldx     [%i0+16], %o7
1531 -       ba,pt   %xcc, .LL43
1532 -       stb     %l2, [%o7+11]
1533 -.LL114:
1534 -       bne,pt  %xcc, .LL116
1535 -       cmp     %g3, 14
1536 -       ldx     [%i0+16], %o7
1537 -       srax    %o1, 56, %g3
1538 -       stb     %g3, [%o7+8]
1539 -       srax    %o1, 48, %l0
1540 -       ldx     [%i0+16], %g3
1541 -       srax    %o1, 40, %l1
1542 -       stb     %l0, [%g3+9]
1543 -       srax    %o1, 32, %l2
1544 -       ldx     [%i0+16], %o7
1545 -       srax    %o1, 24, %l0
1546 -       stb     %l1, [%o7+10]
1547 -       ldx     [%i0+16], %g3
1548 -       stb     %l2, [%g3+11]
1549 -       ldx     [%i0+16], %o7
1550 -       ba,pt   %xcc, .LL43
1551 -       stb     %l0, [%o7+12]
1552 -.LL116:
1553 -       bne,pt  %xcc, .LL118
1554 -       cmp     %g3, 15
1555 -       ldx     [%i0+16], %o7
1556 -       srax    %o1, 56, %g3
1557 -       stb     %g3, [%o7+8]
1558 -       srax    %o1, 48, %l0
1559 -       ldx     [%i0+16], %g3
1560 -       srax    %o1, 40, %o7
1561 -       stb     %l0, [%g3+9]
1562 -       srax    %o1, 32, %l1
1563 -       ldx     [%i0+16], %g3
1564 -       srax    %o1, 24, %l0
1565 -       stb     %o7, [%g3+10]
1566 -       srax    %o1, 16, %l2
1567 -       ldx     [%i0+16], %g3
1568 -       stb     %l1, [%g3+11]
1569 -       ldx     [%i0+16], %o7
1570 -       stb     %l0, [%o7+12]
1571 -       ldx     [%i0+16], %g3
1572 -       ba,pt   %xcc, .LL43
1573 -       stb     %l2, [%g3+13]
1574 -.LL118:
1575 -       bne,pt  %xcc, .LL120
1576 -       add     %g3, -16, %g3
1577 -       ldx     [%i0+16], %o7
1578 -       srax    %o1, 56, %g3
1579 -       stb     %g3, [%o7+8]
1580 -       srax    %o1, 48, %l0
1581 -       ldx     [%i0+16], %g3
1582 -       srax    %o1, 40, %o7
1583 -       stb     %l0, [%g3+9]
1584 -       srax    %o1, 32, %l1
1585 -       ldx     [%i0+16], %g3
1586 -       srax    %o1, 24, %l0
1587 -       stb     %o7, [%g3+10]
1588 -       srax    %o1, 16, %l2
1589 -       ldx     [%i0+16], %o7
1590 -       srax    %o1, 8, %l3
1591 -       stb     %l1, [%o7+11]
1592 -       ldx     [%i0+16], %g3
1593 -       stb     %l0, [%g3+12]
1594 -       ldx     [%i0+16], %o7
1595 -       stb     %l2, [%o7+13]
1596 -       ldx     [%i0+16], %g3
1597 -       ba,pt   %xcc, .LL43
1598 -       stb     %l3, [%g3+14]
1599 -.LL120:
1600 -       cmp     %g3, 16
1601 -       bgu,pn  %xcc, .LL43
1602 -       srax    %o1, 56, %g3
1603 -       ldx     [%i0+16], %o7
1604 -       stb     %g3, [%o7+8]
1605 -       srax    %o1, 48, %l0
1606 -       ldx     [%i0+16], %g3
1607 -       srax    %o1, 40, %o7
1608 -       stb     %l0, [%g3+9]
1609 -       srax    %o1, 32, %l1
1610 -       ldx     [%i0+16], %g3
1611 -       srax    %o1, 24, %l0
1612 -       stb     %o7, [%g3+10]
1613 -       srax    %o1, 16, %l2
1614 -       ldx     [%i0+16], %o7
1615 -       srax    %o1, 8, %l3
1616 -       stb     %l1, [%o7+11]
1617 -       ldx     [%i0+16], %g3
1618 -       stb     %l0, [%g3+12]
1619 -       ldx     [%i0+16], %o7
1620 -       stb     %l2, [%o7+13]
1621 -       ldx     [%i0+16], %g3
1622 -       stb     %l3, [%g3+14]
1623 -       ldx     [%i0+16], %o7
1624 -       stb     %o1, [%o7+15]
1625 -       ldx     [%i0+32], %g3
1626 -       cmp     %g3, 16
1627 -       be,pn   %xcc, .LL43
1628 -       cmp     %g3, 17
1629 -       bne,pt  %xcc, .LL125
1630 -       cmp     %g3, 18
1631 -       ldx     [%i0+16], %o7
1632 -       srax    %o2, 56, %g3
1633 -       ba,pt   %xcc, .LL43
1634 -       stb     %g3, [%o7+16]
1635 -.LL125:
1636 -       bne,pt  %xcc, .LL127
1637 -       cmp     %g3, 19
1638 -       ldx     [%i0+16], %o7
1639 -       srax    %o2, 56, %g3
1640 -       stb     %g3, [%o7+16]
1641 -       srax    %o2, 48, %l0
1642 -       ldx     [%i0+16], %g3
1643 -       ba,pt   %xcc, .LL43
1644 -       stb     %l0, [%g3+17]
1645 -.LL127:
1646 -       bne,pt  %xcc, .LL129
1647 -       cmp     %g3, 20
1648 -       ldx     [%i0+16], %o7
1649 -       srax    %o2, 56, %g3
1650 -       stb     %g3, [%o7+16]
1651 -       srax    %o2, 48, %l0
1652 -       ldx     [%i0+16], %o7
1653 -       srax    %o2, 40, %l1
1654 -       stb     %l0, [%o7+17]
1655 -       ldx     [%i0+16], %g3
1656 -       ba,pt   %xcc, .LL43
1657 -       stb     %l1, [%g3+18]
1658 -.LL129:
1659 -       bne,pt  %xcc, .LL131
1660 -       cmp     %g3, 21
1661 -       ldx     [%i0+16], %o7
1662 -       srax    %o2, 56, %g3
1663 -       stb     %g3, [%o7+16]
1664 -       srax    %o2, 48, %l0
1665 -       ldx     [%i0+16], %g3
1666 -       srax    %o2, 40, %l1
1667 -       stb     %l0, [%g3+17]
1668 -       srax    %o2, 32, %l2
1669 -       ldx     [%i0+16], %g3
1670 -       stb     %l1, [%g3+18]
1671 -       ldx     [%i0+16], %o7
1672 -       ba,pt   %xcc, .LL43
1673 -       stb     %l2, [%o7+19]
1674 -.LL131:
1675 -       bne,pt  %xcc, .LL133
1676 -       cmp     %g3, 22
1677 -       ldx     [%i0+16], %o7
1678 -       srax    %o2, 56, %g3
1679 -       stb     %g3, [%o7+16]
1680 -       srax    %o2, 48, %l0
1681 -       ldx     [%i0+16], %g3
1682 -       srax    %o2, 40, %l1
1683 -       stb     %l0, [%g3+17]
1684 -       srax    %o2, 32, %l2
1685 -       ldx     [%i0+16], %o7
1686 -       srax    %o2, 24, %l0
1687 -       stb     %l1, [%o7+18]
1688 -       ldx     [%i0+16], %g3
1689 -       stb     %l2, [%g3+19]
1690 -       ldx     [%i0+16], %o7
1691 -       ba,pt   %xcc, .LL43
1692 -       stb     %l0, [%o7+20]
1693 -.LL133:
1694 -       bne,pt  %xcc, .LL135
1695 -       cmp     %g3, 23
1696 -       ldx     [%i0+16], %o7
1697 -       srax    %o2, 56, %g3
1698 -       stb     %g3, [%o7+16]
1699 -       srax    %o2, 48, %l0
1700 -       ldx     [%i0+16], %g3
1701 -       srax    %o2, 40, %o7
1702 -       stb     %l0, [%g3+17]
1703 -       srax    %o2, 32, %l1
1704 -       ldx     [%i0+16], %g3
1705 -       srax    %o2, 24, %l0
1706 -       stb     %o7, [%g3+18]
1707 -       srax    %o2, 16, %l2
1708 -       ldx     [%i0+16], %g3
1709 -       stb     %l1, [%g3+19]
1710 -       ldx     [%i0+16], %o7
1711 -       stb     %l0, [%o7+20]
1712 -       ldx     [%i0+16], %g3
1713 -       ba,pt   %xcc, .LL43
1714 -       stb     %l2, [%g3+21]
1715 -.LL135:
1716 -       bne,pt  %xcc, .LL137
1717 -       add     %g3, -24, %g3
1718 -       ldx     [%i0+16], %o7
1719 -       srax    %o2, 56, %g3
1720 -       stb     %g3, [%o7+16]
1721 -       srax    %o2, 48, %l0
1722 -       ldx     [%i0+16], %g3
1723 -       srax    %o2, 40, %o7
1724 -       stb     %l0, [%g3+17]
1725 -       srax    %o2, 32, %l1
1726 -       ldx     [%i0+16], %g3
1727 -       srax    %o2, 24, %l0
1728 -       stb     %o7, [%g3+18]
1729 -       srax    %o2, 16, %l2
1730 -       ldx     [%i0+16], %o7
1731 -       srax    %o2, 8, %l3
1732 -       stb     %l1, [%o7+19]
1733 -       ldx     [%i0+16], %g3
1734 -       stb     %l0, [%g3+20]
1735 -       ldx     [%i0+16], %o7
1736 -       stb     %l2, [%o7+21]
1737 -       ldx     [%i0+16], %g3
1738 -       ba,pt   %xcc, .LL43
1739 -       stb     %l3, [%g3+22]
1740 -.LL137:
1741 -       cmp     %g3, 8
1742 -       bgu,pn  %xcc, .LL43
1743 -       srax    %o2, 56, %g3
1744 -       ldx     [%i0+16], %o7
1745 -       stb     %g3, [%o7+16]
1746 -       srax    %o2, 48, %l0
1747 -       ldx     [%i0+16], %g3
1748 -       srax    %o2, 40, %o7
1749 -       stb     %l0, [%g3+17]
1750 -       srax    %o2, 32, %l1
1751 -       ldx     [%i0+16], %g3
1752 -       srax    %o2, 24, %l0
1753 -       stb     %o7, [%g3+18]
1754 -       srax    %o2, 16, %l2
1755 -       ldx     [%i0+16], %o7
1756 -       srax    %o2, 8, %l3
1757 -       stb     %l1, [%o7+19]
1758 -       ldx     [%i0+16], %g3
1759 -       stb     %l0, [%g3+20]
1760 -       ldx     [%i0+16], %o7
1761 -       stb     %l2, [%o7+21]
1762 -       ldx     [%i0+16], %g3
1763 -       stb     %l3, [%g3+22]
1764 -       ldx     [%i0+16], %o7
1765 -       stb     %o2, [%o7+23]
1766 -       ldx     [%i0+32], %g3
1767 -       cmp     %g3, 24
1768 -       be,pn   %xcc, .LL43
1769 -       cmp     %g3, 25
1770 -       bne,pt  %xcc, .LL142
1771 -       cmp     %g3, 26
1772 -       ldx     [%i0+16], %o7
1773 -       srax    %o3, 56, %g3
1774 -       ba,pt   %xcc, .LL43
1775 -       stb     %g3, [%o7+24]
1776 -.LL142:
1777 -       bne,pt  %xcc, .LL144
1778 -       cmp     %g3, 27
1779 -       ldx     [%i0+16], %o7
1780 -       srax    %o3, 56, %g3
1781 -       stb     %g3, [%o7+24]
1782 -       srax    %o3, 48, %l0
1783 -       ldx     [%i0+16], %g3
1784 -       ba,pt   %xcc, .LL43
1785 -       stb     %l0, [%g3+25]
1786 -.LL144:
1787 -       bne,pt  %xcc, .LL146
1788 -       cmp     %g3, 28
1789 -       ldx     [%i0+16], %o7
1790 -       srax    %o3, 56, %g3
1791 -       stb     %g3, [%o7+24]
1792 -       srax    %o3, 48, %l0
1793 -       ldx     [%i0+16], %o7
1794 -       srax    %o3, 40, %l1
1795 -       stb     %l0, [%o7+25]
1796 -       ldx     [%i0+16], %g3
1797 -       ba,pt   %xcc, .LL43
1798 -       stb     %l1, [%g3+26]
1799 -.LL146:
1800 -       bne,pt  %xcc, .LL148
1801 -       cmp     %g3, 29
1802 -       ldx     [%i0+16], %o7
1803 -       srax    %o3, 56, %g3
1804 -       stb     %g3, [%o7+24]
1805 -       srax    %o3, 48, %l0
1806 -       ldx     [%i0+16], %g3
1807 -       srax    %o3, 40, %l1
1808 -       stb     %l0, [%g3+25]
1809 -       srax    %o3, 32, %l2
1810 -       ldx     [%i0+16], %g3
1811 -       stb     %l1, [%g3+26]
1812 -       ldx     [%i0+16], %o7
1813 -       ba,pt   %xcc, .LL43
1814 -       stb     %l2, [%o7+27]
1815 -.LL148:
1816 -       bne,pt  %xcc, .LL150
1817 -       cmp     %g3, 30
1818 -       ldx     [%i0+16], %o7
1819 -       srax    %o3, 56, %g3
1820 -       stb     %g3, [%o7+24]
1821 -       srax    %o3, 48, %l0
1822 -       ldx     [%i0+16], %g3
1823 -       srax    %o3, 40, %l1
1824 -       stb     %l0, [%g3+25]
1825 -       srax    %o3, 32, %l2
1826 -       ldx     [%i0+16], %o7
1827 -       srax    %o3, 24, %l0
1828 -       stb     %l1, [%o7+26]
1829 -       ldx     [%i0+16], %g3
1830 -       stb     %l2, [%g3+27]
1831 -       ldx     [%i0+16], %o7
1832 -       ba,pt   %xcc, .LL43
1833 -       stb     %l0, [%o7+28]
1834 -.LL150:
1835 -       bne,pt  %xcc, .LL152
1836 -       cmp     %g3, 31
1837 -       ldx     [%i0+16], %o7
1838 -       srax    %o3, 56, %g3
1839 -       stb     %g3, [%o7+24]
1840 -       srax    %o3, 48, %l0
1841 -       ldx     [%i0+16], %g3
1842 -       srax    %o3, 40, %o7
1843 -       stb     %l0, [%g3+25]
1844 -       srax    %o3, 32, %l1
1845 -       ldx     [%i0+16], %g3
1846 -       srax    %o3, 24, %l0
1847 -       stb     %o7, [%g3+26]
1848 -       srax    %o3, 16, %l2
1849 -       ldx     [%i0+16], %g3
1850 -       stb     %l1, [%g3+27]
1851 -       ldx     [%i0+16], %o7
1852 -       stb     %l0, [%o7+28]
1853 -       ldx     [%i0+16], %g3
1854 -       ba,pt   %xcc, .LL43
1855 -       stb     %l2, [%g3+29]
1856 -.LL152:
1857 -       bne,pt  %xcc, .LL154
1858 -       cmp     %g3, 32
1859 -       ldx     [%i0+16], %o7
1860 -       srax    %o3, 56, %g3
1861 -       stb     %g3, [%o7+24]
1862 -       srax    %o3, 48, %l0
1863 -       ldx     [%i0+16], %g3
1864 -       srax    %o3, 40, %o7
1865 -       stb     %l0, [%g3+25]
1866 -       srax    %o3, 32, %l1
1867 -       ldx     [%i0+16], %g3
1868 -       srax    %o3, 24, %l0
1869 -       stb     %o7, [%g3+26]
1870 -       srax    %o3, 16, %l2
1871 -       ldx     [%i0+16], %o7
1872 -       srax    %o3, 8, %l3
1873 -       stb     %l1, [%o7+27]
1874 -       ldx     [%i0+16], %g3
1875 -       stb     %l0, [%g3+28]
1876 -       ldx     [%i0+16], %o7
1877 -       stb     %l2, [%o7+29]
1878 -       ldx     [%i0+16], %g3
1879 -       ba,pt   %xcc, .LL43
1880 -       stb     %l3, [%g3+30]
1881 -.LL154:
1882 -       bne,pt  %xcc, .LL43
1883 -       srax    %o3, 56, %g3
1884 -       ldx     [%i0+16], %o7
1885 -       stb     %g3, [%o7+24]
1886 -       srax    %o3, 48, %l0
1887 -       ldx     [%i0+16], %g3
1888 -       srax    %o3, 40, %o7
1889 -       stb     %l0, [%g3+25]
1890 -       srax    %o3, 32, %l1
1891 -       ldx     [%i0+16], %g3
1892 -       srax    %o3, 24, %l0
1893 -       stb     %o7, [%g3+26]
1894 -       srax    %o3, 16, %l2
1895 -       ldx     [%i0+16], %o7
1896 -       srax    %o3, 8, %l3
1897 -       stb     %l1, [%o7+27]
1898 +       ldx     [%i0+16], %g2
1899 +       srax    %o1, 56, %g1
1900 +       srax    %o1, 48, %g3
1901 +       stb     %g1, [%g2+8]
1902 +       srax    %o1, 40, %g4
1903 +       ldx     [%i0+16], %g2
1904 +       srax    %o1, 32, %g5
1905 +       stb     %g3, [%g2+9]
1906 +       ldx     [%i0+16], %g1
1907 +       stb     %g4, [%g1+10]
1908 +       ldx     [%i0+16], %g2
1909 +       ba,pt   %xcc, .LL38
1910 +        stb    %g5, [%g2+11]
1911 +.LL193:
1912 +       ldx     [%i0+16], %g2
1913 +       srax    %o1, 56, %g1
1914 +       srax    %o1, 48, %g3
1915 +       stb     %g1, [%g2+8]
1916 +       srax    %o1, 40, %g4
1917 +       ldx     [%i0+16], %g1
1918 +       stb     %g3, [%g1+9]
1919 +       ldx     [%i0+16], %g2
1920 +       ba,pt   %xcc, .LL38
1921 +        stb    %g4, [%g2+10]
1922 +.LL192:
1923         ldx     [%i0+16], %g3
1924 -       stb     %l0, [%g3+28]
1925 -       ldx     [%i0+16], %o7
1926 -       stb     %l2, [%o7+29]
1927 +       srax    %o1, 56, %g2
1928 +       srax    %o1, 48, %g4
1929 +       stb     %g2, [%g3+8]
1930 +       ldx     [%i0+16], %g1
1931 +       ba,pt   %xcc, .LL38
1932 +        stb    %g4, [%g1+9]
1933 +.LL191:
1934 +       ldx     [%i0+16], %g2
1935 +       srax    %o1, 56, %g1
1936 +       ba,pt   %xcc, .LL38
1937 +        stb    %g1, [%g2+8]
1938 +.LL190:
1939 +       ldx     [%i0+16], %g2
1940 +       srax    %o0, 56, %g1
1941 +       srax    %o0, 48, %g3
1942 +       stb     %g1, [%g2]
1943 +       srax    %o0, 40, %g4
1944 +       ldx     [%i0+16], %g1
1945 +       srax    %o0, 32, %g5
1946 +       srax    %o0, 24, %o7
1947 +       stb     %g3, [%g1+1]
1948 +       srax    %o0, 16, %l0
1949 +       ldx     [%i0+16], %g2
1950 +       srax    %o0, 8, %g3
1951 +       stb     %g4, [%g2+2]
1952 +       ldx     [%i0+16], %g1
1953 +       stb     %g5, [%g1+3]
1954 +       ldx     [%i0+16], %g2
1955 +       stb     %o7, [%g2+4]
1956 +       ldx     [%i0+16], %g1
1957 +       stb     %l0, [%g1+5]
1958 +       ldx     [%i0+16], %g2
1959 +       ba,pt   %xcc, .LL38
1960 +        stb    %g3, [%g2+6]
1961 +.LL189:
1962 +       ldx     [%i0+16], %g2
1963 +       srax    %o0, 56, %g1
1964 +       srax    %o0, 48, %g3
1965 +       stb     %g1, [%g2]
1966 +       srax    %o0, 40, %g4
1967 +       ldx     [%i0+16], %g1
1968 +       srax    %o0, 32, %g5
1969 +       srax    %o0, 24, %o7
1970 +       stb     %g3, [%g1+1]
1971 +       srax    %o0, 16, %l0
1972 +       ldx     [%i0+16], %g1
1973 +       stb     %g4, [%g1+2]
1974 +       ldx     [%i0+16], %g2
1975 +       stb     %g5, [%g2+3]
1976 +       ldx     [%i0+16], %g1
1977 +       stb     %o7, [%g1+4]
1978 +       ldx     [%i0+16], %g2
1979 +       ba,pt   %xcc, .LL38
1980 +        stb    %l0, [%g2+5]
1981 +.LL188:
1982 +       ldx     [%i0+16], %g2
1983 +       srax    %o0, 56, %g1
1984 +       srax    %o0, 48, %g3
1985 +       stb     %g1, [%g2]
1986 +       srax    %o0, 40, %g4
1987 +       ldx     [%i0+16], %g2
1988 +       srax    %o0, 32, %g5
1989 +       srax    %o0, 24, %o7
1990 +       stb     %g3, [%g2+1]
1991 +       ldx     [%i0+16], %g1
1992 +       stb     %g4, [%g1+2]
1993 +       ldx     [%i0+16], %g2
1994 +       stb     %g5, [%g2+3]
1995 +       ldx     [%i0+16], %g1
1996 +       ba,pt   %xcc, .LL38
1997 +        stb    %o7, [%g1+4]
1998 +.LL187:
1999 +       ldx     [%i0+16], %g2
2000 +       srax    %o0, 56, %g1
2001 +       srax    %o0, 48, %g3
2002 +       stb     %g1, [%g2]
2003 +       srax    %o0, 40, %g4
2004 +       ldx     [%i0+16], %g2
2005 +       srax    %o0, 32, %g5
2006 +       stb     %g3, [%g2+1]
2007 +       ldx     [%i0+16], %g1
2008 +       stb     %g4, [%g1+2]
2009 +       ldx     [%i0+16], %g2
2010 +       ba,pt   %xcc, .LL38
2011 +        stb    %g5, [%g2+3]
2012 +.LL186:
2013 +       ldx     [%i0+16], %g2
2014 +       srax    %o0, 56, %g1
2015 +       srax    %o0, 48, %g3
2016 +       stb     %g1, [%g2]
2017 +       srax    %o0, 40, %g4
2018 +       ldx     [%i0+16], %g1
2019 +       stb     %g3, [%g1+1]
2020 +       ldx     [%i0+16], %g2
2021 +       ba,pt   %xcc, .LL38
2022 +        stb    %g4, [%g2+2]
2023 +.LL185:
2024         ldx     [%i0+16], %g3
2025 -       stb     %l3, [%g3+30]
2026 -       ldx     [%i0+16], %o7
2027 -       stb     %o3, [%o7+31]
2028 -.LL43:
2029 -       ret
2030 -       restore %g0, 0, %o0
2031 -.LLfe1:
2032 -       .size    __builtin_avcall,.LLfe1-__builtin_avcall
2033 -       .ident  "GCC: (GNU) 2.95.2 19991024 (release)"
2034 +       srax    %o0, 56, %g2
2035 +       srax    %o0, 48, %g4
2036 +       stb     %g2, [%g3]
2037 +       ldx     [%i0+16], %g1
2038 +       ba,pt   %xcc, .LL38
2039 +        stb    %g4, [%g1+1]
2040 +.LL184:
2041 +       ldx     [%i0+16], %g2
2042 +       srax    %o0, 56, %g1
2043 +       ba,pt   %xcc, .LL38
2044 +        stb    %g1, [%g2]
2045 +       .size   __builtin_avcall, .-__builtin_avcall
2046 +       .ident  "GCC: (GNU) 4.1.3 20070620 prerelease (NetBSD nb1 20070620)"
This page took 0.44235 seconds and 3 git commands to generate.