Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / fgu / fgu_ieee_traps_25.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: fgu_ieee_traps_25.s
5* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
6* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
7*
8* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9*
10* This program is free software; you can redistribute it and/or modify
11* it under the terms of the GNU General Public License as published by
12* the Free Software Foundation; version 2 of the License.
13*
14* This program is distributed in the hope that it will be useful,
15* but WITHOUT ANY WARRANTY; without even the implied warranty of
16* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17* GNU General Public License for more details.
18*
19* You should have received a copy of the GNU General Public License
20* along with this program; if not, write to the Free Software
21* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*
23* For the avoidance of doubt, and except that if any non-GPL license
24* choice is available it will apply instead, Sun elects to use only
25* the General Public License version 2 (GPLv2) at this time for any
26* software where a choice of GPL license versions is made
27* available with the language indicating that GPLv2 or any later version
28* may be used, or where a choice of which version of the GPL is applied is
29* otherwise unspecified.
30*
31* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
32* CA 95054 USA or visit www.sun.com if you need additional information or
33* have any questions.
34*
35*
36* ========== Copyright Header End ============================================
37*/
38.ident "FOCUSCASE: focus.pm,v 1.1 2003/04/23 17:53:39 somePerson Exp somePerson $ spc_basic_isa3.pl FOCUS_SEED=4479012"
39.ident "Mon Dec 8 19:57:35 CST 2003"
40.ident "Using Instruction Hash for Focus :$Id: fgu_ieee_traps_25.s,v 1.4 2007/07/27 21:45:31 drp Exp $"
41#include "defines.h"
42#include "nmacros.h"
43#include "old_boot.s"
44
45/************************************************************************
46 Test case code start
47 ************************************************************************/
48
49.text
50.global main
51
52main: /* test begin */
53
54 ! Get TID/DIAG DATA AREA. Separate memory for each thread.
55 ta T_RD_THID
56 mov %o1, %l6
57 umul %l6, 256, %l7
58 setx DIAG_DATA_AREA, %g1, %g3
59 add %l7, %g3, %l7
60
61 cmp %l6, 0x0
62 be main_t0
63 nop
64 cmp %l6, 0x1
65 be main_t1
66 nop
67 cmp %l6, 0x2
68 be main_t2
69 nop
70 cmp %l6, 0x3
71 be main_t3
72 nop
73 cmp %l6, 0x4
74 be main_t4
75 nop
76 cmp %l6, 0x5
77 be main_t5
78 nop
79 cmp %l6, 0x6
80 be main_t6
81 nop
82 cmp %l6, 0x7
83 be main_t7
84 nop
85 EXIT_GOOD
86!
87! Thread 0 Start
88!
89main_t0:
90 mov %l7, %g1
91 !# Set %cwp for 8 windows
92 !# This threads memory space into each %l7
93 wrpr %g0, 0x7, %cwp
94 mov %g1, %l7
95 wrpr %g0, 0x6, %cwp
96 mov %g1, %l7
97 wrpr %g0, 0x5, %cwp
98 mov %g1, %l7
99 wrpr %g0, 0x4, %cwp
100 mov %g1, %l7
101 wrpr %g0, 0x3, %cwp
102 mov %g1, %l7
103 wrpr %g0, 0x2, %cwp
104 mov %g1, %l7
105 wrpr %g0, 0x1, %cwp
106 mov %g1, %l7
107 wrpr %g0, 0x0, %cwp
108 mov %g1, %l7
109
110 !# Set %fsr
111 setx 0x0000000000000000, %l0, %l6 !# no post process
112 stx %l6, [%l7 + 0x0] !# no post process
113 ldx [%l7 + 0x0], %fsr !# no post process
114
115 !# Initialize registers ..
116
117 !# Global registers
118 set 0x4, %g1
119 set 0x7, %g2
120 set 0x8, %g3
121 set 0x4, %g4
122 set 0x9, %g5
123 set 0xC, %g6
124 set 0x0, %g7
125 !# Input registers
126 set -0xF, %i0
127 set -0x5, %i1
128 set -0x1, %i2
129 set -0x3, %i3
130 set -0x6, %i4
131 set -0x2, %i5
132 set -0x9, %i6
133 set -0x7, %i7
134 !# Local registers
135 set 0x01CD1987, %l0
136 set 0x601B4A70, %l1
137 set 0x3BC742E0, %l2
138 set 0x65E7B411, %l3
139 set 0x30F2204D, %l4
140 set 0x0BFCD28F, %l5
141 set 0x16E02B18, %l6
142 !# Output registers
143 set -0x0211, %o0
144 set 0x1EBD, %o1
145 set -0x04E8, %o2
146 set 0x10B1, %o3
147 set -0x111E, %o4
148 set -0x0190, %o5
149 set -0x1530, %o6
150 set 0x0864, %o7
151 !# Float registers
152 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
153 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
154 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
155 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
156 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
157 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
158 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
159 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
160 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
161 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
162 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
163 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
164 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
165 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
166 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
167 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
168
169 !# Execute Main Diag ..
170
171 add %o4, %o0, %g4
172 fandnot2s %f25, %f2, %f6
173 fcmpne32 %f2, %f16, %l0
174 fmovsuge %fcc1, %f31, %f23
175 wr %g0, 0xe2, %asi
176 stba %i2, [%l7 + 0x66] %asi
177 membar #Sync
178 fmovsuge %fcc3, %f17, %f24
179 orcc %i5, 0x1DD6, %l2
180 fexpand %f20, %f14
181 tgu %xcc, 0x3
182 mulx %o3, 0x0BE3, %g3
183 edge16l %l6, %i7, %i3
184 rdpr %tba, %i0
185 array8 %o1, %g1, %g7
186 call loop_1
187 fmovsvc %xcc, %f22, %f10
188 fmovsug %fcc0, %f28, %f20
189 call loop_2
190loop_1:
191 fabsd %f0, %f26
192 fpack32 %f2, %f16, %f14
193 srax %o2, 0x0E, %l4
194loop_2:
195 call loop_3
196 fand %f18, %f4, %f26
197 rd %y, %o6
198 call loop_4
199loop_3:
200 fmovsuge %fcc0, %f14, %f11
201 call loop_5
202 fmovrslez %o7, %f21, %f18
203loop_4:
204 tg %xcc, 0x4
205 fmovrslz %g6, %f8, %f7
206loop_5:
207 nop
208 setx 0x1417, %l0, %l3
209 sdivcc %l1, %l3, %g5
210 std %i4, [%l7 + 0x10]
211 call loop_6
212 movo %fcc2, %i6, %i1
213 call loop_7
214 fcmpeq16 %f16, %f26, %g2
215loop_6:
216 movo %fcc2, 0x156, %l5
217 movleu %icc, 0x01A, %o4
218loop_7:
219 rdpr %canrestore, %o0
220 std %f24, [%l7 + 0x50]
221 faligndata %f22, %f0, %f30
222 fmovdo %fcc2, %f26, %f4
223 call loop_8
224 fmovrdlz %o5, %f20, %f16
225 nop
226 setx 0x78FF985F9EC6D844, %l0, %l6
227 stx %l6, [%l7 + 0x28]
228 ldd [%l7 + 0x28], %f12
229 setx 0xF57DDDF76F789F93, %l1, %l5
230 stx %l5, [%l7 + 0x10]
231 ldd [%l7 + 0x10], %f4
232 fsubd %f4, %f12, %f26
233 rdpr %wstate, %l0
234loop_8:
235 fbn %fcc2, loop_9
236 array8 %g4, %i2, %l2
237 nop
238 set 0x38, %o7
239 stx %i5, [%l7 + %o7]
240 call loop_10
241loop_9:
242 orncc %o3, %g3, %i7
243 edge16n %l6, %i3, %o1
244 call loop_11
245loop_10:
246 fmovrde %g1, %f22, %f6
247 call loop_12
248 fmovdu %fcc2, %f8, %f0
249loop_11:
250 call loop_13
251 alignaddr %i0, %o2, %l4
252loop_12:
253 sllx %o6, 0x02, %o7
254 fmovdpos %icc, %f6, %f4
255loop_13:
256 fmovse %xcc, %f23, %f28
257 fmovsle %fcc3, %f24, %f20
258 ldsw [%l7 + 0x30], %g6
259 tcs %xcc, 0x0
260 call loop_14
261 fmovsvs %icc, %f2, %f25
262 membar 0x1E
263 saved
264 rdpr %cwp, %g1
265 rdpr %cansave, %g2
266 rdpr %canrestore, %g3
267 rdpr %cleanwin, %g4
268 rdpr %otherwin, %g5
269 rdpr %wstate, %g6
270loop_14:
271 nop
272 setx 0x9851F077, %l0, %l6
273 st %l6, [%l7 + 0x3C]
274 ld [%l7 + 0x3C], %fsr
275 popc 0x153D, %l1
276 wrpr %g7, %g5, %cwp
277 fbule,a %fcc1, loop_15
278 call loop_16
279 call loop_17
280 fmovdu %fcc3, %f4, %f24
281loop_15:
282 fmovsul %fcc0, %f15, %f13
283loop_16:
284 fmovrdgez %i4, %f18, %f4
285loop_17:
286 orcc %i6, %i1, %g2
287 wrpr %g0, 0x1, %gl
288 fmovsleu %xcc, %f6, %f13
289 wr %o0, %o5, %sys_tick
290 movge %xcc, %o4, %l0
291 call loop_18
292 fmovdl %fcc3, %f30, %f20
293 fsrc2 %f12, %f16
294 andcc %i2, 0x079D, %g4
295loop_18:
296 edge16 %l2, %i5, %o3
297 movul %fcc2, %i7, %g3
298 wr %i3, %l6, %softint
299 rdpr %tl, %g1
300 call loop_19
301 call loop_20
302 fmovsue %fcc2, %f7, %f16
303 fbo,pn %fcc3, loop_21
304loop_19:
305 nop
306 fitos %f1, %f21
307 fstox %f21, %f24
308loop_20:
309 nop
310 setx loop_22, %l0, %l1
311 wrpr 0x1, %tl
312 wrpr %l1, %tnpc
313 setx 0x011100001403, %l0, %l1
314 wrpr %l1, %tstate
315 wrhpr 0x4, %htstate
316 rdpr %tt, %l1
317 wrpr %g0, %l1, %tt
318 rdpr %pstate, %l1
319 wrpr %g0, %l1, %pstate
320 rdpr %tl, %l1
321 wrpr %g0, %l1, %tl
322 rdpr %tpc, %l1
323 wrpr %g0, %l1, %tpc
324 rdpr %tnpc, %l1
325 wrpr %g0, %l1, %tnpc
326 rdpr %tstate, %l1
327 wrpr %g0, %l1, %tstate
328 rdpr %tba, %l1
329 wrpr %g0, %l1, %tba
330 rdpr %tba, %l1
331 wrpr %g0, %l1, %tba
332 rdhpr %hpstate, %l1
333 wrhpr %g0, %l1, %hpstate
334 rdhpr %htstate, %l1
335 wrhpr %g0, %l1, %htstate
336 rdhpr %hintp, %l1
337 wrhpr %g0, %l1, %hintp
338 done
339 fmovsle %fcc2, %f5, %f11
340loop_21:
341 call loop_23
342 call loop_24
343loop_22:
344 call loop_25
345 movu %fcc2, 0x5B4, %i0
346loop_23:
347 call loop_26
348loop_24:
349 tl %icc, 0x4
350loop_25:
351 fmovsvs %xcc, %f30, %f10
352 movgu %icc, 0x6E9, %o1
353loop_26:
354 edge16l %l4, %o6, %o7
355 fmovdge %fcc2, %f0, %f2
356 wrpr %g0, 0x1, %gl
357 fcmpd %fcc1, %f16, %f12
358 udivcc %l1, 0x131D, %g5
359 fornot2s %f16, %f4, %f29
360 rdhpr %htba, %i4
361 movrne %i6, 0x03D, %g7
362 fmovdcs %icc, %f12, %f22
363 faligndata %f4, %f14, %f26
364 call loop_27
365 fmovdneg %icc, %f10, %f28
366 movneg %xcc, 0x4AD, %g2
367 fmovduge %fcc2, %f6, %f26
368loop_27:
369 nop
370 setx 0xE556DDEA, %l0, %l6
371 st %l6, [%l7 + 0x28]
372 ld [%l7 + 0x28], %f25
373 setx 0x08358A2C, %l1, %l5
374 st %l5, [%l7 + 0x10]
375 ld [%l7 + 0x10], %f24
376 fsubs %f24, %f25, %f12
377 fnors %f9, %f21, %f24
378 call loop_28
379 fmovspos %xcc, %f18, %f27
380 call loop_29
381 fsrc2s %f31, %f5
382loop_28:
383 fmovscc %xcc, %f20, %f13
384 call loop_30
385loop_29:
386 edge32l %i1, %l3, %l5
387 call loop_31
388 fbuge,a,pn %fcc3, loop_32
389loop_30:
390 nop
391 set 0x38, %o1
392 ldd [%l7 + %o1], %o4
393 fmul8ulx16 %f26, %f28, %f26
394loop_31:
395 tge %icc, 0x6
396loop_32:
397 call loop_33
398 fornot1s %f1, %f23, %f20
399 sub %o4, %o0, %l0
400 call loop_34
401loop_33:
402 bshuffle %f4, %f6, %f20
403 popc 0x0A44, %i2
404 wr %g0, 0x4, %fprs
405loop_34:
406 call loop_35
407 call loop_36
408 call loop_37
409 nop
410 setx loop_38, %l0, %l1
411 wrpr 0x1, %tl
412 wrpr %l1, %tnpc
413 setx 0x012400001403, %l0, %l1
414 wrpr %l1, %tstate
415 wrhpr 0x4, %htstate
416 rdpr %tt, %l1
417 wrpr %g0, %l1, %tt
418 rdpr %pstate, %l1
419 wrpr %g0, %l1, %pstate
420 rdpr %tl, %l1
421 wrpr %g0, %l1, %tl
422 rdpr %tpc, %l1
423 wrpr %g0, %l1, %tpc
424 rdpr %tnpc, %l1
425 wrpr %g0, %l1, %tnpc
426 rdpr %tstate, %l1
427 wrpr %g0, %l1, %tstate
428 rdpr %tba, %l1
429 wrpr %g0, %l1, %tba
430 rdpr %tba, %l1
431 wrpr %g0, %l1, %tba
432 rdhpr %hpstate, %l1
433 wrhpr %g0, %l1, %hpstate
434 rdhpr %htstate, %l1
435 wrhpr %g0, %l1, %htstate
436 rdhpr %hintp, %l1
437 wrhpr %g0, %l1, %hintp
438 done
439loop_35:
440 call loop_39
441loop_36:
442 call loop_40
443loop_37:
444 stx %o3, [%l7 + 0x70]
445loop_38:
446 wr %g0, 0x6, %fprs
447loop_39:
448 tsubcc %g3, 0x150C, %i7
449loop_40:
450 call loop_41
451 call loop_42
452 fbug,a %fcc2, loop_43
453 call loop_44
454loop_41:
455 movpos %xcc, %i3, %g1
456loop_42:
457 fmovdul %fcc2, %f28, %f18
458loop_43:
459 call loop_45
460loop_44:
461 move %icc, %l6, %i0
462 call loop_46
463 call loop_47
464loop_45:
465 flushw
466 rdpr %canrestore, %l4
467loop_46:
468 tne %icc, 0x1
469loop_47:
470 siam 0x4
471 bne,a,pn %xcc, loop_48
472 nop
473 setx 0x096F, %l0, %o1
474 sdiv %o6, %o1, %g6
475 fpsub32s %f5, %f23, %f13
476 fpsub32 %f14, %f18, %f6
477loop_48:
478 bmask %o2, %l1, %o7
479 wr %g0, 0x5, %fprs
480 tge %xcc, 0x1
481 fandnot2s %f1, %f0, %f27
482 subc %i4, 0x10B5, %i6
483 call loop_49
484 movue %fcc2, %g7, %i1
485 mulx %l3, 0x07AC, %g2
486 call loop_50
487loop_49:
488 fnot1s %f12, %f15
489 call loop_51
490 edge32l %o5, %l5, %o4
491loop_50:
492 nop
493 set 0x40, %g7
494 ldda [%l7 + %g7] 0x10, %f16
495loop_51:
496 nop
497 set 0x3C, %i3
498 ldsw [%l7 + %i3], %l0
499 brlz,pt %o0, loop_52
500 call loop_53
501 bmask %i2, %l2, %o3
502 fcmpne16 %f10, %f30, %g4
503loop_52:
504 nop
505 wr %g0, 0x19, %asi
506 ldda [%l7 + 0x60] %asi, %i4
507loop_53:
508 call loop_54
509 call loop_55
510 movrgz %i7, 0x090, %i3
511 movle %fcc0, 0x3A0, %g1
512loop_54:
513 fsrc1s %f14, %f6
514loop_55:
515 movpos %xcc, %g3, %l6
516
517 or %g0, 0x8, %l0
518 sllx %l0, 0x3c, %l0
519 wrhpr %l0, %g0, %hsys_tick_cmpr
520 nop
521 setx 0xEAC33E60, %l0, %l6
522 st %l6, [%l7 + 0x28]
523 ld [%l7 + 0x28], %f18
524 fsqrts %f18, %f4
525 call loop_56
526 fbul,pn %fcc0, loop_57
527 stx %fsr, [%l7 + 0x58]
528 call loop_58
529loop_56:
530 nop
531
532loop_57:
533 nop
534
535loop_58:
536 nop
537
538 EXIT_GOOD
539
540
541
542!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
543!
544! Stats for Thread 0:
545!
546! Type l : 12
547! Type a : 16
548! Type cti : 58
549! Type x : 3
550! Type f : 58
551! Type i : 53
552!
553!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
554
555!
556! Thread 1 Start
557!
558main_t1:
559 mov %l7, %g1
560 !# Set %cwp for 8 windows
561 !# This threads memory space into each %l7
562 wrpr %g0, 0x7, %cwp
563 mov %g1, %l7
564 wrpr %g0, 0x6, %cwp
565 mov %g1, %l7
566 wrpr %g0, 0x5, %cwp
567 mov %g1, %l7
568 wrpr %g0, 0x4, %cwp
569 mov %g1, %l7
570 wrpr %g0, 0x3, %cwp
571 mov %g1, %l7
572 wrpr %g0, 0x2, %cwp
573 mov %g1, %l7
574 wrpr %g0, 0x1, %cwp
575 mov %g1, %l7
576 wrpr %g0, 0x0, %cwp
577 mov %g1, %l7
578
579 !# Set %fsr
580 setx 0x0000000000000000, %l0, %l6 !# no post process
581 stx %l6, [%l7 + 0x0] !# no post process
582 ldx [%l7 + 0x0], %fsr !# no post process
583
584 !# Initialize registers ..
585
586 !# Global registers
587 set 0x8, %g1
588 set 0xE, %g2
589 set 0x0, %g3
590 set 0x1, %g4
591 set 0x2, %g5
592 set 0x8, %g6
593 set 0x0, %g7
594 !# Input registers
595 set -0x7, %i0
596 set -0xF, %i1
597 set -0x7, %i2
598 set -0x5, %i3
599 set -0x9, %i4
600 set -0xB, %i5
601 set -0x0, %i6
602 set -0x2, %i7
603 !# Local registers
604 set 0x179C6492, %l0
605 set 0x5532043A, %l1
606 set 0x5F233E42, %l2
607 set 0x7DFFB696, %l3
608 set 0x2BCD6C8F, %l4
609 set 0x2DB5DB01, %l5
610 set 0x1BFBC3F8, %l6
611 !# Output registers
612 set -0x0B59, %o0
613 set -0x13BF, %o1
614 set -0x0A96, %o2
615 set 0x0DD9, %o3
616 set 0x128A, %o4
617 set -0x05AC, %o5
618 set 0x0179, %o6
619 set 0x0BD2, %o7
620 !# Float registers
621 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
622 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
623 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
624 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
625 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
626 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
627 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
628 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
629 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
630 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
631 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
632 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
633 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
634 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
635 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
636 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
637
638 !# Execute Main Diag ..
639
640 call loop_59
641 edge16ln %o1, %g6, %o6
642 call loop_60
643 bmask %l1, %o2, %o7
644loop_59:
645 movgu %icc, %i4, %i6
646 call loop_61
647loop_60:
648 fpmerge %f31, %f25, %f6
649 fbule,a %fcc2, loop_62
650 call loop_63
651loop_61:
652 nop
653 set 0x30, %o2
654 ldub [%l7 + %o2], %g7
655 fnegs %f8, %f19
656loop_62:
657 rdpr %tba, %g5
658loop_63:
659 movule %fcc0, %i1, %g2
660 call loop_64
661 fcmpeq32 %f24, %f24, %o5
662 fmovrsgez %l3, %f28, %f26
663 call loop_65
664loop_64:
665 movre %o4, 0x377, %l0
666 call loop_66
667 call loop_67
668loop_65:
669 fcmpgt32 %f14, %f4, %o0
670 bg,a,pt %icc, loop_68
671loop_66:
672 movrgz %i2, %l5, %l2
673loop_67:
674 movcs %icc, %o3, %g4
675 subccc %i7, 0x1000, %i3
676loop_68:
677 srl %i5, %g1, %l6
678 call loop_69
679 call loop_70
680 fpadd32 %f30, %f10, %f0
681 fpsub32 %f0, %f24, %f16
682loop_69:
683 fbu,a,pn %fcc1, loop_71
684loop_70:
685 movlg %fcc1, %l4, %g3
686 call loop_72
687 array16 %i0, %g6, %o6
688loop_71:
689 addc %l1, %o1, %o7
690 fmovdug %fcc2, %f22, %f16
691loop_72:
692 nop
693 set 0x34, %l1
694 flush %l7 + %l1
695 fmovsvc %icc, %f3, %f8
696 nop
697 setx 0x74F94326, %l0, %l6
698 st %l6, [%l7 + 0x28]
699 ld [%l7 + 0x28], %f20
700 setx 0x6CB08A2D, %l1, %l5
701 st %l5, [%l7 + 0x10]
702 ld [%l7 + 0x10], %f13
703 fdivs %f13, %f20, %f8
704 fmovsvc %icc, %f21, %f7
705 rdpr %pil, %o2
706 subc %i4, %i6, %g7
707 call loop_73
708 call loop_74
709 movo %fcc2, %g5, %i1
710 movleu %icc, 0x318, %g2
711loop_73:
712 call loop_75
713loop_74:
714 fmovsle %fcc0, %f10, %f5
715 fmul8x16al %f31, %f15, %f8
716 nop
717 set 0x41, %g2
718 ldstub [%l7 + %g2], %l3
719loop_75:
720 call loop_76
721 move %fcc0, %o5, %o4
722 membar 0x6E
723 movvc %icc, %l0, %i2
724loop_76:
725 call loop_77
726 movrgez %o0, %l2, %l5
727 movg %icc, %g4, %o3
728 nop
729 setx 0x4577075E, %l0, %l6
730 st %l6, [%l7 + 0x28]
731 ld [%l7 + 0x28], %f4
732 setx 0xA630694B, %l1, %l5
733 st %l5, [%l7 + 0x10]
734 ld [%l7 + 0x10], %f19
735 fsubs %f19, %f4, %f31
736loop_77:
737 movu %fcc3, %i3, %i5
738 tg %icc, 0x5
739 fcmps %fcc2, %f17, %f10
740 edge16 %i7, %l6, %l4
741 rdpr %cleanwin, %g1
742 call loop_78
743 fmovsne %xcc, %f10, %f27
744 fpackfix %f26, %f26
745 movcc %icc, 0x344, %i0
746loop_78:
747 call loop_79
748 fpack16 %f12, %f15
749 fmovdue %fcc0, %f14, %f28
750 fmovsgu %icc, %f9, %f16
751loop_79:
752 fzero %f26
753 smulcc %g6, 0x0B0C, %g3
754 faligndata %f20, %f10, %f24
755 sethi 0x1220, %o6
756 rdpr %cansave, %o1
757 fmovsuge %fcc0, %f19, %f28
758 fcmpeq16 %f30, %f14, %o7
759 call loop_80
760 call loop_81
761 wrpr %o2, 0x1876, %cwp
762 fmovsg %fcc2, %f15, %f12
763loop_80:
764 nop
765 set 0x22, %g3
766 ldstuba [%l7 + %g3] 0x04, %i4
767loop_81:
768 call loop_82
769 fand %f18, %f2, %f16
770 fmovsuge %fcc3, %f14, %f8
771 call loop_83
772loop_82:
773 fabsd %f12, %f26
774 call loop_84
775 movne %fcc3, %l1, %g7
776loop_83:
777 flushw
778 fbge,a %fcc3, loop_85
779loop_84:
780 edge8l %i6, %i1, %g2
781 nop
782 setx 0xF093B6DA8FA4901B, %l0, %l6
783 stx %l6, [%l7 + 0x28]
784 ldd [%l7 + 0x28], %f30
785 setx 0x392890CAEAEF5C75, %l1, %l5
786 stx %l5, [%l7 + 0x10]
787 ldd [%l7 + 0x10], %f8
788 fmuld %f8, %f30, %f28
789 nop
790 set 0x6C, %i1
791 ldsw [%l7 + %i1], %g5
792loop_85:
793 nop
794 setx 0xAA57DA77, %l0, %l6
795 st %l6, [%l7 + 0x28]
796 ld [%l7 + 0x28], %f29
797 setx 0x8FA87AC3, %l1, %l5
798 st %l5, [%l7 + 0x10]
799 ld [%l7 + 0x10], %f16
800 fsubs %f16, %f29, %f11
801 fbule,a %fcc3, loop_86
802 fmovso %fcc1, %f2, %f14
803 bmask %o5, %o4, %l0
804 fmovrslz %i2, %f1, %f11
805loop_86:
806 nop
807 set 0x70, %l3
808 stda %o0, [%l7 + %l3] 0xe3
809 membar #Sync
810 call loop_87
811 nop
812 set 0x50, %g4
813 ldd [%l7 + %g4], %l2
814 call loop_88
815 fba,a,pn %fcc1, loop_89
816loop_87:
817 tn %icc, 0x1
818 call loop_90
819loop_88:
820 call loop_91
821loop_89:
822 udivx %l5, 0x0BE6, %l2
823 tvs %xcc, 0x0
824loop_90:
825 fandnot1 %f10, %f6, %f30
826loop_91:
827 edge32n %o3, %i3, %g4
828 fmovdue %fcc0, %f4, %f24
829 orcc %i5, 0x1B54, %i7
830 bgu,pn %xcc, loop_92
831 bcc,pn %xcc, loop_93
832 orncc %l4, %g1, %i0
833 call loop_94
834loop_92:
835 tvs %icc, 0x2
836loop_93:
837 call loop_95
838 call loop_96
839loop_94:
840 fmovdu %fcc3, %f8, %f0
841 addcc %l6, 0x0814, %g3
842loop_95:
843 movpos %icc, 0x445, %g6
844loop_96:
845 for %f18, %f12, %f20
846 edge16 %o6, %o1, %o7
847 subccc %i4, %l1, %o2
848 be,a %xcc, loop_97
849 tne %icc, 0x0
850 prefetch [%l7 + 0x7C], 4
851 call loop_98
852loop_97:
853 call loop_99
854 fmuld8ulx16 %f17, %f8, %f16
855 bpos,pn %xcc, loop_100
856loop_98:
857 fmuld8ulx16 %f25, %f18, %f4
858loop_99:
859 call loop_101
860 te %xcc, 0x4
861loop_100:
862 call loop_102
863 bg,a,pt %icc, loop_103
864loop_101:
865 call loop_104
866 call loop_105
867loop_102:
868 fmuld8sux16 %f9, %f15, %f12
869loop_103:
870 call loop_106
871loop_104:
872 fmovsle %xcc, %f24, %f3
873loop_105:
874 fmovda %icc, %f30, %f16
875 call loop_107
876loop_106:
877 fmovsg %xcc, %f9, %f18
878 andncc %i6, %g7, %i1
879 nop
880 setx 0x0C32, %l0, %o5
881 udivx %g2, %o5, %g5
882loop_107:
883 fands %f12, %f6, %f26
884 fmovd %f6, %f8
885 srl %l0, %o4, %i2
886 st %fsr, [%l7 + 0x24]
887 sth %o0, [%l7 + 0x3A]
888 call loop_108
889 call loop_109
890 call loop_110
891 fones %f31
892loop_108:
893 call loop_111
894loop_109:
895 call loop_112
896loop_110:
897 ta %icc, 0x1
898 or %l3, 0x1F28, %l2
899loop_111:
900 fands %f30, %f22, %f11
901loop_112:
902 wr %l5, 0x01B2, %ccr
903 nop
904 fitos %f9, %f15
905 rd %fprs, %o3
906 srlx %i3, 0x1C, %i5
907 call loop_113
908 bgu,a,pt %icc, loop_114
909 bpos %xcc, loop_115
910 nop
911 fitos %f0, %f11
912 fstoi %f11, %f13
913loop_113:
914 sir 0x19B8
915loop_114:
916 fmuld8sux16 %f6, %f18, %f8
917loop_115:
918 call loop_116
919 fors %f11, %f0, %f21
920 movre %i7, 0x03A, %l4
921 brgez %g1, loop_117
922loop_116:
923 flushw
924 movuge %fcc2, %i0, %g4
925 and %g3, %l6, %o6
926loop_117:
927 fcmpgt32 %f2, %f6, %o1
928 movrgez %g6, 0x092, %o7
929 bvs,pt %xcc, loop_118
930 call loop_119
931 brlz,a %i4, loop_120
932 call loop_121
933loop_118:
934 nop
935 setx 0xD130CF2C8EC9F7A0, %l0, %l6
936 stx %l6, [%l7 + 0x28]
937 ldd [%l7 + 0x28], %f14
938 setx 0x7945F512125B7C17, %l1, %l5
939 stx %l5, [%l7 + 0x10]
940 ldd [%l7 + 0x10], %f16
941 faddd %f16, %f14, %f24
942loop_119:
943 call loop_122
944loop_120:
945 call loop_123
946loop_121:
947 call loop_124
948 call loop_125
949loop_122:
950 smulcc %o2, 0x00F9, %i6
951loop_123:
952 call loop_126
953loop_124:
954 fpack16 %f28, %f3
955loop_125:
956 bmask %l1, %i1, %g2
957 sethi 0x054A, %g7
958loop_126:
959 wrpr %o5, 0x1087, %cwp
960 movrlez %l0, %o4, %i2
961 EXIT_GOOD
962
963
964
965!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
966!
967! Stats for Thread 1:
968!
969! Type l : 10
970! Type a : 8
971! Type x : 2
972! Type cti : 68
973! Type f : 53
974! Type i : 59
975!
976!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
977
978!
979! Thread 2 Start
980!
981main_t2:
982 mov %l7, %g1
983 !# Set %cwp for 8 windows
984 !# This threads memory space into each %l7
985 wrpr %g0, 0x7, %cwp
986 mov %g1, %l7
987 wrpr %g0, 0x6, %cwp
988 mov %g1, %l7
989 wrpr %g0, 0x5, %cwp
990 mov %g1, %l7
991 wrpr %g0, 0x4, %cwp
992 mov %g1, %l7
993 wrpr %g0, 0x3, %cwp
994 mov %g1, %l7
995 wrpr %g0, 0x2, %cwp
996 mov %g1, %l7
997 wrpr %g0, 0x1, %cwp
998 mov %g1, %l7
999 wrpr %g0, 0x0, %cwp
1000 mov %g1, %l7
1001
1002 !# Set %fsr
1003 setx 0x0000000000000000, %l0, %l6 !# no post process
1004 stx %l6, [%l7 + 0x0] !# no post process
1005 ldx [%l7 + 0x0], %fsr !# no post process
1006
1007 !# Initialize registers ..
1008
1009 !# Global registers
1010 set 0xA, %g1
1011 set 0x1, %g2
1012 set 0x1, %g3
1013 set 0x8, %g4
1014 set 0x8, %g5
1015 set 0x0, %g6
1016 set 0x7, %g7
1017 !# Input registers
1018 set -0xA, %i0
1019 set -0x2, %i1
1020 set -0xB, %i2
1021 set -0x3, %i3
1022 set -0x8, %i4
1023 set -0xD, %i5
1024 set -0x3, %i6
1025 set -0x1, %i7
1026 !# Local registers
1027 set 0x4796B61D, %l0
1028 set 0x30B828B0, %l1
1029 set 0x431A4878, %l2
1030 set 0x4A065B4E, %l3
1031 set 0x50E77C3C, %l4
1032 set 0x0A6D34AC, %l5
1033 set 0x76019E3F, %l6
1034 !# Output registers
1035 set 0x13F1, %o0
1036 set 0x1525, %o1
1037 set 0x1207, %o2
1038 set 0x08A3, %o3
1039 set -0x0541, %o4
1040 set 0x093B, %o5
1041 set -0x0A4E, %o6
1042 set -0x02CF, %o7
1043 !# Float registers
1044 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
1045 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
1046 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
1047 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
1048 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
1049 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
1050 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
1051 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
1052 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
1053 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
1054 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
1055 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
1056 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
1057 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
1058 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
1059 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
1060
1061 !# Execute Main Diag ..
1062
1063 fands %f30, %f22, %f7
1064 te %icc, 0x7
1065 call loop_127
1066 fmovslg %fcc1, %f30, %f24
1067 call loop_128
1068 call loop_129
1069loop_127:
1070 fmovrdne %o0, %f14, %f12
1071 or %g5, 0x1DE7, %l3
1072loop_128:
1073 tge %xcc, 0x4
1074loop_129:
1075 call loop_130
1076 call loop_131
1077 call loop_132
1078 fnot1s %f4, %f25
1079loop_130:
1080 call loop_133
1081loop_131:
1082 call loop_134
1083loop_132:
1084 fbul %fcc3, loop_135
1085 edge8l %l2, %l5, %o3
1086loop_133:
1087 fpsub16 %f12, %f14, %f14
1088loop_134:
1089 addccc %i3, 0x0A9A, %i7
1090loop_135:
1091 fmovdu %fcc0, %f2, %f4
1092 edge32l %l4, %i5, %g1
1093 nop
1094 set 0x50, %l2
1095 ldd [%l7 + %l2], %g4
1096 edge16ln %i0, %g3, %l6
1097 tvc %icc, 0x1
1098 wr %g0, 0x81, %asi
1099 stwa %o6, [%l7 + 0x2C] %asi
1100 rdhpr %hintp, %g6
1101 for %f30, %f0, %f30
1102 array32 %o7, %o1, %o2
1103 fxors %f18, %f6, %f9
1104 call loop_136
1105 fpackfix %f0, %f8
1106 call loop_137
1107 andncc %i4, 0x1EA9, %l1
1108loop_136:
1109 alignaddrl %i6, %i1, %g7
1110 call loop_138
1111loop_137:
1112 rdpr %cleanwin, %g2
1113 nop
1114 fitod %f6, %f0
1115 fdtos %f0, %f2
1116 fbule %fcc1, loop_139
1117loop_138:
1118 mulx %o5, %l0, %i2
1119 wr %o0, %g5, %pic
1120 edge32n %l3, %l2, %l5
1121loop_139:
1122 call loop_140
1123 fsrc1 %f6, %f12
1124 call loop_141
1125 tle %icc, 0x3
1126loop_140:
1127 edge8ln %o4, %o3, %i3
1128 tvs %xcc, 0x5
1129loop_141:
1130 call loop_142
1131 fbn,pt %fcc2, loop_143
1132 call loop_144
1133 addccc %i7, 0x0992, %i5
1134loop_142:
1135 call loop_145
1136loop_143:
1137 movrlz %l4, 0x319, %g1
1138loop_144:
1139 call loop_146
1140 nop
1141 setx loop_147, %l0, %l1
1142 jmpl %l1, %i0
1143loop_145:
1144 movug %fcc2, 0x444, %g3
1145 fbul,a,pn %fcc1, loop_148
1146loop_146:
1147 ldd [%l7 + 0x68], %g4
1148loop_147:
1149 tneg %icc, 0x7
1150 call loop_149
1151loop_148:
1152 call loop_150
1153 edge32ln %l6, %o6, %g6
1154 nop
1155 setx 0xC0CCD74A, %l0, %l6
1156 st %l6, [%l7 + 0x68]
1157 ld [%l7 + 0x68], %fsr
1158loop_149:
1159 call loop_151
1160loop_150:
1161 movrne %o7, 0x2B0, %o1
1162 fmovscc %icc, %f26, %f9
1163 movle %fcc3, 0x1DB, %i4
1164loop_151:
1165 call loop_152
1166 fmovdle %xcc, %f4, %f0
1167 call loop_153
1168 edge32 %o2, %l1, %i1
1169loop_152:
1170 nop
1171 setx 0xC0A5CCD16531F3D7, %l0, %l6
1172 stx %l6, [%l7 + 0x28]
1173 ldd [%l7 + 0x28], %f6
1174 setx 0xD98D3149EA7B504B, %l1, %l5
1175 stx %l5, [%l7 + 0x10]
1176 ldd [%l7 + 0x10], %f6
1177 fsubd %f6, %f6, %f4
1178 movn %icc, 0x2FE, %g7
1179loop_153:
1180 fmovd %f28, %f10
1181 fxor %f18, %f26, %f14
1182 alignaddrl %i6, %g2, %l0
1183 nop
1184 setx loop_154, %l0, %l1
1185 wrpr 0x1, %tl
1186 wrpr %l1, %tnpc
1187 setx 0x031400001400, %l0, %l1
1188 wrpr %l1, %tstate
1189 wrhpr 0x4, %htstate
1190 rdpr %tt, %l1
1191 wrpr %g0, %l1, %tt
1192 rdpr %pstate, %l1
1193 wrpr %g0, %l1, %pstate
1194 rdpr %tl, %l1
1195 wrpr %g0, %l1, %tl
1196 rdpr %tpc, %l1
1197 wrpr %g0, %l1, %tpc
1198 rdpr %tnpc, %l1
1199 wrpr %g0, %l1, %tnpc
1200 rdpr %tstate, %l1
1201 wrpr %g0, %l1, %tstate
1202 rdpr %tba, %l1
1203 wrpr %g0, %l1, %tba
1204 rdpr %tba, %l1
1205 wrpr %g0, %l1, %tba
1206 rdhpr %hpstate, %l1
1207 wrhpr %g0, %l1, %hpstate
1208 rdhpr %htstate, %l1
1209 wrhpr %g0, %l1, %htstate
1210 rdhpr %hintp, %l1
1211 wrhpr %g0, %l1, %hintp
1212 done
1213 nop
1214 fitos %f5, %f16
1215 fstoi %f16, %f23
1216 tgu %icc, 0x6
1217 movrgz %o5, %i2, %g5
1218loop_154:
1219 movle %fcc3, %o0, %l3
1220 call loop_155
1221 fmovsl %icc, %f28, %f9
1222 tge %xcc, 0x5
1223 call loop_156
1224loop_155:
1225 fmovrdne %l2, %f26, %f26
1226 fbug,a,pn %fcc2, loop_157
1227 andncc %o4, %o3, %l5
1228loop_156:
1229 fmovdvc %icc, %f6, %f18
1230 fmul8ulx16 %f6, %f14, %f8
1231loop_157:
1232 edge16ln %i7, %i5, %l4
1233 smulcc %g1, %i3, %g3
1234 call loop_158
1235 fmovdneg %xcc, %f20, %f18
1236 fnands %f15, %f20, %f18
1237 call loop_159
1238loop_158:
1239 rd %y, %g4
1240 andcc %l6, 0x02C9, %i0
1241 call loop_160
1242loop_159:
1243 pdist %f12, %f26, %f2
1244 fandnot1s %f1, %f7, %f15
1245 call loop_161
1246loop_160:
1247 fnor %f8, %f10, %f6
1248 fmovslg %fcc2, %f16, %f6
1249 call loop_162
1250loop_161:
1251 taddcc %o6, %o7, %o1
1252 fbl,pt %fcc3, loop_163
1253 nop
1254 fitos %f12, %f19
1255 fstoi %f19, %f19
1256loop_162:
1257 call loop_164
1258 or %g6, 0x1F12, %o2
1259loop_163:
1260 fmovdcc %xcc, %f8, %f30
1261 call loop_165
1262loop_164:
1263 call loop_166
1264 call loop_167
1265 fcmple32 %f28, %f8, %l1
1266loop_165:
1267 fmovrsgz %i1, %f11, %f2
1268loop_166:
1269 nop
1270 add %l7, 0x7C, %l6
1271 wr %g0, 0x11, %asi
1272 casa [%l6] 0x11, %g7, %i4
1273loop_167:
1274 call loop_168
1275 movrgez %g2, %i6, %o5
1276 call loop_169
1277 fbue,a,pn %fcc3, loop_170
1278loop_168:
1279 call loop_171
1280 alignaddrl %i2, %g5, %o0
1281loop_169:
1282 fmovrse %l3, %f8, %f30
1283loop_170:
1284 call loop_172
1285loop_171:
1286 fcmpeq16 %f28, %f22, %l0
1287 nop
1288 set 0x30, %o4
1289 stw %l2, [%l7 + %o4]
1290 call loop_173
1291loop_172:
1292 ta %icc, 0x5
1293 call loop_174
1294 tsubcctv %o4, 0x0834, %l5
1295loop_173:
1296 movne %fcc0, 0x483, %o3
1297 call loop_175
1298loop_174:
1299 bleu,a,pn %xcc, loop_176
1300 call loop_177
1301 fmul8sux16 %f6, %f16, %f10
1302loop_175:
1303 wrpr %i5, 0x06AD, %cwp
1304loop_176:
1305 call loop_178
1306loop_177:
1307 fmovdge %xcc, %f0, %f22
1308 fones %f17
1309 rdhpr %hsys_tick_cmpr, %l4
1310loop_178:
1311 fmovdg %fcc2, %f2, %f20
1312 call loop_179
1313 movcs %icc, %i7, %g1
1314 sll %i3, %g3, %l6
1315 call loop_180
1316loop_179:
1317 fmovsgu %xcc, %f21, %f23
1318 call loop_181
1319 wrpr %i0, %g4, %pil
1320loop_180:
1321 fcmpd %fcc1, %f24, %f4
1322 call loop_182
1323loop_181:
1324 movre %o7, %o6, %g6
1325 fmovdlg %fcc3, %f30, %f18
1326 call loop_183
1327loop_182:
1328 call loop_184
1329 fsrc1s %f21, %f2
1330 fmovscs %icc, %f11, %f2
1331loop_183:
1332 flushw
1333loop_184:
1334 fornot1s %f8, %f30, %f17
1335 tle %xcc, 0x4
1336 alignaddr %o1, %l1, %o2
1337 call loop_185
1338 fabss %f21, %f16
1339 subc %i1, 0x15D6, %g7
1340 nop
1341 fitos %f5, %f6
1342 fstod %f6, %f12
1343loop_185:
1344 brgez,a,pt %i4, loop_186
1345 nop
1346 setx 0x3B0D25140AB34FC2, %l0, %l6
1347 stx %l6, [%l7 + 0x30]
1348 ldx [%l7 + 0x30], %fsr
1349 call loop_187
1350 fbn %fcc0, loop_188
1351loop_186:
1352 call loop_189
1353 call loop_190
1354loop_187:
1355 fandnot1s %f12, %f7, %f10
1356loop_188:
1357 nop
1358 wr %g0, 0xda, %asi
1359 stda %f16, [%l7 + 0x40] %asi
1360loop_189:
1361 rdhpr %htba, %i6
1362loop_190:
1363 fmul8x16au %f20, %f12, %f12
1364 tvs %xcc, 0x5
1365 fxnor %f14, %f30, %f6
1366 fnors %f26, %f4, %f5
1367 nop
1368 set 0x14, %o3
1369 sth %g2, [%l7 + %o3]
1370 nop
1371 setx loop_191, %l0, %l1
1372 jmpl %l1, %i2
1373 bn,pt %xcc, loop_192
1374 ta %icc, 0x4
1375 call loop_193
1376loop_191:
1377 call loop_194
1378loop_192:
1379 sdivx %o5, 0x19E1, %g5
1380 be,pt %icc, loop_195
1381loop_193:
1382 tle %xcc, 0x5
1383loop_194:
1384 call loop_196
1385 fones %f2
1386loop_195:
1387 rdpr %gl, %o0
1388 call loop_197
1389loop_196:
1390 nop
1391 setx 0xBB30BFA6B186C813, %l0, %l6
1392 stx %l6, [%l7 + 0x28]
1393 ldd [%l7 + 0x28], %f30
1394 setx 0x0B025656D0BB85D7, %l1, %l5
1395 stx %l5, [%l7 + 0x10]
1396 ldd [%l7 + 0x10], %f22
1397 fsubd %f22, %f30, %f18
1398 fmovdn %xcc, %f14, %f14
1399 fmovso %fcc3, %f5, %f16
1400loop_197:
1401 movcc %icc, 0x1C4, %l3
1402 fmovsug %fcc2, %f15, %f17
1403 call loop_198
1404loop_198:
1405 nop
1406
1407 EXIT_GOOD
1408
1409
1410
1411!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1412!
1413! Stats for Thread 2:
1414!
1415! Type l : 9
1416! Type a : 9
1417! Type x : 3
1418! Type cti : 72
1419! Type f : 54
1420! Type i : 53
1421!
1422!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1423
1424!
1425! Thread 3 Start
1426!
1427main_t3:
1428 mov %l7, %g1
1429 !# Set %cwp for 8 windows
1430 !# This threads memory space into each %l7
1431 wrpr %g0, 0x7, %cwp
1432 mov %g1, %l7
1433 wrpr %g0, 0x6, %cwp
1434 mov %g1, %l7
1435 wrpr %g0, 0x5, %cwp
1436 mov %g1, %l7
1437 wrpr %g0, 0x4, %cwp
1438 mov %g1, %l7
1439 wrpr %g0, 0x3, %cwp
1440 mov %g1, %l7
1441 wrpr %g0, 0x2, %cwp
1442 mov %g1, %l7
1443 wrpr %g0, 0x1, %cwp
1444 mov %g1, %l7
1445 wrpr %g0, 0x0, %cwp
1446 mov %g1, %l7
1447
1448 !# Set %fsr
1449 setx 0x0000000000000000, %l0, %l6 !# no post process
1450 stx %l6, [%l7 + 0x0] !# no post process
1451 ldx [%l7 + 0x0], %fsr !# no post process
1452
1453 !# Initialize registers ..
1454
1455 !# Global registers
1456 set 0x5, %g1
1457 set 0xC, %g2
1458 set 0x9, %g3
1459 set 0x5, %g4
1460 set 0x2, %g5
1461 set 0x3, %g6
1462 set 0xC, %g7
1463 !# Input registers
1464 set -0x2, %i0
1465 set -0x7, %i1
1466 set -0xD, %i2
1467 set -0x6, %i3
1468 set -0x1, %i4
1469 set -0xD, %i5
1470 set -0x6, %i6
1471 set -0xB, %i7
1472 !# Local registers
1473 set 0x6FFC76FB, %l0
1474 set 0x0E403E6E, %l1
1475 set 0x6DDB609F, %l2
1476 set 0x5E221332, %l3
1477 set 0x40244085, %l4
1478 set 0x4AC87F92, %l5
1479 set 0x19B6E589, %l6
1480 !# Output registers
1481 set 0x0162, %o0
1482 set 0x1DBF, %o1
1483 set -0x17C4, %o2
1484 set 0x0F73, %o3
1485 set 0x083B, %o4
1486 set 0x14E5, %o5
1487 set 0x11E9, %o6
1488 set -0x1159, %o7
1489 !# Float registers
1490 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
1491 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
1492 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
1493 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
1494 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
1495 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
1496 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
1497 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
1498 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
1499 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
1500 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
1501 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
1502 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
1503 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
1504 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
1505 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
1506
1507 !# Execute Main Diag ..
1508
1509 sir 0x0563
1510 movle %icc, 0x4C8, %l0
1511 rd %tick_cmpr, %l2
1512 fbuge,a %fcc0, loop_199
1513 fxor %f28, %f6, %f20
1514 fxnor %f10, %f4, %f16
1515 call loop_200
1516loop_199:
1517 call loop_201
1518 movg %fcc0, 0x247, %l5
1519 fmovdgu %xcc, %f18, %f28
1520loop_200:
1521 fnors %f5, %f2, %f5
1522loop_201:
1523 restored
1524 rdpr %cwp, %g1
1525 rdpr %cansave, %g2
1526 rdpr %canrestore, %g3
1527 rdpr %cleanwin, %g4
1528 rdpr %otherwin, %g5
1529 rdpr %wstate, %g6
1530 rd %sys_tick_cmpr, %o4
1531 call loop_202
1532 rdpr %otherwin, %i5
1533 fcmpgt32 %f28, %f26, %o3
1534 fmovdcc %icc, %f16, %f6
1535loop_202:
1536 alignaddrl %l4, %g1, %i3
1537 edge8 %i7, %l6, %i0
1538 fxor %f8, %f22, %f22
1539 movvc %xcc, 0x340, %g3
1540 addcc %o7, %o6, %g6
1541 call loop_203
1542 call loop_204
1543 fpsub16 %f16, %f16, %f4
1544 tvs %icc, 0x2
1545loop_203:
1546 call loop_205
1547loop_204:
1548 addccc %o1, 0x113A, %g4
1549 call loop_206
1550 nop
1551 fitod %f12, %f16
1552 fdtoi %f16, %f9
1553loop_205:
1554 call loop_207
1555 brgz,pn %o2, loop_208
1556loop_206:
1557 tneg %icc, 0x7
1558 fmovde %icc, %f30, %f4
1559loop_207:
1560 call loop_209
1561loop_208:
1562 fnot1s %f9, %f27
1563 fmovdn %icc, %f26, %f28
1564
1565 or %g0, 0x8, %l0
1566 sllx %l0, 0x3c, %l0
1567 wrhpr %l0, %g0, %hsys_tick_cmpr
1568loop_209:
1569 call loop_210
1570 fmovdlg %fcc0, %f4, %f16
1571 array32 %g7, %l1, %i6
1572 fnot2s %f4, %f25
1573loop_210:
1574 fcmpeq16 %f20, %f14, %g2
1575 nop
1576 fitos %f6, %f29
1577 fstox %f29, %f22
1578 wr %g0, 0xf8, %asi
1579 stda %f16, [%l7 + 0x40] %asi
1580 membar #Sync
1581 movrgz %i2, %i4, %o5
1582 lduw [%l7 + 0x4C], %o0
1583 ldstub [%l7 + 0x31], %l3
1584 call loop_211
1585 fmovrsgz %l0, %f23, %f22
1586 movre %l2, 0x3C4, %l5
1587 call loop_212
1588loop_211:
1589 addccc %g5, 0x1CEB, %o4
1590 call loop_213
1591 fmovsn %fcc0, %f17, %f18
1592loop_212:
1593 call loop_214
1594 fmovrsgz %o3, %f10, %f1
1595loop_213:
1596 movrlez %l4, %i5, %g1
1597 brgz,pn %i3, loop_215
1598loop_214:
1599 ldsb [%l7 + 0x53], %i7
1600 call loop_216
1601 rdhpr %ver, %i0
1602loop_215:
1603 fmovdneg %icc, %f24, %f8
1604 call loop_217
1605loop_216:
1606 fbue %fcc1, loop_218
1607 faligndata %f28, %f14, %f30
1608 call loop_219
1609loop_217:
1610 sll %l6, 0x01, %o7
1611loop_218:
1612 xnor %o6, %g6, %g3
1613 fmovrslz %g4, %f6, %f4
1614loop_219:
1615 call loop_220
1616 rdhpr %ver, %o2
1617 edge16n %i1, %g7, %l1
1618 fmovsuge %fcc3, %f23, %f17
1619loop_220:
1620 call loop_221
1621 tle %xcc, 0x6
1622 rdhpr %htba, %i6
1623 call loop_222
1624loop_221:
1625 srlx %o1, %g2, %i4
1626 saved
1627 rdpr %cwp, %g1
1628 rdpr %cansave, %g2
1629 rdpr %canrestore, %g3
1630 rdpr %cleanwin, %g4
1631 rdpr %otherwin, %g5
1632 rdpr %wstate, %g6
1633 wr %g0, 0x18, %asi
1634 lduba [%l7 + 0x5E] %asi, %o5
1635loop_222:
1636 fmovsne %xcc, %f30, %f23
1637 wr %g0, 0x0c, %asi
1638 ldstuba [%l7 + 0x5D] %asi, %i2
1639 fbge,a %fcc1, loop_223
1640 call loop_224
1641 tvs %icc, 0x1
1642 set 0x30, %o0
1643 stda %o0, [%l7 + %o0] 0x27
1644 membar #Sync
1645loop_223:
1646 fmovdul %fcc0, %f28, %f12
1647loop_224:
1648 tl %xcc, 0x5
1649 bvc,a,pt %icc, loop_225
1650 fxnors %f15, %f1, %f27
1651 call loop_226
1652 fors %f26, %f21, %f18
1653loop_225:
1654 nop
1655 setx 0x1DCB, %l0, %l3
1656 sdiv %l0, %l3, %l5
1657 fsrc2 %f14, %f16
1658loop_226:
1659 call loop_227
1660 movrne %l2, 0x317, %g5
1661 fandnot1 %f6, %f28, %f20
1662 call loop_228
1663loop_227:
1664 flushw
1665 flushw
1666 call loop_229
1667loop_228:
1668 fcmpgt32 %f0, %f14, %o4
1669 edge32 %o3, %i5, %g1
1670 nop
1671 fitod %f10, %f6
1672 fdtos %f6, %f4
1673loop_229:
1674 addc %l4, 0x0511, %i7
1675 sdivcc %i0, 0x1E92, %i3
1676 array16 %l6, %o6, %o7
1677 movne %fcc2, %g6, %g4
1678 call loop_230
1679 bne %icc, loop_231
1680 mulx %o2, %g3, %g7
1681 call loop_232
1682loop_230:
1683 smul %i1, 0x0E44, %i6
1684loop_231:
1685 movue %fcc0, %l1, %o1
1686 array32 %g2, %i4, %o5
1687loop_232:
1688 sub %o0, %i2, %l0
1689 call loop_233
1690 fmovda %fcc2, %f24, %f22
1691 call loop_234
1692 call loop_235
1693loop_233:
1694 mova %icc, %l3, %l2
1695 addcc %l5, 0x1266, %o4
1696loop_234:
1697 mulx %g5, %i5, %g1
1698loop_235:
1699 array8 %o3, %l4, %i7
1700 sdiv %i3, 0x0993, %i0
1701 tneg %xcc, 0x1
1702 restored
1703 rdpr %cwp, %g1
1704 rdpr %cansave, %g2
1705 rdpr %canrestore, %g3
1706 rdpr %cleanwin, %g4
1707 rdpr %otherwin, %g5
1708 rdpr %wstate, %g6
1709 edge8ln %o6, %l6, %o7
1710 taddcc %g4, 0x02A2, %o2
1711 popc 0x0FA8, %g6
1712 fandnot2 %f0, %f10, %f14
1713 call loop_236
1714 call loop_237
1715 movcs %xcc, 0x56E, %g7
1716 call loop_238
1717loop_236:
1718 fmovs %f19, %f14
1719loop_237:
1720 nop
1721 fitod %f8, %f20
1722 fdtos %f20, %f0
1723 rdhpr %hintp, %i1
1724loop_238:
1725 nop
1726 fitod %f4, %f18
1727 fdtoi %f18, %f4
1728 rdpr %tba, %g3
1729 call loop_239
1730 nop
1731 fitos %f11, %f27
1732 fstod %f27, %f14
1733 rdhpr %htba, %i6
1734 fmuld8ulx16 %f11, %f13, %f16
1735loop_239:
1736 fcmpeq32 %f26, %f16, %o1
1737 fmovsle %icc, %f17, %f19
1738 call loop_240
1739 tvc %icc, 0x5
1740 fmul8ulx16 %f6, %f12, %f26
1741 call loop_241
1742loop_240:
1743 fmovrde %g2, %f20, %f30
1744 movl %icc, %l1, %i4
1745 brlez,a,pn %o0, loop_242
1746loop_241:
1747 call loop_243
1748 fmovsvc %icc, %f21, %f14
1749 subc %o5, 0x1A8F, %l0
1750loop_242:
1751 array32 %l3, %l2, %l5
1752loop_243:
1753 saved
1754 rdpr %cwp, %g1
1755 rdpr %cansave, %g2
1756 rdpr %canrestore, %g3
1757 rdpr %cleanwin, %g4
1758 rdpr %otherwin, %g5
1759 rdpr %wstate, %g6
1760 call loop_244
1761 call loop_245
1762 wrpr %o4, %i2, %tick
1763 fmul8sux16 %f6, %f24, %f4
1764loop_244:
1765 nop
1766 wr %g0, 0x2f, %asi
1767 stda %g4, [%l7 + 0x50] %asi
1768 membar #Sync
1769loop_245:
1770 tsubcctv %g1, %o3, %l4
1771 sir 0x1598
1772 call loop_246
1773 fmovsuge %fcc1, %f16, %f3
1774 call loop_247
1775 tcc %xcc, 0x1
1776loop_246:
1777 fbo,pn %fcc1, loop_248
1778 call loop_249
1779loop_247:
1780 stbar
1781 subc %i5, 0x1237, %i3
1782loop_248:
1783 fmovse %icc, %f2, %f6
1784loop_249:
1785 call loop_250
1786 popc 0x0582, %i0
1787 tgu %icc, 0x5
1788 nop
1789 setx 0x4E210AC6, %l0, %l6
1790 st %l6, [%l7 + 0x28]
1791 ld [%l7 + 0x28], %f10
1792 setx 0xC398EE89, %l1, %l5
1793 st %l5, [%l7 + 0x10]
1794 ld [%l7 + 0x10], %f25
1795 fmuls %f25, %f10, %f30
1796loop_250:
1797 movul %fcc1, 0x53F, %i7
1798 tneg %icc, 0x4
1799 fsrc2 %f14, %f16
1800 umul %l6, %o7, %g4
1801 alignaddr %o2, %g6, %g7
1802 fmovde %xcc, %f12, %f6
1803 bcc,a %icc, loop_251
1804 rdpr %otherwin, %o6
1805 nop
1806 setx 0x09B7, %l0, %i6
1807 udivcc %g3, %i6, %o1
1808 edge16l %g2, %l1, %i4
1809loop_251:
1810 nop
1811 set 0x40, %l4
1812 stda %f16, [%l7 + %l4] 0x17
1813 membar #Sync
1814 xorcc %o0, 0x18E5, %o5
1815 fmovdcc %icc, %f20, %f20
1816 call loop_252
1817 edge32l %l0, %l3, %l2
1818loop_252:
1819 nop
1820
1821 EXIT_GOOD
1822
1823
1824
1825!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1826!
1827! Stats for Thread 3:
1828!
1829! Type l : 10
1830! Type a : 12
1831! Type x : 6
1832! Type cti : 54
1833! Type f : 50
1834! Type i : 68
1835!
1836!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1837
1838!
1839! Thread 4 Start
1840!
1841main_t4:
1842 mov %l7, %g1
1843 !# Set %cwp for 8 windows
1844 !# This threads memory space into each %l7
1845 wrpr %g0, 0x7, %cwp
1846 mov %g1, %l7
1847 wrpr %g0, 0x6, %cwp
1848 mov %g1, %l7
1849 wrpr %g0, 0x5, %cwp
1850 mov %g1, %l7
1851 wrpr %g0, 0x4, %cwp
1852 mov %g1, %l7
1853 wrpr %g0, 0x3, %cwp
1854 mov %g1, %l7
1855 wrpr %g0, 0x2, %cwp
1856 mov %g1, %l7
1857 wrpr %g0, 0x1, %cwp
1858 mov %g1, %l7
1859 wrpr %g0, 0x0, %cwp
1860 mov %g1, %l7
1861
1862 !# Set %fsr
1863 setx 0x0000000000000000, %l0, %l6 !# no post process
1864 stx %l6, [%l7 + 0x0] !# no post process
1865 ldx [%l7 + 0x0], %fsr !# no post process
1866
1867 !# Initialize registers ..
1868
1869 !# Global registers
1870 set 0xB, %g1
1871 set 0x4, %g2
1872 set 0x5, %g3
1873 set 0xA, %g4
1874 set 0x2, %g5
1875 set 0xF, %g6
1876 set 0x9, %g7
1877 !# Input registers
1878 set -0xB, %i0
1879 set -0xA, %i1
1880 set -0x1, %i2
1881 set -0x1, %i3
1882 set -0x6, %i4
1883 set -0x9, %i5
1884 set -0xB, %i6
1885 set -0xF, %i7
1886 !# Local registers
1887 set 0x12DB30F3, %l0
1888 set 0x1147A0FE, %l1
1889 set 0x640BD1F6, %l2
1890 set 0x6C288FC7, %l3
1891 set 0x31A09249, %l4
1892 set 0x7E6F997C, %l5
1893 set 0x7E902FC2, %l6
1894 !# Output registers
1895 set 0x009C, %o0
1896 set -0x040D, %o1
1897 set -0x0B33, %o2
1898 set 0x14A0, %o3
1899 set 0x038D, %o4
1900 set 0x0D31, %o5
1901 set 0x1716, %o6
1902 set -0x1EA6, %o7
1903 !# Float registers
1904 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
1905 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
1906 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
1907 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
1908 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
1909 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
1910 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
1911 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
1912 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
1913 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
1914 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
1915 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
1916 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
1917 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
1918 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
1919 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
1920
1921 !# Execute Main Diag ..
1922
1923 call loop_253
1924 ta %xcc, 0x1
1925 add %l7, 0x18, %l6
1926 wr %g0, 0x80, %asi
1927 ldxa [%l6] %asi, %l5
1928 casxa [%l6] 0x80, %l5, %o4
1929loop_253:
1930 popc 0x00D1, %i1
1931 call loop_254
1932 faligndata %f18, %f24, %f26
1933 tcc %icc, 0x1
1934 fmuld8ulx16 %f18, %f5, %f22
1935loop_254:
1936 wr %g5, %g1, %clear_softint
1937 bcs %xcc, loop_255
1938 fmovspos %icc, %f27, %f27
1939 call loop_256
1940 fmuld8ulx16 %f11, %f25, %f2
1941loop_255:
1942 nop
1943 setx 0xAFC21C9C, %l0, %l6
1944 st %l6, [%l7 + 0x28]
1945 ld [%l7 + 0x28], %f16
1946 setx 0xEB8DF39C, %l1, %l5
1947 st %l5, [%l7 + 0x10]
1948 ld [%l7 + 0x10], %f15
1949 fadds %f15, %f16, %f0
1950 fabss %f26, %f6
1951loop_256:
1952 addcc %o3, 0x10F4, %l4
1953 addcc %i5, %i3, %i0
1954 move %fcc2, 0x1CE, %i7
1955 call loop_257
1956 call loop_258
1957 call loop_259
1958 bleu,pn %xcc, loop_260
1959loop_257:
1960 call loop_261
1961loop_258:
1962 udivx %l6, 0x0618, %i2
1963loop_259:
1964 tleu %icc, 0x6
1965loop_260:
1966 bg,pn %xcc, loop_262
1967loop_261:
1968 call loop_263
1969 fmovso %fcc3, %f10, %f7
1970 call loop_264
1971loop_262:
1972 fmovsue %fcc2, %f5, %f10
1973loop_263:
1974 movue %fcc2, %g4, %o7
1975 call loop_265
1976loop_264:
1977 rdhpr %hsys_tick_cmpr, %o2
1978 nop
1979 set 0x7A, %i4
1980 ldstub [%l7 + %i4], %g7
1981 call loop_266
1982loop_265:
1983 xorcc %o6, 0x03AA, %g6
1984 edge16n %i6, %o1, %g2
1985 fmovrdgez %g3, %f24, %f8
1986loop_266:
1987 tvs %xcc, 0x1
1988 fzeros %f12
1989 alignaddrl %l1, %o0, %o5
1990 fornot2s %f9, %f26, %f31
1991 tne %xcc, 0x3
1992 fpadd16 %f18, %f30, %f28
1993 andcc %l0, 0x07D9, %i4
1994 fmovrsgz %l2, %f8, %f28
1995 fmovsule %fcc1, %f23, %f1
1996 call loop_267
1997 call loop_268
1998 call loop_269
1999 edge8n %l5, %l3, %o4
2000loop_267:
2001 call loop_270
2002loop_268:
2003 sethi 0x1296, %i1
2004loop_269:
2005 call loop_271
2006 call loop_272
2007loop_270:
2008 call loop_273
2009 movug %fcc3, 0x451, %g1
2010loop_271:
2011 call loop_274
2012loop_272:
2013 fandnot2s %f11, %f16, %f25
2014loop_273:
2015 rd %pc, %g5
2016 movue %fcc0, 0x69E, %o3
2017loop_274:
2018 edge8 %l4, %i3, %i0
2019 fone %f28
2020 call loop_275
2021 call loop_276
2022 srlx %i5, %l6, %i2
2023 sll %i7, %g4, %o7
2024loop_275:
2025 nop
2026 setx 0xFDD4867A123877F1, %l0, %l6
2027 stx %l6, [%l7 + 0x28]
2028 ldd [%l7 + 0x28], %f30
2029 setx 0xF8E57FC3, %l1, %l5
2030 stx %l5, [%l7 + 0x10]
2031 ldd [%l7 + 0x10], %f0
2032 fsmuld %f0, %f30, %f26
2033loop_276:
2034 call loop_277
2035 movne %icc, %g7, %o2
2036 call loop_278
2037 alignaddrl %g6, %o6, %o1
2038loop_277:
2039 mova %fcc1, 0x215, %i6
2040 call loop_279
2041loop_278:
2042 movvs %xcc, %g2, %l1
2043 tpos %icc, 0x7
2044 nop
2045 fitos %f10, %f13
2046 fstox %f13, %f12
2047 fxtos %f12, %f28
2048loop_279:
2049 tcs %icc, 0x1
2050 fxnor %f20, %f18, %f24
2051 fxnor %f16, %f18, %f4
2052 fmovsuge %fcc2, %f28, %f1
2053 fmovdn %icc, %f26, %f16
2054 call loop_280
2055 call loop_281
2056 stw %o0, [%l7 + 0x18]
2057 call loop_282
2058loop_280:
2059 movuge %fcc0, 0x25C, %g3
2060loop_281:
2061 fmovsvc %icc, %f14, %f10
2062 call loop_283
2063loop_282:
2064 bpos,a %xcc, loop_284
2065 movleu %icc, %o5, %i4
2066 movug %fcc0, 0x6E4, %l2
2067loop_283:
2068 fbul,pn %fcc0, loop_285
2069loop_284:
2070 fpack32 %f18, %f18, %f28
2071 call loop_286
2072 sllx %l0, 0x01, %l5
2073loop_285:
2074 rd %tick_cmpr, %o4
2075 smul %l3, 0x1DEB, %i1
2076loop_286:
2077 wrpr %g5, %o3, %cwp
2078 std %f10, [%l7 + 0x28]
2079 fmovdo %fcc0, %f4, %f10
2080 call loop_287
2081 fmul8sux16 %f24, %f18, %f26
2082 call loop_288
2083 edge32l %g1, %l4, %i0
2084loop_287:
2085 tpos %icc, 0x4
2086 movl %icc, %i3, %i5
2087loop_288:
2088 sllx %l6, 0x18, %i2
2089 fnands %f26, %f17, %f25
2090 orn %i7, 0x06E8, %o7
2091 fnot2s %f21, %f8
2092 nop
2093 setx 0x4413DC41, %l0, %l6
2094 st %l6, [%l7 + 0x28]
2095 ld [%l7 + 0x28], %f19
2096 setx 0x37FF1E0C, %l1, %l5
2097 st %l5, [%l7 + 0x10]
2098 ld [%l7 + 0x10], %f23
2099 fmuls %f23, %f19, %f16
2100 call loop_289
2101 fnot2s %f30, %f23
2102 rd %y, %g4
2103 nop
2104 setx 0x12D0, %l0, %g6
2105 udivx %g7, %g6, %o6
2106loop_289:
2107 movrne %o1, %o2, %i6
2108 fmovso %fcc1, %f13, %f13
2109 fmovslg %fcc3, %f13, %f21
2110 fmovso %fcc0, %f27, %f6
2111 tsubcctv %l1, 0x1B73, %o0
2112 tcc %icc, 0x1
2113 wr %g2, 0x0EEA, %y
2114 set 0x1C, %l5
2115 lda [%l7 + %l5] 0x11, %f21
2116 movgu %icc, %g3, %i4
2117 fnors %f30, %f5, %f20
2118 edge32ln %l2, %o5, %l5
2119 call loop_290
2120 andn %l0, %o4, %i1
2121 nop
2122 fitod %f0, %f16
2123 call loop_291
2124loop_290:
2125 fmovrdlz %g5, %f30, %f18
2126 wr %o3, %l3, %ccr
2127 movvc %icc, 0x3AC, %g1
2128loop_291:
2129 fmovspos %icc, %f25, %f28
2130 fmovrslz %i0, %f11, %f20
2131 subc %i3, 0x179F, %l4
2132 wrpr %l6, 0x01C3, %pil
2133 call loop_292
2134 movue %fcc2, %i5, %i2
2135 fcmpne32 %f6, %f6, %o7
2136 andcc %i7, 0x0078, %g7
2137loop_292:
2138 fmovsneg %xcc, %f14, %f29
2139 fxnors %f15, %f15, %f4
2140 nop
2141 set 0x7B, %l6
2142 stb %g6, [%l7 + %l6]
2143 and %g4, %o6, %o2
2144 wrpr %i6, 0x1610, %tick
2145
2146 or %g0, 0x8, %l0
2147 sllx %l0, 0x3c, %l0
2148 wrhpr %l0, %g0, %hsys_tick_cmpr
2149 fmovsvs %xcc, %f27, %f4
2150 fsrc2 %f26, %f24
2151 call loop_293
2152 nop
2153 setx 0x14E41795, %l0, %l6
2154 st %l6, [%l7 + 0x28]
2155 ld [%l7 + 0x28], %f28
2156 fsqrts %f28, %f5
2157 fbue,a,pt %fcc3, loop_294
2158 restored
2159 rdpr %cwp, %g1
2160 rdpr %cansave, %g2
2161 rdpr %canrestore, %g3
2162 rdpr %cleanwin, %g4
2163 rdpr %otherwin, %g5
2164 rdpr %wstate, %g6
2165loop_293:
2166 call loop_295
2167 fcmple32 %f2, %f24, %g2
2168loop_294:
2169 fbge,a %fcc0, loop_296
2170 call loop_297
2171loop_295:
2172 popc %g3, %i4
2173 fpadd16 %f4, %f18, %f28
2174loop_296:
2175 movule %fcc1, %o0, %o5
2176loop_297:
2177 bmask %l2, %l5, %o4
2178 bgu %xcc, loop_298
2179 call loop_299
2180 wrpr %g0, 0x0, %gl
2181 rd %y, %o3
2182loop_298:
2183 udiv %l3, 0x057B, %g5
2184loop_299:
2185 xorcc %g1, 0x1303, %i0
2186 movn %icc, 0x124, %l4
2187 sllx %l6, 0x10, %i5
2188 fcmps %fcc1, %f2, %f17
2189 call loop_300
2190 movvc %xcc, 0x170, %i2
2191 movue %fcc1, %i3, %i7
2192 fmovsa %xcc, %f20, %f28
2193loop_300:
2194 call loop_301
2195 fpmerge %f0, %f2, %f0
2196 call loop_302
2197 fpack16 %f10, %f20
2198loop_301:
2199 rdpr %canrestore, %o7
2200 nop
2201 set 0x08, %g1
2202 ldx [%l7 + %g1], %g6
2203loop_302:
2204 call loop_303
2205 call loop_304
2206 tsubcc %g4, %g7, %o2
2207 movcc %xcc, 0x7C3, %o6
2208loop_303:
2209 fmovrdlez %o1, %f30, %f22
2210loop_304:
2211 smul %i6, %l1, %g2
2212 fmovsleu %icc, %f12, %f9
2213 call loop_305
2214 fcmple32 %f28, %f24, %i4
2215 call loop_306
2216 call loop_307
2217loop_305:
2218 movvc %xcc, 0x714, %o0
2219 movcc %icc, 0x65C, %g3
2220loop_306:
2221 brnz,a,pt %o5, loop_308
2222loop_307:
2223 rdpr %pil, %l5
2224 fpadd32s %f27, %f26, %f1
2225 fands %f7, %f4, %f7
2226loop_308:
2227 nop
2228
2229 EXIT_GOOD
2230
2231
2232
2233!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2234!
2235! Stats for Thread 4:
2236!
2237! Type l : 7
2238! Type a : 15
2239! Type x : 2
2240! Type cti : 56
2241! Type f : 55
2242! Type i : 65
2243!
2244!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2245
2246!
2247! Thread 5 Start
2248!
2249main_t5:
2250 mov %l7, %g1
2251 !# Set %cwp for 8 windows
2252 !# This threads memory space into each %l7
2253 wrpr %g0, 0x7, %cwp
2254 mov %g1, %l7
2255 wrpr %g0, 0x6, %cwp
2256 mov %g1, %l7
2257 wrpr %g0, 0x5, %cwp
2258 mov %g1, %l7
2259 wrpr %g0, 0x4, %cwp
2260 mov %g1, %l7
2261 wrpr %g0, 0x3, %cwp
2262 mov %g1, %l7
2263 wrpr %g0, 0x2, %cwp
2264 mov %g1, %l7
2265 wrpr %g0, 0x1, %cwp
2266 mov %g1, %l7
2267 wrpr %g0, 0x0, %cwp
2268 mov %g1, %l7
2269
2270 !# Set %fsr
2271 setx 0x0000000000000000, %l0, %l6 !# no post process
2272 stx %l6, [%l7 + 0x0] !# no post process
2273 ldx [%l7 + 0x0], %fsr !# no post process
2274
2275 !# Initialize registers ..
2276
2277 !# Global registers
2278 set 0x2, %g1
2279 set 0x1, %g2
2280 set 0xB, %g3
2281 set 0x7, %g4
2282 set 0x2, %g5
2283 set 0xD, %g6
2284 set 0x4, %g7
2285 !# Input registers
2286 set -0xC, %i0
2287 set -0xE, %i1
2288 set -0x1, %i2
2289 set -0xB, %i3
2290 set -0xB, %i4
2291 set -0xB, %i5
2292 set -0x7, %i6
2293 set -0xC, %i7
2294 !# Local registers
2295 set 0x5FFD87F0, %l0
2296 set 0x552A2D5B, %l1
2297 set 0x41C10300, %l2
2298 set 0x33CC95C3, %l3
2299 set 0x7FCF67A5, %l4
2300 set 0x5521CF16, %l5
2301 set 0x65F3F8E9, %l6
2302 !# Output registers
2303 set -0x062A, %o0
2304 set -0x182C, %o1
2305 set 0x063D, %o2
2306 set -0x1F92, %o3
2307 set -0x00CF, %o4
2308 set 0x1F36, %o5
2309 set -0x1485, %o6
2310 set 0x01EB, %o7
2311 !# Float registers
2312 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
2313 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
2314 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
2315 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
2316 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
2317 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
2318 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
2319 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
2320 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
2321 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
2322 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
2323 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
2324 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
2325 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
2326 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
2327 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
2328
2329 !# Execute Main Diag ..
2330
2331 brz,pn %l2, loop_309
2332 call loop_310
2333 call loop_311
2334 call loop_312
2335loop_309:
2336 array32 %o4, %i1, %o3
2337loop_310:
2338 fzero %f22
2339loop_311:
2340 fmovdug %fcc2, %f4, %f4
2341loop_312:
2342 call loop_313
2343 call loop_314
2344 fmovrslez %l3, %f1, %f23
2345 nop
2346 set 0x38, %i7
2347 prefetch [%l7 + %i7], 3
2348loop_313:
2349 call loop_315
2350loop_314:
2351 ble,a,pn %xcc, loop_316
2352 fcmpne16 %f26, %f26, %l0
2353 call loop_317
2354loop_315:
2355 fba %fcc2, loop_318
2356loop_316:
2357 te %icc, 0x7
2358 call loop_319
2359loop_317:
2360 edge8l %g5, %g1, %l4
2361loop_318:
2362 and %i0, %i5, %l6
2363 call loop_320
2364loop_319:
2365 call loop_321
2366 edge32l %i3, %i7, %o7
2367 call loop_322
2368loop_320:
2369 call loop_323
2370loop_321:
2371 addcc %g6, %i2, %g4
2372 brlz,a %g7, loop_324
2373loop_322:
2374 be,a %xcc, loop_325
2375loop_323:
2376 tne %xcc, 0x5
2377 tleu %xcc, 0x3
2378loop_324:
2379 pdist %f10, %f12, %f26
2380loop_325:
2381 tne %icc, 0x4
2382 nop
2383 set 0x48, %g5
2384 std %o6, [%l7 + %g5]
2385 fpadd16s %f20, %f28, %f8
2386 sllx %o1, 0x15, %i6
2387 fmovdcs %icc, %f16, %f8
2388 edge8ln %o2, %g2, %l1
2389 fmovsleu %icc, %f11, %f5
2390 fmovrsgz %o0, %f21, %f17
2391 array8 %g3, %i4, %l5
2392 rdpr %cleanwin, %l2
2393 call loop_326
2394 rd %asi, %o4
2395 call loop_327
2396 movl %fcc2, 0x512, %i1
2397loop_326:
2398 call loop_328
2399 tle %icc, 0x3
2400loop_327:
2401 fone %f30
2402 add %o5, %o3, %l3
2403loop_328:
2404 faligndata %f20, %f18, %f12
2405 fmovdgu %xcc, %f28, %f12
2406 membar 0x7F
2407 edge16l %l0, %g1, %g5
2408 rdhpr %hsys_tick_cmpr, %i0
2409 nop
2410 fitod %f4, %f6
2411 fdtox %f6, %f26
2412 call loop_329
2413 fmovs %f13, %f20
2414 rd %asi, %l4
2415 movvs %icc, %l6, %i3
2416loop_329:
2417 call loop_330
2418 call loop_331
2419 nop
2420 set 0x28, %l0
2421 stx %fsr, [%l7 + %l0]
2422 rdhpr %ver, %i5
2423loop_330:
2424 call loop_332
2425loop_331:
2426 faligndata %f12, %f6, %f18
2427 edge16ln %i7, %g6, %o7
2428 wrpr %i2, %g7, %pil
2429loop_332:
2430 smul %g4, %o6, %o1
2431 bge,pt %icc, loop_333
2432 fblg,a,pn %fcc0, loop_334
2433 fmovsl %xcc, %f25, %f19
2434 edge32 %i6, %g2, %l1
2435loop_333:
2436 movo %fcc0, 0x575, %o2
2437loop_334:
2438 call loop_335
2439 fmovsvc %xcc, %f25, %f6
2440 call loop_336
2441 fmovdcs %icc, %f20, %f24
2442loop_335:
2443 nop
2444 setx 0x1277A389AE897D6F, %l0, %l6
2445 stx %l6, [%l7 + 0x28]
2446 ldd [%l7 + 0x28], %f10
2447 setx 0x033BF9CE, %l1, %l5
2448 stx %l5, [%l7 + 0x10]
2449 ldd [%l7 + 0x10], %f10
2450 fsmuld %f10, %f10, %f20
2451 fmul8x16al %f1, %f11, %f4
2452loop_336:
2453 tleu %icc, 0x0
2454 saved
2455 rdpr %cwp, %g1
2456 rdpr %cansave, %g2
2457 rdpr %canrestore, %g3
2458 rdpr %cleanwin, %g4
2459 rdpr %otherwin, %g5
2460 rdpr %wstate, %g6
2461 fmovse %xcc, %f27, %f30
2462 movge %fcc3, 0x0EA, %g3
2463 call loop_337
2464 fmovrdne %i4, %f16, %f24
2465 fnors %f20, %f10, %f14
2466 fornot1 %f16, %f8, %f4
2467loop_337:
2468 fmovso %fcc1, %f20, %f17
2469 orncc %o0, 0x03A7, %l5
2470 bshuffle %f16, %f10, %f8
2471 edge32ln %o4, %i1, %l2
2472 add %o3, 0x010D, %l3
2473 fmovdn %fcc2, %f18, %f20
2474 nop
2475 set 0x20, %i0
2476 stx %o5, [%l7 + %i0]
2477 set 0x10, %g6
2478 sta %f1, [%l7 + %g6] 0x89
2479 fbne,pn %fcc1, loop_338
2480 call loop_339
2481 nop
2482 setx 0x14293CE9, %l0, %l6
2483 st %l6, [%l7 + 0x28]
2484 ld [%l7 + 0x28], %f22
2485 setx 0xF8E289A9, %l1, %l5
2486 st %l5, [%l7 + 0x10]
2487 ld [%l7 + 0x10], %f15
2488 fsubs %f15, %f22, %f14
2489 fpadd16s %f15, %f3, %f24
2490loop_338:
2491 fnors %f5, %f14, %f30
2492loop_339:
2493 nop
2494 fitos %f12, %f4
2495 fstoi %f4, %f20
2496 fmovrdlz %g1, %f0, %f28
2497 call loop_340
2498 xor %g5, 0x0F27, %l0
2499 call loop_341
2500 fcmpes %fcc2, %f21, %f27
2501loop_340:
2502 call loop_342
2503 call loop_343
2504loop_341:
2505 fmovdug %fcc3, %f22, %f6
2506 call loop_344
2507loop_342:
2508 fabss %f23, %f28
2509loop_343:
2510 call loop_345
2511 edge8ln %l4, %i0, %l6
2512loop_344:
2513 fmovsue %fcc3, %f31, %f3
2514 call loop_346
2515loop_345:
2516 fmovdcc %xcc, %f24, %f20
2517 call loop_347
2518 smulcc %i3, 0x09B6, %i5
2519loop_346:
2520 udiv %i7, 0x03BD, %o7
2521 nop
2522 setx 0x0E04, %l0, %g6
2523 sdiv %i2, %g6, %g7
2524loop_347:
2525 fxnor %f12, %f14, %f14
2526 fmuld8sux16 %f11, %f9, %f20
2527 orcc %o6, 0x194A, %g4
2528 fzeros %f10
2529 taddcctv %o1, %i6, %l1
2530 call loop_348
2531 nop
2532 setx 0x2DEC148A9B3EB95D, %l0, %l6
2533 stx %l6, [%l7 + 0x28]
2534 ldd [%l7 + 0x28], %f28
2535 setx 0x1F8E0046611B6D56, %l1, %l5
2536 stx %l5, [%l7 + 0x10]
2537 ldd [%l7 + 0x10], %f2
2538 fsubd %f2, %f28, %f6
2539 call loop_349
2540 edge8ln %o2, %g2, %g3
2541loop_348:
2542 call loop_350
2543 fnegd %f20, %f14
2544loop_349:
2545 call loop_351
2546 andn %i4, 0x1FCD, %o0
2547loop_350:
2548 smul %l5, %o4, %i1
2549 call loop_352
2550loop_351:
2551 fmovscs %icc, %f21, %f28
2552 fmovs %f11, %f26
2553 fones %f27
2554loop_352:
2555 nop
2556 wr %g0, 0x1e, %asi
2557 stda %f16, [%l7 + 0x40] %asi
2558 membar #Sync
2559 wr %g0, 0x19, %asi
2560 sta %f23, [%l7 + 0x54] %asi
2561 wr %g0, 0x10, %asi
2562 lduha [%l7 + 0x58] %asi, %o3
2563 call loop_353
2564 rdhpr %hsys_tick_cmpr, %l2
2565 call loop_354
2566 call loop_355
2567loop_353:
2568 fmovduge %fcc0, %f10, %f20
2569 fmovsgu %xcc, %f4, %f5
2570loop_354:
2571 fabsd %f26, %f8
2572loop_355:
2573 fsrc1s %f13, %f6
2574 edge8 %l3, %g1, %o5
2575 call loop_356
2576 movrgez %g5, 0x31D, %l4
2577 rdhpr %hintp, %i0
2578 fpack32 %f8, %f14, %f16
2579loop_356:
2580 tn %xcc, 0x7
2581 fmovdl %icc, %f18, %f30
2582 subccc %l6, 0x0728, %i3
2583 xnorcc %l0, %i7, %o7
2584 call loop_357
2585 fmovdge %fcc2, %f6, %f0
2586 tcc %xcc, 0x6
2587 fone %f18
2588loop_357:
2589 fmovsneg %icc, %f13, %f15
2590 tleu %icc, 0x1
2591 tleu %icc, 0x7
2592 rd %pc, %i5
2593 tleu %xcc, 0x6
2594 wr %g0, 0xea, %asi
2595 stxa %g6, [%l7 + 0x60] %asi
2596 membar #Sync
2597 tvc %xcc, 0x6
2598 call loop_358
2599 fmovscc %icc, %f1, %f12
2600 call loop_359
2601 stw %i2, [%l7 + 0x34]
2602loop_358:
2603 nop
2604 setx 0xE6980867, %l0, %l6
2605 st %l6, [%l7 + 0x28]
2606 ld [%l7 + 0x28], %f2
2607 setx 0x680ABF0B, %l1, %l5
2608 st %l5, [%l7 + 0x10]
2609 ld [%l7 + 0x10], %f6
2610 fsubs %f6, %f2, %f0
2611 wr %o6, %g4, %softint
2612loop_359:
2613 movrlez %g7, %o1, %i6
2614 wrpr %g0, 0x1, %gl
2615 andcc %o2, %g2, %g3
2616 fcmpgt16 %f30, %f2, %o0
2617 array32 %i4, %o4, %l5
2618 srl %o3, 0x05, %i1
2619 fcmpne32 %f14, %f6, %l3
2620 or %g1, %o5, %l2
2621 addcc %l4, 0x04AB, %g5
2622 addccc %l6, 0x16A0, %i0
2623 udiv %l0, 0x0D17, %i7
2624 fmovsle %fcc0, %f17, %f2
2625 bshuffle %f20, %f4, %f24
2626 call loop_360
2627 addccc %o7, %i5, %g6
2628 st %fsr, [%l7 + 0x2C]
2629 movrlz %i3, %o6, %i2
2630loop_360:
2631 nop
2632 setx loop_361, %l0, %l1
2633 wrpr 0x1, %tl
2634 wrpr %l1, %tnpc
2635 setx 0x021400001404, %l0, %l1
2636 wrpr %l1, %tstate
2637 wrhpr 0x4, %htstate
2638 rdpr %tt, %l1
2639 wrpr %g0, %l1, %tt
2640 rdpr %pstate, %l1
2641 wrpr %g0, %l1, %pstate
2642 rdpr %tl, %l1
2643 wrpr %g0, %l1, %tl
2644 rdpr %tpc, %l1
2645 wrpr %g0, %l1, %tpc
2646 rdpr %tnpc, %l1
2647 wrpr %g0, %l1, %tnpc
2648 rdpr %tstate, %l1
2649 wrpr %g0, %l1, %tstate
2650 rdpr %tba, %l1
2651 wrpr %g0, %l1, %tba
2652 rdpr %tba, %l1
2653 wrpr %g0, %l1, %tba
2654 rdhpr %hpstate, %l1
2655 wrhpr %g0, %l1, %hpstate
2656 rdhpr %htstate, %l1
2657 wrhpr %g0, %l1, %htstate
2658 rdhpr %hintp, %l1
2659 wrhpr %g0, %l1, %hintp
2660 done
2661 call loop_362
2662 wrpr %g7, 0x0DEF, %tick
2663loop_361:
2664 nop
2665
2666loop_362:
2667 nop
2668
2669 EXIT_GOOD
2670
2671
2672
2673!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2674!
2675! Stats for Thread 5:
2676!
2677! Type l : 11
2678! Type a : 12
2679! Type x : 5
2680! Type cti : 54
2681! Type f : 60
2682! Type i : 58
2683!
2684!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2685
2686!
2687! Thread 6 Start
2688!
2689main_t6:
2690 mov %l7, %g1
2691 !# Set %cwp for 8 windows
2692 !# This threads memory space into each %l7
2693 wrpr %g0, 0x7, %cwp
2694 mov %g1, %l7
2695 wrpr %g0, 0x6, %cwp
2696 mov %g1, %l7
2697 wrpr %g0, 0x5, %cwp
2698 mov %g1, %l7
2699 wrpr %g0, 0x4, %cwp
2700 mov %g1, %l7
2701 wrpr %g0, 0x3, %cwp
2702 mov %g1, %l7
2703 wrpr %g0, 0x2, %cwp
2704 mov %g1, %l7
2705 wrpr %g0, 0x1, %cwp
2706 mov %g1, %l7
2707 wrpr %g0, 0x0, %cwp
2708 mov %g1, %l7
2709
2710 !# Set %fsr
2711 setx 0x0000000000000000, %l0, %l6 !# no post process
2712 stx %l6, [%l7 + 0x0] !# no post process
2713 ldx [%l7 + 0x0], %fsr !# no post process
2714
2715 !# Initialize registers ..
2716
2717 !# Global registers
2718 set 0xF, %g1
2719 set 0xD, %g2
2720 set 0xB, %g3
2721 set 0x6, %g4
2722 set 0x9, %g5
2723 set 0x3, %g6
2724 set 0x2, %g7
2725 !# Input registers
2726 set -0x6, %i0
2727 set -0xE, %i1
2728 set -0xE, %i2
2729 set -0xD, %i3
2730 set -0xB, %i4
2731 set -0x9, %i5
2732 set -0x6, %i6
2733 set -0xB, %i7
2734 !# Local registers
2735 set 0x14CD7FDB, %l0
2736 set 0x6C53723E, %l1
2737 set 0x2C74AED4, %l2
2738 set 0x04717A83, %l3
2739 set 0x0C05D4D2, %l4
2740 set 0x4B74775B, %l5
2741 set 0x2FB53671, %l6
2742 !# Output registers
2743 set 0x06A9, %o0
2744 set 0x120A, %o1
2745 set -0x08E3, %o2
2746 set 0x06F0, %o3
2747 set 0x0A4C, %o4
2748 set -0x1157, %o5
2749 set 0x1BB0, %o6
2750 set 0x1D22, %o7
2751 !# Float registers
2752 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
2753 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
2754 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
2755 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
2756 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
2757 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
2758 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
2759 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
2760 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
2761 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
2762 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
2763 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
2764 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
2765 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
2766 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
2767 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
2768
2769 !# Execute Main Diag ..
2770
2771 sir 0x0967
2772 sethi 0x18C3, %o1
2773 wr %i6, %g4, %set_softint
2774 movrlz %o2, %l1, %g2
2775 call loop_363
2776 nop
2777 fitod %f2, %f8
2778 fdtos %f8, %f11
2779 brgz,pn %g3, loop_364
2780 call loop_365
2781loop_363:
2782 sllx %i4, 0x1D, %o4
2783 fbuge %fcc2, loop_366
2784loop_364:
2785 movvs %icc, 0x086, %l5
2786loop_365:
2787 fmovslg %fcc2, %f8, %f1
2788 call loop_367
2789loop_366:
2790 smulcc %o0, %i1, %l3
2791 rdhpr %hsys_tick_cmpr, %o3
2792 srlx %g1, 0x06, %l2
2793loop_367:
2794 restored
2795 rdpr %cwp, %g1
2796 rdpr %cansave, %g2
2797 rdpr %canrestore, %g3
2798 rdpr %cleanwin, %g4
2799 rdpr %otherwin, %g5
2800 rdpr %wstate, %g6
2801 fmovsuge %fcc3, %f19, %f9
2802 fmovdlg %fcc2, %f20, %f22
2803 fmovdneg %xcc, %f24, %f18
2804 fzero %f26
2805 addccc %o5, %g5, %l4
2806 saved
2807 rdpr %cwp, %g1
2808 rdpr %cansave, %g2
2809 rdpr %canrestore, %g3
2810 rdpr %cleanwin, %g4
2811 rdpr %otherwin, %g5
2812 rdpr %wstate, %g6
2813 fbe,a,pn %fcc1, loop_368
2814 movlg %fcc0, %i0, %l6
2815 fmuld8sux16 %f15, %f7, %f16
2816 fmovdg %xcc, %f16, %f14
2817loop_368:
2818 sth %l0, [%l7 + 0x20]
2819 fmovsa %fcc3, %f21, %f1
2820 fcmpeq16 %f14, %f28, %i7
2821 te %icc, 0x5
2822 tcs %xcc, 0x3
2823 edge32n %i5, %o7, %g6
2824 fcmpeq32 %f4, %f0, %i3
2825 fcmpgt16 %f24, %f10, %i2
2826 nop
2827 set 0x7C, %o5
2828 prefetch [%l7 + %o5], 4
2829 stw %o6, [%l7 + 0x74]
2830 movl %fcc3, 0x780, %g7
2831 fmovslg %fcc2, %f29, %f8
2832 fbule,pn %fcc0, loop_369
2833 call loop_370
2834 edge16 %o1, %i6, %o2
2835 fnand %f8, %f10, %f16
2836loop_369:
2837 bneg,pt %icc, loop_371
2838loop_370:
2839 call loop_372
2840 fcmple16 %f22, %f30, %l1
2841 stw %g4, [%l7 + 0x78]
2842loop_371:
2843 fbo,pn %fcc1, loop_373
2844loop_372:
2845 fexpand %f10, %f30
2846 call loop_374
2847 orcc %g2, 0x0832, %g3
2848loop_373:
2849 nop
2850 setx loop_375, %l0, %l1
2851 wrpr 0x1, %tl
2852 wrpr %l1, %tnpc
2853 setx 0x024400001402, %l0, %l1
2854 wrpr %l1, %tstate
2855 wrhpr 0x4, %htstate
2856 rdpr %tt, %l1
2857 wrpr %g0, %l1, %tt
2858 rdpr %pstate, %l1
2859 wrpr %g0, %l1, %pstate
2860 rdpr %tl, %l1
2861 wrpr %g0, %l1, %tl
2862 rdpr %tpc, %l1
2863 wrpr %g0, %l1, %tpc
2864 rdpr %tnpc, %l1
2865 wrpr %g0, %l1, %tnpc
2866 rdpr %tstate, %l1
2867 wrpr %g0, %l1, %tstate
2868 rdpr %tba, %l1
2869 wrpr %g0, %l1, %tba
2870 rdpr %tba, %l1
2871 wrpr %g0, %l1, %tba
2872 rdhpr %hpstate, %l1
2873 wrhpr %g0, %l1, %hpstate
2874 rdhpr %htstate, %l1
2875 wrhpr %g0, %l1, %htstate
2876 rdhpr %hintp, %l1
2877 wrhpr %g0, %l1, %hintp
2878 done
2879 be,a %xcc, loop_376
2880loop_374:
2881 mulscc %o4, 0x11C9, %i4
2882 call loop_377
2883loop_375:
2884 alignaddrl %o0, %l5, %i1
2885loop_376:
2886 call loop_378
2887 tvs %xcc, 0x4
2888loop_377:
2889 array8 %o3, %l3, %l2
2890 sllx %g1, %g5, %l4
2891loop_378:
2892 fmul8sux16 %f0, %f22, %f14
2893 fxor %f14, %f2, %f0
2894 fsrc2s %f7, %f25
2895 set 0x40, %o6
2896 stda %f16, [%l7 + %o6] 0xcb
2897 movcc %icc, %o5, %l6
2898 call loop_379
2899 fmovrdgz %l0, %f0, %f4
2900 rdhpr %htba, %i7
2901 call loop_380
2902loop_379:
2903 ta %icc, 0x6
2904 fsrc1 %f12, %f6
2905 nop
2906 setx 0x1379, %l0, %i0
2907 sdivcc %i5, %i0, %g6
2908loop_380:
2909 call loop_381
2910 fmovrdne %i3, %f24, %f10
2911 fmovsg %xcc, %f14, %f21
2912 call loop_382
2913loop_381:
2914 call loop_383
2915 rdhpr %hsys_tick_cmpr, %i2
2916 restored
2917 rdpr %cwp, %g1
2918 rdpr %cansave, %g2
2919 rdpr %canrestore, %g3
2920 rdpr %cleanwin, %g4
2921 rdpr %otherwin, %g5
2922 rdpr %wstate, %g6
2923loop_382:
2924 call loop_384
2925loop_383:
2926 fmovse %fcc3, %f11, %f30
2927 fcmple32 %f18, %f20, %o6
2928 call loop_385
2929loop_384:
2930 rdhpr %htba, %g7
2931 tl %xcc, 0x1
2932 call loop_386
2933loop_385:
2934 fcmped %fcc2, %f24, %f16
2935 fmovscc %xcc, %f6, %f28
2936 nop
2937 fitos %f7, %f19
2938 fstox %f19, %f28
2939loop_386:
2940 call loop_387
2941 fornot2s %f11, %f11, %f13
2942 siam 0x4
2943 fmuld8ulx16 %f20, %f29, %f10
2944loop_387:
2945 fandnot1s %f18, %f22, %f18
2946 nop
2947 fitos %f4, %f17
2948 fstox %f17, %f14
2949 fmovdcc %xcc, %f2, %f18
2950 fmovsuge %fcc1, %f4, %f20
2951 andcc %o7, %i6, %o1
2952 call loop_388
2953 call loop_389
2954 fmovdu %fcc2, %f10, %f8
2955 call loop_390
2956loop_388:
2957 rdhpr %hintp, %l1
2958loop_389:
2959 fpmerge %f19, %f8, %f16
2960 fbge,a %fcc2, loop_391
2961loop_390:
2962 fors %f11, %f20, %f29
2963 movcc %icc, 0x1EC, %o2
2964 edge8ln %g2, %g4, %g3
2965loop_391:
2966 call loop_392
2967 movleu %icc, %o4, %o0
2968 call loop_393
2969 fcmpes %fcc1, %f5, %f12
2970loop_392:
2971 nop
2972 wr %g0, 0x04, %asi
2973 swapa [%l7 + 0x50] %asi, %i4
2974loop_393:
2975 nop
2976 fitod %f20, %f4
2977 call loop_394
2978 orn %i1, %o3, %l3
2979 rdpr %gl, %l5
2980 fmovdug %fcc3, %f0, %f24
2981loop_394:
2982 fpadd16s %f26, %f12, %f19
2983 fmovsne %fcc2, %f8, %f5
2984 fbg %fcc2, loop_395
2985 call loop_396
2986 rdpr %canrestore, %l2
2987 nop
2988 setx loop_397, %l0, %l1
2989 jmpl %l1, %g1
2990loop_395:
2991 fcmpes %fcc3, %f5, %f6
2992loop_396:
2993 call loop_398
2994 udivx %g5, 0x0C1E, %l4
2995loop_397:
2996 fandnot1s %f0, %f1, %f30
2997 fors %f24, %f26, %f8
2998loop_398:
2999 move %icc, 0x31E, %l6
3000 movleu %xcc, 0x4D0, %l0
3001 fsrc2s %f8, %f5
3002 fnot1 %f28, %f14
3003 tpos %icc, 0x0
3004 fmovso %fcc0, %f13, %f21
3005 movvc %xcc, 0x42C, %i7
3006 movrgez %o5, 0x2E5, %i0
3007 call loop_399
3008 fmovrsgez %g6, %f13, %f16
3009 andn %i5, 0x129C, %i2
3010 call loop_400
3011loop_399:
3012 edge16l %o6, %i3, %g7
3013 umul %i6, 0x197A, %o1
3014 call loop_401
3015loop_400:
3016 edge32ln %o7, %l1, %g2
3017 sllx %o2, %g3, %g4
3018 fsrc2 %f12, %f16
3019loop_401:
3020 nop
3021
3022 or %g0, 0x8, %l0
3023 sllx %l0, 0x3c, %l0
3024 wrhpr %l0, %g0, %hsys_tick_cmpr
3025 call loop_402
3026 fcmple16 %f16, %f0, %i1
3027 rd %sys_tick_cmpr, %o3
3028 restored
3029 rdpr %cwp, %g1
3030 rdpr %cansave, %g2
3031 rdpr %canrestore, %g3
3032 rdpr %cleanwin, %g4
3033 rdpr %otherwin, %g5
3034 rdpr %wstate, %g6
3035loop_402:
3036 movge %icc, %l3, %i4
3037 fmovsneg %xcc, %f6, %f28
3038 call loop_403
3039 rdhpr %hsys_tick_cmpr, %l2
3040 nop
3041 setx 0x6433FFB7, %l0, %l6
3042 st %l6, [%l7 + 0x28]
3043 ld [%l7 + 0x28], %f5
3044 setx 0xC7B162A1, %l1, %l5
3045 st %l5, [%l7 + 0x10]
3046 ld [%l7 + 0x10], %f30
3047 fsubs %f30, %f5, %f20
3048 membar 0x4B
3049loop_403:
3050 tvc %icc, 0x1
3051 ldsh [%l7 + 0x3C], %g1
3052 call loop_404
3053 nop
3054 setx 0x9A570F39D34F366D, %l0, %l6
3055 stx %l6, [%l7 + 0x28]
3056 ldd [%l7 + 0x28], %f24
3057 setx 0xA9F206DC5A0B6202, %l1, %l5
3058 stx %l5, [%l7 + 0x10]
3059 ldd [%l7 + 0x10], %f28
3060 fsubd %f28, %f24, %f24
3061 fmovrdlez %l5, %f24, %f10
3062 wrpr %g5, %l4, %tick
3063loop_404:
3064 fbge %fcc0, loop_405
3065 fmovrslez %l6, %f27, %f8
3066 fbe,a %fcc0, loop_406
3067 fone %f12
3068loop_405:
3069 movl %icc, 0x120, %i7
3070 call loop_407
3071loop_406:
3072 call loop_408
3073 fblg,a,pt %fcc1, loop_409
3074 movrgz %o5, %i0, %l0
3075loop_407:
3076 edge8ln %g6, %i5, %i2
3077loop_408:
3078 call loop_410
3079loop_409:
3080 rdpr %pil, %o6
3081 call loop_411
3082 fmovsvs %icc, %f28, %f9
3083loop_410:
3084 sra %g7, 0x03, %i3
3085 edge16ln %i6, %o7, %o1
3086loop_411:
3087 tl %xcc, 0x5
3088 call loop_412
3089 wr %l1, %g2, %sys_tick
3090 tgu %xcc, 0x1
3091 fbul,pt %fcc2, loop_413
3092loop_412:
3093 call loop_414
3094 alignaddrl %g3, %o2, %g4
3095 movrgez %o0, %i1, %o3
3096loop_413:
3097 sll %l3, %i4, %l2
3098loop_414:
3099 call loop_415
3100 call loop_416
3101 rd %asi, %g1
3102 movue %fcc3, 0x19C, %o4
3103loop_415:
3104 fmovdug %fcc3, %f12, %f18
3105loop_416:
3106 movuge %fcc2, 0x7B6, %g5
3107 srl %l4, 0x1F, %l5
3108 fexpand %f12, %f0
3109 bvc,a %icc, loop_417
3110loop_417:
3111 nop
3112
3113 EXIT_GOOD
3114
3115
3116
3117!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3118!
3119! Stats for Thread 6:
3120!
3121! Type l : 7
3122! Type a : 15
3123! Type x : 2
3124! Type cti : 55
3125! Type f : 61
3126! Type i : 60
3127!
3128!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3129
3130!
3131! Thread 7 Start
3132!
3133main_t7:
3134 mov %l7, %g1
3135 !# Set %cwp for 8 windows
3136 !# This threads memory space into each %l7
3137 wrpr %g0, 0x7, %cwp
3138 mov %g1, %l7
3139 wrpr %g0, 0x6, %cwp
3140 mov %g1, %l7
3141 wrpr %g0, 0x5, %cwp
3142 mov %g1, %l7
3143 wrpr %g0, 0x4, %cwp
3144 mov %g1, %l7
3145 wrpr %g0, 0x3, %cwp
3146 mov %g1, %l7
3147 wrpr %g0, 0x2, %cwp
3148 mov %g1, %l7
3149 wrpr %g0, 0x1, %cwp
3150 mov %g1, %l7
3151 wrpr %g0, 0x0, %cwp
3152 mov %g1, %l7
3153
3154 !# Set %fsr
3155 setx 0x0000000000000000, %l0, %l6 !# no post process
3156 stx %l6, [%l7 + 0x0] !# no post process
3157 ldx [%l7 + 0x0], %fsr !# no post process
3158
3159 !# Initialize registers ..
3160
3161 !# Global registers
3162 set 0x8, %g1
3163 set 0xF, %g2
3164 set 0x0, %g3
3165 set 0xB, %g4
3166 set 0x2, %g5
3167 set 0xE, %g6
3168 set 0x9, %g7
3169 !# Input registers
3170 set -0xE, %i0
3171 set -0x5, %i1
3172 set -0x1, %i2
3173 set -0x7, %i3
3174 set -0x0, %i4
3175 set -0x2, %i5
3176 set -0x3, %i6
3177 set -0x9, %i7
3178 !# Local registers
3179 set 0x484E7509, %l0
3180 set 0x2B303B27, %l1
3181 set 0x671BAF98, %l2
3182 set 0x12F90FF6, %l3
3183 set 0x7AF957F2, %l4
3184 set 0x6D9E8146, %l5
3185 set 0x17641D30, %l6
3186 !# Output registers
3187 set -0x0527, %o0
3188 set -0x169D, %o1
3189 set 0x1924, %o2
3190 set -0x133D, %o3
3191 set -0x1AF1, %o4
3192 set -0x1A64, %o5
3193 set 0x058A, %o6
3194 set 0x0887, %o7
3195 !# Float registers
3196 INIT_TH_FP_REG(%l7,%f0,0x2935C9E687811231)
3197 INIT_TH_FP_REG(%l7,%f2,0x7F66F0C3CCA58A3E)
3198 INIT_TH_FP_REG(%l7,%f4,0x3AEC2E41FEB9AA02)
3199 INIT_TH_FP_REG(%l7,%f6,0xD137B4286AC51173)
3200 INIT_TH_FP_REG(%l7,%f8,0xDF2A93DC6F76B7AC)
3201 INIT_TH_FP_REG(%l7,%f10,0x738EF5DEB9BBCDE7)
3202 INIT_TH_FP_REG(%l7,%f12,0xA069D47C4AE8A83A)
3203 INIT_TH_FP_REG(%l7,%f14,0xDEAD52076D4DD849)
3204 INIT_TH_FP_REG(%l7,%f16,0x290589D71269A573)
3205 INIT_TH_FP_REG(%l7,%f18,0x8A4D73884272FB8D)
3206 INIT_TH_FP_REG(%l7,%f20,0x66FF312585370073)
3207 INIT_TH_FP_REG(%l7,%f22,0x679745628EAF82E8)
3208 INIT_TH_FP_REG(%l7,%f24,0xD1C5000CAB9080BF)
3209 INIT_TH_FP_REG(%l7,%f26,0x6758B9BD274DD177)
3210 INIT_TH_FP_REG(%l7,%f28,0x81A11D697B2F9466)
3211 INIT_TH_FP_REG(%l7,%f30,0xB5D320B9EF520111)
3212
3213 !# Execute Main Diag ..
3214
3215 call loop_418
3216 call loop_419
3217 movug %fcc3, %l6, %i7
3218 andcc %i0, %l0, %g6
3219loop_418:
3220 fbul,a,pt %fcc3, loop_420
3221loop_419:
3222 umul %i5, 0x01E2, %o5
3223 brgez,pt %o6, loop_421
3224 fmovrdlez %i2, %f8, %f8
3225loop_420:
3226 fmovsle %fcc1, %f26, %f11
3227 nop
3228 setx 0x87AFE217, %l0, %l6
3229 st %l6, [%l7 + 0x28]
3230 ld [%l7 + 0x28], %f28
3231 setx 0xAAFCC9A1, %l1, %l5
3232 st %l5, [%l7 + 0x10]
3233 ld [%l7 + 0x10], %f4
3234 fmuls %f4, %f28, %f27
3235loop_421:
3236 fpsub16s %f30, %f4, %f4
3237 nop
3238 setx 0x6FB385384BC770BE, %l0, %l6
3239 stx %l6, [%l7 + 0x28]
3240 ldd [%l7 + 0x28], %f10
3241 setx 0xB4DD21C36165C13D, %l1, %l5
3242 stx %l5, [%l7 + 0x10]
3243 ldd [%l7 + 0x10], %f28
3244 fmuld %f28, %f10, %f22
3245 brz,a %i3, loop_422
3246 fmovspos %icc, %f12, %f27
3247 call loop_423
3248 call loop_424
3249loop_422:
3250 fxnors %f0, %f2, %f31
3251 fmovsvs %xcc, %f28, %f8
3252loop_423:
3253 fpsub32s %f29, %f11, %f25
3254loop_424:
3255 fpack32 %f22, %f22, %f6
3256 edge16n %i6, %o7, %g7
3257 fxnors %f25, %f31, %f31
3258 call loop_425
3259 call loop_426
3260 brlz %o1, loop_427
3261 call loop_428
3262loop_425:
3263 fmul8x16au %f6, %f16, %f28
3264loop_426:
3265 movu %fcc0, %g2, %l1
3266loop_427:
3267 call loop_429
3268loop_428:
3269 fmovdle %icc, %f16, %f30
3270 wr %g0, 0xea, %asi
3271 stha %o2, [%l7 + 0x34] %asi
3272 membar #Sync
3273loop_429:
3274 rdhpr %htba, %g3
3275 rdpr %otherwin, %g4
3276 call loop_430
3277 lduw [%l7 + 0x64], %i1
3278 set 0x62, %i5
3279 stha %o3, [%l7 + %i5] 0xe3
3280 membar #Sync
3281loop_430:
3282 umul %l3, %i4, %l2
3283 call loop_431
3284 fbe,pt %fcc0, loop_432
3285 bneg,pn %xcc, loop_433
3286 tn %xcc, 0x1
3287loop_431:
3288 fmovdul %fcc3, %f12, %f22
3289loop_432:
3290 fsrc1 %f4, %f6
3291loop_433:
3292 fmovdn %xcc, %f26, %f4
3293 wr %g0, 0x89, %asi
3294 lduwa [%l7 + 0x48] %asi, %o0
3295 srlx %o4, %g1, %l4
3296 fmovrdgz %l5, %f6, %f12
3297 call loop_434
3298 fcmple32 %f2, %f8, %l6
3299 call loop_435
3300 call loop_436
3301loop_434:
3302 call loop_437
3303 nop
3304 setx 0x6FA7346E9C3C22D4, %l0, %l6
3305 stx %l6, [%l7 + 0x28]
3306 ldd [%l7 + 0x28], %f6
3307 fsqrtd %f6, %f28
3308loop_435:
3309 fandnot2 %f28, %f24, %f6
3310loop_436:
3311 move %fcc1, 0x25A, %i7
3312loop_437:
3313 movcs %xcc, %g5, %l0
3314 fzero %f6
3315 fpackfix %f12, %f26
3316 restored
3317 rdpr %cwp, %g1
3318 rdpr %cansave, %g2
3319 rdpr %canrestore, %g3
3320 rdpr %cleanwin, %g4
3321 rdpr %otherwin, %g5
3322 rdpr %wstate, %g6
3323 fxor %f24, %f26, %f26
3324 bneg %icc, loop_438
3325 orcc %g6, %i0, %o5
3326 movue %fcc3, 0x757, %o6
3327 call loop_439
3328loop_438:
3329 rd %softint, %i5
3330 edge8l %i3, %i2, %i6
3331 fzero %f2
3332loop_439:
3333 fnot1s %f21, %f9
3334 fbule,a %fcc3, loop_440
3335 fexpand %f23, %f0
3336 fmovdleu %xcc, %f10, %f16
3337 fmovde %fcc0, %f16, %f28
3338loop_440:
3339 call loop_441
3340 fmul8x16al %f1, %f4, %f14
3341 call loop_442
3342 nop
3343 setx 0xFA7BA1DC, %l0, %l6
3344 st %l6, [%l7 + 0x28]
3345 ld [%l7 + 0x28], %f5
3346 setx 0x8C65237F, %l1, %l5
3347 st %l5, [%l7 + 0x10]
3348 ld [%l7 + 0x10], %f23
3349 fsubs %f23, %f5, %f27
3350loop_441:
3351 call loop_443
3352 fmovrdlez %g7, %f20, %f6
3353loop_442:
3354 fcmpgt16 %f6, %f20, %o7
3355 wr %g0, 0x10, %asi
3356 stwa %o1, [%l7 + 0x78] %asi
3357loop_443:
3358 call loop_444
3359 for %f2, %f28, %f26
3360 fmovrsgz %g2, %f8, %f25
3361 fbn,a %fcc0, loop_445
3362loop_444:
3363 bcs,a %icc, loop_446
3364 call loop_447
3365 fcmpgt16 %f26, %f6, %l1
3366loop_445:
3367 movrlz %o2, 0x338, %g3
3368loop_446:
3369 tle %xcc, 0x5
3370loop_447:
3371 call loop_448
3372 fmovsug %fcc2, %f11, %f29
3373 edge32l %g4, %i1, %l3
3374 srlx %o3, %l2, %o0
3375loop_448:
3376 wrpr %o4, %i4, %pil
3377 fmovsuge %fcc3, %f6, %f19
3378 nop
3379 setx 0xED2D1D52, %l0, %l6
3380 st %l6, [%l7 + 0x3C]
3381 ld [%l7 + 0x3C], %fsr
3382 call loop_449
3383 addcc %g1, 0x0E0C, %l4
3384 call loop_450
3385 call loop_451
3386loop_449:
3387 bne %icc, loop_452
3388 fcmple16 %f4, %f14, %l5
3389loop_450:
3390 call loop_453
3391loop_451:
3392 edge16n %l6, %i7, %g5
3393loop_452:
3394 call loop_454
3395 brz %l0, loop_455
3396loop_453:
3397 tsubcctv %i0, 0x097A, %o5
3398 array32 %o6, %i5, %g6
3399loop_454:
3400 bgu,a %icc, loop_456
3401loop_455:
3402 call loop_457
3403 call loop_458
3404 nop
3405 setx 0xAAF71F264EE6DE05, %l0, %l6
3406 stx %l6, [%l7 + 0x28]
3407 ldd [%l7 + 0x28], %f10
3408 setx 0x26CDE8AEF682FB2F, %l1, %l5
3409 stx %l5, [%l7 + 0x10]
3410 ldd [%l7 + 0x10], %f22
3411 faddd %f22, %f10, %f22
3412loop_456:
3413 fnot1 %f10, %f18
3414loop_457:
3415 movn %fcc3, %i3, %i6
3416loop_458:
3417 udiv %i2, 0x0979, %o7
3418 fpack16 %f8, %f28
3419 nop
3420 setx 0x4FF54B5E, %l0, %l6
3421 st %l6, [%l7 + 0x28]
3422 ld [%l7 + 0x28], %f11
3423 setx 0x34810E81, %l1, %l5
3424 st %l5, [%l7 + 0x10]
3425 ld [%l7 + 0x10], %f31
3426 fadds %f31, %f11, %f27
3427 call loop_459
3428 call loop_460
3429 mova %xcc, 0x6BA, %g7
3430 nop
3431 setx 0x1251C336C139ED31, %l0, %l6
3432 stx %l6, [%l7 + 0x68]
3433 ldx [%l7 + 0x68], %fsr
3434loop_459:
3435 te %icc, 0x7
3436loop_460:
3437 rd %ccr, %o1
3438 movue %fcc1, %g2, %o2
3439 nop
3440 fitod %f2, %f0
3441 fdtos %f0, %f9
3442 array16 %l1, %g3, %g4
3443 fmovrse %l3, %f9, %f2
3444 sllx %i1, %l2, %o0
3445 movu %fcc1, %o4, %o3
3446 call loop_461
3447 fornot1 %f24, %f22, %f22
3448 call loop_462
3449 sub %i4, %l4, %l5
3450loop_461:
3451 fmovrsgez %g1, %f12, %f24
3452 fbue,a,pn %fcc2, loop_463
3453loop_462:
3454 fpsub16s %f22, %f7, %f13
3455 fbue,pn %fcc1, loop_464
3456 tl %icc, 0x3
3457loop_463:
3458 call loop_465
3459 alignaddrl %l6, %g5, %l0
3460loop_464:
3461 stx %i7, [%l7 + 0x10]
3462 movrlz %i0, %o6, %o5
3463loop_465:
3464 nop
3465 wr %g0, 0x80, %asi
3466 prefetcha [%l7 + 0x40] %asi, 4
3467 call loop_466
3468 srax %i5, 0x1E, %i6
3469 call loop_467
3470 tcc %icc, 0x5
3471loop_466:
3472 array16 %i2, %o7, %g7
3473 fbug,a,pn %fcc1, loop_468
3474loop_467:
3475 call loop_469
3476 fmovrdgez %o1, %f12, %f22
3477 fandnot1 %f12, %f6, %f30
3478loop_468:
3479 call loop_470
3480loop_469:
3481 fbule %fcc2, loop_471
3482 call loop_472
3483 for %f26, %f16, %f12
3484loop_470:
3485 call loop_473
3486loop_471:
3487 call loop_474
3488loop_472:
3489 fmovrdgz %g2, %f0, %f20
3490 call loop_475
3491loop_473:
3492 nop
3493 setx 0xCC15E451DB1E99EA, %l0, %l6
3494 stx %l6, [%l7 + 0x28]
3495 ldd [%l7 + 0x28], %f0
3496 setx 0xCF4C6998A578F48C, %l1, %l5
3497 stx %l5, [%l7 + 0x10]
3498 ldd [%l7 + 0x10], %f18
3499 faddd %f18, %f0, %f2
3500loop_474:
3501 fmovsgu %xcc, %f13, %f7
3502 call loop_476
3503loop_475:
3504 fmovdcs %icc, %f26, %f18
3505 fbne,a,pn %fcc2, loop_477
3506 fmovrdgez %i3, %f6, %f16
3507loop_476:
3508 fbo,a,pt %fcc1, loop_478
3509 mova %xcc, 0x32D, %o2
3510loop_477:
3511 call loop_479
3512 wr %l1, %g3, %clear_softint
3513loop_478:
3514 call loop_480
3515 tsubcc %l3, %i1, %l2
3516loop_479:
3517 fornot1s %f19, %f21, %f4
3518 wr %g0, 0x88, %asi
3519 lduwa [%l7 + 0x14] %asi, %g4
3520loop_480:
3521 call loop_481
3522 andn %o4, %o0, %o3
3523 alignaddrl %i4, %l4, %l5
3524 call loop_482
3525loop_481:
3526 fmovdn %fcc3, %f4, %f24
3527 fmovrdgz %l6, %f22, %f24
3528 wrpr %g1, %g5, %pil
3529loop_482:
3530 umul %i7, %l0, %i0
3531 call loop_483
3532 nop
3533 setx 0x9141C2AF9F353E49, %l0, %l6
3534 stx %l6, [%l7 + 0x28]
3535 ldd [%l7 + 0x28], %f10
3536 setx 0xC61F63A8C483AA78, %l1, %l5
3537 stx %l5, [%l7 + 0x10]
3538 ldd [%l7 + 0x10], %f26
3539 faddd %f26, %f10, %f4
3540 call loop_484
3541 movrgez %o5, 0x0B6, %g6
3542loop_483:
3543 orncc %o6, %i5, %i2
3544 call loop_485
3545loop_484:
3546 call loop_486
3547 call loop_487
3548 fabsd %f2, %f16
3549loop_485:
3550 fmovsne %fcc0, %f15, %f22
3551loop_486:
3552 fcmpeq32 %f20, %f14, %i6
3553loop_487:
3554 fmovdcs %icc, %f22, %f18
3555 EXIT_GOOD
3556
3557
3558
3559!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3560!
3561! Stats for Thread 7:
3562!
3563! Type l : 10
3564! Type a : 7
3565! Type x : 6
3566! Type cti : 70
3567! Type f : 63
3568! Type i : 44
3569!
3570!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3571
3572
3573 EXIT_GOOD /* test finish */
3574
3575/************************************************************************
3576 Test case data start
3577 ************************************************************************/
3578.data
3579user_data_start:
3580scratch_area:
3581.word 0x9762BAAC
3582.word 0xE3FC61E1
3583.word 0x7DB4501A
3584.word 0x4CFB82E0
3585.word 0x0DEA4141
3586.word 0x1DA0E06A
3587.word 0x01B5360F
3588.word 0xE0447220
3589.word 0xE4D6ACD2
3590.word 0x8E6213A0
3591.word 0xE5EE6B03
3592.word 0x6A3709EC
3593.word 0xB1A321B9
3594.word 0xB2FB3483
3595.word 0x473711A7
3596.word 0xFAB02CA7
3597.word 0xB9C3A3A3
3598.word 0xCD2C2C7E
3599.word 0x539CDE0C
3600.word 0x0856D92F
3601.word 0xAC03FF80
3602.word 0x721CA08B
3603.word 0x6A6A6B65
3604.word 0xB3E3CCC7
3605.word 0x17FEBAAD
3606.word 0x2B19C315
3607.word 0x8F4CB9E0
3608.word 0x33DBA0AB
3609.word 0x87AF7E89
3610.word 0x2AAE6C1B
3611.word 0x244AD368
3612.word 0xB49784D1
3613.word 0x429F2751
3614.word 0x91C44A6F
3615.word 0xDF5AB300
3616.word 0x6634A28F
3617.word 0xE3F29608
3618.word 0x72053681
3619.word 0xE0375AED
3620.word 0xB8A7B0B9
3621.word 0x67B43901
3622.word 0xDD8E85E2
3623.word 0x2386A318
3624.word 0x55631695
3625.word 0xD25F311B
3626.word 0xDD11900A
3627.word 0xB843C7C7
3628.word 0x88573414
3629.word 0x49E18C20
3630.word 0x0612D18C
3631.word 0xA4EDA902
3632.word 0xE73EF4EF
3633.word 0x63687292
3634.word 0xD0A3CA40
3635.word 0x52B88181
3636.word 0xE185FABF
3637.word 0x97BED18B
3638.word 0x5F89F5DF
3639.word 0x4720993B
3640.word 0xDB4B86A4
3641.word 0x9A6F1D84
3642.word 0x94D84F3A
3643.word 0x867F0FC1
3644.word 0xC72F4FF5
3645.end