Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / uarch / tlu / diag / tlu_rand04_ind_01.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tlu_rand04_ind_01.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!!!!!!!!!!!!!!!!!!!!!!!!!
46!! Disable trap checking
47#define NO_TRAPCHECK
48
49! Enable Traps
50#define ENABLE_T1_Privileged_Opcode_0x11
51#define ENABLE_T1_Fp_Disabled_0x20
52#define ENABLE_HT0_Watchdog_Reset_0x02
53
54#define FILL_TRAP_RETRY
55#define SPILL_TRAP_RETRY
56#define CLEAN_WIN_RETRY
57
58#define My_RED_Mode_Other_Reset
59#define My_RED_Mode_Other_Reset \
60 ba red_other_ext;\
61 nop;retry;nop;nop;nop;nop;nop
62
63#define H_T1_Clean_Window_0x24
64#define SUN_H_T1_Clean_Window_0x24 \
65 rdpr %cleanwin, %g1;\
66 add %g1,1,%g1;\
67 wrpr %g1, %g0, %cleanwin;\
68 retry; nop; nop; nop; nop
69
70#define H_T1_Clean_Window_0x25
71#define SUN_H_T1_Clean_Window_0x25 \
72 rdpr %cleanwin, %g1;\
73 add %g1,1,%g1;\
74 wrpr %g1, %g0, %cleanwin;\
75 retry; nop; nop; nop; nop
76
77#define H_T1_Clean_Window_0x26
78#define SUN_H_T1_Clean_Window_0x26 \
79 rdpr %cleanwin, %g1;\
80 add %g1,1,%g1;\
81 wrpr %g1, %g0, %cleanwin;\
82 retry; nop; nop; nop; nop
83
84#define H_T1_Clean_Window_0x27
85#define SUN_H_T1_Clean_Window_0x27 \
86 rdpr %cleanwin, %g1;\
87 add %g1,1,%g1;\
88 wrpr %g1, %g0, %cleanwin;\
89 retry; nop; nop; nop; nop
90
91#define H_T0_Window_Fill_0_Other_Trap
92#define SUN_H_T0_Window_Fill_0_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
93
94#define H_T0_Window_Fill_1_Other_Trap
95#define SUN_H_T0_Window_Fill_1_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
96
97#define H_T0_Window_Fill_2_Other_Trap
98#define SUN_H_T0_Window_Fill_2_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
99
100#define H_T0_Window_Fill_3_Other_Trap
101#define SUN_H_T0_Window_Fill_3_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
102
103#define H_T0_Window_Fill_4_Other_Trap
104#define SUN_H_T0_Window_Fill_4_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
105
106#define H_T0_Window_Fill_5_Other_Trap
107#define SUN_H_T0_Window_Fill_5_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
108
109#define H_T0_Window_Fill_6_Other_Trap
110#define SUN_H_T0_Window_Fill_6_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
111
112#define H_T0_Window_Fill_7_Other_Trap
113#define SUN_H_T0_Window_Fill_7_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
114
115#define H_T1_Window_Spill_0_Normal_0x80
116#define SUN_H_T1_Window_Spill_0_Normal_0x80 saved; retry; nop;nop;nop;nop;nop;nop;
117
118#define H_T1_Window_Spill_1_Normal_0x84
119#define SUN_H_T1_Window_Spill_1_Normal_0x84 saved; retry; nop;nop;nop;nop;nop;nop;
120
121#define H_T1_Window_Spill_2_Normal_0x88
122#define SUN_H_T1_Window_Spill_2_Normal_0x88 saved; retry; nop;nop;nop;nop;nop;nop;
123
124#define H_T1_Window_Spill_3_Normal_0x8c
125#define SUN_H_T1_Window_Spill_3_Normal_0x8c saved; retry; nop;nop;nop;nop;nop;nop;
126
127#define H_T1_Window_Spill_4_Normal_0x90
128#define SUN_H_T1_Window_Spill_4_Normal_0x90 saved; retry; nop;nop;nop;nop;nop;nop;
129
130#define H_T1_Window_Spill_5_Normal_0x94
131#define SUN_H_T1_Window_Spill_5_Normal_0x94 saved; retry; nop;nop;nop;nop;nop;nop;
132
133#define H_T1_Window_Spill_6_Normal_0x98
134#define SUN_H_T1_Window_Spill_6_Normal_0x98 saved; retry; nop;nop;nop;nop;nop;nop;
135
136#define H_T1_Window_Spill_7_Normal_0x9c
137#define SUN_H_T1_Window_Spill_7_Normal_0x9c saved; retry; nop;nop;nop;nop;nop;nop;
138
139#define H_T1_Window_Spill_0_Other_0xa0
140#define SUN_H_T1_Window_Spill_0_Other_0xa0 saved; retry; nop;nop;nop;nop;nop;nop;
141
142#define H_T1_Window_Spill_1_Other_0xa4
143#define SUN_H_T1_Window_Spill_1_Other_0xa4 saved; retry; nop;nop;nop;nop;nop;nop;
144
145#define H_T1_Window_Spill_2_Other_0xa8
146#define SUN_H_T1_Window_Spill_2_Other_0xa8 saved; retry; nop;nop;nop;nop;nop;nop;
147
148#define H_T1_Window_Spill_3_Other_0xac
149#define SUN_H_T1_Window_Spill_3_Other_0xac saved; retry; nop;nop;nop;nop;nop;nop;
150
151#define H_T1_Window_Spill_4_Other_0xb0
152#define SUN_H_T1_Window_Spill_4_Other_0xb0 saved; retry; nop;nop;nop;nop;nop;nop;
153
154#define H_T1_Window_Spill_5_Other_0xb4
155#define SUN_H_T1_Window_Spill_5_Other_0xb4 saved; retry; nop;nop;nop;nop;nop;nop;
156
157#define H_T1_Window_Spill_6_Other_0xb8
158#define SUN_H_T1_Window_Spill_6_Other_0xb8 saved; retry; nop;nop;nop;nop;nop;nop;
159
160#define H_T1_Window_Spill_7_Other_0xbc
161#define SUN_H_T1_Window_Spill_7_Other_0xbc saved; retry; nop;nop;nop;nop;nop;nop;
162
163#define H_T1_Window_Fill_0_Normal_0xc0
164#define SUN_H_T1_Window_Fill_0_Normal_0xc0 restored; retry; nop;nop;nop;nop;nop;nop;
165
166#define H_T1_Window_Fill_1_Normal_0xc4
167#define SUN_H_T1_Window_Fill_1_Normal_0xc4 restored; retry; nop;nop;nop;nop;nop;nop;
168
169#define H_T1_Window_Fill_2_Normal_0xc8
170#define SUN_H_T1_Window_Fill_2_Normal_0xc8 restored; retry; nop;nop;nop;nop;nop;nop;
171
172#define H_T1_Window_Fill_3_Normal_0xcc
173#define SUN_H_T1_Window_Fill_3_Normal_0xcc restored; retry; nop;nop;nop;nop;nop;nop;
174
175#define H_T1_Window_Fill_4_Normal_0xd0
176#define SUN_H_T1_Window_Fill_4_Normal_0xd0 restored; retry; nop;nop;nop;nop;nop;nop;
177
178#define H_T1_Window_Fill_5_Normal_0xd4
179#define SUN_H_T1_Window_Fill_5_Normal_0xd4 restored; retry; nop;nop;nop;nop;nop;nop;
180
181#define H_T1_Window_Fill_6_Normal_0xd8
182#define SUN_H_T1_Window_Fill_6_Normal_0xd8 restored; retry; nop;nop;nop;nop;nop;nop;
183
184#define H_T1_Window_Fill_7_Normal_0xdc
185#define SUN_H_T1_Window_Fill_7_Normal_0xdc restored; retry; nop;nop;nop;nop;nop;nop;
186
187#define H_T1_Window_Fill_0_Other_0xe0
188#define SUN_H_T1_Window_Fill_0_Other_0xe0 restored; retry; nop;nop;nop;nop;nop;nop;
189
190#define H_T1_Window_Fill_1_Other_0xe4
191#define SUN_H_T1_Window_Fill_1_Other_0xe4 restored; retry; nop;nop;nop;nop;nop;nop;
192
193#define H_T1_Window_Fill_2_Other_0xe8
194#define SUN_H_T1_Window_Fill_2_Other_0xe8 restored; retry; nop;nop;nop;nop;nop;nop;
195
196#define H_T1_Window_Fill_3_Other_0xec
197#define SUN_H_T1_Window_Fill_3_Other_0xec restored; retry; nop;nop;nop;nop;nop;nop;
198
199#define H_T1_Window_Fill_4_Other_0xf0
200#define SUN_H_T1_Window_Fill_4_Other_0xf0 restored; retry; nop;nop;nop;nop;nop;nop;
201
202#define H_T1_Window_Fill_5_Other_0xf4
203#define SUN_H_T1_Window_Fill_5_Other_0xf4 restored; retry; nop;nop;nop;nop;nop;nop;
204
205#define H_T1_Window_Fill_6_Other_0xf8
206#define SUN_H_T1_Window_Fill_6_Other_0xf8 restored; retry; nop;nop;nop;nop;nop;nop;
207
208#define H_T1_Window_Fill_7_Other_0xfc
209#define SUN_H_T1_Window_Fill_7_Other_0xfc restored; retry; nop;nop;nop;nop;nop;nop;
210
211#define H_T0_Trap_Instruction_0
212#define My_T0_Trap_Instruction_0 \
213 rdpr %tnpc, %g2; \
214 save %i7, %g0, %i7; \
215 wrpr %g2, %tpc; \
216 add %g2, 4, %g2;\
217 wrpr %g2, %tnpc; \
218 restore %i7, %g0, %i7; \
219 stw %g2, [%i7];\
220 retry
221#define H_T0_Trap_Instruction_1
222#define My_T0_Trap_Instruction_1 \
223 umul %o4, 2, %o5;\
224 rdpr %tnpc, %g2; \
225 wrpr %g2, %tpc; \
226 add %g2, 4, %g2;\
227 wrpr %g2, %tnpc; \
228 stw %g2, [%i7];\
229 illtrap;\
230 retry
231#define H_T0_Trap_Instruction_2
232#define My_T0_Trap_Instruction_2 \
233 inc %o3;\
234 umul %o3, 2, %o4;\
235 ba 1f; \
236 save %i7, %g0, %i7; \
237 2: done; \
238 nop; \
239 1: ba 2b; \
240 restore %i7, %g0, %i7
241#define H_T0_Trap_Instruction_3
242#define My_T0_Trap_Instruction_3 \
243 inc %l3;\
244 inc %o3;\
245 umul %o3, 2, %o4;\
246 stw %o4, [%i7];\
247 save %i7, %g0, %i7 ;\
248 restore %i7, %g0, %i7 ;\
249 done ;\
250 nop;
251#define H_T0_Trap_Instruction_4
252#define My_T0_Trap_Instruction_4 \
253 umul %i4, 2, %l5;\
254 inc %o1;\
255 rdpr %tnpc, %g2; \
256 wrpr %g2, %tpc; \
257 add %g2, 4, %g2;\
258 wrpr %g2, %tnpc; \
259 retry ;\
260 illtrap
261#define H_T0_Trap_Instruction_5
262#define My_T0_Trap_Instruction_5 \
263 umul %i7, 2, %l1;\
264 inc %o5;\
265 rdpr %tnpc, %g2; \
266 wrpr %g2, %tpc; \
267 add %g2, 4, %g2;\
268 wrpr %g2, %tnpc; \
269 sdiv %r2, %r10, %r0; \
270 retry
271
272#define H_T1_Trap_Instruction_0
273#define My_T1_Trap_Instruction_0 \
274 inc %o4;\
275 umul %o4, 2, %o5;\
276 ba 3f; \
277 save %i7, %g0, %i7; \
278 4: done; \
279 nop; \
280 3: ba 4b; \
281 restore %i7, %g0, %i7
282#define H_T1_Trap_Instruction_1
283#define My_T1_Trap_Instruction_1 \
284 umul %o4, 2, %o5;\
285 rdpr %tnpc, %g2; \
286 wrpr %g2, %tpc; \
287 add %g2, 4, %g2;\
288 stw %g2, [%i7];\
289 wrpr %g2, %tnpc; \
290 restore %i7, %g0, %i7 ;;\
291 retry
292#define H_T1_Trap_Instruction_2
293#define My_T1_Trap_Instruction_2 \
294 inc %o3;\
295 umul %o3, 2, %o4;\
296 ba 5f; \
297 save %i7, %g0, %i7; \
298 6: done; \
299 nop; \
300 5: ba 6b; \
301 restore %i7, %g0, %i7
302#define H_T1_Trap_Instruction_3
303#define My_T1_Trap_Instruction_3 \
304 inc %l3;\
305 inc %o3;\
306 umul %o3, 2, %o4;\
307 inc %i3;\
308 save %i7, %g0, %i7 ;\
309 restore %i7, %g0, %i7 ;\
310 done ;\
311 nop;
312#define H_T1_Trap_Instruction_4
313#define My_T1_Trap_Instruction_4 \
314 umul %i4, 2, %l5;\
315 rdpr %tnpc, %g2; \
316 wrpr %g2, %tpc; \
317 stw %g2, [%i7];\
318 add %g2, 4, %g2;\
319 wrpr %g2, %tnpc; \
320 retry ;\
321 illtrap
322#define H_T1_Trap_Instruction_5
323#define My_T1_Trap_Instruction_5 \
324 umul %i7, 2, %l1;\
325 inc %o5;\
326 rdpr %tnpc, %g2; \
327 wrpr %g2, %tpc; \
328 add %g2, 4, %g2;\
329 wrpr %g2, %tnpc; \
330 sdiv %r2, %r10, %r0; \
331 retry
332
333#define H_HT0_Trap_Instruction_0
334#define My_HT0_Trap_Instruction_0 \
335 rd %asi, %g2;\
336 mov 8, %g3;\
337 stxa %g3, [%g0] 0x57;\
338 stw %g2, [%i7];\
339 done;\
340 nop;nop;nop
341
342#define H_HT0_Trap_Instruction_1
343#define My_HT0_Trap_Instruction_1 \
344 rd %asi, %g2;\
345 mov 8, %g3;\
346 stxa %g3, [%g0] 0x5f;\
347 done;\
348 nop;nop;nop;nop
349#define H_HT0_Trap_Instruction_2
350#define My_HT0_Trap_Instruction_2 \
351 umul %i6, 2, %l4;\
352 stw %l4, [%i7];\
353 rdpr %tnpc, %g2; \
354 wrpr %g2, %tpc; \
355 add %g2, 4, %g2;\
356 wrpr %g2, %tnpc; \
357 sdiv %r2, %r0, %r0; \
358 retry
359#define H_HT0_Trap_Instruction_3
360#define My_HT0_Trap_Instruction_3 \
361 umul %i5, 3, %l3;\
362 inc %o6;\
363 illtrap ;\
364 rdpr %tnpc, %g2; \
365 wrpr %g2, %tpc; \
366 add %g2, 4, %g2;\
367 wrpr %g2, %tnpc; \
368 retry
369#define H_HT0_Trap_Instruction_4
370#define My_HT0_Trap_Instruction_4 \
371 rdpr %tnpc, %g2; \
372 save %i7, %g0, %i7; \
373 wrpr %g2, %tpc; \
374 add %g2, 4, %g2;\
375 stw %g2, [%i7];\
376 wrpr %g2, %tnpc; \
377 restore %i7, %g0, %i7 ;\
378 retry
379#define H_HT0_Trap_Instruction_5
380#define My_HT0_Trap_Instruction_5 \
381 ba htrap_5_ext;\
382 nop; retry;\
383 nop; nop; nop; nop; nop
384
385#define H_HT0_Mem_Address_Not_Aligned_0x34
386#define My_HT0_Mem_Address_Not_Aligned_0x34 \
387 umul %i7, 4, %g1;\
388 inc %o6;\
389 umul %i4, 3, %l3;\
390 inc %g6;\
391 save %i7, %g0, %i7 ;\
392 restore %i7, %g0, %i7 ;\
393 done ;\
394 nop;
395#define H_HT0_Illegal_instruction_0x10
396#define My_HT0_Illegal_instruction_0x10 \
397 umul %i0, 4, %g1;\
398 inc %o6;\
399 ba 7f; \
400 rdhpr %htstate, %g3;\
401 8: done; \
402 7: ba 8b;\
403 wrhpr %g3, 1, %htstate;nop
404
405#define H_HT0_DAE_so_page_0x30
406#define My_HT0_DAE_so_page_0x30 \
407 umul %i5, 4, %g5;\
408 inc %g6;\
409 save %i7, %g0, %i7; \
410 restore %i7, %g0, %i7;\
411 rd %fprs, %g2; \
412 wr %g2, 0x4, %fprs ;\
413 done; \
414 nop;
415#define H_HT0_DAE_invalid_asi_0x14
416#define SUN_H_HT0_DAE_invalid_asi_0x14 \
417 umul %i5, 4, %g5;\
418 inc %g6;\
419 save %i7, %g0, %i7; \
420 restore %i7, %g0, %i7;\
421 rd %fprs, %g2; \
422 wr %g2, 0x4, %fprs ;\
423 done; \
424 nop;
425#define H_HT0_DAE_privilege_violation_0x15
426#define SUN_H_HT0_DAE_privilege_violation_0x15 \
427 umul %i5, 4, %g5;\
428 inc %g6;\
429 save %i7, %g0, %i7; \
430 restore %i7, %g0, %i7;\
431 rd %fprs, %g2; \
432 wr %g2, 0x4, %fprs ;\
433 done; \
434 nop;
435#define H_HT0_Privileged_Action_0x37
436#define My_HT0_Privileged_Action_0x37 \
437 inc %l5;\
438 dec %g3;\
439 umul %i5, 4, %g5;\
440 save %i7, %g0, %i7; \
441 restore %i7, %g0, %i7;\
442 done; \
443 nop; nop
444#define H_HT0_Lddf_Mem_Address_Not_Aligned_0x35
445#define My_HT0_Lddf_Mem_Address_Not_Aligned_0x35 \
446 inc %l5;\
447 dec %g3;\
448 rdpr %tpc, %g2; \
449 add %g2, 0x4, %g2; \
450 wrpr %g2, %tpc; \
451 add %g2, 0x4, %g2; \
452 wrpr %g2, %tnpc; \
453 retry
454#define H_HT0_Stdf_Mem_Address_Not_Aligned_0x36
455#define My_HT0_Stdf_Mem_Address_Not_Aligned_0x36 \
456 inc %l5;\
457 dec %g3;\
458 rdpr %tpc, %g2; \
459 add %g2, 0x4, %g2; \
460 wrpr %g2, %tpc; \
461 add %g2, 0x4, %g2; \
462 wrpr %g2, %tnpc; \
463 retry
464#define H_HT0_Fp_exception_other_0x22
465#define My_HT0_Fp_exception_other_0x22 \
466 inc %l6;\
467 dec %g5;\
468 umul %i5, 4, %g2;\
469 save %i7, %g0, %i7; \
470 restore %i7, %g0, %i7;\
471 stw %g2, [%i7];\
472 done; \
473 nop
474#define H_HT0_Division_By_Zero
475#define My_HT0_Division_By_Zero \
476 inc %l6;\
477 dec %g5;\
478 umul %i5, 4, %g2;\
479 save %i7, %g0, %i7; \
480 restore %i7, %g0, %i7;\
481 done; \
482 nop; nop
483#define H_T0_Division_By_Zero
484#define My_T0_Division_By_Zero \
485 inc %l6;\
486 dec %g5;\
487 umul %i5, 4, %g2;\
488 save %i7, %g0, %i7; \
489 restore %i7, %g0, %i7;\
490 done; \
491 nop; nop
492#define H_T1_Division_By_Zero_0x28
493#define My_H_T1_Division_By_Zero_0x28 \
494 inc %l6;\
495 dec %g5;\
496 umul %i5, 4, %g2;\
497 save %i7, %g0, %i7; \
498 restore %i7, %g0, %i7;\
499 done; \
500 nop; nop
501
502#define H_T0_Division_By_Zero
503#define My_T0_Division_By_Zero\
504 inc %l6;\
505 dec %g5;\
506 umul %i5, 4, %g2;\
507 save %i7, %g0, %i7; \
508 restore %i7, %g0, %i7;\
509 done; \
510 nop; nop
511
512#define H_T1_Fp_Exception_Other_0x22
513#define My_H_T1_Fp_Exception_Other_0x22 \
514 inc %l6;\
515 dec %g5;\
516 umul %i5, 4, %g2;\
517 save %i7, %g0, %i7; \
518 restore %i7, %g0, %i7;\
519 done; \
520 nop; nop
521#define H_T1_Privileged_Opcode_0x11
522#define SUN_H_T1_Privileged_Opcode_0x11 \
523 inc %l6;\
524 dec %g5;\
525 stw %g5, [%i7];\
526 umul %i5, 4, %g2;\
527 restore %i7, %g0, %i7;\
528 save %i7, %g0, %i7; \
529 done; \
530 nop;
531
532#define H_HT0_Privileged_opcode_0x11
533#define My_HT0_Privileged_opcode_0x11 \
534 xor %i0, %l1, %g1;\
535 and %g1, 0xf, %g1; \
536 ba hh11_1; \
537 not %g0, %g2; \
538 hh11_2: done; \
539 hh11_1: xor %g1, %g2, %g2; \
540 ba hh11_2; \
541 jmp %g2;
542
543#define H_HT0_Fp_disabled_0x20
544#define My_HT0_Fp_disabled_0x20 \
545 mov 0x4, %g2 ;\
546 wr %g2, 0x0, %fprs ;\
547 sllx %g2, 10, %g3; \
548 rdpr %tstate, %g2;\
549 or %g2, %g3, %g2 ;\
550 stw %g2, [%i7];\
551 wrpr %g2, 0x0, %tstate;\
552 retry;
553
554#define H_T0_Fp_disabled_0x20
555#define My_T0_Fp_disabled_0x20 \
556 mov 0x4, %g2 ;\
557 wr %g2, 0x0, %fprs ;\
558 sllx %g2, 10, %g3; \
559 rdpr %tstate, %g2;\
560 or %g2, %g3, %g2 ;\
561 wrpr %g2, 0x0, %tstate;\
562 retry; nop
563
564#define H_T1_Fp_Disabled_0x20
565#define My_H_T1_Fp_Disabled_0x20 \
566 mov 0x4, %g2 ;\
567 wr %g2, 0x0, %fprs ;\
568 sllx %g2, 10, %g3; \
569 rdpr %tstate, %g2;\
570 or %g2, %g3, %g2 ;\
571 wrpr %g2, 0x0, %tstate;\
572 stw %g2, [%i7];\
573 retry
574
575#define H_HT0_Watchdog_Reset_0x02
576#define My_HT0_Watchdog_Reset_0x02 \
577 ba wdog_2_ext;\
578 nop;retry;nop;nop;nop;nop;nop
579
580#define H_T0_Privileged_opcode_0x11
581#define My_T0_Privileged_opcode_0x11 \
582 xor %i0, %l1, %g1;\
583 and %g1, 0xf, %g1; \
584 ba h11_1; \
585 not %g0, %g2; \
586 h11_2: done; \
587 h11_1: xor %g1, %g2, %g2; \
588 ba h11_2; \
589 jmp %g2;
590
591#define H_T1_Fp_exception_other_0x22
592#define My_T1_Fp_exception_other_0x22 \
593 inc %l6;\
594 dec %g5;\
595 umul %i5, 4, %g2;\
596 restore %i7, %g0, %i7 ; \
597 save %i7, %g0, %i7; \
598 restore %i7, %g0, %i7;\
599 ldx [%g2], %g2;\
600 done;
601
602#define H_T0_Fp_exception_other_0x22
603#define My_T0_Fp_exception_other_0x22 \
604 inc %l6;\
605 dec %g5;\
606 umul %i5, 4, %g2;\
607 save %i7, %g0, %i7; \
608 restore %i7, %g0, %i7;\
609 stw %g2, [%i7];\
610 done; \
611 nop
612
613#define H_HT0_Trap_Level_Zero_0x5f
614#define My_HT0_Trap_Level_Zero_0x5f \
615 not %g0, %g2; \
616 rdhpr %hpstate, %g3;\
617 jmp %g2;\
618 rdhpr %htstate, %g3;\
619 and %g3, 0xfe, %g3;\
620 wrhpr %g3, 0, %htstate;\
621 stw %g2, [%i7];\
622 retry
623
624#define My_Watchdog_Reset
625#define My_Watchdog_Reset \
626 ba wdog_red_ext;\
627 nop;retry;nop;nop;nop;nop;nop
628
629
630#define H_HT0_Instruction_address_range_0x0d
631#define SUN_H_HT0_Instruction_address_range_0x0d \
632 done;nop
633
634#define H_HT0_mem_address_range_0x2e
635#define SUN_H_HT0_mem_address_range_0x2e \
636 done;nop
637
638
639!!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!!
640
641#include "hboot.s"
642.text
643.global main
644main:
645
646 ! Set up ld/st area per thread
647 ta T_RD_THID ! Result in %o1 = r9
648 umul %r9, 256, %r31
649 setx user_data_start, %r1, %r3
650 add %r31, %r3, %r31
651 wr %r0, 0x4, %asi
652
653!Initializing integer registers
654 ldx [%r31+0], %r0
655 ldx [%r31+8], %r1
656 ldx [%r31+16], %r2
657 ldx [%r31+24], %r3
658 ldx [%r31+32], %r4
659 ldx [%r31+40], %r5
660 ldx [%r31+48], %r6
661 ldx [%r31+56], %r7
662 ldx [%r31+64], %r8
663 ldx [%r31+72], %r9
664 ldx [%r31+80], %r10
665 ldx [%r31+88], %r11
666 ldx [%r31+96], %r12
667 ldx [%r31+104], %r13
668 ldx [%r31+112], %r14
669 mov %r31, %r15
670 ldx [%r31+128], %r16
671 ldx [%r31+136], %r17
672 ldx [%r31+144], %r18
673 ldx [%r31+152], %r19
674 ldx [%r31+160], %r20
675 ldx [%r31+168], %r21
676 ldx [%r31+176], %r22
677 ldx [%r31+184], %r23
678 ldx [%r31+192], %r24
679 ldx [%r31+200], %r25
680 ldx [%r31+208], %r26
681 ldx [%r31+216], %r27
682 ldx [%r31+224], %r28
683 ldx [%r31+232], %r29
684 mov 0x31, %r14
685 mov 0x33, %r30
686 save %r31, %r0, %r31
687 ldx [%r31+0], %r0
688 ldx [%r31+8], %r1
689 ldx [%r31+16], %r2
690 ldx [%r31+24], %r3
691 ldx [%r31+32], %r4
692 ldx [%r31+40], %r5
693 ldx [%r31+48], %r6
694 ldx [%r31+56], %r7
695 ldx [%r31+64], %r8
696 ldx [%r31+72], %r9
697 ldx [%r31+80], %r10
698 ldx [%r31+88], %r11
699 ldx [%r31+96], %r12
700 ldx [%r31+104], %r13
701 ldx [%r31+112], %r14
702 mov %r31, %r15
703 ldx [%r31+128], %r16
704 ldx [%r31+136], %r17
705 ldx [%r31+144], %r18
706 ldx [%r31+152], %r19
707 ldx [%r31+160], %r20
708 ldx [%r31+168], %r21
709 ldx [%r31+176], %r22
710 ldx [%r31+184], %r23
711 ldx [%r31+192], %r24
712 ldx [%r31+200], %r25
713 ldx [%r31+208], %r26
714 ldx [%r31+216], %r27
715 ldx [%r31+224], %r28
716 ldx [%r31+232], %r29
717 mov 0xb5, %r14
718 mov 0x32, %r30
719 save %r31, %r0, %r31
720 ldx [%r31+0], %r0
721 ldx [%r31+8], %r1
722 ldx [%r31+16], %r2
723 ldx [%r31+24], %r3
724 ldx [%r31+32], %r4
725 ldx [%r31+40], %r5
726 ldx [%r31+48], %r6
727 ldx [%r31+56], %r7
728 ldx [%r31+64], %r8
729 ldx [%r31+72], %r9
730 ldx [%r31+80], %r10
731 ldx [%r31+88], %r11
732 ldx [%r31+96], %r12
733 ldx [%r31+104], %r13
734 ldx [%r31+112], %r14
735 mov %r31, %r15
736 ldx [%r31+128], %r16
737 ldx [%r31+136], %r17
738 ldx [%r31+144], %r18
739 ldx [%r31+152], %r19
740 ldx [%r31+160], %r20
741 ldx [%r31+168], %r21
742 ldx [%r31+176], %r22
743 ldx [%r31+184], %r23
744 ldx [%r31+192], %r24
745 ldx [%r31+200], %r25
746 ldx [%r31+208], %r26
747 ldx [%r31+216], %r27
748 ldx [%r31+224], %r28
749 ldx [%r31+232], %r29
750 mov 0xb2, %r14
751 mov 0x31, %r30
752 save %r31, %r0, %r31
753 ldx [%r31+0], %r0
754 ldx [%r31+8], %r1
755 ldx [%r31+16], %r2
756 ldx [%r31+24], %r3
757 ldx [%r31+32], %r4
758 ldx [%r31+40], %r5
759 ldx [%r31+48], %r6
760 ldx [%r31+56], %r7
761 ldx [%r31+64], %r8
762 ldx [%r31+72], %r9
763 ldx [%r31+80], %r10
764 ldx [%r31+88], %r11
765 ldx [%r31+96], %r12
766 ldx [%r31+104], %r13
767 ldx [%r31+112], %r14
768 mov %r31, %r15
769 ldx [%r31+128], %r16
770 ldx [%r31+136], %r17
771 ldx [%r31+144], %r18
772 ldx [%r31+152], %r19
773 ldx [%r31+160], %r20
774 ldx [%r31+168], %r21
775 ldx [%r31+176], %r22
776 ldx [%r31+184], %r23
777 ldx [%r31+192], %r24
778 ldx [%r31+200], %r25
779 ldx [%r31+208], %r26
780 ldx [%r31+216], %r27
781 ldx [%r31+224], %r28
782 ldx [%r31+232], %r29
783 mov 0xb2, %r14
784 mov 0x30, %r30
785 save %r31, %r0, %r31
786 ldx [%r31+0], %r0
787 ldx [%r31+8], %r1
788 ldx [%r31+16], %r2
789 ldx [%r31+24], %r3
790 ldx [%r31+32], %r4
791 ldx [%r31+40], %r5
792 ldx [%r31+48], %r6
793 ldx [%r31+56], %r7
794 ldx [%r31+64], %r8
795 ldx [%r31+72], %r9
796 ldx [%r31+80], %r10
797 ldx [%r31+88], %r11
798 ldx [%r31+96], %r12
799 ldx [%r31+104], %r13
800 ldx [%r31+112], %r14
801 mov %r31, %r15
802 ldx [%r31+128], %r16
803 ldx [%r31+136], %r17
804 ldx [%r31+144], %r18
805 ldx [%r31+152], %r19
806 ldx [%r31+160], %r20
807 ldx [%r31+168], %r21
808 ldx [%r31+176], %r22
809 ldx [%r31+184], %r23
810 ldx [%r31+192], %r24
811 ldx [%r31+200], %r25
812 ldx [%r31+208], %r26
813 ldx [%r31+216], %r27
814 ldx [%r31+224], %r28
815 ldx [%r31+232], %r29
816 mov 0xb3, %r14
817 mov 0x32, %r30
818 save %r31, %r0, %r31
819 ldx [%r31+0], %r0
820 ldx [%r31+8], %r1
821 ldx [%r31+16], %r2
822 ldx [%r31+24], %r3
823 ldx [%r31+32], %r4
824 ldx [%r31+40], %r5
825 ldx [%r31+48], %r6
826 ldx [%r31+56], %r7
827 ldx [%r31+64], %r8
828 ldx [%r31+72], %r9
829 ldx [%r31+80], %r10
830 ldx [%r31+88], %r11
831 ldx [%r31+96], %r12
832 ldx [%r31+104], %r13
833 ldx [%r31+112], %r14
834 mov %r31, %r15
835 ldx [%r31+128], %r16
836 ldx [%r31+136], %r17
837 ldx [%r31+144], %r18
838 ldx [%r31+152], %r19
839 ldx [%r31+160], %r20
840 ldx [%r31+168], %r21
841 ldx [%r31+176], %r22
842 ldx [%r31+184], %r23
843 ldx [%r31+192], %r24
844 ldx [%r31+200], %r25
845 ldx [%r31+208], %r26
846 ldx [%r31+216], %r27
847 ldx [%r31+224], %r28
848 ldx [%r31+232], %r29
849 mov 0x32, %r14
850 mov 0xb2, %r30
851 save %r31, %r0, %r31
852 ldx [%r31+0], %r0
853 ldx [%r31+8], %r1
854 ldx [%r31+16], %r2
855 ldx [%r31+24], %r3
856 ldx [%r31+32], %r4
857 ldx [%r31+40], %r5
858 ldx [%r31+48], %r6
859 ldx [%r31+56], %r7
860 ldx [%r31+64], %r8
861 ldx [%r31+72], %r9
862 ldx [%r31+80], %r10
863 ldx [%r31+88], %r11
864 ldx [%r31+96], %r12
865 ldx [%r31+104], %r13
866 ldx [%r31+112], %r14
867 mov %r31, %r15
868 ldx [%r31+128], %r16
869 ldx [%r31+136], %r17
870 ldx [%r31+144], %r18
871 ldx [%r31+152], %r19
872 ldx [%r31+160], %r20
873 ldx [%r31+168], %r21
874 ldx [%r31+176], %r22
875 ldx [%r31+184], %r23
876 ldx [%r31+192], %r24
877 ldx [%r31+200], %r25
878 ldx [%r31+208], %r26
879 ldx [%r31+216], %r27
880 ldx [%r31+224], %r28
881 ldx [%r31+232], %r29
882 mov 0xb3, %r14
883 mov 0xb5, %r30
884 save %r31, %r0, %r31
885 restore
886 restore
887 restore
888!Initializing float registers
889 ldd [%r31+0], %f0
890 ldd [%r31+16], %f2
891 ldd [%r31+32], %f4
892 ldd [%r31+48], %f6
893 ldd [%r31+64], %f8
894 ldd [%r31+80], %f10
895 ldd [%r31+96], %f12
896 ldd [%r31+112], %f14
897 ldd [%r31+128], %f16
898 ldd [%r31+144], %f18
899 ldd [%r31+160], %f20
900 ldd [%r31+176], %f22
901 ldd [%r31+192], %f24
902 ldd [%r31+208], %f26
903 ldd [%r31+224], %f28
904 ldd [%r31+240], %f30
905 ta T_CHANGE_HPRIV
906!Initializing Tick Cmprs
907 mov 1, %g2
908 sllx %g2, 63, %g2
909 or %g1, %g2, %g1
910 wrhpr %g1, %g0, %hsys_tick_cmpr
911 wr %g1, %g0, %tick_cmpr
912 wr %g1, %g0, %sys_tick_cmpr
913!Initializing Trap Stack
914 wrpr 0x1, %tl
915 wrpr 0x1, %tt
916 wrpr 0x1, %tpc
917 wrpr 0x1, %tnpc
918 wrpr 0x1, %tstate
919 wrhpr 0x1, %htstate
920 wrpr 0x2, %tl
921 wrpr 0x1, %tt
922 wrpr 0x1, %tpc
923 wrpr 0x1, %tnpc
924 wrpr 0x1, %tstate
925 wrhpr 0x1, %htstate
926 wrpr 0x3, %tl
927 wrpr 0x1, %tt
928 wrpr 0x1, %tpc
929 wrpr 0x1, %tnpc
930 wrpr 0x1, %tstate
931 wrhpr 0x1, %htstate
932 wrpr 0x4, %tl
933 wrpr 0x1, %tt
934 wrpr 0x1, %tpc
935 wrpr 0x1, %tnpc
936 wrpr 0x1, %tstate
937 wrhpr 0x1, %htstate
938 wrpr 0x5, %tl
939 wrpr 0x1, %tt
940 wrpr 0x1, %tpc
941 wrpr 0x1, %tnpc
942 wrpr 0x1, %tstate
943 wrhpr 0x1, %htstate
944 wrpr 0x6, %tl
945 wrpr 0x1, %tt
946 wrpr 0x1, %tpc
947 wrpr 0x1, %tnpc
948 wrpr 0x1, %tstate
949 wrhpr 0x1, %htstate
950 wrpr 0x0, %tl
951 ta T_CHANGE_NONHPRIV
952splash_htba_0:
953 ta T_CHANGE_HPRIV
954 set 0x00390000, %r2
955 .word 0x91d02033 ! 1: Tcc_I ta icc_or_xcc, %r0 + 51
956 .word 0x8d9020c4 ! 2: WRPR_PSTATE_I wrpr %r0, 0x00c4, %pstate
957 .word 0x89a009c7 ! 3: FDIVd fdivd %f0, %f38, %f4
958 .word 0x87802089 ! 4: WRASI_I wr %r0, 0x0089, %asi
959 .word 0x9b500000 ! 5: RDPR_TPC rdpr %tpc, %r13
960 .word 0x8d902a56 ! 6: WRPR_PSTATE_I wrpr %r0, 0x0a56, %pstate
961 .word 0x91d02030 ! 7: Tcc_I ta icc_or_xcc, %r0 + 48
962 .word 0x8f514000 ! 8: RDPR_TBA rdpr %tba, %r7
963 .word 0x8198234c ! 9: WRHPR_HPSTATE_I wrhpr %r0, 0x034c, %hpstate
964 .word 0xceffc027 ! 10: SWAPA_R swapa %r7, [%r31 + %r7] 0x01
965 .word 0x81982ad4 ! 11: WRHPR_HPSTATE_I wrhpr %r0, 0x0ad4, %hpstate
966 .word 0x8198240c ! 12: WRHPR_HPSTATE_I wrhpr %r0, 0x040c, %hpstate
967 .word 0xa1902003 ! 13: WRPR_GL_I wrpr %r0, 0x0003, %-
968 .word 0x91d02033 ! 14: Tcc_I ta icc_or_xcc, %r0 + 51
969 .word 0xcfe7c027 ! 15: CASA_I casa [%r31] 0x 1, %r7, %r7
970 .word 0x8f6b4003 ! 16: SDIVX_R sdivx %r13, %r3, %r7
971splash_lsu_1:
972 set 0x3, %r2
973 stxa %r2, [%r0] ASI_LSU_CONTROL
974 .word 0x3d400001 ! 17: FBPULE fbule,a,pn %fcc0, <label_0x1>
975 .word 0x8551c000 ! 18: RDPR_TL rdpr %tl, %r2
976 .word 0xa1902007 ! 19: WRPR_GL_I wrpr %r0, 0x0007, %-
977 .word 0xc48008a0 ! 20: LDUWA_R lduwa [%r0, %r0] 0x45, %r2
978 invalw
979 mov 0x32, %r30
980 .word 0x91d0001e ! 21: Tcc_R ta icc_or_xcc, %r0 + %r30
981 .word 0xb0d2e001 ! 22: UMULcc_I umulcc %r11, 0x0001, %r24
982 .word 0xa1902004 ! 23: WRPR_GL_I wrpr %r0, 0x0004, %-
983splash_tba_2:
984 ta T_CHANGE_PRIV
985 set 0x120000, %r2
986 .word 0x8b900002 ! 24: WRPR_TBA_R wrpr %r0, %r2, %tba
987 .word 0x8751c000 ! 25: RDPR_TL rdpr %tl, %r3
988 .word 0x81982e54 ! 26: WRHPR_HPSTATE_I wrhpr %r0, 0x0e54, %hpstate
989 ta T_CHANGE_PRIV ! macro
990 .word 0xb4846001 ! 28: ADDcc_I addcc %r17, 0x0001, %r26
991 otherw
992 mov 0xb2, %r30
993 .word 0x91d0001e ! 29: Tcc_R ta icc_or_xcc, %r0 + %r30
994 .word 0xf447c000 ! 30: LDSW_R ldsw [%r31 + %r0], %r26
995 .word 0x879022d8 ! 31: WRPR_TT_I wrpr %r0, 0x02d8, %tt
996 .word 0xad500000 ! 32: RDPR_TPC rdpr %tpc, %r22
997 .word 0x8951c000 ! 33: RDPR_TL <illegal instruction>
998 .word 0x87a5c9c3 ! 34: FDIVd fdivd %f54, %f34, %f34
999 .word 0x91500000 ! 35: RDPR_TPC <illegal instruction>
1000 .word 0x81982dcf ! 36: WRHPR_HPSTATE_I wrhpr %r0, 0x0dcf, %hpstate
1001 .word 0x93902005 ! 37: WRPR_CWP_I wrpr %r0, 0x0005, %cwp
1002 otherw
1003 mov 0x32, %r30
1004 .word 0x91d0001e ! 38: Tcc_R ta icc_or_xcc, %r0 + %r30
1005splash_lsu_3:
1006 set 0xb, %r2
1007 stxa %r2, [%r0] ASI_LSU_CONTROL
1008 .word 0x3d400001 ! 39: FBPULE fbule,a,pn %fcc0, <label_0x1>
1009 .word 0xa190200c ! 40: WRPR_GL_I wrpr %r0, 0x000c, %-
1010 invalw
1011 mov 0xb4, %r30
1012 .word 0x83d0001e ! 41: Tcc_R te icc_or_xcc, %r0 + %r30
1013 .word 0x8049000b ! 42: MULX_R mulx %r4, %r11, %r0
1014 .word 0x88c2a001 ! 43: ADDCcc_I addccc %r10, 0x0001, %r4
1015 .word 0xb7a00541 ! 44: FSQRTd fsqrt
1016 invalw
1017 mov 0xb3, %r30
1018 .word 0x91d0001e ! 45: Tcc_R ta icc_or_xcc, %r0 + %r30
1019 .word 0x91d02030 ! 46: Tcc_I ta icc_or_xcc, %r0 + 48
1020 .word 0xa1902002 ! 47: WRPR_GL_I wrpr %r0, 0x0002, %-
1021 .word 0x9f802001 ! 48: SIR sir 0x0001
1022 .word 0xa1902001 ! 49: WRPR_GL_I wrpr %r0, 0x0001, %-
1023 .word 0x8d90244d ! 50: WRPR_PSTATE_I wrpr %r0, 0x044d, %pstate
1024 .word 0xaba01a72 ! 51: FqTOi fqtoi
1025 .word 0x906ea001 ! 52: UDIVX_I udivx %r26, 0x0001, %r8
1026 .word 0xa9a109c2 ! 53: FDIVd fdivd %f4, %f2, %f20
1027splash_lsu_4:
1028 set 0xf, %r2
1029 stxa %r2, [%r0] ASI_LSU_CONTROL
1030 .word 0x3d400001 ! 54: FBPULE fbule,a,pn %fcc0, <label_0x1>
1031 .word 0x91a349f4 ! 55: FDIVq dis not found
1032
1033 .word 0x3e800001 ! 56: BVC bvc,a <label_0x1>
1034 .word 0x91540000 ! 57: RDPR_GL rdpr %-, %r8
1035splash_tba_5:
1036 ta T_CHANGE_PRIV
1037 set 0x120000, %r2
1038 .word 0x8b900002 ! 58: WRPR_TBA_R wrpr %r0, %r2, %tba
1039splash_lsu_6:
1040 set 0x3, %r2
1041 stxa %r2, [%r0] ASI_LSU_CONTROL
1042 .word 0x3d400001 ! 59: FBPULE fbule,a,pn %fcc0, <label_0x1>
1043 .word 0xd0880e80 ! 60: LDUBA_R lduba [%r0, %r0] 0x74, %r8
1044 .word 0x8ba01a63 ! 61: FqTOi fqtoi
1045 .word 0x28700001 ! 62: BPLEU <illegal instruction>
1046 .word 0xcad00e60 ! 63: LDSHA_R ldsha [%r0, %r0] 0x73, %r5
1047 .word 0x9ba149cd ! 64: FDIVd fdivd %f36, %f44, %f44
1048 ta T_CHANGE_HPRIV ! macro
1049 .word 0x8790226f ! 66: WRPR_TT_I wrpr %r0, 0x026f, %tt
1050 .word 0xa1a349f8 ! 67: FDIVq dis not found
1051
1052 .word 0x3a800001 ! 68: BCC bcc,a <label_0x1>
1053 .word 0x8d902445 ! 69: WRPR_PSTATE_I wrpr %r0, 0x0445, %pstate
1054 .word 0x83d02034 ! 70: Tcc_I te icc_or_xcc, %r0 + 52
1055 .word 0x87902338 ! 71: WRPR_TT_I wrpr %r0, 0x0338, %tt
1056 ta T_CHANGE_PRIV ! macro
1057 ta T_CHANGE_HPRIV ! macro
1058 .word 0xa1902005 ! 74: WRPR_GL_I wrpr %r0, 0x0005, %-
1059 .word 0xb1702001 ! 75: POPC_I popc 0x0001, %r24
1060 .word 0x93902003 ! 76: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
1061 .word 0x87902381 ! 77: WRPR_TT_I wrpr %r0, 0x0381, %tt
1062 .word 0x8d902002 ! 78: WRPR_PSTATE_I wrpr %r0, 0x0002, %pstate
1063 .word 0x91d02035 ! 79: Tcc_I ta icc_or_xcc, %r0 + 53
1064 .word 0xa751c000 ! 80: RDPR_TL rdpr %tl, %r19
1065 .word 0x81a24dd1 ! 81: FdMULq fdmulq
1066 ta T_CHANGE_HPRIV ! macro
1067 .word 0xa1902007 ! 83: WRPR_GL_I wrpr %r0, 0x0007, %-
1068 .word 0x93902002 ! 84: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
1069 .word 0x81982d06 ! 85: WRHPR_HPSTATE_I wrhpr %r0, 0x0d06, %hpstate
1070 .word 0xc0ffc031 ! 86: SWAPA_R swapa %r0, [%r31 + %r17] 0x01
1071DS_7:
1072 .word 0x32800001 ! 88: BNE bne,a <label_0x1>
1073 pdist %f24, %f14, %f22
1074 .word 0xa7b34304 ! 87: ALLIGNADDRESS alignaddr %r13, %r4, %r19
1075 invalw
1076 mov 0x30, %r30
1077 .word 0x93d0001e ! 88: Tcc_R tne icc_or_xcc, %r0 + %r30
1078splash_lsu_8:
1079 set 0xf, %r2
1080 stxa %r2, [%r0] ASI_LSU_CONTROL
1081 .word 0x3d400001 ! 89: FBPULE fbule,a,pn %fcc0, <label_0x1>
1082 otherw
1083 mov 0x33, %r30
1084 .word 0x91d0001e ! 90: Tcc_R ta icc_or_xcc, %r0 + %r30
1085DS_9:
1086 .word 0x32800001 ! 92: BNE bne,a <label_0x1>
1087 .word 0xd5308007 ! 92: STQF_R - %f10, [%r7, %r2]
1088 normalw
1089 .word 0x85458000 ! 91: RD_SOFTINT_REG rd %softint, %r2
1090 .word 0x8d802000 ! 92: WRFPRS_I wr %r0, 0x0000, %fprs
1091splash_tba_10:
1092 ta T_CHANGE_PRIV
1093 set 0x120000, %r2
1094 .word 0x8b900002 ! 93: WRPR_TBA_R wrpr %r0, %r2, %tba
1095change_to_randtl_11:
1096 ta T_CHANGE_HPRIV ! macro
1097 .word 0x8f902005 ! 94: WRPR_TL_I wrpr %r0, 0x0005, %tl
1098 .word 0x8ba000c0 ! 95: FNEGd fnegd %f0, %f36
1099change_to_randtl_12:
1100 ta T_CHANGE_PRIV ! macro
1101 .word 0x8f902001 ! 96: WRPR_TL_I wrpr %r0, 0x0001, %tl
1102 .word 0x83500000 ! 97: RDPR_TPC rdpr %tpc, %r1
1103 .word 0x8d902ada ! 98: WRPR_PSTATE_I wrpr %r0, 0x0ada, %pstate
1104 .word 0x87802088 ! 99: WRASI_I wr %r0, 0x0088, %asi
1105splash_tba_13:
1106 ta T_CHANGE_PRIV
1107 set 0x120000, %r2
1108 .word 0x8b900002 ! 100: WRPR_TBA_R wrpr %r0, %r2, %tba
1109 .word 0x81982a9e ! 101: WRHPR_HPSTATE_I wrhpr %r0, 0x0a9e, %hpstate
1110 invalw
1111 mov 0x34, %r30
1112 .word 0x93d0001e ! 102: Tcc_R tne icc_or_xcc, %r0 + %r30
1113reduce_priv_level_14:
1114 .word 0x8f902002 ! 104: WRPR_TL_I wrpr %r0, 0x0002, %tl
1115 ta T_CHANGE_NONPRIV ! macro
1116 .word 0x8982c004 ! 103: WRTICK_R wr %r11, %r4, %tick
1117 .word 0x8fb24ff3 ! 104: FONES fones %f7
1118 .word 0x8d902c95 ! 105: WRPR_PSTATE_I wrpr %r0, 0x0c95, %pstate
1119 .word 0xb04dc00a ! 106: MULX_R mulx %r23, %r10, %r24
1120 .word 0x8d9024d3 ! 107: WRPR_PSTATE_I wrpr %r0, 0x04d3, %pstate
1121 .word 0xa190200e ! 108: WRPR_GL_I wrpr %r0, 0x000e, %-
1122DS_15:
1123 .word 0x34800001 ! 110: BG bg,a <label_0x1>
1124 allclean
1125 .word 0x8fb0030c ! 109: ALLIGNADDRESS alignaddr %r0, %r12, %r7
1126 .word 0xa9508000 ! 110: RDPR_TSTATE rdpr %tstate, %r20
1127 .word 0x93902002 ! 111: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
1128 .word 0x91d02034 ! 112: Tcc_I ta icc_or_xcc, %r0 + 52
1129 .word 0x8790211a ! 113: WRPR_TT_I wrpr %r0, 0x011a, %tt
1130 .word 0x8790220d ! 114: WRPR_TT_I wrpr %r0, 0x020d, %tt
1131 .word 0x97504000 ! 115: RDPR_TNPC rdpr %tnpc, %r11
1132 .word 0x8198210d ! 116: WRHPR_HPSTATE_I wrhpr %r0, 0x010d, %hpstate
1133 .word 0xaf508000 ! 117: RDPR_TSTATE rdpr %tstate, %r23
1134 .word 0x8d902e1b ! 118: WRPR_PSTATE_I wrpr %r0, 0x0e1b, %pstate
1135 .word 0x91d02035 ! 119: Tcc_I ta icc_or_xcc, %r0 + 53
1136 .word 0x91d02030 ! 120: Tcc_I ta icc_or_xcc, %r0 + 48
1137 .word 0x87902123 ! 121: WRPR_TT_I wrpr %r0, 0x0123, %tt
1138 ta T_CHANGE_TO_TL0 ! macro
1139 .word 0xeecfe020 ! 123: LDSBA_I ldsba [%r31, + 0x0020] %asi, %r23
1140DS_16:
1141 .word 0x20800001 ! 125: BN bn,a <label_0x1>
1142 illtrap
1143 .word 0xcb10800b ! 125: LDQF_R - [%r2, %r11], %f5
1144 .word 0x93a2c828 ! 124: FADDs fadds %f11, %f8, %f9
1145 .word 0x81982b45 ! 125: WRHPR_HPSTATE_I wrhpr %r0, 0x0b45, %hpstate
1146 .word 0x93902000 ! 126: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1147 .word 0x99902002 ! 127: WRPR_CLEANWIN_I wrpr %r0, 0x0002, %cleanwin
1148 otherw
1149 mov 0x31, %r30
1150 .word 0x91d0001e ! 128: Tcc_R ta icc_or_xcc, %r0 + %r30
1151 .word 0x93902000 ! 129: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1152 .word 0x819829d6 ! 130: WRHPR_HPSTATE_I wrhpr %r0, 0x09d6, %hpstate
1153 .word 0x93902000 ! 131: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1154 .word 0x81982a1f ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x0a1f, %hpstate
1155 .word 0xd28008a0 ! 133: LDUWA_R lduwa [%r0, %r0] 0x45, %r9
1156 otherw
1157 mov 0x30, %r30
1158 .word 0x91d0001e ! 134: Tcc_R ta icc_or_xcc, %r0 + %r30
1159 ta T_CHANGE_TO_TL0 ! macro
1160 otherw
1161 mov 0x34, %r30
1162 .word 0x91d0001e ! 136: Tcc_R ta icc_or_xcc, %r0 + %r30
1163 .word 0x87902212 ! 137: WRPR_TT_I wrpr %r0, 0x0212, %tt
1164 .word 0x91d02035 ! 138: Tcc_I ta icc_or_xcc, %r0 + 53
1165 .word 0x94ddc008 ! 139: SMULcc_R smulcc %r23, %r8, %r10
1166 .word 0xb0d1001b ! 140: UMULcc_R umulcc %r4, %r27, %r24
1167 .word 0x97a01a69 ! 141: FqTOi fqtoi
1168 .word 0xa1902004 ! 142: WRPR_GL_I wrpr %r0, 0x0004, %-
1169 .word 0xd69fe001 ! 143: LDDA_I ldda [%r31, + 0x0001] %asi, %r11
1170 otherw
1171 mov 0xb4, %r30
1172 .word 0x91d0001e ! 144: Tcc_R ta icc_or_xcc, %r0 + %r30
1173 .word 0x81982884 ! 145: WRHPR_HPSTATE_I wrhpr %r0, 0x0884, %hpstate
1174 .word 0x87802004 ! 146: WRASI_I wr %r0, 0x0004, %asi
1175 .word 0x83a00564 ! 147: FSQRTq fsqrt
1176 .word 0xc217c000 ! 148: LDUH_R lduh [%r31 + %r0], %r1
1177 .word 0xc277c004 ! 149: STX_R stx %r1, [%r31 + %r4]
1178 .word 0xc2c00e60 ! 150: LDSWA_R ldswa [%r0, %r0] 0x73, %r1
1179 .word 0x94854003 ! 151: ADDcc_R addcc %r21, %r3, %r10
1180 otherw
1181 mov 0x33, %r30
1182 .word 0x91d0001e ! 152: Tcc_R ta icc_or_xcc, %r0 + %r30
1183 .word 0x87802089 ! 153: WRASI_I wr %r0, 0x0089, %asi
1184 otherw
1185 mov 0xb2, %r30
1186 .word 0x93d0001e ! 154: Tcc_R tne icc_or_xcc, %r0 + %r30
1187 .word 0xa190200e ! 155: WRPR_GL_I wrpr %r0, 0x000e, %-
1188 .word 0xaa818010 ! 156: ADDcc_R addcc %r6, %r16, %r21
1189change_to_tl1_17:
1190 ta T_CHANGE_HPRIV
1191 ta T_CHANGE_TO_TL1 ! macro
1192 .word 0x93d02035 ! 158: Tcc_I tne icc_or_xcc, %r0 + 53
1193 .word 0x81982edd ! 159: WRHPR_HPSTATE_I wrhpr %r0, 0x0edd, %hpstate
1194 .word 0x2e700001 ! 160: BPVS <illegal instruction>
1195 invalw
1196 mov 0xb0, %r30
1197 .word 0x93d0001e ! 161: Tcc_R tne icc_or_xcc, %r0 + %r30
1198 .word 0x879020c1 ! 162: WRPR_TT_I wrpr %r0, 0x00c1, %tt
1199 .word 0x8d902813 ! 163: WRPR_PSTATE_I wrpr %r0, 0x0813, %pstate
1200 invalw
1201 mov 0xb5, %r30
1202 .word 0x91d0001e ! 164: Tcc_R ta icc_or_xcc, %r0 + %r30
1203 .word 0x91d02035 ! 165: Tcc_I ta icc_or_xcc, %r0 + 53
1204 .word 0x93902002 ! 166: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
1205 .word 0xa1902001 ! 167: WRPR_GL_I wrpr %r0, 0x0001, %-
1206 .word 0xa0c52001 ! 168: ADDCcc_I addccc %r20, 0x0001, %r16
1207 ta T_CHANGE_TO_TL0 ! macro
1208 .word 0x8fa000cd ! 170: FNEGd fnegd %f44, %f38
1209 .word 0x8d802000 ! 171: WRFPRS_I wr %r0, 0x0000, %fprs
1210 .word 0x3c800001 ! 172: BPOS bpos,a <label_0x1>
1211reduce_priv_level_18:
1212 .word 0x8f902001 ! 174: WRPR_TL_I wrpr %r0, 0x0001, %tl
1213 ta T_CHANGE_NONPRIV ! macro
1214 .word 0x81b01021 ! 173: SIAM siam 1
1215 .word 0x8790228e ! 174: WRPR_TT_I wrpr %r0, 0x028e, %tt
1216 .word 0x36700001 ! 175: BPGE <illegal instruction>
1217 .word 0x8d9020c5 ! 176: WRPR_PSTATE_I wrpr %r0, 0x00c5, %pstate
1218 .word 0x81702001 ! 177: POPC_I popc 0x0001, %r0
1219 .word 0xa1902001 ! 178: WRPR_GL_I wrpr %r0, 0x0001, %-
1220 .word 0x85a00dc9 ! 179: FdMULq fdmulq
1221 .word 0x9f802001 ! 180: SIR sir 0x0001
1222 .word 0x30800001 ! 181: BA ba,a <label_0x1>
1223DS_19:
1224 .word 0x20800001 ! 183: BN bn,a <label_0x1>
1225 .word 0x32800001 ! 183: BNE bne,a <label_0x1>
1226 .word 0xa7a00552 ! 183: FSQRTd fsqrt
1227 .word 0xb3a4883b ! 182: FADDs fadds %f18, %f27, %f25
1228splash_tba_20:
1229 ta T_CHANGE_PRIV
1230 set 0x120000, %r2
1231 .word 0x8b900002 ! 183: WRPR_TBA_R wrpr %r0, %r2, %tba
1232 otherw
1233 mov 0x34, %r30
1234 .word 0x91d0001e ! 184: Tcc_R ta icc_or_xcc, %r0 + %r30
1235 otherw
1236 mov 0x34, %r30
1237 .word 0x83d0001e ! 185: Tcc_R te icc_or_xcc, %r0 + %r30
1238 .word 0x28700001 ! 186: BPLEU <illegal instruction>
1239DS_21:
1240 .word 0x22800001 ! 188: BE be,a <label_0x1>
1241 .word 0x20800001 ! 188: BN bn,a <label_0x1>
1242 .word 0x83a00542 ! 188: FSQRTd fsqrt
1243 .word 0xb1a18837 ! 187: FADDs fadds %f6, %f23, %f24
1244change_to_randtl_22:
1245 ta T_CHANGE_PRIV ! macro
1246 .word 0x8f902001 ! 188: WRPR_TL_I wrpr %r0, 0x0001, %tl
1247 .word 0xf057e001 ! 189: LDSH_I ldsh [%r31 + 0x0001], %r24
1248 otherw
1249 mov 0x31, %r30
1250 .word 0x91d0001e ! 190: Tcc_R ta icc_or_xcc, %r0 + %r30
1251DS_23:
1252 .word 0x22800001 ! 192: BE be,a <label_0x1>
1253 .word 0xc7356001 ! 192: STQF_I - %f3, [0x0001, %r21]
1254 normalw
1255 .word 0xa1458000 ! 191: RD_SOFTINT_REG rd %softint, %r16
1256 .word 0xe08fe010 ! 192: LDUBA_I lduba [%r31, + 0x0010] %asi, %r16
1257 .word 0xe0d7e010 ! 193: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r16
1258 .word 0x81982444 ! 194: WRHPR_HPSTATE_I wrhpr %r0, 0x0444, %hpstate
1259 .word 0xe0cfe000 ! 195: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r16
1260 .word 0x93902000 ! 196: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1261 .word 0xa190200a ! 197: WRPR_GL_I wrpr %r0, 0x000a, %-
1262 .word 0x879021d8 ! 198: WRPR_TT_I wrpr %r0, 0x01d8, %tt
1263 .word 0x8d90244b ! 199: WRPR_PSTATE_I wrpr %r0, 0x044b, %pstate
1264 .word 0x91a01a63 ! 200: FqTOi fqtoi
1265 .word 0xaa81c00a ! 201: ADDcc_R addcc %r7, %r10, %r21
1266 .word 0xea77c00a ! 202: STX_R stx %r21, [%r31 + %r10]
1267 .word 0x87902325 ! 203: WRPR_TT_I wrpr %r0, 0x0325, %tt
1268 .word 0x8d802000 ! 204: WRFPRS_I wr %r0, 0x0000, %fprs
1269 .word 0x819827cf ! 205: WRHPR_HPSTATE_I wrhpr %r0, 0x07cf, %hpstate
1270splash_htba_24:
1271 ta T_CHANGE_HPRIV
1272 set 0x003a0000, %r2
1273 .word 0x8b980002 ! 206: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
1274 .word 0x83d02031 ! 207: Tcc_I te icc_or_xcc, %r0 + 49
1275 otherw
1276 mov 0x33, %r30
1277 .word 0x91d0001e ! 208: Tcc_R ta icc_or_xcc, %r0 + %r30
1278 .word 0x8d902896 ! 209: WRPR_PSTATE_I wrpr %r0, 0x0896, %pstate
1279 .word 0x93902006 ! 210: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
1280splash_tba_25:
1281 ta T_CHANGE_PRIV
1282 set 0x120000, %r2
1283 .word 0x8b900002 ! 211: WRPR_TBA_R wrpr %r0, %r2, %tba
1284 .word 0x87902012 ! 212: WRPR_TT_I wrpr %r0, 0x0012, %tt
1285 .word 0xea800aa0 ! 213: LDUWA_R lduwa [%r0, %r0] 0x55, %r21
1286DS_26:
1287 .word 0x32800001 ! 215: BNE bne,a <label_0x1>
1288 .word 0xbfe7c000 ! 214: SAVE_R save %r31, %r0, %r31
1289reduce_priv_level_27:
1290 .word 0x8f902000 ! 216: WRPR_TL_I wrpr %r0, 0x0000, %tl
1291 ta T_CHANGE_NONHPRIV ! macro
1292 .word 0x81b01021 ! 215: SIAM siam 1
1293 .word 0x91d02031 ! 216: Tcc_I ta icc_or_xcc, %r0 + 49
1294 .word 0x9b50c000 ! 217: RDPR_TT rdpr %tt, %r13
1295splash_htba_28:
1296 ta T_CHANGE_HPRIV
1297 set 0x80000, %r2
1298 .word 0x8b980002 ! 218: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
1299 .word 0x93902005 ! 219: WRPR_CWP_I wrpr %r0, 0x0005, %cwp
1300 otherw
1301 mov 0xb3, %r30
1302 .word 0x91d0001e ! 220: Tcc_R ta icc_or_xcc, %r0 + %r30
1303 otherw
1304 mov 0xb4, %r30
1305 .word 0x91d0001e ! 221: Tcc_R ta icc_or_xcc, %r0 + %r30
1306 .word 0x8d802000 ! 222: WRFPRS_I wr %r0, 0x0000, %fprs
1307 .word 0x8790227b ! 223: WRPR_TT_I wrpr %r0, 0x027b, %tt
1308change_to_tl1_29:
1309 ta T_CHANGE_HPRIV
1310 ta T_CHANGE_TO_TL1 ! macro
1311splash_tba_30:
1312 ta T_CHANGE_PRIV
1313 set 0x003d0000, %r2
1314 .word 0x8b900002 ! 225: WRPR_TBA_R wrpr %r0, %r2, %tba
1315 .word 0x81b00ff0 ! 226: FONES fones %f0
1316 .word 0x8d902c1c ! 227: WRPR_PSTATE_I wrpr %r0, 0x0c1c, %pstate
1317 .word 0x8cf8c006 ! 228: SDIVcc_R sdivcc %r3, %r6, %r6
1318 .word 0xb1500000 ! 229: RDPR_TPC rdpr %tpc, %r24
1319 .word 0x8790215a ! 230: WRPR_TT_I wrpr %r0, 0x015a, %tt
1320 .word 0x93902000 ! 231: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1321 .word 0x879021d5 ! 232: WRPR_TT_I wrpr %r0, 0x01d5, %tt
1322 .word 0x8d90245d ! 233: WRPR_PSTATE_I wrpr %r0, 0x045d, %pstate
1323 otherw
1324 mov 0x34, %r30
1325 .word 0x91d0001e ! 234: Tcc_R ta icc_or_xcc, %r0 + %r30
1326 otherw
1327 mov 0x35, %r30
1328 .word 0x91d0001e ! 235: Tcc_R ta icc_or_xcc, %r0 + %r30
1329 .word 0xf0c004a0 ! 236: LDSWA_R ldswa [%r0, %r0] 0x25, %r24
1330 .word 0xa1902001 ! 237: WRPR_GL_I wrpr %r0, 0x0001, %-
1331 .word 0x879021fe ! 238: WRPR_TT_I wrpr %r0, 0x01fe, %tt
1332 .word 0x81982357 ! 239: WRHPR_HPSTATE_I wrhpr %r0, 0x0357, %hpstate
1333 .word 0x9f802001 ! 240: SIR sir 0x0001
1334 .word 0x8d90248e ! 241: WRPR_PSTATE_I wrpr %r0, 0x048e, %pstate
1335 .word 0x91d02031 ! 242: Tcc_I ta icc_or_xcc, %r0 + 49
1336 .word 0x93902002 ! 243: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
1337 .word 0x8d902c86 ! 244: WRPR_PSTATE_I wrpr %r0, 0x0c86, %pstate
1338 .word 0x879022da ! 245: WRPR_TT_I wrpr %r0, 0x02da, %tt
1339 .word 0x8198238d ! 246: WRHPR_HPSTATE_I wrhpr %r0, 0x038d, %hpstate
1340 .word 0x8069c00d ! 247: UDIVX_R udivx %r7, %r13, %r0
1341 .word 0xc0dfe000 ! 248: LDXA_I ldxa [%r31, + 0x0000] %asi, %r0
1342 .word 0x8ba000c3 ! 249: FNEGd fnegd %f34, %f36
1343 .word 0x93902003 ! 250: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
1344 .word 0xca7fe001 ! 251: SWAP_I swap %r5, [%r31 + 0x0001]
1345DS_31:
1346 .word 0x20800001 ! 253: BN bn,a <label_0x1>
1347 pdist %f22, %f4, %f2
1348 .word 0x95b18308 ! 252: ALLIGNADDRESS alignaddr %r6, %r8, %r10
1349 .word 0x91d02030 ! 253: Tcc_I ta icc_or_xcc, %r0 + 48
1350 .word 0xa1902007 ! 254: WRPR_GL_I wrpr %r0, 0x0007, %-
1351 .word 0x91d02034 ! 255: Tcc_I ta icc_or_xcc, %r0 + 52
1352 .word 0x91d02030 ! 256: Tcc_I ta icc_or_xcc, %r0 + 48
1353 .word 0xd437c008 ! 257: STH_R sth %r10, [%r31 + %r8]
1354 ta T_CHANGE_TO_TL0 ! macro
1355splash_lsu_32:
1356 set 0xb, %r2
1357 stxa %r2, [%r0] ASI_LSU_CONTROL
1358 .word 0x3d400001 ! 259: FBPULE fbule,a,pn %fcc0, <label_0x1>
1359splash_lsu_33:
1360 set 0x13, %r2
1361 stxa %r2, [%r0] ASI_LSU_CONTROL
1362 .word 0x3d400001 ! 260: FBPULE fbule,a,pn %fcc0, <label_0x1>
1363 .word 0x9b514000 ! 261: RDPR_TBA rdpr %tba, %r13
1364 .word 0x879021ae ! 262: WRPR_TT_I wrpr %r0, 0x01ae, %tt
1365 invalw
1366 mov 0x35, %r30
1367 .word 0x91d0001e ! 263: Tcc_R ta icc_or_xcc, %r0 + %r30
1368splash_lsu_34:
1369 set 0x17, %r2
1370 stxa %r2, [%r0] ASI_LSU_CONTROL
1371 .word 0x3d400001 ! 264: FBPULE fbule,a,pn %fcc0, <label_0x1>
1372 .word 0x81982fc6 ! 265: WRHPR_HPSTATE_I wrhpr %r0, 0x0fc6, %hpstate
1373 otherw
1374 mov 0xb3, %r30
1375 .word 0x91d0001e ! 266: Tcc_R ta icc_or_xcc, %r0 + %r30
1376 otherw
1377 mov 0x31, %r30
1378 .word 0x91d0001e ! 267: Tcc_R ta icc_or_xcc, %r0 + %r30
1379splash_tba_35:
1380 ta T_CHANGE_PRIV
1381 set 0x120000, %r2
1382 .word 0x8b900002 ! 268: WRPR_TBA_R wrpr %r0, %r2, %tba
1383 .word 0x879023c7 ! 269: WRPR_TT_I wrpr %r0, 0x03c7, %tt
1384 .word 0x87902286 ! 270: WRPR_TT_I wrpr %r0, 0x0286, %tt
1385 ta T_CHANGE_PRIV ! macro
1386 .word 0x879022b0 ! 272: WRPR_TT_I wrpr %r0, 0x02b0, %tt
1387 ta T_CHANGE_HPRIV ! macro
1388 .word 0x87902080 ! 274: WRPR_TT_I wrpr %r0, 0x0080, %tt
1389 .word 0x93902006 ! 275: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
1390 ta T_CHANGE_PRIV ! macro
1391 .word 0xa2de801a ! 277: SMULcc_R smulcc %r26, %r26, %r17
1392 .word 0x8c842001 ! 278: ADDcc_I addcc %r16, 0x0001, %r6
1393 .word 0x87902356 ! 279: WRPR_TT_I wrpr %r0, 0x0356, %tt
1394 ta T_CHANGE_PRIV ! macro
1395DS_36:
1396 .word 0x34800001 ! 282: BG bg,a <label_0x1>
1397 .word 0xf5336001 ! 282: STQF_I - %f26, [0x0001, %r13]
1398 normalw
1399 .word 0x8b458000 ! 281: RD_SOFTINT_REG rd %softint, %r5
1400 .word 0x8d902e41 ! 282: WRPR_PSTATE_I wrpr %r0, 0x0e41, %pstate
1401 .word 0x91d02033 ! 283: Tcc_I ta icc_or_xcc, %r0 + 51
1402change_to_tl1_37:
1403 ta T_CHANGE_HPRIV
1404 ta T_CHANGE_TO_TL1 ! macro
1405 .word 0xa1902001 ! 285: WRPR_GL_I wrpr %r0, 0x0001, %-
1406 .word 0xa190200a ! 286: WRPR_GL_I wrpr %r0, 0x000a, %-
1407 .word 0xcac804a0 ! 287: LDSBA_R ldsba [%r0, %r0] 0x25, %r5
1408 .word 0x83d02030 ! 288: Tcc_I te icc_or_xcc, %r0 + 48
1409reduce_priv_level_38:
1410 .word 0x8f902001 ! 290: WRPR_TL_I wrpr %r0, 0x0001, %tl
1411 ta T_CHANGE_NONPRIV ! macro
1412 .word 0x83692001 ! 289: SDIVX_I sdivx %r4, 0x0001, %r1
1413 .word 0x87a689d5 ! 290: FDIVd fdivd %f26, %f52, %f34
1414 .word 0x8d802000 ! 291: WRFPRS_I wr %r0, 0x0000, %fprs
1415 .word 0xa1902006 ! 292: WRPR_GL_I wrpr %r0, 0x0006, %-
1416 .word 0xb4852001 ! 293: ADDcc_I addcc %r20, 0x0001, %r26
1417 .word 0xf4c7e010 ! 294: LDSWA_I ldswa [%r31, + 0x0010] %asi, %r26
1418 .word 0x87802010 ! 295: WRASI_I wr %r0, 0x0010, %asi
1419 .word 0x879023b3 ! 296: WRPR_TT_I wrpr %r0, 0x03b3, %tt
1420 otherw
1421 mov 0x31, %r30
1422 .word 0x91d0001e ! 297: Tcc_R ta icc_or_xcc, %r0 + %r30
1423 .word 0x83d02030 ! 298: Tcc_I te icc_or_xcc, %r0 + 48
1424 .word 0x93d02032 ! 299: Tcc_I tne icc_or_xcc, %r0 + 50
1425 .word 0x8a862001 ! 300: ADDcc_I addcc %r24, 0x0001, %r5
1426 .word 0x81982a06 ! 301: WRHPR_HPSTATE_I wrhpr %r0, 0x0a06, %hpstate
1427 .word 0xcbe7c035 ! 302: CASA_I casa [%r31] 0x 1, %r21, %r5
1428 ta T_CHANGE_TO_TL0 ! macro
1429 .word 0x93902005 ! 304: WRPR_CWP_I wrpr %r0, 0x0005, %cwp
1430 otherw
1431 mov 0x35, %r30
1432 .word 0x91d0001e ! 305: Tcc_R ta icc_or_xcc, %r0 + %r30
1433 .word 0x91d02033 ! 306: Tcc_I ta icc_or_xcc, %r0 + 51
1434 .word 0x93902004 ! 307: WRPR_CWP_I wrpr %r0, 0x0004, %cwp
1435 .word 0x8d802000 ! 308: WRFPRS_I wr %r0, 0x0000, %fprs
1436 .word 0x9350c000 ! 309: RDPR_TT rdpr %tt, %r9
1437 .word 0x93508000 ! 310: RDPR_TSTATE rdpr %tstate, %r9
1438 .word 0x30800001 ! 311: BA ba,a <label_0x1>
1439 .word 0x96fa6001 ! 312: SDIVcc_I sdivcc %r9, 0x0001, %r11
1440 .word 0x86d1e001 ! 313: UMULcc_I umulcc %r7, 0x0001, %r3
1441 .word 0xc68008a0 ! 314: LDUWA_R lduwa [%r0, %r0] 0x45, %r3
1442 .word 0x879022e5 ! 315: WRPR_TT_I wrpr %r0, 0x02e5, %tt
1443 .word 0x93902005 ! 316: WRPR_CWP_I wrpr %r0, 0x0005, %cwp
1444 .word 0x87902116 ! 317: WRPR_TT_I wrpr %r0, 0x0116, %tt
1445DS_39:
1446 .word 0x32800001 ! 319: BNE bne,a <label_0x1>
1447 .word 0xbfefc000 ! 318: RESTORE_R restore %r31, %r0, %r31
1448DS_40:
1449 .word 0x34800001 ! 320: BG bg,a <label_0x1>
1450 illtrap
1451 .word 0x83a00544 ! 320: FSQRTd fsqrt
1452 .word 0xa7a6882a ! 319: FADDs fadds %f26, %f10, %f19
1453 .word 0xe6c00e40 ! 320: LDSWA_R ldswa [%r0, %r0] 0x72, %r19
1454 .word 0x87902070 ! 321: WRPR_TT_I wrpr %r0, 0x0070, %tt
1455 .word 0x8790227a ! 322: WRPR_TT_I wrpr %r0, 0x027a, %tt
1456 .word 0x93d02035 ! 323: Tcc_I tne icc_or_xcc, %r0 + 53
1457 .word 0xe697e010 ! 324: LDUHA_I lduha [%r31, + 0x0010] %asi, %r19
1458 .word 0x86c26001 ! 325: ADDCcc_I addccc %r9, 0x0001, %r3
1459 .word 0x99902003 ! 326: WRPR_CLEANWIN_I wrpr %r0, 0x0003, %cleanwin
1460 .word 0xc737c00a ! 327: STQF_R - %f3, [%r10, %r31]
1461 .word 0x8fa00565 ! 328: FSQRTq fsqrt
1462 .word 0xa8c0e001 ! 329: ADDCcc_I addccc %r3, 0x0001, %r20
1463 .word 0xa1902009 ! 330: WRPR_GL_I wrpr %r0, 0x0009, %-
1464 .word 0x87902047 ! 331: WRPR_TT_I wrpr %r0, 0x0047, %tt
1465 .word 0x87504000 ! 332: RDPR_TNPC rdpr %tnpc, %r3
1466 otherw
1467 mov 0x33, %r30
1468 .word 0x83d0001e ! 333: Tcc_R te icc_or_xcc, %r0 + %r30
1469reduce_priv_level_41:
1470 .word 0x8f902000 ! 335: WRPR_TL_I wrpr %r0, 0x0000, %tl
1471 ta T_CHANGE_NONHPRIV ! macro
1472 .word 0x81b01021 ! 334: SIAM siam 1
1473 .word 0xa1902004 ! 335: WRPR_GL_I wrpr %r0, 0x0004, %-
1474 .word 0x8d90244f ! 336: WRPR_PSTATE_I wrpr %r0, 0x044f, %pstate
1475 .word 0x8a6b2001 ! 337: UDIVX_I udivx %r12, 0x0001, %r5
1476splash_lsu_42:
1477 set 0x3, %r2
1478 stxa %r2, [%r0] ASI_LSU_CONTROL
1479 .word 0x3d400001 ! 338: FBPULE fbule,a,pn %fcc0, <label_0x1>
1480 .word 0x91d02032 ! 339: Tcc_I ta icc_or_xcc, %r0 + 50
1481 .word 0x819829df ! 340: WRHPR_HPSTATE_I wrhpr %r0, 0x09df, %hpstate
1482 .word 0x93d02034 ! 341: Tcc_I tne icc_or_xcc, %r0 + 52
1483 .word 0xa1902007 ! 342: WRPR_GL_I wrpr %r0, 0x0007, %-
1484 otherw
1485 mov 0x33, %r30
1486 .word 0x91d0001e ! 343: Tcc_R ta icc_or_xcc, %r0 + %r30
1487 .word 0xcb37e001 ! 344: STQF_I - %f5, [0x0001, %r31]
1488 .word 0x8d802000 ! 345: WRFPRS_I wr %r0, 0x0000, %fprs
1489 .word 0x99508000 ! 346: RDPR_TSTATE rdpr %tstate, %r12
1490DS_43:
1491 .word 0x32800001 ! 348: BNE bne,a <label_0x1>
1492 .word 0xe730a001 ! 348: STQF_I - %f19, [0x0001, %r2]
1493 normalw
1494 .word 0xa9458000 ! 347: RD_SOFTINT_REG rd %softint, %r20
1495 .word 0x93d02031 ! 348: Tcc_I tne icc_or_xcc, %r0 + 49
1496 .word 0xb0d90017 ! 349: SMULcc_R smulcc %r4, %r23, %r24
1497 .word 0x93902001 ! 350: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
1498 ta T_CHANGE_TO_TL0 ! macro
1499 .word 0x81982b9f ! 352: WRHPR_HPSTATE_I wrhpr %r0, 0x0b9f, %hpstate
1500change_to_tl1_44:
1501 ta T_CHANGE_PRIV
1502 ta T_CHANGE_TO_TL1 ! macro
1503DS_45:
1504 .word 0x22800001 ! 355: BE be,a <label_0x1>
1505 allclean
1506 .word 0x87b2c30a ! 354: ALLIGNADDRESS alignaddr %r11, %r10, %r3
1507 .word 0x8198254d ! 355: WRHPR_HPSTATE_I wrhpr %r0, 0x054d, %hpstate
1508 .word 0xc68008a0 ! 356: LDUWA_R lduwa [%r0, %r0] 0x45, %r3
1509 .word 0xa6d2e001 ! 357: UMULcc_I umulcc %r11, 0x0001, %r19
1510DS_46:
1511 .word 0x22800001 ! 359: BE be,a <label_0x1>
1512 .word 0xbfe7c000 ! 358: SAVE_R save %r31, %r0, %r31
1513 .word 0x8d9022c1 ! 359: WRPR_PSTATE_I wrpr %r0, 0x02c1, %pstate
1514 .word 0x8ba0cdc2 ! 360: FdMULq fdmulq
1515 ta T_CHANGE_PRIV ! macro
1516 .word 0x879022ea ! 362: WRPR_TT_I wrpr %r0, 0x02ea, %tt
1517 .word 0xa1902001 ! 363: WRPR_GL_I wrpr %r0, 0x0001, %-
1518 .word 0x9950c000 ! 364: RDPR_TT rdpr %tt, %r12
1519 .word 0x83d02030 ! 365: Tcc_I te icc_or_xcc, %r0 + 48
1520 .word 0x91d02034 ! 366: Tcc_I ta icc_or_xcc, %r0 + 52
1521 .word 0xa1902007 ! 367: WRPR_GL_I wrpr %r0, 0x0007, %-
1522 .word 0xd847c000 ! 368: LDSW_R ldsw [%r31 + %r0], %r12
1523 .word 0x93d02032 ! 369: Tcc_I tne icc_or_xcc, %r0 + 50
1524 .word 0x8c6ac00d ! 370: UDIVX_R udivx %r11, %r13, %r6
1525 otherw
1526 mov 0x33, %r30
1527 .word 0x83d0001e ! 371: Tcc_R te icc_or_xcc, %r0 + %r30
1528 .word 0x9ba449cb ! 372: FDIVd fdivd %f48, %f42, %f44
1529 .word 0x879023ad ! 373: WRPR_TT_I wrpr %r0, 0x03ad, %tt
1530 .word 0x93d02032 ! 374: Tcc_I tne icc_or_xcc, %r0 + 50
1531change_to_tl1_47:
1532 ta T_CHANGE_HPRIV
1533 ta T_CHANGE_TO_TL1 ! macro
1534 .word 0xad540000 ! 376: RDPR_GL rdpr %-, %r22
1535 .word 0x879022b0 ! 377: WRPR_TT_I wrpr %r0, 0x02b0, %tt
1536 .word 0x9551c000 ! 378: RDPR_TL rdpr %tl, %r10
1537 .word 0x93902003 ! 379: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
1538change_to_randtl_48:
1539 ta T_CHANGE_PRIV ! macro
1540 .word 0x8f902000 ! 380: WRPR_TL_I wrpr %r0, 0x0000, %tl
1541 .word 0xa190200d ! 381: WRPR_GL_I wrpr %r0, 0x000d, %-
1542 .word 0xa1902002 ! 382: WRPR_GL_I wrpr %r0, 0x0002, %-
1543 .word 0x91d02030 ! 383: Tcc_I ta icc_or_xcc, %r0 + 48
1544splash_htba_49:
1545 ta T_CHANGE_HPRIV
1546 set 0x80000, %r2
1547 .word 0x8b980002 ! 384: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
1548 .word 0x8d802000 ! 385: WRFPRS_I wr %r0, 0x0000, %fprs
1549 .word 0x8d802000 ! 386: WRFPRS_I wr %r0, 0x0000, %fprs
1550 invalw
1551 mov 0x35, %r30
1552 .word 0x93d0001e ! 387: Tcc_R tne icc_or_xcc, %r0 + %r30
1553 .word 0x8198244f ! 388: WRHPR_HPSTATE_I wrhpr %r0, 0x044f, %hpstate
1554 .word 0xb1a5cdc6 ! 389: FdMULq fdmulq
1555 .word 0x9b50c000 ! 390: RDPR_TT rdpr %tt, %r13
1556 .word 0x8d902210 ! 391: WRPR_PSTATE_I wrpr %r0, 0x0210, %pstate
1557 invalw
1558 mov 0xb0, %r30
1559 .word 0x91d0001e ! 392: Tcc_R ta icc_or_xcc, %r0 + %r30
1560 .word 0x91d02033 ! 393: Tcc_I ta icc_or_xcc, %r0 + 51
1561 invalw
1562 mov 0x31, %r30
1563 .word 0x83d0001e ! 394: Tcc_R te icc_or_xcc, %r0 + %r30
1564 .word 0xb150c000 ! 395: RDPR_TT rdpr %tt, %r24
1565 .word 0x81982b04 ! 396: WRHPR_HPSTATE_I wrhpr %r0, 0x0b04, %hpstate
1566 .word 0x93d02035 ! 397: Tcc_I tne icc_or_xcc, %r0 + 53
1567 invalw
1568 mov 0xb0, %r30
1569 .word 0x93d0001e ! 398: Tcc_R tne icc_or_xcc, %r0 + %r30
1570 .word 0xf08008a0 ! 399: LDUWA_R lduwa [%r0, %r0] 0x45, %r24
1571 .word 0x81982c95 ! 400: WRHPR_HPSTATE_I wrhpr %r0, 0x0c95, %hpstate
1572 .word 0xa06aa001 ! 401: UDIVX_I udivx %r10, 0x0001, %r16
1573 .word 0x93902003 ! 402: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
1574 .word 0xa1902002 ! 403: WRPR_GL_I wrpr %r0, 0x0002, %-
1575 .word 0x86fb6001 ! 404: SDIVcc_I sdivcc %r13, 0x0001, %r3
1576 .word 0xc7e7c026 ! 405: CASA_I casa [%r31] 0x 1, %r6, %r3
1577splash_lsu_50:
1578 set 0xb, %r2
1579 stxa %r2, [%r0] ASI_LSU_CONTROL
1580 .word 0x3d400001 ! 406: FBPULE fbule,a,pn %fcc0, <label_0x1>
1581 .word 0xc61fc000 ! 407: LDD_R ldd [%r31 + %r0], %r3
1582 .word 0x87802004 ! 408: WRASI_I wr %r0, 0x0004, %asi
1583 .word 0x83d02034 ! 409: Tcc_I te icc_or_xcc, %r0 + 52
1584splash_lsu_51:
1585 set 0x13, %r2
1586 stxa %r2, [%r0] ASI_LSU_CONTROL
1587 .word 0x3d400001 ! 410: FBPULE fbule,a,pn %fcc0, <label_0x1>
1588 .word 0x93902003 ! 411: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
1589DS_52:
1590 nop
1591 not %g0, %g2
1592 jmp %g2
1593 .word 0x9d902004 ! 412: WRPR_WSTATE_I wrpr %r0, 0x0004, %wstate
1594 .word 0xc737e001 ! 413: STQF_I - %f3, [0x0001, %r31]
1595splash_htba_53:
1596 ta T_CHANGE_HPRIV
1597 set 0x80000, %r2
1598 .word 0x8b980002 ! 414: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
1599 invalw
1600 mov 0x31, %r30
1601 .word 0x91d0001e ! 415: Tcc_R ta icc_or_xcc, %r0 + %r30
1602 .word 0x2e800001 ! 416: BVS bvs,a <label_0x1>
1603 .word 0x83d02032 ! 417: Tcc_I te icc_or_xcc, %r0 + 50
1604 .word 0x85514000 ! 418: RDPR_TBA rdpr %tba, %r2
1605 ta T_CHANGE_HPRIV ! macro
1606 .word 0xa1902005 ! 420: WRPR_GL_I wrpr %r0, 0x0005, %-
1607 .word 0x93a089c9 ! 421: FDIVd fdivd %f2, %f40, %f40
1608 .word 0x946d2001 ! 422: UDIVX_I udivx %r20, 0x0001, %r10
1609DS_54:
1610 .word 0x20800001 ! 424: BN bn,a <label_0x1>
1611 .word 0xbfe7c000 ! 423: SAVE_R save %r31, %r0, %r31
1612 .word 0xd47fe001 ! 424: SWAP_I swap %r10, [%r31 + 0x0001]
1613 .word 0x93d02034 ! 425: Tcc_I tne icc_or_xcc, %r0 + 52
1614 .word 0x8d9020d4 ! 426: WRPR_PSTATE_I wrpr %r0, 0x00d4, %pstate
1615 .word 0x8d902ec1 ! 427: WRPR_PSTATE_I wrpr %r0, 0x0ec1, %pstate
1616 otherw
1617 mov 0xb2, %r30
1618 .word 0x93d0001e ! 428: Tcc_R tne icc_or_xcc, %r0 + %r30
1619 .word 0x8d902ad4 ! 429: WRPR_PSTATE_I wrpr %r0, 0x0ad4, %pstate
1620 .word 0x81982355 ! 430: WRHPR_HPSTATE_I wrhpr %r0, 0x0355, %hpstate
1621 .word 0x93902000 ! 431: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1622 .word 0xd48fe030 ! 432: LDUBA_I lduba [%r31, + 0x0030] %asi, %r10
1623 .word 0x8d90261a ! 433: WRPR_PSTATE_I wrpr %r0, 0x061a, %pstate
1624 .word 0x91a000d2 ! 434: FNEGd fnegd %f18, %f8
1625 .word 0x87902370 ! 435: WRPR_TT_I wrpr %r0, 0x0370, %tt
1626 .word 0x8198271f ! 436: WRHPR_HPSTATE_I wrhpr %r0, 0x071f, %hpstate
1627DS_55:
1628 .word 0x20800001 ! 438: BN bn,a <label_0x1>
1629 pdist %f16, %f30, %f22
1630 .word 0x81b40308 ! 437: ALLIGNADDRESS alignaddr %r16, %r8, %r0
1631 .word 0x81982a4e ! 438: WRHPR_HPSTATE_I wrhpr %r0, 0x0a4e, %hpstate
1632 ta T_CHANGE_HPRIV ! macro
1633 .word 0xa76cc005 ! 440: SDIVX_R sdivx %r19, %r5, %r19
1634DS_56:
1635 .word 0x34800001 ! 442: BG bg,a <label_0x1>
1636 .word 0xbfe7c000 ! 441: SAVE_R save %r31, %r0, %r31
1637DS_57:
1638 .word 0x22800001 ! 443: BE be,a <label_0x1>
1639 .word 0xbfe7c000 ! 442: SAVE_R save %r31, %r0, %r31
1640 ta T_CHANGE_HPRIV ! macro
1641 .word 0x8d540000 ! 444: RDPR_GL rdpr %-, %r6
1642splash_lsu_58:
1643 set 0x3, %r2
1644 stxa %r2, [%r0] ASI_LSU_CONTROL
1645 .word 0x3d400001 ! 445: FBPULE fbule,a,pn %fcc0, <label_0x1>
1646 .word 0x87802088 ! 446: WRASI_I wr %r0, 0x0088, %asi
1647 .word 0x87802004 ! 447: WRASI_I wr %r0, 0x0004, %asi
1648 .word 0x81982a05 ! 448: WRHPR_HPSTATE_I wrhpr %r0, 0x0a05, %hpstate
1649 .word 0x8198268c ! 449: WRHPR_HPSTATE_I wrhpr %r0, 0x068c, %hpstate
1650 .word 0x819828d4 ! 450: WRHPR_HPSTATE_I wrhpr %r0, 0x08d4, %hpstate
1651DS_59:
1652 .word 0x34800001 ! 452: BG bg,a <label_0x1>
1653 pdist %f20, %f10, %f2
1654 .word 0x89b18304 ! 451: ALLIGNADDRESS alignaddr %r6, %r4, %r4
1655 .word 0xc927e001 ! 452: STF_I st %f4, [0x0001, %r31]
1656 invalw
1657 mov 0xb1, %r30
1658 .word 0x83d0001e ! 453: Tcc_R te icc_or_xcc, %r0 + %r30
1659 .word 0x906e001a ! 454: UDIVX_R udivx %r24, %r26, %r8
1660 .word 0xaf540000 ! 455: RDPR_GL rdpr %-, %r23
1661 .word 0x8d902cdf ! 456: WRPR_PSTATE_I wrpr %r0, 0x0cdf, %pstate
1662 .word 0x87902301 ! 457: WRPR_TT_I wrpr %r0, 0x0301, %tt
1663 .word 0x99902005 ! 458: WRPR_CLEANWIN_I wrpr %r0, 0x0005, %cleanwin
1664 .word 0xacd80008 ! 459: SMULcc_R smulcc %r0, %r8, %r22
1665 .word 0x8d902c55 ! 460: WRPR_PSTATE_I wrpr %r0, 0x0c55, %pstate
1666 .word 0x91504000 ! 461: RDPR_TNPC rdpr %tnpc, %r8
1667 .word 0x8d902c5f ! 462: WRPR_PSTATE_I wrpr %r0, 0x0c5f, %pstate
1668DS_60:
1669 .word 0x20800001 ! 464: BN bn,a <label_0x1>
1670 allclean
1671 .word 0x8bb18310 ! 463: ALLIGNADDRESS alignaddr %r6, %r16, %r5
1672 .word 0xcb37e001 ! 464: STQF_I - %f5, [0x0001, %r31]
1673 .word 0x93d02034 ! 465: Tcc_I tne icc_or_xcc, %r0 + 52
1674 .word 0x90fca001 ! 466: SDIVcc_I sdivcc %r18, 0x0001, %r8
1675 .word 0xa1902009 ! 467: WRPR_GL_I wrpr %r0, 0x0009, %-
1676 .word 0x87802016 ! 468: WRASI_I wr %r0, 0x0016, %asi
1677 .word 0x87902010 ! 469: WRPR_TT_I wrpr %r0, 0x0010, %tt
1678 .word 0x81982e54 ! 470: WRHPR_HPSTATE_I wrhpr %r0, 0x0e54, %hpstate
1679 ta T_CHANGE_TO_TL0 ! macro
1680 .word 0x83d02034 ! 472: Tcc_I te icc_or_xcc, %r0 + 52
1681splash_lsu_61:
1682 set 0x7, %r2
1683 stxa %r2, [%r0] ASI_LSU_CONTROL
1684 .word 0x3d400001 ! 473: FBPULE fbule,a,pn %fcc0, <label_0x1>
1685DS_62:
1686 nop
1687 not %g0, %g2
1688 jmp %g2
1689 .word 0x9d902004 ! 474: WRPR_WSTATE_I wrpr %r0, 0x0004, %wstate
1690 .word 0x93902002 ! 475: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
1691 .word 0x8da0055b ! 476: FSQRTd fsqrt
1692 .word 0x81982b44 ! 477: WRHPR_HPSTATE_I wrhpr %r0, 0x0b44, %hpstate
1693 .word 0x81982cd7 ! 478: WRHPR_HPSTATE_I wrhpr %r0, 0x0cd7, %hpstate
1694 ta T_CHANGE_HPRIV ! macro
1695 ta T_CHANGE_PRIV ! macro
1696 .word 0x8d902cc1 ! 481: WRPR_PSTATE_I wrpr %r0, 0x0cc1, %pstate
1697 .word 0x90c16001 ! 482: ADDCcc_I addccc %r5, 0x0001, %r8
1698 .word 0x93a00546 ! 483: FSQRTd fsqrt
1699 .word 0x9ad58002 ! 484: UMULcc_R umulcc %r22, %r2, %r13
1700 .word 0x879023ca ! 485: WRPR_TT_I wrpr %r0, 0x03ca, %tt
1701 .word 0x9f802001 ! 486: SIR sir 0x0001
1702DS_63:
1703 .word 0x32800001 ! 488: BNE bne,a <label_0x1>
1704 .word 0xbfe7c000 ! 487: SAVE_R save %r31, %r0, %r31
1705 ta T_CHANGE_TO_TL0 ! macro
1706 .word 0x2e700001 ! 489: BPVS <illegal instruction>
1707 .word 0x86a84008 ! 490: ANDNcc_R andncc %r1, %r8, %r3
1708 .word 0x93902001 ! 491: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
1709 .word 0x36800001 ! 492: BGE bge,a <label_0x1>
1710 .word 0x87902078 ! 493: WRPR_TT_I wrpr %r0, 0x0078, %tt
1711 .word 0xc737c008 ! 494: STQF_R - %f3, [%r8, %r31]
1712 .word 0xb7508000 ! 495: RDPR_TSTATE rdpr %tstate, %r27
1713 .word 0x93d02031 ! 496: Tcc_I tne icc_or_xcc, %r0 + 49
1714 .word 0xa190200d ! 497: WRPR_GL_I wrpr %r0, 0x000d, %-
1715 .word 0x93902006 ! 498: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
1716 .word 0x8d9020d9 ! 499: WRPR_PSTATE_I wrpr %r0, 0x00d9, %pstate
1717splash_htba_64:
1718 ta T_CHANGE_HPRIV
1719 set 0x80000, %r2
1720 .word 0x8b980002 ! 500: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
1721 .word 0x88d98003 ! 501: SMULcc_R smulcc %r6, %r3, %r4
1722 otherw
1723 mov 0xb4, %r30
1724 .word 0x91d0001e ! 502: Tcc_R ta icc_or_xcc, %r0 + %r30
1725 .word 0x8d90224c ! 503: WRPR_PSTATE_I wrpr %r0, 0x024c, %pstate
1726 .word 0x8d902c0b ! 504: WRPR_PSTATE_I wrpr %r0, 0x0c0b, %pstate
1727 .word 0xb76d4000 ! 505: SDIVX_R sdivx %r21, %r0, %r27
1728 .word 0x87902297 ! 506: WRPR_TT_I wrpr %r0, 0x0297, %tt
1729 .word 0x81982f56 ! 507: WRHPR_HPSTATE_I wrhpr %r0, 0x0f56, %hpstate
1730change_to_randtl_65:
1731 ta T_CHANGE_HPRIV ! macro
1732 .word 0x8f902005 ! 508: WRPR_TL_I wrpr %r0, 0x0005, %tl
1733 .word 0x81982116 ! 509: WRHPR_HPSTATE_I wrhpr %r0, 0x0116, %hpstate
1734 invalw
1735 mov 0x31, %r30
1736 .word 0x93d0001e ! 510: Tcc_R tne icc_or_xcc, %r0 + %r30
1737change_to_tl1_66:
1738 ta T_CHANGE_PRIV
1739 ta T_CHANGE_TO_TL1 ! macro
1740change_to_randtl_67:
1741 ta T_CHANGE_HPRIV ! macro
1742 .word 0x8f902003 ! 512: WRPR_TL_I wrpr %r0, 0x0003, %tl
1743 .word 0xf69004a0 ! 513: LDUHA_R lduha [%r0, %r0] 0x25, %r27
1744 .word 0xf6d004a0 ! 514: LDSHA_R ldsha [%r0, %r0] 0x25, %r27
1745 .word 0xf68008a0 ! 515: LDUWA_R lduwa [%r0, %r0] 0x45, %r27
1746 invalw
1747 mov 0x31, %r30
1748 .word 0x91d0001e ! 516: Tcc_R ta icc_or_xcc, %r0 + %r30
1749 .word 0xf6800a80 ! 517: LDUWA_R lduwa [%r0, %r0] 0x54, %r27
1750 .word 0x93902007 ! 518: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
1751 .word 0xf6d7e010 ! 519: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r27
1752reduce_priv_level_68:
1753 .word 0x8f902000 ! 521: WRPR_TL_I wrpr %r0, 0x0000, %tl
1754 ta T_CHANGE_NONPRIV ! macro
1755 .word 0x8981c002 ! 520: WRTICK_R wr %r7, %r2, %tick
1756 .word 0x93902007 ! 521: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
1757 .word 0x87902271 ! 522: WRPR_TT_I wrpr %r0, 0x0271, %tt
1758 .word 0x95508000 ! 523: RDPR_TSTATE rdpr %tstate, %r10
1759 .word 0x93a00546 ! 524: FSQRTd fsqrt
1760 .word 0x82fcc006 ! 525: SDIVcc_R sdivcc %r19, %r6, %r1
1761 ta T_CHANGE_TO_TL0 ! macro
1762 .word 0xad500000 ! 527: RDPR_TPC rdpr %tpc, %r22
1763 .word 0x87902024 ! 528: WRPR_TT_I wrpr %r0, 0x0024, %tt
1764 .word 0x95508000 ! 529: RDPR_TSTATE rdpr %tstate, %r10
1765 .word 0x81982307 ! 530: WRHPR_HPSTATE_I wrhpr %r0, 0x0307, %hpstate
1766DS_69:
1767 .word 0x20800001 ! 532: BN bn,a <label_0x1>
1768 .word 0x22800001 ! 532: BE be,a <label_0x1>
1769 .word 0xc1108015 ! 532: LDQF_R - [%r2, %r21], %f0
1770 .word 0x97a5c82d ! 531: FADDs fadds %f23, %f13, %f11
1771 .word 0xb751c000 ! 532: RDPR_TL rdpr %tl, %r27
1772 .word 0x9f802001 ! 533: SIR sir 0x0001
1773 .word 0xa190200f ! 534: WRPR_GL_I wrpr %r0, 0x000f, %-
1774 .word 0x93902006 ! 535: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
1775 .word 0x93902006 ! 536: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
1776splash_lsu_70:
1777 set 0x17, %r2
1778 stxa %r2, [%r0] ASI_LSU_CONTROL
1779 .word 0x3d400001 ! 537: FBPULE fbule,a,pn %fcc0, <label_0x1>
1780 .word 0xa1902005 ! 538: WRPR_GL_I wrpr %r0, 0x0005, %-
1781 .word 0x81982d5c ! 539: WRHPR_HPSTATE_I wrhpr %r0, 0x0d5c, %hpstate
1782splash_tba_71:
1783 ta T_CHANGE_PRIV
1784 set 0x120000, %r2
1785 .word 0x8b900002 ! 540: WRPR_TBA_R wrpr %r0, %r2, %tba
1786 .word 0x8d902a16 ! 541: WRPR_PSTATE_I wrpr %r0, 0x0a16, %pstate
1787 .word 0xf67fe001 ! 542: SWAP_I swap %r27, [%r31 + 0x0001]
1788 .word 0x8198295e ! 543: WRHPR_HPSTATE_I wrhpr %r0, 0x095e, %hpstate
1789 .word 0x8f6b4019 ! 544: SDIVX_R sdivx %r13, %r25, %r7
1790change_to_randtl_72:
1791 ta T_CHANGE_PRIV ! macro
1792 .word 0x8f902001 ! 545: WRPR_TL_I wrpr %r0, 0x0001, %tl
1793 .word 0xa86ec004 ! 546: UDIVX_R udivx %r27, %r4, %r20
1794 .word 0xe88008a0 ! 547: LDUWA_R lduwa [%r0, %r0] 0x45, %r20
1795 ta T_CHANGE_PRIV ! macro
1796 ta T_CHANGE_PRIV ! macro
1797reduce_priv_level_73:
1798 .word 0x8f902000 ! 551: WRPR_TL_I wrpr %r0, 0x0000, %tl
1799 ta T_CHANGE_NONHPRIV ! macro
1800 .word 0x81b01021 ! 550: SIAM siam 1
1801 .word 0xa4d4c009 ! 551: UMULcc_R umulcc %r19, %r9, %r18
1802 ta T_CHANGE_HPRIV ! macro
1803 .word 0x8d902a4a ! 553: WRPR_PSTATE_I wrpr %r0, 0x0a4a, %pstate
1804 .word 0x8d902e05 ! 554: WRPR_PSTATE_I wrpr %r0, 0x0e05, %pstate
1805 .word 0xae82c002 ! 555: ADDcc_R addcc %r11, %r2, %r23
1806 .word 0x9f802001 ! 556: SIR sir 0x0001
1807 .word 0x9351c000 ! 557: RDPR_TL rdpr %tl, %r9
1808DS_74:
1809 .word 0x32800001 ! 559: BNE bne,a <label_0x1>
1810 .word 0xc135c001 ! 559: STQF_R - %f0, [%r1, %r23]
1811 normalw
1812 .word 0x9b458000 ! 558: RD_SOFTINT_REG rd %softint, %r13
1813 .word 0xda8008a0 ! 559: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
1814 .word 0x9b51c000 ! 560: RDPR_TL rdpr %tl, %r13
1815 .word 0x87802010 ! 561: WRASI_I wr %r0, 0x0010, %asi
1816 .word 0x83a000d0 ! 562: FNEGd fnegd %f16, %f32
1817 .word 0xc2d7e010 ! 563: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r1
1818 .word 0xc28008a0 ! 564: LDUWA_R lduwa [%r0, %r0] 0x45, %r1
1819 .word 0x93902007 ! 565: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
1820 .word 0xc237c010 ! 566: STH_R sth %r1, [%r31 + %r16]
1821 .word 0xa190200e ! 567: WRPR_GL_I wrpr %r0, 0x000e, %-
1822 .word 0x87540000 ! 568: RDPR_GL rdpr %-, %r3
1823 .word 0x8e81e001 ! 569: ADDcc_I addcc %r7, 0x0001, %r7
1824reduce_priv_level_75:
1825 .word 0x8f902000 ! 571: WRPR_TL_I wrpr %r0, 0x0000, %tl
1826 ta T_CHANGE_NONHPRIV ! macro
1827 .word 0xb1834008 ! 570: WR_STICK_REG_R wr %r13, %r8, %-
1828DS_76:
1829 nop
1830 not %g0, %g2
1831 jmp %g2
1832 .word 0x9d902002 ! 571: WRPR_WSTATE_I wrpr %r0, 0x0002, %wstate
1833 .word 0xcecfe000 ! 572: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r7
1834 .word 0x91d02030 ! 573: Tcc_I ta icc_or_xcc, %r0 + 48
1835 .word 0x8d90240e ! 574: WRPR_PSTATE_I wrpr %r0, 0x040e, %pstate
1836 .word 0x819823c4 ! 575: WRHPR_HPSTATE_I wrhpr %r0, 0x03c4, %hpstate
1837 .word 0xa8fe2001 ! 576: SDIVcc_I sdivcc %r24, 0x0001, %r20
1838 .word 0x8d902899 ! 577: WRPR_PSTATE_I wrpr %r0, 0x0899, %pstate
1839change_to_randtl_77:
1840 ta T_CHANGE_HPRIV ! macro
1841 .word 0x8f902005 ! 578: WRPR_TL_I wrpr %r0, 0x0005, %tl
1842 .word 0x81982d1f ! 579: WRHPR_HPSTATE_I wrhpr %r0, 0x0d1f, %hpstate
1843DS_78:
1844 .word 0x32800001 ! 581: BNE bne,a <label_0x1>
1845 .word 0xe3334011 ! 581: STQF_R - %f17, [%r17, %r13]
1846 normalw
1847 .word 0x83458000 ! 580: RD_SOFTINT_REG rd %softint, %r1
1848DS_79:
1849 nop
1850 not %g0, %g2
1851 jmp %g2
1852 .word 0x9d902001 ! 581: WRPR_WSTATE_I wrpr %r0, 0x0001, %wstate
1853 ta T_CHANGE_PRIV ! macro
1854 .word 0x9b540000 ! 583: RDPR_GL rdpr %-, %r13
1855 .word 0x93902005 ! 584: WRPR_CWP_I wrpr %r0, 0x0005, %cwp
1856 .word 0x8d902a0d ! 585: WRPR_PSTATE_I wrpr %r0, 0x0a0d, %pstate
1857 .word 0x906b0019 ! 586: UDIVX_R udivx %r12, %r25, %r8
1858 .word 0x95540000 ! 587: RDPR_GL rdpr %-, %r10
1859 .word 0x879023c3 ! 588: WRPR_TT_I wrpr %r0, 0x03c3, %tt
1860DS_80:
1861 nop
1862 not %g0, %g2
1863 jmp %g2
1864 .word 0x9d902000 ! 589: WRPR_WSTATE_I wrpr %r0, 0x0000, %wstate
1865 .word 0xa550c000 ! 590: RDPR_TT rdpr %tt, %r18
1866 otherw
1867 mov 0x30, %r30
1868 .word 0x91d0001e ! 591: Tcc_R ta icc_or_xcc, %r0 + %r30
1869 .word 0x81982dcd ! 592: WRHPR_HPSTATE_I wrhpr %r0, 0x0dcd, %hpstate
1870 .word 0xe4800b40 ! 593: LDUWA_R lduwa [%r0, %r0] 0x5a, %r18
1871 .word 0x91d02031 ! 594: Tcc_I ta icc_or_xcc, %r0 + 49
1872 .word 0x8e806001 ! 595: ADDcc_I addcc %r1, 0x0001, %r7
1873 .word 0x8d802000 ! 596: WRFPRS_I wr %r0, 0x0000, %fprs
1874 .word 0x93902004 ! 597: WRPR_CWP_I wrpr %r0, 0x0004, %cwp
1875 .word 0x81982154 ! 598: WRHPR_HPSTATE_I wrhpr %r0, 0x0154, %hpstate
1876splash_lsu_81:
1877 set 0xb, %r2
1878 stxa %r2, [%r0] ASI_LSU_CONTROL
1879 .word 0x3d400001 ! 599: FBPULE fbule,a,pn %fcc0, <label_0x1>
1880 .word 0x87902274 ! 600: WRPR_TT_I wrpr %r0, 0x0274, %tt
1881 .word 0x26800001 ! 601: BL bl,a <label_0x1>
1882 .word 0xce17c000 ! 602: LDUH_R lduh [%r31 + %r0], %r7
1883 .word 0x9f802001 ! 603: SIR sir 0x0001
1884DS_82:
1885 nop
1886 not %g0, %g2
1887 jmp %g2
1888 .word 0x9d902003 ! 604: WRPR_WSTATE_I wrpr %r0, 0x0003, %wstate
1889 .word 0x2a700001 ! 605: BPCS <illegal instruction>
1890 .word 0xcf27c019 ! 606: STF_R st %f7, [%r25, %r31]
1891 ta T_CHANGE_PRIV ! macro
1892 .word 0x2a800001 ! 608: BCS bcs,a <label_0x1>
1893 otherw
1894 mov 0xb4, %r30
1895 .word 0x91d0001e ! 609: Tcc_R ta icc_or_xcc, %r0 + %r30
1896 .word 0xb3504000 ! 610: RDPR_TNPC rdpr %tnpc, %r25
1897change_to_tl1_83:
1898 ta T_CHANGE_HPRIV
1899 ta T_CHANGE_TO_TL1 ! macro
1900 invalw
1901 mov 0x34, %r30
1902 .word 0x93d0001e ! 612: Tcc_R tne icc_or_xcc, %r0 + %r30
1903 .word 0x93902001 ! 613: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
1904 .word 0x93902003 ! 614: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
1905 .word 0xa2810003 ! 615: ADDcc_R addcc %r4, %r3, %r17
1906 .word 0x83d02035 ! 616: Tcc_I te icc_or_xcc, %r0 + 53
1907 .word 0x91504000 ! 617: RDPR_TNPC rdpr %tnpc, %r8
1908 .word 0x81982994 ! 618: WRHPR_HPSTATE_I wrhpr %r0, 0x0994, %hpstate
1909 ta T_CHANGE_PRIV ! macro
1910DS_84:
1911 .word 0x20800001 ! 621: BN bn,a <label_0x1>
1912 allclean
1913 .word 0x8db00308 ! 620: ALLIGNADDRESS alignaddr %r0, %r8, %r6
1914 .word 0x93702001 ! 621: POPC_I popc 0x0001, %r9
1915 .word 0x819826ce ! 622: WRHPR_HPSTATE_I wrhpr %r0, 0x06ce, %hpstate
1916 .word 0xd29004a0 ! 623: LDUHA_R lduha [%r0, %r0] 0x25, %r9
1917 .word 0x8d802000 ! 624: WRFPRS_I wr %r0, 0x0000, %fprs
1918 otherw
1919 mov 0xb1, %r30
1920 .word 0x93d0001e ! 625: Tcc_R tne icc_or_xcc, %r0 + %r30
1921splash_lsu_85:
1922 set 0x17, %r2
1923 stxa %r2, [%r0] ASI_LSU_CONTROL
1924 .word 0x3d400001 ! 626: FBPULE fbule,a,pn %fcc0, <label_0x1>
1925 .word 0x8d90261f ! 627: WRPR_PSTATE_I wrpr %r0, 0x061f, %pstate
1926 .word 0xb3a01a75 ! 628: FqTOi fqtoi
1927 .word 0x87802010 ! 629: WRASI_I wr %r0, 0x0010, %asi
1928 .word 0x93902000 ! 630: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
1929 ta T_CHANGE_HPRIV ! macro
1930 .word 0x99902002 ! 632: WRPR_CLEANWIN_I wrpr %r0, 0x0002, %cleanwin
1931 .word 0x8790235a ! 633: WRPR_TT_I wrpr %r0, 0x035a, %tt
1932 .word 0xa5504000 ! 634: RDPR_TNPC rdpr %tnpc, %r18
1933 .word 0x8d902c4c ! 635: WRPR_PSTATE_I wrpr %r0, 0x0c4c, %pstate
1934 .word 0xe4d804a0 ! 636: LDXA_R ldxa [%r0, %r0] 0x25, %r18
1935 .word 0x87a309b4 ! 637: FDIVs fdivs %f12, %f20, %f3
1936 .word 0xc6ffc034 ! 638: SWAPA_R swapa %r3, [%r31 + %r20] 0x01
1937 .word 0x93902004 ! 639: WRPR_CWP_I wrpr %r0, 0x0004, %cwp
1938 .word 0x8a698011 ! 640: UDIVX_R udivx %r6, %r17, %r5
1939 .word 0x91d02030 ! 641: Tcc_I ta icc_or_xcc, %r0 + 48
1940 .word 0xa190200b ! 642: WRPR_GL_I wrpr %r0, 0x000b, %-
1941 ta T_CHANGE_HPRIV ! macro
1942 invalw
1943 mov 0x35, %r30
1944 .word 0x91d0001e ! 644: Tcc_R ta icc_or_xcc, %r0 + %r30
1945 .word 0x30700001 ! 645: BPA <illegal instruction>
1946change_to_randtl_86:
1947 ta T_CHANGE_PRIV ! macro
1948 .word 0x8f902002 ! 646: WRPR_TL_I wrpr %r0, 0x0002, %tl
1949 otherw
1950 mov 0x30, %r30
1951 .word 0x83d0001e ! 647: Tcc_R te icc_or_xcc, %r0 + %r30
1952 .word 0x99702001 ! 648: POPC_I popc 0x0001, %r12
1953 .word 0xb6480013 ! 649: MULX_R mulx %r0, %r19, %r27
1954 .word 0x93902006 ! 650: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
1955 .word 0x9f802001 ! 651: SIR sir 0x0001
1956 .word 0x8d90260c ! 652: WRPR_PSTATE_I wrpr %r0, 0x060c, %pstate
1957 .word 0x8b540000 ! 653: RDPR_GL rdpr %-, %r5
1958 .word 0x93902001 ! 654: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
1959 ta T_CHANGE_TO_TL0 ! macro
1960 .word 0xa190200f ! 656: WRPR_GL_I wrpr %r0, 0x000f, %-
1961 ta T_CHANGE_TO_TL0 ! macro
1962 otherw
1963 mov 0xb1, %r30
1964 .word 0x91d0001e ! 658: Tcc_R ta icc_or_xcc, %r0 + %r30
1965 ta T_CHANGE_TO_TL0 ! macro
1966 .word 0xca77c013 ! 660: STX_R stx %r5, [%r31 + %r19]
1967 .word 0xab500000 ! 661: RDPR_TPC rdpr %tpc, %r21
1968 .word 0xea800ac0 ! 662: LDUWA_R lduwa [%r0, %r0] 0x56, %r21
1969 .word 0xa190200c ! 663: WRPR_GL_I wrpr %r0, 0x000c, %-
1970 otherw
1971 mov 0x30, %r30
1972 .word 0x93d0001e ! 664: Tcc_R tne icc_or_xcc, %r0 + %r30
1973 .word 0xa1902006 ! 665: WRPR_GL_I wrpr %r0, 0x0006, %-
1974 .word 0xa1902000 ! 666: WRPR_GL_I wrpr %r0, 0x0000, %-
1975 .word 0xea7fe001 ! 667: SWAP_I swap %r21, [%r31 + 0x0001]
1976 .word 0x8d902c15 ! 668: WRPR_PSTATE_I wrpr %r0, 0x0c15, %pstate
1977 .word 0xa190200e ! 669: WRPR_GL_I wrpr %r0, 0x000e, %-
1978 .word 0xeac7e030 ! 670: LDSWA_I ldswa [%r31, + 0x0030] %asi, %r21
1979 otherw
1980 mov 0xb1, %r30
1981 .word 0x91d0001e ! 671: Tcc_R ta icc_or_xcc, %r0 + %r30
1982 .word 0x8efb0002 ! 672: SDIVcc_R sdivcc %r12, %r2, %r7
1983 .word 0x9151c000 ! 673: RDPR_TL rdpr %tl, %r8
1984 .word 0x83b14fe8 ! 674: FONES fones %f1
1985DS_87:
1986 .word 0x32800001 ! 676: BNE bne,a <label_0x1>
1987 allclean
1988 .word 0x93b5031a ! 675: ALLIGNADDRESS alignaddr %r20, %r26, %r9
1989 .word 0x94d1e001 ! 676: UMULcc_I umulcc %r7, 0x0001, %r10
1990 .word 0x8d902ed8 ! 677: WRPR_PSTATE_I wrpr %r0, 0x0ed8, %pstate
1991 .word 0xb7a049db ! 678: FDIVd fdivd %f32, %f58, %f58
1992 .word 0x8ba089e9 ! 679: FDIVq dis not found
1993
1994 .word 0x8d90284a ! 680: WRPR_PSTATE_I wrpr %r0, 0x084a, %pstate
1995 .word 0x8198278f ! 681: WRHPR_HPSTATE_I wrhpr %r0, 0x078f, %hpstate
1996splash_lsu_88:
1997 set 0x1b, %r2
1998 stxa %r2, [%r0] ASI_LSU_CONTROL
1999 .word 0x3d400001 ! 682: FBPULE fbule,a,pn %fcc0, <label_0x1>
2000 .word 0x8c6aa001 ! 683: UDIVX_I udivx %r10, 0x0001, %r6
2001 .word 0x91d02030 ! 684: Tcc_I ta icc_or_xcc, %r0 + 48
2002 .word 0x93902003 ! 685: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
2003 .word 0xb2d5c017 ! 686: UMULcc_R umulcc %r23, %r23, %r25
2004 .word 0x8da009ea ! 687: FDIVq dis not found
2005
2006 .word 0x93902007 ! 688: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
2007splash_tba_89:
2008 ta T_CHANGE_PRIV
2009 set 0x120000, %r2
2010 .word 0x8b900002 ! 689: WRPR_TBA_R wrpr %r0, %r2, %tba
2011 .word 0x8d698003 ! 690: SDIVX_R sdivx %r6, %r3, %r6
2012 .word 0x81982c54 ! 691: WRHPR_HPSTATE_I wrhpr %r0, 0x0c54, %hpstate
2013 .word 0x8d902e89 ! 692: WRPR_PSTATE_I wrpr %r0, 0x0e89, %pstate
2014 .word 0x93902001 ! 693: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
2015 ta T_CHANGE_HPRIV ! macro
2016splash_tba_90:
2017 ta T_CHANGE_PRIV
2018 set 0x003e0000, %r2
2019 .word 0x8b900002 ! 695: WRPR_TBA_R wrpr %r0, %r2, %tba
2020 .word 0x8fa189e9 ! 696: FDIVq dis not found
2021
2022 .word 0x81982a0f ! 697: WRHPR_HPSTATE_I wrhpr %r0, 0x0a0f, %hpstate
2023 .word 0x8d902e5b ! 698: WRPR_PSTATE_I wrpr %r0, 0x0e5b, %pstate
2024change_to_randtl_91:
2025 ta T_CHANGE_HPRIV ! macro
2026 .word 0x8f902004 ! 699: WRPR_TL_I wrpr %r0, 0x0004, %tl
2027 invalw
2028 mov 0x30, %r30
2029 .word 0x91d0001e ! 700: Tcc_R ta icc_or_xcc, %r0 + %r30
2030 .word 0xaba24d2c ! 701: FsMULd fsmuld %f9, %f12, %f52
2031 .word 0x8fa1c9d3 ! 702: FDIVd fdivd %f38, %f50, %f38
2032splash_lsu_92:
2033 set 0x1b, %r2
2034 stxa %r2, [%r0] ASI_LSU_CONTROL
2035 .word 0x3d400001 ! 703: FBPULE fbule,a,pn %fcc0, <label_0x1>
2036 .word 0x91d02032 ! 704: Tcc_I ta icc_or_xcc, %r0 + 50
2037splash_lsu_93:
2038 set 0x7, %r2
2039 stxa %r2, [%r0] ASI_LSU_CONTROL
2040 .word 0x3d400001 ! 705: FBPULE fbule,a,pn %fcc0, <label_0x1>
2041DS_94:
2042 nop
2043 not %g0, %g2
2044 jmp %g2
2045 .word 0x9d902000 ! 706: WRPR_WSTATE_I wrpr %r0, 0x0000, %wstate
2046 .word 0xce8008a0 ! 707: LDUWA_R lduwa [%r0, %r0] 0x45, %r7
2047 .word 0x93902001 ! 708: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
2048 .word 0x9951c000 ! 709: RDPR_TL rdpr %tl, %r12
2049 .word 0xd8d804a0 ! 710: LDXA_R ldxa [%r0, %r0] 0x25, %r12
2050 otherw
2051 mov 0x34, %r30
2052 .word 0x91d0001e ! 711: Tcc_R ta icc_or_xcc, %r0 + %r30
2053 .word 0xd8cfe030 ! 712: LDSBA_I ldsba [%r31, + 0x0030] %asi, %r12
2054 otherw
2055 mov 0xb2, %r30
2056 .word 0x83d0001e ! 713: Tcc_R te icc_or_xcc, %r0 + %r30
2057 .word 0x8d902416 ! 714: WRPR_PSTATE_I wrpr %r0, 0x0416, %pstate
2058 .word 0x2a800001 ! 715: BCS bcs,a <label_0x1>
2059 .word 0xa0fa6001 ! 716: SDIVcc_I sdivcc %r9, 0x0001, %r16
2060 .word 0x91d02031 ! 717: Tcc_I ta icc_or_xcc, %r0 + 49
2061DS_95:
2062 .word 0x32800001 ! 719: BNE bne,a <label_0x1>
2063 .word 0xbfe7c000 ! 718: SAVE_R save %r31, %r0, %r31
2064 .word 0xe08804a0 ! 719: LDUBA_R lduba [%r0, %r0] 0x25, %r16
2065 .word 0xa1902000 ! 720: WRPR_GL_I wrpr %r0, 0x0000, %-
2066 .word 0x84680005 ! 721: UDIVX_R udivx %r0, %r5, %r2
2067splash_htba_96:
2068 ta T_CHANGE_HPRIV
2069 set 0x003b0000, %r2
2070 .word 0x8b980002 ! 722: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
2071 .word 0xc4cfe010 ! 723: LDSBA_I ldsba [%r31, + 0x0010] %asi, %r2
2072 .word 0x91d02032 ! 724: Tcc_I ta icc_or_xcc, %r0 + 50
2073DS_97:
2074 .word 0x32800001 ! 726: BNE bne,a <label_0x1>
2075 .word 0xbfe7c000 ! 725: SAVE_R save %r31, %r0, %r31
2076 invalw
2077 mov 0x33, %r30
2078 .word 0x93d0001e ! 726: Tcc_R tne icc_or_xcc, %r0 + %r30
2079 .word 0x81982a97 ! 727: WRHPR_HPSTATE_I wrhpr %r0, 0x0a97, %hpstate
2080 .word 0xa190200c ! 728: WRPR_GL_I wrpr %r0, 0x000c, %-
2081 .word 0x87902158 ! 729: WRPR_TT_I wrpr %r0, 0x0158, %tt
2082 invalw
2083 mov 0xb3, %r30
2084 .word 0x91d0001e ! 730: Tcc_R ta icc_or_xcc, %r0 + %r30
2085 .word 0x97a00544 ! 731: FSQRTd fsqrt
2086 .word 0xa1902008 ! 732: WRPR_GL_I wrpr %r0, 0x0008, %-
2087 .word 0x9a6c2001 ! 733: UDIVX_I udivx %r16, 0x0001, %r13
2088 ta T_CHANGE_HPRIV ! macro
2089 .word 0x8d902cc3 ! 735: WRPR_PSTATE_I wrpr %r0, 0x0cc3, %pstate
2090 .word 0x93902006 ! 736: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
2091 .word 0x8d802000 ! 737: WRFPRS_I wr %r0, 0x0000, %fprs
2092 .word 0x93902004 ! 738: WRPR_CWP_I wrpr %r0, 0x0004, %cwp
2093splash_lsu_98:
2094 set 0x7, %r2
2095 stxa %r2, [%r0] ASI_LSU_CONTROL
2096 .word 0x3d400001 ! 739: FBPULE fbule,a,pn %fcc0, <label_0x1>
2097 .word 0x8790200d ! 740: WRPR_TT_I wrpr %r0, 0x000d, %tt
2098 .word 0x93d02031 ! 741: Tcc_I tne icc_or_xcc, %r0 + 49
2099 .word 0x87902116 ! 742: WRPR_TT_I wrpr %r0, 0x0116, %tt
2100 .word 0x93902007 ! 743: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
2101change_to_randtl_99:
2102 ta T_CHANGE_HPRIV ! macro
2103 .word 0x8f902005 ! 744: WRPR_TL_I wrpr %r0, 0x0005, %tl
2104 .word 0x9f802001 ! 745: SIR sir 0x0001
2105 .word 0x879020f4 ! 746: WRPR_TT_I wrpr %r0, 0x00f4, %tt
2106 .word 0xdacfe000 ! 747: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r13
2107 .word 0x9f802001 ! 748: SIR sir 0x0001
2108 invalw
2109 mov 0xb4, %r30
2110 .word 0x83d0001e ! 749: Tcc_R te icc_or_xcc, %r0 + %r30
2111DS_100:
2112 .word 0x22800001 ! 751: BE be,a <label_0x1>
2113 .word 0xc7330011 ! 751: STQF_R - %f3, [%r17, %r12]
2114 normalw
2115 .word 0x8f458000 ! 750: RD_SOFTINT_REG rd %softint, %r7
2116 otherw
2117 mov 0x33, %r30
2118 .word 0x93d0001e ! 751: Tcc_R tne icc_or_xcc, %r0 + %r30
2119 otherw
2120 mov 0x31, %r30
2121 .word 0x91d0001e ! 752: Tcc_R ta icc_or_xcc, %r0 + %r30
2122 .word 0xcec804a0 ! 753: LDSBA_R ldsba [%r0, %r0] 0x25, %r7
2123 .word 0x91d02034 ! 754: Tcc_I ta icc_or_xcc, %r0 + 52
2124 .word 0xce9fe001 ! 755: LDDA_I ldda [%r31, + 0x0001] %asi, %r7
2125 .word 0x97540000 ! 756: RDPR_GL rdpr %-, %r11
2126 .word 0x9b6a8001 ! 757: SDIVX_R sdivx %r10, %r1, %r13
2127 .word 0x91d02030 ! 758: Tcc_I ta icc_or_xcc, %r0 + 48
2128 .word 0x81982847 ! 759: WRHPR_HPSTATE_I wrhpr %r0, 0x0847, %hpstate
2129 otherw
2130 mov 0xb5, %r30
2131 .word 0x91d0001e ! 760: Tcc_R ta icc_or_xcc, %r0 + %r30
2132splash_tba_101:
2133 ta T_CHANGE_PRIV
2134 set 0x120000, %r2
2135 .word 0x8b900002 ! 761: WRPR_TBA_R wrpr %r0, %r2, %tba
2136 .word 0xda8fe010 ! 762: LDUBA_I lduba [%r31, + 0x0010] %asi, %r13
2137 .word 0x8d9022cb ! 763: WRPR_PSTATE_I wrpr %r0, 0x02cb, %pstate
2138 .word 0x30700001 ! 764: BPA <illegal instruction>
2139 invalw
2140 mov 0x30, %r30
2141 .word 0x91d0001e ! 765: Tcc_R ta icc_or_xcc, %r0 + %r30
2142 .word 0x81982616 ! 766: WRHPR_HPSTATE_I wrhpr %r0, 0x0616, %hpstate
2143 .word 0x8750c000 ! 767: RDPR_TT rdpr %tt, %r3
2144 .word 0x819827d7 ! 768: WRHPR_HPSTATE_I wrhpr %r0, 0x07d7, %hpstate
2145 .word 0x8d90205f ! 769: WRPR_PSTATE_I wrpr %r0, 0x005f, %pstate
2146 .word 0xad508000 ! 770: RDPR_TSTATE rdpr %tstate, %r22
2147 .word 0xecd004a0 ! 771: LDSHA_R ldsha [%r0, %r0] 0x25, %r22
2148 .word 0x879022b9 ! 772: WRPR_TT_I wrpr %r0, 0x02b9, %tt
2149 .word 0x91d02034 ! 773: Tcc_I ta icc_or_xcc, %r0 + 52
2150 .word 0x81982795 ! 774: WRHPR_HPSTATE_I wrhpr %r0, 0x0795, %hpstate
2151 .word 0x9f802001 ! 775: SIR sir 0x0001
2152 .word 0x91d02034 ! 776: Tcc_I ta icc_or_xcc, %r0 + 52
2153 .word 0x879023d3 ! 777: WRPR_TT_I wrpr %r0, 0x03d3, %tt
2154 .word 0xa1514000 ! 778: RDPR_TBA rdpr %tba, %r16
2155 .word 0x81982acc ! 779: WRHPR_HPSTATE_I wrhpr %r0, 0x0acc, %hpstate
2156splash_tba_102:
2157 ta T_CHANGE_PRIV
2158 set 0x003f0000, %r2
2159 .word 0x8b900002 ! 780: WRPR_TBA_R wrpr %r0, %r2, %tba
2160 otherw
2161 mov 0x33, %r30
2162 .word 0x83d0001e ! 781: Tcc_R te icc_or_xcc, %r0 + %r30
2163 otherw
2164 mov 0x32, %r30
2165 .word 0x91d0001e ! 782: Tcc_R ta icc_or_xcc, %r0 + %r30
2166 .word 0xe0ffc021 ! 783: SWAPA_R swapa %r16, [%r31 + %r1] 0x01
2167 ta T_CHANGE_PRIV ! macro
2168 otherw
2169 mov 0xb5, %r30
2170 .word 0x91d0001e ! 785: Tcc_R ta icc_or_xcc, %r0 + %r30
2171 .word 0x93902003 ! 786: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
2172 .word 0xe127e001 ! 787: STF_I st %f16, [0x0001, %r31]
2173 .word 0x93902002 ! 788: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
2174 otherw
2175 mov 0xb0, %r30
2176 .word 0x91d0001e ! 789: Tcc_R ta icc_or_xcc, %r0 + %r30
2177 .word 0x879020c8 ! 790: WRPR_TT_I wrpr %r0, 0x00c8, %tt
2178 .word 0xa2d4800b ! 791: UMULcc_R umulcc %r18, %r11, %r17
2179 otherw
2180 mov 0xb2, %r30
2181 .word 0x91d0001e ! 792: Tcc_R ta icc_or_xcc, %r0 + %r30
2182splash_htba_103:
2183 ta T_CHANGE_HPRIV
2184 set 0x80000, %r2
2185 .word 0x8b980002 ! 793: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
2186 .word 0x91d02030 ! 794: Tcc_I ta icc_or_xcc, %r0 + 48
2187 .word 0x93902007 ! 795: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
2188 invalw
2189 mov 0xb4, %r30
2190 .word 0x91d0001e ! 796: Tcc_R ta icc_or_xcc, %r0 + %r30
2191 .word 0xe3e7c02b ! 797: CASA_I casa [%r31] 0x 1, %r11, %r17
2192 .word 0x93902001 ! 798: WRPR_CWP_I wrpr %r0, 0x0001, %cwp
2193splash_tba_104:
2194 ta T_CHANGE_PRIV
2195 set 0x120000, %r2
2196 .word 0x8b900002 ! 799: WRPR_TBA_R wrpr %r0, %r2, %tba
2197 otherw
2198 mov 0xb5, %r30
2199 .word 0x91d0001e ! 800: Tcc_R ta icc_or_xcc, %r0 + %r30
2200 .word 0x93902007 ! 801: WRPR_CWP_I wrpr %r0, 0x0007, %cwp
2201 .word 0xe2d004a0 ! 802: LDSHA_R ldsha [%r0, %r0] 0x25, %r17
2202 .word 0x91d02033 ! 803: Tcc_I ta icc_or_xcc, %r0 + 51
2203 .word 0x836a4013 ! 804: SDIVX_R sdivx %r9, %r19, %r1
2204 .word 0x8d902edf ! 805: WRPR_PSTATE_I wrpr %r0, 0x0edf, %pstate
2205 .word 0x2a800001 ! 806: BCS bcs,a <label_0x1>
2206 .word 0x8790221c ! 807: WRPR_TT_I wrpr %r0, 0x021c, %tt
2207 .word 0x93902002 ! 808: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
2208 .word 0x92d6800c ! 809: UMULcc_R umulcc %r26, %r12, %r9
2209 .word 0xd2ffc02c ! 810: SWAPA_R swapa %r9, [%r31 + %r12] 0x01
2210 ta T_CHANGE_TO_TL0 ! macro
2211DS_105:
2212 .word 0x20800001 ! 813: BN bn,a <label_0x1>
2213 .word 0xbfe7c000 ! 812: SAVE_R save %r31, %r0, %r31
2214 .word 0x87902326 ! 813: WRPR_TT_I wrpr %r0, 0x0326, %tt
2215 .word 0x8ad4001b ! 814: UMULcc_R umulcc %r16, %r27, %r5
2216change_to_tl1_106:
2217 ta T_CHANGE_PRIV
2218 ta T_CHANGE_TO_TL1 ! macro
2219 otherw
2220 mov 0x35, %r30
2221 .word 0x93d0001e ! 816: Tcc_R tne icc_or_xcc, %r0 + %r30
2222 .word 0x91d02031 ! 817: Tcc_I ta icc_or_xcc, %r0 + 49
2223 otherw
2224 mov 0xb0, %r30
2225 .word 0x91d0001e ! 818: Tcc_R ta icc_or_xcc, %r0 + %r30
2226 .word 0x93d02034 ! 819: Tcc_I tne icc_or_xcc, %r0 + 52
2227 .word 0xaefd6001 ! 820: SDIVcc_I sdivcc %r21, 0x0001, %r23
2228 .word 0x87802004 ! 821: WRASI_I wr %r0, 0x0004, %asi
2229 .word 0xee8fe000 ! 822: LDUBA_I lduba [%r31, + 0x0000] %asi, %r23
2230 .word 0xee900e40 ! 823: LDUHA_R lduha [%r0, %r0] 0x72, %r23
2231 .word 0x22800001 ! 824: BE be,a <label_0x1>
2232 .word 0x87508000 ! 825: RDPR_TSTATE rdpr %tstate, %r3
2233 .word 0x95a000ca ! 826: FNEGd fnegd %f10, %f10
2234 .word 0xaadd4018 ! 827: SMULcc_R smulcc %r21, %r24, %r21
2235 .word 0x8d902203 ! 828: WRPR_PSTATE_I wrpr %r0, 0x0203, %pstate
2236 .word 0xea8804a0 ! 829: LDUBA_R lduba [%r0, %r0] 0x25, %r21
2237 .word 0x9ba0057a ! 830: FSQRTq fsqrt
2238splash_tba_107:
2239 ta T_CHANGE_PRIV
2240 set 0x120000, %r2
2241 .word 0x8b900002 ! 831: WRPR_TBA_R wrpr %r0, %r2, %tba
2242 .word 0xaf540000 ! 832: RDPR_GL rdpr %-, %r23
2243 .word 0xeed804a0 ! 833: LDXA_R ldxa [%r0, %r0] 0x25, %r23
2244 .word 0x856a401a ! 834: SDIVX_R sdivx %r9, %r26, %r2
2245 .word 0x8b504000 ! 835: RDPR_TNPC <illegal instruction>
2246splash_tba_108:
2247 ta T_CHANGE_PRIV
2248 set 0x003c0000, %r2
2249 .word 0x8b900002 ! 836: WRPR_TBA_R wrpr %r0, %r2, %tba
2250DS_109:
2251 .word 0x32800001 ! 838: BNE bne,a <label_0x1>
2252 .word 0xbfe7c000 ! 837: SAVE_R save %r31, %r0, %r31
2253 .word 0xa5a00571 ! 838: FSQRTq fsqrt
2254 .word 0xe527e001 ! 839: STF_I st %f18, [0x0001, %r31]
2255 .word 0x8d902e47 ! 840: WRPR_PSTATE_I wrpr %r0, 0x0e47, %pstate
2256splash_htba_110:
2257 ta T_CHANGE_HPRIV
2258 set 0x80000, %r2
2259 .word 0x8b980002 ! 841: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
2260 .word 0x93d02035 ! 842: Tcc_I tne icc_or_xcc, %r0 + 53
2261 .word 0x93902002 ! 843: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
2262DS_111:
2263 .word 0x20800001 ! 845: BN bn,a <label_0x1>
2264 allclean
2265 .word 0xa1b08304 ! 844: ALLIGNADDRESS alignaddr %r2, %r4, %r16
2266 .word 0x81982e07 ! 845: WRHPR_HPSTATE_I wrhpr %r0, 0x0e07, %hpstate
2267 .word 0xa1902009 ! 846: WRPR_GL_I wrpr %r0, 0x0009, %-
2268 .word 0x81982807 ! 847: WRHPR_HPSTATE_I wrhpr %r0, 0x0807, %hpstate
2269 .word 0x81982f5d ! 848: WRHPR_HPSTATE_I wrhpr %r0, 0x0f5d, %hpstate
2270 .word 0xa9a249e9 ! 849: FDIVq dis not found
2271
2272 .word 0xe88008a0 ! 850: LDUWA_R lduwa [%r0, %r0] 0x45, %r20
2273 .word 0x87902292 ! 851: WRPR_TT_I wrpr %r0, 0x0292, %tt
2274 .word 0x87802080 ! 852: WRASI_I wr %r0, 0x0080, %asi
2275 ta T_CHANGE_TO_TL0 ! macro
2276 invalw
2277 mov 0x34, %r30
2278 .word 0x91d0001e ! 854: Tcc_R ta icc_or_xcc, %r0 + %r30
2279 .word 0x86d84010 ! 855: SMULcc_R smulcc %r1, %r16, %r3
2280 .word 0x91d02032 ! 856: Tcc_I ta icc_or_xcc, %r0 + 50
2281 .word 0xc6c80e80 ! 857: LDSBA_R ldsba [%r0, %r0] 0x74, %r3
2282 .word 0x93b34fe1 ! 858: FONES fones %f9
2283 .word 0x879021da ! 859: WRPR_TT_I wrpr %r0, 0x01da, %tt
2284 .word 0xd2cfe020 ! 860: LDSBA_I ldsba [%r31, + 0x0020] %asi, %r9
2285 .word 0x91d02031 ! 861: Tcc_I ta icc_or_xcc, %r0 + 49
2286 .word 0x3a700001 ! 862: BPCC <illegal instruction>
2287 .word 0xa1902002 ! 863: WRPR_GL_I wrpr %r0, 0x0002, %-
2288 .word 0xa1902004 ! 864: WRPR_GL_I wrpr %r0, 0x0004, %-
2289 .word 0xb4804005 ! 865: ADDcc_R addcc %r1, %r5, %r26
2290 .word 0x87802080 ! 866: WRASI_I wr %r0, 0x0080, %asi
2291 .word 0x93902002 ! 867: WRPR_CWP_I wrpr %r0, 0x0002, %cwp
2292 .word 0xf4cfe000 ! 868: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r26
2293 .word 0xa1500000 ! 869: RDPR_TPC rdpr %tpc, %r16
2294 ta T_CHANGE_TO_TL0 ! macro
2295 .word 0x8f504000 ! 871: RDPR_TNPC rdpr %tnpc, %r7
2296 .word 0x879021ec ! 872: WRPR_TT_I wrpr %r0, 0x01ec, %tt
2297splash_htba_112:
2298 ta T_CHANGE_HPRIV
2299 set 0x80000, %r2
2300 .word 0x8b980002 ! 873: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
2301 .word 0x83d02031 ! 874: Tcc_I te icc_or_xcc, %r0 + 49
2302 .word 0x81982a5e ! 875: WRHPR_HPSTATE_I wrhpr %r0, 0x0a5e, %hpstate
2303reduce_priv_level_113:
2304 .word 0x8f902000 ! 877: WRPR_TL_I wrpr %r0, 0x0000, %tl
2305 ta T_CHANGE_NONHPRIV ! macro
2306 .word 0x9b6da001 ! 876: SDIVX_I sdivx %r22, 0x0001, %r13
2307 .word 0x93d02030 ! 877: Tcc_I tne icc_or_xcc, %r0 + 48
2308change_to_tl1_114:
2309 ta T_CHANGE_PRIV
2310 ta T_CHANGE_TO_TL1 ! macro
2311 .word 0x91d02034 ! 879: Tcc_I ta icc_or_xcc, %r0 + 52
2312 .word 0x8d802000 ! 880: WRFPRS_I wr %r0, 0x0000, %fprs
2313 .word 0x81982485 ! 881: WRHPR_HPSTATE_I wrhpr %r0, 0x0485, %hpstate
2314 .word 0xa1902001 ! 882: WRPR_GL_I wrpr %r0, 0x0001, %-
2315 .word 0xda8008a0 ! 883: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
2316DS_115:
2317 .word 0x32800001 ! 885: BNE bne,a <label_0x1>
2318 .word 0xbfe7c000 ! 884: SAVE_R save %r31, %r0, %r31
2319 .word 0x99902005 ! 885: WRPR_CLEANWIN_I wrpr %r0, 0x0005, %cleanwin
2320 .word 0x81982d9e ! 886: WRHPR_HPSTATE_I wrhpr %r0, 0x0d9e, %hpstate
2321 invalw
2322 mov 0x31, %r30
2323 .word 0x93d0001e ! 887: Tcc_R tne icc_or_xcc, %r0 + %r30
2324DS_116:
2325 .word 0x20800001 ! 889: BN bn,a <label_0x1>
2326 illtrap
2327 .word 0x85a00541 ! 889: FSQRTd fsqrt
2328 .word 0xb1a68835 ! 888: FADDs fadds %f26, %f21, %f24
2329 .word 0xb6c0e001 ! 889: ADDCcc_I addccc %r3, 0x0001, %r27
2330change_to_tl1_117:
2331 ta T_CHANGE_HPRIV
2332 ta T_CHANGE_TO_TL1 ! macro
2333 .word 0x93902000 ! 891: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
2334 .word 0x819828dc ! 892: WRHPR_HPSTATE_I wrhpr %r0, 0x08dc, %hpstate
2335splash_lsu_118:
2336 set 0x1b, %r2
2337 stxa %r2, [%r0] ASI_LSU_CONTROL
2338 .word 0x3d400001 ! 893: FBPULE fbule,a,pn %fcc0, <label_0x1>
2339 .word 0x9f802001 ! 894: SIR sir 0x0001
2340 .word 0xa190200f ! 895: WRPR_GL_I wrpr %r0, 0x000f, %-
2341 .word 0xf67fe001 ! 896: SWAP_I swap %r27, [%r31 + 0x0001]
2342 .word 0x87802016 ! 897: WRASI_I wr %r0, 0x0016, %asi
2343 .word 0x8d902c13 ! 898: WRPR_PSTATE_I wrpr %r0, 0x0c13, %pstate
2344 .word 0x81982615 ! 899: WRHPR_HPSTATE_I wrhpr %r0, 0x0615, %hpstate
2345 .word 0xf67fe001 ! 900: SWAP_I swap %r27, [%r31 + 0x0001]
2346 .word 0x81982787 ! 901: WRHPR_HPSTATE_I wrhpr %r0, 0x0787, %hpstate
2347 .word 0x91d02032 ! 902: Tcc_I ta icc_or_xcc, %r0 + 50
2348splash_tba_119:
2349 ta T_CHANGE_PRIV
2350 set 0x120000, %r2
2351 .word 0x8b900002 ! 903: WRPR_TBA_R wrpr %r0, %r2, %tba
2352 .word 0x8cab4000 ! 904: ANDNcc_R andncc %r13, %r0, %r6
2353 .word 0x93902000 ! 905: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
2354 .word 0xcc57c000 ! 906: LDSH_R ldsh [%r31 + %r0], %r6
2355 .word 0x93d02032 ! 907: Tcc_I tne icc_or_xcc, %r0 + 50
2356 invalw
2357 mov 0x33, %r30
2358 .word 0x93d0001e ! 908: Tcc_R tne icc_or_xcc, %r0 + %r30
2359DS_120:
2360 .word 0x34800001 ! 910: BG bg,a <label_0x1>
2361 allclean
2362 .word 0xafb20311 ! 909: ALLIGNADDRESS alignaddr %r8, %r17, %r23
2363splash_htba_121:
2364 ta T_CHANGE_HPRIV
2365 set 0x80000, %r2
2366 .word 0x8b980002 ! 910: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
2367 .word 0xa190200e ! 911: WRPR_GL_I wrpr %r0, 0x000e, %-
2368 .word 0xb3508000 ! 912: RDPR_TSTATE rdpr %tstate, %r25
2369 .word 0x87902351 ! 913: WRPR_TT_I wrpr %r0, 0x0351, %tt
2370 .word 0x87a20d2a ! 914: FsMULd fsmuld %f8, %f10, %f34
2371 .word 0x81982e15 ! 915: WRHPR_HPSTATE_I wrhpr %r0, 0x0e15, %hpstate
2372 .word 0x9f802001 ! 916: SIR sir 0x0001
2373 .word 0x81982d97 ! 917: WRHPR_HPSTATE_I wrhpr %r0, 0x0d97, %hpstate
2374 .word 0x93902005 ! 918: WRPR_CWP_I wrpr %r0, 0x0005, %cwp
2375 .word 0x93902006 ! 919: WRPR_CWP_I wrpr %r0, 0x0006, %cwp
2376 .word 0x87902361 ! 920: WRPR_TT_I wrpr %r0, 0x0361, %tt
2377 !.word 0xc637c00a ! 921: STH_R sth %r3, [%r31 + %r10]
2378 .word 0x93902003 ! 922: WRPR_CWP_I wrpr %r0, 0x0003, %cwp
2379 .word 0x91d02034 ! 923: Tcc_I ta icc_or_xcc, %r0 + 52
2380 .word 0x819823cf ! 924: WRHPR_HPSTATE_I wrhpr %r0, 0x03cf, %hpstate
2381 .word 0x879023ef ! 925: WRPR_TT_I wrpr %r0, 0x03ef, %tt
2382 .word 0x8d902284 ! 926: WRPR_PSTATE_I wrpr %r0, 0x0284, %pstate
2383 .word 0x879023d1 ! 927: WRPR_TT_I wrpr %r0, 0x03d1, %tt
2384 .word 0x8b51c000 ! 928: RDPR_TL rdpr %tl, %r5
2385 .word 0x94faa001 ! 929: SDIVcc_I sdivcc %r10, 0x0001, %r10
2386 .word 0x91d02034 ! 930: Tcc_I ta icc_or_xcc, %r0 + 52
2387 .word 0x8d9026d8 ! 931: WRPR_PSTATE_I wrpr %r0, 0x06d8, %pstate
2388 .word 0x9150c000 ! 932: RDPR_TT rdpr %tt, %r8
2389change_to_randtl_122:
2390 ta T_CHANGE_PRIV ! macro
2391 .word 0x8f902000 ! 933: WRPR_TL_I wrpr %r0, 0x0000, %tl
2392 .word 0x9ad66001 ! 934: UMULcc_I umulcc %r25, 0x0001, %r13
2393 .word 0xa150c000 ! 935: RDPR_TT rdpr %tt, %r16
2394 .word 0xa1902009 ! 936: WRPR_GL_I wrpr %r0, 0x0009, %-
2395 .word 0x89a01a68 ! 937: FqTOi fqtoi
2396 otherw
2397 mov 0x31, %r30
2398 .word 0x83d0001e ! 938: Tcc_R te icc_or_xcc, %r0 + %r30
2399 otherw
2400 mov 0x31, %r30
2401 .word 0x91d0001e ! 939: Tcc_R ta icc_or_xcc, %r0 + %r30
2402 .word 0xa1902001 ! 940: WRPR_GL_I wrpr %r0, 0x0001, %-
2403 .word 0xb6fec015 ! 941: SDIVcc_R sdivcc %r27, %r21, %r27
2404 .word 0x30700001 ! 942: BPA <illegal instruction>
2405 .word 0xf61fc000 ! 943: LDD_R ldd [%r31 + %r0], %r27
2406 .word 0xf6d7e010 ! 944: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r27
2407 .word 0x9f802001 ! 945: SIR sir 0x0001
2408splash_htba_123:
2409 ta T_CHANGE_HPRIV
2410 set 0x00380000, %r2
2411 .word 0x8b980002 ! 946: WRHPR_HTBA_R wrhpr %r0, %r2, %htba
2412 .word 0xa190200b ! 947: WRPR_GL_I wrpr %r0, 0x000b, %-
2413splash_lsu_124:
2414 set 0x17, %r2
2415 stxa %r2, [%r0] ASI_LSU_CONTROL
2416 .word 0x3d400001 ! 948: FBPULE fbule,a,pn %fcc0, <label_0x1>
2417 .word 0x87902221 ! 949: WRPR_TT_I wrpr %r0, 0x0221, %tt
2418 otherw
2419 mov 0x35, %r30
2420 .word 0x83d0001e ! 950: Tcc_R te icc_or_xcc, %r0 + %r30
2421 .word 0xf68fe010 ! 951: LDUBA_I lduba [%r31, + 0x0010] %asi, %r27
2422 .word 0x81982644 ! 952: WRHPR_HPSTATE_I wrhpr %r0, 0x0644, %hpstate
2423 .word 0x3a800001 ! 953: BCC bcc,a <label_0x1>
2424 .word 0xa190200e ! 954: WRPR_GL_I wrpr %r0, 0x000e, %-
2425 .word 0x8790229b ! 955: WRPR_TT_I wrpr %r0, 0x029b, %tt
2426 .word 0x81982045 ! 956: WRHPR_HPSTATE_I wrhpr %r0, 0x0045, %hpstate
2427 .word 0x8790223e ! 957: WRPR_TT_I wrpr %r0, 0x023e, %tt
2428 .word 0x8d902c58 ! 958: WRPR_PSTATE_I wrpr %r0, 0x0c58, %pstate
2429 .word 0x8d902290 ! 959: WRPR_PSTATE_I wrpr %r0, 0x0290, %pstate
2430 .word 0x81a01a7b ! 960: FqTOi fqtoi
2431 .word 0x879023d9 ! 961: WRPR_TT_I wrpr %r0, 0x03d9, %tt
2432 ta T_CHANGE_TO_TL0 ! macro
2433 .word 0x81982516 ! 963: WRHPR_HPSTATE_I wrhpr %r0, 0x0516, %hpstate
2434 .word 0xa4fa2001 ! 964: SDIVcc_I sdivcc %r8, 0x0001, %r18
2435 .word 0x91d02031 ! 965: Tcc_I ta icc_or_xcc, %r0 + 49
2436 .word 0x82fcc016 ! 966: SDIVcc_R sdivcc %r19, %r22, %r1
2437 .word 0xb5500000 ! 967: RDPR_TPC rdpr %tpc, %r26
2438 .word 0x8d9028c9 ! 968: WRPR_PSTATE_I wrpr %r0, 0x08c9, %pstate
2439 .word 0xa3500000 ! 969: RDPR_TPC rdpr %tpc, %r17
2440 .word 0x99902004 ! 970: WRPR_CLEANWIN_I wrpr %r0, 0x0004, %cleanwin
2441 .word 0x93902000 ! 971: WRPR_CWP_I wrpr %r0, 0x0000, %cwp
2442 .word 0x91d02030 ! 972: Tcc_I ta icc_or_xcc, %r0 + 48
2443 .word 0xe327e001 ! 973: STF_I st %f17, [0x0001, %r31]
2444 .word 0xa3b30fe8 ! 974: FONES fones %f17
2445 .word 0x97688009 ! 975: SDIVX_R sdivx %r2, %r9, %r11
2446 .word 0x93702001 ! 976: POPC_I popc 0x0001, %r9
2447 .word 0x2c800001 ! 977: BNEG bneg,a <label_0x1>
2448 .word 0xb2fac012 ! 978: SDIVcc_R sdivcc %r11, %r18, %r25
2449 .word 0x879023c6 ! 979: WRPR_TT_I wrpr %r0, 0x03c6, %tt
2450 .word 0x91d02034 ! 980: Tcc_I ta icc_or_xcc, %r0 + 52
2451 .word 0xf2c7e010 ! 981: LDSWA_I ldswa [%r31, + 0x0010] %asi, %r25
2452DS_125:
2453 .word 0x20800001 ! 983: BN bn,a <label_0x1>
2454 .word 0xe9300000 ! 983: STQF_R - %f20, [%r0, %r0]
2455 normalw
2456 .word 0xb3458000 ! 982: RD_SOFTINT_REG rd %softint, %r25
2457 .word 0x87902200 ! 983: WRPR_TT_I wrpr %r0, 0x0200, %tt
2458change_to_randtl_126:
2459 ta T_CHANGE_PRIV ! macro
2460 .word 0x8f902000 ! 984: WRPR_TL_I wrpr %r0, 0x0000, %tl
2461 .word 0x8d9024d9 ! 985: WRPR_PSTATE_I wrpr %r0, 0x04d9, %pstate
2462 otherw
2463 mov 0x33, %r30
2464 .word 0x83d0001e ! 986: Tcc_R te icc_or_xcc, %r0 + %r30
2465 .word 0x8d802004 ! 987: WRFPRS_I wr %r0, 0x0004, %fprs
2466 otherw
2467 mov 0x30, %r30
2468 .word 0x83d0001e ! 988: Tcc_R te icc_or_xcc, %r0 + %r30
2469change_to_randtl_127:
2470 ta T_CHANGE_HPRIV ! macro
2471 .word 0x8f902005 ! 989: WRPR_TL_I wrpr %r0, 0x0005, %tl
2472 .word 0x8d902a4a ! 990: WRPR_PSTATE_I wrpr %r0, 0x0a4a, %pstate
2473splash_tba_128:
2474 ta T_CHANGE_PRIV
2475 set 0x120000, %r2
2476 .word 0x8b900002 ! 991: WRPR_TBA_R wrpr %r0, %r2, %tba
2477 .word 0x8150c000 ! 992: RDPR_TT rdpr %tt, %r0
2478 .word 0x81982c0f ! 993: WRHPR_HPSTATE_I wrhpr %r0, 0x0c0f, %hpstate
2479 .word 0x30700001 ! 994: BPA <illegal instruction>
2480 .word 0x81982fcc ! 995: WRHPR_HPSTATE_I wrhpr %r0, 0x0fcc, %hpstate
2481 otherw
2482 mov 0xb5, %r30
2483 .word 0x91d0001e ! 996: Tcc_R ta icc_or_xcc, %r0 + %r30
2484 .word 0x91d02032 ! 997: Tcc_I ta icc_or_xcc, %r0 + 50
2485splash_tba_129:
2486 ta T_CHANGE_PRIV
2487 set 0x003d0000, %r2
2488 .word 0x8b900002 ! 998: WRPR_TBA_R wrpr %r0, %r2, %tba
2489
2490
2491.global user_data_start
2492.data
2493user_data_start:
2494 .xword 0x82bdc8d579fbbce8
2495 .xword 0x7faf90850b212d65
2496 .xword 0x10af1bfebf6b26d9
2497 .xword 0xaa30052b78fb3c19
2498 .xword 0x8a557fa656ae46e0
2499 .xword 0x8e15c0fb74305017
2500 .xword 0x4f1cc53e98e0b4c9
2501 .xword 0xb781e593a2650a18
2502 .xword 0x92fbd950af3dbf0d
2503 .xword 0x6f764875c542bb89
2504 .xword 0x6c065759e4c4080d
2505 .xword 0x48c902ac7c334da1
2506 .xword 0xea808ba7804e5d2e
2507 .xword 0xe92aae536a1f77fd
2508 .xword 0xb3b047477fd22f0f
2509 .xword 0xa760bb603ffb5b90
2510 .xword 0x90d0903a2a56b0c9
2511 .xword 0xe1c02c8bf15d072a
2512 .xword 0x98fe6d0a73ee72b8
2513 .xword 0x61617aea6dd4984e
2514 .xword 0x08342deb5a9f7e8d
2515 .xword 0xabb20731d594faa2
2516 .xword 0x469b491ac3ed1e57
2517 .xword 0xd31980d608a8baa6
2518 .xword 0xb149ee673f11c6f1
2519 .xword 0xe7199a2e7edd3106
2520 .xword 0xd7df498c7f8179f0
2521 .xword 0xcfdc87987d7c3ad5
2522 .xword 0x7b44549579ccbc74
2523 .xword 0xa328e90391737e65
2524 .xword 0x857db560887fc31d
2525 .xword 0xe2ad5db4dd84ad48
2526 .xword 0x4c925de1f2e60c22
2527 .xword 0x7c84db8e897b2465
2528 .xword 0xc63b7e9b65d37122
2529 .xword 0x65ecb6fcd86d830e
2530 .xword 0x84fd5bf4393ac09b
2531 .xword 0x3debb72dfd3be5ca
2532 .xword 0x0123bef9cb299b57
2533 .xword 0x720bf90fafde12a2
2534 .xword 0x1784212bcec35309
2535 .xword 0x564ddba81ce1c090
2536 .xword 0x0435f479e48707a4
2537 .xword 0xb18ca21214f1d315
2538 .xword 0xcb70acc57e2ce7d5
2539 .xword 0xa71b75d63449a8bd
2540 .xword 0xd61628fa4a9efabb
2541 .xword 0x24a2a5a5b42f5074
2542 .xword 0x1642a5efedfc9244
2543 .xword 0xd7938b6be0e70209
2544 .xword 0x3288d5d3b2a2568b
2545 .xword 0x58cc3ad3784e3643
2546 .xword 0xb65ea64f1614db53
2547 .xword 0x720bb85bbfd34396
2548 .xword 0xd705ea7feab74b06
2549 .xword 0x069e0a6e8cdeeef1
2550 .xword 0x0e3cb7b53934a17b
2551 .xword 0x95901e97f6321e1b
2552 .xword 0x36efda5550e8e4d2
2553 .xword 0xf8f2e2c752116fec
2554 .xword 0x55d7311606843e75
2555 .xword 0xfd66221065b6a3d7
2556 .xword 0xa78e2ae44065f1c7
2557 .xword 0x04804e0779061749
2558 .xword 0xcd71d25b9db79e35
2559 .xword 0xf21a86ced3ad1961
2560 .xword 0xef666909044e9b93
2561 .xword 0x42306e78cb856b72
2562 .xword 0xd044604af734f2f2
2563 .xword 0x27ad899bcd6c74d6
2564 .xword 0x3894713d3c2087e3
2565 .xword 0xc9e193fe5dfbab34
2566 .xword 0xa2612bd1b50eabe1
2567 .xword 0xe7ca4233b5f40019
2568 .xword 0xc1046f56dbb24fe9
2569 .xword 0xbeb1d6c6f76e23e1
2570 .xword 0x48d1b14e5d5815a9
2571 .xword 0x029800935bfa9984
2572 .xword 0x1da8fb6524a74451
2573 .xword 0xf62a581aab51c08b
2574 .xword 0x1ecbac41b0da5ade
2575 .xword 0xa9abfffcc90638da
2576 .xword 0x95fbf47056c803a9
2577 .xword 0x82d995514697a9c6
2578 .xword 0xc5d2b1cc559f5a07
2579 .xword 0xdb2d84d60eca457d
2580 .xword 0x381c5661045a904c
2581 .xword 0x94356ab483a22d71
2582 .xword 0xcb599b2cfc7c2677
2583 .xword 0xd45bb815cb77d14a
2584 .xword 0x99689e7383d5aad1
2585 .xword 0xcddd83cf5569581b
2586 .xword 0x9eba2859596e381c
2587 .xword 0xc5f96ec46d92dcd6
2588 .xword 0xcb5d685efd5431a4
2589 .xword 0x5b28aa6e689d0183
2590 .xword 0x0bfb2fbf54e4cc93
2591 .xword 0x0e19989574db6c7f
2592 .xword 0x143fe092fe6b2f18
2593 .xword 0x3df1e038f7929817
2594 .xword 0x9838797db8cd3577
2595 .xword 0x72b0fc9b205c3f3c
2596 .xword 0xad37d505c3d45570
2597 .xword 0xf2c4238b959d4eb6
2598 .xword 0xdbce51105e334ee5
2599 .xword 0xd233c5a54ce62802
2600 .xword 0x5158bbdfca65eeda
2601 .xword 0x58b9790d4c8d246a
2602 .xword 0x0c0c4217d14f15d5
2603 .xword 0x580c475c9aca13eb
2604 .xword 0x593109b692d94400
2605 .xword 0xcaee87763d4f765f
2606 .xword 0x00e59480039910dd
2607 .xword 0xff43e561edc4dc75
2608 .xword 0xeb952c43c75f7f1f
2609 .xword 0xbbccdbf65cadb10e
2610 .xword 0xe9a82000ce39665a
2611 .xword 0x311ae7c34d6768ca
2612 .xword 0xedc9a6bb83f277ea
2613 .xword 0x8cba52f2b0d7d36b
2614 .xword 0xc04925c6f4cb9a81
2615 .xword 0x9109c7faaf741d13
2616 .xword 0xec7273807401fc3d
2617 .xword 0x0a679f60c5de86fe
2618 .xword 0x40169627cb777641
2619 .xword 0x420e622d0dd713fc
2620 .xword 0x210e1dcde6f78389
2621 .xword 0x2c6d50d928a4c348
2622 .xword 0xada0b2342dd062c6
2623 .xword 0x956c1f985988bc02
2624 .xword 0x8d603dd5401c6bec
2625 .xword 0x318e4fb53fb57de0
2626 .xword 0x9df84fee56056fd7
2627 .xword 0xa9f78678a853a732
2628 .xword 0x92559d698877350c
2629 .xword 0xb9f63a67463bc74f
2630 .xword 0xb12da564c837eedb
2631 .xword 0x8456fb8817db051f
2632 .xword 0xf1c2c6e32240832f
2633 .xword 0x1e63ada1e0720b4f
2634 .xword 0x062af49c5606a660
2635 .xword 0x8349651a0ee5bd1f
2636 .xword 0xe40ef2de1933603e
2637 .xword 0x2c2a40abafe73410
2638 .xword 0xf10bbdbe33b21e4f
2639 .xword 0xca1365c242feed85
2640 .xword 0x3105765f29db9a8f
2641 .xword 0xc8177f3ee9821cae
2642 .xword 0xdac574cfacf96806
2643 .xword 0xb8f7d07a0831fec0
2644 .xword 0xdeeae247bc237812
2645 .xword 0xef2d873d2f041cf4
2646 .xword 0xe11e1cae5a1255a9
2647 .xword 0xc5df44358698e022
2648 .xword 0xa8f886b673589eb9
2649 .xword 0x462bfdc9a07a1a0b
2650 .xword 0xad2fa1196f11dd45
2651 .xword 0x119789ed99447589
2652 .xword 0x6ce06f463e6afad2
2653 .xword 0xdf5676b6d7034b92
2654 .xword 0xc4d945e02a29b6a5
2655 .xword 0xc188f614cbf783a7
2656 .xword 0x119abd9965c2486d
2657 .xword 0xaf7b264046a83ebf
2658 .xword 0x250460576ccb0d63
2659 .xword 0x58200ef1c4d568b2
2660 .xword 0xb755c6076f01a54a
2661 .xword 0xacff2d79239da034
2662 .xword 0x028531e204a07b3d
2663 .xword 0xb8ab2c5f387e2093
2664 .xword 0x20f30890171fbade
2665 .xword 0x99577f9307745b67
2666 .xword 0xb172395f2349da40
2667 .xword 0xd31e62112749a689
2668 .xword 0x5de76b541999712e
2669 .xword 0x53953c17ef47b5b0
2670 .xword 0xd7e728eec4ef7d78
2671 .xword 0x50d879b48abb4cdd
2672 .xword 0xcbbd04d96db1ecbb
2673 .xword 0x3f7491b283ae6aac
2674 .xword 0x0731391789b7d3c0
2675 .xword 0xc1904808cb59e82c
2676 .xword 0xd495acfe64548c16
2677 .xword 0xa652d00f03ca5857
2678 .xword 0x8387f45ff0f1a0bc
2679 .xword 0x922ee9f2fa6bb20b
2680 .xword 0xd8b1843f6f94a46b
2681 .xword 0x6c2a3ab4f1fb905a
2682 .xword 0x1eed38c02b3a3030
2683 .xword 0xb305d8202b8fb768
2684 .xword 0x1dae2644a2b2dabb
2685 .xword 0x21de4c5310ad5d4d
2686 .xword 0x25866d17c6ad8f65
2687 .xword 0xe6c8fb1207a74931
2688 .xword 0x6dc01da57df75f30
2689 .xword 0xea92802bf30ca687
2690 .xword 0x6aa24b27b7e048f4
2691 .xword 0x929109bfab258f8b
2692 .xword 0x98651b9143360fcb
2693 .xword 0xbfed169441da217c
2694 .xword 0x4b29633fb92e764b
2695 .xword 0x89557d6da15a39b0
2696 .xword 0x3820c37f9714232f
2697 .xword 0x9a3c03fd4e491e1a
2698 .xword 0x814216a5d373fbe1
2699 .xword 0x27d3339bbf0f0445
2700 .xword 0xd7601152f239dc99
2701 .xword 0x6bd80546980f1f6f
2702 .xword 0x43f15c6138e8bd7f
2703 .xword 0x4fcb1d36c445ea89
2704 .xword 0x6030e5ddf87df63f
2705 .xword 0x83e3ba8d124593a1
2706 .xword 0xfb925ae31eda3883
2707 .xword 0x2aff3e5951cb3448
2708 .xword 0xfd6c2dc2fb5ecd41
2709 .xword 0xc6f3709778cb184d
2710 .xword 0x858f55b0c33c97d2
2711 .xword 0x952176ac71740084
2712 .xword 0x977d00468e5e6049
2713 .xword 0xf9493720c1e5a5fb
2714 .xword 0x140344a39d175aef
2715 .xword 0xff2f3a9eb4e06fa2
2716 .xword 0x5edbc4d876bb55d3
2717 .xword 0x577cec93d0a50ee6
2718 .xword 0x9b6e8bc430a52cc4
2719 .xword 0xb26861a7453b2be2
2720 .xword 0xe501233073facb15
2721 .xword 0x9c1e9123635cb498
2722 .xword 0x321f6a5f825629ed
2723 .xword 0x73ec9b825b9c1235
2724 .xword 0xad46167e45b79e64
2725 .xword 0x17ed45544150d225
2726 .xword 0xc651128259f8e11d
2727 .xword 0x8060879243b1635c
2728 .xword 0x0c78e6209aef057c
2729 .xword 0x2577e0411a1da318
2730 .xword 0xa73e9c93bd328ab9
2731 .xword 0x0cef8f65629c0412
2732 .xword 0x31e87e1e793c5c1d
2733 .xword 0x4b7b9984edbbe295
2734 .xword 0x6530f08ffc9c8c0d
2735 .xword 0xe3b91050a4ebb948
2736 .xword 0x4cfc2da51acc68ec
2737 .xword 0x9a75f6e8e59a85ac
2738 .xword 0xd85463a5dc79ac9d
2739 .xword 0xc120cd4cbfc1a38d
2740 .xword 0x030bbe622a84f7ed
2741 .xword 0x3606ba3bd87f9388
2742 .xword 0xc47fcf5aad7c8a5c
2743 .xword 0x98ec398beddfdf86
2744 .xword 0x4ac0c0d532de9614
2745 .xword 0x5953a035ff237d43
2746 .xword 0xeca619532928cfba
2747 .xword 0x92a8d76e6379839f
2748 .xword 0xe41ea7e9403fcf7b
2749 .xword 0x3437e71cdf48b70e
2750
2751
2752SECTION .MAIN
2753.text
2754 nop
2755 nop
2756 nop
2757 ta T_CHANGE_HPRIV
2758 set 0x80000, %r2
2759 wrhpr %g2, %g0, %htba
2760 ta T_GOOD_TRAP
2761 nop
2762 nop
2763 nop
2764.data
2765 .xword 0x0
2766
2767.global wdog_2_ext
2768
2769.global wdog_2_ext
2770
2771SECTION .HTRAPS
2772.text
2773htrap_5_ext:
2774 rd %pc, %g2
2775 inc %g3
2776 add %g2, htrap_5_ext_done-htrap_5_ext, %g2
2777 rdpr %tl, %g3
2778 rdpr %tstate, %g4
2779 rdhpr %htstate, %g5
2780 or %g5, 0x4, %g5
2781 inc %g3
2782 wrpr %g3, %tl
2783 wrpr %g2, %tpc
2784 wrpr %g4, %tstate
2785 wrhpr %g5, %htstate
2786 retry
2787htrap_5_ext_done:
2788 done
2789
2790wdog_2_ext:
2791 mov 0x1f, %g1
2792 stxa %g1, [%g0] ASI_LSU_CTL_REG
2793 stxa %g0, [%g0] ASI_ERROR_INJECT
2794 ! If TT != 2, then goto trap handler
2795 rdpr %tt, %g1
2796 cmp %g1, 0x2
2797 bne wdog_2_goto_handler
2798 nop
2799 ! else done
2800 done
2801wdog_2_goto_handler:
2802 rdhpr %htba, %g2
2803 sllx %g1, 5, %g1
2804 add %g1, %g2, %g2
2805 jmp %g2
2806 nop
2807
2808! Red mode other reset handler
2809! Get htba, and tt and make trap address
2810! Jump to trap handler ..
2811
2812SECTION .RED_SEC
2813.text
2814red_other_ext:
2815 ! IF TL=6, shift stack by one ..
2816 rdpr %tl, %g1
2817 cmp %g1, 6
2818 be start_tsa_shift
2819 nop
2820
2821continue_red_other:
2822 mov 0x1f, %g1
2823 stxa %g1, [%g0] ASI_LSU_CTL_REG
2824 stxa %g0, [%g0] ASI_ERROR_INJECT
2825
2826 rdpr %tt, %g1
2827 sllx %g1, 5, %g1
2828 rdhpr %htba, %g2
2829 add %g1, %g2, %g2
2830 rdhpr %hpstate, %g1
2831 jmp %g2
2832 wrhpr %g1, 0x20, %hpstate
2833 nop
2834
2835wdog_red_ext:
2836 ! Shift stack down by 1 ...
2837 rdpr %tl, %g1
2838start_tsa_shift:
2839 mov 0x2, %g2
2840
2841tsa_shift:
2842 wrpr %g2, %tl
2843 rdpr %tt, %g3
2844 rdpr %tpc, %g4
2845 rdpr %tnpc, %g5
2846 rdpr %tstate, %g6
2847 rdhpr %htstate, %g7
2848 dec %g2
2849 wrpr %g2, %tl
2850 wrpr %g3, %tt
2851 wrpr %g4, %tpc
2852 wrpr %g5, %tnpc
2853 wrpr %g6, %tstate
2854 wrhpr %g7, %htstate
2855 add %g2, 2, %g2
2856 cmp %g2, %g1
2857 ble tsa_shift
2858 nop
2859tsa_shift_done:
2860 dec %g1
2861 wrpr %g1, %tl
2862
2863 ! If TT != 2, then goto trap handler
2864 rdpr %tt, %g1
2865
2866 cmp %g1, 0x2
2867 bne continue_red_other
2868 nop
2869 ! else done
2870 mov 0x1f, %g1
2871 stxa %g1, [%g0] ASI_LSU_CTL_REG
2872 stxa %g0, [%g0] ASI_ERROR_INJECT
2873 done
2874
2875
2876
2877SECTION .MyHTRAPS_0 TEXT_VA = 0x0000000000380000, DATA_VA = 0x000000000038c000
2878attr_text {
2879 Name = .MyHTRAPS_0,
2880 hypervisor
2881}
2882
2883
2884attr_data {
2885 Name = .MyHTRAPS_0,
2886 hypervisor
2887}
2888
2889#include "htraps.s"
2890#include "tlu_htraps_ext.s"
2891
2892
2893
2894SECTION .MyHTRAPS_1 TEXT_VA = 0x0000000000390000, DATA_VA = 0x000000000039c000
2895attr_text {
2896 Name = .MyHTRAPS_1,
2897 hypervisor
2898}
2899
2900
2901attr_data {
2902 Name = .MyHTRAPS_1,
2903 hypervisor
2904}
2905
2906#include "htraps.s"
2907#include "tlu_htraps_ext.s"
2908
2909
2910
2911SECTION .MyHTRAPS_2 TEXT_VA = 0x00000000003a0000, DATA_VA = 0x00000000003ac000
2912attr_text {
2913 Name = .MyHTRAPS_2,
2914 hypervisor
2915}
2916
2917
2918attr_data {
2919 Name = .MyHTRAPS_2,
2920 hypervisor
2921}
2922
2923#include "htraps.s"
2924#include "tlu_htraps_ext.s"
2925
2926
2927
2928SECTION .MyHTRAPS_3 TEXT_VA = 0x00000000003b0000, DATA_VA = 0x00000000003bc000
2929attr_text {
2930 Name = .MyHTRAPS_3,
2931 hypervisor
2932}
2933
2934
2935attr_data {
2936 Name = .MyHTRAPS_3,
2937 hypervisor
2938}
2939
2940#include "htraps.s"
2941#include "tlu_htraps_ext.s"
2942
2943
2944
2945
2946
2947SECTION .MyTRAPS_0 TEXT_VA = 0x00000000003c0000, DATA_VA = 0x00000000003cc000
2948attr_text {
2949 Name = .MyTRAPS_0,
2950 RA = 0x00000000003c0000,
2951 PA = ra2pa(0x00000000003c0000,0),
2952 part_0_ctx_zero_tsb_config_0,
2953 TTE_G = 1,
2954 TTE_Context = 0,
2955 TTE_V = 1,
2956 TTE_Size = 0,
2957 TTE_NFO = 0,
2958 TTE_IE = 0,
2959 TTE_Soft2 = 0,
2960 TTE_Diag = 0,
2961 TTE_Soft = 0,
2962 TTE_L = 0,
2963 TTE_CP = 1,
2964 TTE_CV = 0,
2965 TTE_E = 0,
2966 TTE_P = 1,
2967 TTE_W = 1,
2968 TTE_X = 1
2969}
2970
2971
2972attr_data {
2973 Name = .MyTRAPS_0,
2974 RA = 0x00000000003cc000,
2975 PA = ra2pa(0x00000000003cc000,0),
2976 part_0_ctx_zero_tsb_config_0,
2977 TTE_G = 1,
2978 TTE_Context = 0,
2979 TTE_V = 1,
2980 TTE_Size = 0,
2981 TTE_NFO = 0,
2982 TTE_IE = 0,
2983 TTE_Soft2 = 0,
2984 TTE_Diag = 0,
2985 TTE_Soft = 0,
2986 TTE_L = 0,
2987 TTE_CP = 1,
2988 TTE_CV = 0,
2989 TTE_E = 0,
2990 TTE_P = 1,
2991 TTE_W = 1
2992}
2993
2994attr_text {
2995 Name = .MyTRAPS_0
2996 hypervisor
2997}
2998attr_data {
2999 Name = .MyTRAPS_0
3000 hypervisor
3001}
3002
3003#include "traps.s"
3004
3005
3006
3007SECTION .MyTRAPS_1 TEXT_VA = 0x00000000003d0000, DATA_VA = 0x00000000003dc000
3008attr_text {
3009 Name = .MyTRAPS_1,
3010 RA = 0x00000000003d0000,
3011 PA = ra2pa(0x00000000003d0000,0),
3012 part_0_ctx_zero_tsb_config_0,
3013 TTE_G = 1,
3014 TTE_Context = 0,
3015 TTE_V = 1,
3016 TTE_Size = 0,
3017 TTE_NFO = 0,
3018 TTE_IE = 0,
3019 TTE_Soft2 = 0,
3020 TTE_Diag = 0,
3021 TTE_Soft = 0,
3022 TTE_L = 0,
3023 TTE_CP = 1,
3024 TTE_CV = 0,
3025 TTE_E = 0,
3026 TTE_P = 1,
3027 TTE_W = 1,
3028 TTE_X = 1
3029}
3030
3031
3032attr_data {
3033 Name = .MyTRAPS_1,
3034 RA = 0x00000000003dc000,
3035 PA = ra2pa(0x00000000003dc000,0),
3036 part_0_ctx_zero_tsb_config_0,
3037 TTE_G = 1,
3038 TTE_Context = 0,
3039 TTE_V = 1,
3040 TTE_Size = 0,
3041 TTE_NFO = 0,
3042 TTE_IE = 0,
3043 TTE_Soft2 = 0,
3044 TTE_Diag = 0,
3045 TTE_Soft = 0,
3046 TTE_L = 0,
3047 TTE_CP = 1,
3048 TTE_CV = 0,
3049 TTE_E = 0,
3050 TTE_P = 1,
3051 TTE_W = 1
3052}
3053
3054attr_text {
3055 Name = .MyTRAPS_1
3056 hypervisor
3057}
3058attr_data {
3059 Name = .MyTRAPS_1
3060 hypervisor
3061}
3062
3063#include "traps.s"
3064
3065
3066
3067SECTION .MyTRAPS_2 TEXT_VA = 0x00000000003e0000, DATA_VA = 0x00000000003ec000
3068attr_text {
3069 Name = .MyTRAPS_2,
3070 RA = 0x00000000003e0000,
3071 PA = ra2pa(0x00000000003e0000,0),
3072 part_0_ctx_zero_tsb_config_0,
3073 TTE_G = 1,
3074 TTE_Context = 0,
3075 TTE_V = 1,
3076 TTE_Size = 0,
3077 TTE_NFO = 0,
3078 TTE_IE = 0,
3079 TTE_Soft2 = 0,
3080 TTE_Diag = 0,
3081 TTE_Soft = 0,
3082 TTE_L = 0,
3083 TTE_CP = 1,
3084 TTE_CV = 0,
3085 TTE_E = 0,
3086 TTE_P = 1,
3087 TTE_W = 1,
3088 TTE_X = 1
3089}
3090
3091
3092attr_data {
3093 Name = .MyTRAPS_2,
3094 RA = 0x00000000003ec000,
3095 PA = ra2pa(0x00000000003ec000,0),
3096 part_0_ctx_zero_tsb_config_0,
3097 TTE_G = 1,
3098 TTE_Context = 0,
3099 TTE_V = 1,
3100 TTE_Size = 0,
3101 TTE_NFO = 0,
3102 TTE_IE = 0,
3103 TTE_Soft2 = 0,
3104 TTE_Diag = 0,
3105 TTE_Soft = 0,
3106 TTE_L = 0,
3107 TTE_CP = 1,
3108 TTE_CV = 0,
3109 TTE_E = 0,
3110 TTE_P = 1,
3111 TTE_W = 1
3112}
3113
3114attr_text {
3115 Name = .MyTRAPS_2
3116 hypervisor
3117}
3118attr_data {
3119 Name = .MyTRAPS_2
3120 hypervisor
3121}
3122
3123#include "traps.s"
3124
3125
3126
3127SECTION .MyTRAPS_3 TEXT_VA = 0x00000000003f0000, DATA_VA = 0x00000000003fc000
3128attr_text {
3129 Name = .MyTRAPS_3,
3130 RA = 0x00000000003f0000,
3131 PA = ra2pa(0x00000000003f0000,0),
3132 part_0_ctx_zero_tsb_config_0,
3133 TTE_G = 1,
3134 TTE_Context = 0,
3135 TTE_V = 1,
3136 TTE_Size = 0,
3137 TTE_NFO = 0,
3138 TTE_IE = 0,
3139 TTE_Soft2 = 0,
3140 TTE_Diag = 0,
3141 TTE_Soft = 0,
3142 TTE_L = 0,
3143 TTE_CP = 1,
3144 TTE_CV = 0,
3145 TTE_E = 0,
3146 TTE_P = 1,
3147 TTE_W = 1,
3148 TTE_X = 1
3149}
3150
3151
3152attr_data {
3153 Name = .MyTRAPS_3,
3154 RA = 0x00000000003fc000,
3155 PA = ra2pa(0x00000000003fc000,0),
3156 part_0_ctx_zero_tsb_config_0,
3157 TTE_G = 1,
3158 TTE_Context = 0,
3159 TTE_V = 1,
3160 TTE_Size = 0,
3161 TTE_NFO = 0,
3162 TTE_IE = 0,
3163 TTE_Soft2 = 0,
3164 TTE_Diag = 0,
3165 TTE_Soft = 0,
3166 TTE_L = 0,
3167 TTE_CP = 1,
3168 TTE_CV = 0,
3169 TTE_E = 0,
3170 TTE_P = 1,
3171 TTE_W = 1
3172}
3173
3174attr_text {
3175 Name = .MyTRAPS_3
3176 hypervisor
3177}
3178attr_data {
3179 Name = .MyTRAPS_3
3180 hypervisor
3181}
3182
3183#include "traps.s"
3184
3185
3186
3187#if 0
3188!!# /*
3189!!# output of /import/bw/tools/local/indra-release/indra,1.4.11/bin/ijpp (indrajal preprocessor) - Thu May 6 09:19:24 2004
3190!!# */
3191!!#
3192!!# %%section c_declarations
3193!!#
3194!!# int label = 0;
3195!!#
3196!!# #define MyHTRAPS 0
3197!!# #define MyTRAPS 1
3198!!# #define MAIN 2
3199!!# #define HTRAPS 3
3200!!# #define RED_SEC 4
3201!!#
3202!!# %%
3203!!# %%section control
3204!!#
3205!!# %%
3206!!# %%section init
3207!!# {
3208!!#
3209!!#
3210!!# IJ_bind_thread_group("diag.j", 51, th0, 0x01);
3211!!#
3212!!# // Random 64 bits //
3213!!# IJ_set_rvar("diag.j", 54, Rv_rand_64,"64'hrrrrrrrr_rrrrrrrr");
3214!!#
3215!!# IJ_set_rvar("diag.j", 57, Rv_pdist_reg,"5'brrrr0");
3216!!#
3217!!# // TBA/HTBA values
3218!!#
3219!!# IJ_set_rvar("diag.j", 61, Rv_tba, "6'b1111kk, 16'{0}");
3220!!# IJ_set_rvar("diag.j", 62, Rv_htba, "6'b1110kk, 16'{0}");
3221!!#
3222!!# // LSU cntl reg ..
3223!!# IJ_set_rvar("diag.j", 65, Rv_lsucntl, "5'brrr11");
3224!!#
3225!!# // Register usage - use 0-27 //
3226!!# // R31 is memory pointer
3227!!# // R30 is trap number register
3228!!# //
3229!!#
3230!!# IJ_set_ropr_fld("diag.j", 72, ijdefault, Ft_Rs1, "{0..13,16..27}");
3231!!# IJ_set_ropr_fld("diag.j", 73, ijdefault, Ft_Rs2, "{0..13,16..27}");
3232!!# IJ_set_ropr_fld("diag.j", 74, ijdefault, Ft_Rd, "{0..13,16..27}");
3233!!#
3234!!# // Load/Store pointer = r31
3235!!# IJ_set_ropr_fld("diag.j", 77, Ro_ldst_ptr, Ft_Rs1, "{31}");
3236!!#
3237!!# // ASI register values
3238!!# IJ_set_ropr_fld("diag.j", 80, Ro_wrasi_i, Ft_Rs1, "{0}");
3239!!# IJ_set_ropr_fld("diag.j", 81, Ro_wrasi_i, Ft_Simm13, "{0x4, 0x10, 0x14, 0x16, 0x80, 0x88, 0x89}");
3240!!#
3241!!# // General Ldst ASIs to use .. 50% should be illegal ..
3242!!# IJ_set_ropr_fld("diag.j", 84, Ro_nontrap_ldasi, Ft_Imm_Asi, "{0x12,0x14, 0x16, 0x80, 0x88}");
3243!!# IJ_set_ropr_fld("diag.j", 85, Ro_nontrap_ldasi, Ft_Rs1, "{31}");
3244!!# IJ_set_ropr_fld("diag.j", 86, Ro_nontrap_ldasi, Ft_Rs2, "{0}");
3245!!# IJ_set_ropr_fld("diag.j", 87, Ro_nontrap_ldasi, Ft_Simm13, "{0x0}, 6'brr0000");
3246!!#
3247!!# IJ_set_ropr_fld("diag.j", 89, Ro_nontrap_ldasi_z, Ft_Imm_Asi, "{0x45, 0x53..0x64}");
3248!!# IJ_set_ropr_fld("diag.j", 90, Ro_nontrap_ldasi_z, Ft_Rs1, "{0}");
3249!!# IJ_set_ropr_fld("diag.j", 91, Ro_nontrap_ldasi_z, Ft_Rs2, "{0}");
3250!!# IJ_set_ropr_fld("diag.j", 92, Ro_nontrap_ldasi_z, Ft_Simm13, "{0x0}, 6'brr0000");
3251!!#
3252!!# // General Ldst alignment to use .. 50% should be illegal ..
3253!!# IJ_set_ropr_fld("diag.j", 95, Ro_nontrap_ld, Fm_align_Simm13, "{0x0..0x6:5,0x7:1}");
3254!!# IJ_set_ropr_fld("diag.j", 96, Ro_nontrap_ld, Ft_Rs1, "{31}");
3255!!# IJ_set_ropr_fld("diag.j", 97, Ro_nontrap_ld, Ft_Rs2, "{0}");
3256!!#
3257!!# // Trap ASI operands
3258!!# IJ_set_ropr_fld("diag.j", 100, Ro_traps_asi, Ft_Imm_Asi, "{0x25, 0x72..0x74}");
3259!!# IJ_set_ropr_fld("diag.j", 101, Ro_traps_asi, Ft_Rs1, "{0}");
3260!!# IJ_set_ropr_fld("diag.j", 102, Ro_traps_asi, Ft_Rs2, "{0}");
3261!!# IJ_set_ropr_fld("diag.j", 103, Ro_traps_asi, Ft_Simm13, "{0x25, 0x72..0x74}");
3262!!#
3263!!# // Trap #s to use
3264!!# //IJ_set_ropr_fld(Ro_traps_i, Ft_Sw_Trap, "{0x30..0x35, 0xb0..0xb5}");
3265!!# IJ_set_ropr_fld("diag.j", 107, Ro_traps_i, Ft_Sw_Trap, "{0x30..0x35}");
3266!!# IJ_set_ropr_fld("diag.j", 108, Ro_traps_i, Ft_Rs1, "{0}");
3267!!# IJ_set_ropr_fld("diag.j", 109, Ro_traps_i, Ft_Cond_f2, "{0x8:3, 0x9, 0x1}");
3268!!# IJ_set_ropr_fld("diag.j", 110, Ro_traps_r, Ft_Rs1, "{0}");
3269!!# IJ_set_ropr_fld("diag.j", 111, Ro_traps_r, Ft_Rs2, "{30}");
3270!!# IJ_set_ropr_fld("diag.j", 112, Ro_traps_r, Ft_Cond_f2, "{0x8:3, 0x9, 0x1}");
3271!!# //IJ_set_ropr_fld(Ro_traps_r, Ft_Simm13, "{0x30..0x35}");
3272!!# IJ_set_ropr_fld("diag.j", 114, Ro_traps_r, Ft_Simm13, "{0x30..0x35, 0xb0..0xb5}");
3273!!# //IJ_set_rvar(Rv_init_trap, "{0x30..0x35}");
3274!!# IJ_set_rvar("diag.j", 116, Rv_init_trap, "{0x30..0x35, 0xb0..0xb5}");
3275!!#
3276!!# // FPRS splash
3277!!# IJ_set_ropr_fld("diag.j", 119, Ro_wrfprs, Ft_Rs1, "{0}");
3278!!# IJ_set_ropr_fld("diag.j", 120, Ro_wrfprs, Ft_Simm13, "{0, 4}");
3279!!#
3280!!# // Pstate splash
3281!!# IJ_set_ropr_fld("diag.j", 123, Ro_wrpstate, Ft_Rs1, "{0}");
3282!!# IJ_set_ropr_fld("diag.j", 124, Ro_wrpstate, Ft_Simm13, "12'b0rrr0rr0rrrrr");
3283!!#
3284!!# // Hpstate splash
3285!!# IJ_set_ropr_fld("diag.j", 127, Ro_wrhpstate, Ft_Rs1, "{0}");
3286!!# IJ_set_ropr_fld("diag.j", 128, Ro_wrhpstate, Ft_Simm13, "12'brrrrrr0rr1rr");
3287!!#
3288!!# // TT splash
3289!!# IJ_set_ropr_fld("diag.j", 131, Ro_wrtt, Ft_Rs1, "{0}");
3290!!# IJ_set_ropr_fld("diag.j", 132, Ro_wrtt, Ft_Simm13, "10'brrrrrrrrrr");
3291!!#
3292!!# // GL splash
3293!!# IJ_set_ropr_fld("diag.j", 135, Ro_wrgl, Ft_Rs1, "{0}");
3294!!# IJ_set_ropr_fld("diag.j", 136, Ro_wrgl, Ft_Simm13, "4'brrrr");
3295!!#
3296!!# // TL splash
3297!!# IJ_set_ropr_fld("diag.j", 139, Ro_tl, Ft_Simm13, "{0..5}");
3298!!# IJ_set_ropr_fld("diag.j", 140, Ro_tl, Ft_Rs1, "{0}");
3299!!#
3300!!# // CWP splash
3301!!# IJ_set_ropr_fld("diag.j", 143, Ro_wrcwp, Ft_Rs1, "{0}");
3302!!# IJ_set_ropr_fld("diag.j", 144, Ro_wrcwp, Ft_Simm13, "3'brrr");
3303!!#
3304!!# IJ_set_ropr_fld("diag.j", 146, Ro_save_restore, Ft_Rs1, "{31}");
3305!!# IJ_set_ropr_fld("diag.j", 147, Ro_save_restore, Ft_Rd, "{31}");
3306!!# IJ_set_ropr_fld("diag.j", 148, Ro_save_restore, Ft_Rs2, "{0}");
3307!!#
3308!!# IJ_set_ropr_fld("diag.j", 150, Ro_winops, Ft_Rs1, "{0}");
3309!!# IJ_set_ropr_fld("diag.j", 151, Ro_winops, Ft_Simm13, "{0..5}");
3310!!#
3311!!# // {H}TBA Splash
3312!!# IJ_set_ropr_fld("diag.j", 154, Ro_tba, Ft_Rs1, "{0}");
3313!!# IJ_set_ropr_fld("diag.j", 155, Ro_tba, Ft_Rs2, "{2}");
3314!!#
3315!!# // Dest reg is %g0
3316!!# IJ_set_ropr_fld("diag.j", 158, Ro_rd0, Ft_Rd, "{0}");
3317!!#
3318!!# // Weights
3319!!# IJ_set_default_rule_wt_rvar ("diag.j", 161,"{10}");
3320!!# IJ_set_rvar("diag.j", 162, wt_high, "{90}");
3321!!# IJ_set_rvar("diag.j", 163, wt_med, "{40}");
3322!!# IJ_set_rvar("diag.j", 164, wt_low, "{10}");
3323!!#
3324!!# // Initialize registers ..
3325!!# int i, j, k;
3326!!# IJ_printf ("diag.j", 168, th0,"!Initializing integer registers\n");
3327!!# for (k=0; k<7; k++) {
3328!!# for (i = 0; i < 30; i++) {
3329!!# if (i==15) {
3330!!# IJ_printf ("diag.j", 172, th0,"\tmov %%r31, %%r15\n");
3331!!# continue;
3332!!# }
3333!!# j=i*8;
3334!!# IJ_printf ("diag.j", 176, th0,"\tldx [%%r31+%d], %%r%d\n", j,i);
3335!!# }
3336!!# IJ_printf ("diag.j", 178, th0,"\tmov 0x%rx, %%r14\n", Rv_init_trap);
3337!!# IJ_printf ("diag.j", 179, th0,"\tmov 0x%rx, %%r30\n", Rv_init_trap);
3338!!# IJ_printf ("diag.j", 180, th0,"\tsave %%r31, %%r0, %%r31\n");
3339!!# }
3340!!# for (k=0; k<3; k++) {
3341!!# IJ_printf ("diag.j", 183, th0,"\trestore\n");
3342!!# }
3343!!#
3344!!# IJ_printf ("diag.j", 186, th0,"!Initializing float registers\n");
3345!!# for (i = 0; i < 31; i=i+2) {
3346!!# j=i*8;
3347!!# IJ_printf ("diag.j", 189, th0,"\tldd [%%r31+%d], %%f%d\n", j,i);
3348!!# }
3349!!#
3350!!# IJ_printf ("diag.j", 192, th0,"\tta T_CHANGE_HPRIV \n");
3351!!# IJ_printf ("diag.j", 193, th0,"!Initializing Tick Cmprs \n");
3352!!# IJ_printf ("diag.j", 194, th0,"\tmov 1, %%g2\n");
3353!!# IJ_printf ("diag.j", 195, th0,"\tsllx %%g2, 63, %%g2\n");
3354!!# IJ_printf ("diag.j", 196, th0,"\tor %%g1, %%g2, %%g1\n");
3355!!# IJ_printf("diag.j", 197, th0, "\twrhpr %%g1, %%g0, %%hsys_tick_cmpr\n");
3356!!# IJ_printf("diag.j", 198, th0, "\twr %%g1, %%g0, %%tick_cmpr\n");
3357!!# IJ_printf("diag.j", 199, th0, "\twr %%g1, %%g0, %%sys_tick_cmpr\n");
3358!!# IJ_printf ("diag.j", 200, th0,"!Initializing Trap Stack \n");
3359!!# for (i = 1; i <=6; i++) {
3360!!# IJ_printf ("diag.j", 202, th0,"\twrpr 0x%d, %%tl\n", i);
3361!!# IJ_printf ("diag.j", 203, th0,"\twrpr 0x1, %%tt\n");
3362!!# IJ_printf ("diag.j", 204, th0,"\twrpr 0x1, %%tpc\n");
3363!!# IJ_printf ("diag.j", 205, th0,"\twrpr 0x1, %%tnpc\n");
3364!!# IJ_printf ("diag.j", 206, th0,"\twrpr 0x1, %%tstate\n");
3365!!# IJ_printf ("diag.j", 207, th0,"\twrhpr 0x1, %%htstate\n");
3366!!# }
3367!!# IJ_printf ("diag.j", 209, th0,"\twrpr 0x0, %%tl\n");
3368!!# IJ_printf ("diag.j", 210, th0,"\tta T_CHANGE_NONHPRIV \n");
3369!!#
3370!!# }
3371!!#
3372!!# %%
3373!!# %%section finish
3374!!# {
3375!!#
3376!!#
3377!!# int i;
3378!!# IJ_printf ("diag.j", 259, th0,"\n\n.global user_data_start\n.data\nuser_data_start:\n");
3379!!# for (i = 0; i < 256; i++) {
3380!!# IJ_printf ("diag.j", 261, th0,"\t.xword\t0x%016llrx\n", Rv_rand_64);
3381!!# }
3382!!#
3383!!# for (i = 0; i < 4; i++) {
3384!!# IJ_iseg_printf ("diag.j", 265,MyHTRAPS, i, th0, "#include \"htraps.s\"\n");
3385!!# IJ_iseg_printf ("diag.j", 266,MyHTRAPS, i, th0,"#include \"tlu_htraps_ext.s\"\n");
3386!!# IJ_iseg_printf ("diag.j", 267,MyTRAPS, i, th0,"#include \"traps.s\"\n");
3387!!# }
3388!!#
3389!!# }
3390!!#
3391!!# %%
3392!!# %%section map
3393!!#
3394!!# // Define some additional trap tables here ..
3395!!#
3396!!# SECTION .MyHTRAPS TEXT_VA = "42'{0}, 6'b1110jj, 16'{0}",
3397!!# DATA_VA = "42'{0}, 8'b1110jj11, 14'{0}",
3398!!# attr_text {
3399!!# Name = .MyHTRAPS,
3400!!# hypervisor
3401!!# }
3402!!# attr_data {
3403!!# Name = .MyHTRAPS,
3404!!# hypervisor
3405!!# }
3406!!#
3407!!# enumerate {
3408!!# TEXT_VA
3409!!# }
3410!!#
3411!!# SECTION .MyTRAPS TEXT_VA = "42'{0}, 6'b1111jj, 16'{0}",
3412!!# DATA_VA = "42'{0}, 8'b1111jj11, 14'{0}",
3413!!# attr_text {
3414!!# Name = .MyTRAPS,
3415!!# RA = "42'{0}, 6'b1111jj, 16'{0}",
3416!!# part_0_ctx_zero_tsb_config_0,
3417!!# TTE_G=1, TTE_Context=0, TTE_V=1, TTE_Size=0, TTE_NFO=0, TTE_IE=0,
3418!!# TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0, TTE_L=0, TTE_CP=1, TTE_CV=0,
3419!!# TTE_E=0, TTE_P=1, TTE_W=1, TTE_X=1
3420!!# }
3421!!# attr_data {
3422!!# Name = .MyTRAPS,
3423!!# RA = "42'{0}, 8'b1111jj11, 14'{0}",
3424!!# part_0_ctx_zero_tsb_config_0,
3425!!# TTE_G=1, TTE_Context=0, TTE_V=1, TTE_Size=0, TTE_NFO=0, TTE_IE=0,
3426!!# TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0, TTE_L=0, TTE_CP=1, TTE_CV=0,
3427!!# TTE_E=0, TTE_P=1, TTE_W=1
3428!!# }
3429!!#
3430!!# enumerate {
3431!!# TEXT_VA
3432!!# }
3433!!#
3434!!#
3435!!#
3436!!#
3437!!# %%
3438!!# %%section grammar
3439!!#
3440!!#
3441!!# block: inst | block inst
3442!!# {
3443!!# IJ_generate ("diag.j", 312, th0, $2);
3444!!# };
3445!!#
3446!!# inst: trap_asr %rvar wt_med
3447!!# | trap_asi %rvar wt_low
3448!!# | tcc %rvar wt_high
3449!!# | ldst_excp %rvar wt_low
3450!!# | ldstasi_excp %rvar wt_low
3451!!# | ldstasi_excp_z %rvar wt_low
3452!!# | change_mode %rvar wt_med
3453!!# | alu %rvar wt_high
3454!!# | branches %rvar wt_med
3455!!# | wrasi %rvar wt_low
3456!!# | splash_fprs %rvar wt_low
3457!!# | splash_pstate %rvar wt_med
3458!!# | splash_hpstate %rvar wt_med
3459!!# | splash_cwp %rvar wt_med
3460!!# | splash_gl %rvar wt_med
3461!!# | splash_tt %rvar wt_med
3462!!# | stores %rvar wt_low
3463!!# | sir %rvar wt_low
3464!!# //| splash_cmpr %rvar wt_low
3465!!# | splash_tba %rvar wt_low
3466!!# | splash_htba %rvar wt_low
3467!!# | splash_lsucnt %rvar wt_low
3468!!# ;
3469!!#
3470!!# dummy :tCHANGE_NONHPRIV | tCHANGE_NONPRIV |
3471!!# tWR_STICK_CMPR_REG_R | tWR_TICK_CMPR_REG_R
3472!!# ;
3473!!#
3474!!# sir : tSIR ;
3475!!#
3476!!# change_mode :
3477!!# reduce_priv_level
3478!!# | tCHANGE_HPRIV
3479!!# | tCHANGE_PRIV
3480!!# | change_to_tl1
3481!!# | change_to_randtl
3482!!# | tCHANGE_TO_TL0
3483!!# ;
3484!!#
3485!!# pt1: tFqTOd | tSDIVX_I | tSIAM | tWRTICK_R | tWR_STICK_REG_R
3486!!# ;
3487!!#
3488!!# reduce_priv_level: pt1
3489!!# {
3490!!# IJ_printf("diag.j", 360, th0, "reduce_priv_level_%d:\n", label);
3491!!# IJ_set_ropr_fld("diag.j", 361, Ro_tl, Ft_Simm13, "{0..2}");
3492!!# IJ_generate_from_token("diag.j", 362,1, th0, Ro_tl, tWRPR_TL_I, -1);;
3493!!# if (label%2) {
3494!!# IJ_generate_from_token("diag.j", 364,1, th0, ijdefault, tCHANGE_NONHPRIV, -1);;
3495!!# } else {
3496!!# IJ_generate_from_token("diag.j", 366,1, th0, ijdefault, tCHANGE_NONPRIV, -1);;
3497!!# }
3498!!# label++;
3499!!# }
3500!!# ;
3501!!#
3502!!# change_to_randtl: tWRPR_TL_I %ropr Ro_tl
3503!!# {
3504!!# IJ_printf("diag.j", 374, th0, "change_to_randtl_%d:\n", label);
3505!!# if (label%2) {
3506!!# IJ_set_ropr_fld("diag.j", 376, Ro_tl, Ft_Simm13, "{3..5}");
3507!!# IJ_generate_from_token("diag.j", 377,1, th0, ijdefault, tCHANGE_HPRIV, -1);;
3508!!# } else {
3509!!# IJ_set_ropr_fld("diag.j", 379, Ro_tl, Ft_Simm13, "{0..2}");
3510!!# IJ_generate_from_token("diag.j", 380,1, th0, ijdefault, tCHANGE_PRIV, -1);;
3511!!# }
3512!!# label++;
3513!!# }
3514!!# ;
3515!!#
3516!!# change_to_tl1 : tCHANGE_TO_TL1
3517!!# {
3518!!# IJ_printf("diag.j", 388, th0, "change_to_tl1_%d:\n", label);
3519!!# if (label%2) {
3520!!# IJ_printf("diag.j", 390, th0, "\tta T_CHANGE_HPRIV\n");
3521!!# } else {
3522!!# IJ_printf("diag.j", 392, th0, "\tta T_CHANGE_PRIV\n");
3523!!# }
3524!!# label++;
3525!!# }
3526!!# ;
3527!!# trap_asr :
3528!!# tRDPR_TPC
3529!!# | tRDPR_TSTATE
3530!!# | tRDPR_TT
3531!!# | tRDPR_TNPC
3532!!# | tRDPR_TBA
3533!!# | tRDPR_TL
3534!!# | tRDPR_GL
3535!!# //| tRDHPR_HTBA
3536!!# //| tRDHPR_HPSTATE
3537!!# //| tRD_TICK_CMPR_REG
3538!!# //| tRD_STICK_CMPR_REG
3539!!# //| tRD_STICK_REG %ropr Ro_rd0
3540!!# ;
3541!!#
3542!!# splash_lsucnt: tFBPULE
3543!!# {
3544!!# IJ_printf("diag.j", 414, th0, "splash_lsu_%d:\n", label);
3545!!# IJ_printf("diag.j", 415, th0, "\tset 0x%rx, %%r2\n", Rv_lsucntl);
3546!!# IJ_printf("diag.j", 416, th0, "\tstxa %%r2, [%%r0] ASI_LSU_CONTROL\n");
3547!!# label++;
3548!!# }
3549!!# ;
3550!!#
3551!!# splash_tba: tWRPR_TBA_R %ropr Ro_tba
3552!!# {
3553!!# IJ_printf("diag.j", 423, th0, "splash_tba_%d:\n", label);
3554!!# IJ_printf("diag.j", 424, th0, "\tta T_CHANGE_PRIV\n");
3555!!# if (label%3) {
3556!!# IJ_printf("diag.j", 426, th0, "\tset 0x120000, %%r2\n");
3557!!# } else {
3558!!# IJ_printf("diag.j", 428, th0, "\tset 0x%08llrx, %%r2\n", Rv_tba);
3559!!# }
3560!!# label++;
3561!!# }
3562!!# ;
3563!!# splash_htba: tWRHPR_HTBA_R %ropr Ro_tba
3564!!# {
3565!!# IJ_printf("diag.j", 435, th0, "splash_htba_%d:\n", label);
3566!!# IJ_printf("diag.j", 436, th0, "\tta T_CHANGE_HPRIV\n");
3567!!# if (label%3) {
3568!!# IJ_printf("diag.j", 438, th0, "\tset 0x80000, %%r2\n");
3569!!# } else {
3570!!# IJ_printf("diag.j", 440, th0, "\tset 0x%08llrx, %%r2\n", Rv_htba);
3571!!# }
3572!!# label++;
3573!!# }
3574!!# ;
3575!!#
3576!!# splash_cmpr: tWR_STICK_REG_I
3577!!# {
3578!!# IJ_printf("diag.j", 448, th0, "splash_cmpr_%d:\n", label);
3579!!# IJ_set_rvar("diag.j", 449, Rv_rand_60,"64'h8rrrrrrr_rrrrrrrr");
3580!!# IJ_set_ropr_fld("diag.j", 450, Ro_cmpr, Ft_Rs1, "{0}");
3581!!# IJ_set_ropr_fld("diag.j", 451, Ro_cmpr, Ft_Rs2, "{1}");
3582!!# IJ_printf ("diag.j", 452, th0,"\tnop\n\tmov 1, %%g2\n");
3583!!# IJ_printf ("diag.j", 453, th0,"\tsllx %%g2, 63, %%g2\n");
3584!!# IJ_printf ("diag.j", 454, th0,"\tor %%g1, %%g2, %%g1\n");
3585!!# if (label%2) {
3586!!# IJ_generate_from_token("diag.j", 456,1, th0, Ro_cmpr, tWR_STICK_CMPR_REG_R, tWR_TICK_CMPR_REG_R, -1);;
3587!!# } else {
3588!!# IJ_printf("diag.j", 458, th0, "\twrhpr %%g1, %%g0, %%hsys_tick_cmpr\n");
3589!!# }
3590!!# label++;
3591!!# }
3592!!#
3593!!# ;
3594!!#
3595!!# splash_gl :
3596!!# tWRPR_GL_I %ropr Ro_wrgl
3597!!# ;
3598!!# splash_tt :
3599!!# tWRPR_TT_I %ropr Ro_wrtt
3600!!# ;
3601!!# splash_fprs :
3602!!# tWRFPRS_I %ropr Ro_wrfprs
3603!!# ;
3604!!#
3605!!# splash_cwp :
3606!!# tWRPR_CWP_I %ropr Ro_wrcwp
3607!!# ;
3608!!#
3609!!# splash_pstate :
3610!!# tWRPR_PSTATE_I %ropr Ro_wrpstate
3611!!# ;
3612!!#
3613!!# splash_hpstate :
3614!!# tWRHPR_HPSTATE_I %ropr Ro_wrhpstate
3615!!# ;
3616!!#
3617!!# trap_asi :
3618!!# asi_load_r %ropr Ro_traps_asi
3619!!# ;
3620!!#
3621!!# wrasi : tWRASI_I %ropr Ro_wrasi_i
3622!!# ;
3623!!# reg_tcc : tTcc_R %ropr Ro_traps_r
3624!!# {
3625!!# if (label%2) {
3626!!# IJ_printf("diag.j", 496, th0, "\totherw\n\tmov 0x%rx, %%r30\n", Rv_init_trap);
3627!!# } else {
3628!!# IJ_printf("diag.j", 498, th0, "\tinvalw\n\tmov 0x%rx, %%r30\n", Rv_init_trap);
3629!!# }
3630!!# }
3631!!# ;
3632!!#
3633!!# tcc :
3634!!# tTcc_I %ropr Ro_traps_i
3635!!# | reg_tcc
3636!!#
3637!!# ;
3638!!#
3639!!# ldst_excp :
3640!!# ldds %ropr Ro_nontrap_ld |
3641!!# load_r %ropr Ro_nontrap_ld |
3642!!# load_i %ropr Ro_nontrap_ld
3643!!#
3644!!# ;
3645!!#
3646!!# ldstasi_excp :
3647!!# asi_load_i %ropr Ro_nontrap_ldasi
3648!!# ;
3649!!# ldstasi_excp_z :
3650!!# tLDUWA_R %ropr Ro_nontrap_ldasi_z
3651!!# ;
3652!!#
3653!!# ldds: tLDD_R | tLDD_I | tLDDA_I | tLDDA_R
3654!!# ;
3655!!#
3656!!# stores:
3657!!# stds %ropr Ro_ldst_ptr |
3658!!# stfs %ropr Ro_ldst_ptr |
3659!!# stqfs %ropr Ro_ldst_ptr |
3660!!# sts %ropr Ro_ldst_ptr
3661!!# ;
3662!!# stds: tSTDA_R | tSTDA_I | tSTD_R | tSTD_I | tSTDF_R | tSTDF_I
3663!!# ;
3664!!# stfs: tSTF_R | tSTF_I
3665!!# ;
3666!!# stqfs: tSTQF_R | tSTQF_I
3667!!# ;
3668!!# sts: tSTB_R | tSTB_I | tSTH_R | tSTH_I | tSTW_R | tSTW_I | tSTX_R | tSTX_I
3669!!#
3670!!# ;
3671!!#
3672!!# load_r: tLDSB_R | tLDSH_R | tLDSW_R | tLDUB_R | tLDUH_R | tLDUW_R | tLDX_R
3673!!# | tLDQF_R
3674!!# ;
3675!!#
3676!!# load_i: tLDSB_I | tLDSH_I | tLDSW_I | tLDUB_I | tLDUH_I | tLDUW_I | tLDX_I
3677!!# | tLDQFA_I
3678!!# ;
3679!!#
3680!!# asi_load_i: tLDSBA_I | tLDSHA_I | tLDSWA_I | tLDUBA_I | tLDUHA_I | tLDXA_I
3681!!# ;
3682!!#
3683!!# asi_load_r:tLDSBA_R | tLDSHA_R | tLDSWA_R | tLDUBA_R | tLDUHA_R | tLDXA_R
3684!!# ;
3685!!#
3686!!# asi_store_i: tSTBA_I | tSTHA_I | tSTWA_I | tSTXA_I
3687!!# ;
3688!!#
3689!!# asi_store_r: tSTBA_R | tSTHA_R | tSTWA_R | tSTXA_R
3690!!# ;
3691!!#
3692!!# alu :
3693!!# tADDcc_R | tADDcc_I | tADDCcc_I | tANDNcc_R |
3694!!# tMULX_R | tUMULcc_R | tUMULcc_I | tSDIVcc_I | tSDIVcc_R |
3695!!# tSMULcc_R | tSDIVX_R | tUDIVX_R |
3696!!# tUDIVX_I | tFDIVs | tFDIVd | tFDIVq | tSWAP_I %ropr Ro_ldst_ptr |
3697!!# tSWAPA_R %ropr Ro_ldst_ptr | tCASA_I %ropr Ro_ldst_ptr | tPOPC_I |
3698!!# tFSQRTq | tFSQRTd | tFsMULd | tFdMULq | tFqTOi | tFNEGd | tFONES
3699!!# ;
3700!!#
3701!!# br : tBA | tBLE | tBGE | tBL | tBGU | tBLEU | tBN | tBNE | tBE | tBG |
3702!!# tBCC | tBCS | tBPOS | tBNEG | tBVC | tBVS | tBPA | tBPN | tBPNE |
3703!!# tBPE | tBPG | tBPLE | tBPGE | tBPL | tBPGU | tBPLEU | tBPCC | tBPCS |
3704!!# tBPPOS | tBPNEG | tBPVC | tBPVS
3705!!# ;
3706!!#
3707!!# branches : br | br_badelay | br_longdelay;
3708!!#
3709!!# br_badelay : tRD_SOFTINT_REG
3710!!# {
3711!!# IJ_printf("diag.j", 583, th0, "DS_%d:\n", label); label++;
3712!!# IJ_generate_from_token("diag.j", 584,1, th0, ijdefault, tBN, tBNE, tBE, tBG, -1);;
3713!!# IJ_generate_from_token("diag.j", 585,1, th0, ijdefault, tSTQF_I, tSTQF_R, -1);;
3714!!# IJ_printf("diag.j", 586, th0, "\tnormalw\n");
3715!!# }
3716!!# | tALLIGNADDRESS
3717!!# {
3718!!# IJ_printf("diag.j", 590, th0, "DS_%d:\n", label); label++;
3719!!# IJ_generate_from_token("diag.j", 591,1, th0, ijdefault, tBN, tBNE, tBE, tBG, -1);;
3720!!# if (! label%3) {
3721!!# IJ_generate_from_token("diag.j", 593,1, th0, ijdefault,tFDIVd, tPOPC_I, -1);;
3722!!# } else if (label%3 == 1) {
3723!!# IJ_printf("diag.j", 595, th0, "\tallclean\n");
3724!!# } else {
3725!!# IJ_printf("diag.j", 597, th0, "\tpdist %%f%rd, %%f%rd, %%f%rd\n", Rv_pdist_reg, Rv_pdist_reg, Rv_pdist_reg);
3726!!# }
3727!!# }
3728!!# | tFADDs
3729!!# {
3730!!# IJ_printf("diag.j", 602, th0, "DS_%d:\n", label); label++;
3731!!# IJ_generate_from_token("diag.j", 603,1, th0, ijdefault, tBN, tBNE, tBE, tBG, -1);;
3732!!# if (label%2) {
3733!!# IJ_printf("diag.j", 605, th0, "\tilltrap\n");
3734!!# } else {
3735!!# IJ_generate_from_token("diag.j", 607,1, th0, ijdefault, tBN, tBNE, tBE, tBG, -1);;
3736!!# }
3737!!# IJ_generate_from_token("diag.j", 609,1, th0, ijdefault, tFSQRTd, tLDQF_R, -1);;
3738!!# }
3739!!#
3740!!# ;
3741!!#
3742!!# br_longdelay : tSAVE_R %ropr Ro_save_restore
3743!!# {
3744!!# IJ_printf("diag.j", 616, th0, "DS_%d:\n", label); label++;
3745!!# IJ_generate_from_token("diag.j", 617,1, th0, ijdefault, tBN, tBNE, tBE, tBG, -1);;
3746!!# }
3747!!# | tRESTORE_R %ropr Ro_save_restore
3748!!# {
3749!!# IJ_printf("diag.j", 621, th0, "DS_%d:\n", label); label++;
3750!!# IJ_generate_from_token("diag.j", 622,1, th0, ijdefault, tBN, tBNE, tBE, tBG, -1);;
3751!!# }
3752!!# | tWRPR_CLEANWIN_I %ropr Ro_winops | tWRPR_WSTATE_I %ropr Ro_winops
3753!!# {
3754!!# IJ_printf("diag.j", 626, th0, "DS_%d:\n", label); label++;
3755!!# IJ_printf("diag.j", 627, th0, "\tnop\n\tnot %%g0, %%g2\n");
3756!!# IJ_printf("diag.j", 628, th0, "\tjmp %%g2\n");
3757!!# }
3758!!# ;
3759!!#
3760!!#
3761!!#
3762!!# %%
3763!!# %%section cbfunc
3764!!#
3765!!# %%
3766!!# %%section stat
3767!!#
3768!!# %%
3769#endif
3770