Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / uarch / tlu / diag / tlu_rand01_ind_09.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tlu_rand01_ind_09.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#define TRAP_SECT_HV_ALSO
39#define DMMU_SKIP_IF_NO_TTE
40#define IMMU_SKIP_IF_NO_TTE
41
42#define MAIN_PAGE_NUCLEUS_ALSO
43#define MAIN_PAGE_HV_ALSO
44
45#define H_T1_Trap_Instruction_0
46#define My_T1_Trap_Instruction_0 \
47 inc %o4;\
48 umul %o4, 2, %o5;\
49 ba 1f; \
50 save; \
51 2: done; \
52 nop; \
53 1: ba 2b; \
54 restore
55#define H_T1_Trap_Instruction_1
56#define My_T1_Trap_Instruction_1 \
57 umul %o4, 2, %o5;\
58 inc %o1;\
59 rdpr %tnpc, %g2; \
60 wrpr %g2, %tpc; \
61 add %g2, 4, %g2;\
62 wrpr %g2, %tnpc; \
63 illtrap;\
64 retry
65#define H_T1_Trap_Instruction_2
66#define My_T1_Trap_Instruction_2 \
67 inc %o3;\
68 umul %o3, 2, %o4;\
69 ba 1f; \
70 save; \
71 2: done; \
72 nop; \
73 1: ba 2b; \
74 restore
75#define H_T1_Trap_Instruction_3
76#define My_T1_Trap_Instruction_3 \
77 inc %l3;\
78 inc %o3;\
79 umul %o3, 2, %o4;\
80 inc %i3;\
81 save ;\
82 restore ;\
83 done ;\
84 nop;
85#define H_T1_Trap_Instruction_4
86#define My_T1_Trap_Instruction_4 \
87 umul %i4, 2, %l5;\
88 inc %o1;\
89 rdpr %tnpc, %g2; \
90 wrpr %g2, %tpc; \
91 add %g2, 4, %g2;\
92 wrpr %g2, %tnpc; \
93 retry ;\
94 illtrap
95#define H_T1_Trap_Instruction_5
96#define My_T1_Trap_Instruction_5 \
97 umul %i7, 2, %l1;\
98 inc %o5;\
99 rdpr %tnpc, %g2; \
100 wrpr %g2, %tpc; \
101 add %g2, 4, %g2;\
102 wrpr %g2, %tnpc; \
103 sdiv %r2, %r10, %r0; \
104 retry
105
106#define H_HT0_Trap_Instruction_0
107#define My_HT0_Trap_Instruction_0 \
108 umul %i7, 2, %l1;\
109 inc %o5;\
110 umul %i5, 2, %l3;\
111 inc %o3;\
112 save; \
113 restore; \
114 done ;\
115 nop;
116#define H_HT0_Trap_Instruction_1
117#define My_HT0_Trap_Instruction_1 \
118 umul %i7, 2, %l1;\
119 inc %o5;\
120 ba 1f; \
121 save; \
122 2: done; \
123 nop; \
124 1: ba 2b; \
125 restore
126#define H_HT0_Trap_Instruction_2
127#define My_HT0_Trap_Instruction_2 \
128 umul %i6, 2, %l4;\
129 inc %o4;\
130 rdpr %tnpc, %g2; \
131 wrpr %g2, %tpc; \
132 add %g2, 4, %g2;\
133 wrpr %g2, %tnpc; \
134 sdiv %r2, %r0, %r0; \
135 retry
136#define H_HT0_Trap_Instruction_3
137#define My_HT0_Trap_Instruction_3 \
138 umul %i5, 3, %l3;\
139 inc %o6;\
140 rdpr %tnpc, %g2; \
141 illtrap ;\
142 wrpr %g2, %tpc; \
143 add %g2, 4, %g2;\
144 wrpr %g2, %tnpc; \
145 retry
146#define H_HT0_Trap_Instruction_4
147#define My_HT0_Trap_Instruction_4 \
148 rdpr %tnpc, %g2; \
149 save; \
150 wrpr %g2, %tpc; \
151 add %g2, 4, %g2;\
152 wrpr %g2, %tnpc; \
153 restore; \
154 illtrap;\
155 retry
156#define H_HT0_Trap_Instruction_5
157#define My_HT0_Trap_Instruction_5 \
158 call htrap_5_ext;\
159 nop; retry;\
160 nop; nop; nop; nop; nop
161
162#define H_HT0_Mem_Address_Not_Aligned_0x34
163#define My_HT0_Mem_Address_Not_Aligned_0x34 \
164 umul %i7, 4, %g1;\
165 inc %o6;\
166 umul %i4, 3, %l3;\
167 inc %g6;\
168 save ;\
169 restore ;\
170 done ;\
171 nop;
172#define H_HT0_Illegal_instruction_0x10
173#define My_HT0_Illegal_instruction_0x10 \
174 umul %i0, 4, %g1;\
175 inc %o6;\
176 ba 1f; \
177 save; \
178 2: done; \
179 nop; \
180 1: ba 2b; \
181 restore
182#define H_HT0_DAE_so_page_0x30
183#define My_HT0_DAE_so_page_0x30 \
184 umul %i5, 4, %g5;\
185 inc %g6;\
186 save; \
187 restore;\
188 rd %fprs, %g2; \
189 wr %g2, 0x4, %fprs ;\
190 done; \
191 nop;
192#define H_HT0_DAE_invalid_asi_0x14
193#define SUN_H_HT0_DAE_invalid_asi_0x14 \
194 umul %i5, 4, %g5;\
195 inc %g6;\
196 save; \
197 restore;\
198 rd %fprs, %g2; \
199 wr %g2, 0x4, %fprs ;\
200 done; \
201 nop;
202#define H_HT0_DAE_privilege_violation_0x15
203#define SUN_H_HT0_DAE_privilege_violation_0x15 \
204 umul %i5, 4, %g5;\
205 inc %g6;\
206 save; \
207 restore;\
208 rd %fprs, %g2; \
209 wr %g2, 0x4, %fprs ;\
210 done; \
211 nop;
212#define H_HT0_Privileged_Action_0x37
213#define My_HT0_Privileged_Action_0x37 \
214 inc %l5;\
215 dec %g3;\
216 umul %i5, 4, %g5;\
217 save; \
218 restore;\
219 done; \
220 nop; nop
221#define H_HT0_Lddf_Mem_Address_Not_Aligned_0x35
222#define My_HT0_Lddf_Mem_Address_Not_Aligned_0x35 \
223 inc %l5;\
224 dec %g3;\
225 rdpr %tpc, %g2; \
226 add %g2, 0x4, %g2; \
227 wrpr %g2, %tpc; \
228 add %g2, 0x4, %g2; \
229 wrpr %g2, %tnpc; \
230 retry
231#define H_HT0_Fp_exception_other_0x22
232#define My_HT0_Fp_exception_other_0x22 \
233 inc %l6;\
234 dec %g5;\
235 umul %i5, 4, %g2;\
236 save; \
237 restore;\
238 done; \
239 nop; nop
240#define H_HT0_Division_By_Zero
241#define My_HT0_Division_By_Zero \
242 inc %l6;\
243 dec %g5;\
244 umul %i5, 4, %g2;\
245 save; \
246 restore;\
247 done; \
248 nop; nop
249#define H_T1_Division_By_Zero_0x28
250#define My_H_T1_Division_By_Zero_0x28 \
251 inc %l6;\
252 dec %g5;\
253 umul %i5, 4, %g2;\
254 save; \
255 restore;\
256 done; \
257 nop; nop
258#define H_T1_Fp_Exception_Other_0x22
259#define My_H_T1_Fp_Exception_Other_0x22 \
260 inc %l6;\
261 dec %g5;\
262 umul %i5, 4, %g2;\
263 save; \
264 restore;\
265 done; \
266 nop; nop
267#define H_T1_Privileged_Opcode_0x11
268#define SUN_H_T1_Privileged_Opcode_0x11 \
269 inc %l6;\
270 dec %g5;\
271 umul %i5, 4, %g2;\
272 save; \
273 restore;\
274 done; \
275 nop; nop
276
277#define H_HT0_Fp_disabled_0x20
278#define My_HT0_Fp_disabled_0x20 \
279 inc %l6;\
280 dec %g5;\
281 umul %i5, 4, %g2;\
282 rd %fprs, %g2; \
283 wr %g2, 0x4, %fprs ;\
284 retry;\
285 nop; nop
286
287#define H_T1_Fp_Disabled_0x20
288#define My_H_T1_Fp_Disabled_0x20 \
289 inc %l6;\
290 dec %g5;\
291 umul %i5, 4, %g2;\
292 rd %fprs, %g2; \
293 wr %g2, 0x4, %fprs ;\
294 retry;\
295 nop; nop
296
297#define H_HT0_Watchdog_Reset_0x02
298#define My_HT0_Watchdog_Reset_0x02 \
299 setx Watchdog_Reset_Handler, %g1, %g2 ;\
300 jmp %g2;\
301 nop
302
303#define H_HT0_Stdf_Mem_Address_Not_Aligned_0x36
304#define My_HT0_Stdf_Mem_Address_Not_Aligned_0x36 \
305 inc %l5;\
306 dec %g3;\
307 rdpr %tpc, %g2; \
308 add %g2, 0x4, %g2; \
309 wrpr %g2, %tpc; \
310 add %g2, 0x4, %g2; \
311 wrpr %g2, %tnpc; \
312 retry
313
314
315#define H_HT0_Instruction_address_range_0x0d
316#define SUN_H_HT0_Instruction_address_range_0x0d \
317 done;nop
318
319#define H_HT0_mem_address_range_0x2e
320#define SUN_H_HT0_mem_address_range_0x2e \
321 done;nop
322
323
324#include "hboot.s"
325.text
326.global main
327main:
328
329 !Start with TL 1
330 ta T_CHANGE_TO_TL1
331
332 ! Set up ld/st area per thread
333 ta T_RD_THID ! Result in %o1 = r9
334 umul %r9, 256, %r31
335 setx user_data_start, %r1, %r3
336 add %r31, %r3, %r31
337 wr %r0, 0x4, %asi
338
339!Initialializing registers
340 ldx [%r31+0], %r0
341 ldx [%r31+8], %r1
342 ldx [%r31+16], %r2
343 ldx [%r31+24], %r3
344 ldx [%r31+32], %r4
345 ldx [%r31+40], %r5
346 ldx [%r31+48], %r6
347 ldx [%r31+56], %r7
348 ldx [%r31+64], %r8
349 ldx [%r31+72], %r9
350 ldx [%r31+80], %r10
351 ldx [%r31+88], %r11
352 ldx [%r31+96], %r12
353 ldx [%r31+104], %r13
354 ldx [%r31+112], %r14
355 ldx [%r31+120], %r15
356 ldx [%r31+128], %r16
357 ldx [%r31+136], %r17
358 ldx [%r31+144], %r18
359 ldx [%r31+152], %r19
360 ldx [%r31+160], %r20
361 ldx [%r31+168], %r21
362 ldx [%r31+176], %r22
363 ldx [%r31+184], %r23
364 ldx [%r31+192], %r24
365 ldx [%r31+200], %r25
366 ldx [%r31+208], %r26
367 ldx [%r31+216], %r27
368 ldx [%r31+224], %r28
369 ldx [%r31+232], %r29
370 ldx [%r31+240], %r30
371 save %r31, %r0, %r31
372 ldx [%r31+0], %r0
373 ldx [%r31+8], %r1
374 ldx [%r31+16], %r2
375 ldx [%r31+24], %r3
376 ldx [%r31+32], %r4
377 ldx [%r31+40], %r5
378 ldx [%r31+48], %r6
379 ldx [%r31+56], %r7
380 ldx [%r31+64], %r8
381 ldx [%r31+72], %r9
382 ldx [%r31+80], %r10
383 ldx [%r31+88], %r11
384 ldx [%r31+96], %r12
385 ldx [%r31+104], %r13
386 ldx [%r31+112], %r14
387 ldx [%r31+120], %r15
388 ldx [%r31+128], %r16
389 ldx [%r31+136], %r17
390 ldx [%r31+144], %r18
391 ldx [%r31+152], %r19
392 ldx [%r31+160], %r20
393 ldx [%r31+168], %r21
394 ldx [%r31+176], %r22
395 ldx [%r31+184], %r23
396 ldx [%r31+192], %r24
397 ldx [%r31+200], %r25
398 ldx [%r31+208], %r26
399 ldx [%r31+216], %r27
400 ldx [%r31+224], %r28
401 ldx [%r31+232], %r29
402 ldx [%r31+240], %r30
403 save %r31, %r0, %r31
404 ldx [%r31+0], %r0
405 ldx [%r31+8], %r1
406 ldx [%r31+16], %r2
407 ldx [%r31+24], %r3
408 ldx [%r31+32], %r4
409 ldx [%r31+40], %r5
410 ldx [%r31+48], %r6
411 ldx [%r31+56], %r7
412 ldx [%r31+64], %r8
413 ldx [%r31+72], %r9
414 ldx [%r31+80], %r10
415 ldx [%r31+88], %r11
416 ldx [%r31+96], %r12
417 ldx [%r31+104], %r13
418 ldx [%r31+112], %r14
419 ldx [%r31+120], %r15
420 ldx [%r31+128], %r16
421 ldx [%r31+136], %r17
422 ldx [%r31+144], %r18
423 ldx [%r31+152], %r19
424 ldx [%r31+160], %r20
425 ldx [%r31+168], %r21
426 ldx [%r31+176], %r22
427 ldx [%r31+184], %r23
428 ldx [%r31+192], %r24
429 ldx [%r31+200], %r25
430 ldx [%r31+208], %r26
431 ldx [%r31+216], %r27
432 ldx [%r31+224], %r28
433 ldx [%r31+232], %r29
434 ldx [%r31+240], %r30
435 save %r31, %r0, %r31
436 restore
437 restore
438 restore
439 .word 0x81494000 ! 3: RDHPR_HTBA rdhpr %htba, %r0
440 .word 0xc127e001 ! 8: STF_I st %f0, [0x0001, %r31]
441 .word 0xc0d7e000 ! 9: LDSHA_I ldsha [%r31, + 0x0000] %asi, %r0
442 mov 0x30, %r30
443 .word 0x99d0001e ! 12: Tcc_R tgu icc_or_xcc, %r0 + %r30
444 .word 0xc037e001 ! 13: STH_I sth %r0, [%r31 + 0x0001]
445 .word 0x8dd02032 ! 14: Tcc_I tneg icc_or_xcc, %r0 + 50
446 .word 0x24700001 ! 25: BPLE <illegal instruction>
447 .word 0x9a7b2001 ! 28: SDIV_I sdiv %r12, 0x0001, %r13
448 mov 0x35, %r30
449 .word 0x95d0001e ! 31: Tcc_R tg icc_or_xcc, %r0 + %r30
450 .word 0xdb3fe001 ! 32: STDF_I std %f13, [0x0001, %r31]
451 .word 0x97d02034 ! 33: Tcc_I tge icc_or_xcc, %r0 + 52
452 .word 0x20800001 ! 34: BN bn,a <label_0x1>
453 .word 0x24700001 ! 35: BPLE <illegal instruction>
454 .word 0xda57c000 ! 36: LDSH_R ldsh [%r31 + %r0], %r13
455 .word 0xda87e000 ! 37: LDUWA_I lduwa [%r31, + 0x0000] %asi, %r13
456 .word 0xdac7e030 ! 46: LDSWA_I ldswa [%r31, + 0x0030] %asi, %r13
457 .word 0x34700001 ! 49: BPG <illegal instruction>
458 .word 0xdad7e010 ! 54: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r13
459 .word 0xda57c000 ! 55: LDSH_R ldsh [%r31 + %r0], %r13
460 .word 0x8051000e ! 62: UMUL_R umul %r4, %r14, %r0
461 .word 0x8d802000 ! 63: WRFPRS_I wr %r0, 0x0000, %fprs
462 .word 0x81d02034 ! 64: Tcc_I tn icc_or_xcc, %r0 + 52
463 .word 0xc13fc00e ! 69: STDF_R std %f0, [%r14, %r31]
464 .word 0x9151c000 ! 74: RDPR_TL rdpr %tl, %r8
465 .word 0xd04fe001 ! 75: LDSB_I ldsb [%r31 + 0x0001], %r8
466 .word 0x87802004 ! 76: WRASI_I wr %r0, 0x0004, %asi
467 .word 0x93d02031 ! 79: Tcc_I tne icc_or_xcc, %r0 + 49
468 .word 0x8dd02033 ! 84: Tcc_I tneg icc_or_xcc, %r0 + 51
469 .word 0x9248000d ! 87: MULX_R mulx %r0, %r13, %r9
470 .word 0xd20fc000 ! 102: LDUB_R ldub [%r31 + %r0], %r9
471 .word 0xd217c000 ! 111: LDUH_R lduh [%r31 + %r0], %r9
472 .word 0xd20fe001 ! 112: LDUB_I ldub [%r31 + 0x0001], %r9
473 .word 0xd24fe001 ! 113: LDSB_I ldsb [%r31 + 0x0001], %r9
474 .word 0xd20fe001 ! 118: LDUB_I ldub [%r31 + 0x0001], %r9
475 mov 0x30, %r30
476 .word 0x81d0001e ! 119: Tcc_R tn icc_or_xcc, %r0 + %r30
477 .word 0x9f508000 ! 120: RDPR_TSTATE rdpr %tstate, %r15
478 mov 0x34, %r30
479 .word 0x95d0001e ! 141: Tcc_R tg icc_or_xcc, %r0 + %r30
480 .word 0x89d02034 ! 142: Tcc_I tleu icc_or_xcc, %r0 + 52
481 mov 0x30, %r30
482 .word 0x9fd0001e ! 147: Tcc_R tvc icc_or_xcc, %r0 + %r30
483 .word 0xdec7e010 ! 148: LDSWA_I ldswa [%r31, + 0x0010] %asi, %r15
484 ta T_CHANGE_NONPRIV ! macro
485 .word 0x97d02035 ! 152: Tcc_I tge icc_or_xcc, %r0 + 53
486 .word 0x91500000 ! 155: RDPR_TPC rdpr %tpc, %r8
487 .word 0xd117c000 ! 156: LDQF_R - [%r31, %r0], %f8
488 ta T_CHANGE_PRIV ! macro
489 mov 0x35, %r30
490 .word 0x91d0001e ! 162: Tcc_R ta icc_or_xcc, %r0 + %r30
491 .word 0xd057e001 ! 163: LDSH_I ldsh [%r31 + 0x0001], %r8
492 mov 0x35, %r30
493 .word 0x89d0001e ! 164: Tcc_R tleu icc_or_xcc, %r0 + %r30
494 .word 0x91d02033 ! 165: Tcc_I ta icc_or_xcc, %r0 + 51
495 .word 0x93514000 ! 168: RDPR_TBA rdpr %tba, %r9
496 .word 0x93d02030 ! 171: Tcc_I tne icc_or_xcc, %r0 + 48
497 .word 0xd327e001 ! 172: STF_I st %f9, [0x0001, %r31]
498 .word 0x32700001 ! 173: BPNE <illegal instruction>
499 .word 0x28700001 ! 176: BPLEU <illegal instruction>
500 .word 0x24800001 ! 181: BLE ble,a <label_0x1>
501 .word 0x36800001 ! 182: BGE bge,a <label_0x1>
502 .word 0xd2cfe000 ! 183: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r9
503 mov 0x30, %r30
504 .word 0x8bd0001e ! 190: Tcc_R tcs icc_or_xcc, %r0 + %r30
505 .word 0xd2c7e030 ! 193: LDSWA_I ldswa [%r31, + 0x0030] %asi, %r9
506 .word 0x9f480000 ! 198: RDHPR_HPSTATE rdhpr %hpstate, %r15
507 .word 0x3a700001 ! 201: BPCC <illegal instruction>
508 .word 0xded7e000 ! 202: LDSHA_I ldsha [%r31, + 0x0000] %asi, %r15
509 .word 0x8d50c000 ! 203: RDPR_TT rdpr %tt, %r6
510 mov 0x33, %r30
511 .word 0x89d0001e ! 204: Tcc_R tleu icc_or_xcc, %r0 + %r30
512 .word 0xcd27c00d ! 209: STF_R st %f6, [%r13, %r31]
513 .word 0x8c824005 ! 210: ADDcc_R addcc %r9, %r5, %r6
514 .word 0x9dd02034 ! 217: Tcc_I tpos icc_or_xcc, %r0 + 52
515 .word 0xcc07c000 ! 220: LDUW_R lduw [%r31 + %r0], %r6
516 .word 0xcc97e010 ! 221: LDUHA_I lduha [%r31, + 0x0010] %asi, %r6
517 .word 0x93d02030 ! 228: Tcc_I tne icc_or_xcc, %r0 + 48
518 .word 0xccc7e010 ! 233: LDSWA_I ldswa [%r31, + 0x0010] %asi, %r6
519 .word 0x9950c000 ! 234: RDPR_TT rdpr %tt, %r12
520 .word 0xd85fe001 ! 235: LDX_I ldx [%r31 + 0x0001], %r12
521 .word 0x95a00542 ! 238: FSQRTd fsqrt
522 .word 0x2a800001 ! 239: BCS bcs,a <label_0x1>
523 .word 0xd4c804a0 ! 240: LDSBA_R ldsba [%r0, %r0] 0x25, %r10
524 .word 0x83d02035 ! 243: Tcc_I te icc_or_xcc, %r0 + 53
525 .word 0x9551c000 ! 244: RDPR_TL rdpr %tl, %r10
526 .word 0x95504000 ! 245: RDPR_TNPC rdpr %tnpc, %r10
527 .word 0x8d802000 ! 246: WRFPRS_I wr %r0, 0x0000, %fprs
528 .word 0x8d802004 ! 249: WRFPRS_I wr %r0, 0x0004, %fprs
529 mov 0x30, %r30
530 .word 0x97d0001e ! 254: Tcc_R tge icc_or_xcc, %r0 + %r30
531 ta T_CHANGE_NONHPRIV ! macro
532 .word 0x87d02034 ! 258: Tcc_I tl icc_or_xcc, %r0 + 52
533 .word 0x8d802000 ! 261: WRFPRS_I wr %r0, 0x0000, %fprs
534 .word 0xd487e020 ! 264: LDUWA_I lduwa [%r31, + 0x0020] %asi, %r10
535 .word 0x34700001 ! 271: BPG <illegal instruction>
536 .word 0xd40fe001 ! 272: LDUB_I ldub [%r31 + 0x0001], %r10
537 .word 0xd4cfe000 ! 273: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r10
538 mov 0x34, %r30
539 .word 0x87d0001e ! 276: Tcc_R tl icc_or_xcc, %r0 + %r30
540 .word 0x87802054 ! 277: WRASI_I wr %r0, 0x0054, %asi
541 .word 0xd48fe020 ! 284: LDUBA_I lduba [%r31, + 0x0020] %asi, %r10
542 mov 0x34, %r30
543 .word 0x83d0001e ! 285: Tcc_R te icc_or_xcc, %r0 + %r30
544 .word 0x99504000 ! 286: RDPR_TNPC rdpr %tnpc, %r12
545 .word 0x8d802000 ! 287: WRFPRS_I wr %r0, 0x0000, %fprs
546 .word 0x8d802000 ! 290: WRFPRS_I wr %r0, 0x0000, %fprs
547 .word 0x8bd02034 ! 301: Tcc_I tcs icc_or_xcc, %r0 + 52
548 .word 0x83d02035 ! 304: Tcc_I te icc_or_xcc, %r0 + 53
549 .word 0x87802010 ! 311: WRASI_I wr %r0, 0x0010, %asi
550 mov 0x34, %r30
551 .word 0x87d0001e ! 312: Tcc_R tl icc_or_xcc, %r0 + %r30
552 mov 0x33, %r30
553 .word 0x8bd0001e ! 313: Tcc_R tcs icc_or_xcc, %r0 + %r30
554 mov 0x35, %r30
555 .word 0x89d0001e ! 314: Tcc_R tleu icc_or_xcc, %r0 + %r30
556 mov 0x34, %r30
557 .word 0x8dd0001e ! 321: Tcc_R tneg icc_or_xcc, %r0 + %r30
558 .word 0x8fd02035 ! 326: Tcc_I tvs icc_or_xcc, %r0 + 53
559 .word 0x28800001 ! 337: BLEU bleu,a <label_0x1>
560 .word 0xd857c000 ! 344: LDSH_R ldsh [%r31 + %r0], %r12
561 .word 0x8d802000 ! 349: WRFPRS_I wr %r0, 0x0000, %fprs
562 .word 0x904ba001 ! 350: MULX_I mulx %r14, 0x0001, %r8
563 .word 0xd0dfe030 ! 353: LDXA_I ldxa [%r31, + 0x0030] %asi, %r8
564 mov 0x35, %r30
565 .word 0x89d0001e ! 354: Tcc_R tleu icc_or_xcc, %r0 + %r30
566 .word 0xd0d7e010 ! 377: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r8
567 .word 0x83d02034 ! 378: Tcc_I te icc_or_xcc, %r0 + 52
568 .word 0x85d02034 ! 379: Tcc_I tle icc_or_xcc, %r0 + 52
569 .word 0x8883a001 ! 380: ADDcc_I addcc %r14, 0x0001, %r4
570 .word 0xc857e001 ! 381: LDSH_I ldsh [%r31 + 0x0001], %r4
571 .word 0xc9e34020 ! 390: CASA_I casa [%r13] 0x 1, %r0, %r4
572 .word 0x8d802000 ! 393: WRFPRS_I wr %r0, 0x0000, %fprs
573 .word 0xc897e020 ! 394: LDUHA_I lduha [%r31, + 0x0020] %asi, %r4
574 .word 0xcde00020 ! 401: CASA_I casa [%r0] 0x 1, %r0, %r6
575 .word 0xccc804a0 ! 402: LDSBA_R ldsba [%r0, %r0] 0x25, %r6
576 .word 0x36800001 ! 405: BGE bge,a <label_0x1>
577 .word 0x26800001 ! 406: BL bl,a <label_0x1>
578 .word 0x83a2c9ab ! 415: FDIVs fdivs %f11, %f11, %f1
579 .word 0xc2cfe000 ! 422: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r1
580 .word 0xc2c80e60 ! 431: LDSBA_R ldsba [%r0, %r0] 0x73, %r1
581 .word 0xc22fe001 ! 432: STB_I stb %r1, [%r31 + 0x0001]
582 mov 0x33, %r30
583 .word 0x83d0001e ! 433: Tcc_R te icc_or_xcc, %r0 + %r30
584 .word 0x2a700001 ! 438: BPCS <illegal instruction>
585 .word 0x89d02030 ! 439: Tcc_I tleu icc_or_xcc, %r0 + 48
586 .word 0x85d02035 ! 442: Tcc_I tle icc_or_xcc, %r0 + 53
587 .word 0xc2cfe000 ! 447: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r1
588 .word 0x9551c000 ! 456: RDPR_TL rdpr %tl, %r10
589 .word 0xd40fe001 ! 459: LDUB_I ldub [%r31 + 0x0001], %r10
590 .word 0x87802010 ! 460: WRASI_I wr %r0, 0x0010, %asi
591 mov 0x34, %r30
592 .word 0x9bd0001e ! 461: Tcc_R tcc icc_or_xcc, %r0 + %r30
593 .word 0x24800001 ! 466: BLE ble,a <label_0x1>
594 ta T_CHANGE_NONPRIV ! macro
595 .word 0x89a0054e ! 472: FSQRTd fsqrt
596 .word 0xc80fe001 ! 475: LDUB_I ldub [%r31 + 0x0001], %r4
597 .word 0xc8d00e40 ! 476: LDSHA_R ldsha [%r0, %r0] 0x72, %r4
598 .word 0xc817c000 ! 481: LDUH_R lduh [%r31 + %r0], %r4
599 .word 0x85a00541 ! 482: FSQRTd fsqrt
600 .word 0x8d802000 ! 485: WRFPRS_I wr %r0, 0x0000, %fprs
601 .word 0x87802054 ! 488: WRASI_I wr %r0, 0x0054, %asi
602 .word 0x8d802000 ! 493: WRFPRS_I wr %r0, 0x0000, %fprs
603 .word 0x83a349cb ! 494: FDIVd fdivd %f44, %f42, %f32
604 .word 0xc2bfc02b ! 497: STDA_R stda %r1, [%r31 + %r11] 0x01
605 .word 0xc247e001 ! 498: LDSW_I ldsw [%r31 + 0x0001], %r1
606 .word 0x87802014 ! 513: WRASI_I wr %r0, 0x0014, %asi
607 .word 0x87802016 ! 514: WRASI_I wr %r0, 0x0016, %asi
608 mov 0x32, %r30
609 .word 0x95d0001e ! 515: Tcc_R tg icc_or_xcc, %r0 + %r30
610 .word 0x8679c00f ! 518: SDIV_R sdiv %r7, %r15, %r3
611 ta T_CHANGE_NONPRIV ! macro
612 .word 0x89686001 ! 524: SDIVX_I sdivx %r1, 0x0001, %r4
613 .word 0xc837c00f ! 527: STH_R sth %r4, [%r31 + %r15]
614 .word 0xc8cfe010 ! 528: LDSBA_I ldsba [%r31, + 0x0010] %asi, %r4
615 .word 0xc83fc00f ! 529: STD_R std %r4, [%r31 + %r15]
616 mov 0x31, %r30
617 .word 0x9fd0001e ! 532: Tcc_R tvc icc_or_xcc, %r0 + %r30
618 .word 0x30700001 ! 533: BPA <illegal instruction>
619 .word 0xc857c000 ! 536: LDSH_R ldsh [%r31 + %r0], %r4
620 .word 0xc887e030 ! 537: LDUWA_I lduwa [%r31, + 0x0030] %asi, %r4
621 mov 0x32, %r30
622 .word 0x95d0001e ! 538: Tcc_R tg icc_or_xcc, %r0 + %r30
623 .word 0x91d02035 ! 539: Tcc_I ta icc_or_xcc, %r0 + 53
624 mov 0x34, %r30
625 .word 0x89d0001e ! 542: Tcc_R tleu icc_or_xcc, %r0 + %r30
626 .word 0xc817c000 ! 543: LDUH_R lduh [%r31 + %r0], %r4
627 .word 0x87d02032 ! 544: Tcc_I tl icc_or_xcc, %r0 + 50
628 .word 0xc8d804a0 ! 553: LDXA_R ldxa [%r0, %r0] 0x25, %r4
629 .word 0x9bd02035 ! 556: Tcc_I tcc icc_or_xcc, %r0 + 53
630 .word 0xc917c000 ! 559: LDQF_R - [%r31, %r0], %f4
631 .word 0x8d480000 ! 562: RDHPR_HPSTATE rdhpr %hpstate, %r6
632 .word 0x916ac004 ! 569: SDIVX_R sdivx %r11, %r4, %r8
633 .word 0xd08804a0 ! 570: LDUBA_R lduba [%r0, %r0] 0x25, %r8
634 .word 0x91d02034 ! 571: Tcc_I ta icc_or_xcc, %r0 + 52
635 .word 0xd097e030 ! 576: LDUHA_I lduha [%r31, + 0x0030] %asi, %r8
636 .word 0xd097e020 ! 577: LDUHA_I lduha [%r31, + 0x0020] %asi, %r8
637 .word 0xd08804a0 ! 580: LDUBA_R lduba [%r0, %r0] 0x25, %r8
638 .word 0xd007e001 ! 581: LDUW_I lduw [%r31 + 0x0001], %r8
639 .word 0x8d802000 ! 582: WRFPRS_I wr %r0, 0x0000, %fprs
640 ta T_CHANGE_HPRIV ! macro
641 .word 0x32800001 ! 586: BNE bne,a <label_0x1>
642 .word 0xd127e001 ! 589: STF_I st %f8, [0x0001, %r31]
643 .word 0xd1e3802a ! 590: CASA_I casa [%r14] 0x 1, %r10, %r8
644 ta T_CHANGE_HPRIV ! macro
645 .word 0x90d12001 ! 600: UMULcc_I umulcc %r4, 0x0001, %r8
646 .word 0xd197e001 ! 603: LDQFA_I - [%r31, 0x0001], %f8
647 .word 0xd017e001 ! 604: LDUH_I lduh [%r31 + 0x0001], %r8
648 .word 0xd0dfe010 ! 605: LDXA_I ldxa [%r31, + 0x0010] %asi, %r8
649 .word 0x94dbc000 ! 608: SMULcc_R smulcc %r15, %r0, %r10
650 .word 0x8cd9c001 ! 609: SMULcc_R smulcc %r7, %r1, %r6
651 .word 0x9dd02034 ! 618: Tcc_I tpos icc_or_xcc, %r0 + 52
652 .word 0xcc0fe001 ! 621: LDUB_I ldub [%r31 + 0x0001], %r6
653 .word 0xcc17c000 ! 622: LDUH_R lduh [%r31 + %r0], %r6
654 .word 0x80026001 ! 623: ADD_I add %r9, 0x0001, %r0
655 .word 0xc0c004a0 ! 624: LDSWA_R ldswa [%r0, %r0] 0x25, %r0
656 mov 0x35, %r30
657 .word 0x89d0001e ! 625: Tcc_R tleu icc_or_xcc, %r0 + %r30
658 mov 0x31, %r30
659 .word 0x89d0001e ! 628: Tcc_R tleu icc_or_xcc, %r0 + %r30
660 .word 0xc0cfe020 ! 635: LDSBA_I ldsba [%r31, + 0x0020] %asi, %r0
661 .word 0x87802004 ! 636: WRASI_I wr %r0, 0x0004, %asi
662 .word 0xc0c004a0 ! 639: LDSWA_R ldswa [%r0, %r0] 0x25, %r0
663 .word 0xc0800e60 ! 642: LDUWA_R lduwa [%r0, %r0] 0x73, %r0
664 .word 0xc087e010 ! 645: LDUWA_I lduwa [%r31, + 0x0010] %asi, %r0
665 .word 0xc0c80e60 ! 646: LDSBA_R ldsba [%r0, %r0] 0x73, %r0
666 mov 0x35, %r30
667 .word 0x8bd0001e ! 649: Tcc_R tcs icc_or_xcc, %r0 + %r30
668 .word 0x9a50400e ! 656: UMUL_R umul %r1, %r14, %r13
669 .word 0xdb27c00e ! 657: STF_R st %f13, [%r14, %r31]
670 .word 0x24800001 ! 658: BLE ble,a <label_0x1>
671 .word 0x87802054 ! 659: WRASI_I wr %r0, 0x0054, %asi
672 .word 0xda07c000 ! 662: LDUW_R lduw [%r31 + %r0], %r13
673 mov 0x31, %r30
674 .word 0x87d0001e ! 663: Tcc_R tl icc_or_xcc, %r0 + %r30
675 .word 0x9150c000 ! 664: RDPR_TT rdpr %tt, %r8
676 .word 0x87802014 ! 667: WRASI_I wr %r0, 0x0014, %asi
677 .word 0xd05fc000 ! 676: LDX_R ldx [%r31 + %r0], %r8
678 .word 0x9fd02032 ! 689: Tcc_I tvc icc_or_xcc, %r0 + 50
679 mov 0x34, %r30
680 .word 0x93d0001e ! 690: Tcc_R tne icc_or_xcc, %r0 + %r30
681 .word 0xd09004a0 ! 691: LDUHA_R lduha [%r0, %r0] 0x25, %r8
682 .word 0xd007e001 ! 694: LDUW_I lduw [%r31 + 0x0001], %r8
683 .word 0x9dd02031 ! 695: Tcc_I tpos icc_or_xcc, %r0 + 49
684 .word 0xd0c004a0 ! 696: LDSWA_R ldswa [%r0, %r0] 0x25, %r8
685 .word 0xd0c7e000 ! 697: LDSWA_I ldswa [%r31, + 0x0000] %asi, %r8
686 .word 0x28700001 ! 698: BPLEU <illegal instruction>
687 .word 0xd04fc000 ! 707: LDSB_R ldsb [%r31 + %r0], %r8
688 .word 0xd087e010 ! 708: LDUWA_I lduwa [%r31, + 0x0010] %asi, %r8
689 .word 0xd117c000 ! 709: LDQF_R - [%r31, %r0], %f8
690 .word 0x2a700001 ! 710: BPCS <illegal instruction>
691 .word 0xd097e000 ! 711: LDUHA_I lduha [%r31, + 0x0000] %asi, %r8
692 .word 0x83d02035 ! 714: Tcc_I te icc_or_xcc, %r0 + 53
693 .word 0x8d698009 ! 717: SDIVX_R sdivx %r6, %r9, %r6
694 .word 0x8d802004 ! 718: WRFPRS_I wr %r0, 0x0004, %fprs
695 .word 0xcc97e000 ! 719: LDUHA_I lduha [%r31, + 0x0000] %asi, %r6
696 ta T_CHANGE_HPRIV ! macro
697 .word 0x30700001 ! 725: BPA <illegal instruction>
698 .word 0x99a00564 ! 726: FSQRTq fsqrt
699 .word 0x30800001 ! 733: BA ba,a <label_0x1>
700 .word 0xd85fc000 ! 734: LDX_R ldx [%r31 + %r0], %r12
701 .word 0xd8dfe020 ! 735: LDXA_I ldxa [%r31, + 0x0020] %asi, %r12
702 mov 0x35, %r30
703 .word 0x9bd0001e ! 736: Tcc_R tcc icc_or_xcc, %r0 + %r30
704 .word 0x9ba2c9a5 ! 739: FDIVs fdivs %f11, %f5, %f13
705 .word 0x93d02031 ! 742: Tcc_I tne icc_or_xcc, %r0 + 49
706 .word 0xdac80e60 ! 749: LDSBA_R ldsba [%r0, %r0] 0x73, %r13
707 .word 0xdac7e010 ! 754: LDSWA_I ldswa [%r31, + 0x0010] %asi, %r13
708 .word 0xdad804a0 ! 757: LDXA_R ldxa [%r0, %r0] 0x25, %r13
709 .word 0xda97e000 ! 760: LDUHA_I lduha [%r31, + 0x0000] %asi, %r13
710 .word 0x36800001 ! 763: BGE bge,a <label_0x1>
711 ta T_CHANGE_NONHPRIV ! macro
712 .word 0xdac7e030 ! 771: LDSWA_I ldswa [%r31, + 0x0030] %asi, %r13
713 .word 0xda0fe001 ! 772: LDUB_I ldub [%r31 + 0x0001], %r13
714 mov 0x33, %r30
715 .word 0x85d0001e ! 777: Tcc_R tle icc_or_xcc, %r0 + %r30
716 .word 0xda5fe001 ! 778: LDX_I ldx [%r31 + 0x0001], %r13
717 ta T_CHANGE_HPRIV ! macro
718 .word 0x87802010 ! 786: WRASI_I wr %r0, 0x0010, %asi
719 .word 0x87802045 ! 791: WRASI_I wr %r0, 0x0045, %asi
720 .word 0xda57c000 ! 792: LDSH_R ldsh [%r31 + %r0], %r13
721 .word 0x28800001 ! 793: BLEU bleu,a <label_0x1>
722 .word 0x83d02035 ! 794: Tcc_I te icc_or_xcc, %r0 + 53
723 .word 0x3e800001 ! 797: BVC bvc,a <label_0x1>
724 .word 0xda8fe000 ! 798: LDUBA_I lduba [%r31, + 0x0000] %asi, %r13
725 .word 0xda17c000 ! 803: LDUH_R lduh [%r31 + %r0], %r13
726 .word 0x87802016 ! 804: WRASI_I wr %r0, 0x0016, %asi
727 mov 0x32, %r30
728 .word 0x81d0001e ! 805: Tcc_R tn icc_or_xcc, %r0 + %r30
729 .word 0x28800001 ! 808: BLEU bleu,a <label_0x1>
730 ta T_CHANGE_HPRIV ! macro
731 .word 0xda57e001 ! 820: LDSH_I ldsh [%r31 + 0x0001], %r13
732 .word 0xdb17c000 ! 821: LDQF_R - [%r31, %r0], %f13
733 .word 0x24800001 ! 826: BLE ble,a <label_0x1>
734 mov 0x31, %r30
735 .word 0x8fd0001e ! 827: Tcc_R tvs icc_or_xcc, %r0 + %r30
736 .word 0x87802054 ! 828: WRASI_I wr %r0, 0x0054, %asi
737 .word 0x8283a001 ! 829: ADDcc_I addcc %r14, 0x0001, %r1
738 .word 0x81d02033 ! 836: Tcc_I tn icc_or_xcc, %r0 + 51
739 .word 0xc20fe001 ! 845: LDUB_I ldub [%r31 + 0x0001], %r1
740 .word 0x86d0a001 ! 850: UMULcc_I umulcc %r2, 0x0001, %r3
741 mov 0x31, %r30
742 .word 0x93d0001e ! 859: Tcc_R tne icc_or_xcc, %r0 + %r30
743 mov 0x30, %r30
744 .word 0x9bd0001e ! 862: Tcc_R tcc icc_or_xcc, %r0 + %r30
745 mov 0x31, %r30
746 .word 0x8fd0001e ! 865: Tcc_R tvs icc_or_xcc, %r0 + %r30
747 ta T_CHANGE_NONPRIV ! macro
748 .word 0x2e800001 ! 871: BVS bvs,a <label_0x1>
749 .word 0xc6d00e80 ! 878: LDSHA_R ldsha [%r0, %r0] 0x74, %r3
750 .word 0x87802016 ! 879: WRASI_I wr %r0, 0x0016, %asi
751 .word 0x89d02031 ! 882: Tcc_I tleu icc_or_xcc, %r0 + 49
752 .word 0xc68fe020 ! 883: LDUBA_I lduba [%r31, + 0x0020] %asi, %r3
753 .word 0x8d802000 ! 884: WRFPRS_I wr %r0, 0x0000, %fprs
754 .word 0x3e800001 ! 887: BVC bvc,a <label_0x1>
755 .word 0x8d802000 ! 888: WRFPRS_I wr %r0, 0x0000, %fprs
756 .word 0xc65fe001 ! 893: LDX_I ldx [%r31 + 0x0001], %r3
757 .word 0x8d802004 ! 896: WRFPRS_I wr %r0, 0x0004, %fprs
758 .word 0x3e700001 ! 901: BPVC <illegal instruction>
759 .word 0xd6f9802e ! 902: SWAPA_R swapa %r11, [%r6 + %r14] 0x01
760 .word 0x8bd02034 ! 905: Tcc_I tcs icc_or_xcc, %r0 + 52
761 .word 0x34800001 ! 906: BG bg,a <label_0x1>
762 .word 0x95d02035 ! 911: Tcc_I tg icc_or_xcc, %r0 + 53
763 mov 0x32, %r30
764 .word 0x89d0001e ! 912: Tcc_R tleu icc_or_xcc, %r0 + %r30
765 .word 0xd607e001 ! 913: LDUW_I lduw [%r31 + 0x0001], %r11
766 mov 0x35, %r30
767 .word 0x93d0001e ! 914: Tcc_R tne icc_or_xcc, %r0 + %r30
768 .word 0xd6d7e030 ! 915: LDSHA_I ldsha [%r31, + 0x0030] %asi, %r11
769 .word 0x97d02033 ! 922: Tcc_I tge icc_or_xcc, %r0 + 51
770 .word 0xd63fe001 ! 923: STD_I std %r11, [%r31 + 0x0001]
771 mov 0x32, %r30
772 .word 0x99d0001e ! 924: Tcc_R tgu icc_or_xcc, %r0 + %r30
773 .word 0x9a6a6001 ! 925: UDIVX_I udivx %r9, 0x0001, %r13
774 .word 0x8d802004 ! 926: WRFPRS_I wr %r0, 0x0004, %fprs
775 .word 0xdac7e030 ! 927: LDSWA_I ldswa [%r31, + 0x0030] %asi, %r13
776 .word 0xda87e020 ! 932: LDUWA_I lduwa [%r31, + 0x0020] %asi, %r13
777 .word 0xdadfe010 ! 935: LDXA_I ldxa [%r31, + 0x0010] %asi, %r13
778 .word 0xda8fe030 ! 938: LDUBA_I lduba [%r31, + 0x0030] %asi, %r13
779 mov 0x31, %r30
780 .word 0x93d0001e ! 939: Tcc_R tne icc_or_xcc, %r0 + %r30
781 .word 0x8fd02033 ! 940: Tcc_I tvs icc_or_xcc, %r0 + 51
782 .word 0xdac004a0 ! 943: LDSWA_R ldswa [%r0, %r0] 0x25, %r13
783 .word 0x81692001 ! 952: SDIVX_I sdivx %r4, 0x0001, %r0
784 mov 0x35, %r30
785 .word 0x95d0001e ! 955: Tcc_R tg icc_or_xcc, %r0 + %r30
786 .word 0xc08004a0 ! 956: LDUWA_R lduwa [%r0, %r0] 0x25, %r0
787 mov 0x32, %r30
788 .word 0x95d0001e ! 959: Tcc_R tg icc_or_xcc, %r0 + %r30
789 .word 0xc0c804a0 ! 960: LDSBA_R ldsba [%r0, %r0] 0x25, %r0
790 .word 0x97d02034 ! 961: Tcc_I tge icc_or_xcc, %r0 + 52
791 .word 0xc0d804a0 ! 966: LDXA_R ldxa [%r0, %r0] 0x25, %r0
792 .word 0x8fd02034 ! 967: Tcc_I tvs icc_or_xcc, %r0 + 52
793 .word 0x91d02033 ! 970: Tcc_I ta icc_or_xcc, %r0 + 51
794 .word 0xc007e001 ! 971: LDUW_I lduw [%r31 + 0x0001], %r0
795 .word 0xc00fe001 ! 972: LDUB_I ldub [%r31 + 0x0001], %r0
796 .word 0xd9e00029 ! 983: CASA_I casa [%r0] 0x 1, %r9, %r12
797 .word 0x87802004 ! 986: WRASI_I wr %r0, 0x0004, %asi
798 .word 0x8d802000 ! 997: WRFPRS_I wr %r0, 0x0000, %fprs
799
800
801.data
802user_data_start:
803 .xword 0xd9bfa99426db4f54
804 .xword 0xc61e3599d0a7a38e
805 .xword 0xe8e11f6cda58cd08
806 .xword 0xd469b4cadfef6304
807 .xword 0xfe640a078688cdc9
808 .xword 0x021b4c0e561f6445
809 .xword 0x328ab10a5099814c
810 .xword 0xb6afa4c44a58cc26
811 .xword 0xc718e7c455e1a0d6
812 .xword 0x274918d8bcfa669c
813 .xword 0x3a69ae77f2de4f72
814 .xword 0xd97c88fa57c2f39b
815 .xword 0xcb0d0f0ad85ca6d8
816 .xword 0xf4173012a5bbac84
817 .xword 0xc58a98841fd76f83
818 .xword 0x1443eb316d5626ba
819 .xword 0xf658be66c82779d7
820 .xword 0x764a93dd0089e0a4
821 .xword 0x267319deff4b9ba2
822 .xword 0x4ef9d73ad42de9bd
823 .xword 0x02a0612dc08de3db
824 .xword 0x585321ea7ed06c54
825 .xword 0xf915e9365864544e
826 .xword 0x271767dca0338d16
827 .xword 0xae56bf3a355852e6
828 .xword 0x135bf9e8a475f8bd
829 .xword 0xc5184da6f3188dd5
830 .xword 0x4fd319d621a86534
831 .xword 0x8a4bb29675c3bc5b
832 .xword 0x9cd3abf0a496e94f
833 .xword 0xa505c77f93899a76
834 .xword 0xcff3e983c280a543
835 .xword 0x90c3f23e62407914
836 .xword 0xdc26c0fb456833dc
837 .xword 0xf3f3c2d6c406cd17
838 .xword 0x4614ffc2aa113f86
839 .xword 0x5807a1e0f2ecadfa
840 .xword 0x36b67563e9d4cfde
841 .xword 0xda5ea879c33c5017
842 .xword 0xa170ff4ab058db0f
843 .xword 0x4b8ea5f4f2799335
844 .xword 0xf1de8417f78e13a7
845 .xword 0x568bb6620148d3ca
846 .xword 0xd531f6ff1d463c3b
847 .xword 0x59bdc6f18e3e23b9
848 .xword 0x8a47b0bbc9d148aa
849 .xword 0x7009c1bdf840693e
850 .xword 0x2639867dc1acb55b
851 .xword 0x39741e940ae48eb5
852 .xword 0x81fd6f2e4af84e3d
853 .xword 0xf95f8310c2aafef6
854 .xword 0xdfbe707e9873c8ee
855 .xword 0x6ed37f37bb659aa1
856 .xword 0xe1026f2663c2ece5
857 .xword 0x299f3fa721964d88
858 .xword 0x2ab3e5e3aa5fa1e9
859 .xword 0x209cbc20e6f3b244
860 .xword 0xa941bd641d3f2682
861 .xword 0x29724e8181b7d190
862 .xword 0xa640b88cef39e231
863 .xword 0x8f32ccff5b8729ef
864 .xword 0x03eba2410281706f
865 .xword 0x429aca9add8a691c
866 .xword 0x069d5c73a02ed56b
867 .xword 0x26e9393de2742d3d
868 .xword 0x0ec2f1de06771ee1
869 .xword 0xe580d615c7aca5fc
870 .xword 0x691ae7e6e5c297a8
871 .xword 0x2122199bae334594
872 .xword 0x175cb15e77bc607a
873 .xword 0x127172c1ec611a96
874 .xword 0xff1f75390d5f4844
875 .xword 0x820c2d96b88e441b
876 .xword 0x58e0d583c84ac138
877 .xword 0xce0bc4d0ba3652af
878 .xword 0x7208544b7c2b197e
879 .xword 0x0346e9162b4e7fdd
880 .xword 0x85be86750aec0710
881 .xword 0x3bfa2f482f9b9e1a
882 .xword 0x2cc483cdbcef166a
883 .xword 0x08fda66cfebc1680
884 .xword 0x22c24ee5e81a0175
885 .xword 0xfa3c6096447672d6
886 .xword 0xfe316416eba2a03d
887 .xword 0x8993516c4705cdf6
888 .xword 0xa4dc7bea277fa6d2
889 .xword 0x0e29f4487a5651a2
890 .xword 0x38f6d1f177ac5b32
891 .xword 0x5ae3a3ffadf6c75f
892 .xword 0xe73772c6d635bb52
893 .xword 0xa1c4f26b4fceffa8
894 .xword 0xe014170484f548e5
895 .xword 0xf4881c7dcec73632
896 .xword 0x32c795ccb2396c08
897 .xword 0x3d5a6a3dfe20e443
898 .xword 0x826da5ffd8c49071
899 .xword 0x608a1aa31ab96086
900 .xword 0x67c7c439dc976871
901 .xword 0x27235b5517c3c95c
902 .xword 0x412d481561506585
903 .xword 0x52ba2f5e961e1028
904 .xword 0xb750dd76b54ca614
905 .xword 0xd27d8740cd0038fd
906 .xword 0x8099b0799abb07ef
907 .xword 0x508f4a126353a510
908 .xword 0x84b066909126b39c
909 .xword 0x4c051b2cf78e163a
910 .xword 0x91ee0cbafdded355
911 .xword 0x29bc73289da7e0a4
912 .xword 0x0ba4f0318959be58
913 .xword 0x9d29335940521882
914 .xword 0x39fbb7bf3cc0859f
915 .xword 0x39bc8d2c1f1151ec
916 .xword 0xc335a7b3cce5c0b7
917 .xword 0x5c6c1f4a46f408c8
918 .xword 0x43b7502996b2aaca
919 .xword 0xa965ea3917984a9b
920 .xword 0x391107262fc15493
921 .xword 0xfa29cd40c1b9e61f
922 .xword 0x6498df7eac8c39b4
923 .xword 0x06cf8a272eef6108
924 .xword 0x758621fedb33de4f
925 .xword 0x52eb32337b3d1693
926 .xword 0x996ff94b480c10c8
927 .xword 0xb353abbbf1df9d19
928 .xword 0x95360f4a0182ee43
929 .xword 0x488d5f6fb64b6119
930 .xword 0xe301c64a6871898f
931 .xword 0x0f02804af72c9140
932 .xword 0x82e0d40efc0768be
933 .xword 0xf48c29c0f5631d3d
934 .xword 0xf19a1bbd06dda8e4
935 .xword 0xbb530b07a3ac887e
936 .xword 0x95314e0689205713
937 .xword 0x777ca4ae1414eed5
938 .xword 0x09fdf3c6094376dc
939 .xword 0x776bf964349d3451
940 .xword 0x6b5d00f89822ad8c
941 .xword 0xcd2409c974cccb66
942 .xword 0xc263b96b8da8169d
943 .xword 0x2d9e706b75ed38b0
944 .xword 0x52dfd8567879e06a
945 .xword 0x89b08d294d4decf5
946 .xword 0xa66005e9a313f13b
947 .xword 0x980d0ae950363971
948 .xword 0xd4b6620de28911d3
949 .xword 0x4f45a3dc54a0cf46
950 .xword 0x51a822c29a3606c6
951 .xword 0xeda05adddf374a23
952 .xword 0xf4b6cf106f4e95fd
953 .xword 0xb17ea5f9d58ee60d
954 .xword 0x0936e47fce206edf
955 .xword 0x4be64a07231b1a9f
956 .xword 0xdaf2bbad7b209bcb
957 .xword 0xe553d232c7256497
958 .xword 0x50092e47a3444fb7
959 .xword 0xfa6a36bfad37feab
960 .xword 0x08a68ae9bc7b3c09
961 .xword 0x454057c00db29ed5
962 .xword 0x2a063c582f967fdf
963 .xword 0xe9aab6e8ce29c675
964 .xword 0x0999069303f7986c
965 .xword 0xc6ab67b89d8f8933
966 .xword 0x45bd78d3260d6788
967 .xword 0x0d4214bb2747f6fd
968 .xword 0x15c06338d96a282a
969 .xword 0x275a5a5705f9a7a6
970 .xword 0xb4eafeb8b1349c58
971 .xword 0x0e0872db927678a4
972 .xword 0xf5df01854877c99f
973 .xword 0x0264292aaecaed69
974 .xword 0x1fefb80563d4c760
975 .xword 0xb9d46af64ce8c710
976 .xword 0x3b06307d067905a0
977 .xword 0x8f5983661943f2ff
978 .xword 0x23f1bd9d0627b607
979 .xword 0x4b1512f2c327cefa
980 .xword 0xf4eb3fc632e0ed46
981 .xword 0x0b843f152c754ced
982 .xword 0x9d319700736e906e
983 .xword 0x3200f53fb95d0c83
984 .xword 0xe87baa23f2ea9b61
985 .xword 0x4e074ad9f9def5f2
986 .xword 0x77b1e91b4d5c3164
987 .xword 0x870d816c9aae586b
988 .xword 0x01dd4395d7df3602
989 .xword 0x646852a947768256
990 .xword 0x91ce0169ff5c86d6
991 .xword 0xf392d18f99ba311e
992 .xword 0xdb5fda28619b4e19
993 .xword 0x9967b2bbcab66bc3
994 .xword 0x637a35a0993708eb
995 .xword 0xeb97906133e5d59a
996 .xword 0xada7ce8f5e3da53e
997 .xword 0xeaf49989435e339b
998 .xword 0x855f38789db278cd
999 .xword 0xc9c9c241c2525ed0
1000 .xword 0x9db9f30af160c97a
1001 .xword 0x32ad42cb7d63abc3
1002 .xword 0x805690b7a82dce7a
1003 .xword 0x5b059094b135c4bb
1004 .xword 0xc4527b34756d1e14
1005 .xword 0x17fd2cfd8c873deb
1006 .xword 0xac46f46f0edf9cc2
1007 .xword 0x2a5e43844cf069ac
1008 .xword 0x426d0c23953f8d9c
1009 .xword 0x3d3a2d9e1807bb4c
1010 .xword 0x14e760518bf2821f
1011 .xword 0x9d5747dc69b9a540
1012 .xword 0x591bda52e8b8a265
1013 .xword 0x1fed5a26b7d379bb
1014 .xword 0x86c5d31e20baae0c
1015 .xword 0x5078a9f2a3b97ee8
1016 .xword 0x2e8b572b90745660
1017 .xword 0x19a6b57a103506df
1018 .xword 0x5afedaaec60cd194
1019 .xword 0xa4ea272474d002e8
1020 .xword 0x87ed4894e064b912
1021 .xword 0x5a7016206da56a43
1022 .xword 0xe1dd565ec2d163c1
1023 .xword 0x982c422dc6ad7e85
1024 .xword 0x444a83d80a87db92
1025 .xword 0x45a5e54d68335243
1026 .xword 0xb8a2b7b4ebcfa216
1027 .xword 0x2815e6c9f5cf9105
1028 .xword 0x693d4a3a738a1cee
1029 .xword 0x82ecce3c09d072fd
1030 .xword 0xeb277b0f5e31a5d5
1031 .xword 0x36e53eea3e3b4ed9
1032 .xword 0x1a8484e03aeff22d
1033 .xword 0x1397c7c09f3fd508
1034 .xword 0x67c5df3afef8b6bb
1035 .xword 0xf17fcf56ace93df7
1036 .xword 0x1e433962c3c54273
1037 .xword 0x997cb02838a7872b
1038 .xword 0x9e196d81b9565f0b
1039 .xword 0xad25ebaff289a981
1040 .xword 0x8c809f0d93f69b5f
1041 .xword 0x4d37c02f050b563c
1042 .xword 0xd10d389415cdb4d3
1043 .xword 0xd6cf6a5d42468638
1044 .xword 0x027dca3132632d84
1045 .xword 0x14dda5bb19ea9ade
1046 .xword 0x95721f830bef5196
1047 .xword 0x061fc3ae355f4fff
1048 .xword 0x752b31fffbb9849c
1049 .xword 0x6359eff83ea25a8d
1050 .xword 0xec09bb0acea9e67f
1051 .xword 0x31be1b718f1e99d5
1052 .xword 0x2eb434265bbd7f33
1053 .xword 0x43dbe94a88f79f11
1054 .xword 0xeb897024f7e12e61
1055 .xword 0x37a048b93b78fb03
1056 .xword 0x39df375434d26099
1057 .xword 0x40712cebb6607a4f
1058 .xword 0x5dccdb92d12a6656
1059
1060
1061.text
1062 ta T_GOOD_TRAP
1063.data
1064 .xword 0x0
1065
1066SECTION .HTRAPS
1067.text
1068htrap_5_ext:
1069 rd %pc, %g2
1070 inc %g3
1071 add %g2, htrap_5_ext_done-htrap_5_ext, %g2
1072 rdpr %tl, %g3
1073 rdpr %tstate, %g4
1074 rdhpr %htstate, %g5
1075 inc %g3
1076 wrpr %g3, %tl
1077 wrpr %g2, %tpc
1078 wrpr %g4, %tstate
1079 wrhpr %g5, %htstate
1080 retry
1081htrap_5_ext_done:
1082 done
1083
1084#if 0
1085!!# /*
1086!!# output of /import/bw/tools/local/indra-release/indra,1.4.11/bin/ijpp (indrajal preprocessor) - Tue Mar 30 09:54:34 2004
1087!!# */
1088!!#
1089!!# %%section c_declarations
1090!!#
1091!!#
1092!!# #define HTRAPS 0
1093!!#
1094!!# %%
1095!!# %%section control
1096!!#
1097!!# %%
1098!!# %%section init
1099!!# {
1100!!#
1101!!#
1102!!# IJ_bind_thread_group("diag.j", 24, th0, 0x01);
1103!!#
1104!!# // Random 64 bits //
1105!!# IJ_set_rvar("diag.j", 27, Rv_rand_64,"64'hrrrrrrrr_rrrrrrrr");
1106!!#
1107!!# // Register usage - use 0-27 //
1108!!# // R31 is memory pointer
1109!!# // R30 is trap number register
1110!!# //
1111!!# IJ_set_ropr_fld("diag.j", 33, ijdefault, Ft_Rs1, "5'b0rrrr");
1112!!# IJ_set_ropr_fld("diag.j", 34, ijdefault, Ft_Rs2, "5'b0rrrr");
1113!!# IJ_set_ropr_fld("diag.j", 35, ijdefault, Ft_Rd, "5'b0rrrr");
1114!!#
1115!!# // Load/Store pointer = r31
1116!!# IJ_set_ropr_fld("diag.j", 38, Ro_ldst_ptr, Ft_Rs1, "{31}");
1117!!#
1118!!# // ASI register values
1119!!# IJ_set_ropr_fld("diag.j", 41, Ro_wrasi_i, Ft_Rs1, "{0}");
1120!!# IJ_set_ropr_fld("diag.j", 42, Ro_wrasi_i, Ft_Simm13, "{0x4, 0x10, 0x14, 0x16, 0x45, 0x54}");
1121!!#
1122!!# // General Ldst ASIs to use .. 50% should be illegal ..
1123!!# IJ_set_ropr_fld("diag.j", 45, Ro_nontrap_ldasi, Ft_Imm_Asi, "{0x12,0x14, 0x53..0x64}");
1124!!# IJ_set_ropr_fld("diag.j", 46, Ro_nontrap_ldasi, Ft_Rs1, "{31}");
1125!!# IJ_set_ropr_fld("diag.j", 47, Ro_nontrap_ldasi, Ft_Rs2, "{0}");
1126!!# IJ_set_ropr_fld("diag.j", 48, Ro_nontrap_ldasi, Ft_Simm13, "{0x0}, 6'brr0000");
1127!!#
1128!!# // General Ldst alignment to use .. 50% should be illegal ..
1129!!# IJ_set_ropr_fld("diag.j", 51, Ro_nontrap_ld, Fm_align_Simm13, "{0x0, 0x7}");
1130!!# IJ_set_ropr_fld("diag.j", 52, Ro_nontrap_ld, Ft_Rs1, "{31}");
1131!!# IJ_set_ropr_fld("diag.j", 53, Ro_nontrap_ld, Ft_Rs2, "{0}");
1132!!#
1133!!# // Trap ASI operands
1134!!# IJ_set_ropr_fld("diag.j", 56, Ro_traps_asi, Ft_Imm_Asi, "{0x25, 0x72..0x74}");
1135!!# IJ_set_ropr_fld("diag.j", 57, Ro_traps_asi, Ft_Rs1, "{0}");
1136!!# IJ_set_ropr_fld("diag.j", 58, Ro_traps_asi, Ft_Rs2, "{0}");
1137!!# IJ_set_ropr_fld("diag.j", 59, Ro_traps_asi, Ft_Simm13, "{0x25, 0x72..0x74}");
1138!!#
1139!!# // Trap #s to use
1140!!# IJ_set_ropr_fld("diag.j", 62, Ro_traps_i, Ft_Sw_Trap, "{0x30..0x35 }");
1141!!# IJ_set_ropr_fld("diag.j", 63, Ro_traps_i, Ft_Rs1, "{0}");
1142!!# IJ_set_ropr_fld("diag.j", 64, Ro_traps_i, Ft_Cond_f2, "{0x0 .. 0xf}");
1143!!# IJ_set_ropr_fld("diag.j", 65, Ro_traps_r, Ft_Rs1, "{0}");
1144!!# IJ_set_ropr_fld("diag.j", 66, Ro_traps_r, Ft_Rs2, "{30}");
1145!!# IJ_set_ropr_fld("diag.j", 67, Ro_traps_r, Ft_Cond_f2, "{0x0 .. 0xf}");
1146!!# IJ_set_ropr_fld("diag.j", 68, Ro_traps_r, Ft_Simm13, "{0x30..0x35}");
1147!!# IJ_set_rvar("diag.j", 69, Rv_init_trap, "{0x30..0x35}");
1148!!#
1149!!# // FPRS splash
1150!!# IJ_set_ropr_fld("diag.j", 72, Ro_wrfprs, Ft_Rs1, "{0}");
1151!!# IJ_set_ropr_fld("diag.j", 73, Ro_wrfprs, Ft_Simm13, "{0, 4}");
1152!!#
1153!!# // Weights
1154!!# IJ_set_rvar("diag.j", 76, wt_high, "{6}");
1155!!# IJ_set_rvar("diag.j", 77, wt_med, "{3}");
1156!!# IJ_set_rvar("diag.j", 78, wt_low, "{1}");
1157!!#
1158!!# // Initialize registers ..
1159!!# int i, j, k;
1160!!# IJ_printf ("diag.j", 82, th0,"!Initialializing registers\n");
1161!!# for (k=0; k<3; k++) {
1162!!# for (i = 0; i < 31; i++) {
1163!!# j=i*8;
1164!!# IJ_printf ("diag.j", 86, th0,"\tldx [%%r31+%d], %%r%d\n", j,i);
1165!!# }
1166!!# IJ_printf ("diag.j", 88, th0,"\tsave %%r31, %%r0, %%r31\n");
1167!!# }
1168!!# for (k=0; k<3; k++) {
1169!!# IJ_printf ("diag.j", 91, th0,"\trestore\n");
1170!!# }
1171!!#
1172!!# }
1173!!#
1174!!# %%
1175!!# %%section finish
1176!!# {
1177!!#
1178!!#
1179!!# int i;
1180!!# IJ_printf ("diag.j", 97, th0,"\n\n.data\nuser_data_start:\n");
1181!!# for (i = 0; i < 256; i++) {
1182!!# IJ_printf ("diag.j", 99, th0,"\t.xword\t0x%016llrx\n", Rv_rand_64);
1183!!# }
1184!!#
1185!!# }
1186!!#
1187!!# %%
1188!!# %%section map
1189!!#
1190!!# %%
1191!!# %%section grammar
1192!!#
1193!!#
1194!!# block: inst | block inst
1195!!# {
1196!!# IJ_generate ("diag.j", 390, th0, $2);
1197!!# };
1198!!#
1199!!# inst: trap_asr %rvar wt_low
1200!!# | trap_asi %rvar wt_low
1201!!# | tcc %rvar wt_high
1202!!# | ldst_excp %rvar wt_med
1203!!# | ldstasi_excp %rvar wt_med
1204!!# | change_mode %rvar wt_low
1205!!# | alu %rvar wt_med
1206!!# | br %rvar wt_med
1207!!# | wrasi %rvar wt_low
1208!!# | splash_fprs %rvar wt_low
1209!!# | stores %rvar wt_low
1210!!# ;
1211!!#
1212!!# change_mode :
1213!!# tCHANGE_NONPRIV
1214!!# | tCHANGE_PRIV
1215!!# | tCHANGE_NONHPRIV
1216!!# | tCHANGE_HPRIV
1217!!# ;
1218!!#
1219!!# trap_asr :
1220!!# tRDPR_TPC
1221!!# | tRDPR_TSTATE
1222!!# | tRDPR_TT
1223!!# | tRDPR_TNPC
1224!!# | tRDPR_TBA
1225!!# | tRDPR_TL
1226!!# | tRDHPR_HTBA
1227!!# | tRDHPR_HPSTATE
1228!!# ;
1229!!#
1230!!# splash_fprs :
1231!!# tWRFPRS_I %ropr Ro_wrfprs
1232!!# ;
1233!!#
1234!!# trap_asi :
1235!!# asi_load_r %ropr Ro_traps_asi
1236!!# ;
1237!!#
1238!!# wrasi : tWRASI_I %ropr Ro_wrasi_i
1239!!# ;
1240!!# reg_tcc : tTcc_R %ropr Ro_traps_r
1241!!# {
1242!!# IJ_printf("diag.j", 438, th0, "\tmov 0x%rx, %%r30\n", Rv_init_trap);
1243!!# }
1244!!# ;
1245!!#
1246!!# tcc :
1247!!# tTcc_I %ropr Ro_traps_i
1248!!# | reg_tcc
1249!!#
1250!!# ;
1251!!#
1252!!# ldst_excp : mLDST_EXCP
1253!!# ldds %ropr Ro_nontrap_ld |
1254!!# load_r %ropr Ro_nontrap_ld |
1255!!# load_i %ropr Ro_nontrap_ld
1256!!#
1257!!# ;
1258!!#
1259!!# ldstasi_excp :
1260!!# asi_load_i %ropr Ro_nontrap_ldasi
1261!!# ;
1262!!#
1263!!# ldds: tLDD_R | tLDD_I | tLDDA_I | tLDDA_R
1264!!# ;
1265!!#
1266!!# stores:
1267!!# stds %ropr Ro_ldst_ptr |
1268!!# stfs %ropr Ro_ldst_ptr |
1269!!# stqfs %ropr Ro_ldst_ptr |
1270!!# sts %ropr Ro_ldst_ptr
1271!!# ;
1272!!# stds: tSTDA_R | tSTDA_I | tSTD_R | tSTD_I | tSTDF_R | tSTDF_I
1273!!# ;
1274!!# stfs: tSTF_R | tSTF_I
1275!!# ;
1276!!# stqfs: tSTQF_R | tSTQF_I
1277!!# ;
1278!!# sts: tSTB_R | tSTB_I | tSTH_R | tSTH_I | tSTW_R | tSTW_I | tSTX_R | tSTX_I
1279!!#
1280!!# ;
1281!!#
1282!!# load_r: tLDSB_R | tLDSH_R | tLDSW_R | tLDUB_R | tLDUH_R | tLDUW_R | tLDX_R
1283!!# | tLDQF_R
1284!!# ;
1285!!#
1286!!# load_i: tLDSB_I | tLDSH_I | tLDSW_I | tLDUB_I | tLDUH_I | tLDUW_I | tLDX_I
1287!!# | tLDQFA_I
1288!!# ;
1289!!#
1290!!# asi_load_i: tLDSBA_I | tLDSHA_I | tLDSWA_I | tLDUBA_I | tLDUHA_I | tLDUWA_I
1291!!# | tLDXA_I
1292!!# ;
1293!!#
1294!!# asi_load_r:tLDSBA_R | tLDSHA_R | tLDSWA_R | tLDUBA_R | tLDUHA_R | tLDUWA_R
1295!!# | tLDXA_R
1296!!# ;
1297!!#
1298!!# asi_store_i: tSTBA_I | tSTHA_I | tSTWA_I | tSTXA_I
1299!!# ;
1300!!#
1301!!# asi_store_r: tSTBA_R | tSTHA_R | tSTWA_R | tSTXA_R
1302!!# ;
1303!!#
1304!!# alu :
1305!!# tADD_I | tADDcc_R | tADDcc_I | tADDCcc_I |
1306!!# tMULX_R | tMULX_I | tUMUL_R | tUMULcc_R | tUMULcc_I |
1307!!# tSMULcc_R | tSDIV_I | tSDIV_R | tSDIVX_R | tSDIVX_I | tUDIVX_R |
1308!!# tUDIVX_I | tFDIVs | tFDIVd | tFDIVq | tSWAP_I | tSWAPA_R | tCASA_I |
1309!!# tFSQRTq | tFSQRTd
1310!!# ;
1311!!#
1312!!# br : tBA | tBN | tBNE | tBE | tBG | tBLE | tBGE | tBL | tBGU | tBLEU |
1313!!# tBCC | tBCS | tBPOS | tBNEG | tBVC | tBVS | tBPA | tBPN | tBPNE |
1314!!# tBPE | tBPG | tBPLE | tBPGE | tBPL | tBPGU | tBPLEU | tBPCC | tBPCS |
1315!!# tBPPOS | tBPNEG | tBPVC | tBPVS
1316!!# ;
1317!!#
1318!!#
1319!!#
1320!!#
1321!!# %%
1322!!# %%section cbfunc
1323!!#
1324!!# %%
1325!!# %%section stat
1326!!#
1327!!# %%
1328#endif