Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / uarch / tlu / diag / tlu_fcrand05_ind_23.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tlu_fcrand05_ind_23.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 IMMU_SKIP_IF_NO_TTE
39#define DMMU_SKIP_IF_NO_TTE
40#define MAIN_PAGE_NUCLEUS_ALSO
41#define MAIN_PAGE_HV_ALSO
42#define MAIN_PAGE_VA_IS_RA_ALSO
43#define DISABLE_PART_LIMIT_CHECK
44#define MAIN_PAGE_USE_CONFIG 3
45#define PART0_Z_TSB_SIZE_3 10
46#define PART0_Z_PAGE_SIZE_3 1
47#define PART0_NZ_TSB_SIZE_3 10
48#define PART0_NZ_PAGE_SIZE_3 1
49#define PART0_Z_TSB_SIZE_1 3
50#define PART0_NZ_TSB_SIZE_1 3
51
52#define PART_0_BASE 0x0
53#define USER_PAGE_CUSTOM_MAP
54#define MAIN_BASE_TEXT_VA 0x333000000
55#define MAIN_BASE_TEXT_RA 0x033000000
56#define MAIN_BASE_DATA_VA 0x379400000
57#define MAIN_BASE_DATA_RA 0x079400000
58
59#d
60# 474 "diag.j"
61#define H_HT0_Instruction_Access_MMU_Error_0x71 inst_access_mmu_error_handler
62#define H_HT0_Instruction_access_error_0x0a inst_access_error_handler
63#define H_HT0_Internal_Processor_Error_0x29 int_proc_err_handler
64#define H_HT0_Data_Access_MMU_Error_0x72 data_access_mmu_error_handler
65#define H_HT0_Data_access_error_0x32 data_access_error_handler
66#define H_HT0_Hw_Corrected_Error_0x63 hw_corrected_error_handler
67#define H_HT0_Sw_Recoverable_Error_0x40 sw_recoverable_error_handler
68#define H_HT0_Store_Error_0x07 store_error_handler
69
70#define DAE_SKIP_IF_SOCU_ERROR
71# 5 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
72#ifndef T_HANDLER_RAND4_1
73#define T_HANDLER_RAND4_1 b .+16;\
74 sdiv %r1, %r0, %l4;nop;nop
75#endif
76#ifndef T_HANDLER_RAND7_1
77#define T_HANDLER_RAND7_1 b .+28;\
78 pdist %f4, %f6, %f20; \
79 nop; nop ; nop; nop; illtrap
80#endif
81#ifndef T_HANDLER_RAND4_2
82#define T_HANDLER_RAND4_2 save %i7, %g0, %i7; \
83 save %i7, %g0, %i7; \
84 restore %i7, %g0, %i7;\
85 restore %i7, %g0, %i7;
86#endif
87#ifndef T_HANDLER_RAND7_2
88#define T_HANDLER_RAND7_2 b .+8 ;\
89 rdpr %pstate, %l2;\
90 b .+8 ;\
91 rdpr %tstate, %l3;\
92 b .+12 ;\
93 wrpr %l3, %r0, %tstate; nop
94#endif
95#ifndef T_HANDLER_RAND4_3
96#define T_HANDLER_RAND4_3 save %i7, %g0, %i7;\
97 restore %i7, %g0, %i7;\
98 save %i7, %g0, %i7; \
99 restore %i7, %g0, %i7;
100#endif
101#ifndef T_HANDLER_RAND7_3
102#define T_HANDLER_RAND7_3 b .+8 ;\
103 rdpr %tnpc, %l2;\
104 and %l2, 0xfc0, %l2;\
105 add %i7, %l2, %l2;\
106 stda %f16,[%l2]ASI_BLOCK_AS_IF_USER_PRIMARY ;\
107 b .+8 ;\
108 stda %f0,[%l2]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE ;
109#endif
110#ifndef T_HANDLER_RAND4_4
111#define T_HANDLER_RAND4_4 b .+4 ; b .+4; b .+4; b .+4
112#endif
113#ifndef T_HANDLER_RAND7_4
114#define T_HANDLER_RAND7_4 b .+8;\
115 save %i7, %g0, %i7; \
116 b,a .+8;\
117 b .+12;\
118 stw %i7, [%i7];\
119 b .-8;;\
120 restore %i7, %g0, %i7;
121
122#endif
123#ifndef T_HANDLER_RAND4_5
124#define T_HANDLER_RAND4_5 ldda [%r31]ASI_NUCLEUS_QUAD_LDD, %l4;\
125 sdiv %l4, %l5, %l7;\
126 add %r31, 128, %l5;\
127 stda %l4, [%l5]ASI_BLOCK_PRIMARY_LITTLE;
128#endif
129#ifndef T_HANDLER_RAND7_5
130#define T_HANDLER_RAND7_5 save %i7, %g0, %i7;\
131 rdpr %tnpc, %l2;\
132 wrpr %l2, %tpc;\
133 add %l2, 4, %l2;\
134 wrpr %l2, %tnpc;\
135 restore %i7, %g0, %i7;\
136 retry;
137#endif
138#ifndef T_HANDLER_RAND4_6
139#define T_HANDLER_RAND4_6 ldda [%r31]ASI_BLOCK_AS_IF_USER_PRIMARY, %l2;\
140 rd %fprs, %l2; \
141 wr %l2, 0x4, %fprs ;\
142 stda %f0,[%l2]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE;
143#endif
144#ifndef T_HANDLER_RAND7_6
145#define T_HANDLER_RAND7_6 umul %o4, 2, %o5;\
146 rdpr %tnpc, %l2;\
147 wrpr %l2, %tpc;\
148 add %l2, 4, %l2;\
149 wrpr %l2, %tnpc;\
150 stw %l2, [%i7];\
151 retry;
152#endif
153!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
154#ifndef HT_HANDLER_RAND4_1
155#define HT_HANDLER_RAND4_1 mov 0x80, %l3;\
156 b .+12;\
157 stxa %l3, [%l3]0x57 ;\
158 nop
159#endif
160#ifndef HT_HANDLER_RAND7_1
161#define HT_HANDLER_RAND7_1 b .+28;\
162 pdist %f4, %f4, %f20;\
163 nop; nop ; nop; nop; illtrap
164#endif
165#ifndef HT_HANDLER_RAND4_2
166#define HT_HANDLER_RAND4_2 save %i7, %g0, %i7; \
167 save %i7, %g0, %i7; \
168 restore %i7, %g0, %i7;\
169 restore %i7, %g0, %i7;
170#endif
171#ifndef HT_HANDLER_RAND7_2
172#define HT_HANDLER_RAND7_2 b .+8 ;\
173 rdhpr %hpstate, %l2;\
174 b .+8 ;\
175 rdhpr %htstate, %l3;\
176 b .+12 ;\
177 wrhpr %l3, %r0, %htstate; nop
178#endif
179#ifndef HT_HANDLER_RAND4_3
180#define HT_HANDLER_RAND4_3 stxa %l4, [%r31]ASI_AS_IF_USER_PRIMARY;\
181 mov 0x80, %l3;\
182 stxa %l3, [%l3]0x5f ;\
183 b .+8 ;\
184 ldxa [%r31]ASI_AS_IF_USER_PRIMARY, %l4;
185#endif
186#ifndef HT_HANDLER_RAND7_3
187#define HT_HANDLER_RAND7_3 b .+8 ;\
188 rdpr %tnpc, %l2;\
189 and %l2, 0xfc0, %l2;\
190 add %i7, %l2, %l2;\
191 stda %f16,[%l2]ASI_BLOCK_AS_IF_USER_PRIMARY ;\
192 b .+8 ;\
193 stda %f0,[%l2]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE ;
194#endif
195#ifndef HT_HANDLER_RAND4_4
196#define HT_HANDLER_RAND4_4 ldda [%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE, %l3;\
197 b .+12 ;\
198 stxa %l3, [%g0]ASI_LSU_CONTROL; nop
199#endif
200#ifndef HT_HANDLER_RAND7_4
201#define HT_HANDLER_RAND7_4 rdpr %tnpc, %l3;\
202 mov ASI_DMMU_VA_WATCHPOINT_VAL, %l4 ;\
203 stxa %l3, [%l4]ASI_DMMU_VA_WATCHPOINT ;\
204 mov 1, %l4;\
205 sllx %l4, 33, %l4 ;\
206 not %l4, %l3 ;\
207 stxa %l3, [%g0]ASI_LSU_CONTROL;
208#endif
209#ifndef HT_HANDLER_RAND4_5
210#define HT_HANDLER_RAND4_5 ldda [%r31]ASI_NUCLEUS_QUAD_LDD, %l4;\
211 sdiv %l4, %l5, %l6;\
212 sdiv %l3, %l6, %l7;\
213 stda %f32, [%r31]ASI_BLOCK_PRIMARY_LITTLE;
214#endif
215#ifndef HT_HANDLER_RAND7_5
216#define HT_HANDLER_RAND7_5 save %i7, %g0, %i7;\
217 rdpr %tnpc, %l2;\
218 wrpr %l2, %tpc;\
219 add %l2, 4, %l2;\
220 wrpr %l2, %tnpc;\
221 restore %i7, %g0, %i7;\
222 retry;
223#endif
224#ifndef HT_HANDLER_RAND4_6
225#define HT_HANDLER_RAND4_6 ld [%r31], %l2;\
226 rd %fprs, %l2; \
227 wr %l2, 0x4, %fprs ;\
228 stda %f0,[%l2]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE;
229#endif
230#ifndef HT_HANDLER_RAND7_6
231#define HT_HANDLER_RAND7_6 rdhpr %htstate, %o4;\
232 rdpr %tnpc, %l2;\
233 wrpr %l2, %tpc;\
234 add %l2, 4, %l2;\
235 wrpr %l2, %tnpc;\
236 wrhpr %o4, %r0, %htstate;\
237 retry;
238#endif
239
240!!!!!!!!!!!!!!!!!!!!!!!!!
241!! Disable trap checking
242#define NO_TRAPCHECK
243
244! Enable Traps
245#define ENABLE_T1_Privileged_Opcode_0x11
246#define ENABLE_T1_Fp_Disabled_0x20
247#define ENABLE_HT0_Watchdog_Reset_0x02
248
249#define FILL_TRAP_RETRY
250#define SPILL_TRAP_RETRY
251#define CLEAN_WIN_RETRY
252
253#define My_RED_Mode_Other_Reset
254#define My_RED_Mode_Other_Reset \
255 ba red_other_ext;\
256 nop;retry;nop;nop;nop;nop;nop
257
258#define H_HT0_Software_Initiated_Reset_0x04
259#define SUN_H_HT0_Software_Initiated_Reset_0x04 \
260 setx Software_Reset_Handler, %g1, %g2 ;\
261 jmp %g2 ;\
262 nop
263# 198 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
264#define H_T1_Clean_Window_0x24
265#define SUN_H_T1_Clean_Window_0x24 \
266 rdpr %cleanwin, %l1;\
267 add %l1,1,%l1;\
268 wrpr %l1, %g0, %cleanwin;\
269 retry; nop; nop; nop; nop
270
271#define H_T1_Clean_Window_0x25
272#define SUN_H_T1_Clean_Window_0x25 \
273 rdpr %cleanwin, %l1;\
274 add %l1,1,%l1;\
275 wrpr %l1, %g0, %cleanwin;\
276 retry; nop; nop; nop; nop
277
278#define H_T1_Clean_Window_0x26
279#define SUN_H_T1_Clean_Window_0x26 \
280 rdpr %cleanwin, %l1;\
281 add %l1,1,%l1;\
282 wrpr %l1, %g0, %cleanwin;\
283 retry; nop; nop; nop; nop
284
285#define H_T1_Clean_Window_0x27
286#define SUN_H_T1_Clean_Window_0x27 \
287 rdpr %cleanwin, %l1;\
288 add %l1,1,%l1;\
289 wrpr %l1, %g0, %cleanwin;\
290 retry; nop; nop; nop; nop
291# 227 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
292#define H_HT0_Tag_Overflow
293#define My_HT0_Tag_Overflow \
294 HT_HANDLER_RAND7_1 ;\
295 done
296
297#define H_T0_Tag_Overflow
298#define My_T0_Tag_Overflow \
299 T_HANDLER_RAND7_2 ;\
300 done
301
302#define H_T1_Tag_Overflow_0x23
303#define SUN_H_T1_Tag_Overflow_0x23 \
304 T_HANDLER_RAND7_3 ;\
305 done
306
307#define H_T0_Window_Spill_0_Normal_Trap
308#define SUN_H_T0_Window_Spill_0_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
309
310#define H_T0_Window_Spill_1_Normal_Trap
311#define SUN_H_T0_Window_Spill_1_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
312
313#define H_T0_Window_Spill_2_Normal_Trap
314#define SUN_H_T0_Window_Spill_2_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
315
316#define H_T0_Window_Spill_3_Normal_Trap
317#define SUN_H_T0_Window_Spill_3_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
318
319#define H_T0_Window_Spill_4_Normal_Trap
320#define SUN_H_T0_Window_Spill_4_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
321
322#define H_T0_Window_Spill_5_Normal_Trap
323#define SUN_H_T0_Window_Spill_5_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
324
325#define H_T0_Window_Spill_6_Normal_Trap
326#define SUN_H_T0_Window_Spill_6_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
327
328#define H_T0_Window_Spill_7_Normal_Trap
329#define SUN_H_T0_Window_Spill_7_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
330
331#define H_T0_Window_Spill_0_Other_Trap
332#define SUN_H_T0_Window_Spill_0_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
333
334#define H_T0_Window_Spill_1_Other_Trap
335#define SUN_H_T0_Window_Spill_1_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
336
337#define H_T0_Window_Spill_2_Other_Trap
338#define SUN_H_T0_Window_Spill_2_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
339
340#define H_T0_Window_Spill_3_Other_Trap
341#define SUN_H_T0_Window_Spill_3_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
342
343#define H_T0_Window_Spill_4_Other_Trap
344#define SUN_H_T0_Window_Spill_4_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
345
346#define H_T0_Window_Spill_5_Other_Trap
347#define SUN_H_T0_Window_Spill_5_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
348
349#define H_T0_Window_Spill_6_Other_Trap
350#define SUN_H_T0_Window_Spill_6_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
351
352#define H_T0_Window_Spill_7_Other_Trap
353#define SUN_H_T0_Window_Spill_7_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
354
355#define H_T0_Window_Fill_0_Normal_Trap
356#define SUN_H_T0_Window_Fill_0_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
357
358#define H_T0_Window_Fill_1_Normal_Trap
359#define SUN_H_T0_Window_Fill_1_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
360
361#define H_T0_Window_Fill_2_Normal_Trap
362#define SUN_H_T0_Window_Fill_2_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
363
364#define H_T0_Window_Fill_3_Normal_Trap
365#define SUN_H_T0_Window_Fill_3_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
366
367#define H_T0_Window_Fill_4_Normal_Trap
368#define SUN_H_T0_Window_Fill_4_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
369
370#define H_T0_Window_Fill_5_Normal_Trap
371#define SUN_H_T0_Window_Fill_5_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
372
373#define H_T0_Window_Fill_6_Normal_Trap
374#define SUN_H_T0_Window_Fill_6_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
375
376#define H_T0_Window_Fill_7_Normal_Trap
377#define SUN_H_T0_Window_Fill_7_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
378
379#define H_T0_Window_Fill_0_Other_Trap
380#define SUN_H_T0_Window_Fill_0_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
381
382#define H_T0_Window_Fill_1_Other_Trap
383#define SUN_H_T0_Window_Fill_1_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
384
385#define H_T0_Window_Fill_2_Other_Trap
386#define SUN_H_T0_Window_Fill_2_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
387
388#define H_T0_Window_Fill_3_Other_Trap
389#define SUN_H_T0_Window_Fill_3_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
390
391#define H_T0_Window_Fill_4_Other_Trap
392#define SUN_H_T0_Window_Fill_4_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
393
394#define H_T0_Window_Fill_5_Other_Trap
395#define SUN_H_T0_Window_Fill_5_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
396
397#define H_T0_Window_Fill_6_Other_Trap
398#define SUN_H_T0_Window_Fill_6_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
399
400#define H_T0_Window_Fill_7_Other_Trap
401#define SUN_H_T0_Window_Fill_7_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
402# 339 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
403#define H_T1_Window_Spill_0_Normal_Trap
404#define SUN_H_T1_Window_Spill_0_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
405
406#define H_T1_Window_Spill_1_Normal_Trap
407#define SUN_H_T1_Window_Spill_1_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
408
409#define H_T1_Window_Spill_2_Normal_Trap
410#define SUN_H_T1_Window_Spill_2_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
411
412#define H_T1_Window_Spill_3_Normal_Trap
413#define SUN_H_T1_Window_Spill_3_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
414
415#define H_T1_Window_Spill_4_Normal_Trap
416#define SUN_H_T1_Window_Spill_4_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
417
418#define H_T1_Window_Spill_5_Normal_Trap
419#define SUN_H_T1_Window_Spill_5_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
420
421#define H_T1_Window_Spill_6_Normal_Trap
422#define SUN_H_T1_Window_Spill_6_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
423
424#define H_T1_Window_Spill_7_Normal_Trap
425#define SUN_H_T1_Window_Spill_7_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
426
427#define H_T1_Window_Spill_0_Other_Trap
428#define SUN_H_T1_Window_Spill_0_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
429
430#define H_T1_Window_Spill_1_Other_Trap
431#define SUN_H_T1_Window_Spill_1_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
432
433#define H_T1_Window_Spill_2_Other_Trap
434#define SUN_H_T1_Window_Spill_2_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
435
436#define H_T1_Window_Spill_3_Other_Trap
437#define SUN_H_T1_Window_Spill_3_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
438
439#define H_T1_Window_Spill_4_Other_Trap
440#define SUN_H_T1_Window_Spill_4_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
441
442#define H_T1_Window_Spill_5_Other_Trap
443#define SUN_H_T1_Window_Spill_5_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
444
445#define H_T1_Window_Spill_6_Other_Trap
446#define SUN_H_T1_Window_Spill_6_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
447
448#define H_T1_Window_Spill_7_Other_Trap
449#define SUN_H_T1_Window_Spill_7_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
450
451#define H_T1_Window_Fill_0_Normal_Trap
452#define SUN_H_T1_Window_Fill_0_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
453
454#define H_T1_Window_Fill_1_Normal_Trap
455#define SUN_H_T1_Window_Fill_1_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
456
457#define H_T1_Window_Fill_2_Normal_Trap
458#define SUN_H_T1_Window_Fill_2_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
459
460#define H_T1_Window_Fill_3_Normal_Trap
461#define SUN_H_T1_Window_Fill_3_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
462
463#define H_T1_Window_Fill_4_Normal_Trap
464#define SUN_H_T1_Window_Fill_4_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
465
466#define H_T1_Window_Fill_5_Normal_Trap
467#define SUN_H_T1_Window_Fill_5_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
468
469#define H_T1_Window_Fill_6_Normal_Trap
470#define SUN_H_T1_Window_Fill_6_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
471
472#define H_T1_Window_Fill_7_Normal_Trap
473#define SUN_H_T1_Window_Fill_7_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
474
475#define H_T1_Window_Fill_0_Other_Trap
476#define SUN_H_T1_Window_Fill_0_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
477
478#define H_T1_Window_Fill_1_Other_Trap
479#define SUN_H_T1_Window_Fill_1_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
480
481#define H_T1_Window_Fill_2_Other_Trap
482#define SUN_H_T1_Window_Fill_2_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
483
484#define H_T1_Window_Fill_3_Other_Trap
485#define SUN_H_T1_Window_Fill_3_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
486
487#define H_T1_Window_Fill_4_Other_Trap
488#define SUN_H_T1_Window_Fill_4_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
489
490#define H_T1_Window_Fill_5_Other_Trap
491#define SUN_H_T1_Window_Fill_5_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
492
493#define H_T1_Window_Fill_6_Other_Trap
494#define SUN_H_T1_Window_Fill_6_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
495
496#define H_T1_Window_Fill_7_Other_Trap
497#define SUN_H_T1_Window_Fill_7_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
498
499#define H_T0_Trap_Instruction_0
500#define My_T0_Trap_Instruction_0 \
501 T_HANDLER_RAND7_5 ;\
502 done;
503
504#define H_T0_Trap_Instruction_1
505#define My_T0_Trap_Instruction_1 \
506 T_HANDLER_RAND7_6 ;\
507 done;
508
509#define H_T0_Trap_Instruction_2
510#define My_T0_Trap_Instruction_2 \
511 inc %o3;\
512 umul %o3, 2, %o4;\
513 ba 1f; \
514 save %i7, %g0, %i7; \
515 2: done; \
516 nop; \
517 1: ba 2b; \
518 restore %i7, %g0, %i7
519#define H_T0_Trap_Instruction_3
520#define My_T0_Trap_Instruction_3 \
521 save %i7, %g0, %i7 ;\
522 T_HANDLER_RAND4_5;\
523 stw %o4, [%i7];\
524 restore %i7, %g0, %i7 ;\
525 done
526#define H_T0_Trap_Instruction_4
527#define My_T0_Trap_Instruction_4 \
528 T_HANDLER_RAND7_6 ;\
529 done;
530
531#define H_T0_Trap_Instruction_5
532#define My_T0_Trap_Instruction_5 \
533 T_HANDLER_RAND4_5;\
534 done;
535
536#define H_T1_Trap_Instruction_0
537#define My_T1_Trap_Instruction_0 \
538 inc %o4;\
539 umul %o4, 2, %o5;\
540 ba 3f; \
541 save %i7, %g0, %i7; \
542 4: done; \
543 nop; \
544 3: ba 4b; \
545 restore %i7, %g0, %i7
546#define H_T1_Trap_Instruction_1
547#define My_T1_Trap_Instruction_1 \
548 T_HANDLER_RAND7_3;\
549 done
550#define H_T1_Trap_Instruction_2
551#define My_T1_Trap_Instruction_2 \
552 inc %o3;\
553 umul %o3, 2, %o4;\
554 ba 5f; \
555 save %i7, %g0, %i7; \
556 6: done; \
557 nop; \
558 5: ba 6b; \
559 restore %i7, %g0, %i7
560#define H_T1_Trap_Instruction_3
561#define My_T1_Trap_Instruction_3 \
562 T_HANDLER_RAND4_1;\
563 done;
564
565#define H_T1_Trap_Instruction_4
566#define My_T1_Trap_Instruction_4 \
567 T_HANDLER_RAND7_1;\
568 done;
569#define H_T1_Trap_Instruction_5
570#define My_T1_Trap_Instruction_5 \
571 T_HANDLER_RAND7_2;\
572 done
573#define H_HT0_Trap_Instruction_0
574#define My_HT0_Trap_Instruction_0 \
575 HT_HANDLER_RAND4_1 ;\
576 done;
577#define H_HT0_Trap_Instruction_1
578#define My_HT0_Trap_Instruction_1 \
579 HT_HANDLER_RAND4_3 ;\
580 done
581#define H_HT0_Trap_Instruction_2
582#define My_HT0_Trap_Instruction_2 \
583 HT_HANDLER_RAND7_5 ;\
584 done;
585#define H_HT0_Trap_Instruction_3
586#define My_HT0_Trap_Instruction_3 \
587 HT_HANDLER_RAND4_5 ;\
588 done
589#define H_HT0_Trap_Instruction_4
590#define My_HT0_Trap_Instruction_4 \
591 HT_HANDLER_RAND7_4 ;\
592 done
593#define H_HT0_Trap_Instruction_5
594#define My_HT0_Trap_Instruction_5 \
595 ba htrap_5_ext;\
596 nop; retry;\
597 nop; nop; nop; nop; nop
598
599#define H_HT0_Mem_Address_Not_Aligned_0x34
600#define My_HT0_Mem_Address_Not_Aligned_0x34 \
601 HT_HANDLER_RAND4_4 ;\
602 done ;
603#define H_HT0_Illegal_instruction_0x10
604#define My_HT0_Illegal_instruction_0x10 \
605 HT_HANDLER_RAND7_6 ;\
606 done;
607
608#define H_HT0_DAE_so_page_0x30
609#define My_HT0_DAE_so_page_0x30 \
610 HT_HANDLER_RAND4_2;\
611 done;
612#define H_HT0_DAE_invalid_asi_0x14
613#define SUN_H_HT0_DAE_invalid_asi_0x14 \
614 HT_HANDLER_RAND4_3 ;\
615 done
616#define H_HT0_DAE_privilege_violation_0x15
617#define SUN_H_HT0_DAE_privilege_violation_0x15 \
618 HT_HANDLER_RAND4_4 ;\
619 done;
620#define H_HT0_Privileged_Action_0x37
621#define My_HT0_Privileged_Action_0x37 \
622 done; \
623 nop; nop
624#define H_HT0_Lddf_Mem_Address_Not_Aligned_0x35
625#define My_HT0_Lddf_Mem_Address_Not_Aligned_0x35 \
626 HT_HANDLER_RAND7_4 ;\
627 done
628#define H_HT0_Stdf_Mem_Address_Not_Aligned_0x36
629#define My_HT0_Stdf_Mem_Address_Not_Aligned_0x36 \
630 HT_HANDLER_RAND7_1;\
631 done
632#define H_HT0_Fp_exception_ieee_754_0x21
633#define My_HT0_Fp_exception_ieee_754_0x21 \
634 HT_HANDLER_RAND4_2 ;\
635 done
636#define H_HT0_Fp_exception_other_0x22
637#define My_HT0_Fp_exception_other_0x22 \
638 HT_HANDLER_RAND7_2 ;\
639 done
640#define H_HT0_Division_By_Zero
641#define My_HT0_Division_By_Zero \
642 HT_HANDLER_RAND4_6;\
643 done
644#define H_T0_Division_By_Zero
645#define My_T0_Division_By_Zero \
646 T_HANDLER_RAND4_3;\
647 done
648#define H_T1_Division_By_Zero_0x28
649#define My_H_T1_Division_By_Zero_0x28 \
650 T_HANDLER_RAND4_3;\
651 done
652#define H_T0_Division_By_Zero
653#define My_T0_Division_By_Zero\
654 T_HANDLER_RAND4_4 ;\
655 done
656#define H_T0_Fp_exception_ieee_754_0x21
657#define My_T0_Fp_exception_ieee_754_0x21 \
658 T_HANDLER_RAND4_3 ;\
659 done
660#define H_T1_Fp_Exception_Ieee_754_0x21
661#define My_H_T1_Fp_Exception_Ieee_754_0x21 \
662 T_HANDLER_RAND4_4 ;\
663 done
664#define H_T1_Fp_Exception_Other_0x22
665#define My_H_T1_Fp_Exception_Other_0x22 \
666 T_HANDLER_RAND4_5 ;\
667 done
668#define H_T1_Privileged_Opcode_0x11
669#define SUN_H_T1_Privileged_Opcode_0x11 \
670 T_HANDLER_RAND4_6 ;\
671 done
672
673#define H_HT0_Privileged_opcode_0x11
674#define My_HT0_Privileged_opcode_0x11 \
675 HT_HANDLER_RAND4_1;\
676 done;
677
678#define H_HT0_Fp_disabled_0x20
679#define My_HT0_Fp_disabled_0x20 \
680 mov 0x4, %l2 ;\
681 wr %l2, 0x0, %fprs ;\
682 sllx %l2, 10, %l3; \
683 rdpr %tstate, %l2;\
684 or %l2, %l3, %l2 ;\
685 stw %l2, [%i7];\
686 wrpr %l2, 0x0, %tstate;\
687 retry;
688
689#define H_T0_Fp_disabled_0x20
690#define My_T0_Fp_disabled_0x20 \
691 mov 0x4, %l2 ;\
692 wr %l2, 0x0, %fprs ;\
693 sllx %l2, 10, %l3; \
694 rdpr %tstate, %l2;\
695 or %l2, %l3, %l2 ;\
696 wrpr %l2, 0x0, %tstate;\
697 retry; nop
698
699#define H_T1_Fp_Disabled_0x20
700#define My_H_T1_Fp_Disabled_0x20 \
701 mov 0x4, %l2 ;\
702 wr %l2, 0x0, %fprs ;\
703 sllx %l2, 10, %l3; \
704 rdpr %tstate, %l2;\
705 or %l2, %l3, %l2 ;\
706 wrpr %l2, 0x0, %tstate;\
707 stw %l2, [%i7];\
708 retry
709
710#define H_HT0_Watchdog_Reset_0x02
711#define My_HT0_Watchdog_Reset_0x02 \
712 ba wdog_2_ext;\
713 nop;retry;nop;nop;nop;nop;nop
714
715#define H_T0_Privileged_opcode_0x11
716#define My_T0_Privileged_opcode_0x11 \
717 T_HANDLER_RAND4_4;\
718 done
719
720#define H_T1_Fp_exception_other_0x22
721#define My_T1_Fp_exception_other_0x22 \
722 T_HANDLER_RAND7_3 ;\
723 done;
724
725#define H_T0_Fp_exception_other_0x22
726#define My_T0_Fp_exception_other_0x22 \
727 T_HANDLER_RAND7_4;\
728 done
729
730#define H_HT0_Trap_Level_Zero_0x5f
731#define My_HT0_Trap_Level_Zero_0x5f \
732 not %g0, %r13; \
733 rdhpr %hpstate, %l3;\
734 jmp %r13;\
735 rdhpr %htstate, %l3;\
736 and %l3, 0xfe, %l3;\
737 wrhpr %l3, 0, %htstate;\
738 stw %r13, [%i7];\
739 retry
740
741#define My_Watchdog_Reset
742#define My_Watchdog_Reset \
743 ba wdog_red_ext;\
744 nop;retry;nop;nop;nop;nop;nop
745
746#define H_HT0_Control_Transfer_Instr_0x74
747#define My_H_HT0_Control_Transfer_Instr_0x74 \
748 rdpr %tstate, %l3;\
749 mov 1, %l4;\
750 sllx %l4, 20, %l4;\
751 wrpr %l3, %l4, %tstate ;\
752 retry;nop;
753
754#define H_T0_Control_Transfer_Instr_0x74
755#define My_H_T0_Control_Transfer_Instr_0x74 \
756 rdpr %tstate, %l3;\
757 mov 1, %l4;\
758 sllx %l4, 20, %l4;\
759 wrpr %l3, %l4, %tstate ;\
760 retry;nop;
761
762#define H_T1_Control_Transfer_Instr_0x74
763#define My_H_T1_Control_Transfer_Instr_0x74 \
764 rdpr %tstate, %l3;\
765 mov 1, %l4;\
766 sllx %l4, 20, %l4;\
767 wrpr %l3, %l4, %tstate ;\
768 retry;nop;
769# 707 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
770#define H_HT0_data_access_protection_0x6c
771#define SUN_H_HT0_data_access_protection_0x6c ba daccess_prot_handler; nop
772
773#define H_HT0_PA_Watchpoint_0x61
774#define My_H_HT0_PA_Watchpoint_0x61 \
775 HT_HANDLER_RAND7_4;\
776 done
777
778#define H_HT0_Data_access_error_0x32
779#define SUN_H_HT0_Data_access_error_0x32 \
780 done;nop
781
782#define H_T0_VA_Watchpoint_0x62
783#define My_T0_VA_Watchpoint_0x62 \
784 T_HANDLER_RAND7_5;\
785 done
786
787#define H_T1_VA_Watchpoint_0x62
788#define SUN_H_T1_VA_Watchpoint_0x62 \
789 T_HANDLER_RAND7_3;\
790 done
791
792#define H_HT0_VA_Watchpoint_0x62
793#define My_H_HT0_VA_Watchpoint_0x62 \
794 HT_HANDLER_RAND7_5;\
795 done
796
797#define H_T0_Instruction_VA_Watchpoint_0x75
798#define SUN_H_T0_Instruction_VA_Watchpoint_0x75 \
799 T_HANDLER_RAND7_4;\
800 done;
801
802#define H_T1_Instruction_VA_Watchpoint_0x75
803#define SUN_H_T1_Instruction_VA_Watchpoint_0x75 \
804 T_HANDLER_RAND7_5;\
805 done;
806
807#define H_HT0_Instruction_VA_Watchpoint_0x75
808#define SUN_H_HT0_Instruction_VA_Watchpoint_0x75 \
809 HT_HANDLER_RAND7_6;\
810 done;
811
812#define H_HT0_Instruction_Breakpoint_0x76
813#define SUN_H_HT0_Instruction_Breakpoint_0x76 \
814 rdhpr %htstate, %g1;\
815 wrhpr %g1, 0x400, %htstate;\
816 retry;nop
817# 756 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
818#define H_HT0_Instruction_address_range_0x0d
819#define SUN_H_HT0_Instruction_address_range_0x0d \
820 HT_HANDLER_RAND4_1;\
821 done;
822
823#define H_HT0_mem_real_range_0x2d
824#define SUN_H_HT0_mem_real_range_0x2d \
825 HT_HANDLER_RAND4_2;\
826 done;
827# 767 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
828#define H_HT0_mem_address_range_0x2e
829#define SUN_H_HT0_mem_address_range_0x2e \
830 HT_HANDLER_RAND4_3;\
831 done;
832
833#define H_HT0_DAE_nc_page_0x16
834#define SUN_H_HT0_DAE_nc_page_0x16 \
835 HT_HANDLER_RAND4_4;\
836 done;
837
838#define H_HT0_DAE_nfo_page_0x17
839#define SUN_H_HT0_DAE_nfo_page_0x17 \
840 HT_HANDLER_RAND4_5;\
841 done;
842# 783 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
843#define H_HT0_IAE_unauth_access_0x0b
844#define SUN_H_HT0_IAE_unauth_access_0x0b \
845 HT_HANDLER_RAND7_3;\
846 done;
847# 789 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
848#define H_HT0_IAE_nfo_page_0x0c
849#define SUN_H_HT0_IAE_nfo_page_0x0c \
850 HT_HANDLER_RAND7_6;\
851 done;
852# 795 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
853#define H_HT0_Reserved_0x3b
854#define SUN_H_HT0_Reserved_0x3b \
855 mov 0x80, %l3;\
856 stxa %l3, [%l3]0x5f ;\
857 stxa %l3, [%l3]0x57 ;\
858 done;
859# 805 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
860#define H_HT0_IAE_privilege_violation_0x08
861#define My_HT0_IAE_privilege_violation_0x08 \
862 HT_HANDLER_RAND7_2;\
863 done;
864
865#define H_HT0_Instruction_Access_MMU_Error_0x71
866#define SUN_H_HT0_Instruction_Access_MMU_Error_0x71 \
867 mov 0x80, %l3;\
868 stxa %l3, [%l3]0x5f ;\
869 stxa %l3, [%l3]0x57 ;\
870 retry;
871
872#define H_HT0_Data_Access_MMU_Error_0x72
873#define SUN_H_HT0_Data_Access_MMU_Error_0x72 \
874 mov 0x80, %l3;\
875 stxa %l3, [%l3]0x5f ;\
876 stxa %l3, [%l3]0x57 ;\
877 retry;
878# 825 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_handlers.s"
879!!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!!
880# 12 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
881!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
882!!!!!!!!!!!!!!!! START of Interrupt Handlers !!!!!!!!!!!!!!!!!
883
884#ifndef INT_HANDLER_RAND4_1
885#define INT_HANDLER_RAND4_1 retry; nop; nop; nop
886#endif
887#ifndef INT_HANDLER_RAND7_1
888#define INT_HANDLER_RAND7_1 mov 0x20,%g1; mov 1, %g2;stxa %g2,[%g1]0x40
889#endif
890#ifndef INT_HANDLER_RAND4_2
891#define INT_HANDLER_RAND4_2 retry; nop; nop; nop
892#endif
893#ifndef INT_HANDLER_RAND7_2
894#define INT_HANDLER_RAND7_2 mov 0x80,%g1;stxa %g0,[%g1]0x40
895#endif
896#ifndef INT_HANDLER_RAND4_3
897#define INT_HANDLER_RAND4_3 retry; nop; nop; nop
898#endif
899#ifndef INT_HANDLER_RAND7_3
900#define INT_HANDLER_RAND7_3 retry; nop; nop; nop ; nop; nop; nop
901#endif
902#define H_HT0_Externally_Initiated_Reset_0x03
903#define SUN_H_HT0_Externally_Initiated_Reset_0x03 \
904 ldxa [%g0] ASI_LSU_CTL_REG, %g1; \
905 set cregs_lsu_ctl_reg_r64, %g1; \
906 stxa %g1, [%g0] ASI_LSU_CTL_REG; \
907 retry;nop
908
909#define My_External_Reset \
910 ldxa [%g0] ASI_LSU_CTL_REG, %l5; \
911 set cregs_lsu_ctl_reg_r64, %l5; \
912 stxa %l5, [%g0] ASI_LSU_CTL_REG; \
913 retry;nop
914
915!!!!! SPU Interrupt Handlers
916
917#define H_HT0_Control_Word_Queue_Interrupt_0x3c
918#define My_HT0_Control_Word_Queue_Interrupt_0x3c \
919 INT_HANDLER_RAND7_1 ;\
920 retry ;
921
922#define H_HT0_Modular_Arithmetic_Interrupt_0x3d
923#define My_H_HT0_Modular_Arithmetic_Interrupt_0x3d \
924 INT_HANDLER_RAND7_2 ;\
925 retry ;
926# 59 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
927!!!!! HW interrupt handlers
928
929#define H_HT0_Interrupt_0x60
930#define My_HT0_Interrupt_0x60 \
931 ldxa [%g0] ASI_SWVR_INTR_RECEIVE, %g5 ;\
932 ldxa [%g0] ASI_SWVR_INTR_R, %g4 ;\
933 ldxa [%g0] ASI_SWVR_INTR_RECEIVE, %g3 ;\
934 INT_HANDLER_RAND4_1 ;\
935 retry;
936
937!!!!! Queue interrupt handler
938# 72 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
939#define H_T0_Cpu_Mondo_Trap_0x7c
940#define My_T0_Cpu_Mondo_Trap_0x7c \
941 mov 0x3c8, %g3; \
942 ldxa [%g3] 0x25, %g5; \
943 mov 0x3c0, %g3; \
944 stxa %g5, [%g3] 0x25; \
945 retry; \
946 nop; \
947 nop; \
948 nop
949
950#define H_T0_Dev_Mondo_Trap_0x7d
951#define My_T0_Dev_Mondo_Trap_0x7d \
952 mov 0x3d8, %g3; \
953 ldxa [%g3] 0x25, %g5; \
954 mov 0x3d0, %g3; \
955 stxa %g5, [%g3] 0x25; \
956 retry; \
957 nop; \
958 nop; \
959 nop
960
961#define H_T0_Resumable_Error_0x7e
962#define My_T0_Resumable_Error_0x7e \
963 mov 0x3e8, %g3; \
964 ldxa [%g3] 0x25, %g5; \
965 mov 0x3e0, %g3; \
966 stxa %g5, [%g3] 0x25; \
967 retry; \
968 nop; \
969 nop; \
970 nop
971
972#define H_T1_Cpu_Mondo_Trap_0x7c
973#define My_T1_Cpu_Mondo_Trap_0x7c \
974 mov 0x3c8, %g3; \
975 ldxa [%g3] 0x25, %g5; \
976 mov 0x3c0, %g3; \
977 stxa %g5, [%g3] 0x25; \
978 retry; \
979 nop; \
980 nop; \
981 nop
982
983#define H_T1_Dev_Mondo_Trap_0x7d
984#define My_T1_Dev_Mondo_Trap_0x7d \
985 mov 0x3d8, %g3; \
986 ldxa [%g3] 0x25, %g5; \
987 mov 0x3d0, %g3; \
988 stxa %g5, [%g3] 0x25; \
989 retry; \
990 nop; \
991 nop; \
992 nop
993
994#define H_T1_Resumable_Error_0x7e
995#define My_T1_Resumable_Error_0x7e \
996 mov 0x3e8, %g3; \
997 ldxa [%g3] 0x25, %g5; \
998 mov 0x3e0, %g3; \
999 stxa %g5, [%g3] 0x25; \
1000 retry; \
1001 nop; \
1002 nop; \
1003 nop
1004
1005#define H_HT0_Reserved_0x7c
1006#define SUN_H_HT0_Reserved_0x7c \
1007 mov 0x3c8, %g3; \
1008 ldxa [%g3] 0x25, %g5; \
1009 mov 0x3c0, %g3; \
1010 stxa %g5, [%g3] 0x25; \
1011 retry; \
1012 nop; \
1013 nop; \
1014 nop
1015
1016#define H_HT0_Reserved_0x7d
1017#define SUN_H_HT0_Reserved_0x7d \
1018 mov 0x3d8, %g3; \
1019 ldxa [%g3] 0x25, %g5; \
1020 mov 0x3d0, %g3; \
1021 stxa %g5, [%g3] 0x25; \
1022 retry; \
1023 nop; \
1024 nop; \
1025 nop
1026
1027#define H_HT0_Reserved_0x7e
1028#define SUN_H_HT0_Reserved_0x7e \
1029 mov 0x3e8, %g3; \
1030 ldxa [%g3] 0x25, %g5; \
1031 mov 0x3e0, %g3; \
1032 stxa %g5, [%g3] 0x25; \
1033 retry; \
1034 nop; \
1035 nop; \
1036 nop
1037# 172 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
1038!!!!! Hstick-match trap handler
1039# 175 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
1040#define H_T0_Reserved_0x5e
1041#define My_T0_Reserved_0x5e \
1042 rdhpr %hintp, %g3; \
1043 wrhpr %g3, %g3, %hintp; \
1044 retry; \
1045 nop; \
1046 nop; \
1047 nop; \
1048 nop; \
1049 nop
1050
1051#define H_HT0_Hstick_Match_0x5e
1052#define My_HT0_Hstick_Match_0x5e \
1053 rdhpr %hintp, %g3; \
1054 wrhpr %g3, %g3, %hintp; \
1055 retry; \
1056 nop; \
1057 nop; \
1058 nop; \
1059 nop; \
1060 nop
1061
1062#define H_T0_Reserved_0x5e
1063#define My_T0_Reserved_0x5e \
1064 rdhpr %hintp, %g3; \
1065 wrhpr %g3, %g3, %hintp; \
1066 retry; \
1067 nop; \
1068 nop; \
1069 nop; \
1070 nop; \
1071 nop
1072
1073#define H_T1_Reserved_0x5e
1074#define My_T1_Reserved_0x5e \
1075 rdhpr %hintp, %g3; \
1076 wrhpr %g3, %g3, %hintp; \
1077 retry; \
1078 nop; \
1079 nop; \
1080 nop; \
1081 nop; \
1082 nop
1083# 220 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
1084!!!!! SW interuupt handlers
1085# 223 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
1086#define H_T0_Interrupt_Level_14_0x4e
1087#define My_T0_Interrupt_Level_14_0x4e \
1088 rd %softint, %g3; \
1089 sethi %hi(0x14000), %g3; \
1090 or %g3, 0x1, %g3; \
1091 wr %g3, %g0, %clear_softint; \
1092 retry; \
1093 nop; \
1094 nop; \
1095 nop
1096
1097#define H_T0_Interrupt_Level_1_0x41
1098#define My_T0_Interrupt_Level_1_0x41 \
1099 rd %softint, %g3; \
1100 or %g0, 0x2, %g3; \
1101 wr %g3, %g0, %clear_softint; \
1102 retry; \
1103 nop; \
1104 nop; \
1105 nop; \
1106 nop
1107
1108#define H_T0_Interrupt_Level_2_0x42
1109#define My_T0_Interrupt_Level_2_0x42 \
1110 rd %softint, %g3; \
1111 or %g0, 0x4, %g3; \
1112 wr %g3, %g0, %clear_softint; \
1113 retry; \
1114 nop; \
1115 nop; \
1116 nop; \
1117 nop
1118
1119#define H_T0_Interrupt_Level_3_0x43
1120#define My_T0_Interrupt_Level_3_0x43 \
1121 rd %softint, %g3; \
1122 or %g0, 0x8, %g3; \
1123 wr %g3, %g0, %clear_softint; \
1124 retry; \
1125 nop; \
1126 nop; \
1127 nop; \
1128 nop
1129
1130#define H_T0_Interrupt_Level_4_0x44
1131#define My_T0_Interrupt_Level_4_0x44 \
1132 rd %softint, %g3; \
1133 or %g0, 0x10, %g3; \
1134 wr %g3, %g0, %clear_softint; \
1135 retry; \
1136 nop; \
1137 nop; \
1138 nop; \
1139 nop
1140
1141#define H_T0_Interrupt_Level_5_0x45
1142#define My_T0_Interrupt_Level_5_0x45 \
1143 rd %softint, %g3; \
1144 or %g0, 0x20, %g3; \
1145 wr %g3, %g0, %clear_softint; \
1146 retry; \
1147 nop; \
1148 nop; \
1149 nop; \
1150 nop
1151
1152#define H_T0_Interrupt_Level_6_0x46
1153#define My_T0_Interrupt_Level_6_0x46 \
1154 rd %softint, %g3; \
1155 or %g0, 0x40, %g3; \
1156 wr %g3, %g0, %clear_softint; \
1157 retry; \
1158 nop; \
1159 nop; \
1160 nop; \
1161 nop
1162
1163#define H_T0_Interrupt_Level_7_0x47
1164#define My_T0_Interrupt_Level_7_0x47 \
1165 rd %softint, %g3; \
1166 or %g0, 0x80, %g3; \
1167 wr %g3, %g0, %clear_softint; \
1168 retry; \
1169 nop; \
1170 nop; \
1171 nop; \
1172 nop
1173
1174#define H_T0_Interrupt_Level_8_0x48
1175#define My_T0_Interrupt_Level_8_0x48 \
1176 rd %softint, %g3; \
1177 or %g0, 0x100, %g3; \
1178 wr %g3, %g0, %clear_softint; \
1179 retry; \
1180 nop; \
1181 nop; \
1182 nop; \
1183 nop
1184
1185#define H_T0_Interrupt_Level_9_0x49
1186#define My_T0_Interrupt_Level_9_0x49 \
1187 rd %softint, %g3; \
1188 or %g0, 0x200, %g3; \
1189 wr %g3, %g0, %clear_softint; \
1190 retry; \
1191 nop; \
1192 nop; \
1193 nop; \
1194 nop
1195
1196#define H_T0_Interrupt_Level_10_0x4a
1197#define My_T0_Interrupt_Level_10_0x4a \
1198 rd %softint, %g3; \
1199 or %g0, 0x400, %g3; \
1200 wr %g3, %g0, %clear_softint; \
1201 retry; \
1202 nop; \
1203 nop; \
1204 nop; \
1205 nop
1206
1207#define H_T0_Interrupt_Level_11_0x4b
1208#define My_T0_Interrupt_Level_11_0x4b \
1209 rd %softint, %g3; \
1210 or %g0, 0x800, %g3; \
1211 wr %g3, %g0, %clear_softint; \
1212 retry; \
1213 nop; \
1214 nop; \
1215 nop; \
1216 nop
1217
1218#define H_T0_Interrupt_Level_12_0x4c
1219#define My_T0_Interrupt_Level_12_0x4c \
1220 rd %softint, %g3; \
1221 sethi %hi(0x1000), %g3; \
1222 wr %g3, %g0, %clear_softint; \
1223 retry; \
1224 nop; \
1225 nop; \
1226 nop; \
1227 nop
1228
1229#define H_T0_Interrupt_Level_13_0x4d
1230#define My_T0_Interrupt_Level_13_0x4d \
1231 rd %softint, %g3; \
1232 sethi %hi(0x2000), %g3; \
1233 wr %g3, %g0, %clear_softint; \
1234 retry; \
1235 nop; \
1236 nop; \
1237 nop; \
1238 nop
1239
1240#define H_T0_Interrupt_Level_15_0x4f
1241#define My_T0_Interrupt_Level_15_0x4f \
1242 sethi %hi(0x8000), %g3; \
1243 wr %g3, %g0, %clear_softint; \
1244 wr %g0, %g0, %pic;\
1245 set 0x1ff8bfff, %g4;\
1246 wr %g4, %g0, %pcr;\
1247 retry;
1248
1249#define H_T1_Interrupt_Level_14_0x4e
1250#define My_T1_Interrupt_Level_14_0x4e \
1251 rd %softint, %g3; \
1252 sethi %hi(0x14000), %g3; \
1253 or %g3, 0x1, %g3; \
1254 wr %g3, %g0, %clear_softint; \
1255 retry; \
1256 nop; \
1257 nop; \
1258 nop
1259
1260#define H_T1_Interrupt_Level_1_0x41
1261#define My_T1_Interrupt_Level_1_0x41 \
1262 rd %softint, %g3; \
1263 or %g0, 0x2, %g3; \
1264 wr %g3, %g0, %clear_softint; \
1265 retry; \
1266 nop; \
1267 nop; \
1268 nop; \
1269 nop
1270
1271#define H_T1_Interrupt_Level_2_0x42
1272#define My_T1_Interrupt_Level_2_0x42 \
1273 rd %softint, %g3; \
1274 or %g0, 0x4, %g3; \
1275 wr %g3, %g0, %clear_softint; \
1276 retry; \
1277 nop; \
1278 nop; \
1279 nop; \
1280 nop
1281
1282#define H_T1_Interrupt_Level_3_0x43
1283#define My_T1_Interrupt_Level_3_0x43 \
1284 rd %softint, %g3; \
1285 or %g0, 0x8, %g3; \
1286 wr %g3, %g0, %clear_softint; \
1287 retry; \
1288 nop; \
1289 nop; \
1290 nop; \
1291 nop
1292
1293#define H_T1_Interrupt_Level_4_0x44
1294#define My_T1_Interrupt_Level_4_0x44 \
1295 rd %softint, %g3; \
1296 or %g0, 0x10, %g3; \
1297 wr %g3, %g0, %clear_softint; \
1298 retry; \
1299 nop; \
1300 nop; \
1301 nop; \
1302 nop
1303
1304#define H_T1_Interrupt_Level_5_0x45
1305#define My_T1_Interrupt_Level_5_0x45 \
1306 rd %softint, %g3; \
1307 or %g0, 0x20, %g3; \
1308 wr %g3, %g0, %clear_softint; \
1309 retry; \
1310 nop; \
1311 nop; \
1312 nop; \
1313 nop
1314
1315#define H_T1_Interrupt_Level_6_0x46
1316#define My_T1_Interrupt_Level_6_0x46 \
1317 rd %softint, %g3; \
1318 or %g0, 0x40, %g3; \
1319 wr %g3, %g0, %clear_softint; \
1320 retry; \
1321 nop; \
1322 nop; \
1323 nop; \
1324 nop
1325
1326#define H_T1_Interrupt_Level_7_0x47
1327#define My_T1_Interrupt_Level_7_0x47 \
1328 rd %softint, %g3; \
1329 or %g0, 0x80, %g3; \
1330 wr %g3, %g0, %clear_softint; \
1331 retry; \
1332 nop; \
1333 nop; \
1334 nop; \
1335 nop
1336
1337#define H_T1_Interrupt_Level_8_0x48
1338#define My_T1_Interrupt_Level_8_0x48 \
1339 rd %softint, %g3; \
1340 or %g0, 0x100, %g3; \
1341 wr %g3, %g0, %clear_softint; \
1342 retry; \
1343 nop; \
1344 nop; \
1345 nop; \
1346 nop
1347
1348#define H_T1_Interrupt_Level_9_0x49
1349#define My_T1_Interrupt_Level_9_0x49 \
1350 rd %softint, %g3; \
1351 or %g0, 0x200, %g3; \
1352 wr %g3, %g0, %clear_softint; \
1353 retry; \
1354 nop; \
1355 nop; \
1356 nop; \
1357 nop
1358
1359#define H_T1_Interrupt_Level_10_0x4a
1360#define My_T1_Interrupt_Level_10_0x4a \
1361 rd %softint, %g3; \
1362 or %g0, 0x400, %g3; \
1363 wr %g3, %g0, %clear_softint; \
1364 retry; \
1365 nop; \
1366 nop; \
1367 nop; \
1368 nop
1369
1370#define H_T1_Interrupt_Level_11_0x4b
1371#define My_T1_Interrupt_Level_11_0x4b \
1372 rd %softint, %g3; \
1373 or %g0, 0x800, %g3; \
1374 wr %g3, %g0, %clear_softint; \
1375 retry; \
1376 nop; \
1377 nop; \
1378 nop; \
1379 nop
1380
1381#define H_T1_Interrupt_Level_12_0x4c
1382#define My_T1_Interrupt_Level_12_0x4c \
1383 rd %softint, %g3; \
1384 sethi %hi(0x1000), %g3; \
1385 wr %g3, %g0, %clear_softint; \
1386 retry; \
1387 nop; \
1388 nop; \
1389 nop; \
1390 nop
1391
1392#define H_T1_Interrupt_Level_13_0x4d
1393#define My_T1_Interrupt_Level_13_0x4d \
1394 rd %softint, %g3; \
1395 sethi %hi(0x2000), %g3; \
1396 wr %g3, %g0, %clear_softint; \
1397 retry; \
1398 nop; \
1399 nop; \
1400 nop; \
1401 nop
1402
1403#define H_T1_Interrupt_Level_15_0x4f
1404#define My_T1_Interrupt_Level_15_0x4f \
1405 sethi %hi(0x8000), %g3; \
1406 wr %g3, %g0, %clear_softint; \
1407 wr %g0, %g0, %pic;\
1408 set 0x1ff8bfff, %g4;\
1409 wr %g4, %g0, %pcr;\
1410 retry;
1411
1412#define H_HT0_Interrupt_Level_14_0x4e
1413#define My_HT0_Interrupt_Level_14_0x4e \
1414 rd %softint, %g3; \
1415 sethi %hi(0x14000), %g3; \
1416 or %g3, 0x1, %g3; \
1417 wr %g3, %g0, %clear_softint; \
1418 retry; \
1419 nop; \
1420 nop; \
1421 nop
1422
1423#define H_HT0_Interrupt_Level_1_0x41
1424#define My_HT0_Interrupt_Level_1_0x41 \
1425 rd %softint, %g3; \
1426 or %g0, 0x2, %g3; \
1427 wr %g3, %g0, %clear_softint; \
1428 retry; \
1429 nop; \
1430 nop; \
1431 nop; \
1432 nop
1433
1434#define H_HT0_Interrupt_Level_2_0x42
1435#define My_HT0_Interrupt_Level_2_0x42 \
1436 rd %softint, %g3; \
1437 or %g0, 0x4, %g3; \
1438 wr %g3, %g0, %clear_softint; \
1439 retry; \
1440 nop; \
1441 nop; \
1442 nop; \
1443 nop
1444
1445#define H_HT0_Interrupt_Level_3_0x43
1446#define My_HT0_Interrupt_Level_3_0x43 \
1447 rd %softint, %g3; \
1448 or %g0, 0x8, %g3; \
1449 wr %g3, %g0, %clear_softint; \
1450 retry; \
1451 nop; \
1452 nop; \
1453 nop; \
1454 nop
1455
1456#define H_HT0_Interrupt_Level_4_0x44
1457#define My_HT0_Interrupt_Level_4_0x44 \
1458 rd %softint, %g3; \
1459 or %g0, 0x10, %g3; \
1460 wr %g3, %g0, %clear_softint; \
1461 retry; \
1462 nop; \
1463 nop; \
1464 nop; \
1465 nop
1466
1467#define H_HT0_Interrupt_Level_5_0x45
1468#define My_HT0_Interrupt_Level_5_0x45 \
1469 rd %softint, %g3; \
1470 or %g0, 0x20, %g3; \
1471 wr %g3, %g0, %clear_softint; \
1472 retry; \
1473 nop; \
1474 nop; \
1475 nop; \
1476 nop
1477
1478#define H_HT0_Interrupt_Level_6_0x46
1479#define My_HT0_Interrupt_Level_6_0x46 \
1480 rd %softint, %g3; \
1481 or %g0, 0x40, %g3; \
1482 wr %g3, %g0, %clear_softint; \
1483 retry; \
1484 nop; \
1485 nop; \
1486 nop; \
1487 nop
1488
1489#define H_HT0_Interrupt_Level_7_0x47
1490#define My_HT0_Interrupt_Level_7_0x47 \
1491 rd %softint, %g3; \
1492 or %g0, 0x80, %g3; \
1493 wr %g3, %g0, %clear_softint; \
1494 retry; \
1495 nop; \
1496 nop; \
1497 nop; \
1498 nop
1499
1500#define H_HT0_Interrupt_Level_8_0x48
1501#define My_HT0_Interrupt_Level_8_0x48 \
1502 rd %softint, %g3; \
1503 or %g0, 0x100, %g3; \
1504 wr %g3, %g0, %clear_softint; \
1505 retry; \
1506 nop; \
1507 nop; \
1508 nop; \
1509 nop
1510
1511#define H_HT0_Interrupt_Level_9_0x49
1512#define My_HT0_Interrupt_Level_9_0x49 \
1513 rd %softint, %g3; \
1514 or %g0, 0x200, %g3; \
1515 wr %g3, %g0, %clear_softint; \
1516 retry; \
1517 nop; \
1518 nop; \
1519 nop; \
1520 nop
1521
1522#define H_HT0_Interrupt_Level_10_0x4a
1523#define My_HT0_Interrupt_Level_10_0x4a \
1524 rd %softint, %g3; \
1525 or %g0, 0x400, %g3; \
1526 wr %g3, %g0, %clear_softint; \
1527 retry; \
1528 nop; \
1529 nop; \
1530 nop; \
1531 nop
1532
1533#define H_HT0_Interrupt_Level_11_0x4b
1534#define My_HT0_Interrupt_Level_11_0x4b \
1535 rd %softint, %g3; \
1536 or %g0, 0x800, %g3; \
1537 wr %g3, %g0, %clear_softint; \
1538 retry; \
1539 nop; \
1540 nop; \
1541 nop; \
1542 nop
1543
1544#define H_HT0_Interrupt_Level_12_0x4c
1545#define My_HT0_Interrupt_Level_12_0x4c \
1546 rd %softint, %g3; \
1547 sethi %hi(0x1000), %g3; \
1548 wr %g3, %g0, %clear_softint; \
1549 retry; \
1550 nop; \
1551 nop; \
1552 nop; \
1553 nop
1554
1555#define H_HT0_Interrupt_Level_13_0x4d
1556#define My_HT0_Interrupt_Level_13_0x4d \
1557 rd %softint, %g3; \
1558 sethi %hi(0x2000), %g3; \
1559 wr %g3, %g0, %clear_softint; \
1560 retry; \
1561 nop; \
1562 nop; \
1563 nop; \
1564 nop
1565
1566#define H_HT0_Interrupt_Level_15_0x4f
1567#define My_HT0_Interrupt_Level_15_0x4f \
1568 sethi %hi(0x8000), %g3; \
1569 wr %g3, %g0, %clear_softint; \
1570 wr %g0, %g0, %pic;\
1571 set 0x1ff8bfff, %g4;\
1572 wr %g4, %g0, %pcr;\
1573 retry;
1574# 713 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_intr_handlers.s"
1575!!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!!
1576# 488 "diag.j"
1577!# Steer towards main TBA on these errors ..
1578!# These are redefines ...
1579#undef SUN_H_HT0_DAE_nc_page_0x16
1580#define SUN_H_HT0_DAE_nc_page_0x16 \
1581 best_set_reg(0x120000, %r1, %r2);\
1582 wrpr %r0, %r2, %tba; \
1583 done;nop
1584
1585#undef SUN_H_HT0_DAE_nfo_page_0x17
1586#define SUN_H_HT0_DAE_nfo_page_0x17 \
1587 best_set_reg(0x120000, %r1, %r2);\
1588 wrpr %r0, %r2, %tba; \
1589 done;nop
1590
1591#undef SUN_H_HT0_IAE_unauth_access_0x0b
1592#define SUN_H_HT0_IAE_unauth_access_0x0b \
1593 set resolve_bad_tte, %g3;\
1594 jmp %g3;\
1595 nop
1596
1597#undef My_HT0_IAE_privilege_violation_0x08
1598#define My_HT0_IAE_privilege_violation_0x08 \
1599 set resolve_bad_tte, %g3;\
1600 jmp %g3;\
1601 nop
1602
1603#define H_HT0_Instruction_address_range_0x0d
1604#define SUN_H_HT0_Instruction_address_range_0x0d \
1605 rdpr %tpc, %g1;\
1606 rdpr %tnpc, %g2;\
1607 stw %g1, [%i7];\
1608 stw %g2, [%i7+4];\
1609 jmpl %r27+8, %r27;\
1610 fdivd %f0, %f4, %f4;\
1611 nop;
1612
1613#define H_HT0_Instruction_real_range_0x0e
1614#define SUN_H_HT0_Instruction_real_range_0x0e \
1615 rdpr %tpc, %g1;\
1616 rdpr %tnpc, %g2;\
1617 stw %g1, [%i7];\
1618 stw %g2, [%i7+4];\
1619 jmpl %r27+8, %r27;\
1620 fdivd %f0, %f4, %f4;\
1621 nop;
1622
1623#undef SUN_H_HT0_IAE_nfo_page_0x0c
1624#define SUN_H_HT0_IAE_nfo_page_0x0c \
1625 set resolve_bad_tte, %g3;\
1626 jmp %g3;\
1627 nop
1628
1629#define H_HT0_Instruction_Invalid_TSB_Entry_0x2a
1630#define SUN_H_HT0_Instruction_Invalid_TSB_Entry_0x2a \
1631 set restore_range_regs, %g3;\
1632 jmp %g3;\
1633 nop
1634
1635#define H_HT0_Data_Invalid_TSB_Entry_0x2b
1636#define SUN_H_HT0_Data_Invalid_TSB_Entry_0x2b \
1637 set restore_range_regs, %g3;\
1638 jmp %g3;\
1639 nop
1640
1641#undef FAST_BOOT
1642#include "hboot.s"
1643# 556 "diag.j"
1644#define LOMEIN_TEXT_VA [0x]mpeval(MAIN_BASE_TEXT_VA&0xffffffff,16)
1645#define LOMEIN_DATA_VA [0x]mpeval(MAIN_BASE_DATA_VA&0xffffffff,16)
1646changequote([, ])dnl
1647SECTION .LOMEIN TEXT_VA=LOMEIN_TEXT_VA, DATA_VA=LOMEIN_DATA_VA
1648attr_text {
1649 Name = .LOMEIN,
1650 VA= LOMEIN_TEXT_VA,
1651 RA= MAIN_BASE_TEXT_RA,
1652 PA= ra2pa2(MAIN_BASE_TEXT_RA, 0),
1653 part_0_ctx_nonzero_tsb_config_1,
1654 part_0_ctx_zero_tsb_config_1,
1655 TTE_G=1, TTE_Context=0x44, TTE_V=1,
1656 TTE_Size=0, TTE_NFO=0, TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
1657 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=1,
1658 tsbonly
1659 }
1660attr_data {
1661 Name = .LOMEIN,
1662 VA= LOMEIN_DATA_VA,
1663 RA= MAIN_BASE_DATA_RA,
1664 PA= ra2pa2(MAIN_BASE_DATA_RA, 0),
1665 part_0_ctx_nonzero_tsb_config_2,
1666 part_0_ctx_zero_tsb_config_2
1667 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
1668 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
1669 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
1670 tsbonly
1671 }
1672attr_data {
1673 Name = .LOMEIN,
1674 VA= LOMEIN_DATA_VA,
1675 RA= MAIN_BASE_DATA_RA,
1676 PA= ra2pa2(MAIN_BASE_DATA_RA, 0),
1677 part_0_ctx_nonzero_tsb_config_3,
1678 part_0_ctx_zero_tsb_config_3
1679 TTE_G=1, TTE_Context=0x55, TTE_V=1, TTE_Size=0, TTE_NFO=0,
1680 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
1681 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
1682 tsbonly
1683 }
1684.text
1685.align 0x100000
1686 nop
1687.data
1688 .word 0x0
1689
1690SECTION .MAIN TEXT_VA=MAIN_BASE_TEXT_VA, DATA_VA=MAIN_BASE_DATA_VA
1691attr_text {
1692 Name = .MAIN,
1693 VA=MAIN_BASE_TEXT_VA,
1694 RA= LOMEIN_TEXT_VA,
1695 PA= LOMEIN_TEXT_VA,
1696 part_0_ctx_nonzero_tsb_config_2,
1697 part_0_ctx_zero_tsb_config_2,
1698 TTE_G=1, TTE_Context=0x44, TTE_V=1,
1699 TTE_Size=0, TTE_NFO=0, TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
1700 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=1,
1701 }
1702
1703attr_data {
1704 Name = .MAIN,
1705 VA=MAIN_BASE_DATA_VA
1706 RA= LOMEIN_DATA_VA,
1707 PA= LOMEIN_DATA_VA,
1708 part_0_ctx_nonzero_tsb_config_1,
1709 part_0_ctx_zero_tsb_config_1
1710 TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
1711 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
1712 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
1713 }
1714
1715attr_data {
1716 Name = .MAIN,
1717 VA=MAIN_BASE_DATA_VA
1718 RA= LOMEIN_DATA_VA,
1719 PA= LOMEIN_DATA_VA,
1720 part_0_ctx_nonzero_tsb_config_3,
1721 part_0_ctx_zero_tsb_config_3
1722 TTE_G=1, TTE_Context=0x55, TTE_V=1, TTE_Size=0, TTE_NFO=0,
1723 TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
1724 TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
1725 tsbonly
1726 }
1727
1728attr_text {
1729 Name = .MAIN,
1730 VA=MAIN_BASE_TEXT_VA,
1731 hypervisor
1732}
1733
1734attr_data {
1735 Name = .MAIN,
1736 VA=MAIN_BASE_DATA_VA
1737 hypervisor
1738}
1739changequote(`,')dnl'
1740
1741.text
1742.global main
1743main:
1744
1745 ! Set up ld/st area per thread
1746 ta T_CHANGE_HPRIV
1747 ldxa [%g0]0x63, %o2
1748 and %o2, 0x7, %o1
1749 brnz %o1, init_start
1750 mov 0xff, %r10
1751lock_sync_thds:
1752 set sync_thr_counter4, %r23
1753#ifndef SPC
1754 and %o2, 0x38, %o2
1755 add %o2,%r23,%r23 !Core's sync counter
1756#endif
1757 st %r10, [%r23] !lock sync_thr_counter4
1758 add %r23, 64, %r23
1759 st %r10, [%r23] !lock sync_thr_counter5
1760 add %r23, 64, %r23
1761 st %r10, [%r23] !lock sync_thr_counter6
1762init_start:
1763 ta T_CHANGE_NONHPRIV
1764 umul %r9, 256, %r31
1765 setx user_data_start, %r1, %r3
1766 add %r31, %r3, %r31
1767 wr %r0, 0x4, %asi
1768
1769!Initializing integer registers
1770 ldx [%r31+0], %r0
1771 ldx [%r31+8], %r1
1772 ldx [%r31+16], %r2
1773 ldx [%r31+24], %r3
1774 ldx [%r31+32], %r4
1775 ldx [%r31+40], %r5
1776 ldx [%r31+48], %r6
1777 ldx [%r31+56], %r7
1778 ldx [%r31+64], %r8
1779 ldx [%r31+72], %r9
1780 ldx [%r31+80], %r10
1781 ldx [%r31+88], %r11
1782 ldx [%r31+96], %r12
1783 ldx [%r31+104], %r13
1784 ldx [%r31+112], %r14
1785 mov %r31, %r15
1786 ldx [%r31+128], %r16
1787 ldx [%r31+136], %r17
1788 ldx [%r31+144], %r18
1789 ldx [%r31+152], %r19
1790 ldx [%r31+160], %r20
1791 ldx [%r31+168], %r21
1792 ldx [%r31+176], %r22
1793 ldx [%r31+184], %r23
1794 ldx [%r31+192], %r24
1795 ldx [%r31+200], %r25
1796 ldx [%r31+208], %r26
1797 ldx [%r31+216], %r27
1798 ldx [%r31+224], %r28
1799 ldx [%r31+232], %r29
1800 mov 0x32, %r14
1801 mov 0xb0, %r30
1802 save %r31, %r0, %r31
1803 ldx [%r31+0], %r0
1804 ldx [%r31+8], %r1
1805 ldx [%r31+16], %r2
1806 ldx [%r31+24], %r3
1807 ldx [%r31+32], %r4
1808 ldx [%r31+40], %r5
1809 ldx [%r31+48], %r6
1810 ldx [%r31+56], %r7
1811 ldx [%r31+64], %r8
1812 ldx [%r31+72], %r9
1813 ldx [%r31+80], %r10
1814 ldx [%r31+88], %r11
1815 ldx [%r31+96], %r12
1816 ldx [%r31+104], %r13
1817 ldx [%r31+112], %r14
1818 mov %r31, %r15
1819 ldx [%r31+128], %r16
1820 ldx [%r31+136], %r17
1821 ldx [%r31+144], %r18
1822 ldx [%r31+152], %r19
1823 ldx [%r31+160], %r20
1824 ldx [%r31+168], %r21
1825 ldx [%r31+176], %r22
1826 ldx [%r31+184], %r23
1827 ldx [%r31+192], %r24
1828 ldx [%r31+200], %r25
1829 ldx [%r31+208], %r26
1830 ldx [%r31+216], %r27
1831 ldx [%r31+224], %r28
1832 ldx [%r31+232], %r29
1833 mov 0xb0, %r14
1834 mov 0xb1, %r30
1835 save %r31, %r0, %r31
1836 ldx [%r31+0], %r0
1837 ldx [%r31+8], %r1
1838 ldx [%r31+16], %r2
1839 ldx [%r31+24], %r3
1840 ldx [%r31+32], %r4
1841 ldx [%r31+40], %r5
1842 ldx [%r31+48], %r6
1843 ldx [%r31+56], %r7
1844 ldx [%r31+64], %r8
1845 ldx [%r31+72], %r9
1846 ldx [%r31+80], %r10
1847 ldx [%r31+88], %r11
1848 ldx [%r31+96], %r12
1849 ldx [%r31+104], %r13
1850 ldx [%r31+112], %r14
1851 mov %r31, %r15
1852 ldx [%r31+128], %r16
1853 ldx [%r31+136], %r17
1854 ldx [%r31+144], %r18
1855 ldx [%r31+152], %r19
1856 ldx [%r31+160], %r20
1857 ldx [%r31+168], %r21
1858 ldx [%r31+176], %r22
1859 ldx [%r31+184], %r23
1860 ldx [%r31+192], %r24
1861 ldx [%r31+200], %r25
1862 ldx [%r31+208], %r26
1863 ldx [%r31+216], %r27
1864 ldx [%r31+224], %r28
1865 ldx [%r31+232], %r29
1866 mov 0xb4, %r14
1867 mov 0xb5, %r30
1868 save %r31, %r0, %r31
1869 ldx [%r31+0], %r0
1870 ldx [%r31+8], %r1
1871 ldx [%r31+16], %r2
1872 ldx [%r31+24], %r3
1873 ldx [%r31+32], %r4
1874 ldx [%r31+40], %r5
1875 ldx [%r31+48], %r6
1876 ldx [%r31+56], %r7
1877 ldx [%r31+64], %r8
1878 ldx [%r31+72], %r9
1879 ldx [%r31+80], %r10
1880 ldx [%r31+88], %r11
1881 ldx [%r31+96], %r12
1882 ldx [%r31+104], %r13
1883 ldx [%r31+112], %r14
1884 mov %r31, %r15
1885 ldx [%r31+128], %r16
1886 ldx [%r31+136], %r17
1887 ldx [%r31+144], %r18
1888 ldx [%r31+152], %r19
1889 ldx [%r31+160], %r20
1890 ldx [%r31+168], %r21
1891 ldx [%r31+176], %r22
1892 ldx [%r31+184], %r23
1893 ldx [%r31+192], %r24
1894 ldx [%r31+200], %r25
1895 ldx [%r31+208], %r26
1896 ldx [%r31+216], %r27
1897 ldx [%r31+224], %r28
1898 ldx [%r31+232], %r29
1899 mov 0xb3, %r14
1900 mov 0x30, %r30
1901 save %r31, %r0, %r31
1902 ldx [%r31+0], %r0
1903 ldx [%r31+8], %r1
1904 ldx [%r31+16], %r2
1905 ldx [%r31+24], %r3
1906 ldx [%r31+32], %r4
1907 ldx [%r31+40], %r5
1908 ldx [%r31+48], %r6
1909 ldx [%r31+56], %r7
1910 ldx [%r31+64], %r8
1911 ldx [%r31+72], %r9
1912 ldx [%r31+80], %r10
1913 ldx [%r31+88], %r11
1914 ldx [%r31+96], %r12
1915 ldx [%r31+104], %r13
1916 ldx [%r31+112], %r14
1917 mov %r31, %r15
1918 ldx [%r31+128], %r16
1919 ldx [%r31+136], %r17
1920 ldx [%r31+144], %r18
1921 ldx [%r31+152], %r19
1922 ldx [%r31+160], %r20
1923 ldx [%r31+168], %r21
1924 ldx [%r31+176], %r22
1925 ldx [%r31+184], %r23
1926 ldx [%r31+192], %r24
1927 ldx [%r31+200], %r25
1928 ldx [%r31+208], %r26
1929 ldx [%r31+216], %r27
1930 ldx [%r31+224], %r28
1931 ldx [%r31+232], %r29
1932 mov 0xb5, %r14
1933 mov 0xb4, %r30
1934 save %r31, %r0, %r31
1935 ldx [%r31+0], %r0
1936 ldx [%r31+8], %r1
1937 ldx [%r31+16], %r2
1938 ldx [%r31+24], %r3
1939 ldx [%r31+32], %r4
1940 ldx [%r31+40], %r5
1941 ldx [%r31+48], %r6
1942 ldx [%r31+56], %r7
1943 ldx [%r31+64], %r8
1944 ldx [%r31+72], %r9
1945 ldx [%r31+80], %r10
1946 ldx [%r31+88], %r11
1947 ldx [%r31+96], %r12
1948 ldx [%r31+104], %r13
1949 ldx [%r31+112], %r14
1950 mov %r31, %r15
1951 ldx [%r31+128], %r16
1952 ldx [%r31+136], %r17
1953 ldx [%r31+144], %r18
1954 ldx [%r31+152], %r19
1955 ldx [%r31+160], %r20
1956 ldx [%r31+168], %r21
1957 ldx [%r31+176], %r22
1958 ldx [%r31+184], %r23
1959 ldx [%r31+192], %r24
1960 ldx [%r31+200], %r25
1961 ldx [%r31+208], %r26
1962 ldx [%r31+216], %r27
1963 ldx [%r31+224], %r28
1964 ldx [%r31+232], %r29
1965 mov 0xb4, %r14
1966 mov 0x31, %r30
1967 save %r31, %r0, %r31
1968 ldx [%r31+0], %r0
1969 ldx [%r31+8], %r1
1970 ldx [%r31+16], %r2
1971 ldx [%r31+24], %r3
1972 ldx [%r31+32], %r4
1973 ldx [%r31+40], %r5
1974 ldx [%r31+48], %r6
1975 ldx [%r31+56], %r7
1976 ldx [%r31+64], %r8
1977 ldx [%r31+72], %r9
1978 ldx [%r31+80], %r10
1979 ldx [%r31+88], %r11
1980 ldx [%r31+96], %r12
1981 ldx [%r31+104], %r13
1982 ldx [%r31+112], %r14
1983 mov %r31, %r15
1984 ldx [%r31+128], %r16
1985 ldx [%r31+136], %r17
1986 ldx [%r31+144], %r18
1987 ldx [%r31+152], %r19
1988 ldx [%r31+160], %r20
1989 ldx [%r31+168], %r21
1990 ldx [%r31+176], %r22
1991 ldx [%r31+184], %r23
1992 ldx [%r31+192], %r24
1993 ldx [%r31+200], %r25
1994 ldx [%r31+208], %r26
1995 ldx [%r31+216], %r27
1996 ldx [%r31+224], %r28
1997 ldx [%r31+232], %r29
1998 mov 0x35, %r14
1999 mov 0xb4, %r30
2000 save %r31, %r0, %r31
2001 restore
2002 restore
2003 restore
2004!Initializing float registers
2005 ldd [%r31+0], %f0
2006 ldd [%r31+16], %f2
2007 ldd [%r31+32], %f4
2008 ldd [%r31+48], %f6
2009 ldd [%r31+64], %f8
2010 ldd [%r31+80], %f10
2011 ldd [%r31+96], %f12
2012 ldd [%r31+112], %f14
2013 ldd [%r31+128], %f16
2014 ldd [%r31+144], %f18
2015 ldd [%r31+160], %f20
2016 ldd [%r31+176], %f22
2017 ldd [%r31+192], %f24
2018 ldd [%r31+208], %f26
2019 ldd [%r31+224], %f28
2020 ldd [%r31+240], %f30
2021 !! Set TPC/TNPC to diag-finish in case we get to a strange TL ..
2022 ta T_CHANGE_HPRIV
2023 setx diag_finish, %r29, %r28
2024 add %r28, 4, %r29
2025 wrpr %g0, 1, %tl
2026 wrpr %r28, %tpc
2027 wrpr %r29, %tnpc
2028 wrpr %g0, 2, %tl
2029 wrpr %r28, %tpc
2030 wrpr %r29, %tnpc
2031 wrpr %g0, 3, %tl
2032 wrpr %r28, %tpc
2033 wrpr %r29, %tnpc
2034 wrpr %g0, 4, %tl
2035 wrpr %r28, %tpc
2036 wrpr %r29, %tnpc
2037 wrpr %g0, 5, %tl
2038 wrpr %r28, %tpc
2039 wrpr %r29, %tnpc
2040 wrpr %g0, 6, %tl
2041 wrpr %r28, %tpc
2042 wrpr %r29, %tnpc
2043 wrpr %g0, 0, %tl
2044
2045 !Initializing Tick Cmprs
2046 mov 1, %g2
2047 sllx %g2, 63, %g2
2048 or %g1, %g2, %g1
2049 wrhpr %g1, %g0, %hsys_tick_cmpr
2050 wr %g1, %g0, %tick_cmpr
2051 wr %g1, %g0, %sys_tick_cmpr
2052
2053 ! Set up fpr PMU traps
2054 set 0x1ff8bfff, %g2
2055 b fork_threads
2056 wr %g2, %g0, %pcr
2057
2058common_target:
2059 nop
2060 sub %r27, 8, %r27
2061 and %r27, 8, %r12
2062 brz,a %r12, .+8
2063 lduw [%r27], %r12 ! load jmp dest into dcache - xinval
2064 jmp %r27
2065 .word 0x9f802d5d ! 1: SIR sir 0x0d5d
2066 nop
2067 jmp %r27
2068 nop
2069fork_threads:
2070 ta %icc, T_RD_THID
2071! fork: source strm = 0xffffffff; target strm = 0x1
2072 cmp %o1, 0
2073 setx fork_lbl_0_1, %g2, %g3
2074 be,a .+8
2075 jmp %g3
2076 nop
2077! fork: source strm = 0xffffffff; target strm = 0x2
2078 cmp %o1, 1
2079 setx fork_lbl_0_2, %g2, %g3
2080 be,a .+8
2081 jmp %g3
2082 nop
2083! fork: source strm = 0xffffffff; target strm = 0x4
2084 cmp %o1, 2
2085 setx fork_lbl_0_3, %g2, %g3
2086 be,a .+8
2087 jmp %g3
2088 nop
2089! fork: source strm = 0xffffffff; target strm = 0x8
2090 cmp %o1, 3
2091 setx fork_lbl_0_4, %g2, %g3
2092 be,a .+8
2093 jmp %g3
2094 nop
2095! fork: source strm = 0xffffffff; target strm = 0x10
2096 cmp %o1, 4
2097 setx fork_lbl_0_5, %g2, %g3
2098 be,a .+8
2099 jmp %g3
2100 nop
2101! fork: source strm = 0xffffffff; target strm = 0x20
2102 cmp %o1, 5
2103 setx fork_lbl_0_6, %g2, %g3
2104 be,a .+8
2105 jmp %g3
2106 nop
2107! fork: source strm = 0xffffffff; target strm = 0x40
2108 cmp %o1, 6
2109 setx fork_lbl_0_7, %g2, %g3
2110 be,a .+8
2111 jmp %g3
2112 nop
2113! fork: source strm = 0xffffffff; target strm = 0x80
2114 cmp %o1, 7
2115 setx fork_lbl_0_8, %g2, %g3
2116 be,a .+8
2117 jmp %g3
2118 nop
2119 setx join_lbl_0_0, %g1, %g2
2120 jmp %g2
2121 nop
2122 setx join_lbl_0_0, %g1, %g2
2123 jmp %g2
2124 nop
2125fork_lbl_0_8:
2126 ta T_CHANGE_NONHPRIV
2127 nop
2128 ta T_CHANGE_HPRIV ! macro
2129donret_80_0:
2130 rd %pc, %r12
2131 add %r12, (donretarg_80_0-donret_80_0), %r12
2132 add %r12, 0x8, %r11 ! nonseq tnpc
2133 wrpr %g0, 0x1, %tl
2134 wrpr %g0, %r12, %tpc
2135 wrpr %g0, %r11, %tnpc
2136 set (0x00795100 | (22 << 24)), %r13
2137 and %r12, 0xfff, %r14
2138 sllx %r14, 30, %r14
2139 or %r13, %r14, %r20
2140 wrpr %r20, %g0, %tstate
2141 wrhpr %g0, 0xe9e, %htstate
2142 ta T_CHANGE_NONPRIV ! rand=0 (80)
2143 retry
2144donretarg_80_0:
2145 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
2146reduce_priv_lvl_80_1:
2147 ta T_CHANGE_NONPRIV ! macro
2148change_to_randtl_80_2:
2149 ta T_CHANGE_PRIV ! macro
2150done_change_to_randtl_80_2:
2151 .word 0x8f902001 ! 2: WRPR_TL_I wrpr %r0, 0x0001, %tl
2152 .word 0xdadfe0b0 ! 3: LDXA_I ldxa [%r31, + 0x00b0] %asi, %r13
2153 .word 0xda800c60 ! 4: LDUWA_R lduwa [%r0, %r0] 0x63, %r13
2154ibp_80_3:
2155 nop
2156 .word 0xc19fe020 ! 5: LDDFA_I ldda [%r31, 0x0020], %f0
2157intveclr_80_4:
2158 nop
2159 ta T_CHANGE_HPRIV
2160 setx 0x4d22be5416d87072, %r1, %r28
2161 stxa %r28, [%g0] 0x72
2162 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
2163 setx 0xaf3edb6d83fa4a58, %r1, %r28
2164 stxa %r28, [%g0] 0x73
2165intvec_80_5:
2166 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
2167splash_tba_80_6:
2168 nop
2169 ta T_CHANGE_PRIV
2170 setx 0x00000000003a0000, %r11, %r12
2171 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
2172memptr_80_7:
2173 set 0x60140000, %r31
2174 .word 0x858223b7 ! 9: WRCCR_I wr %r8, 0x03b7, %ccr
2175 .word 0xa1902006 ! 10: WRPR_GL_I wrpr %r0, 0x0006, %-
2176fpinit_80_8:
2177 nop
2178 setx fp_data_quads, %r19, %r20
2179 ldd [%r20], %f0
2180 ldd [%r20+8], %f4
2181 ld [%r20+16], %fsr
2182 ld [%r20+24], %r19
2183 wr %r19, %g0, %gsr
2184 .word 0x89a009c4 ! 11: FDIVd fdivd %f0, %f4, %f4
2185 .word 0xda8008a0 ! 12: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
2186ibp_80_9:
2187 nop
2188 .word 0x87aa8a54 ! 13: FCMPd fcmpd %fcc<n>, %f10, %f20
2189memptr_80_10:
2190 set 0x60340000, %r31
2191 .word 0x85853084 ! 14: WRCCR_I wr %r20, 0x1084, %ccr
2192pmu_80_11:
2193 nop
2194 setx 0xffffffa6fffff338, %g1, %g7
2195 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
2196 .word 0xe41fe130 ! 16: LDD_I ldd [%r31 + 0x0130], %r18
2197 .word 0xe49fc400 ! 17: LDDA_R ldda [%r31, %r0] 0x20, %r18
2198brcommon2_80_12:
2199 nop
2200 setx common_target, %r12, %r27
2201 ba,a .+12
2202 .word 0x99a00545 ! 1: FSQRTd fsqrt
2203 ba,a .+8
2204 jmpl %r27+0, %r27
2205 .word 0xe1bfd960 ! 18: STDFA_R stda %f16, [%r0, %r31]
2206intveclr_80_13:
2207 nop
2208 ta T_CHANGE_HPRIV
2209 setx 0xbcd413aaf76ff735, %r1, %r28
2210 stxa %r28, [%g0] 0x72
2211 ta T_CHANGE_NONHPRIV
2212 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
2213intveclr_80_14:
2214 nop
2215 ta T_CHANGE_HPRIV
2216 setx 0xca26d114fbccc122, %r1, %r28
2217 stxa %r28, [%g0] 0x72
2218 ta T_CHANGE_NONHPRIV
2219 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
2220pmu_80_15:
2221 nop
2222 setx 0xfffff6dcfffff818, %g1, %g7
2223 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
2224 brlz,a,pn %r20, skip_80_16
2225 fbug skip_80_16
2226.align 128
2227skip_80_16:
2228 .word 0x9f8039bb ! 22: SIR sir 0x19bb
2229 .word 0x9a6a72bd ! 23: UDIVX_I udivx %r9, 0xfffff2bd, %r13
2230dvapa_80_17:
2231 nop
2232 ta T_CHANGE_HPRIV
2233 mov 0xe09, %r20
2234 mov 0xe, %r19
2235 sllx %r20, 23, %r20
2236 or %r19, %r20, %r19
2237 stxa %r19, [%g0] ASI_LSU_CONTROL
2238 mov 0x38, %r18
2239 stxa %r31, [%r18]0x58
2240 ta T_CHANGE_NONHPRIV
2241 .word 0xe69fe170 ! 24: LDDA_I ldda [%r31, + 0x0170] %asi, %r19
2242splash_htba_80_18:
2243 nop
2244 ta T_CHANGE_HPRIV
2245 setx 0x00000000002a0000, %r11, %r12
2246 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
2247 .word 0xe797e0b0 ! 26: LDQFA_I - [%r31, 0x00b0], %f19
2248 .word 0x20800001 ! 1: BN bn,a <label_0x1>
2249 .word 0x8d903923 ! 27: WRPR_PSTATE_I wrpr %r0, 0x1923, %pstate
2250 .word 0x996c0011 ! 28: SDIVX_R sdivx %r16, %r17, %r12
2251splash_hpstate_80_20:
2252 ta T_CHANGE_NONHPRIV
2253 .word 0x81982c03 ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x0c03, %hpstate
2254intveclr_80_21:
2255 nop
2256 ta T_CHANGE_HPRIV
2257 setx 0xdb56c1cfecc66228, %r1, %r28
2258 stxa %r28, [%g0] 0x72
2259 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
2260#if (defined SPC || defined CMP1)
2261!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_22) + 24, 16, 16)) -> intp(4,0,4)
2262#else
2263 setx 0x7227f8c5a8b98cda, %r1, %r28
2264 stxa %r28, [%g0] 0x73
2265#endif
2266intvec_80_22:
2267 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
2268splash_tba_80_23:
2269 nop
2270 ta T_CHANGE_PRIV
2271 setx 0x00000000003a0000, %r11, %r12
2272 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
2273splash_lsu_80_24:
2274 nop
2275 ta T_CHANGE_HPRIV
2276 set 0x97b551c2, %r2
2277 mov 0x5, %r1
2278 sllx %r1, 32, %r1
2279 or %r1, %r2, %r2
2280 stxa %r2, [%r0] ASI_LSU_CONTROL
2281 ta T_CHANGE_NONHPRIV
2282 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
2283splash_hpstate_80_25:
2284 .word 0x2c800001 ! 1: BNEG bneg,a <label_0x1>
2285 .word 0x81982447 ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x0447, %hpstate
2286pmu_80_26:
2287 nop
2288 ta T_CHANGE_PRIV
2289 setx 0xfffff90bfffff2d4, %g1, %g7
2290 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
2291iaw_80_27:
2292 nop
2293 ta T_CHANGE_HPRIV
2294 mov 8, %r18
2295 rd %asi, %r12
2296 wr %r0, 0x41, %asi
2297 set sync_thr_counter4, %r23
2298#ifndef SPC
2299 ldxa [%g0]0x63, %r8
2300 and %r8, 0x38, %r8 ! Core ID
2301 add %r8, %r23, %r23
2302#else
2303 mov 0, %r8
2304#endif
2305 mov 0x80, %r16
2306iaw_startwait80_27:
2307 cas [%r23],%g0,%r16 !lock
2308 brz,a %r16, continue_iaw_80_27
2309 mov (~0x80&0xf0), %r16
2310 ld [%r23], %r16
2311iaw_wait80_27:
2312 brnz %r16, iaw_wait80_27
2313 ld [%r23], %r16
2314 ba iaw_startwait80_27
2315 mov 0x80, %r16
2316continue_iaw_80_27:
2317 sllx %r16, %r8, %r16 !Mask for my core only
2318 ldxa [0x58]%asi, %r17 !Running_status
2319wait_for_stat_80_27:
2320 ldxa [0x50]%asi, %r13 !Running_rw
2321 cmp %r13, %r17
2322 bne,a %xcc, wait_for_stat_80_27
2323 ldxa [0x58]%asi, %r17 !Running_status
2324 stxa %r16, [0x68]%asi !Park (W1C)
2325 ldxa [0x50]%asi, %r14 !Running_rw
2326wait_for_iaw_80_27:
2327 ldxa [0x58]%asi, %r17 !Running_status
2328 cmp %r14, %r17
2329 bne,a %xcc, wait_for_iaw_80_27
2330 ldxa [0x50]%asi, %r14 !Running_rw
2331iaw_doit80_27:
2332 mov 0x38, %r18
2333iaw1_80_27:
2334 best_set_reg(0x00000000e0a00000, %r20, %r19)
2335 or %r19, 0x1, %r19
2336 stxa %r19, [%r18]0x50
2337 stxa %r16, [0x60] %asi ! Unpark (W1S)
2338 st %g0, [%r23] !clear lock
2339 wr %r0, %r12, %asi ! restore %asi
2340 ta T_CHANGE_NONHPRIV
2341 .word 0xa5b44482 ! 36: FCMPLE32 fcmple32 %d48, %d2, %r18
2342jmptr_80_28:
2343 nop
2344 best_set_reg(0xe1a00000, %r20, %r27)
2345 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
2346iaw_80_29:
2347 nop
2348 ta T_CHANGE_HPRIV
2349 mov 8, %r18
2350 rd %asi, %r12
2351 wr %r0, 0x41, %asi
2352 set sync_thr_counter4, %r23
2353#ifndef SPC
2354 ldxa [%g0]0x63, %r8
2355 and %r8, 0x38, %r8 ! Core ID
2356 add %r8, %r23, %r23
2357#else
2358 mov 0, %r8
2359#endif
2360 mov 0x80, %r16
2361iaw_startwait80_29:
2362 cas [%r23],%g0,%r16 !lock
2363 brz,a %r16, continue_iaw_80_29
2364 mov (~0x80&0xf0), %r16
2365 ld [%r23], %r16
2366iaw_wait80_29:
2367 brnz %r16, iaw_wait80_29
2368 ld [%r23], %r16
2369 ba iaw_startwait80_29
2370 mov 0x80, %r16
2371continue_iaw_80_29:
2372 sllx %r16, %r8, %r16 !Mask for my core only
2373 ldxa [0x58]%asi, %r17 !Running_status
2374wait_for_stat_80_29:
2375 ldxa [0x50]%asi, %r13 !Running_rw
2376 cmp %r13, %r17
2377 bne,a %xcc, wait_for_stat_80_29
2378 ldxa [0x58]%asi, %r17 !Running_status
2379 stxa %r16, [0x68]%asi !Park (W1C)
2380 ldxa [0x50]%asi, %r14 !Running_rw
2381wait_for_iaw_80_29:
2382 ldxa [0x58]%asi, %r17 !Running_status
2383 cmp %r14, %r17
2384 bne,a %xcc, wait_for_iaw_80_29
2385 ldxa [0x50]%asi, %r14 !Running_rw
2386iaw_doit80_29:
2387 mov 0x38, %r18
2388iaw3_80_29:
2389 setx vahole_target0, %r20, %r19
2390 or %r19, 0x1, %r19
2391 stxa %r19, [%r18]0x50
2392 stxa %r16, [0x60] %asi ! Unpark (W1S)
2393 st %g0, [%r23] !clear lock
2394 wr %r0, %r12, %asi ! restore %asi
2395 ta T_CHANGE_NONHPRIV
2396 .word 0x91a249a7 ! 38: FDIVs fdivs %f9, %f7, %f8
2397intveclr_80_30:
2398 nop
2399 ta T_CHANGE_HPRIV
2400 setx 0xe7d6b93748ad582a, %r1, %r28
2401 stxa %r28, [%g0] 0x72
2402 ta T_CHANGE_NONHPRIV
2403 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
2404ibp_80_31:
2405 nop
2406 ta T_CHANGE_NONHPRIV
2407 .word 0xdb1fe080 ! 40: LDDF_I ldd [%r31, 0x0080], %f13
2408 invalw
2409 mov 0xb0, %r30
2410 .word 0x93d0001e ! 41: Tcc_R tne icc_or_xcc, %r0 + %r30
2411intveclr_80_32:
2412 nop
2413 ta T_CHANGE_HPRIV
2414 setx 0xb995aed9ea0fc12a, %r1, %r28
2415 stxa %r28, [%g0] 0x72
2416 ta T_CHANGE_NONHPRIV
2417 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
2418ibp_80_33:
2419 nop
2420 .word 0xa9a409c7 ! 43: FDIVd fdivd %f16, %f38, %f20
2421 .word 0xa190200c ! 44: WRPR_GL_I wrpr %r0, 0x000c, %-
2422fpinit_80_34:
2423 nop
2424 setx fp_data_quads, %r19, %r20
2425 ldd [%r20], %f0
2426 ldd [%r20+8], %f4
2427 ld [%r20+16], %fsr
2428 ld [%r20+24], %r19
2429 wr %r19, %g0, %gsr
2430 .word 0x91a009c4 ! 45: FDIVd fdivd %f0, %f4, %f8
2431 .word 0x91928008 ! 46: WRPR_PIL_R wrpr %r10, %r8, %pil
2432 nop
2433 ta T_CHANGE_HPRIV ! macro
2434donret_80_36:
2435 rd %pc, %r12
2436 add %r12, (donretarg_80_36-donret_80_36+4), %r12
2437 add %r12, 0x4, %r11 ! seq tnpc
2438 wrpr %g0, 0x1, %tl
2439 wrpr %g0, %r12, %tpc
2440 wrpr %g0, %r11, %tnpc
2441 set (0x00384700 | (20 << 24)), %r13
2442 and %r12, 0xfff, %r14
2443 sllx %r14, 30, %r14
2444 or %r13, %r14, %r20
2445 wrpr %r20, %g0, %tstate
2446 wrhpr %g0, 0x7d7, %htstate
2447 ta T_CHANGE_NONPRIV ! rand=0 (80)
2448 .word 0x36800001 ! 1: BGE bge,a <label_0x1>
2449 retry
2450donretarg_80_36:
2451 .word 0xe26fe19b ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x019b]
2452 .word 0xc19fde00 ! 48: LDDFA_R ldda [%r31, %r0], %f0
2453change_to_randtl_80_37:
2454 ta T_CHANGE_HPRIV ! macro
2455done_change_to_randtl_80_37:
2456 .word 0x8f902001 ! 49: WRPR_TL_I wrpr %r0, 0x0001, %tl
2457 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
2458 fbn,a,pn %fcc0, skip_80_38
2459 fbuge skip_80_38
2460.align 1024
2461skip_80_38:
2462 .word 0xc30fc000 ! 51: LDXFSR_R ld-fsr [%r31, %r0], %f1
2463intveclr_80_39:
2464 nop
2465 ta T_CHANGE_HPRIV
2466 setx 0xebc2921c4f88fa90, %r1, %r28
2467 stxa %r28, [%g0] 0x72
2468 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
2469 .word 0x9f8029d4 ! 53: SIR sir 0x09d4
2470 .word 0xe337e0a0 ! 54: STQF_I - %f17, [0x00a0, %r31]
2471dvapa_80_40:
2472 nop
2473 ta T_CHANGE_HPRIV
2474 mov 0xfd5, %r20
2475 mov 0x7, %r19
2476 sllx %r20, 23, %r20
2477 or %r19, %r20, %r19
2478 stxa %r19, [%g0] ASI_LSU_CONTROL
2479 mov 0x38, %r18
2480 stxa %r31, [%r18]0x58
2481 ta T_CHANGE_NONHPRIV
2482 .word 0xc19fda00 ! 55: LDDFA_R ldda [%r31, %r0], %f0
2483 .word 0xe22fe12c ! 56: STB_I stb %r17, [%r31 + 0x012c]
2484 setx 0xc6080da61f194efc, %r1, %r28
2485 stxa %r28, [%g0] 0x73
2486intvec_80_41:
2487 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
2488brcommon2_80_42:
2489 nop
2490 setx common_target, %r12, %r27
2491 ba,a .+12
2492 .word 0xa7a249d4 ! 1: FDIVd fdivd %f40, %f20, %f50
2493 ba,a .+8
2494 jmpl %r27+0, %r27
2495 .word 0xc1bfe020 ! 58: STDFA_I stda %f0, [0x0020, %r31]
2496jmptr_80_43:
2497 nop
2498 best_set_reg(0xe1a00000, %r20, %r27)
2499 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
2500memptr_80_44:
2501 set 0x60340000, %r31
2502 .word 0x8584a1f1 ! 60: WRCCR_I wr %r18, 0x01f1, %ccr
2503 nop
2504 ta T_CHANGE_HPRIV
2505 mov 0x80+1, %r10
2506 set sync_thr_counter5, %r23
2507#ifndef SPC
2508 ldxa [%g0]0x63, %o1
2509 and %o1, 0x38, %o1
2510 add %o1, %r23, %r23
2511 sllx %o1, 5, %o3 !(CID*256)
2512#endif
2513 cas [%r23],%g0,%r10 !lock
2514 brnz %r10, cwq_80_45
2515 rd %asi, %r12
2516 wr %g0, 0x40, %asi
2517 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
2518 and %l1, 0x3, %l1 ! Check if busy/enabled ..
2519 cmp %l1, 1
2520 bne cwq_80_45
2521 set CWQ_BASE, %l6
2522#ifndef SPC
2523 add %l6, %o3, %l6
2524#endif
2525 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
2526 best_set_reg(0x20610080, %l1, %l2) !# Control Word
2527 sllx %l2, 32, %l2
2528 stx %l2, [%l6 + 0x0]
2529 membar #Sync
2530 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
2531 sub %l2, 0x40, %l2
2532 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
2533 wr %r12, %g0, %asi
2534 st %g0, [%r23]
2535cwq_80_45:
2536 ta T_CHANGE_NONHPRIV
2537 .word 0xa1414000 ! 61: RDPC rd %pc, %r16
2538fpinit_80_46:
2539 nop
2540 setx fp_data_quads, %r19, %r20
2541 ldd [%r20], %f0
2542 ldd [%r20+8], %f4
2543 ld [%r20+16], %fsr
2544 ld [%r20+24], %r19
2545 wr %r19, %g0, %gsr
2546 .word 0xc3e82b0c ! 62: PREFETCHA_I prefetcha [%r0, + 0x0b0c] %asi, #one_read
2547 .word 0x83d020b2 ! 63: Tcc_I te icc_or_xcc, %r0 + 178
2548iaw_80_47:
2549 nop
2550 ta T_CHANGE_HPRIV
2551 mov 8, %r18
2552 rd %asi, %r12
2553 wr %r0, 0x41, %asi
2554 set sync_thr_counter4, %r23
2555#ifndef SPC
2556 ldxa [%g0]0x63, %r8
2557 and %r8, 0x38, %r8 ! Core ID
2558 add %r8, %r23, %r23
2559#else
2560 mov 0, %r8
2561#endif
2562 mov 0x80, %r16
2563iaw_startwait80_47:
2564 cas [%r23],%g0,%r16 !lock
2565 brz,a %r16, continue_iaw_80_47
2566 mov (~0x80&0xf0), %r16
2567 ld [%r23], %r16
2568iaw_wait80_47:
2569 brnz %r16, iaw_wait80_47
2570 ld [%r23], %r16
2571 ba iaw_startwait80_47
2572 mov 0x80, %r16
2573continue_iaw_80_47:
2574 sllx %r16, %r8, %r16 !Mask for my core only
2575 ldxa [0x58]%asi, %r17 !Running_status
2576wait_for_stat_80_47:
2577 ldxa [0x50]%asi, %r13 !Running_rw
2578 cmp %r13, %r17
2579 bne,a %xcc, wait_for_stat_80_47
2580 ldxa [0x58]%asi, %r17 !Running_status
2581 stxa %r16, [0x68]%asi !Park (W1C)
2582 ldxa [0x50]%asi, %r14 !Running_rw
2583wait_for_iaw_80_47:
2584 ldxa [0x58]%asi, %r17 !Running_status
2585 cmp %r14, %r17
2586 bne,a %xcc, wait_for_iaw_80_47
2587 ldxa [0x50]%asi, %r14 !Running_rw
2588iaw_doit80_47:
2589 mov 0x38, %r18
2590iaw4_80_47:
2591 setx common_target, %r20, %r19
2592 or %r19, 0x1, %r19
2593 stxa %r19, [%r18]0x50
2594 stxa %r16, [0x60] %asi ! Unpark (W1S)
2595 st %g0, [%r23] !clear lock
2596 wr %r0, %r12, %asi ! restore %asi
2597 ta T_CHANGE_NONHPRIV
2598 .word 0xa3a189d2 ! 64: FDIVd fdivd %f6, %f18, %f48
2599 nop
2600 ta T_CHANGE_HPRIV
2601 mov 0x80, %r10
2602 set sync_thr_counter6, %r23
2603#ifndef SPC
2604 ldxa [%g0]0x63, %o1
2605 and %o1, 0x38, %o1
2606 add %o1, %r23, %r23
2607#endif
2608 cas [%r23],%g0,%r10 !lock
2609 brnz %r10, sma_80_48
2610 rd %asi, %r12
2611 wr %g0, 0x40, %asi
2612 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
2613 set 0x001e1fff, %g1
2614 stxa %g1, [%g0 + 0x80] %asi
2615 wr %r12, %g0, %asi
2616 st %g0, [%r23]
2617sma_80_48:
2618 ta T_CHANGE_NONHPRIV
2619 .word 0xe5e7e00c ! 65: CASA_R casa [%r31] %asi, %r12, %r18
2620 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
2621 .word 0xe537e1f0 ! 67: STQF_I - %f18, [0x01f0, %r31]
2622 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
2623reduce_priv_lvl_80_49:
2624 ta T_CHANGE_NONHPRIV ! macro
2625trapasi_80_50:
2626 nop
2627 mov 0x3f8, %r1 ! (VA for ASI 0x25)
2628 .word 0xe4c844a0 ! 69: LDSBA_R ldsba [%r1, %r0] 0x25, %r18
2629splash_tba_80_51:
2630 nop
2631 ta T_CHANGE_PRIV
2632 setx 0x00000000003a0000, %r11, %r12
2633 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
2634dvapa_80_52:
2635 nop
2636 ta T_CHANGE_HPRIV
2637 mov 0xe48, %r20
2638 mov 0xb, %r19
2639 sllx %r20, 23, %r20
2640 or %r19, %r20, %r19
2641 stxa %r19, [%g0] ASI_LSU_CONTROL
2642 mov 0x38, %r18
2643 stxa %r31, [%r18]0x58
2644 ta T_CHANGE_NONHPRIV
2645 .word 0xe4dfc034 ! 71: LDXA_R ldxa [%r31, %r20] 0x01, %r18
2646 .word 0xa348c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r17
2647 nop
2648 ta T_CHANGE_HPRIV
2649 mov 0x80, %r10
2650 set sync_thr_counter6, %r23
2651#ifndef SPC
2652 ldxa [%g0]0x63, %o1
2653 and %o1, 0x38, %o1
2654 add %o1, %r23, %r23
2655#endif
2656 cas [%r23],%g0,%r10 !lock
2657 brnz %r10, sma_80_53
2658 rd %asi, %r12
2659 wr %g0, 0x40, %asi
2660 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
2661 set 0x00161fff, %g1
2662 stxa %g1, [%g0 + 0x80] %asi
2663 wr %r12, %g0, %asi
2664 st %g0, [%r23]
2665sma_80_53:
2666 ta T_CHANGE_NONHPRIV
2667 .word 0xe9e7e008 ! 73: CASA_R casa [%r31] %asi, %r8, %r20
2668mondo_80_54:
2669 nop
2670 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
2671 ta T_CHANGE_PRIV
2672 stxa %r19, [%r0+0x3c0] %asi
2673 .word 0x9d914008 ! 74: WRPR_WSTATE_R wrpr %r5, %r8, %wstate
2674intveclr_80_55:
2675 nop
2676 ta T_CHANGE_HPRIV
2677 setx 0x2aef72c487d4cbf6, %r1, %r28
2678 stxa %r28, [%g0] 0x72
2679 ta T_CHANGE_NONHPRIV
2680 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
2681 .word 0xe937e16e ! 76: STQF_I - %f20, [0x016e, %r31]
2682splash_hpstate_80_56:
2683 ta T_CHANGE_NONHPRIV
2684 .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
2685 .word 0x8198275d ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x075d, %hpstate
2686br_badelay3_80_57:
2687 .word 0x20800001 ! 1: BN bn,a <label_0x1>
2688 .word 0x22800001 ! 1: BE be,a <label_0x1>
2689 .word 0x97a509d1 ! 1: FDIVd fdivd %f20, %f48, %f42
2690 .word 0xa3a48831 ! 78: FADDs fadds %f18, %f17, %f17
2691br_longdelay1_80_58:
2692 .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, <label_0x1>
2693 .word 0x9d97c000 ! 79: WRPR_WSTATE_R wrpr %r31, %r0, %wstate
2694splash_lsu_80_59:
2695 nop
2696 ta T_CHANGE_HPRIV
2697 set 0xe491e5c8, %r2
2698 mov 0x1, %r1
2699 sllx %r1, 32, %r1
2700 or %r1, %r2, %r2
2701 stxa %r2, [%r0] ASI_LSU_CONTROL
2702 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
2703 .word 0x91b2c58b ! 81: FCMPGT32 fcmpgt32 %d42, %d42, %r8
2704dvapa_80_60:
2705 nop
2706 ta T_CHANGE_HPRIV
2707 mov 0xc73, %r20
2708 mov 0x10, %r19
2709 sllx %r20, 23, %r20
2710 or %r19, %r20, %r19
2711 stxa %r19, [%g0] ASI_LSU_CONTROL
2712 mov 0x38, %r18
2713 stxa %r31, [%r18]0x58
2714 ta T_CHANGE_NONHPRIV
2715 .word 0xd5e7e00d ! 82: CASA_R casa [%r31] %asi, %r13, %r10
2716 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
2717 .word 0x9b45c000 ! 84: RD_TICK_CMPR_REG rd %-, %r13
2718 .word 0xa1902006 ! 85: WRPR_GL_I wrpr %r0, 0x0006, %-
2719trapasi_80_62:
2720 nop
2721 mov 0x0, %r1 ! (VA for ASI 0x5a)
2722 .word 0xe8c84b40 ! 86: LDSBA_R ldsba [%r1, %r0] 0x5a, %r20
2723brcommon3_80_63:
2724 nop
2725 setx common_target, %r12, %r27
2726 lduw [%r27], %r12 ! Load common dest into dcache ..
2727 ba,a .+12
2728 .word 0xe937e020 ! 1: STQF_I - %f20, [0x0020, %r31]
2729 ba,a .+8
2730 jmpl %r27+0, %r27
2731 .word 0xe89fc032 ! 87: LDDA_R ldda [%r31, %r18] 0x01, %r20
2732memptr_80_64:
2733 set 0x60540000, %r31
2734 .word 0x85816911 ! 88: WRCCR_I wr %r5, 0x0911, %ccr
2735brcommon1_80_65:
2736 nop
2737 setx common_target, %r12, %r27
2738 lduw [%r27], %r12 ! Load common dest into dcache ..
2739 ba,a .+12
2740 .word 0xa9b7c7c8 ! 1: PDIST pdistn %d62, %d8, %d20
2741 ba,a .+8
2742 jmpl %r27+0, %r27
2743 .word 0x93b2c490 ! 89: FCMPLE32 fcmple32 %d42, %d16, %r9
2744 .word 0xa2c26f73 ! 90: ADDCcc_I addccc %r9, 0x0f73, %r17
2745fpinit_80_66:
2746 nop
2747 setx fp_data_quads, %r19, %r20
2748 ldd [%r20], %f0
2749 ldd [%r20+8], %f4
2750 ld [%r20+16], %fsr
2751 ld [%r20+24], %r19
2752 wr %r19, %g0, %gsr
2753 .word 0x89a009a4 ! 91: FDIVs fdivs %f0, %f4, %f4
2754 nop
2755 ta T_CHANGE_HPRIV ! macro
2756donret_80_67:
2757 rd %pc, %r12
2758 add %r12, (donretarg_80_67-donret_80_67), %r12
2759 add %r12, 0x4, %r11 ! seq tnpc
2760 wrpr %g0, 0x2, %tl
2761 wrpr %g0, %r12, %tpc
2762 wrpr %g0, %r11, %tnpc
2763 set (0x006d7500 | (0x8b << 24)), %r13
2764 and %r12, 0xfff, %r14
2765 sllx %r14, 30, %r14
2766 or %r13, %r14, %r20
2767 wrpr %r20, %g0, %tstate
2768 wrhpr %g0, 0x1c47, %htstate
2769 ta T_CHANGE_NONPRIV ! rand=0 (80)
2770 .word 0x25400001 ! 1: FBPLG fblg,a,pn %fcc0, <label_0x1>
2771 done
2772donretarg_80_67:
2773 .word 0xa1a509cb ! 92: FDIVd fdivd %f20, %f42, %f16
2774change_to_randtl_80_68:
2775 ta T_CHANGE_PRIV ! macro
2776done_change_to_randtl_80_68:
2777 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
2778 set 0x10c4, %l3
2779 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
2780 .word 0x95b407d3 ! 94: PDIST pdistn %d16, %d50, %d10
2781iaw_80_69:
2782 nop
2783 ta T_CHANGE_HPRIV
2784 mov 8, %r18
2785 rd %asi, %r12
2786 wr %r0, 0x41, %asi
2787 set sync_thr_counter4, %r23
2788#ifndef SPC
2789 ldxa [%g0]0x63, %r8
2790 and %r8, 0x38, %r8 ! Core ID
2791 add %r8, %r23, %r23
2792#else
2793 mov 0, %r8
2794#endif
2795 mov 0x80, %r16
2796iaw_startwait80_69:
2797 cas [%r23],%g0,%r16 !lock
2798 brz,a %r16, continue_iaw_80_69
2799 mov (~0x80&0xf0), %r16
2800 ld [%r23], %r16
2801iaw_wait80_69:
2802 brnz %r16, iaw_wait80_69
2803 ld [%r23], %r16
2804 ba iaw_startwait80_69
2805 mov 0x80, %r16
2806continue_iaw_80_69:
2807 sllx %r16, %r8, %r16 !Mask for my core only
2808 ldxa [0x58]%asi, %r17 !Running_status
2809wait_for_stat_80_69:
2810 ldxa [0x50]%asi, %r13 !Running_rw
2811 cmp %r13, %r17
2812 bne,a %xcc, wait_for_stat_80_69
2813 ldxa [0x58]%asi, %r17 !Running_status
2814 stxa %r16, [0x68]%asi !Park (W1C)
2815 ldxa [0x50]%asi, %r14 !Running_rw
2816wait_for_iaw_80_69:
2817 ldxa [0x58]%asi, %r17 !Running_status
2818 cmp %r14, %r17
2819 bne,a %xcc, wait_for_iaw_80_69
2820 ldxa [0x50]%asi, %r14 !Running_rw
2821iaw_doit80_69:
2822 mov 0x38, %r18
2823iaw3_80_69:
2824 setx vahole_target0, %r20, %r19
2825 or %r19, 0x1, %r19
2826 stxa %r19, [%r18]0x50
2827 stxa %r16, [0x60] %asi ! Unpark (W1S)
2828 st %g0, [%r23] !clear lock
2829 wr %r0, %r12, %asi ! restore %asi
2830 ta T_CHANGE_NONHPRIV
2831 .word 0xdadfc028 ! 95: LDXA_R ldxa [%r31, %r8] 0x01, %r13
2832splash_tba_80_70:
2833 nop
2834 ta T_CHANGE_PRIV
2835 setx 0x00000000003a0000, %r11, %r12
2836 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
2837 setx 0x863c117bf39a692e, %r1, %r28
2838 stxa %r28, [%g0] 0x73
2839intvec_80_71:
2840 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
2841memptr_80_72:
2842 set user_data_start, %r31
2843 .word 0x8580f58a ! 98: WRCCR_I wr %r3, 0x158a, %ccr
2844fpinit_80_73:
2845 nop
2846 setx fp_data_quads, %r19, %r20
2847 ldd [%r20], %f0
2848 ldd [%r20+8], %f4
2849 ld [%r20+16], %fsr
2850 ld [%r20+24], %r19
2851 wr %r19, %g0, %gsr
2852 .word 0x87a80a44 ! 99: FCMPd fcmpd %fcc<n>, %f0, %f4
2853intveclr_80_74:
2854 nop
2855 ta T_CHANGE_HPRIV
2856 setx 0x4c33ab44b3a834b3, %r1, %r28
2857 stxa %r28, [%g0] 0x72
2858 ta T_CHANGE_NONHPRIV
2859 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
2860 nop
2861 ta T_CHANGE_HPRIV ! macro
2862donret_80_75:
2863 rd %pc, %r12
2864 add %r12, (donretarg_80_75-donret_80_75+4), %r12
2865 add %r12, 0x4, %r11 ! seq tnpc
2866 wrpr %g0, 0x1, %tl
2867 wrpr %g0, %r12, %tpc
2868 wrpr %g0, %r11, %tnpc
2869 set (0x00b60f00 | (20 << 24)), %r13
2870 and %r12, 0xfff, %r14
2871 sllx %r14, 30, %r14
2872 or %r13, %r14, %r20
2873 wrpr %r20, %g0, %tstate
2874 wrhpr %g0, 0x4dc, %htstate
2875 ta T_CHANGE_NONHPRIV ! rand=1 (80)
2876 done
2877donretarg_80_75:
2878 .word 0xa7a509d2 ! 101: FDIVd fdivd %f20, %f18, %f50
2879 .word 0x81da8013 ! 102: FLUSH_R flush
2880ibp_80_76:
2881 nop
2882 .word 0xc19fd960 ! 103: LDDFA_R ldda [%r31, %r0], %f0
2883 .word 0xe89fe188 ! 104: LDDA_I ldda [%r31, + 0x0188] %asi, %r20
2884 nop
2885 ta T_CHANGE_HPRIV ! macro
2886donret_80_77:
2887 rd %pc, %r12
2888 add %r12, (donretarg_80_77-donret_80_77+4), %r12
2889 add %r12, 0x4, %r11 ! seq tnpc
2890 wrpr %g0, 0x1, %tl
2891 wrpr %g0, %r12, %tpc
2892 wrpr %g0, %r11, %tnpc
2893 set (0x004ec500 | (0x58 << 24)), %r13
2894 and %r12, 0xfff, %r14
2895 sllx %r14, 30, %r14
2896 or %r13, %r14, %r20
2897 wrpr %r20, %g0, %tstate
2898 wrhpr %g0, 0x1fdd, %htstate
2899 ta T_CHANGE_NONPRIV ! rand=0 (80)
2900 done
2901donretarg_80_77:
2902 .word 0xa5a149c1 ! 105: FDIVd fdivd %f36, %f32, %f18
2903 .word 0x8d903841 ! 106: WRPR_PSTATE_I wrpr %r0, 0x1841, %pstate
2904 .word 0xa553c000 ! 107: RDPR_FQ <illegal instruction>
2905 .word 0xab85340a ! 108: WR_CLEAR_SOFTINT_I wr %r20, 0x140a, %clear_softint
2906 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
2907 .word 0xc1bfdc00 ! 110: STDFA_R stda %f0, [%r0, %r31]
2908br_badelay3_80_80:
2909 .word 0x34800001 ! 1: BG bg,a <label_0x1>
2910 .word 0xbf4c9c47 ! Random illegal ?
2911 .word 0xa7a00550 ! 1: FSQRTd fsqrt
2912 .word 0x97a4c82d ! 111: FADDs fadds %f19, %f13, %f11
2913ibp_80_81:
2914 nop
2915 ta T_CHANGE_NONHPRIV
2916 .word 0xd897c031 ! 112: LDUHA_R lduha [%r31, %r17] 0x01, %r12
2917memptr_80_82:
2918 set 0x60740000, %r31
2919 .word 0x8580fa48 ! 113: WRCCR_I wr %r3, 0x1a48, %ccr
2920mondo_80_83:
2921 nop
2922 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
2923 ta T_CHANGE_PRIV
2924 stxa %r17, [%r0+0x3d8] %asi
2925 .word 0x9d944011 ! 114: WRPR_WSTATE_R wrpr %r17, %r17, %wstate
2926 .word 0xa5508000 ! 115: RDPR_TSTATE rdpr %tstate, %r18
2927splash_lsu_80_84:
2928 nop
2929 ta T_CHANGE_HPRIV
2930 set 0x8af9f44b, %r2
2931 mov 0x2, %r1
2932 sllx %r1, 32, %r1
2933 or %r1, %r2, %r2
2934 stxa %r2, [%r0] ASI_LSU_CONTROL
2935 ta T_CHANGE_NONHPRIV
2936 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
2937splash_cmpr_80_85:
2938 mov 0, %r18
2939 sllx %r18, 63, %r18
2940 rd %tick, %r17
2941 add %r17, 0x100, %r17
2942 or %r17, %r18, %r17
2943 ta T_CHANGE_PRIV
2944 .word 0xb3800011 ! 117: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
2945splash_hpstate_80_86:
2946 ta T_CHANGE_NONHPRIV
2947 .word 0x8198345e ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x145e, %hpstate
2948 .word 0xa190200b ! 119: WRPR_GL_I wrpr %r0, 0x000b, %-
2949 nop
2950 ta T_CHANGE_HPRIV
2951 mov 0x80, %r10
2952 set sync_thr_counter6, %r23
2953#ifndef SPC
2954 ldxa [%g0]0x63, %o1
2955 and %o1, 0x38, %o1
2956 add %o1, %r23, %r23
2957#endif
2958 cas [%r23],%g0,%r10 !lock
2959 brnz %r10, sma_80_87
2960 rd %asi, %r12
2961 wr %g0, 0x40, %asi
2962 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
2963 set 0x000a1fff, %g1
2964 stxa %g1, [%g0 + 0x80] %asi
2965 wr %r12, %g0, %asi
2966 st %g0, [%r23]
2967sma_80_87:
2968 ta T_CHANGE_NONHPRIV
2969 .word 0xe1e7e012 ! 120: CASA_R casa [%r31] %asi, %r18, %r16
2970mondo_80_88:
2971 nop
2972 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
2973 stxa %r19, [%r0+0x3d8] %asi
2974 .word 0x9d94000b ! 121: WRPR_WSTATE_R wrpr %r16, %r11, %wstate
2975splash_lsu_80_89:
2976 nop
2977 ta T_CHANGE_HPRIV
2978 set 0xe523137c, %r2
2979 mov 0x7, %r1
2980 sllx %r1, 32, %r1
2981 or %r1, %r2, %r2
2982 stxa %r2, [%r0] ASI_LSU_CONTROL
2983 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
2984brcommon3_80_90:
2985 nop
2986 setx common_target, %r12, %r27
2987 lduw [%r27], %r12 ! Load common dest into dcache ..
2988 ba,a .+12
2989 .word 0xe1e7c033 ! 1: CASA_I casa [%r31] 0x 1, %r19, %r16
2990 ba,a .+8
2991 jmpl %r27+0, %r27
2992 .word 0xe1e7e014 ! 123: CASA_R casa [%r31] %asi, %r20, %r16
2993dvapa_80_91:
2994 nop
2995 ta T_CHANGE_HPRIV
2996 mov 0xbc8, %r20
2997 mov 0x13, %r19
2998 sllx %r20, 23, %r20
2999 or %r19, %r20, %r19
3000 stxa %r19, [%g0] ASI_LSU_CONTROL
3001 mov 0x38, %r18
3002 stxa %r31, [%r18]0x58
3003 ta T_CHANGE_NONHPRIV
3004 .word 0xe1bfda00 ! 124: STDFA_R stda %f16, [%r0, %r31]
3005 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
3006iaw_80_92:
3007 nop
3008 ta T_CHANGE_HPRIV
3009 mov 8, %r18
3010 rd %asi, %r12
3011 wr %r0, 0x41, %asi
3012 set sync_thr_counter4, %r23
3013#ifndef SPC
3014 ldxa [%g0]0x63, %r8
3015 and %r8, 0x38, %r8 ! Core ID
3016 add %r8, %r23, %r23
3017#else
3018 mov 0, %r8
3019#endif
3020 mov 0x80, %r16
3021iaw_startwait80_92:
3022 cas [%r23],%g0,%r16 !lock
3023 brz,a %r16, continue_iaw_80_92
3024 mov (~0x80&0xf0), %r16
3025 ld [%r23], %r16
3026iaw_wait80_92:
3027 brnz %r16, iaw_wait80_92
3028 ld [%r23], %r16
3029 ba iaw_startwait80_92
3030 mov 0x80, %r16
3031continue_iaw_80_92:
3032 sllx %r16, %r8, %r16 !Mask for my core only
3033 ldxa [0x58]%asi, %r17 !Running_status
3034wait_for_stat_80_92:
3035 ldxa [0x50]%asi, %r13 !Running_rw
3036 cmp %r13, %r17
3037 bne,a %xcc, wait_for_stat_80_92
3038 ldxa [0x58]%asi, %r17 !Running_status
3039 stxa %r16, [0x68]%asi !Park (W1C)
3040 ldxa [0x50]%asi, %r14 !Running_rw
3041wait_for_iaw_80_92:
3042 ldxa [0x58]%asi, %r17 !Running_status
3043 cmp %r14, %r17
3044 bne,a %xcc, wait_for_iaw_80_92
3045 ldxa [0x50]%asi, %r14 !Running_rw
3046iaw_doit80_92:
3047 mov 0x38, %r18
3048iaw2_80_92:
3049 rdpr %tba, %r19
3050 mov 0x102, %r20
3051 sllx %r20, 5, %r20
3052 add %r20, %r19, %r19
3053 stxa %r19, [%r18]0x50
3054 stxa %r16, [0x60] %asi ! Unpark (W1S)
3055 st %g0, [%r23] !clear lock
3056 wr %r0, %r12, %asi ! restore %asi
3057 ta T_CHANGE_NONHPRIV
3058 .word 0xe097c028 ! 126: LDUHA_R lduha [%r31, %r8] 0x01, %r16
3059 setx 0xf00effcf728451af, %r1, %r28
3060 stxa %r28, [%g0] 0x73
3061intvec_80_93:
3062 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3063 .word 0x8d802004 ! 128: WRFPRS_I wr %r0, 0x0004, %fprs
3064 .word 0xe0d7e178 ! 129: LDSHA_I ldsha [%r31, + 0x0178] %asi, %r16
3065#if (defined SPC || defined CMP1)
3066!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_94) + 48, 16, 16)) -> intp(3,0,14)
3067#else
3068 setx 0x0e3c767779353b92, %r1, %r28
3069 stxa %r28, [%g0] 0x73
3070#endif
3071intvec_80_94:
3072 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3073 .word 0x8d802000 ! 131: WRFPRS_I wr %r0, 0x0000, %fprs
3074 .word 0x8d902613 ! 132: WRPR_PSTATE_I wrpr %r0, 0x0613, %pstate
3075 .word 0x25400001 ! 1: FBPLG fblg,a,pn %fcc0, <label_0x1>
3076 .word 0x8d903abe ! 133: WRPR_PSTATE_I wrpr %r0, 0x1abe, %pstate
3077 setx 0x44c545a7a579f8dd, %r1, %r28
3078 stxa %r28, [%g0] 0x73
3079intvec_80_97:
3080 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3081 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
3082reduce_priv_lvl_80_98:
3083 ta T_CHANGE_NONHPRIV ! macro
3084ibp_80_99:
3085 nop
3086 ta T_CHANGE_NONHPRIV
3087 .word 0xc3ec4032 ! 136: PREFETCHA_R prefetcha [%r17, %r18] 0x01, #one_read
3088 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
3089change_to_randtl_80_101:
3090 ta T_CHANGE_HPRIV ! macro
3091done_change_to_randtl_80_101:
3092 .word 0x8f902000 ! 138: WRPR_TL_I wrpr %r0, 0x0000, %tl
3093splash_cmpr_80_102:
3094 mov 0, %r18
3095 sllx %r18, 63, %r18
3096 rd %tick, %r17
3097 add %r17, 0x80, %r17
3098 or %r17, %r18, %r17
3099 .word 0xb3800011 ! 139: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
3100 .word 0xe8cfe038 ! 140: LDSBA_I ldsba [%r31, + 0x0038] %asi, %r20
3101 nop
3102 ta T_CHANGE_HPRIV ! macro
3103donret_80_103:
3104 rd %pc, %r12
3105 add %r12, (donretarg_80_103-donret_80_103), %r12
3106 add %r12, 0x4, %r11 ! seq tnpc
3107 wrpr %g0, 0x2, %tl
3108 wrpr %g0, %r12, %tpc
3109 wrpr %g0, %r11, %tnpc
3110 set (0x00fc4600 | (0x89 << 24)), %r13
3111 and %r12, 0xfff, %r14
3112 sllx %r14, 30, %r14
3113 or %r13, %r14, %r20
3114 wrpr %r20, %g0, %tstate
3115 wrhpr %g0, 0xdc7, %htstate
3116 ta T_CHANGE_NONPRIV ! rand=0 (80)
3117 .word 0x3a800001 ! 1: BCC bcc,a <label_0x1>
3118 done
3119donretarg_80_103:
3120 .word 0xe86fe176 ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x0176]
3121trapasi_80_104:
3122 nop
3123 mov 0x38, %r1 ! (VA for ASI 0x5b)
3124 .word 0xe8d84b60 ! 142: LDXA_R ldxa [%r1, %r0] 0x5b, %r20
3125fpinit_80_105:
3126 nop
3127 setx fp_data_quads, %r19, %r20
3128 ldd [%r20], %f0
3129 ldd [%r20+8], %f4
3130 ld [%r20+16], %fsr
3131 ld [%r20+24], %r19
3132 wr %r19, %g0, %gsr
3133 .word 0x91a009a4 ! 143: FDIVs fdivs %f0, %f4, %f8
3134 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
3135change_to_randtl_80_107:
3136 ta T_CHANGE_HPRIV ! macro
3137done_change_to_randtl_80_107:
3138 .word 0x8f902000 ! 145: WRPR_TL_I wrpr %r0, 0x0000, %tl
3139dvapa_80_108:
3140 nop
3141 ta T_CHANGE_HPRIV
3142 mov 0x9cb, %r20
3143 mov 0x7, %r19
3144 sllx %r20, 23, %r20
3145 or %r19, %r20, %r19
3146 stxa %r19, [%g0] ASI_LSU_CONTROL
3147 mov 0x38, %r18
3148 stxa %r31, [%r18]0x58
3149 ta T_CHANGE_NONHPRIV
3150 .word 0xe89fe0d0 ! 146: LDDA_I ldda [%r31, + 0x00d0] %asi, %r20
3151 setx 0xffb3421e31543a02, %r1, %r28
3152 stxa %r28, [%g0] 0x73
3153intvec_80_109:
3154 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3155 .word 0xe8cfe1b8 ! 148: LDSBA_I ldsba [%r31, + 0x01b8] %asi, %r20
3156 .word 0xa7810011 ! 149: WR_GRAPHICS_STATUS_REG_R wr %r4, %r17, %-
3157iaw_80_111:
3158 nop
3159 ta T_CHANGE_HPRIV
3160 mov 8, %r18
3161 rd %asi, %r12
3162 wr %r0, 0x41, %asi
3163 set sync_thr_counter4, %r23
3164#ifndef SPC
3165 ldxa [%g0]0x63, %r8
3166 and %r8, 0x38, %r8 ! Core ID
3167 add %r8, %r23, %r23
3168#else
3169 mov 0, %r8
3170#endif
3171 mov 0x80, %r16
3172iaw_startwait80_111:
3173 cas [%r23],%g0,%r16 !lock
3174 brz,a %r16, continue_iaw_80_111
3175 mov (~0x80&0xf0), %r16
3176 ld [%r23], %r16
3177iaw_wait80_111:
3178 brnz %r16, iaw_wait80_111
3179 ld [%r23], %r16
3180 ba iaw_startwait80_111
3181 mov 0x80, %r16
3182continue_iaw_80_111:
3183 sllx %r16, %r8, %r16 !Mask for my core only
3184 ldxa [0x58]%asi, %r17 !Running_status
3185wait_for_stat_80_111:
3186 ldxa [0x50]%asi, %r13 !Running_rw
3187 cmp %r13, %r17
3188 bne,a %xcc, wait_for_stat_80_111
3189 ldxa [0x58]%asi, %r17 !Running_status
3190 stxa %r16, [0x68]%asi !Park (W1C)
3191 ldxa [0x50]%asi, %r14 !Running_rw
3192wait_for_iaw_80_111:
3193 ldxa [0x58]%asi, %r17 !Running_status
3194 cmp %r14, %r17
3195 bne,a %xcc, wait_for_iaw_80_111
3196 ldxa [0x50]%asi, %r14 !Running_rw
3197iaw_doit80_111:
3198 mov 0x38, %r18
3199iaw4_80_111:
3200 setx common_target, %r20, %r19
3201 or %r19, 0x1, %r19
3202 stxa %r19, [%r18]0x50
3203 stxa %r16, [0x60] %asi ! Unpark (W1S)
3204 st %g0, [%r23] !clear lock
3205 wr %r0, %r12, %asi ! restore %asi
3206 ta T_CHANGE_NONHPRIV
3207 .word 0xe83fe060 ! 150: STD_I std %r20, [%r31 + 0x0060]
3208br_longdelay3_80_112:
3209 nop
3210 not %g0, %r12
3211 jmp %r12
3212 .word 0x99902005 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0005, %cleanwin
3213 .word 0x93a00552 ! 152: FSQRTd fsqrt
3214 .word 0xc19fe1a0 ! 153: LDDFA_I ldda [%r31, 0x01a0], %f0
3215splash_cmpr_80_113:
3216 mov 1, %r18
3217 sllx %r18, 63, %r18
3218 rd %tick, %r17
3219 add %r17, 0x100, %r17
3220 or %r17, %r18, %r17
3221 .word 0xb3800011 ! 154: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
3222 .word 0x879c4011 ! 155: WRHPR_HINTP_R wrhpr %r17, %r17, %hintp
3223 .word 0x91910004 ! 156: WRPR_PIL_R wrpr %r4, %r4, %pil
3224ibp_80_115:
3225 nop
3226 .word 0xd697c02a ! 157: LDUHA_R lduha [%r31, %r10] 0x01, %r11
3227fpinit_80_116:
3228 nop
3229 setx fp_data_quads, %r19, %r20
3230 ldd [%r20], %f0
3231 ldd [%r20+8], %f4
3232 ld [%r20+16], %fsr
3233 ld [%r20+24], %r19
3234 wr %r19, %g0, %gsr
3235 .word 0x87a80a44 ! 158: FCMPd fcmpd %fcc<n>, %f0, %f4
3236 nop
3237 ta T_CHANGE_HPRIV ! macro
3238donret_80_117:
3239 rd %pc, %r12
3240 add %r12, (donretarg_80_117-donret_80_117), %r12
3241 add %r12, 0x4, %r11 ! seq tnpc
3242 wrpr %g0, 0x2, %tl
3243 wrpr %g0, %r12, %tpc
3244 wrpr %g0, %r11, %tnpc
3245 set (0x00e75d00 | (20 << 24)), %r13
3246 and %r12, 0xfff, %r14
3247 sllx %r14, 30, %r14
3248 or %r13, %r14, %r20
3249 wrpr %r20, %g0, %tstate
3250 wrhpr %g0, 0x1d42, %htstate
3251 ta T_CHANGE_NONPRIV ! rand=0 (80)
3252 done
3253donretarg_80_117:
3254 .word 0xd6ffe0bc ! 159: SWAPA_I swapa %r11, [%r31 + 0x00bc] %asi
3255 .word 0xd6dfe1c8 ! 160: LDXA_I ldxa [%r31, + 0x01c8] %asi, %r11
3256jmptr_80_118:
3257 nop
3258 best_set_reg(0xe1a00000, %r20, %r27)
3259 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
3260dvapa_80_119:
3261 nop
3262 ta T_CHANGE_HPRIV
3263 mov 0xc3b, %r20
3264 mov 0x1e, %r19
3265 sllx %r20, 23, %r20
3266 or %r19, %r20, %r19
3267 stxa %r19, [%g0] ASI_LSU_CONTROL
3268 mov 0x38, %r18
3269 stxa %r31, [%r18]0x58
3270 ta T_CHANGE_NONHPRIV
3271 .word 0xc3e8c031 ! 162: PREFETCHA_R prefetcha [%r3, %r17] 0x01, #one_read
3272 .word 0xa980800b ! 163: WR_SET_SOFTINT_R wr %r2, %r11, %set_softint
3273 nop
3274 ta T_CHANGE_HPRIV ! macro
3275donret_80_120:
3276 rd %pc, %r12
3277 add %r12, (donretarg_80_120-donret_80_120+4), %r12
3278 add %r12, 0x4, %r11 ! seq tnpc
3279 wrpr %g0, 0x2, %tl
3280 wrpr %g0, %r12, %tpc
3281 wrpr %g0, %r11, %tnpc
3282 set (0x005fc200 | (28 << 24)), %r13
3283 and %r12, 0xfff, %r14
3284 sllx %r14, 30, %r14
3285 or %r13, %r14, %r20
3286 wrpr %r20, %g0, %tstate
3287 wrhpr %g0, 0x1e8d, %htstate
3288 ta T_CHANGE_NONHPRIV ! rand=1 (80)
3289 retry
3290donretarg_80_120:
3291 .word 0xa3a089d3 ! 164: FDIVd fdivd %f2, %f50, %f48
3292 nop
3293 ta T_CHANGE_HPRIV
3294 mov 0x80, %r10
3295 set sync_thr_counter6, %r23
3296#ifndef SPC
3297 ldxa [%g0]0x63, %o1
3298 and %o1, 0x38, %o1
3299 add %o1, %r23, %r23
3300#endif
3301 cas [%r23],%g0,%r10 !lock
3302 brnz %r10, sma_80_121
3303 rd %asi, %r12
3304 wr %g0, 0x40, %asi
3305 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
3306 set 0x00061fff, %g1
3307 stxa %g1, [%g0 + 0x80] %asi
3308 wr %r12, %g0, %asi
3309 st %g0, [%r23]
3310sma_80_121:
3311 ta T_CHANGE_NONHPRIV
3312 .word 0xe9e7e00c ! 165: CASA_R casa [%r31] %asi, %r12, %r20
3313 .word 0x2e800001 ! 1: BVS bvs,a <label_0x1>
3314 .word 0x8d903243 ! 166: WRPR_PSTATE_I wrpr %r0, 0x1243, %pstate
3315 .word 0x8d802000 ! 167: WRFPRS_I wr %r0, 0x0000, %fprs
3316 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
3317 set 0x1b4, %l3
3318 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
3319 .word 0x95b047d4 ! 169: PDIST pdistn %d32, %d20, %d10
3320iaw_80_124:
3321 nop
3322 ta T_CHANGE_HPRIV
3323 mov 8, %r18
3324 rd %asi, %r12
3325 wr %r0, 0x41, %asi
3326 set sync_thr_counter4, %r23
3327#ifndef SPC
3328 ldxa [%g0]0x63, %r8
3329 and %r8, 0x38, %r8 ! Core ID
3330 add %r8, %r23, %r23
3331#else
3332 mov 0, %r8
3333#endif
3334 mov 0x80, %r16
3335iaw_startwait80_124:
3336 cas [%r23],%g0,%r16 !lock
3337 brz,a %r16, continue_iaw_80_124
3338 mov (~0x80&0xf0), %r16
3339 ld [%r23], %r16
3340iaw_wait80_124:
3341 brnz %r16, iaw_wait80_124
3342 ld [%r23], %r16
3343 ba iaw_startwait80_124
3344 mov 0x80, %r16
3345continue_iaw_80_124:
3346 sllx %r16, %r8, %r16 !Mask for my core only
3347 ldxa [0x58]%asi, %r17 !Running_status
3348wait_for_stat_80_124:
3349 ldxa [0x50]%asi, %r13 !Running_rw
3350 cmp %r13, %r17
3351 bne,a %xcc, wait_for_stat_80_124
3352 ldxa [0x58]%asi, %r17 !Running_status
3353 stxa %r16, [0x68]%asi !Park (W1C)
3354 ldxa [0x50]%asi, %r14 !Running_rw
3355wait_for_iaw_80_124:
3356 ldxa [0x58]%asi, %r17 !Running_status
3357 cmp %r14, %r17
3358 bne,a %xcc, wait_for_iaw_80_124
3359 ldxa [0x50]%asi, %r14 !Running_rw
3360iaw_doit80_124:
3361 mov 0x38, %r18
3362iaw2_80_124:
3363 rdpr %tba, %r19
3364 mov 0x21, %r20
3365 sllx %r20, 5, %r20
3366 add %r20, %r19, %r19
3367 stxa %r19, [%r18]0x50
3368 stxa %r16, [0x60] %asi ! Unpark (W1S)
3369 st %g0, [%r23] !clear lock
3370 wr %r0, %r12, %asi ! restore %asi
3371 ta T_CHANGE_NONHPRIV
3372 .word 0xe03fe1b0 ! 170: STD_I std %r16, [%r31 + 0x01b0]
3373splash_hpstate_80_125:
3374 .word 0x81983d80 ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x1d80, %hpstate
3375memptr_80_126:
3376 set user_data_start, %r31
3377 .word 0x85847cbd ! 172: WRCCR_I wr %r17, 0x1cbd, %ccr
3378 .word 0x8d903897 ! 173: WRPR_PSTATE_I wrpr %r0, 0x1897, %pstate
3379splash_cmpr_80_128:
3380 mov 0, %r18
3381 sllx %r18, 63, %r18
3382 rd %tick, %r17
3383 add %r17, 0x60, %r17
3384 or %r17, %r18, %r17
3385 ta T_CHANGE_HPRIV
3386 wrhpr %r17, %g0, %hsys_tick_cmpr
3387 ta T_CHANGE_PRIV
3388 .word 0xaf800011 ! 174: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
3389 bneg skip_80_129
3390 bge,a skip_80_129
3391.align 512
3392skip_80_129:
3393 .word 0xe03fc000 ! 175: STD_R std %r16, [%r31 + %r0]
3394brcommon2_80_130:
3395 nop
3396 setx common_target, %r12, %r27
3397 ba,a .+12
3398 .word 0xa7a509ca ! 1: FDIVd fdivd %f20, %f10, %f50
3399 ba,a .+8
3400 jmpl %r27+0, %r27
3401 .word 0xc1bfe1a0 ! 176: STDFA_I stda %f0, [0x01a0, %r31]
3402splash_cmpr_80_131:
3403 mov 1, %r18
3404 sllx %r18, 63, %r18
3405 rd %tick, %r17
3406 add %r17, 0x70, %r17
3407 or %r17, %r18, %r17
3408 ta T_CHANGE_HPRIV
3409 wrhpr %r17, %g0, %hsys_tick_cmpr
3410 .word 0xaf800011 ! 177: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
3411splash_cmpr_80_132:
3412 mov 0, %r18
3413 sllx %r18, 63, %r18
3414 rd %tick, %r17
3415 add %r17, 0x50, %r17
3416 or %r17, %r18, %r17
3417 ta T_CHANGE_HPRIV
3418 wrhpr %r17, %g0, %hsys_tick_cmpr
3419 ta T_CHANGE_PRIV
3420 .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
3421 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
3422 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
3423 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
3424memptr_80_135:
3425 set user_data_start, %r31
3426 .word 0x858123b3 ! 182: WRCCR_I wr %r4, 0x03b3, %ccr
3427memptr_80_136:
3428 set 0x60740000, %r31
3429 .word 0x85837ece ! 183: WRCCR_I wr %r13, 0x1ece, %ccr
3430 .word 0xe677e1a5 ! 184: STX_I stx %r19, [%r31 + 0x01a5]
3431 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
3432fpinit_80_138:
3433 nop
3434 setx fp_data_quads, %r19, %r20
3435 ldd [%r20], %f0
3436 ldd [%r20+8], %f4
3437 ld [%r20+16], %fsr
3438 ld [%r20+24], %r19
3439 wr %r19, %g0, %gsr
3440 .word 0x8db00484 ! 186: FCMPLE32 fcmple32 %d0, %d4, %r6
3441iaw_80_139:
3442 nop
3443 ta T_CHANGE_HPRIV
3444 mov 8, %r18
3445 rd %asi, %r12
3446 wr %r0, 0x41, %asi
3447 set sync_thr_counter4, %r23
3448#ifndef SPC
3449 ldxa [%g0]0x63, %r8
3450 and %r8, 0x38, %r8 ! Core ID
3451 add %r8, %r23, %r23
3452#else
3453 mov 0, %r8
3454#endif
3455 mov 0x80, %r16
3456iaw_startwait80_139:
3457 cas [%r23],%g0,%r16 !lock
3458 brz,a %r16, continue_iaw_80_139
3459 mov (~0x80&0xf0), %r16
3460 ld [%r23], %r16
3461iaw_wait80_139:
3462 brnz %r16, iaw_wait80_139
3463 ld [%r23], %r16
3464 ba iaw_startwait80_139
3465 mov 0x80, %r16
3466continue_iaw_80_139:
3467 sllx %r16, %r8, %r16 !Mask for my core only
3468 ldxa [0x58]%asi, %r17 !Running_status
3469wait_for_stat_80_139:
3470 ldxa [0x50]%asi, %r13 !Running_rw
3471 cmp %r13, %r17
3472 bne,a %xcc, wait_for_stat_80_139
3473 ldxa [0x58]%asi, %r17 !Running_status
3474 stxa %r16, [0x68]%asi !Park (W1C)
3475 ldxa [0x50]%asi, %r14 !Running_rw
3476wait_for_iaw_80_139:
3477 ldxa [0x58]%asi, %r17 !Running_status
3478 cmp %r14, %r17
3479 bne,a %xcc, wait_for_iaw_80_139
3480 ldxa [0x50]%asi, %r14 !Running_rw
3481iaw_doit80_139:
3482 mov 0x38, %r18
3483iaw1_80_139:
3484 best_set_reg(0x00000000e1a00000, %r20, %r19)
3485 or %r19, 0x1, %r19
3486 stxa %r19, [%r18]0x50
3487 stxa %r16, [0x60] %asi ! Unpark (W1S)
3488 st %g0, [%r23] !clear lock
3489 wr %r0, %r12, %asi ! restore %asi
3490 ta T_CHANGE_NONHPRIV
3491 .word 0xc1bfe060 ! 187: STDFA_I stda %f0, [0x0060, %r31]
3492fpinit_80_140:
3493 nop
3494 setx fp_data_quads, %r19, %r20
3495 ldd [%r20], %f0
3496 ldd [%r20+8], %f4
3497 ld [%r20+16], %fsr
3498 ld [%r20+24], %r19
3499 wr %r19, %g0, %gsr
3500 .word 0x87a80a44 ! 188: FCMPd fcmpd %fcc<n>, %f0, %f4
3501ceter_80_141:
3502 nop
3503 ta T_CHANGE_HPRIV
3504 mov 7, %r17
3505 sllx %r17, 60, %r17
3506 mov 0x18, %r16
3507 stxa %r17, [%r16]0x4c
3508 ta T_CHANGE_NONHPRIV
3509 .word 0xa5410000 ! 189: RDTICK rd %tick, %r18
3510 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
3511 .word 0x8d802000 ! 191: WRFPRS_I wr %r0, 0x0000, %fprs
3512 nop
3513 ta T_CHANGE_HPRIV ! macro
3514donret_80_142:
3515 rd %pc, %r12
3516 add %r12, (donretarg_80_142-donret_80_142+4), %r12
3517 add %r12, 0x4, %r11 ! seq tnpc
3518 wrpr %g0, 0x2, %tl
3519 wrpr %g0, %r12, %tpc
3520 wrpr %g0, %r11, %tnpc
3521 set (0x0093f000 | (0x89 << 24)), %r13
3522 and %r12, 0xfff, %r14
3523 sllx %r14, 30, %r14
3524 or %r13, %r14, %r20
3525 wrpr %r20, %g0, %tstate
3526 wrhpr %g0, 0x1383, %htstate
3527 ta T_CHANGE_NONPRIV ! rand=0 (80)
3528 retry
3529donretarg_80_142:
3530 .word 0xd2ffe114 ! 192: SWAPA_I swapa %r9, [%r31 + 0x0114] %asi
3531 .word 0x87984014 ! 193: WRHPR_HINTP_R wrhpr %r1, %r20, %hintp
3532splash_cmpr_80_143:
3533 mov 1, %r18
3534 sllx %r18, 63, %r18
3535 rd %tick, %r17
3536 add %r17, 0x100, %r17
3537 or %r17, %r18, %r17
3538 ta T_CHANGE_HPRIV
3539 wrhpr %r17, %g0, %hsys_tick_cmpr
3540 .word 0xaf800011 ! 194: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
3541 nop
3542 ta T_CHANGE_HPRIV
3543 mov 0x80+1, %r10
3544 set sync_thr_counter5, %r23
3545#ifndef SPC
3546 ldxa [%g0]0x63, %o1
3547 and %o1, 0x38, %o1
3548 add %o1, %r23, %r23
3549 sllx %o1, 5, %o3 !(CID*256)
3550#endif
3551 cas [%r23],%g0,%r10 !lock
3552 brnz %r10, cwq_80_144
3553 rd %asi, %r12
3554 wr %g0, 0x40, %asi
3555 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
3556 and %l1, 0x3, %l1 ! Check if busy/enabled ..
3557 cmp %l1, 1
3558 bne cwq_80_144
3559 set CWQ_BASE, %l6
3560#ifndef SPC
3561 add %l6, %o3, %l6
3562#endif
3563 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
3564 best_set_reg(0x20610060, %l1, %l2) !# Control Word
3565 sllx %l2, 32, %l2
3566 stx %l2, [%l6 + 0x0]
3567 membar #Sync
3568 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
3569 sub %l2, 0x40, %l2
3570 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
3571 wr %r12, %g0, %asi
3572 st %g0, [%r23]
3573cwq_80_144:
3574 ta T_CHANGE_NONHPRIV
3575 .word 0x91414000 ! 195: RDPC rd %pc, %r8
3576br_badelay2_80_145:
3577 .word 0x34800001 ! 1: BG bg,a <label_0x1>
3578 pdist %f16, %f10, %f8
3579 .word 0x95b1c310 ! 196: ALIGNADDRESS alignaddr %r7, %r16, %r10
3580splash_tba_80_146:
3581 nop
3582 ta T_CHANGE_PRIV
3583 setx 0x00000000003a0000, %r11, %r12
3584 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
3585 nop
3586 mov 0x80, %g3
3587 stxa %g3, [%g3] 0x57
3588 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
3589 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
3590 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
3591 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
3592 .word 0x81460000 ! 199: RD_STICK_REG stbar
3593 .word 0xd01fe150 ! 200: LDD_I ldd [%r31 + 0x0150], %r8
3594 nop
3595 ta T_CHANGE_HPRIV
3596 mov 0x80+1, %r10
3597 set sync_thr_counter5, %r23
3598#ifndef SPC
3599 ldxa [%g0]0x63, %o1
3600 and %o1, 0x38, %o1
3601 add %o1, %r23, %r23
3602 sllx %o1, 5, %o3 !(CID*256)
3603#endif
3604 cas [%r23],%g0,%r10 !lock
3605 brnz %r10, cwq_80_147
3606 rd %asi, %r12
3607 wr %g0, 0x40, %asi
3608 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
3609 and %l1, 0x3, %l1 ! Check if busy/enabled ..
3610 cmp %l1, 1
3611 bne cwq_80_147
3612 set CWQ_BASE, %l6
3613#ifndef SPC
3614 add %l6, %o3, %l6
3615#endif
3616 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
3617 best_set_reg(0x20610040, %l1, %l2) !# Control Word
3618 sllx %l2, 32, %l2
3619 stx %l2, [%l6 + 0x0]
3620 membar #Sync
3621 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
3622 sub %l2, 0x40, %l2
3623 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
3624 wr %r12, %g0, %asi
3625 st %g0, [%r23]
3626cwq_80_147:
3627 ta T_CHANGE_NONHPRIV
3628 .word 0x91414000 ! 201: RDPC rd %pc, %r8
3629 nop
3630 nop
3631 ta T_CHANGE_PRIV
3632 wrpr %g0, %g0, %gl
3633 nop
3634 nop
3635 setx join_lbl_0_0, %g1, %g2
3636 jmp %g2
3637 nop
3638fork_lbl_0_7:
3639 ta T_CHANGE_NONHPRIV
3640 nop
3641 ta T_CHANGE_HPRIV ! macro
3642donret_40_0:
3643 rd %pc, %r12
3644 add %r12, (donretarg_40_0-donret_40_0), %r12
3645 add %r12, 0x8, %r11 ! nonseq tnpc
3646 wrpr %g0, 0x2, %tl
3647 wrpr %g0, %r12, %tpc
3648 wrpr %g0, %r11, %tnpc
3649 set (0x005ec500 | (0x8a << 24)), %r13
3650 and %r12, 0xfff, %r14
3651 sllx %r14, 30, %r14
3652 or %r13, %r14, %r20
3653 wrpr %r20, %g0, %tstate
3654 wrhpr %g0, 0x15d4, %htstate
3655 ta T_CHANGE_NONPRIV ! rand=0 (40)
3656 retry
3657donretarg_40_0:
3658 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
3659reduce_priv_lvl_40_1:
3660 ta T_CHANGE_NONPRIV ! macro
3661change_to_randtl_40_2:
3662 ta T_CHANGE_PRIV ! macro
3663done_change_to_randtl_40_2:
3664 .word 0x8f902000 ! 2: WRPR_TL_I wrpr %r0, 0x0000, %tl
3665 .word 0xdadfe1e0 ! 3: LDXA_I ldxa [%r31, + 0x01e0] %asi, %r13
3666 .word 0xda800c40 ! 4: LDUWA_R lduwa [%r0, %r0] 0x62, %r13
3667ibp_40_3:
3668 nop
3669 ta T_CHANGE_HPRIV
3670 mov 8, %r18
3671 rd %asi, %r12
3672 wr %r0, 0x41, %asi
3673 set sync_thr_counter4, %r23
3674#ifndef SPC
3675 ldxa [%g0]0x63, %r8
3676 and %r8, 0x38, %r8 ! Core ID
3677 add %r8, %r23, %r23
3678#else
3679 mov 0, %r8
3680#endif
3681 mov 0x40, %r16
3682ibp_startwait40_3:
3683 cas [%r23],%g0,%r16 !lock
3684 brz,a %r16, continue_ibp_40_3
3685 mov (~0x40&0xf0), %r16
3686 ld [%r23], %r16
3687ibp_wait40_3:
3688 brnz %r16, ibp_wait40_3
3689 ld [%r23], %r16
3690 ba ibp_startwait40_3
3691 mov 0x40, %r16
3692continue_ibp_40_3:
3693 sllx %r16, %r8, %r16 !Mask for my core only
3694 ldxa [0x58]%asi, %r17 !Running_status
3695wait_for_stat_40_3:
3696 ldxa [0x50]%asi, %r13 !Running_rw
3697 cmp %r13, %r17
3698 bne,a %xcc, wait_for_stat_40_3
3699 ldxa [0x58]%asi, %r17 !Running_status
3700 stxa %r16, [0x68]%asi !Park (W1C)
3701 ldxa [0x50]%asi, %r14 !Running_rw
3702wait_for_ibp_40_3:
3703 ldxa [0x58]%asi, %r17 !Running_status
3704 cmp %r14, %r17
3705 bne,a %xcc, wait_for_ibp_40_3
3706 ldxa [0x50]%asi, %r14 !Running_rw
3707ibp_doit40_3:
3708 best_set_reg(0x00000050f6c000e8,%r19, %r20)
3709 stxa %r20, [%r18]0x42
3710 stxa %r16, [0x60] %asi !Unpark (W1S)
3711 st %g0, [%r23] !clear lock
3712 wr %r0, %r12, %asi !restore %asi
3713 .word 0xe1bfdf20 ! 5: STDFA_R stda %f16, [%r0, %r31]
3714intveclr_40_4:
3715 nop
3716 ta T_CHANGE_HPRIV
3717 setx 0xbbe7b6060009f819, %r1, %r28
3718 stxa %r28, [%g0] 0x72
3719 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
3720 setx 0x8eecbae84e27052d, %r1, %r28
3721 stxa %r28, [%g0] 0x73
3722intvec_40_5:
3723 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3724splash_tba_40_6:
3725 nop
3726 ta T_CHANGE_PRIV
3727 setx 0x0000000400380000, %r11, %r12
3728 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
3729memptr_40_7:
3730 set 0x60540000, %r31
3731 .word 0x8582a469 ! 9: WRCCR_I wr %r10, 0x0469, %ccr
3732 .word 0xa1902000 ! 10: WRPR_GL_I wrpr %r0, 0x0000, %-
3733fpinit_40_8:
3734 nop
3735 setx fp_data_quads, %r19, %r20
3736 ldd [%r20], %f0
3737 ldd [%r20+8], %f4
3738 ld [%r20+16], %fsr
3739 ld [%r20+24], %r19
3740 wr %r19, %g0, %gsr
3741 .word 0x8da009a4 ! 11: FDIVs fdivs %f0, %f4, %f6
3742 .word 0xda800ba0 ! 12: LDUWA_R lduwa [%r0, %r0] 0x5d, %r13
3743ibp_40_9:
3744 nop
3745 ta T_CHANGE_HPRIV
3746 mov 8, %r18
3747 rd %asi, %r12
3748 wr %r0, 0x41, %asi
3749 set sync_thr_counter4, %r23
3750#ifndef SPC
3751 ldxa [%g0]0x63, %r8
3752 and %r8, 0x38, %r8 ! Core ID
3753 add %r8, %r23, %r23
3754#else
3755 mov 0, %r8
3756#endif
3757 mov 0x40, %r16
3758ibp_startwait40_9:
3759 cas [%r23],%g0,%r16 !lock
3760 brz,a %r16, continue_ibp_40_9
3761 mov (~0x40&0xf0), %r16
3762 ld [%r23], %r16
3763ibp_wait40_9:
3764 brnz %r16, ibp_wait40_9
3765 ld [%r23], %r16
3766 ba ibp_startwait40_9
3767 mov 0x40, %r16
3768continue_ibp_40_9:
3769 sllx %r16, %r8, %r16 !Mask for my core only
3770 ldxa [0x58]%asi, %r17 !Running_status
3771wait_for_stat_40_9:
3772 ldxa [0x50]%asi, %r13 !Running_rw
3773 cmp %r13, %r17
3774 bne,a %xcc, wait_for_stat_40_9
3775 ldxa [0x58]%asi, %r17 !Running_status
3776 stxa %r16, [0x68]%asi !Park (W1C)
3777 ldxa [0x50]%asi, %r14 !Running_rw
3778wait_for_ibp_40_9:
3779 ldxa [0x58]%asi, %r17 !Running_status
3780 cmp %r14, %r17
3781 bne,a %xcc, wait_for_ibp_40_9
3782 ldxa [0x50]%asi, %r14 !Running_rw
3783ibp_doit40_9:
3784 best_set_reg(0x000000401ac0e8ce,%r19, %r20)
3785 stxa %r20, [%r18]0x42
3786 stxa %r16, [0x60] %asi !Unpark (W1S)
3787 st %g0, [%r23] !clear lock
3788 wr %r0, %r12, %asi !restore %asi
3789 .word 0x97a489d3 ! 13: FDIVd fdivd %f18, %f50, %f42
3790memptr_40_10:
3791 set 0x60140000, %r31
3792 .word 0x85843a19 ! 14: WRCCR_I wr %r16, 0x1a19, %ccr
3793pmu_40_11:
3794 nop
3795 setx 0xfffff171fffff132, %g1, %g7
3796 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
3797 .word 0xe41fe0f8 ! 16: LDD_I ldd [%r31 + 0x00f8], %r18
3798 .word 0xe49fdd40 ! 17: LDDA_R ldda [%r31, %r0] 0xea, %r18
3799brcommon2_40_12:
3800 nop
3801 setx common_target, %r12, %r27
3802 ba,a .+12
3803 .word 0xc36fe170 ! 1: PREFETCH_I prefetch [%r31 + 0x0170], #one_read
3804 ba,a .+8
3805 jmpl %r27+0, %r27
3806 .word 0xe1bfe1e0 ! 18: STDFA_I stda %f16, [0x01e0, %r31]
3807intveclr_40_13:
3808 nop
3809 ta T_CHANGE_HPRIV
3810 setx 0x329d09d4d2847369, %r1, %r28
3811 stxa %r28, [%g0] 0x72
3812 ta T_CHANGE_NONHPRIV
3813 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
3814intveclr_40_14:
3815 nop
3816 ta T_CHANGE_HPRIV
3817 setx 0x2a2b550d5bdd4a40, %r1, %r28
3818 stxa %r28, [%g0] 0x72
3819 ta T_CHANGE_NONHPRIV
3820 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
3821pmu_40_15:
3822 nop
3823 setx 0xfffff716fffff2ce, %g1, %g7
3824 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
3825 fbge,a,pn %fcc0, skip_40_16
3826 bn skip_40_16
3827.align 128
3828skip_40_16:
3829 .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3830 .word 0x946cb8e1 ! 23: UDIVX_I udivx %r18, 0xfffff8e1, %r10
3831dvapa_40_17:
3832 nop
3833 ta T_CHANGE_HPRIV
3834 mov 0x91e, %r20
3835 mov 0x1b, %r19
3836 sllx %r20, 23, %r20
3837 or %r19, %r20, %r19
3838 stxa %r19, [%g0] ASI_LSU_CONTROL
3839 mov 0x38, %r18
3840 stxa %r31, [%r18]0x58
3841 ta T_CHANGE_NONHPRIV
3842 .word 0xe6dfc032 ! 24: LDXA_R ldxa [%r31, %r18] 0x01, %r19
3843splash_htba_40_18:
3844 nop
3845 ta T_CHANGE_HPRIV
3846 setx 0x0000000200280000, %r11, %r12
3847 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
3848 .word 0xe797e0f8 ! 26: LDQFA_I - [%r31, 0x00f8], %f19
3849 .word 0x36800001 ! 1: BGE bge,a <label_0x1>
3850 .word 0x8d903d13 ! 27: WRPR_PSTATE_I wrpr %r0, 0x1d13, %pstate
3851 .word 0x936ac011 ! 28: SDIVX_R sdivx %r11, %r17, %r9
3852splash_hpstate_40_20:
3853 ta T_CHANGE_NONHPRIV
3854 .word 0x81983f4b ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x1f4b, %hpstate
3855intveclr_40_21:
3856 nop
3857 ta T_CHANGE_HPRIV
3858 setx 0xff2941297601eb28, %r1, %r28
3859 stxa %r28, [%g0] 0x72
3860 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
3861#if (defined SPC || defined CMP1)
3862!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_22) + 24, 16, 16)) -> intp(6,0,0)
3863#else
3864 setx 0x79e3224db029c39c, %r1, %r28
3865 stxa %r28, [%g0] 0x73
3866#endif
3867intvec_40_22:
3868 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
3869splash_tba_40_23:
3870 nop
3871 ta T_CHANGE_PRIV
3872 setx 0x0000000400380000, %r11, %r12
3873 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
3874splash_lsu_40_24:
3875 nop
3876 ta T_CHANGE_HPRIV
3877 set 0x3a9a8c70, %r2
3878 mov 0x5, %r1
3879 sllx %r1, 32, %r1
3880 or %r1, %r2, %r2
3881 stxa %r2, [%r0] ASI_LSU_CONTROL
3882 ta T_CHANGE_NONHPRIV
3883 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
3884splash_hpstate_40_25:
3885 .word 0x28800001 ! 1: BLEU bleu,a <label_0x1>
3886 .word 0x8198359d ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x159d, %hpstate
3887pmu_40_26:
3888 nop
3889 ta T_CHANGE_PRIV
3890 setx 0xfffffea6fffff4b4, %g1, %g7
3891 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
3892 .word 0x95a409b1 ! 36: FDIVs fdivs %f16, %f17, %f10
3893jmptr_40_28:
3894 nop
3895 best_set_reg(0xe0200000, %r20, %r27)
3896 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
3897 .word 0x87ac8a53 ! 38: FCMPd fcmpd %fcc<n>, %f18, %f50
3898intveclr_40_30:
3899 nop
3900 ta T_CHANGE_HPRIV
3901 setx 0x126ba7fdfea5e090, %r1, %r28
3902 stxa %r28, [%g0] 0x72
3903 ta T_CHANGE_NONHPRIV
3904 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
3905ibp_40_31:
3906 nop
3907 ta T_CHANGE_HPRIV
3908 mov 8, %r18
3909 rd %asi, %r12
3910 wr %r0, 0x41, %asi
3911 set sync_thr_counter4, %r23
3912#ifndef SPC
3913 ldxa [%g0]0x63, %r8
3914 and %r8, 0x38, %r8 ! Core ID
3915 add %r8, %r23, %r23
3916#else
3917 mov 0, %r8
3918#endif
3919 mov 0x40, %r16
3920ibp_startwait40_31:
3921 cas [%r23],%g0,%r16 !lock
3922 brz,a %r16, continue_ibp_40_31
3923 mov (~0x40&0xf0), %r16
3924 ld [%r23], %r16
3925ibp_wait40_31:
3926 brnz %r16, ibp_wait40_31
3927 ld [%r23], %r16
3928 ba ibp_startwait40_31
3929 mov 0x40, %r16
3930continue_ibp_40_31:
3931 sllx %r16, %r8, %r16 !Mask for my core only
3932 ldxa [0x58]%asi, %r17 !Running_status
3933wait_for_stat_40_31:
3934 ldxa [0x50]%asi, %r13 !Running_rw
3935 cmp %r13, %r17
3936 bne,a %xcc, wait_for_stat_40_31
3937 ldxa [0x58]%asi, %r17 !Running_status
3938 stxa %r16, [0x68]%asi !Park (W1C)
3939 ldxa [0x50]%asi, %r14 !Running_rw
3940wait_for_ibp_40_31:
3941 ldxa [0x58]%asi, %r17 !Running_status
3942 cmp %r14, %r17
3943 bne,a %xcc, wait_for_ibp_40_31
3944 ldxa [0x50]%asi, %r14 !Running_rw
3945ibp_doit40_31:
3946 best_set_reg(0x00000050c8e8ce07,%r19, %r20)
3947 stxa %r20, [%r18]0x42
3948 stxa %r16, [0x60] %asi !Unpark (W1S)
3949 st %g0, [%r23] !clear lock
3950 wr %r0, %r12, %asi !restore %asi
3951 ta T_CHANGE_NONHPRIV
3952 .word 0xdabfc033 ! 40: STDA_R stda %r13, [%r31 + %r19] 0x01
3953 invalw
3954 mov 0xb4, %r30
3955 .word 0x91d0001e ! 41: Tcc_R ta icc_or_xcc, %r0 + %r30
3956intveclr_40_32:
3957 nop
3958 ta T_CHANGE_HPRIV
3959 setx 0x9e3ffe8ae6aa1468, %r1, %r28
3960 stxa %r28, [%g0] 0x72
3961 ta T_CHANGE_NONHPRIV
3962 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
3963ibp_40_33:
3964 nop
3965 ta T_CHANGE_HPRIV
3966 mov 8, %r18
3967 rd %asi, %r12
3968 wr %r0, 0x41, %asi
3969 set sync_thr_counter4, %r23
3970#ifndef SPC
3971 ldxa [%g0]0x63, %r8
3972 and %r8, 0x38, %r8 ! Core ID
3973 add %r8, %r23, %r23
3974#else
3975 mov 0, %r8
3976#endif
3977 mov 0x40, %r16
3978ibp_startwait40_33:
3979 cas [%r23],%g0,%r16 !lock
3980 brz,a %r16, continue_ibp_40_33
3981 mov (~0x40&0xf0), %r16
3982 ld [%r23], %r16
3983ibp_wait40_33:
3984 brnz %r16, ibp_wait40_33
3985 ld [%r23], %r16
3986 ba ibp_startwait40_33
3987 mov 0x40, %r16
3988continue_ibp_40_33:
3989 sllx %r16, %r8, %r16 !Mask for my core only
3990 ldxa [0x58]%asi, %r17 !Running_status
3991wait_for_stat_40_33:
3992 ldxa [0x50]%asi, %r13 !Running_rw
3993 cmp %r13, %r17
3994 bne,a %xcc, wait_for_stat_40_33
3995 ldxa [0x58]%asi, %r17 !Running_status
3996 stxa %r16, [0x68]%asi !Park (W1C)
3997 ldxa [0x50]%asi, %r14 !Running_rw
3998wait_for_ibp_40_33:
3999 ldxa [0x58]%asi, %r17 !Running_status
4000 cmp %r14, %r17
4001 bne,a %xcc, wait_for_ibp_40_33
4002 ldxa [0x50]%asi, %r14 !Running_rw
4003ibp_doit40_33:
4004 best_set_reg(0x00000050ccce07ca,%r19, %r20)
4005 stxa %r20, [%r18]0x42
4006 stxa %r16, [0x60] %asi !Unpark (W1S)
4007 st %g0, [%r23] !clear lock
4008 wr %r0, %r12, %asi !restore %asi
4009 .word 0xa9b4c7d2 ! 43: PDIST pdistn %d50, %d18, %d20
4010 .word 0xa190200f ! 44: WRPR_GL_I wrpr %r0, 0x000f, %-
4011fpinit_40_34:
4012 nop
4013 setx fp_data_quads, %r19, %r20
4014 ldd [%r20], %f0
4015 ldd [%r20+8], %f4
4016 ld [%r20+16], %fsr
4017 ld [%r20+24], %r19
4018 wr %r19, %g0, %gsr
4019 .word 0x87a80a44 ! 45: FCMPd fcmpd %fcc<n>, %f0, %f4
4020 .word 0x91940001 ! 46: WRPR_PIL_R wrpr %r16, %r1, %pil
4021 nop
4022 ta T_CHANGE_HPRIV ! macro
4023donret_40_36:
4024 rd %pc, %r12
4025 add %r12, (donretarg_40_36-donret_40_36+4), %r12
4026 add %r12, 0x4, %r11 ! seq tnpc
4027 wrpr %g0, 0x1, %tl
4028 wrpr %g0, %r12, %tpc
4029 wrpr %g0, %r11, %tnpc
4030 set (0x00f91000 | (0x88 << 24)), %r13
4031 and %r12, 0xfff, %r14
4032 sllx %r14, 30, %r14
4033 or %r13, %r14, %r20
4034 wrpr %r20, %g0, %tstate
4035 wrhpr %g0, 0x687, %htstate
4036 ta T_CHANGE_NONPRIV ! rand=0 (40)
4037 .word 0x25400001 ! 1: FBPLG fblg,a,pn %fcc0, <label_0x1>
4038 retry
4039donretarg_40_36:
4040 .word 0xe26fe0d6 ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x00d6]
4041 .word 0xc19fd920 ! 48: LDDFA_R ldda [%r31, %r0], %f0
4042change_to_randtl_40_37:
4043 ta T_CHANGE_HPRIV ! macro
4044done_change_to_randtl_40_37:
4045 .word 0x8f902000 ! 49: WRPR_TL_I wrpr %r0, 0x0000, %tl
4046 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
4047 brlz,pn %r18, skip_40_38
4048 .word 0x87aa0a48 ! 1: FCMPd fcmpd %fcc<n>, %f8, %f8
4049.align 1024
4050skip_40_38:
4051 .word 0xe23fc000 ! 51: STD_R std %r17, [%r31 + %r0]
4052intveclr_40_39:
4053 nop
4054 ta T_CHANGE_HPRIV
4055 setx 0x02e986b5e8863778, %r1, %r28
4056 stxa %r28, [%g0] 0x72
4057 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
4058 .word 0x9f80372e ! 53: SIR sir 0x172e
4059 .word 0xe337e1f0 ! 54: STQF_I - %f17, [0x01f0, %r31]
4060dvapa_40_40:
4061 nop
4062 ta T_CHANGE_HPRIV
4063 mov 0xed6, %r20
4064 mov 0x0, %r19
4065 sllx %r20, 23, %r20
4066 or %r19, %r20, %r19
4067 stxa %r19, [%g0] ASI_LSU_CONTROL
4068 mov 0x38, %r18
4069 stxa %r31, [%r18]0x58
4070 ta T_CHANGE_NONHPRIV
4071 .word 0xe19fe140 ! 55: LDDFA_I ldda [%r31, 0x0140], %f16
4072 .word 0xe22fe196 ! 56: STB_I stb %r17, [%r31 + 0x0196]
4073 setx 0xe7f82cab072127d2, %r1, %r28
4074 stxa %r28, [%g0] 0x73
4075intvec_40_41:
4076 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
4077brcommon2_40_42:
4078 nop
4079 setx common_target, %r12, %r27
4080 ba,a .+12
4081 .word 0x81dfc013 ! 1: FLUSH_R flush
4082 ba,a .+8
4083 jmpl %r27+0, %r27
4084 .word 0xe1bfdb60 ! 58: STDFA_R stda %f16, [%r0, %r31]
4085jmptr_40_43:
4086 nop
4087 best_set_reg(0xe0200000, %r20, %r27)
4088 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
4089memptr_40_44:
4090 set 0x60740000, %r31
4091 .word 0x85853367 ! 60: WRCCR_I wr %r20, 0x1367, %ccr
4092 nop
4093 ta T_CHANGE_HPRIV
4094 mov 0x40+1, %r10
4095 set sync_thr_counter5, %r23
4096#ifndef SPC
4097 ldxa [%g0]0x63, %o1
4098 and %o1, 0x38, %o1
4099 add %o1, %r23, %r23
4100 sllx %o1, 5, %o3 !(CID*256)
4101#endif
4102 cas [%r23],%g0,%r10 !lock
4103 brnz %r10, cwq_40_45
4104 rd %asi, %r12
4105 wr %g0, 0x40, %asi
4106 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
4107 and %l1, 0x3, %l1 ! Check if busy/enabled ..
4108 cmp %l1, 1
4109 bne cwq_40_45
4110 set CWQ_BASE, %l6
4111#ifndef SPC
4112 add %l6, %o3, %l6
4113#endif
4114 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
4115 best_set_reg(0x20610020, %l1, %l2) !# Control Word
4116 sllx %l2, 32, %l2
4117 stx %l2, [%l6 + 0x0]
4118 membar #Sync
4119 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
4120 sub %l2, 0x40, %l2
4121 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
4122 wr %r12, %g0, %asi
4123 st %g0, [%r23]
4124cwq_40_45:
4125 ta T_CHANGE_NONHPRIV
4126 .word 0xa9414000 ! 61: RDPC rd %pc, %r20
4127fpinit_40_46:
4128 nop
4129 setx fp_data_quads, %r19, %r20
4130 ldd [%r20], %f0
4131 ldd [%r20+8], %f4
4132 ld [%r20+16], %fsr
4133 ld [%r20+24], %r19
4134 wr %r19, %g0, %gsr
4135 .word 0x89a009a4 ! 62: FDIVs fdivs %f0, %f4, %f4
4136 .word 0x93d020b5 ! 63: Tcc_I tne icc_or_xcc, %r0 + 181
4137 .word 0xa1b047d1 ! 64: PDIST pdistn %d32, %d48, %d16
4138 nop
4139 ta T_CHANGE_HPRIV
4140 mov 0x40, %r10
4141 set sync_thr_counter6, %r23
4142#ifndef SPC
4143 ldxa [%g0]0x63, %o1
4144 and %o1, 0x38, %o1
4145 add %o1, %r23, %r23
4146#endif
4147 cas [%r23],%g0,%r10 !lock
4148 brnz %r10, sma_40_48
4149 rd %asi, %r12
4150 wr %g0, 0x40, %asi
4151 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
4152 set 0x000e1fff, %g1
4153 stxa %g1, [%g0 + 0x80] %asi
4154 wr %r12, %g0, %asi
4155 st %g0, [%r23]
4156sma_40_48:
4157 ta T_CHANGE_NONHPRIV
4158 .word 0xe5e7e00a ! 65: CASA_R casa [%r31] %asi, %r10, %r18
4159 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
4160 .word 0xe537e088 ! 67: STQF_I - %f18, [0x0088, %r31]
4161 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
4162reduce_priv_lvl_40_49:
4163 ta T_CHANGE_NONHPRIV ! macro
4164trapasi_40_50:
4165 nop
4166 mov 0x3c8, %r1 ! (VA for ASI 0x25)
4167 .word 0xe48844a0 ! 69: LDUBA_R lduba [%r1, %r0] 0x25, %r18
4168splash_tba_40_51:
4169 nop
4170 ta T_CHANGE_PRIV
4171 setx 0x0000000400380000, %r11, %r12
4172 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
4173dvapa_40_52:
4174 nop
4175 ta T_CHANGE_HPRIV
4176 mov 0xdce, %r20
4177 mov 0xa, %r19
4178 sllx %r20, 23, %r20
4179 or %r19, %r20, %r19
4180 stxa %r19, [%g0] ASI_LSU_CONTROL
4181 mov 0x38, %r18
4182 stxa %r31, [%r18]0x58
4183 ta T_CHANGE_NONHPRIV
4184 .word 0xe49fe190 ! 71: LDDA_I ldda [%r31, + 0x0190] %asi, %r18
4185 .word 0x9548c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r10
4186 nop
4187 ta T_CHANGE_HPRIV
4188 mov 0x40, %r10
4189 set sync_thr_counter6, %r23
4190#ifndef SPC
4191 ldxa [%g0]0x63, %o1
4192 and %o1, 0x38, %o1
4193 add %o1, %r23, %r23
4194#endif
4195 cas [%r23],%g0,%r10 !lock
4196 brnz %r10, sma_40_53
4197 rd %asi, %r12
4198 wr %g0, 0x40, %asi
4199 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
4200 set 0x001e1fff, %g1
4201 stxa %g1, [%g0 + 0x80] %asi
4202 wr %r12, %g0, %asi
4203 st %g0, [%r23]
4204sma_40_53:
4205 ta T_CHANGE_NONHPRIV
4206 .word 0xe9e7e00b ! 73: CASA_R casa [%r31] %asi, %r11, %r20
4207mondo_40_54:
4208 nop
4209 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
4210 ta T_CHANGE_PRIV
4211 stxa %r17, [%r0+0x3e8] %asi
4212 .word 0x9d91800b ! 74: WRPR_WSTATE_R wrpr %r6, %r11, %wstate
4213intveclr_40_55:
4214 nop
4215 ta T_CHANGE_HPRIV
4216 setx 0xfd86b6ae9a88f663, %r1, %r28
4217 stxa %r28, [%g0] 0x72
4218 ta T_CHANGE_NONHPRIV
4219 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
4220 .word 0xe937e03a ! 76: STQF_I - %f20, [0x003a, %r31]
4221splash_hpstate_40_56:
4222 ta T_CHANGE_NONHPRIV
4223 .word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, <label_0x1>
4224 .word 0x8198358f ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x158f, %hpstate
4225br_badelay3_40_57:
4226 .word 0x20800001 ! 1: BN bn,a <label_0x1>
4227 .word 0x22800001 ! 1: BE be,a <label_0x1>
4228 .word 0xa9a409d1 ! 1: FDIVd fdivd %f16, %f48, %f20
4229 .word 0xa5a44832 ! 78: FADDs fadds %f17, %f18, %f18
4230br_longdelay1_40_58:
4231 .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, <label_0x1>
4232 .word 0xbfe7c000 ! 79: SAVE_R save %r31, %r0, %r31
4233splash_lsu_40_59:
4234 nop
4235 ta T_CHANGE_HPRIV
4236 set 0x7bf6a65d, %r2
4237 mov 0x1, %r1
4238 sllx %r1, 32, %r1
4239 or %r1, %r2, %r2
4240 stxa %r2, [%r0] ASI_LSU_CONTROL
4241 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
4242 .word 0xa3b28594 ! 81: FCMPGT32 fcmpgt32 %d10, %d20, %r17
4243dvapa_40_60:
4244 nop
4245 ta T_CHANGE_HPRIV
4246 mov 0xeda, %r20
4247 mov 0xf, %r19
4248 sllx %r20, 23, %r20
4249 or %r19, %r20, %r19
4250 stxa %r19, [%g0] ASI_LSU_CONTROL
4251 mov 0x38, %r18
4252 stxa %r31, [%r18]0x58
4253 ta T_CHANGE_NONHPRIV
4254 .word 0xd51fc00b ! 82: LDDF_R ldd [%r31, %r11], %f10
4255 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
4256 .word 0xa345c000 ! 84: RD_TICK_CMPR_REG rd %-, %r17
4257 .word 0xa1902002 ! 85: WRPR_GL_I wrpr %r0, 0x0002, %-
4258trapasi_40_62:
4259 nop
4260 mov 0x8, %r1 ! (VA for ASI 0x5a)
4261 .word 0xe8d04b40 ! 86: LDSHA_R ldsha [%r1, %r0] 0x5a, %r20
4262brcommon3_40_63:
4263 nop
4264 setx common_target, %r12, %r27
4265 lduw [%r27], %r12 ! Load common dest into dcache ..
4266 ba,a .+12
4267 .word 0xe937e1c0 ! 1: STQF_I - %f20, [0x01c0, %r31]
4268 ba,a .+8
4269 jmpl %r27+0, %r27
4270 .word 0xc32fc010 ! 87: STXFSR_R st-sfr %f1, [%r16, %r31]
4271memptr_40_64:
4272 set 0x60540000, %r31
4273 .word 0x85816633 ! 88: WRCCR_I wr %r5, 0x0633, %ccr
4274brcommon1_40_65:
4275 nop
4276 setx common_target, %r12, %r27
4277 lduw [%r27], %r12 ! Load common dest into dcache ..
4278 ba,a .+12
4279 .word 0xa9b7c7d3 ! 1: PDIST pdistn %d62, %d50, %d20
4280 ba,a .+8
4281 jmpl %r27+0, %r27
4282 .word 0x99a4c9d3 ! 89: FDIVd fdivd %f50, %f50, %f12
4283 .word 0xa8c179b2 ! 90: ADDCcc_I addccc %r5, 0xfffff9b2, %r20
4284fpinit_40_66:
4285 nop
4286 setx fp_data_quads, %r19, %r20
4287 ldd [%r20], %f0
4288 ldd [%r20+8], %f4
4289 ld [%r20+16], %fsr
4290 ld [%r20+24], %r19
4291 wr %r19, %g0, %gsr
4292 .word 0x91b00484 ! 91: FCMPLE32 fcmple32 %d0, %d4, %r8
4293 nop
4294 ta T_CHANGE_HPRIV ! macro
4295donret_40_67:
4296 rd %pc, %r12
4297 add %r12, (donretarg_40_67-donret_40_67), %r12
4298 add %r12, 0x4, %r11 ! seq tnpc
4299 wrpr %g0, 0x2, %tl
4300 wrpr %g0, %r12, %tpc
4301 wrpr %g0, %r11, %tnpc
4302 set (0x00425800 | (0x88 << 24)), %r13
4303 and %r12, 0xfff, %r14
4304 sllx %r14, 30, %r14
4305 or %r13, %r14, %r20
4306 wrpr %r20, %g0, %tstate
4307 wrhpr %g0, 0x77f, %htstate
4308 ta T_CHANGE_NONPRIV ! rand=0 (40)
4309 .word 0x30800001 ! 1: BA ba,a <label_0x1>
4310 done
4311donretarg_40_67:
4312 .word 0xa1a2c9ca ! 92: FDIVd fdivd %f42, %f10, %f16
4313change_to_randtl_40_68:
4314 ta T_CHANGE_PRIV ! macro
4315done_change_to_randtl_40_68:
4316 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
4317 set 0x2159, %l3
4318 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
4319 .word 0x91b207d4 ! 94: PDIST pdistn %d8, %d20, %d8
4320 .word 0xda9fe010 ! 95: LDDA_I ldda [%r31, + 0x0010] %asi, %r13
4321splash_tba_40_70:
4322 nop
4323 ta T_CHANGE_PRIV
4324 setx 0x0000000400380000, %r11, %r12
4325 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
4326 setx 0x3d1f75cdca9ae9a7, %r1, %r28
4327 stxa %r28, [%g0] 0x73
4328intvec_40_71:
4329 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
4330memptr_40_72:
4331 set user_data_start, %r31
4332 .word 0x8584eeac ! 98: WRCCR_I wr %r19, 0x0eac, %ccr
4333fpinit_40_73:
4334 nop
4335 setx fp_data_quads, %r19, %r20
4336 ldd [%r20], %f0
4337 ldd [%r20+8], %f4
4338 ld [%r20+16], %fsr
4339 ld [%r20+24], %r19
4340 wr %r19, %g0, %gsr
4341 .word 0x8da009a4 ! 99: FDIVs fdivs %f0, %f4, %f6
4342intveclr_40_74:
4343 nop
4344 ta T_CHANGE_HPRIV
4345 setx 0xceb5bf0d12d465ba, %r1, %r28
4346 stxa %r28, [%g0] 0x72
4347 ta T_CHANGE_NONHPRIV
4348 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
4349 nop
4350 ta T_CHANGE_HPRIV ! macro
4351donret_40_75:
4352 rd %pc, %r12
4353 add %r12, (donretarg_40_75-donret_40_75+4), %r12
4354 add %r12, 0x4, %r11 ! seq tnpc
4355 wrpr %g0, 0x1, %tl
4356 wrpr %g0, %r12, %tpc
4357 wrpr %g0, %r11, %tnpc
4358 set (0x0068af00 | (32 << 24)), %r13
4359 and %r12, 0xfff, %r14
4360 sllx %r14, 30, %r14
4361 or %r13, %r14, %r20
4362 wrpr %r20, %g0, %tstate
4363 wrhpr %g0, 0x385, %htstate
4364 ta T_CHANGE_NONHPRIV ! rand=1 (40)
4365 done
4366donretarg_40_75:
4367 .word 0xa7a2c9d0 ! 101: FDIVd fdivd %f42, %f16, %f50
4368 .word 0x81dd0013 ! 102: FLUSH_R flush
4369ibp_40_76:
4370 nop
4371 ta T_CHANGE_HPRIV
4372 mov 8, %r18
4373 rd %asi, %r12
4374 wr %r0, 0x41, %asi
4375 set sync_thr_counter4, %r23
4376#ifndef SPC
4377 ldxa [%g0]0x63, %r8
4378 and %r8, 0x38, %r8 ! Core ID
4379 add %r8, %r23, %r23
4380#else
4381 mov 0, %r8
4382#endif
4383 mov 0x40, %r16
4384ibp_startwait40_76:
4385 cas [%r23],%g0,%r16 !lock
4386 brz,a %r16, continue_ibp_40_76
4387 mov (~0x40&0xf0), %r16
4388 ld [%r23], %r16
4389ibp_wait40_76:
4390 brnz %r16, ibp_wait40_76
4391 ld [%r23], %r16
4392 ba ibp_startwait40_76
4393 mov 0x40, %r16
4394continue_ibp_40_76:
4395 sllx %r16, %r8, %r16 !Mask for my core only
4396 ldxa [0x58]%asi, %r17 !Running_status
4397wait_for_stat_40_76:
4398 ldxa [0x50]%asi, %r13 !Running_rw
4399 cmp %r13, %r17
4400 bne,a %xcc, wait_for_stat_40_76
4401 ldxa [0x58]%asi, %r17 !Running_status
4402 stxa %r16, [0x68]%asi !Park (W1C)
4403 ldxa [0x50]%asi, %r14 !Running_rw
4404wait_for_ibp_40_76:
4405 ldxa [0x58]%asi, %r17 !Running_status
4406 cmp %r14, %r17
4407 bne,a %xcc, wait_for_ibp_40_76
4408 ldxa [0x50]%asi, %r14 !Running_rw
4409ibp_doit40_76:
4410 best_set_reg(0x000000403dc7cad8,%r19, %r20)
4411 stxa %r20, [%r18]0x42
4412 stxa %r16, [0x60] %asi !Unpark (W1S)
4413 st %g0, [%r23] !clear lock
4414 wr %r0, %r12, %asi !restore %asi
4415 .word 0xc19fe140 ! 103: LDDFA_I ldda [%r31, 0x0140], %f0
4416 .word 0xe89fe0f0 ! 104: LDDA_I ldda [%r31, + 0x00f0] %asi, %r20
4417 nop
4418 ta T_CHANGE_HPRIV ! macro
4419donret_40_77:
4420 rd %pc, %r12
4421 add %r12, (donretarg_40_77-donret_40_77+4), %r12
4422 add %r12, 0x4, %r11 ! seq tnpc
4423 wrpr %g0, 0x2, %tl
4424 wrpr %g0, %r12, %tpc
4425 wrpr %g0, %r11, %tnpc
4426 set (0x006d3700 | (0x82 << 24)), %r13
4427 and %r12, 0xfff, %r14
4428 sllx %r14, 30, %r14
4429 or %r13, %r14, %r20
4430 wrpr %r20, %g0, %tstate
4431 wrhpr %g0, 0x1c96, %htstate
4432 ta T_CHANGE_NONPRIV ! rand=0 (40)
4433 done
4434donretarg_40_77:
4435 .word 0xa7a4c9c9 ! 105: FDIVd fdivd %f50, %f40, %f50
4436 .word 0x8d903ca4 ! 106: WRPR_PSTATE_I wrpr %r0, 0x1ca4, %pstate
4437 .word 0x9953c000 ! 107: RDPR_FQ <illegal instruction>
4438 .word 0xab84fcd8 ! 108: WR_CLEAR_SOFTINT_I wr %r19, 0x1cd8, %clear_softint
4439 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
4440 .word 0xc1bfda00 ! 110: STDFA_R stda %f0, [%r0, %r31]
4441br_badelay3_40_80:
4442 .word 0x34800001 ! 1: BG bg,a <label_0x1>
4443 .word 0xa34bade1 ! Random illegal ?
4444 .word 0xa7a00546 ! 1: FSQRTd fsqrt
4445 .word 0xa3a28831 ! 111: FADDs fadds %f10, %f17, %f17
4446ibp_40_81:
4447 nop
4448 ta T_CHANGE_HPRIV
4449 mov 8, %r18
4450 rd %asi, %r12
4451 wr %r0, 0x41, %asi
4452 set sync_thr_counter4, %r23
4453#ifndef SPC
4454 ldxa [%g0]0x63, %r8
4455 and %r8, 0x38, %r8 ! Core ID
4456 add %r8, %r23, %r23
4457#else
4458 mov 0, %r8
4459#endif
4460 mov 0x40, %r16
4461ibp_startwait40_81:
4462 cas [%r23],%g0,%r16 !lock
4463 brz,a %r16, continue_ibp_40_81
4464 mov (~0x40&0xf0), %r16
4465 ld [%r23], %r16
4466ibp_wait40_81:
4467 brnz %r16, ibp_wait40_81
4468 ld [%r23], %r16
4469 ba ibp_startwait40_81
4470 mov 0x40, %r16
4471continue_ibp_40_81:
4472 sllx %r16, %r8, %r16 !Mask for my core only
4473 ldxa [0x58]%asi, %r17 !Running_status
4474wait_for_stat_40_81:
4475 ldxa [0x50]%asi, %r13 !Running_rw
4476 cmp %r13, %r17
4477 bne,a %xcc, wait_for_stat_40_81
4478 ldxa [0x58]%asi, %r17 !Running_status
4479 stxa %r16, [0x68]%asi !Park (W1C)
4480 ldxa [0x50]%asi, %r14 !Running_rw
4481wait_for_ibp_40_81:
4482 ldxa [0x58]%asi, %r17 !Running_status
4483 cmp %r14, %r17
4484 bne,a %xcc, wait_for_ibp_40_81
4485 ldxa [0x50]%asi, %r14 !Running_rw
4486ibp_doit40_81:
4487 best_set_reg(0x00000040a5cad8b9,%r19, %r20)
4488 stxa %r20, [%r18]0x42
4489 stxa %r16, [0x60] %asi !Unpark (W1S)
4490 st %g0, [%r23] !clear lock
4491 wr %r0, %r12, %asi !restore %asi
4492 ta T_CHANGE_NONHPRIV
4493 .word 0xd93fc011 ! 112: STDF_R std %f12, [%r17, %r31]
4494memptr_40_82:
4495 set 0x60740000, %r31
4496 .word 0x85853f4d ! 113: WRCCR_I wr %r20, 0x1f4d, %ccr
4497mondo_40_83:
4498 nop
4499 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
4500 ta T_CHANGE_PRIV
4501 stxa %r7, [%r0+0x3d0] %asi
4502 .word 0x9d920014 ! 114: WRPR_WSTATE_R wrpr %r8, %r20, %wstate
4503 .word 0x9b508000 ! 115: RDPR_TSTATE <illegal instruction>
4504splash_lsu_40_84:
4505 nop
4506 ta T_CHANGE_HPRIV
4507 set 0x67fda055, %r2
4508 mov 0x5, %r1
4509 sllx %r1, 32, %r1
4510 or %r1, %r2, %r2
4511 stxa %r2, [%r0] ASI_LSU_CONTROL
4512 ta T_CHANGE_NONHPRIV
4513 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
4514splash_cmpr_40_85:
4515 mov 0, %r18
4516 sllx %r18, 63, %r18
4517 rd %tick, %r17
4518 add %r17, 0x70, %r17
4519 or %r17, %r18, %r17
4520 ta T_CHANGE_PRIV
4521 .word 0xaf800011 ! 117: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
4522splash_hpstate_40_86:
4523 ta T_CHANGE_NONHPRIV
4524 .word 0x81983485 ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x1485, %hpstate
4525 .word 0xa1902002 ! 119: WRPR_GL_I wrpr %r0, 0x0002, %-
4526 nop
4527 ta T_CHANGE_HPRIV
4528 mov 0x40, %r10
4529 set sync_thr_counter6, %r23
4530#ifndef SPC
4531 ldxa [%g0]0x63, %o1
4532 and %o1, 0x38, %o1
4533 add %o1, %r23, %r23
4534#endif
4535 cas [%r23],%g0,%r10 !lock
4536 brnz %r10, sma_40_87
4537 rd %asi, %r12
4538 wr %g0, 0x40, %asi
4539 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
4540 set 0x000e1fff, %g1
4541 stxa %g1, [%g0 + 0x80] %asi
4542 wr %r12, %g0, %asi
4543 st %g0, [%r23]
4544sma_40_87:
4545 ta T_CHANGE_NONHPRIV
4546 .word 0xe1e7e009 ! 120: CASA_R casa [%r31] %asi, %r9, %r16
4547mondo_40_88:
4548 nop
4549 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
4550 stxa %r20, [%r0+0x3c8] %asi
4551 .word 0x9d910005 ! 121: WRPR_WSTATE_R wrpr %r4, %r5, %wstate
4552splash_lsu_40_89:
4553 nop
4554 ta T_CHANGE_HPRIV
4555 set 0xbc5c7b7e, %r2
4556 mov 0x2, %r1
4557 sllx %r1, 32, %r1
4558 or %r1, %r2, %r2
4559 stxa %r2, [%r0] ASI_LSU_CONTROL
4560 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
4561brcommon3_40_90:
4562 nop
4563 setx common_target, %r12, %r27
4564 lduw [%r27], %r12 ! Load common dest into dcache ..
4565 ba,a .+12
4566 .word 0xe1e7c02c ! 1: CASA_I casa [%r31] 0x 1, %r12, %r16
4567 ba,a .+8
4568 jmpl %r27+0, %r27
4569 .word 0xc32fc014 ! 123: STXFSR_R st-sfr %f1, [%r20, %r31]
4570dvapa_40_91:
4571 nop
4572 ta T_CHANGE_HPRIV
4573 mov 0xaf9, %r20
4574 mov 0x10, %r19
4575 sllx %r20, 23, %r20
4576 or %r19, %r20, %r19
4577 stxa %r19, [%g0] ASI_LSU_CONTROL
4578 mov 0x38, %r18
4579 stxa %r31, [%r18]0x58
4580 ta T_CHANGE_NONHPRIV
4581 .word 0xe19fe160 ! 124: LDDFA_I ldda [%r31, 0x0160], %f16
4582 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
4583 .word 0xe0dfc032 ! 126: LDXA_R ldxa [%r31, %r18] 0x01, %r16
4584 setx 0x2ccb201f1e6c9ca4, %r1, %r28
4585 stxa %r28, [%g0] 0x73
4586intvec_40_93:
4587 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
4588 .word 0x8d802000 ! 128: WRFPRS_I wr %r0, 0x0000, %fprs
4589 .word 0xe0d7e018 ! 129: LDSHA_I ldsha [%r31, + 0x0018] %asi, %r16
4590#if (defined SPC || defined CMP1)
4591!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_94) + 24, 16, 16)) -> intp(2,0,4)
4592#else
4593 setx 0xc461ae272473dd11, %r1, %r28
4594 stxa %r28, [%g0] 0x73
4595#endif
4596intvec_40_94:
4597 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
4598 .word 0x8d802004 ! 131: WRFPRS_I wr %r0, 0x0004, %fprs
4599 .word 0x8d90306f ! 132: WRPR_PSTATE_I wrpr %r0, 0x106f, %pstate
4600 .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, <label_0x1>
4601 .word 0x8d903903 ! 133: WRPR_PSTATE_I wrpr %r0, 0x1903, %pstate
4602 setx 0xdf9f3de2ab403e18, %r1, %r28
4603 stxa %r28, [%g0] 0x73
4604intvec_40_97:
4605 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
4606 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
4607reduce_priv_lvl_40_98:
4608 ta T_CHANGE_NONHPRIV ! macro
4609ibp_40_99:
4610 nop
4611 ta T_CHANGE_HPRIV
4612 mov 8, %r18
4613 rd %asi, %r12
4614 wr %r0, 0x41, %asi
4615 set sync_thr_counter4, %r23
4616#ifndef SPC
4617 ldxa [%g0]0x63, %r8
4618 and %r8, 0x38, %r8 ! Core ID
4619 add %r8, %r23, %r23
4620#else
4621 mov 0, %r8
4622#endif
4623 mov 0x40, %r16
4624ibp_startwait40_99:
4625 cas [%r23],%g0,%r16 !lock
4626 brz,a %r16, continue_ibp_40_99
4627 mov (~0x40&0xf0), %r16
4628 ld [%r23], %r16
4629ibp_wait40_99:
4630 brnz %r16, ibp_wait40_99
4631 ld [%r23], %r16
4632 ba ibp_startwait40_99
4633 mov 0x40, %r16
4634continue_ibp_40_99:
4635 sllx %r16, %r8, %r16 !Mask for my core only
4636 ldxa [0x58]%asi, %r17 !Running_status
4637wait_for_stat_40_99:
4638 ldxa [0x50]%asi, %r13 !Running_rw
4639 cmp %r13, %r17
4640 bne,a %xcc, wait_for_stat_40_99
4641 ldxa [0x58]%asi, %r17 !Running_status
4642 stxa %r16, [0x68]%asi !Park (W1C)
4643 ldxa [0x50]%asi, %r14 !Running_rw
4644wait_for_ibp_40_99:
4645 ldxa [0x58]%asi, %r17 !Running_status
4646 cmp %r14, %r17
4647 bne,a %xcc, wait_for_ibp_40_99
4648 ldxa [0x50]%asi, %r14 !Running_rw
4649ibp_doit40_99:
4650 best_set_reg(0x0000005034d8b98e,%r19, %r20)
4651 stxa %r20, [%r18]0x42
4652 stxa %r16, [0x60] %asi !Unpark (W1S)
4653 st %g0, [%r23] !clear lock
4654 wr %r0, %r12, %asi !restore %asi
4655 ta T_CHANGE_NONHPRIV
4656 .word 0xc3e98024 ! 136: PREFETCHA_R prefetcha [%r6, %r4] 0x01, #one_read
4657 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
4658change_to_randtl_40_101:
4659 ta T_CHANGE_HPRIV ! macro
4660done_change_to_randtl_40_101:
4661 .word 0x8f902001 ! 138: WRPR_TL_I wrpr %r0, 0x0001, %tl
4662splash_cmpr_40_102:
4663 mov 0, %r18
4664 sllx %r18, 63, %r18
4665 rd %tick, %r17
4666 add %r17, 0x50, %r17
4667 or %r17, %r18, %r17
4668 .word 0xb3800011 ! 139: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
4669 .word 0xe8cfe100 ! 140: LDSBA_I ldsba [%r31, + 0x0100] %asi, %r20
4670 nop
4671 ta T_CHANGE_HPRIV ! macro
4672donret_40_103:
4673 rd %pc, %r12
4674 add %r12, (donretarg_40_103-donret_40_103), %r12
4675 add %r12, 0x4, %r11 ! seq tnpc
4676 wrpr %g0, 0x2, %tl
4677 wrpr %g0, %r12, %tpc
4678 wrpr %g0, %r11, %tnpc
4679 set (0x00e4ed00 | (0x82 << 24)), %r13
4680 and %r12, 0xfff, %r14
4681 sllx %r14, 30, %r14
4682 or %r13, %r14, %r20
4683 wrpr %r20, %g0, %tstate
4684 wrhpr %g0, 0x125f, %htstate
4685 ta T_CHANGE_NONPRIV ! rand=0 (40)
4686 .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, <label_0x1>
4687 done
4688donretarg_40_103:
4689 .word 0xe86fe07d ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x007d]
4690trapasi_40_104:
4691 nop
4692 mov 0x38, %r1 ! (VA for ASI 0x5b)
4693 .word 0xe8c04b60 ! 142: LDSWA_R ldswa [%r1, %r0] 0x5b, %r20
4694fpinit_40_105:
4695 nop
4696 setx fp_data_quads, %r19, %r20
4697 ldd [%r20], %f0
4698 ldd [%r20+8], %f4
4699 ld [%r20+16], %fsr
4700 ld [%r20+24], %r19
4701 wr %r19, %g0, %gsr
4702 .word 0x91a009c4 ! 143: FDIVd fdivd %f0, %f4, %f8
4703 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
4704change_to_randtl_40_107:
4705 ta T_CHANGE_HPRIV ! macro
4706done_change_to_randtl_40_107:
4707 .word 0x8f902000 ! 145: WRPR_TL_I wrpr %r0, 0x0000, %tl
4708dvapa_40_108:
4709 nop
4710 ta T_CHANGE_HPRIV
4711 mov 0xa88, %r20
4712 mov 0x1c, %r19
4713 sllx %r20, 23, %r20
4714 or %r19, %r20, %r19
4715 stxa %r19, [%g0] ASI_LSU_CONTROL
4716 mov 0x38, %r18
4717 stxa %r31, [%r18]0x58
4718 ta T_CHANGE_NONHPRIV
4719 .word 0xe897c032 ! 146: LDUHA_R lduha [%r31, %r18] 0x01, %r20
4720 setx 0xf03cd93033b22db3, %r1, %r28
4721 stxa %r28, [%g0] 0x73
4722intvec_40_109:
4723 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
4724 .word 0xe8cfe060 ! 148: LDSBA_I ldsba [%r31, + 0x0060] %asi, %r20
4725 .word 0xa784400b ! 149: WR_GRAPHICS_STATUS_REG_R wr %r17, %r11, %-
4726 .word 0xe91fe060 ! 150: LDDF_I ldd [%r31, 0x0060], %f20
4727br_longdelay3_40_112:
4728 nop
4729 not %g0, %r12
4730 jmp %r12
4731 .word 0x99902005 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0005, %cleanwin
4732 .word 0xa1a00552 ! 152: FSQRTd fsqrt
4733 .word 0xc19fe000 ! 153: LDDFA_I ldda [%r31, 0x0000], %f0
4734splash_cmpr_40_113:
4735 mov 1, %r18
4736 sllx %r18, 63, %r18
4737 rd %tick, %r17
4738 add %r17, 0x60, %r17
4739 or %r17, %r18, %r17
4740 .word 0xb3800011 ! 154: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
4741 .word 0x879b4005 ! 155: WRHPR_HINTP_R wrhpr %r13, %r5, %hintp
4742 .word 0x9194800c ! 156: WRPR_PIL_R wrpr %r18, %r12, %pil
4743ibp_40_115:
4744 nop
4745 ta T_CHANGE_HPRIV
4746 mov 8, %r18
4747 rd %asi, %r12
4748 wr %r0, 0x41, %asi
4749 set sync_thr_counter4, %r23
4750#ifndef SPC
4751 ldxa [%g0]0x63, %r8
4752 and %r8, 0x38, %r8 ! Core ID
4753 add %r8, %r23, %r23
4754#else
4755 mov 0, %r8
4756#endif
4757 mov 0x40, %r16
4758ibp_startwait40_115:
4759 cas [%r23],%g0,%r16 !lock
4760 brz,a %r16, continue_ibp_40_115
4761 mov (~0x40&0xf0), %r16
4762 ld [%r23], %r16
4763ibp_wait40_115:
4764 brnz %r16, ibp_wait40_115
4765 ld [%r23], %r16
4766 ba ibp_startwait40_115
4767 mov 0x40, %r16
4768continue_ibp_40_115:
4769 sllx %r16, %r8, %r16 !Mask for my core only
4770 ldxa [0x58]%asi, %r17 !Running_status
4771wait_for_stat_40_115:
4772 ldxa [0x50]%asi, %r13 !Running_rw
4773 cmp %r13, %r17
4774 bne,a %xcc, wait_for_stat_40_115
4775 ldxa [0x58]%asi, %r17 !Running_status
4776 stxa %r16, [0x68]%asi !Park (W1C)
4777 ldxa [0x50]%asi, %r14 !Running_rw
4778wait_for_ibp_40_115:
4779 ldxa [0x58]%asi, %r17 !Running_status
4780 cmp %r14, %r17
4781 bne,a %xcc, wait_for_ibp_40_115
4782 ldxa [0x50]%asi, %r14 !Running_rw
4783ibp_doit40_115:
4784 best_set_reg(0x00000050bcf98e1e,%r19, %r20)
4785 stxa %r20, [%r18]0x42
4786 stxa %r16, [0x60] %asi !Unpark (W1S)
4787 st %g0, [%r23] !clear lock
4788 wr %r0, %r12, %asi !restore %asi
4789 .word 0xd73fc012 ! 157: STDF_R std %f11, [%r18, %r31]
4790fpinit_40_116:
4791 nop
4792 setx fp_data_quads, %r19, %r20
4793 ldd [%r20], %f0
4794 ldd [%r20+8], %f4
4795 ld [%r20+16], %fsr
4796 ld [%r20+24], %r19
4797 wr %r19, %g0, %gsr
4798 .word 0x87a80a44 ! 158: FCMPd fcmpd %fcc<n>, %f0, %f4
4799 nop
4800 ta T_CHANGE_HPRIV ! macro
4801donret_40_117:
4802 rd %pc, %r12
4803 add %r12, (donretarg_40_117-donret_40_117), %r12
4804 add %r12, 0x4, %r11 ! seq tnpc
4805 wrpr %g0, 0x2, %tl
4806 wrpr %g0, %r12, %tpc
4807 wrpr %g0, %r11, %tnpc
4808 set (0x00617000 | (0x80 << 24)), %r13
4809 and %r12, 0xfff, %r14
4810 sllx %r14, 30, %r14
4811 or %r13, %r14, %r20
4812 wrpr %r20, %g0, %tstate
4813 wrhpr %g0, 0xed5, %htstate
4814 ta T_CHANGE_NONPRIV ! rand=0 (40)
4815 done
4816donretarg_40_117:
4817 .word 0xd6ffe0c4 ! 159: SWAPA_I swapa %r11, [%r31 + 0x00c4] %asi
4818 .word 0xd6dfe1e8 ! 160: LDXA_I ldxa [%r31, + 0x01e8] %asi, %r11
4819jmptr_40_118:
4820 nop
4821 best_set_reg(0xe0200000, %r20, %r27)
4822 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
4823dvapa_40_119:
4824 nop
4825 ta T_CHANGE_HPRIV
4826 mov 0xeb2, %r20
4827 mov 0x5, %r19
4828 sllx %r20, 23, %r20
4829 or %r19, %r20, %r19
4830 stxa %r19, [%g0] ASI_LSU_CONTROL
4831 mov 0x38, %r18
4832 stxa %r31, [%r18]0x58
4833 ta T_CHANGE_NONHPRIV
4834 .word 0xa5b44490 ! 162: FCMPLE32 fcmple32 %d48, %d16, %r18
4835 .word 0xa982800b ! 163: WR_SET_SOFTINT_R wr %r10, %r11, %set_softint
4836 nop
4837 ta T_CHANGE_HPRIV ! macro
4838donret_40_120:
4839 rd %pc, %r12
4840 add %r12, (donretarg_40_120-donret_40_120+4), %r12
4841 add %r12, 0x4, %r11 ! seq tnpc
4842 wrpr %g0, 0x2, %tl
4843 wrpr %g0, %r12, %tpc
4844 wrpr %g0, %r11, %tnpc
4845 set (0x00db4300 | (0x55 << 24)), %r13
4846 and %r12, 0xfff, %r14
4847 sllx %r14, 30, %r14
4848 or %r13, %r14, %r20
4849 wrpr %r20, %g0, %tstate
4850 wrhpr %g0, 0xc8c, %htstate
4851 ta T_CHANGE_NONHPRIV ! rand=1 (40)
4852 retry
4853donretarg_40_120:
4854 .word 0x91a309c6 ! 164: FDIVd fdivd %f12, %f6, %f8
4855 nop
4856 ta T_CHANGE_HPRIV
4857 mov 0x40, %r10
4858 set sync_thr_counter6, %r23
4859#ifndef SPC
4860 ldxa [%g0]0x63, %o1
4861 and %o1, 0x38, %o1
4862 add %o1, %r23, %r23
4863#endif
4864 cas [%r23],%g0,%r10 !lock
4865 brnz %r10, sma_40_121
4866 rd %asi, %r12
4867 wr %g0, 0x40, %asi
4868 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
4869 set 0x000e1fff, %g1
4870 stxa %g1, [%g0 + 0x80] %asi
4871 wr %r12, %g0, %asi
4872 st %g0, [%r23]
4873sma_40_121:
4874 ta T_CHANGE_NONHPRIV
4875 .word 0xe9e7e014 ! 165: CASA_R casa [%r31] %asi, %r20, %r20
4876 .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, <label_0x1>
4877 .word 0x8d9034ac ! 166: WRPR_PSTATE_I wrpr %r0, 0x14ac, %pstate
4878 .word 0x8d802000 ! 167: WRFPRS_I wr %r0, 0x0000, %fprs
4879 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
4880 set 0x2cd8, %l3
4881 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
4882 .word 0xa9b047d1 ! 169: PDIST pdistn %d32, %d48, %d20
4883 .word 0xe11fe1a0 ! 170: LDDF_I ldd [%r31, 0x01a0], %f16
4884splash_hpstate_40_125:
4885 .word 0x81983bad ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x1bad, %hpstate
4886memptr_40_126:
4887 set user_data_start, %r31
4888 .word 0x8582bff0 ! 172: WRCCR_I wr %r10, 0x1ff0, %ccr
4889 .word 0x8d903165 ! 173: WRPR_PSTATE_I wrpr %r0, 0x1165, %pstate
4890splash_cmpr_40_128:
4891 mov 0, %r18
4892 sllx %r18, 63, %r18
4893 rd %tick, %r17
4894 add %r17, 0x80, %r17
4895 or %r17, %r18, %r17
4896 ta T_CHANGE_HPRIV
4897 wrhpr %r17, %g0, %hsys_tick_cmpr
4898 ta T_CHANGE_PRIV
4899 .word 0xb3800011 ! 174: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
4900 bgu,a skip_40_129
4901 fbge,a,pn %fcc0, skip_40_129
4902.align 512
4903skip_40_129:
4904 .word 0xe1e7c020 ! 175: CASA_I casa [%r31] 0x 1, %r0, %r16
4905brcommon2_40_130:
4906 nop
4907 setx common_target, %r12, %r27
4908 ba,a .+12
4909 .word 0xa1b7c70a ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f10, %d16
4910 ba,a .+8
4911 jmpl %r27+0, %r27
4912 .word 0xc19fe180 ! 176: LDDFA_I ldda [%r31, 0x0180], %f0
4913splash_cmpr_40_131:
4914 mov 0, %r18
4915 sllx %r18, 63, %r18
4916 rd %tick, %r17
4917 add %r17, 0x100, %r17
4918 or %r17, %r18, %r17
4919 ta T_CHANGE_HPRIV
4920 wrhpr %r17, %g0, %hsys_tick_cmpr
4921 .word 0xaf800011 ! 177: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
4922splash_cmpr_40_132:
4923 mov 0, %r18
4924 sllx %r18, 63, %r18
4925 rd %tick, %r17
4926 add %r17, 0x100, %r17
4927 or %r17, %r18, %r17
4928 ta T_CHANGE_HPRIV
4929 wrhpr %r17, %g0, %hsys_tick_cmpr
4930 ta T_CHANGE_PRIV
4931 .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
4932 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
4933 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
4934 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
4935memptr_40_135:
4936 set user_data_start, %r31
4937 .word 0x8584b0f9 ! 182: WRCCR_I wr %r18, 0x10f9, %ccr
4938memptr_40_136:
4939 set 0x60540000, %r31
4940 .word 0x8581ffbc ! 183: WRCCR_I wr %r7, 0x1fbc, %ccr
4941 .word 0xe677e1d2 ! 184: STX_I stx %r19, [%r31 + 0x01d2]
4942 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
4943fpinit_40_138:
4944 nop
4945 setx fp_data_quads, %r19, %r20
4946 ldd [%r20], %f0
4947 ldd [%r20+8], %f4
4948 ld [%r20+16], %fsr
4949 ld [%r20+24], %r19
4950 wr %r19, %g0, %gsr
4951 .word 0x91b00484 ! 186: FCMPLE32 fcmple32 %d0, %d4, %r8
4952 .word 0xe19fc3e0 ! 187: LDDFA_R ldda [%r31, %r0], %f16
4953fpinit_40_140:
4954 nop
4955 setx fp_data_quads, %r19, %r20
4956 ldd [%r20], %f0
4957 ldd [%r20+8], %f4
4958 ld [%r20+16], %fsr
4959 ld [%r20+24], %r19
4960 wr %r19, %g0, %gsr
4961 .word 0x91a009a4 ! 188: FDIVs fdivs %f0, %f4, %f8
4962ceter_40_141:
4963 nop
4964 ta T_CHANGE_HPRIV
4965 mov 7, %r17
4966 sllx %r17, 60, %r17
4967 mov 0x18, %r16
4968 stxa %r17, [%r16]0x4c
4969 ta T_CHANGE_NONHPRIV
4970 .word 0xa7410000 ! 189: RDTICK rd %tick, %r19
4971 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
4972 .word 0x8d802000 ! 191: WRFPRS_I wr %r0, 0x0000, %fprs
4973 nop
4974 ta T_CHANGE_HPRIV ! macro
4975donret_40_142:
4976 rd %pc, %r12
4977 add %r12, (donretarg_40_142-donret_40_142+4), %r12
4978 add %r12, 0x4, %r11 ! seq tnpc
4979 wrpr %g0, 0x1, %tl
4980 wrpr %g0, %r12, %tpc
4981 wrpr %g0, %r11, %tnpc
4982 set (0x00c4af00 | (0x58 << 24)), %r13
4983 and %r12, 0xfff, %r14
4984 sllx %r14, 30, %r14
4985 or %r13, %r14, %r20
4986 wrpr %r20, %g0, %tstate
4987 wrhpr %g0, 0x170e, %htstate
4988 ta T_CHANGE_NONPRIV ! rand=0 (40)
4989 retry
4990donretarg_40_142:
4991 .word 0xd2ffe0d7 ! 192: SWAPA_I swapa %r9, [%r31 + 0x00d7] %asi
4992 .word 0x879d0014 ! 193: WRHPR_HINTP_R wrhpr %r20, %r20, %hintp
4993splash_cmpr_40_143:
4994 mov 1, %r18
4995 sllx %r18, 63, %r18
4996 rd %tick, %r17
4997 add %r17, 0x70, %r17
4998 or %r17, %r18, %r17
4999 ta T_CHANGE_HPRIV
5000 wrhpr %r17, %g0, %hsys_tick_cmpr
5001 .word 0xb3800011 ! 194: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
5002 nop
5003 ta T_CHANGE_HPRIV
5004 mov 0x40+1, %r10
5005 set sync_thr_counter5, %r23
5006#ifndef SPC
5007 ldxa [%g0]0x63, %o1
5008 and %o1, 0x38, %o1
5009 add %o1, %r23, %r23
5010 sllx %o1, 5, %o3 !(CID*256)
5011#endif
5012 cas [%r23],%g0,%r10 !lock
5013 brnz %r10, cwq_40_144
5014 rd %asi, %r12
5015 wr %g0, 0x40, %asi
5016 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
5017 and %l1, 0x3, %l1 ! Check if busy/enabled ..
5018 cmp %l1, 1
5019 bne cwq_40_144
5020 set CWQ_BASE, %l6
5021#ifndef SPC
5022 add %l6, %o3, %l6
5023#endif
5024 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
5025 best_set_reg(0x20610000, %l1, %l2) !# Control Word
5026 sllx %l2, 32, %l2
5027 stx %l2, [%l6 + 0x0]
5028 membar #Sync
5029 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
5030 sub %l2, 0x40, %l2
5031 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
5032 wr %r12, %g0, %asi
5033 st %g0, [%r23]
5034cwq_40_144:
5035 ta T_CHANGE_NONHPRIV
5036 .word 0xa5414000 ! 195: RDPC rd %pc, %r18
5037br_badelay2_40_145:
5038 .word 0x34800001 ! 1: BG bg,a <label_0x1>
5039 pdist %f4, %f8, %f16
5040 .word 0xa5b34308 ! 196: ALIGNADDRESS alignaddr %r13, %r8, %r18
5041splash_tba_40_146:
5042 nop
5043 ta T_CHANGE_PRIV
5044 setx 0x0000000400380000, %r11, %r12
5045 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
5046 nop
5047 mov 0x80, %g3
5048 stxa %g3, [%g3] 0x57
5049 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
5050 .word 0x81460000 ! 199: RD_STICK_REG stbar
5051 .word 0xd01fe098 ! 200: LDD_I ldd [%r31 + 0x0098], %r8
5052 nop
5053 ta T_CHANGE_HPRIV
5054 mov 0x40+1, %r10
5055 set sync_thr_counter5, %r23
5056#ifndef SPC
5057 ldxa [%g0]0x63, %o1
5058 and %o1, 0x38, %o1
5059 add %o1, %r23, %r23
5060 sllx %o1, 5, %o3 !(CID*256)
5061#endif
5062 cas [%r23],%g0,%r10 !lock
5063 brnz %r10, cwq_40_147
5064 rd %asi, %r12
5065 wr %g0, 0x40, %asi
5066 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
5067 and %l1, 0x3, %l1 ! Check if busy/enabled ..
5068 cmp %l1, 1
5069 bne cwq_40_147
5070 set CWQ_BASE, %l6
5071#ifndef SPC
5072 add %l6, %o3, %l6
5073#endif
5074 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
5075 best_set_reg(0x20610000, %l1, %l2) !# Control Word
5076 sllx %l2, 32, %l2
5077 stx %l2, [%l6 + 0x0]
5078 membar #Sync
5079 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
5080 sub %l2, 0x40, %l2
5081 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
5082 wr %r12, %g0, %asi
5083 st %g0, [%r23]
5084cwq_40_147:
5085 ta T_CHANGE_NONHPRIV
5086 .word 0xa9414000 ! 201: RDPC rd %pc, %r20
5087 nop
5088 nop
5089 ta T_CHANGE_PRIV
5090 wrpr %g0, %g0, %gl
5091 nop
5092 nop
5093 setx join_lbl_0_0, %g1, %g2
5094 jmp %g2
5095 nop
5096fork_lbl_0_6:
5097 ta T_CHANGE_NONHPRIV
5098 nop
5099 ta T_CHANGE_HPRIV ! macro
5100donret_20_0:
5101 rd %pc, %r12
5102 add %r12, (donretarg_20_0-donret_20_0), %r12
5103 add %r12, 0x8, %r11 ! nonseq tnpc
5104 wrpr %g0, 0x2, %tl
5105 wrpr %g0, %r12, %tpc
5106 wrpr %g0, %r11, %tnpc
5107 set (0x00b1c100 | (0x58 << 24)), %r13
5108 and %r12, 0xfff, %r14
5109 sllx %r14, 30, %r14
5110 or %r13, %r14, %r20
5111 wrpr %r20, %g0, %tstate
5112 wrhpr %g0, 0x1a9b, %htstate
5113 ta T_CHANGE_NONPRIV ! rand=0 (20)
5114 retry
5115donretarg_20_0:
5116 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
5117reduce_priv_lvl_20_1:
5118 ta T_CHANGE_NONPRIV ! macro
5119change_to_randtl_20_2:
5120 ta T_CHANGE_PRIV ! macro
5121done_change_to_randtl_20_2:
5122 .word 0x8f902000 ! 2: WRPR_TL_I wrpr %r0, 0x0000, %tl
5123 .word 0xdadfe190 ! 3: LDXA_I ldxa [%r31, + 0x0190] %asi, %r13
5124 .word 0xda8008a0 ! 4: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
5125ibp_20_3:
5126 nop
5127 .word 0xc1bfd960 ! 5: STDFA_R stda %f0, [%r0, %r31]
5128intveclr_20_4:
5129 nop
5130 ta T_CHANGE_HPRIV
5131 setx 0xc6b47d022990d544, %r1, %r28
5132 stxa %r28, [%g0] 0x72
5133 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
5134 setx 0xa4dbb4b8c8b58049, %r1, %r28
5135 stxa %r28, [%g0] 0x73
5136intvec_20_5:
5137 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5138splash_tba_20_6:
5139 nop
5140 ta T_CHANGE_PRIV
5141 setx 0x00000004003a0000, %r11, %r12
5142 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
5143memptr_20_7:
5144 set 0x60540000, %r31
5145 .word 0x858130df ! 9: WRCCR_I wr %r4, 0x10df, %ccr
5146 .word 0xa1902006 ! 10: WRPR_GL_I wrpr %r0, 0x0006, %-
5147fpinit_20_8:
5148 nop
5149 setx fp_data_quads, %r19, %r20
5150 ldd [%r20], %f0
5151 ldd [%r20+8], %f4
5152 ld [%r20+16], %fsr
5153 ld [%r20+24], %r19
5154 wr %r19, %g0, %gsr
5155 .word 0x89a009c4 ! 11: FDIVd fdivd %f0, %f4, %f4
5156 .word 0xda800b80 ! 12: LDUWA_R lduwa [%r0, %r0] 0x5c, %r13
5157ibp_20_9:
5158 nop
5159 .word 0x87a88a49 ! 13: FCMPd fcmpd %fcc<n>, %f2, %f40
5160memptr_20_10:
5161 set 0x60340000, %r31
5162 .word 0x8584b0dc ! 14: WRCCR_I wr %r18, 0x10dc, %ccr
5163pmu_20_11:
5164 nop
5165 setx 0xfffffe12fffffc72, %g1, %g7
5166 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
5167 .word 0xe41fe1f8 ! 16: LDD_I ldd [%r31 + 0x01f8], %r18
5168 .word 0xe49fc2c0 ! 17: LDDA_R ldda [%r31, %r0] 0x16, %r18
5169brcommon2_20_12:
5170 nop
5171 setx common_target, %r12, %r27
5172 ba,a .+12
5173 .word 0x97a00552 ! 1: FSQRTd fsqrt
5174 ba,a .+8
5175 jmpl %r27+0, %r27
5176 .word 0xc1bfe160 ! 18: STDFA_I stda %f0, [0x0160, %r31]
5177intveclr_20_13:
5178 nop
5179 ta T_CHANGE_HPRIV
5180 setx 0xec1e8ef65a2a1267, %r1, %r28
5181 stxa %r28, [%g0] 0x72
5182 ta T_CHANGE_NONHPRIV
5183 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
5184intveclr_20_14:
5185 nop
5186 ta T_CHANGE_HPRIV
5187 setx 0x5b7879ef02cb3b8b, %r1, %r28
5188 stxa %r28, [%g0] 0x72
5189 ta T_CHANGE_NONHPRIV
5190 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
5191pmu_20_15:
5192 nop
5193 setx 0xfffff216fffff1db, %g1, %g7
5194 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
5195 .word 0xc368bd58 ! 22: PREFETCH_I prefetch [%r2 + 0xfffffd58], #one_read
5196 .word 0xa66c6ca4 ! 23: UDIVX_I udivx %r17, 0x0ca4, %r19
5197dvapa_20_17:
5198 nop
5199 ta T_CHANGE_HPRIV
5200 mov 0xeb9, %r20
5201 mov 0xe, %r19
5202 sllx %r20, 23, %r20
5203 or %r19, %r20, %r19
5204 stxa %r19, [%g0] ASI_LSU_CONTROL
5205 mov 0x38, %r18
5206 stxa %r31, [%r18]0x58
5207 ta T_CHANGE_NONHPRIV
5208 .word 0xe6bfc031 ! 24: STDA_R stda %r19, [%r31 + %r17] 0x01
5209splash_htba_20_18:
5210 nop
5211 ta T_CHANGE_HPRIV
5212 setx 0x00000002002a0000, %r11, %r12
5213 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
5214 .word 0xe797e080 ! 26: LDQFA_I - [%r31, 0x0080], %f19
5215 .word 0x30800001 ! 1: BA ba,a <label_0x1>
5216 .word 0x8d903a89 ! 27: WRPR_PSTATE_I wrpr %r0, 0x1a89, %pstate
5217 .word 0x9969c010 ! 28: SDIVX_R sdivx %r7, %r16, %r12
5218splash_hpstate_20_20:
5219 ta T_CHANGE_NONHPRIV
5220 .word 0x81982d04 ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x0d04, %hpstate
5221intveclr_20_21:
5222 nop
5223 ta T_CHANGE_HPRIV
5224 setx 0x71e13f786a2b7825, %r1, %r28
5225 stxa %r28, [%g0] 0x72
5226 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
5227#if (defined SPC || defined CMP1)
5228!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_22) + 40, 16, 16)) -> intp(5,0,30)
5229#else
5230 setx 0x7552560800a84ebc, %r1, %r28
5231 stxa %r28, [%g0] 0x73
5232#endif
5233intvec_20_22:
5234 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5235splash_tba_20_23:
5236 nop
5237 ta T_CHANGE_PRIV
5238 setx 0x00000004003a0000, %r11, %r12
5239 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
5240splash_lsu_20_24:
5241 nop
5242 ta T_CHANGE_HPRIV
5243 set 0x1386ad37, %r2
5244 mov 0x2, %r1
5245 sllx %r1, 32, %r1
5246 or %r1, %r2, %r2
5247 stxa %r2, [%r0] ASI_LSU_CONTROL
5248 ta T_CHANGE_NONHPRIV
5249 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
5250splash_hpstate_20_25:
5251 .word 0x22cc4001 ! 1: BRZ brz,a,pt %r17,<label_0xc4001>
5252 .word 0x81982e41 ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x0e41, %hpstate
5253pmu_20_26:
5254 nop
5255 ta T_CHANGE_PRIV
5256 setx 0xfffff928fffff0b6, %g1, %g7
5257 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
5258 .word 0xa1a049a5 ! 36: FDIVs fdivs %f1, %f5, %f16
5259jmptr_20_28:
5260 nop
5261 best_set_reg(0xe0a00000, %r20, %r27)
5262 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
5263 .word 0xa1a049a6 ! 38: FDIVs fdivs %f1, %f6, %f16
5264intveclr_20_30:
5265 nop
5266 ta T_CHANGE_HPRIV
5267 setx 0x2d433e280fe520ef, %r1, %r28
5268 stxa %r28, [%g0] 0x72
5269 ta T_CHANGE_NONHPRIV
5270 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
5271ibp_20_31:
5272 nop
5273 ta T_CHANGE_NONHPRIV
5274 .word 0xdbe7e014 ! 40: CASA_R casa [%r31] %asi, %r20, %r13
5275 invalw
5276 mov 0xb1, %r30
5277 .word 0x91d0001e ! 41: Tcc_R ta icc_or_xcc, %r0 + %r30
5278intveclr_20_32:
5279 nop
5280 ta T_CHANGE_HPRIV
5281 setx 0xcf28810c191ad117, %r1, %r28
5282 stxa %r28, [%g0] 0x72
5283 ta T_CHANGE_NONHPRIV
5284 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
5285ibp_20_33:
5286 nop
5287 .word 0xa1b2c481 ! 43: FCMPLE32 fcmple32 %d42, %d32, %r16
5288 .word 0xa1902006 ! 44: WRPR_GL_I wrpr %r0, 0x0006, %-
5289fpinit_20_34:
5290 nop
5291 setx fp_data_quads, %r19, %r20
5292 ldd [%r20], %f0
5293 ldd [%r20+8], %f4
5294 ld [%r20+16], %fsr
5295 ld [%r20+24], %r19
5296 wr %r19, %g0, %gsr
5297 .word 0x91a009c4 ! 45: FDIVd fdivd %f0, %f4, %f8
5298 .word 0x91904007 ! 46: WRPR_PIL_R wrpr %r1, %r7, %pil
5299 nop
5300 ta T_CHANGE_HPRIV ! macro
5301donret_20_36:
5302 rd %pc, %r12
5303 add %r12, (donretarg_20_36-donret_20_36+4), %r12
5304 add %r12, 0x4, %r11 ! seq tnpc
5305 wrpr %g0, 0x2, %tl
5306 wrpr %g0, %r12, %tpc
5307 wrpr %g0, %r11, %tnpc
5308 set (0x00eec300 | (0x88 << 24)), %r13
5309 and %r12, 0xfff, %r14
5310 sllx %r14, 30, %r14
5311 or %r13, %r14, %r20
5312 wrpr %r20, %g0, %tstate
5313 wrhpr %g0, 0x1717, %htstate
5314 ta T_CHANGE_NONPRIV ! rand=0 (20)
5315 .word 0x30800001 ! 1: BA ba,a <label_0x1>
5316 retry
5317donretarg_20_36:
5318 .word 0xe26fe15f ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x015f]
5319 .word 0xc19fda00 ! 48: LDDFA_R ldda [%r31, %r0], %f0
5320change_to_randtl_20_37:
5321 ta T_CHANGE_HPRIV ! macro
5322done_change_to_randtl_20_37:
5323 .word 0x8f902002 ! 49: WRPR_TL_I wrpr %r0, 0x0002, %tl
5324 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
5325 .word 0xe3e7c020 ! 51: CASA_I casa [%r31] 0x 1, %r0, %r17
5326intveclr_20_39:
5327 nop
5328 ta T_CHANGE_HPRIV
5329 setx 0x58def17e72eb78c4, %r1, %r28
5330 stxa %r28, [%g0] 0x72
5331 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
5332 .word 0x87afca52 ! 1: FCMPd fcmpd %fcc<n>, %f62, %f18
5333 .word 0x9f803f3b ! 53: SIR sir 0x1f3b
5334 .word 0xe337e022 ! 54: STQF_I - %f17, [0x0022, %r31]
5335dvapa_20_40:
5336 nop
5337 ta T_CHANGE_HPRIV
5338 mov 0x8fd, %r20
5339 mov 0x1d, %r19
5340 sllx %r20, 23, %r20
5341 or %r19, %r20, %r19
5342 stxa %r19, [%g0] ASI_LSU_CONTROL
5343 mov 0x38, %r18
5344 stxa %r31, [%r18]0x58
5345 ta T_CHANGE_NONHPRIV
5346 .word 0xe1bfe100 ! 55: STDFA_I stda %f16, [0x0100, %r31]
5347 .word 0xe22fe19a ! 56: STB_I stb %r17, [%r31 + 0x019a]
5348 setx 0x67afc26bdf814b5f, %r1, %r28
5349 stxa %r28, [%g0] 0x73
5350intvec_20_41:
5351 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5352brcommon2_20_42:
5353 nop
5354 setx common_target, %r12, %r27
5355 ba,a .+12
5356 .word 0xa9a509c5 ! 1: FDIVd fdivd %f20, %f36, %f20
5357 ba,a .+8
5358 jmpl %r27+0, %r27
5359 .word 0xe19fe100 ! 58: LDDFA_I ldda [%r31, 0x0100], %f16
5360jmptr_20_43:
5361 nop
5362 best_set_reg(0xe0a00000, %r20, %r27)
5363 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
5364memptr_20_44:
5365 set 0x60140000, %r31
5366 .word 0x8582fad9 ! 60: WRCCR_I wr %r11, 0x1ad9, %ccr
5367 nop
5368 ta T_CHANGE_HPRIV
5369 mov 0x20+1, %r10
5370 set sync_thr_counter5, %r23
5371#ifndef SPC
5372 ldxa [%g0]0x63, %o1
5373 and %o1, 0x38, %o1
5374 add %o1, %r23, %r23
5375 sllx %o1, 5, %o3 !(CID*256)
5376#endif
5377 cas [%r23],%g0,%r10 !lock
5378 brnz %r10, cwq_20_45
5379 rd %asi, %r12
5380 wr %g0, 0x40, %asi
5381 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
5382 and %l1, 0x3, %l1 ! Check if busy/enabled ..
5383 cmp %l1, 1
5384 bne cwq_20_45
5385 set CWQ_BASE, %l6
5386#ifndef SPC
5387 add %l6, %o3, %l6
5388#endif
5389 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
5390 best_set_reg(0x20610040, %l1, %l2) !# Control Word
5391 sllx %l2, 32, %l2
5392 stx %l2, [%l6 + 0x0]
5393 membar #Sync
5394 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
5395 sub %l2, 0x40, %l2
5396 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
5397 wr %r12, %g0, %asi
5398 st %g0, [%r23]
5399cwq_20_45:
5400 ta T_CHANGE_NONHPRIV
5401 .word 0x99414000 ! 61: RDPC rd %pc, %r12
5402fpinit_20_46:
5403 nop
5404 setx fp_data_quads, %r19, %r20
5405 ldd [%r20], %f0
5406 ldd [%r20+8], %f4
5407 ld [%r20+16], %fsr
5408 ld [%r20+24], %r19
5409 wr %r19, %g0, %gsr
5410 .word 0x8db00484 ! 62: FCMPLE32 fcmple32 %d0, %d4, %r6
5411 .word 0x93d02034 ! 63: Tcc_I tne icc_or_xcc, %r0 + 52
5412 .word 0x93a509cb ! 64: FDIVd fdivd %f20, %f42, %f40
5413 nop
5414 ta T_CHANGE_HPRIV
5415 mov 0x20, %r10
5416 set sync_thr_counter6, %r23
5417#ifndef SPC
5418 ldxa [%g0]0x63, %o1
5419 and %o1, 0x38, %o1
5420 add %o1, %r23, %r23
5421#endif
5422 cas [%r23],%g0,%r10 !lock
5423 brnz %r10, sma_20_48
5424 rd %asi, %r12
5425 wr %g0, 0x40, %asi
5426 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
5427 set 0x00161fff, %g1
5428 stxa %g1, [%g0 + 0x80] %asi
5429 wr %r12, %g0, %asi
5430 st %g0, [%r23]
5431sma_20_48:
5432 ta T_CHANGE_NONHPRIV
5433 .word 0xe5e7e008 ! 65: CASA_R casa [%r31] %asi, %r8, %r18
5434 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
5435 .word 0xe537e029 ! 67: STQF_I - %f18, [0x0029, %r31]
5436 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
5437reduce_priv_lvl_20_49:
5438 ta T_CHANGE_NONHPRIV ! macro
5439trapasi_20_50:
5440 nop
5441 mov 0x3d0, %r1 ! (VA for ASI 0x25)
5442 .word 0xe4d044a0 ! 69: LDSHA_R ldsha [%r1, %r0] 0x25, %r18
5443splash_tba_20_51:
5444 nop
5445 ta T_CHANGE_PRIV
5446 setx 0x00000004003a0000, %r11, %r12
5447 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
5448dvapa_20_52:
5449 nop
5450 ta T_CHANGE_HPRIV
5451 mov 0xb45, %r20
5452 mov 0x17, %r19
5453 sllx %r20, 23, %r20
5454 or %r19, %r20, %r19
5455 stxa %r19, [%g0] ASI_LSU_CONTROL
5456 mov 0x38, %r18
5457 stxa %r31, [%r18]0x58
5458 ta T_CHANGE_NONHPRIV
5459 .word 0xe4dfc02d ! 71: LDXA_R ldxa [%r31, %r13] 0x01, %r18
5460 .word 0xa948c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r20
5461 nop
5462 ta T_CHANGE_HPRIV
5463 mov 0x20, %r10
5464 set sync_thr_counter6, %r23
5465#ifndef SPC
5466 ldxa [%g0]0x63, %o1
5467 and %o1, 0x38, %o1
5468 add %o1, %r23, %r23
5469#endif
5470 cas [%r23],%g0,%r10 !lock
5471 brnz %r10, sma_20_53
5472 rd %asi, %r12
5473 wr %g0, 0x40, %asi
5474 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
5475 set 0x00121fff, %g1
5476 stxa %g1, [%g0 + 0x80] %asi
5477 wr %r12, %g0, %asi
5478 st %g0, [%r23]
5479sma_20_53:
5480 ta T_CHANGE_NONHPRIV
5481 .word 0xe9e7e012 ! 73: CASA_R casa [%r31] %asi, %r18, %r20
5482mondo_20_54:
5483 nop
5484 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
5485 ta T_CHANGE_PRIV
5486 stxa %r6, [%r0+0x3c8] %asi
5487 .word 0x9d934014 ! 74: WRPR_WSTATE_R wrpr %r13, %r20, %wstate
5488intveclr_20_55:
5489 nop
5490 ta T_CHANGE_HPRIV
5491 setx 0x6af123bcb2ed29e2, %r1, %r28
5492 stxa %r28, [%g0] 0x72
5493 ta T_CHANGE_NONHPRIV
5494 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
5495 .word 0xe937e1c8 ! 76: STQF_I - %f20, [0x01c8, %r31]
5496splash_hpstate_20_56:
5497 ta T_CHANGE_NONHPRIV
5498 .word 0x34800001 ! 1: BG bg,a <label_0x1>
5499 .word 0x81982d4d ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x0d4d, %hpstate
5500br_badelay3_20_57:
5501 .word 0x20800001 ! 1: BN bn,a <label_0x1>
5502 .word 0x22800001 ! 1: BE be,a <label_0x1>
5503 .word 0xa1a209d3 ! 1: FDIVd fdivd %f8, %f50, %f16
5504 .word 0x95a14823 ! 78: FADDs fadds %f5, %f3, %f10
5505br_longdelay1_20_58:
5506 .word 0x36800001 ! 1: BGE bge,a <label_0x1>
5507 .word 0xbfe7c000 ! 79: SAVE_R save %r31, %r0, %r31
5508splash_lsu_20_59:
5509 nop
5510 ta T_CHANGE_HPRIV
5511 set 0xcc0bb27e, %r2
5512 mov 0x4, %r1
5513 sllx %r1, 32, %r1
5514 or %r1, %r2, %r2
5515 stxa %r2, [%r0] ASI_LSU_CONTROL
5516 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
5517 .word 0xa7b50585 ! 81: FCMPGT32 fcmpgt32 %d20, %d36, %r19
5518dvapa_20_60:
5519 nop
5520 ta T_CHANGE_HPRIV
5521 mov 0xa89, %r20
5522 mov 0x15, %r19
5523 sllx %r20, 23, %r20
5524 or %r19, %r20, %r19
5525 stxa %r19, [%g0] ASI_LSU_CONTROL
5526 mov 0x38, %r18
5527 stxa %r31, [%r18]0x58
5528 ta T_CHANGE_NONHPRIV
5529 .word 0xd497c030 ! 82: LDUHA_R lduha [%r31, %r16] 0x01, %r10
5530 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
5531 .word 0xa145c000 ! 84: RD_TICK_CMPR_REG rd %-, %r16
5532 .word 0xa190200f ! 85: WRPR_GL_I wrpr %r0, 0x000f, %-
5533trapasi_20_62:
5534 nop
5535 mov 0x8, %r1 ! (VA for ASI 0x5a)
5536 .word 0xe8c04b40 ! 86: LDSWA_R ldswa [%r1, %r0] 0x5a, %r20
5537brcommon3_20_63:
5538 nop
5539 setx common_target, %r12, %r27
5540 lduw [%r27], %r12 ! Load common dest into dcache ..
5541 ba,a .+12
5542 .word 0xe937e1d0 ! 1: STQF_I - %f20, [0x01d0, %r31]
5543 ba,a .+8
5544 jmpl %r27+0, %r27
5545 .word 0xe91fe0a0 ! 87: LDDF_I ldd [%r31, 0x00a0], %f20
5546memptr_20_64:
5547 set 0x60740000, %r31
5548 .word 0x8581368b ! 88: WRCCR_I wr %r4, 0x168b, %ccr
5549brcommon1_20_65:
5550 nop
5551 setx common_target, %r12, %r27
5552 lduw [%r27], %r12 ! Load common dest into dcache ..
5553 ba,a .+12
5554 .word 0xa9b7c7cd ! 1: PDIST pdistn %d62, %d44, %d20
5555 ba,a .+8
5556 jmpl %r27+0, %r27
5557 .word 0xa7b44491 ! 89: FCMPLE32 fcmple32 %d48, %d48, %r19
5558 .word 0xa2c4b1ed ! 90: ADDCcc_I addccc %r18, 0xfffff1ed, %r17
5559fpinit_20_66:
5560 nop
5561 setx fp_data_quads, %r19, %r20
5562 ldd [%r20], %f0
5563 ldd [%r20+8], %f4
5564 ld [%r20+16], %fsr
5565 ld [%r20+24], %r19
5566 wr %r19, %g0, %gsr
5567 .word 0x8da009a4 ! 91: FDIVs fdivs %f0, %f4, %f6
5568 nop
5569 ta T_CHANGE_HPRIV ! macro
5570donret_20_67:
5571 rd %pc, %r12
5572 add %r12, (donretarg_20_67-donret_20_67), %r12
5573 add %r12, 0x4, %r11 ! seq tnpc
5574 wrpr %g0, 0x1, %tl
5575 wrpr %g0, %r12, %tpc
5576 wrpr %g0, %r11, %tnpc
5577 set (0x00aed500 | (0x58 << 24)), %r13
5578 and %r12, 0xfff, %r14
5579 sllx %r14, 30, %r14
5580 or %r13, %r14, %r20
5581 wrpr %r20, %g0, %tstate
5582 wrhpr %g0, 0x10d1, %htstate
5583 ta T_CHANGE_NONPRIV ! rand=0 (20)
5584 .word 0x38800001 ! 1: BGU bgu,a <label_0x1>
5585 done
5586donretarg_20_67:
5587 .word 0xa9a489d1 ! 92: FDIVd fdivd %f18, %f48, %f20
5588change_to_randtl_20_68:
5589 ta T_CHANGE_PRIV ! macro
5590done_change_to_randtl_20_68:
5591 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
5592 set 0xc1d, %l3
5593 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
5594 .word 0xa1b507d3 ! 94: PDIST pdistn %d20, %d50, %d16
5595 .word 0xda9fe1b0 ! 95: LDDA_I ldda [%r31, + 0x01b0] %asi, %r13
5596splash_tba_20_70:
5597 nop
5598 ta T_CHANGE_PRIV
5599 setx 0x00000004003a0000, %r11, %r12
5600 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
5601 setx 0x1c3e6f9f4812fb7a, %r1, %r28
5602 stxa %r28, [%g0] 0x73
5603intvec_20_71:
5604 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5605memptr_20_72:
5606 set user_data_start, %r31
5607 .word 0x85853a29 ! 98: WRCCR_I wr %r20, 0x1a29, %ccr
5608fpinit_20_73:
5609 nop
5610 setx fp_data_quads, %r19, %r20
5611 ldd [%r20], %f0
5612 ldd [%r20+8], %f4
5613 ld [%r20+16], %fsr
5614 ld [%r20+24], %r19
5615 wr %r19, %g0, %gsr
5616 .word 0x91a009c4 ! 99: FDIVd fdivd %f0, %f4, %f8
5617intveclr_20_74:
5618 nop
5619 ta T_CHANGE_HPRIV
5620 setx 0x454b94f7c2709d8c, %r1, %r28
5621 stxa %r28, [%g0] 0x72
5622 ta T_CHANGE_NONHPRIV
5623 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
5624 nop
5625 ta T_CHANGE_HPRIV ! macro
5626donret_20_75:
5627 rd %pc, %r12
5628 add %r12, (donretarg_20_75-donret_20_75+4), %r12
5629 add %r12, 0x4, %r11 ! seq tnpc
5630 wrpr %g0, 0x1, %tl
5631 wrpr %g0, %r12, %tpc
5632 wrpr %g0, %r11, %tnpc
5633 set (0x008a7100 | (0x4f << 24)), %r13
5634 and %r12, 0xfff, %r14
5635 sllx %r14, 30, %r14
5636 or %r13, %r14, %r20
5637 wrpr %r20, %g0, %tstate
5638 wrhpr %g0, 0x1257, %htstate
5639 ta T_CHANGE_NONHPRIV ! rand=1 (20)
5640 done
5641donretarg_20_75:
5642 .word 0xa5a489d3 ! 101: FDIVd fdivd %f18, %f50, %f18
5643 .word 0x81dd0014 ! 102: FLUSH_R flush
5644ibp_20_76:
5645 nop
5646 .word 0xe19fe180 ! 103: LDDFA_I ldda [%r31, 0x0180], %f16
5647 .word 0xe89fe090 ! 104: LDDA_I ldda [%r31, + 0x0090] %asi, %r20
5648 nop
5649 ta T_CHANGE_HPRIV ! macro
5650donret_20_77:
5651 rd %pc, %r12
5652 add %r12, (donretarg_20_77-donret_20_77+4), %r12
5653 add %r12, 0x4, %r11 ! seq tnpc
5654 wrpr %g0, 0x2, %tl
5655 wrpr %g0, %r12, %tpc
5656 wrpr %g0, %r11, %tnpc
5657 set (0x00c3aa00 | (16 << 24)), %r13
5658 and %r12, 0xfff, %r14
5659 sllx %r14, 30, %r14
5660 or %r13, %r14, %r20
5661 wrpr %r20, %g0, %tstate
5662 wrhpr %g0, 0xc96, %htstate
5663 ta T_CHANGE_NONPRIV ! rand=0 (20)
5664 done
5665donretarg_20_77:
5666 .word 0xa1a489d3 ! 105: FDIVd fdivd %f18, %f50, %f16
5667 .word 0x8d90317b ! 106: WRPR_PSTATE_I wrpr %r0, 0x117b, %pstate
5668 .word 0xa353c000 ! 107: RDPR_FQ <illegal instruction>
5669 .word 0xab842312 ! 108: WR_CLEAR_SOFTINT_I wr %r16, 0x0312, %clear_softint
5670invtsb_20_79:
5671 nop
5672 ta T_CHANGE_HPRIV
5673 rd %asi, %r21
5674 wr %r0,ASI_MMU_REAL_RANGE, %asi
5675 mov 1, %r20
5676 sllx %r20, 63, %r20
5677 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22
5678 xor %r22 ,%r20, %r22
5679 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi
5680 ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22
5681 xor %r22 ,%r20, %r22
5682 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi
5683 ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22
5684 xor %r22 ,%r20, %r22
5685 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi
5686 ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22
5687 xor %r22 ,%r20, %r22
5688 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi
5689 wr %r21, %r0, %asi
5690 ta T_CHANGE_NONHPRIV
5691 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
5692 .word 0xc1bfdb60 ! 110: STDFA_R stda %f0, [%r0, %r31]
5693br_badelay3_20_80:
5694 .word 0x34800001 ! 1: BG bg,a <label_0x1>
5695 .word 0xb971c313 ! Random illegal ?
5696 .word 0x9ba00551 ! 1: FSQRTd fsqrt
5697 .word 0x99a4882d ! 111: FADDs fadds %f18, %f13, %f12
5698ibp_20_81:
5699 nop
5700 ta T_CHANGE_NONHPRIV
5701 .word 0xd897c033 ! 112: LDUHA_R lduha [%r31, %r19] 0x01, %r12
5702memptr_20_82:
5703 set 0x60740000, %r31
5704 .word 0x8584fc12 ! 113: WRCCR_I wr %r19, 0x1c12, %ccr
5705mondo_20_83:
5706 nop
5707 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
5708 ta T_CHANGE_PRIV
5709 stxa %r4, [%r0+0x3d0] %asi
5710 .word 0x9d91000b ! 114: WRPR_WSTATE_R wrpr %r4, %r11, %wstate
5711 .word 0x93508000 ! 115: RDPR_TSTATE <illegal instruction>
5712splash_lsu_20_84:
5713 nop
5714 ta T_CHANGE_HPRIV
5715 set 0x66e7f617, %r2
5716 mov 0x1, %r1
5717 sllx %r1, 32, %r1
5718 or %r1, %r2, %r2
5719 stxa %r2, [%r0] ASI_LSU_CONTROL
5720 ta T_CHANGE_NONHPRIV
5721 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
5722splash_cmpr_20_85:
5723 mov 0, %r18
5724 sllx %r18, 63, %r18
5725 rd %tick, %r17
5726 add %r17, 0x60, %r17
5727 or %r17, %r18, %r17
5728 ta T_CHANGE_PRIV
5729 .word 0xb3800011 ! 117: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
5730splash_hpstate_20_86:
5731 ta T_CHANGE_NONHPRIV
5732 .word 0x81983f4f ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x1f4f, %hpstate
5733 .word 0xa1902000 ! 119: WRPR_GL_I wrpr %r0, 0x0000, %-
5734 nop
5735 ta T_CHANGE_HPRIV
5736 mov 0x20, %r10
5737 set sync_thr_counter6, %r23
5738#ifndef SPC
5739 ldxa [%g0]0x63, %o1
5740 and %o1, 0x38, %o1
5741 add %o1, %r23, %r23
5742#endif
5743 cas [%r23],%g0,%r10 !lock
5744 brnz %r10, sma_20_87
5745 rd %asi, %r12
5746 wr %g0, 0x40, %asi
5747 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
5748 set 0x00161fff, %g1
5749 stxa %g1, [%g0 + 0x80] %asi
5750 wr %r12, %g0, %asi
5751 st %g0, [%r23]
5752sma_20_87:
5753 ta T_CHANGE_NONHPRIV
5754 .word 0xe1e7e008 ! 120: CASA_R casa [%r31] %asi, %r8, %r16
5755mondo_20_88:
5756 nop
5757 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
5758 stxa %r5, [%r0+0x3d8] %asi
5759 .word 0x9d91400c ! 121: WRPR_WSTATE_R wrpr %r5, %r12, %wstate
5760splash_lsu_20_89:
5761 nop
5762 ta T_CHANGE_HPRIV
5763 set 0x07d2cb45, %r2
5764 mov 0x4, %r1
5765 sllx %r1, 32, %r1
5766 or %r1, %r2, %r2
5767 stxa %r2, [%r0] ASI_LSU_CONTROL
5768 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
5769brcommon3_20_90:
5770 nop
5771 setx common_target, %r12, %r27
5772 lduw [%r27], %r12 ! Load common dest into dcache ..
5773 ba,a .+12
5774 .word 0xe1e7c032 ! 1: CASA_I casa [%r31] 0x 1, %r18, %r16
5775 ba,a .+8
5776 jmpl %r27+0, %r27
5777 .word 0xe03fe1d0 ! 123: STD_I std %r16, [%r31 + 0x01d0]
5778dvapa_20_91:
5779 nop
5780 ta T_CHANGE_HPRIV
5781 mov 0x8aa, %r20
5782 mov 0x17, %r19
5783 sllx %r20, 23, %r20
5784 or %r19, %r20, %r19
5785 stxa %r19, [%g0] ASI_LSU_CONTROL
5786 mov 0x38, %r18
5787 stxa %r31, [%r18]0x58
5788 ta T_CHANGE_NONHPRIV
5789 .word 0xe19fd920 ! 124: LDDFA_R ldda [%r31, %r0], %f16
5790 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
5791 .word 0xe13fc00c ! 126: STDF_R std %f16, [%r12, %r31]
5792 setx 0x8735f19c2bee026f, %r1, %r28
5793 stxa %r28, [%g0] 0x73
5794intvec_20_93:
5795 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5796 .word 0x8d802000 ! 128: WRFPRS_I wr %r0, 0x0000, %fprs
5797 .word 0xe0d7e0f8 ! 129: LDSHA_I ldsha [%r31, + 0x00f8] %asi, %r16
5798#if (defined SPC || defined CMP1)
5799!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_94) + 24, 16, 16)) -> intp(3,0,4)
5800#else
5801 setx 0x1a2a9884b1a8f4b7, %r1, %r28
5802 stxa %r28, [%g0] 0x73
5803#endif
5804intvec_20_94:
5805 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5806 .word 0x8d802004 ! 131: WRFPRS_I wr %r0, 0x0004, %fprs
5807 .word 0x8d9033fb ! 132: WRPR_PSTATE_I wrpr %r0, 0x13fb, %pstate
5808 .word 0x20800001 ! 1: BN bn,a <label_0x1>
5809 .word 0x8d9035d3 ! 133: WRPR_PSTATE_I wrpr %r0, 0x15d3, %pstate
5810 setx 0x997f939c2dd01847, %r1, %r28
5811 stxa %r28, [%g0] 0x73
5812intvec_20_97:
5813 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5814 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
5815reduce_priv_lvl_20_98:
5816 ta T_CHANGE_NONHPRIV ! macro
5817ibp_20_99:
5818 nop
5819 ta T_CHANGE_NONHPRIV
5820 .word 0x91a1c9d1 ! 136: FDIVd fdivd %f38, %f48, %f8
5821 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
5822change_to_randtl_20_101:
5823 ta T_CHANGE_HPRIV ! macro
5824done_change_to_randtl_20_101:
5825 .word 0x8f902001 ! 138: WRPR_TL_I wrpr %r0, 0x0001, %tl
5826splash_cmpr_20_102:
5827 mov 0, %r18
5828 sllx %r18, 63, %r18
5829 rd %tick, %r17
5830 add %r17, 0x60, %r17
5831 or %r17, %r18, %r17
5832 .word 0xaf800011 ! 139: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
5833 .word 0xe8cfe0f8 ! 140: LDSBA_I ldsba [%r31, + 0x00f8] %asi, %r20
5834 nop
5835 ta T_CHANGE_HPRIV ! macro
5836donret_20_103:
5837 rd %pc, %r12
5838 add %r12, (donretarg_20_103-donret_20_103), %r12
5839 add %r12, 0x4, %r11 ! seq tnpc
5840 wrpr %g0, 0x1, %tl
5841 wrpr %g0, %r12, %tpc
5842 wrpr %g0, %r11, %tnpc
5843 set (0x00ca1e00 | (4 << 24)), %r13
5844 and %r12, 0xfff, %r14
5845 sllx %r14, 30, %r14
5846 or %r13, %r14, %r20
5847 wrpr %r20, %g0, %tstate
5848 wrhpr %g0, 0x1ecc, %htstate
5849 ta T_CHANGE_NONPRIV ! rand=0 (20)
5850 .word 0x38800001 ! 1: BGU bgu,a <label_0x1>
5851 done
5852donretarg_20_103:
5853 .word 0xe86fe076 ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x0076]
5854trapasi_20_104:
5855 nop
5856 mov 0x8, %r1 ! (VA for ASI 0x5b)
5857 .word 0xe8c84b60 ! 142: LDSBA_R ldsba [%r1, %r0] 0x5b, %r20
5858fpinit_20_105:
5859 nop
5860 setx fp_data_quads, %r19, %r20
5861 ldd [%r20], %f0
5862 ldd [%r20+8], %f4
5863 ld [%r20+16], %fsr
5864 ld [%r20+24], %r19
5865 wr %r19, %g0, %gsr
5866 .word 0x8db00484 ! 143: FCMPLE32 fcmple32 %d0, %d4, %r6
5867 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
5868change_to_randtl_20_107:
5869 ta T_CHANGE_HPRIV ! macro
5870done_change_to_randtl_20_107:
5871 .word 0x8f902001 ! 145: WRPR_TL_I wrpr %r0, 0x0001, %tl
5872dvapa_20_108:
5873 nop
5874 ta T_CHANGE_HPRIV
5875 mov 0x869, %r20
5876 mov 0x18, %r19
5877 sllx %r20, 23, %r20
5878 or %r19, %r20, %r19
5879 stxa %r19, [%g0] ASI_LSU_CONTROL
5880 mov 0x38, %r18
5881 stxa %r31, [%r18]0x58
5882 ta T_CHANGE_NONHPRIV
5883 .word 0xe8bfc02b ! 146: STDA_R stda %r20, [%r31 + %r11] 0x01
5884 setx 0x31aec3048d8f06e9, %r1, %r28
5885 stxa %r28, [%g0] 0x73
5886intvec_20_109:
5887 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
5888 .word 0xe8cfe020 ! 148: LDSBA_I ldsba [%r31, + 0x0020] %asi, %r20
5889splash_decr_20_110:
5890 nop
5891 ta T_CHANGE_HPRIV
5892 mov 8, %r1
5893 stxa %r0, [%r1] 0x45
5894 .word 0xa7848012 ! 149: WR_GRAPHICS_STATUS_REG_R wr %r18, %r18, %-
5895 .word 0xe93fc014 ! 150: STDF_R std %f20, [%r20, %r31]
5896br_longdelay3_20_112:
5897 nop
5898 not %g0, %r12
5899 jmp %r12
5900 .word 0x99902002 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0002, %cleanwin
5901 .word 0x93a00553 ! 152: FSQRTd fsqrt
5902 .word 0xc19fe060 ! 153: LDDFA_I ldda [%r31, 0x0060], %f0
5903splash_cmpr_20_113:
5904 mov 0, %r18
5905 sllx %r18, 63, %r18
5906 rd %tick, %r17
5907 add %r17, 0x70, %r17
5908 or %r17, %r18, %r17
5909 .word 0xaf800011 ! 154: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
5910 .word 0x879d0011 ! 155: WRHPR_HINTP_R wrhpr %r20, %r17, %hintp
5911 .word 0x91920010 ! 156: WRPR_PIL_R wrpr %r8, %r16, %pil
5912ibp_20_115:
5913 nop
5914 .word 0xd6dfc030 ! 157: LDXA_R ldxa [%r31, %r16] 0x01, %r11
5915fpinit_20_116:
5916 nop
5917 setx fp_data_quads, %r19, %r20
5918 ldd [%r20], %f0
5919 ldd [%r20+8], %f4
5920 ld [%r20+16], %fsr
5921 ld [%r20+24], %r19
5922 wr %r19, %g0, %gsr
5923 .word 0x87a80a44 ! 158: FCMPd fcmpd %fcc<n>, %f0, %f4
5924 nop
5925 ta T_CHANGE_HPRIV ! macro
5926donret_20_117:
5927 rd %pc, %r12
5928 add %r12, (donretarg_20_117-donret_20_117), %r12
5929 add %r12, 0x4, %r11 ! seq tnpc
5930 wrpr %g0, 0x1, %tl
5931 wrpr %g0, %r12, %tpc
5932 wrpr %g0, %r11, %tnpc
5933 set (0x009b3e00 | (0x88 << 24)), %r13
5934 and %r12, 0xfff, %r14
5935 sllx %r14, 30, %r14
5936 or %r13, %r14, %r20
5937 wrpr %r20, %g0, %tstate
5938 wrhpr %g0, 0x17d7, %htstate
5939 ta T_CHANGE_NONPRIV ! rand=0 (20)
5940 done
5941donretarg_20_117:
5942 .word 0xd6ffe084 ! 159: SWAPA_I swapa %r11, [%r31 + 0x0084] %asi
5943 .word 0xd6dfe0c0 ! 160: LDXA_I ldxa [%r31, + 0x00c0] %asi, %r11
5944jmptr_20_118:
5945 nop
5946 best_set_reg(0xe0a00000, %r20, %r27)
5947 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
5948dvapa_20_119:
5949 nop
5950 ta T_CHANGE_HPRIV
5951 mov 0xf43, %r20
5952 mov 0x9, %r19
5953 sllx %r20, 23, %r20
5954 or %r19, %r20, %r19
5955 stxa %r19, [%g0] ASI_LSU_CONTROL
5956 mov 0x38, %r18
5957 stxa %r31, [%r18]0x58
5958 ta T_CHANGE_NONHPRIV
5959 .word 0x87ac0a4d ! 162: FCMPd fcmpd %fcc<n>, %f16, %f44
5960 .word 0xa9844012 ! 163: WR_SET_SOFTINT_R wr %r17, %r18, %set_softint
5961 nop
5962 ta T_CHANGE_HPRIV ! macro
5963donret_20_120:
5964 rd %pc, %r12
5965 add %r12, (donretarg_20_120-donret_20_120+4), %r12
5966 add %r12, 0x4, %r11 ! seq tnpc
5967 wrpr %g0, 0x1, %tl
5968 wrpr %g0, %r12, %tpc
5969 wrpr %g0, %r11, %tnpc
5970 set (0x009f5000 | (0x82 << 24)), %r13
5971 and %r12, 0xfff, %r14
5972 sllx %r14, 30, %r14
5973 or %r13, %r14, %r20
5974 wrpr %r20, %g0, %tstate
5975 wrhpr %g0, 0xec, %htstate
5976 ta T_CHANGE_NONHPRIV ! rand=1 (20)
5977 retry
5978donretarg_20_120:
5979 .word 0xa5a449d2 ! 164: FDIVd fdivd %f48, %f18, %f18
5980 nop
5981 ta T_CHANGE_HPRIV
5982 mov 0x20, %r10
5983 set sync_thr_counter6, %r23
5984#ifndef SPC
5985 ldxa [%g0]0x63, %o1
5986 and %o1, 0x38, %o1
5987 add %o1, %r23, %r23
5988#endif
5989 cas [%r23],%g0,%r10 !lock
5990 brnz %r10, sma_20_121
5991 rd %asi, %r12
5992 wr %g0, 0x40, %asi
5993 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
5994 set 0x001e1fff, %g1
5995 stxa %g1, [%g0 + 0x80] %asi
5996 wr %r12, %g0, %asi
5997 st %g0, [%r23]
5998sma_20_121:
5999 ta T_CHANGE_NONHPRIV
6000 .word 0xe9e7e009 ! 165: CASA_R casa [%r31] %asi, %r9, %r20
6001 .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6002 .word 0x8d90288e ! 166: WRPR_PSTATE_I wrpr %r0, 0x088e, %pstate
6003 .word 0x8d802004 ! 167: WRFPRS_I wr %r0, 0x0004, %fprs
6004 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
6005 set 0x35ff, %l3
6006 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
6007 .word 0x97b487d3 ! 169: PDIST pdistn %d18, %d50, %d42
6008 .word 0xe1e7e014 ! 170: CASA_R casa [%r31] %asi, %r20, %r16
6009splash_hpstate_20_125:
6010 .word 0x81982fde ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x0fde, %hpstate
6011memptr_20_126:
6012 set user_data_start, %r31
6013 .word 0x85846512 ! 172: WRCCR_I wr %r17, 0x0512, %ccr
6014 .word 0x8d903f5f ! 173: WRPR_PSTATE_I wrpr %r0, 0x1f5f, %pstate
6015splash_cmpr_20_128:
6016 mov 0, %r18
6017 sllx %r18, 63, %r18
6018 rd %tick, %r17
6019 add %r17, 0x70, %r17
6020 or %r17, %r18, %r17
6021 ta T_CHANGE_HPRIV
6022 wrhpr %r17, %g0, %hsys_tick_cmpr
6023 ta T_CHANGE_PRIV
6024 .word 0xaf800011 ! 174: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
6025 .word 0xe03fc000 ! 175: STD_R std %r16, [%r31 + %r0]
6026brcommon2_20_130:
6027 nop
6028 setx common_target, %r12, %r27
6029 ba,a .+12
6030 .word 0x91a2c9c1 ! 1: FDIVd fdivd %f42, %f32, %f8
6031 ba,a .+8
6032 jmpl %r27+0, %r27
6033 .word 0xc1bfdf20 ! 176: STDFA_R stda %f0, [%r0, %r31]
6034splash_cmpr_20_131:
6035 mov 0, %r18
6036 sllx %r18, 63, %r18
6037 rd %tick, %r17
6038 add %r17, 0x100, %r17
6039 or %r17, %r18, %r17
6040 ta T_CHANGE_HPRIV
6041 wrhpr %r17, %g0, %hsys_tick_cmpr
6042 .word 0xb3800011 ! 177: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
6043splash_cmpr_20_132:
6044 mov 0, %r18
6045 sllx %r18, 63, %r18
6046 rd %tick, %r17
6047 add %r17, 0x50, %r17
6048 or %r17, %r18, %r17
6049 ta T_CHANGE_HPRIV
6050 wrhpr %r17, %g0, %hsys_tick_cmpr
6051 ta T_CHANGE_PRIV
6052 .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
6053 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
6054 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
6055 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
6056memptr_20_135:
6057 set user_data_start, %r31
6058 .word 0x8584eaea ! 182: WRCCR_I wr %r19, 0x0aea, %ccr
6059memptr_20_136:
6060 set 0x60340000, %r31
6061 .word 0x8584346a ! 183: WRCCR_I wr %r16, 0x146a, %ccr
6062 .word 0xe677e1f8 ! 184: STX_I stx %r19, [%r31 + 0x01f8]
6063 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
6064fpinit_20_138:
6065 nop
6066 setx fp_data_quads, %r19, %r20
6067 ldd [%r20], %f0
6068 ldd [%r20+8], %f4
6069 ld [%r20+16], %fsr
6070 ld [%r20+24], %r19
6071 wr %r19, %g0, %gsr
6072 .word 0x87a80a44 ! 186: FCMPd fcmpd %fcc<n>, %f0, %f4
6073 .word 0xe19fda00 ! 187: LDDFA_R ldda [%r31, %r0], %f16
6074fpinit_20_140:
6075 nop
6076 setx fp_data_quads, %r19, %r20
6077 ldd [%r20], %f0
6078 ldd [%r20+8], %f4
6079 ld [%r20+16], %fsr
6080 ld [%r20+24], %r19
6081 wr %r19, %g0, %gsr
6082 .word 0xc3e82060 ! 188: PREFETCHA_I prefetcha [%r0, + 0x0060] %asi, #one_read
6083ceter_20_141:
6084 nop
6085 ta T_CHANGE_HPRIV
6086 mov 7, %r17
6087 sllx %r17, 60, %r17
6088 mov 0x18, %r16
6089 stxa %r17, [%r16]0x4c
6090 ta T_CHANGE_NONHPRIV
6091 .word 0x99410000 ! 189: RDTICK rd %tick, %r12
6092 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
6093 .word 0x8d802000 ! 191: WRFPRS_I wr %r0, 0x0000, %fprs
6094 nop
6095 ta T_CHANGE_HPRIV ! macro
6096donret_20_142:
6097 rd %pc, %r12
6098 add %r12, (donretarg_20_142-donret_20_142+4), %r12
6099 add %r12, 0x4, %r11 ! seq tnpc
6100 wrpr %g0, 0x2, %tl
6101 wrpr %g0, %r12, %tpc
6102 wrpr %g0, %r11, %tnpc
6103 set (0x003bd400 | (0x88 << 24)), %r13
6104 and %r12, 0xfff, %r14
6105 sllx %r14, 30, %r14
6106 or %r13, %r14, %r20
6107 wrpr %r20, %g0, %tstate
6108 wrhpr %g0, 0x557, %htstate
6109 ta T_CHANGE_NONPRIV ! rand=0 (20)
6110 retry
6111donretarg_20_142:
6112 .word 0xd2ffe1b4 ! 192: SWAPA_I swapa %r9, [%r31 + 0x01b4] %asi
6113 .word 0x879c800d ! 193: WRHPR_HINTP_R wrhpr %r18, %r13, %hintp
6114splash_cmpr_20_143:
6115 mov 0, %r18
6116 sllx %r18, 63, %r18
6117 rd %tick, %r17
6118 add %r17, 0x80, %r17
6119 or %r17, %r18, %r17
6120 ta T_CHANGE_HPRIV
6121 wrhpr %r17, %g0, %hsys_tick_cmpr
6122 .word 0xb3800011 ! 194: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
6123 nop
6124 ta T_CHANGE_HPRIV
6125 mov 0x20+1, %r10
6126 set sync_thr_counter5, %r23
6127#ifndef SPC
6128 ldxa [%g0]0x63, %o1
6129 and %o1, 0x38, %o1
6130 add %o1, %r23, %r23
6131 sllx %o1, 5, %o3 !(CID*256)
6132#endif
6133 cas [%r23],%g0,%r10 !lock
6134 brnz %r10, cwq_20_144
6135 rd %asi, %r12
6136 wr %g0, 0x40, %asi
6137 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
6138 and %l1, 0x3, %l1 ! Check if busy/enabled ..
6139 cmp %l1, 1
6140 bne cwq_20_144
6141 set CWQ_BASE, %l6
6142#ifndef SPC
6143 add %l6, %o3, %l6
6144#endif
6145 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
6146 best_set_reg(0x206100c0, %l1, %l2) !# Control Word
6147 sllx %l2, 32, %l2
6148 stx %l2, [%l6 + 0x0]
6149 membar #Sync
6150 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
6151 sub %l2, 0x40, %l2
6152 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
6153 wr %r12, %g0, %asi
6154 st %g0, [%r23]
6155cwq_20_144:
6156 ta T_CHANGE_NONHPRIV
6157 .word 0x91414000 ! 195: RDPC rd %pc, %r8
6158br_badelay2_20_145:
6159 .word 0x34800001 ! 1: BG bg,a <label_0x1>
6160 pdist %f18, %f0, %f0
6161 .word 0x9bb50311 ! 196: ALIGNADDRESS alignaddr %r20, %r17, %r13
6162splash_tba_20_146:
6163 nop
6164 ta T_CHANGE_PRIV
6165 setx 0x00000004003a0000, %r11, %r12
6166 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
6167 nop
6168 mov 0x80, %g3
6169 stxa %g3, [%g3] 0x57
6170 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
6171 .word 0x81460000 ! 199: RD_STICK_REG stbar
6172 .word 0xd01fe070 ! 200: LDD_I ldd [%r31 + 0x0070], %r8
6173 nop
6174 ta T_CHANGE_HPRIV
6175 mov 0x20+1, %r10
6176 set sync_thr_counter5, %r23
6177#ifndef SPC
6178 ldxa [%g0]0x63, %o1
6179 and %o1, 0x38, %o1
6180 add %o1, %r23, %r23
6181 sllx %o1, 5, %o3 !(CID*256)
6182#endif
6183 cas [%r23],%g0,%r10 !lock
6184 brnz %r10, cwq_20_147
6185 rd %asi, %r12
6186 wr %g0, 0x40, %asi
6187 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
6188 and %l1, 0x3, %l1 ! Check if busy/enabled ..
6189 cmp %l1, 1
6190 bne cwq_20_147
6191 set CWQ_BASE, %l6
6192#ifndef SPC
6193 add %l6, %o3, %l6
6194#endif
6195 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
6196 best_set_reg(0x206100c0, %l1, %l2) !# Control Word
6197 sllx %l2, 32, %l2
6198 stx %l2, [%l6 + 0x0]
6199 membar #Sync
6200 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
6201 sub %l2, 0x40, %l2
6202 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
6203 wr %r12, %g0, %asi
6204 st %g0, [%r23]
6205cwq_20_147:
6206 ta T_CHANGE_NONHPRIV
6207 .word 0x97414000 ! 201: RDPC rd %pc, %r11
6208 nop
6209 nop
6210 ta T_CHANGE_PRIV
6211 wrpr %g0, %g0, %gl
6212 nop
6213 nop
6214 setx join_lbl_0_0, %g1, %g2
6215 jmp %g2
6216 nop
6217fork_lbl_0_5:
6218 ta T_CHANGE_NONHPRIV
6219 nop
6220 ta T_CHANGE_HPRIV ! macro
6221donret_10_0:
6222 rd %pc, %r12
6223 add %r12, (donretarg_10_0-donret_10_0), %r12
6224 add %r12, 0x8, %r11 ! nonseq tnpc
6225 wrpr %g0, 0x2, %tl
6226 wrpr %g0, %r12, %tpc
6227 wrpr %g0, %r11, %tnpc
6228 set (0x00ae6d00 | (0x80 << 24)), %r13
6229 and %r12, 0xfff, %r14
6230 sllx %r14, 30, %r14
6231 or %r13, %r14, %r20
6232 wrpr %r20, %g0, %tstate
6233 wrhpr %g0, 0x681, %htstate
6234 ta T_CHANGE_NONPRIV ! rand=0 (10)
6235 retry
6236donretarg_10_0:
6237 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
6238reduce_priv_lvl_10_1:
6239 ta T_CHANGE_NONPRIV ! macro
6240change_to_randtl_10_2:
6241 ta T_CHANGE_PRIV ! macro
6242done_change_to_randtl_10_2:
6243 .word 0x8f902000 ! 2: WRPR_TL_I wrpr %r0, 0x0000, %tl
6244 .word 0xdadfe068 ! 3: LDXA_I ldxa [%r31, + 0x0068] %asi, %r13
6245 .word 0xda8008a0 ! 4: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
6246ibp_10_3:
6247 nop
6248 .word 0xe1bfdb60 ! 5: STDFA_R stda %f16, [%r0, %r31]
6249intveclr_10_4:
6250 nop
6251 ta T_CHANGE_HPRIV
6252 setx 0x501baaabd52a5a5c, %r1, %r28
6253 stxa %r28, [%g0] 0x72
6254 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
6255 setx 0x206dd461e89224df, %r1, %r28
6256 stxa %r28, [%g0] 0x73
6257intvec_10_5:
6258 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6259splash_tba_10_6:
6260 nop
6261 ta T_CHANGE_PRIV
6262 setx 0x0000000000380000, %r11, %r12
6263 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
6264memptr_10_7:
6265 set 0x60340000, %r31
6266 .word 0x8582275b ! 9: WRCCR_I wr %r8, 0x075b, %ccr
6267 .word 0xa1902000 ! 10: WRPR_GL_I wrpr %r0, 0x0000, %-
6268fpinit_10_8:
6269 nop
6270 setx fp_data_quads, %r19, %r20
6271 ldd [%r20], %f0
6272 ldd [%r20+8], %f4
6273 ld [%r20+16], %fsr
6274 ld [%r20+24], %r19
6275 wr %r19, %g0, %gsr
6276 .word 0x87a80a44 ! 11: FCMPd fcmpd %fcc<n>, %f0, %f4
6277 .word 0xda800ae0 ! 12: LDUWA_R lduwa [%r0, %r0] 0x57, %r13
6278ibp_10_9:
6279 nop
6280 .word 0x99b14487 ! 13: FCMPLE32 fcmple32 %d36, %d38, %r12
6281memptr_10_10:
6282 set 0x60340000, %r31
6283 .word 0x8584241d ! 14: WRCCR_I wr %r16, 0x041d, %ccr
6284pmu_10_11:
6285 nop
6286 setx 0xfffff0bcfffff2c6, %g1, %g7
6287 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
6288 .word 0xe41fe198 ! 16: LDD_I ldd [%r31 + 0x0198], %r18
6289 .word 0xe49fd000 ! 17: LDDA_R ldda [%r31, %r0] 0x80, %r18
6290brcommon2_10_12:
6291 nop
6292 setx common_target, %r12, %r27
6293 ba,a .+12
6294 .word 0xc36fe050 ! 1: PREFETCH_I prefetch [%r31 + 0x0050], #one_read
6295 ba,a .+8
6296 jmpl %r27+0, %r27
6297 .word 0xc1bfe080 ! 18: STDFA_I stda %f0, [0x0080, %r31]
6298intveclr_10_13:
6299 nop
6300 ta T_CHANGE_HPRIV
6301 setx 0xccfd45de227d2fec, %r1, %r28
6302 stxa %r28, [%g0] 0x72
6303 ta T_CHANGE_NONHPRIV
6304 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
6305intveclr_10_14:
6306 nop
6307 ta T_CHANGE_HPRIV
6308 setx 0x7f72d6da01143edf, %r1, %r28
6309 stxa %r28, [%g0] 0x72
6310 ta T_CHANGE_NONHPRIV
6311 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
6312pmu_10_15:
6313 nop
6314 setx 0xfffff29dfffffbdc, %g1, %g7
6315 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
6316 .word 0x9f802030 ! 22: SIR sir 0x0030
6317 .word 0xa86a32be ! 23: UDIVX_I udivx %r8, 0xfffff2be, %r20
6318dvapa_10_17:
6319 nop
6320 ta T_CHANGE_HPRIV
6321 mov 0xbf5, %r20
6322 mov 0x2, %r19
6323 sllx %r20, 23, %r20
6324 or %r19, %r20, %r19
6325 stxa %r19, [%g0] ASI_LSU_CONTROL
6326 mov 0x38, %r18
6327 stxa %r31, [%r18]0x58
6328 ta T_CHANGE_NONHPRIV
6329 .word 0xc32fc010 ! 24: STXFSR_R st-sfr %f1, [%r16, %r31]
6330splash_htba_10_18:
6331 nop
6332 ta T_CHANGE_HPRIV
6333 setx 0x0000000000280000, %r11, %r12
6334 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
6335 .word 0xe797e0f8 ! 26: LDQFA_I - [%r31, 0x00f8], %f19
6336 .word 0x30800001 ! 1: BA ba,a <label_0x1>
6337 .word 0x8d903c12 ! 27: WRPR_PSTATE_I wrpr %r0, 0x1c12, %pstate
6338 .word 0xa7684003 ! 28: SDIVX_R sdivx %r1, %r3, %r19
6339splash_hpstate_10_20:
6340 ta T_CHANGE_NONHPRIV
6341 .word 0x8198367d ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x167d, %hpstate
6342intveclr_10_21:
6343 nop
6344 ta T_CHANGE_HPRIV
6345 setx 0xc9769463a05107ac, %r1, %r28
6346 stxa %r28, [%g0] 0x72
6347 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
6348#if (defined SPC || defined CMP1)
6349!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_22) + 32, 16, 16)) -> intp(0,0,16)
6350#else
6351 setx 0x69a6b5b5cc119b72, %r1, %r28
6352 stxa %r28, [%g0] 0x73
6353#endif
6354intvec_10_22:
6355 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6356splash_tba_10_23:
6357 nop
6358 ta T_CHANGE_PRIV
6359 setx 0x0000000000380000, %r11, %r12
6360 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
6361splash_lsu_10_24:
6362 nop
6363 ta T_CHANGE_HPRIV
6364 set 0xafe14118, %r2
6365 mov 0x6, %r1
6366 sllx %r1, 32, %r1
6367 or %r1, %r2, %r2
6368 stxa %r2, [%r0] ASI_LSU_CONTROL
6369 ta T_CHANGE_NONHPRIV
6370 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
6371splash_hpstate_10_25:
6372 .word 0x24cc8001 ! 1: BRLEZ brlez,a,pt %r18,<label_0xc8001>
6373 .word 0x81983c1e ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x1c1e, %hpstate
6374pmu_10_26:
6375 nop
6376 ta T_CHANGE_PRIV
6377 setx 0xfffffdbffffffb29, %g1, %g7
6378 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
6379 .word 0x91b14492 ! 36: FCMPLE32 fcmple32 %d36, %d18, %r8
6380jmptr_10_28:
6381 nop
6382 best_set_reg(0xe1200000, %r20, %r27)
6383 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
6384 .word 0x917021ae ! 38: POPC_I popc 0x01ae, %r8
6385intveclr_10_30:
6386 nop
6387 ta T_CHANGE_HPRIV
6388 setx 0xfa2a5051787132b6, %r1, %r28
6389 stxa %r28, [%g0] 0x72
6390 ta T_CHANGE_NONHPRIV
6391 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
6392ibp_10_31:
6393 nop
6394 ta T_CHANGE_NONHPRIV
6395 .word 0x9f8020a0 ! 40: SIR sir 0x00a0
6396 invalw
6397 mov 0xb0, %r30
6398 .word 0x93d0001e ! 41: Tcc_R tne icc_or_xcc, %r0 + %r30
6399intveclr_10_32:
6400 nop
6401 ta T_CHANGE_HPRIV
6402 setx 0x79837df574658ce0, %r1, %r28
6403 stxa %r28, [%g0] 0x72
6404 ta T_CHANGE_NONHPRIV
6405 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
6406ibp_10_33:
6407 nop
6408 .word 0xa1b487c2 ! 43: PDIST pdistn %d18, %d2, %d16
6409 .word 0xa1902007 ! 44: WRPR_GL_I wrpr %r0, 0x0007, %-
6410fpinit_10_34:
6411 nop
6412 setx fp_data_quads, %r19, %r20
6413 ldd [%r20], %f0
6414 ldd [%r20+8], %f4
6415 ld [%r20+16], %fsr
6416 ld [%r20+24], %r19
6417 wr %r19, %g0, %gsr
6418 .word 0x8db00484 ! 45: FCMPLE32 fcmple32 %d0, %d4, %r6
6419 .word 0x91924013 ! 46: WRPR_PIL_R wrpr %r9, %r19, %pil
6420 nop
6421 ta T_CHANGE_HPRIV ! macro
6422donret_10_36:
6423 rd %pc, %r12
6424 add %r12, (donretarg_10_36-donret_10_36+4), %r12
6425 add %r12, 0x4, %r11 ! seq tnpc
6426 wrpr %g0, 0x1, %tl
6427 wrpr %g0, %r12, %tpc
6428 wrpr %g0, %r11, %tnpc
6429 set (0x00016c00 | (32 << 24)), %r13
6430 and %r12, 0xfff, %r14
6431 sllx %r14, 30, %r14
6432 or %r13, %r14, %r20
6433 wrpr %r20, %g0, %tstate
6434 wrhpr %g0, 0x694, %htstate
6435 ta T_CHANGE_NONPRIV ! rand=0 (10)
6436 .word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, <label_0x1>
6437 retry
6438donretarg_10_36:
6439 .word 0xe26fe018 ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x0018]
6440 .word 0xc19fc2c0 ! 48: LDDFA_R ldda [%r31, %r0], %f0
6441change_to_randtl_10_37:
6442 ta T_CHANGE_HPRIV ! macro
6443done_change_to_randtl_10_37:
6444 .word 0x8f902000 ! 49: WRPR_TL_I wrpr %r0, 0x0000, %tl
6445 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
6446 .word 0xc30fc000 ! 51: LDXFSR_R ld-fsr [%r31, %r0], %f1
6447intveclr_10_39:
6448 nop
6449 ta T_CHANGE_HPRIV
6450 setx 0x21fee4718849c1c2, %r1, %r28
6451 stxa %r28, [%g0] 0x72
6452 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
6453 .word 0xc3efc033 ! 1: PREFETCHA_R prefetcha [%r31, %r19] 0x01, #one_read
6454 .word 0x9f802eea ! 53: SIR sir 0x0eea
6455 .word 0xe337e040 ! 54: STQF_I - %f17, [0x0040, %r31]
6456dvapa_10_40:
6457 nop
6458 ta T_CHANGE_HPRIV
6459 mov 0xd72, %r20
6460 mov 0xb, %r19
6461 sllx %r20, 23, %r20
6462 or %r19, %r20, %r19
6463 stxa %r19, [%g0] ASI_LSU_CONTROL
6464 mov 0x38, %r18
6465 stxa %r31, [%r18]0x58
6466 ta T_CHANGE_NONHPRIV
6467 .word 0xe19fe160 ! 55: LDDFA_I ldda [%r31, 0x0160], %f16
6468 .word 0xe22fe074 ! 56: STB_I stb %r17, [%r31 + 0x0074]
6469 setx 0x48367d6eef3fcbaf, %r1, %r28
6470 stxa %r28, [%g0] 0x73
6471intvec_10_41:
6472 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6473brcommon2_10_42:
6474 nop
6475 setx common_target, %r12, %r27
6476 ba,a .+12
6477 .word 0x81dfc009 ! 1: FLUSH_R flush
6478 ba,a .+8
6479 jmpl %r27+0, %r27
6480 .word 0xe1bfe1a0 ! 58: STDFA_I stda %f16, [0x01a0, %r31]
6481jmptr_10_43:
6482 nop
6483 best_set_reg(0xe1200000, %r20, %r27)
6484 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
6485memptr_10_44:
6486 set 0x60140000, %r31
6487 .word 0x85846b13 ! 60: WRCCR_I wr %r17, 0x0b13, %ccr
6488 nop
6489 ta T_CHANGE_HPRIV
6490 mov 0x10+1, %r10
6491 set sync_thr_counter5, %r23
6492#ifndef SPC
6493 ldxa [%g0]0x63, %o1
6494 and %o1, 0x38, %o1
6495 add %o1, %r23, %r23
6496 sllx %o1, 5, %o3 !(CID*256)
6497#endif
6498 cas [%r23],%g0,%r10 !lock
6499 brnz %r10, cwq_10_45
6500 rd %asi, %r12
6501 wr %g0, 0x40, %asi
6502 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
6503 and %l1, 0x3, %l1 ! Check if busy/enabled ..
6504 cmp %l1, 1
6505 bne cwq_10_45
6506 set CWQ_BASE, %l6
6507#ifndef SPC
6508 add %l6, %o3, %l6
6509#endif
6510 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
6511 best_set_reg(0x20610010, %l1, %l2) !# Control Word
6512 sllx %l2, 32, %l2
6513 stx %l2, [%l6 + 0x0]
6514 membar #Sync
6515 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
6516 sub %l2, 0x40, %l2
6517 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
6518 wr %r12, %g0, %asi
6519 st %g0, [%r23]
6520cwq_10_45:
6521 ta T_CHANGE_NONHPRIV
6522 .word 0xa3414000 ! 61: RDPC rd %pc, %r17
6523fpinit_10_46:
6524 nop
6525 setx fp_data_quads, %r19, %r20
6526 ldd [%r20], %f0
6527 ldd [%r20+8], %f4
6528 ld [%r20+16], %fsr
6529 ld [%r20+24], %r19
6530 wr %r19, %g0, %gsr
6531 .word 0x91a009a4 ! 62: FDIVs fdivs %f0, %f4, %f8
6532 .word 0x91d02035 ! 63: Tcc_I ta icc_or_xcc, %r0 + 53
6533 .word 0xa7703953 ! 64: POPC_I popc 0x1953, %r19
6534 nop
6535 ta T_CHANGE_HPRIV
6536 mov 0x10, %r10
6537 set sync_thr_counter6, %r23
6538#ifndef SPC
6539 ldxa [%g0]0x63, %o1
6540 and %o1, 0x38, %o1
6541 add %o1, %r23, %r23
6542#endif
6543 cas [%r23],%g0,%r10 !lock
6544 brnz %r10, sma_10_48
6545 rd %asi, %r12
6546 wr %g0, 0x40, %asi
6547 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
6548 set 0x001e1fff, %g1
6549 stxa %g1, [%g0 + 0x80] %asi
6550 wr %r12, %g0, %asi
6551 st %g0, [%r23]
6552sma_10_48:
6553 ta T_CHANGE_NONHPRIV
6554 .word 0xe5e7e011 ! 65: CASA_R casa [%r31] %asi, %r17, %r18
6555 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
6556 .word 0xe537e010 ! 67: STQF_I - %f18, [0x0010, %r31]
6557 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
6558reduce_priv_lvl_10_49:
6559 ta T_CHANGE_NONHPRIV ! macro
6560trapasi_10_50:
6561 nop
6562 mov 0x3c8, %r1 ! (VA for ASI 0x25)
6563 .word 0xe4d044a0 ! 69: LDSHA_R ldsha [%r1, %r0] 0x25, %r18
6564splash_tba_10_51:
6565 nop
6566 ta T_CHANGE_PRIV
6567 setx 0x0000000000380000, %r11, %r12
6568 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
6569dvapa_10_52:
6570 nop
6571 ta T_CHANGE_HPRIV
6572 mov 0x9ea, %r20
6573 mov 0x4, %r19
6574 sllx %r20, 23, %r20
6575 or %r19, %r20, %r19
6576 stxa %r19, [%g0] ASI_LSU_CONTROL
6577 mov 0x38, %r18
6578 stxa %r31, [%r18]0x58
6579 ta T_CHANGE_NONHPRIV
6580 .word 0xe51fc008 ! 71: LDDF_R ldd [%r31, %r8], %f18
6581 .word 0x9948c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r12
6582 nop
6583 ta T_CHANGE_HPRIV
6584 mov 0x10, %r10
6585 set sync_thr_counter6, %r23
6586#ifndef SPC
6587 ldxa [%g0]0x63, %o1
6588 and %o1, 0x38, %o1
6589 add %o1, %r23, %r23
6590#endif
6591 cas [%r23],%g0,%r10 !lock
6592 brnz %r10, sma_10_53
6593 rd %asi, %r12
6594 wr %g0, 0x40, %asi
6595 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
6596 set 0x00021fff, %g1
6597 stxa %g1, [%g0 + 0x80] %asi
6598 wr %r12, %g0, %asi
6599 st %g0, [%r23]
6600sma_10_53:
6601 ta T_CHANGE_NONHPRIV
6602 .word 0xe9e7e014 ! 73: CASA_R casa [%r31] %asi, %r20, %r20
6603mondo_10_54:
6604 nop
6605 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
6606 ta T_CHANGE_PRIV
6607 stxa %r17, [%r0+0x3d0] %asi
6608 .word 0x9d928001 ! 74: WRPR_WSTATE_R wrpr %r10, %r1, %wstate
6609intveclr_10_55:
6610 nop
6611 ta T_CHANGE_HPRIV
6612 setx 0xf3beb0eb20239276, %r1, %r28
6613 stxa %r28, [%g0] 0x72
6614 ta T_CHANGE_NONHPRIV
6615 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
6616 .word 0xe937e1e3 ! 76: STQF_I - %f20, [0x01e3, %r31]
6617splash_hpstate_10_56:
6618 ta T_CHANGE_NONHPRIV
6619 .word 0x36800001 ! 1: BGE bge,a <label_0x1>
6620 .word 0x81983b1f ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x1b1f, %hpstate
6621br_badelay3_10_57:
6622 .word 0x20800001 ! 1: BN bn,a <label_0x1>
6623 .word 0x22800001 ! 1: BE be,a <label_0x1>
6624 .word 0x99a349c6 ! 1: FDIVd fdivd %f44, %f6, %f12
6625 .word 0x95a44823 ! 78: FADDs fadds %f17, %f3, %f10
6626br_longdelay1_10_58:
6627 .word 0x32800001 ! 1: BNE bne,a <label_0x1>
6628 .word 0xbfe7c000 ! 79: SAVE_R save %r31, %r0, %r31
6629splash_lsu_10_59:
6630 nop
6631 ta T_CHANGE_HPRIV
6632 set 0xc59a6c0d, %r2
6633 mov 0x3, %r1
6634 sllx %r1, 32, %r1
6635 or %r1, %r2, %r2
6636 stxa %r2, [%r0] ASI_LSU_CONTROL
6637 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
6638 .word 0xa7b30594 ! 81: FCMPGT32 fcmpgt32 %d12, %d20, %r19
6639dvapa_10_60:
6640 nop
6641 ta T_CHANGE_HPRIV
6642 mov 0xd8d, %r20
6643 mov 0xa, %r19
6644 sllx %r20, 23, %r20
6645 or %r19, %r20, %r19
6646 stxa %r19, [%g0] ASI_LSU_CONTROL
6647 mov 0x38, %r18
6648 stxa %r31, [%r18]0x58
6649 ta T_CHANGE_NONHPRIV
6650 .word 0xd51fe1b0 ! 82: LDDF_I ldd [%r31, 0x01b0], %f10
6651 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
6652 .word 0x9345c000 ! 84: RD_TICK_CMPR_REG rd %-, %r9
6653 .word 0xa1902002 ! 85: WRPR_GL_I wrpr %r0, 0x0002, %-
6654trapasi_10_62:
6655 nop
6656 mov 0x8, %r1 ! (VA for ASI 0x5a)
6657 .word 0xe8904b40 ! 86: LDUHA_R lduha [%r1, %r0] 0x5a, %r20
6658brcommon3_10_63:
6659 nop
6660 setx common_target, %r12, %r27
6661 lduw [%r27], %r12 ! Load common dest into dcache ..
6662 ba,a .+12
6663 .word 0xe937e040 ! 1: STQF_I - %f20, [0x0040, %r31]
6664 ba,a .+8
6665 jmpl %r27+0, %r27
6666 .word 0xe83fe0c0 ! 87: STD_I std %r20, [%r31 + 0x00c0]
6667memptr_10_64:
6668 set 0x60140000, %r31
6669 .word 0x8580b873 ! 88: WRCCR_I wr %r2, 0x1873, %ccr
6670brcommon1_10_65:
6671 nop
6672 setx common_target, %r12, %r27
6673 lduw [%r27], %r12 ! Load common dest into dcache ..
6674 ba,a .+12
6675 .word 0xa9b7c7d2 ! 1: PDIST pdistn %d62, %d18, %d20
6676 ba,a .+8
6677 jmpl %r27+0, %r27
6678 .word 0x9f802cf7 ! 89: SIR sir 0x0cf7
6679 .word 0x9ac52c10 ! 90: ADDCcc_I addccc %r20, 0x0c10, %r13
6680fpinit_10_66:
6681 nop
6682 setx fp_data_quads, %r19, %r20
6683 ldd [%r20], %f0
6684 ldd [%r20+8], %f4
6685 ld [%r20+16], %fsr
6686 ld [%r20+24], %r19
6687 wr %r19, %g0, %gsr
6688 .word 0x8da009c4 ! 91: FDIVd fdivd %f0, %f4, %f6
6689 nop
6690 ta T_CHANGE_HPRIV ! macro
6691donret_10_67:
6692 rd %pc, %r12
6693 add %r12, (donretarg_10_67-donret_10_67), %r12
6694 add %r12, 0x4, %r11 ! seq tnpc
6695 wrpr %g0, 0x1, %tl
6696 wrpr %g0, %r12, %tpc
6697 wrpr %g0, %r11, %tnpc
6698 set (0x00311400 | (0x4f << 24)), %r13
6699 and %r12, 0xfff, %r14
6700 sllx %r14, 30, %r14
6701 or %r13, %r14, %r20
6702 wrpr %r20, %g0, %tstate
6703 wrhpr %g0, 0x1856, %htstate
6704 ta T_CHANGE_NONPRIV ! rand=0 (10)
6705 .word 0x23400001 ! 1: FBPNE fbne,a,pn %fcc0, <label_0x1>
6706 done
6707donretarg_10_67:
6708 .word 0x9ba249d2 ! 92: FDIVd fdivd %f40, %f18, %f44
6709change_to_randtl_10_68:
6710 ta T_CHANGE_PRIV ! macro
6711done_change_to_randtl_10_68:
6712 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
6713 set 0x3ed6, %l3
6714 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
6715 .word 0xa5b047d3 ! 94: PDIST pdistn %d32, %d50, %d18
6716 .word 0xdb1fc010 ! 95: LDDF_R ldd [%r31, %r16], %f13
6717splash_tba_10_70:
6718 nop
6719 ta T_CHANGE_PRIV
6720 setx 0x0000000000380000, %r11, %r12
6721 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
6722 setx 0x792f17feabc46a08, %r1, %r28
6723 stxa %r28, [%g0] 0x73
6724intvec_10_71:
6725 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6726memptr_10_72:
6727 set user_data_start, %r31
6728 .word 0x8581f244 ! 98: WRCCR_I wr %r7, 0x1244, %ccr
6729fpinit_10_73:
6730 nop
6731 setx fp_data_quads, %r19, %r20
6732 ldd [%r20], %f0
6733 ldd [%r20+8], %f4
6734 ld [%r20+16], %fsr
6735 ld [%r20+24], %r19
6736 wr %r19, %g0, %gsr
6737 .word 0xc3e8279c ! 99: PREFETCHA_I prefetcha [%r0, + 0x079c] %asi, #one_read
6738intveclr_10_74:
6739 nop
6740 ta T_CHANGE_HPRIV
6741 setx 0xc43efc0885ad3106, %r1, %r28
6742 stxa %r28, [%g0] 0x72
6743 ta T_CHANGE_NONHPRIV
6744 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
6745 nop
6746 ta T_CHANGE_HPRIV ! macro
6747donret_10_75:
6748 rd %pc, %r12
6749 add %r12, (donretarg_10_75-donret_10_75+4), %r12
6750 add %r12, 0x4, %r11 ! seq tnpc
6751 wrpr %g0, 0x1, %tl
6752 wrpr %g0, %r12, %tpc
6753 wrpr %g0, %r11, %tnpc
6754 set (0x00f12000 | (0x58 << 24)), %r13
6755 and %r12, 0xfff, %r14
6756 sllx %r14, 30, %r14
6757 or %r13, %r14, %r20
6758 wrpr %r20, %g0, %tstate
6759 wrhpr %g0, 0xe0e, %htstate
6760 ta T_CHANGE_NONHPRIV ! rand=1 (10)
6761 done
6762donretarg_10_75:
6763 .word 0xa7a489d2 ! 101: FDIVd fdivd %f18, %f18, %f50
6764 .word 0x81dc8010 ! 102: FLUSH_R flush
6765ibp_10_76:
6766 nop
6767 .word 0xe1bfe1a0 ! 103: STDFA_I stda %f16, [0x01a0, %r31]
6768 .word 0xe89fe068 ! 104: LDDA_I ldda [%r31, + 0x0068] %asi, %r20
6769 nop
6770 ta T_CHANGE_HPRIV ! macro
6771donret_10_77:
6772 rd %pc, %r12
6773 add %r12, (donretarg_10_77-donret_10_77+4), %r12
6774 add %r12, 0x4, %r11 ! seq tnpc
6775 wrpr %g0, 0x1, %tl
6776 wrpr %g0, %r12, %tpc
6777 wrpr %g0, %r11, %tnpc
6778 set (0x00c46800 | (0x82 << 24)), %r13
6779 and %r12, 0xfff, %r14
6780 sllx %r14, 30, %r14
6781 or %r13, %r14, %r20
6782 wrpr %r20, %g0, %tstate
6783 wrhpr %g0, 0x190f, %htstate
6784 ta T_CHANGE_NONPRIV ! rand=0 (10)
6785 done
6786donretarg_10_77:
6787 .word 0xa7a509cb ! 105: FDIVd fdivd %f20, %f42, %f50
6788 .word 0x8d90352b ! 106: WRPR_PSTATE_I wrpr %r0, 0x152b, %pstate
6789 .word 0xa153c000 ! 107: RDPR_FQ <illegal instruction>
6790 .word 0xab827205 ! 108: WR_CLEAR_SOFTINT_I wr %r9, 0x1205, %clear_softint
6791invtsb_10_79:
6792 nop
6793 ta T_CHANGE_HPRIV
6794 rd %asi, %r21
6795 wr %r0,ASI_MMU_REAL_RANGE, %asi
6796 mov 1, %r20
6797 sllx %r20, 63, %r20
6798 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22
6799 xor %r22 ,%r20, %r22
6800 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi
6801 ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22
6802 xor %r22 ,%r20, %r22
6803 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi
6804 ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22
6805 xor %r22 ,%r20, %r22
6806 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi
6807 ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22
6808 xor %r22 ,%r20, %r22
6809 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi
6810 wr %r21, %r0, %asi
6811 ta T_CHANGE_NONHPRIV
6812 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
6813 .word 0xe1bfde00 ! 110: STDFA_R stda %f16, [%r0, %r31]
6814br_badelay3_10_80:
6815 .word 0x34800001 ! 1: BG bg,a <label_0x1>
6816 .word 0x8f72162f ! Random illegal ?
6817 .word 0x95a00553 ! 1: FSQRTd fsqrt
6818 .word 0xa9a0c831 ! 111: FADDs fadds %f3, %f17, %f20
6819ibp_10_81:
6820 nop
6821 ta T_CHANGE_NONHPRIV
6822 .word 0xd897c031 ! 112: LDUHA_R lduha [%r31, %r17] 0x01, %r12
6823memptr_10_82:
6824 set 0x60140000, %r31
6825 .word 0x85833b25 ! 113: WRCCR_I wr %r12, 0x1b25, %ccr
6826mondo_10_83:
6827 nop
6828 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
6829 ta T_CHANGE_PRIV
6830 stxa %r7, [%r0+0x3d0] %asi
6831 .word 0x9d924010 ! 114: WRPR_WSTATE_R wrpr %r9, %r16, %wstate
6832 .word 0xa7508000 ! 115: RDPR_TSTATE <illegal instruction>
6833splash_lsu_10_84:
6834 nop
6835 ta T_CHANGE_HPRIV
6836 set 0x036217d2, %r2
6837 mov 0x2, %r1
6838 sllx %r1, 32, %r1
6839 or %r1, %r2, %r2
6840 stxa %r2, [%r0] ASI_LSU_CONTROL
6841 ta T_CHANGE_NONHPRIV
6842 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
6843splash_cmpr_10_85:
6844 mov 0, %r18
6845 sllx %r18, 63, %r18
6846 rd %tick, %r17
6847 add %r17, 0x100, %r17
6848 or %r17, %r18, %r17
6849 ta T_CHANGE_PRIV
6850 .word 0xaf800011 ! 117: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
6851splash_hpstate_10_86:
6852 ta T_CHANGE_NONHPRIV
6853 .word 0x8198318b ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x118b, %hpstate
6854 .word 0xa1902000 ! 119: WRPR_GL_I wrpr %r0, 0x0000, %-
6855 nop
6856 ta T_CHANGE_HPRIV
6857 mov 0x10, %r10
6858 set sync_thr_counter6, %r23
6859#ifndef SPC
6860 ldxa [%g0]0x63, %o1
6861 and %o1, 0x38, %o1
6862 add %o1, %r23, %r23
6863#endif
6864 cas [%r23],%g0,%r10 !lock
6865 brnz %r10, sma_10_87
6866 rd %asi, %r12
6867 wr %g0, 0x40, %asi
6868 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
6869 set 0x000a1fff, %g1
6870 stxa %g1, [%g0 + 0x80] %asi
6871 wr %r12, %g0, %asi
6872 st %g0, [%r23]
6873sma_10_87:
6874 ta T_CHANGE_NONHPRIV
6875 .word 0xe1e7e013 ! 120: CASA_R casa [%r31] %asi, %r19, %r16
6876mondo_10_88:
6877 nop
6878 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
6879 stxa %r8, [%r0+0x3e8] %asi
6880 .word 0x9d930008 ! 121: WRPR_WSTATE_R wrpr %r12, %r8, %wstate
6881splash_lsu_10_89:
6882 nop
6883 ta T_CHANGE_HPRIV
6884 set 0xe935f128, %r2
6885 mov 0x4, %r1
6886 sllx %r1, 32, %r1
6887 or %r1, %r2, %r2
6888 stxa %r2, [%r0] ASI_LSU_CONTROL
6889 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
6890brcommon3_10_90:
6891 nop
6892 setx common_target, %r12, %r27
6893 lduw [%r27], %r12 ! Load common dest into dcache ..
6894 ba,a .+12
6895 .word 0xe1e7c034 ! 1: CASA_I casa [%r31] 0x 1, %r20, %r16
6896 ba,a .+8
6897 jmpl %r27+0, %r27
6898 .word 0xe1e7e00c ! 123: CASA_R casa [%r31] %asi, %r12, %r16
6899dvapa_10_91:
6900 nop
6901 ta T_CHANGE_HPRIV
6902 mov 0x9ac, %r20
6903 mov 0x19, %r19
6904 sllx %r20, 23, %r20
6905 or %r19, %r20, %r19
6906 stxa %r19, [%g0] ASI_LSU_CONTROL
6907 mov 0x38, %r18
6908 stxa %r31, [%r18]0x58
6909 ta T_CHANGE_NONHPRIV
6910 .word 0xc1bfe000 ! 124: STDFA_I stda %f0, [0x0000, %r31]
6911 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
6912 .word 0xe0dfc02a ! 126: LDXA_R ldxa [%r31, %r10] 0x01, %r16
6913 setx 0x7691c25e45c1ddf4, %r1, %r28
6914 stxa %r28, [%g0] 0x73
6915intvec_10_93:
6916 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6917 .word 0x8d802004 ! 128: WRFPRS_I wr %r0, 0x0004, %fprs
6918 .word 0xe0d7e0f0 ! 129: LDSHA_I ldsha [%r31, + 0x00f0] %asi, %r16
6919#if (defined SPC || defined CMP1)
6920!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_94) + 16, 16, 16)) -> intp(3,0,19)
6921#else
6922 setx 0xf827136e1e7e96a3, %r1, %r28
6923 stxa %r28, [%g0] 0x73
6924#endif
6925intvec_10_94:
6926 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6927 .word 0x8d802000 ! 131: WRFPRS_I wr %r0, 0x0000, %fprs
6928 .word 0x8d903548 ! 132: WRPR_PSTATE_I wrpr %r0, 0x1548, %pstate
6929 .word 0x2acc0001 ! 1: BRNZ brnz,a,pt %r16,<label_0xc0001>
6930 .word 0x8d903b95 ! 133: WRPR_PSTATE_I wrpr %r0, 0x1b95, %pstate
6931 setx 0xf4bb5a393fd2e6e7, %r1, %r28
6932 stxa %r28, [%g0] 0x73
6933intvec_10_97:
6934 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
6935 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
6936reduce_priv_lvl_10_98:
6937 ta T_CHANGE_NONHPRIV ! macro
6938ibp_10_99:
6939 nop
6940 ta T_CHANGE_NONHPRIV
6941 .word 0x9bb40489 ! 136: FCMPLE32 fcmple32 %d16, %d40, %r13
6942 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
6943change_to_randtl_10_101:
6944 ta T_CHANGE_HPRIV ! macro
6945done_change_to_randtl_10_101:
6946 .word 0x8f902002 ! 138: WRPR_TL_I wrpr %r0, 0x0002, %tl
6947splash_cmpr_10_102:
6948 mov 0, %r18
6949 sllx %r18, 63, %r18
6950 rd %tick, %r17
6951 add %r17, 0x100, %r17
6952 or %r17, %r18, %r17
6953 .word 0xb3800011 ! 139: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
6954 .word 0xe8cfe098 ! 140: LDSBA_I ldsba [%r31, + 0x0098] %asi, %r20
6955 nop
6956 ta T_CHANGE_HPRIV ! macro
6957donret_10_103:
6958 rd %pc, %r12
6959 add %r12, (donretarg_10_103-donret_10_103), %r12
6960 add %r12, 0x4, %r11 ! seq tnpc
6961 wrpr %g0, 0x2, %tl
6962 wrpr %g0, %r12, %tpc
6963 wrpr %g0, %r11, %tnpc
6964 set (0x004f8300 | (0x82 << 24)), %r13
6965 and %r12, 0xfff, %r14
6966 sllx %r14, 30, %r14
6967 or %r13, %r14, %r20
6968 wrpr %r20, %g0, %tstate
6969 wrhpr %g0, 0x1f09, %htstate
6970 ta T_CHANGE_NONPRIV ! rand=0 (10)
6971 .word 0x3b400001 ! 1: FBPLE fble,a,pn %fcc0, <label_0x1>
6972 done
6973donretarg_10_103:
6974 .word 0xe86fe02c ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x002c]
6975trapasi_10_104:
6976 nop
6977 mov 0x20, %r1 ! (VA for ASI 0x5b)
6978 .word 0xe8c04b60 ! 142: LDSWA_R ldswa [%r1, %r0] 0x5b, %r20
6979fpinit_10_105:
6980 nop
6981 setx fp_data_quads, %r19, %r20
6982 ldd [%r20], %f0
6983 ldd [%r20+8], %f4
6984 ld [%r20+16], %fsr
6985 ld [%r20+24], %r19
6986 wr %r19, %g0, %gsr
6987 .word 0x91b00484 ! 143: FCMPLE32 fcmple32 %d0, %d4, %r8
6988 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
6989change_to_randtl_10_107:
6990 ta T_CHANGE_HPRIV ! macro
6991done_change_to_randtl_10_107:
6992 .word 0x8f902001 ! 145: WRPR_TL_I wrpr %r0, 0x0001, %tl
6993dvapa_10_108:
6994 nop
6995 ta T_CHANGE_HPRIV
6996 mov 0xd81, %r20
6997 mov 0x1f, %r19
6998 sllx %r20, 23, %r20
6999 or %r19, %r20, %r19
7000 stxa %r19, [%g0] ASI_LSU_CONTROL
7001 mov 0x38, %r18
7002 stxa %r31, [%r18]0x58
7003 ta T_CHANGE_NONHPRIV
7004 .word 0xe83fe1c0 ! 146: STD_I std %r20, [%r31 + 0x01c0]
7005 setx 0x426f2cf05ab84827, %r1, %r28
7006 stxa %r28, [%g0] 0x73
7007intvec_10_109:
7008 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
7009 .word 0xe8cfe190 ! 148: LDSBA_I ldsba [%r31, + 0x0190] %asi, %r20
7010splash_decr_10_110:
7011 nop
7012 ta T_CHANGE_HPRIV
7013 mov 8, %r1
7014 stxa %r0, [%r1] 0x45
7015 .word 0xa7848013 ! 149: WR_GRAPHICS_STATUS_REG_R wr %r18, %r19, %-
7016 .word 0xe93fc014 ! 150: STDF_R std %f20, [%r20, %r31]
7017br_longdelay3_10_112:
7018 nop
7019 not %g0, %r12
7020 jmp %r12
7021 .word 0x99902004 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0004, %cleanwin
7022 .word 0xa7a00546 ! 152: FSQRTd fsqrt
7023 .word 0xc19fe180 ! 153: LDDFA_I ldda [%r31, 0x0180], %f0
7024splash_cmpr_10_113:
7025 mov 0, %r18
7026 sllx %r18, 63, %r18
7027 rd %tick, %r17
7028 add %r17, 0x80, %r17
7029 or %r17, %r18, %r17
7030 .word 0xb3800011 ! 154: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
7031 .word 0x879c8011 ! 155: WRHPR_HINTP_R wrhpr %r18, %r17, %hintp
7032 .word 0x9194c006 ! 156: WRPR_PIL_R wrpr %r19, %r6, %pil
7033ibp_10_115:
7034 nop
7035 .word 0xd71fc014 ! 157: LDDF_R ldd [%r31, %r20], %f11
7036fpinit_10_116:
7037 nop
7038 setx fp_data_quads, %r19, %r20
7039 ldd [%r20], %f0
7040 ldd [%r20+8], %f4
7041 ld [%r20+16], %fsr
7042 ld [%r20+24], %r19
7043 wr %r19, %g0, %gsr
7044 .word 0x8da009c4 ! 158: FDIVd fdivd %f0, %f4, %f6
7045 nop
7046 ta T_CHANGE_HPRIV ! macro
7047donret_10_117:
7048 rd %pc, %r12
7049 add %r12, (donretarg_10_117-donret_10_117), %r12
7050 add %r12, 0x4, %r11 ! seq tnpc
7051 wrpr %g0, 0x1, %tl
7052 wrpr %g0, %r12, %tpc
7053 wrpr %g0, %r11, %tnpc
7054 set (0x00f30a00 | (0x88 << 24)), %r13
7055 and %r12, 0xfff, %r14
7056 sllx %r14, 30, %r14
7057 or %r13, %r14, %r20
7058 wrpr %r20, %g0, %tstate
7059 wrhpr %g0, 0x1f49, %htstate
7060 ta T_CHANGE_NONPRIV ! rand=0 (10)
7061 done
7062donretarg_10_117:
7063 .word 0xd6ffe0a4 ! 159: SWAPA_I swapa %r11, [%r31 + 0x00a4] %asi
7064 .word 0xd6dfe0b0 ! 160: LDXA_I ldxa [%r31, + 0x00b0] %asi, %r11
7065jmptr_10_118:
7066 nop
7067 best_set_reg(0xe1200000, %r20, %r27)
7068 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
7069dvapa_10_119:
7070 nop
7071 ta T_CHANGE_HPRIV
7072 mov 0xd2a, %r20
7073 mov 0x3, %r19
7074 sllx %r20, 23, %r20
7075 or %r19, %r20, %r19
7076 stxa %r19, [%g0] ASI_LSU_CONTROL
7077 mov 0x38, %r18
7078 stxa %r31, [%r18]0x58
7079 ta T_CHANGE_NONHPRIV
7080 .word 0x87acca54 ! 162: FCMPd fcmpd %fcc<n>, %f50, %f20
7081 .word 0xa9840014 ! 163: WR_SET_SOFTINT_R wr %r16, %r20, %set_softint
7082 nop
7083 ta T_CHANGE_HPRIV ! macro
7084donret_10_120:
7085 rd %pc, %r12
7086 add %r12, (donretarg_10_120-donret_10_120+4), %r12
7087 add %r12, 0x4, %r11 ! seq tnpc
7088 wrpr %g0, 0x2, %tl
7089 wrpr %g0, %r12, %tpc
7090 wrpr %g0, %r11, %tnpc
7091 set (0x005f0d00 | (0x55 << 24)), %r13
7092 and %r12, 0xfff, %r14
7093 sllx %r14, 30, %r14
7094 or %r13, %r14, %r20
7095 wrpr %r20, %g0, %tstate
7096 wrhpr %g0, 0xa8e, %htstate
7097 ta T_CHANGE_NONHPRIV ! rand=1 (10)
7098 retry
7099donretarg_10_120:
7100 .word 0x91a349d4 ! 164: FDIVd fdivd %f44, %f20, %f8
7101 nop
7102 ta T_CHANGE_HPRIV
7103 mov 0x10, %r10
7104 set sync_thr_counter6, %r23
7105#ifndef SPC
7106 ldxa [%g0]0x63, %o1
7107 and %o1, 0x38, %o1
7108 add %o1, %r23, %r23
7109#endif
7110 cas [%r23],%g0,%r10 !lock
7111 brnz %r10, sma_10_121
7112 rd %asi, %r12
7113 wr %g0, 0x40, %asi
7114 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
7115 set 0x001e1fff, %g1
7116 stxa %g1, [%g0 + 0x80] %asi
7117 wr %r12, %g0, %asi
7118 st %g0, [%r23]
7119sma_10_121:
7120 ta T_CHANGE_NONHPRIV
7121 .word 0xe9e7e012 ! 165: CASA_R casa [%r31] %asi, %r18, %r20
7122 .word 0x32800001 ! 1: BNE bne,a <label_0x1>
7123 .word 0x8d903644 ! 166: WRPR_PSTATE_I wrpr %r0, 0x1644, %pstate
7124 .word 0x8d802000 ! 167: WRFPRS_I wr %r0, 0x0000, %fprs
7125 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
7126 set 0x191a, %l3
7127 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
7128 .word 0xa3b487c2 ! 169: PDIST pdistn %d18, %d2, %d48
7129 .word 0xe1e7e008 ! 170: CASA_R casa [%r31] %asi, %r8, %r16
7130splash_hpstate_10_125:
7131 .word 0x81982605 ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x0605, %hpstate
7132memptr_10_126:
7133 set user_data_start, %r31
7134 .word 0x8585399c ! 172: WRCCR_I wr %r20, 0x199c, %ccr
7135 .word 0x8d90202b ! 173: WRPR_PSTATE_I wrpr %r0, 0x002b, %pstate
7136splash_cmpr_10_128:
7137 mov 1, %r18
7138 sllx %r18, 63, %r18
7139 rd %tick, %r17
7140 add %r17, 0x100, %r17
7141 or %r17, %r18, %r17
7142 ta T_CHANGE_HPRIV
7143 wrhpr %r17, %g0, %hsys_tick_cmpr
7144 ta T_CHANGE_PRIV
7145 .word 0xaf800011 ! 174: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
7146 .word 0xc32fc000 ! 175: STXFSR_R st-sfr %f1, [%r0, %r31]
7147brcommon2_10_130:
7148 nop
7149 setx common_target, %r12, %r27
7150 ba,a .+12
7151 .word 0xa1b7c712 ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f18, %d16
7152 ba,a .+8
7153 jmpl %r27+0, %r27
7154 .word 0xc1bfda00 ! 176: STDFA_R stda %f0, [%r0, %r31]
7155splash_cmpr_10_131:
7156 mov 0, %r18
7157 sllx %r18, 63, %r18
7158 rd %tick, %r17
7159 add %r17, 0x50, %r17
7160 or %r17, %r18, %r17
7161 ta T_CHANGE_HPRIV
7162 wrhpr %r17, %g0, %hsys_tick_cmpr
7163 .word 0xb3800011 ! 177: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
7164splash_cmpr_10_132:
7165 mov 0, %r18
7166 sllx %r18, 63, %r18
7167 rd %tick, %r17
7168 add %r17, 0x50, %r17
7169 or %r17, %r18, %r17
7170 ta T_CHANGE_HPRIV
7171 wrhpr %r17, %g0, %hsys_tick_cmpr
7172 ta T_CHANGE_PRIV
7173 .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
7174 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
7175 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
7176 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
7177memptr_10_135:
7178 set user_data_start, %r31
7179 .word 0x8584f95b ! 182: WRCCR_I wr %r19, 0x195b, %ccr
7180memptr_10_136:
7181 set 0x60340000, %r31
7182 .word 0x8581a7c6 ! 183: WRCCR_I wr %r6, 0x07c6, %ccr
7183 .word 0xe677e0f2 ! 184: STX_I stx %r19, [%r31 + 0x00f2]
7184 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
7185fpinit_10_138:
7186 nop
7187 setx fp_data_quads, %r19, %r20
7188 ldd [%r20], %f0
7189 ldd [%r20+8], %f4
7190 ld [%r20+16], %fsr
7191 ld [%r20+24], %r19
7192 wr %r19, %g0, %gsr
7193 .word 0x91a009c4 ! 186: FDIVd fdivd %f0, %f4, %f8
7194 .word 0xe1bfc3e0 ! 187: STDFA_R stda %f16, [%r0, %r31]
7195fpinit_10_140:
7196 nop
7197 setx fp_data_quads, %r19, %r20
7198 ldd [%r20], %f0
7199 ldd [%r20+8], %f4
7200 ld [%r20+16], %fsr
7201 ld [%r20+24], %r19
7202 wr %r19, %g0, %gsr
7203 .word 0x91a009a4 ! 188: FDIVs fdivs %f0, %f4, %f8
7204ceter_10_141:
7205 nop
7206 ta T_CHANGE_HPRIV
7207 mov 1, %r17
7208 sllx %r17, 60, %r17
7209 mov 0x18, %r16
7210 stxa %r17, [%r16]0x4c
7211 ta T_CHANGE_NONHPRIV
7212 .word 0x97410000 ! 189: RDTICK rd %tick, %r11
7213 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
7214 .word 0x8d802004 ! 191: WRFPRS_I wr %r0, 0x0004, %fprs
7215 nop
7216 ta T_CHANGE_HPRIV ! macro
7217donret_10_142:
7218 rd %pc, %r12
7219 add %r12, (donretarg_10_142-donret_10_142+4), %r12
7220 add %r12, 0x4, %r11 ! seq tnpc
7221 wrpr %g0, 0x1, %tl
7222 wrpr %g0, %r12, %tpc
7223 wrpr %g0, %r11, %tnpc
7224 set (0x00151b00 | (0x83 << 24)), %r13
7225 and %r12, 0xfff, %r14
7226 sllx %r14, 30, %r14
7227 or %r13, %r14, %r20
7228 wrpr %r20, %g0, %tstate
7229 wrhpr %g0, 0x41f, %htstate
7230 ta T_CHANGE_NONPRIV ! rand=0 (10)
7231 retry
7232donretarg_10_142:
7233 .word 0xd2ffe0c0 ! 192: SWAPA_I swapa %r9, [%r31 + 0x00c0] %asi
7234 .word 0x879a800d ! 193: WRHPR_HINTP_R wrhpr %r10, %r13, %hintp
7235splash_cmpr_10_143:
7236 mov 0, %r18
7237 sllx %r18, 63, %r18
7238 rd %tick, %r17
7239 add %r17, 0x70, %r17
7240 or %r17, %r18, %r17
7241 ta T_CHANGE_HPRIV
7242 wrhpr %r17, %g0, %hsys_tick_cmpr
7243 .word 0xaf800011 ! 194: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
7244 nop
7245 ta T_CHANGE_HPRIV
7246 mov 0x10+1, %r10
7247 set sync_thr_counter5, %r23
7248#ifndef SPC
7249 ldxa [%g0]0x63, %o1
7250 and %o1, 0x38, %o1
7251 add %o1, %r23, %r23
7252 sllx %o1, 5, %o3 !(CID*256)
7253#endif
7254 cas [%r23],%g0,%r10 !lock
7255 brnz %r10, cwq_10_144
7256 rd %asi, %r12
7257 wr %g0, 0x40, %asi
7258 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
7259 and %l1, 0x3, %l1 ! Check if busy/enabled ..
7260 cmp %l1, 1
7261 bne cwq_10_144
7262 set CWQ_BASE, %l6
7263#ifndef SPC
7264 add %l6, %o3, %l6
7265#endif
7266 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
7267 best_set_reg(0x20610010, %l1, %l2) !# Control Word
7268 sllx %l2, 32, %l2
7269 stx %l2, [%l6 + 0x0]
7270 membar #Sync
7271 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
7272 sub %l2, 0x40, %l2
7273 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
7274 wr %r12, %g0, %asi
7275 st %g0, [%r23]
7276cwq_10_144:
7277 ta T_CHANGE_NONHPRIV
7278 .word 0x97414000 ! 195: RDPC rd %pc, %r11
7279br_badelay2_10_145:
7280 .word 0x34800001 ! 1: BG bg,a <label_0x1>
7281 pdist %f10, %f24, %f24
7282 .word 0xa1b34304 ! 196: ALIGNADDRESS alignaddr %r13, %r4, %r16
7283splash_tba_10_146:
7284 nop
7285 ta T_CHANGE_PRIV
7286 setx 0x0000000000380000, %r11, %r12
7287 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
7288 nop
7289 mov 0x80, %g3
7290 stxa %g3, [%g3] 0x5f
7291 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
7292 .word 0x81460000 ! 199: RD_STICK_REG stbar
7293 .word 0xd01fe1d8 ! 200: LDD_I ldd [%r31 + 0x01d8], %r8
7294 nop
7295 ta T_CHANGE_HPRIV
7296 mov 0x10+1, %r10
7297 set sync_thr_counter5, %r23
7298#ifndef SPC
7299 ldxa [%g0]0x63, %o1
7300 and %o1, 0x38, %o1
7301 add %o1, %r23, %r23
7302 sllx %o1, 5, %o3 !(CID*256)
7303#endif
7304 cas [%r23],%g0,%r10 !lock
7305 brnz %r10, cwq_10_147
7306 rd %asi, %r12
7307 wr %g0, 0x40, %asi
7308 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
7309 and %l1, 0x3, %l1 ! Check if busy/enabled ..
7310 cmp %l1, 1
7311 bne cwq_10_147
7312 set CWQ_BASE, %l6
7313#ifndef SPC
7314 add %l6, %o3, %l6
7315#endif
7316 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
7317 best_set_reg(0x20610030, %l1, %l2) !# Control Word
7318 sllx %l2, 32, %l2
7319 stx %l2, [%l6 + 0x0]
7320 membar #Sync
7321 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
7322 sub %l2, 0x40, %l2
7323 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
7324 wr %r12, %g0, %asi
7325 st %g0, [%r23]
7326cwq_10_147:
7327 ta T_CHANGE_NONHPRIV
7328 .word 0xa3414000 ! 201: RDPC rd %pc, %r17
7329 nop
7330 nop
7331 ta T_CHANGE_PRIV
7332 wrpr %g0, %g0, %gl
7333 nop
7334 nop
7335 setx join_lbl_0_0, %g1, %g2
7336 jmp %g2
7337 nop
7338fork_lbl_0_4:
7339 ta T_CHANGE_NONHPRIV
7340 nop
7341 ta T_CHANGE_HPRIV ! macro
7342donret_8_0:
7343 rd %pc, %r12
7344 add %r12, (donretarg_8_0-donret_8_0), %r12
7345 add %r12, 0x8, %r11 ! nonseq tnpc
7346 wrpr %g0, 0x2, %tl
7347 wrpr %g0, %r12, %tpc
7348 wrpr %g0, %r11, %tnpc
7349 set (0x009e6200 | (0x83 << 24)), %r13
7350 and %r12, 0xfff, %r14
7351 sllx %r14, 30, %r14
7352 or %r13, %r14, %r20
7353 wrpr %r20, %g0, %tstate
7354 wrhpr %g0, 0x31d, %htstate
7355 ta T_CHANGE_NONPRIV ! rand=0 (8)
7356 retry
7357donretarg_8_0:
7358 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
7359reduce_priv_lvl_8_1:
7360 ta T_CHANGE_NONPRIV ! macro
7361change_to_randtl_8_2:
7362 ta T_CHANGE_PRIV ! macro
7363done_change_to_randtl_8_2:
7364 .word 0x8f902000 ! 2: WRPR_TL_I wrpr %r0, 0x0000, %tl
7365 .word 0xdadfe0c0 ! 3: LDXA_I ldxa [%r31, + 0x00c0] %asi, %r13
7366 .word 0xda800c20 ! 4: LDUWA_R lduwa [%r0, %r0] 0x61, %r13
7367ibp_8_3:
7368 nop
7369 .word 0xe19fe080 ! 5: LDDFA_I ldda [%r31, 0x0080], %f16
7370intveclr_8_4:
7371 nop
7372 ta T_CHANGE_HPRIV
7373 setx 0xf863df169459b59c, %r1, %r28
7374 stxa %r28, [%g0] 0x72
7375 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
7376 setx 0x00d53de225ae8e71, %r1, %r28
7377 stxa %r28, [%g0] 0x73
7378intvec_8_5:
7379 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
7380splash_tba_8_6:
7381 nop
7382 ta T_CHANGE_PRIV
7383 setx 0x00000000003a0000, %r11, %r12
7384 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
7385memptr_8_7:
7386 set 0x60740000, %r31
7387 .word 0x8584f3f4 ! 9: WRCCR_I wr %r19, 0x13f4, %ccr
7388 .word 0xa1902001 ! 10: WRPR_GL_I wrpr %r0, 0x0001, %-
7389fpinit_8_8:
7390 nop
7391 setx fp_data_quads, %r19, %r20
7392 ldd [%r20], %f0
7393 ldd [%r20+8], %f4
7394 ld [%r20+16], %fsr
7395 ld [%r20+24], %r19
7396 wr %r19, %g0, %gsr
7397 .word 0x87a80a44 ! 11: FCMPd fcmpd %fcc<n>, %f0, %f4
7398 .word 0xda800bc0 ! 12: LDUWA_R lduwa [%r0, %r0] 0x5e, %r13
7399ibp_8_9:
7400 nop
7401 .word 0xc3ec8031 ! 13: PREFETCHA_R prefetcha [%r18, %r17] 0x01, #one_read
7402memptr_8_10:
7403 set 0x60140000, %r31
7404 .word 0x85826e59 ! 14: WRCCR_I wr %r9, 0x0e59, %ccr
7405pmu_8_11:
7406 nop
7407 setx 0xfffff3f7fffff2ca, %g1, %g7
7408 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
7409 .word 0xe41fe100 ! 16: LDD_I ldd [%r31 + 0x0100], %r18
7410 .word 0xe49fc240 ! 17: LDDA_R ldda [%r31, %r0] 0x12, %r18
7411brcommon2_8_12:
7412 nop
7413 setx common_target, %r12, %r27
7414 ba,a .+12
7415 .word 0xa3a00554 ! 1: FSQRTd fsqrt
7416 ba,a .+8
7417 jmpl %r27+0, %r27
7418 .word 0xe1bfe120 ! 18: STDFA_I stda %f16, [0x0120, %r31]
7419intveclr_8_13:
7420 nop
7421 ta T_CHANGE_HPRIV
7422 setx 0xcf5cae19956b593d, %r1, %r28
7423 stxa %r28, [%g0] 0x72
7424 ta T_CHANGE_NONHPRIV
7425 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
7426intveclr_8_14:
7427 nop
7428 ta T_CHANGE_HPRIV
7429 setx 0xaf872a307924635d, %r1, %r28
7430 stxa %r28, [%g0] 0x72
7431 ta T_CHANGE_NONHPRIV
7432 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
7433pmu_8_15:
7434 nop
7435 setx 0xfffffe41fffffbc4, %g1, %g7
7436 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
7437 .word 0x24cd0001 ! 22: BRLEZ brlez,a,pt %r20,<label_0xd0001>
7438 .word 0x926aaf34 ! 23: UDIVX_I udivx %r10, 0x0f34, %r9
7439dvapa_8_17:
7440 nop
7441 ta T_CHANGE_HPRIV
7442 mov 0xa05, %r20
7443 mov 0x12, %r19
7444 sllx %r20, 23, %r20
7445 or %r19, %r20, %r19
7446 stxa %r19, [%g0] ASI_LSU_CONTROL
7447 mov 0x38, %r18
7448 stxa %r31, [%r18]0x58
7449 ta T_CHANGE_NONHPRIV
7450 .word 0xe697c031 ! 24: LDUHA_R lduha [%r31, %r17] 0x01, %r19
7451splash_htba_8_18:
7452 nop
7453 ta T_CHANGE_HPRIV
7454 setx 0x00000000002a0000, %r11, %r12
7455 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
7456 .word 0xe797e0d0 ! 26: LDQFA_I - [%r31, 0x00d0], %f19
7457 .word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, <label_0x1>
7458 .word 0x8d9032a7 ! 27: WRPR_PSTATE_I wrpr %r0, 0x12a7, %pstate
7459 .word 0x91694013 ! 28: SDIVX_R sdivx %r5, %r19, %r8
7460splash_hpstate_8_20:
7461 ta T_CHANGE_NONHPRIV
7462 .word 0x81983447 ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x1447, %hpstate
7463intveclr_8_21:
7464 nop
7465 ta T_CHANGE_HPRIV
7466 setx 0x82c13c9d580c5c82, %r1, %r28
7467 stxa %r28, [%g0] 0x72
7468 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
7469#if (defined SPC || defined CMP1)
7470!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_22) + 32, 16, 16)) -> intp(1,0,28)
7471#else
7472 setx 0x4da1055b0f33ea5c, %r1, %r28
7473 stxa %r28, [%g0] 0x73
7474#endif
7475intvec_8_22:
7476 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
7477splash_tba_8_23:
7478 nop
7479 ta T_CHANGE_PRIV
7480 setx 0x00000000003a0000, %r11, %r12
7481 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
7482splash_lsu_8_24:
7483 nop
7484 ta T_CHANGE_HPRIV
7485 set 0xf9baea89, %r2
7486 mov 0x7, %r1
7487 sllx %r1, 32, %r1
7488 or %r1, %r2, %r2
7489 stxa %r2, [%r0] ASI_LSU_CONTROL
7490 ta T_CHANGE_NONHPRIV
7491 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
7492splash_hpstate_8_25:
7493 .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, <label_0x1>
7494 .word 0x81983707 ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x1707, %hpstate
7495pmu_8_26:
7496 nop
7497 ta T_CHANGE_PRIV
7498 setx 0xfffff7cafffff35f, %g1, %g7
7499 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
7500 .word 0x87a8ca52 ! 36: FCMPd fcmpd %fcc<n>, %f34, %f18
7501jmptr_8_28:
7502 nop
7503 best_set_reg(0xe1a00000, %r20, %r27)
7504 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
7505 .word 0x87ac4a44 ! 38: FCMPd fcmpd %fcc<n>, %f48, %f4
7506intveclr_8_30:
7507 nop
7508 ta T_CHANGE_HPRIV
7509 setx 0x11f65b22150c9fe2, %r1, %r28
7510 stxa %r28, [%g0] 0x72
7511 ta T_CHANGE_NONHPRIV
7512 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
7513ibp_8_31:
7514 nop
7515 ta T_CHANGE_NONHPRIV
7516 .word 0xdadfc029 ! 40: LDXA_R ldxa [%r31, %r9] 0x01, %r13
7517 invalw
7518 mov 0xb1, %r30
7519 .word 0x83d0001e ! 41: Tcc_R te icc_or_xcc, %r0 + %r30
7520intveclr_8_32:
7521 nop
7522 ta T_CHANGE_HPRIV
7523 setx 0x9c48209855c4d309, %r1, %r28
7524 stxa %r28, [%g0] 0x72
7525 ta T_CHANGE_NONHPRIV
7526 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
7527ibp_8_33:
7528 nop
7529 .word 0xa5a4c9ac ! 43: FDIVs fdivs %f19, %f12, %f18
7530 .word 0xa190200c ! 44: WRPR_GL_I wrpr %r0, 0x000c, %-
7531fpinit_8_34:
7532 nop
7533 setx fp_data_quads, %r19, %r20
7534 ldd [%r20], %f0
7535 ldd [%r20+8], %f4
7536 ld [%r20+16], %fsr
7537 ld [%r20+24], %r19
7538 wr %r19, %g0, %gsr
7539 .word 0x87a80a44 ! 45: FCMPd fcmpd %fcc<n>, %f0, %f4
7540 .word 0x91948012 ! 46: WRPR_PIL_R wrpr %r18, %r18, %pil
7541 nop
7542 ta T_CHANGE_HPRIV ! macro
7543donret_8_36:
7544 rd %pc, %r12
7545 add %r12, (donretarg_8_36-donret_8_36+4), %r12
7546 add %r12, 0x4, %r11 ! seq tnpc
7547 wrpr %g0, 0x1, %tl
7548 wrpr %g0, %r12, %tpc
7549 wrpr %g0, %r11, %tnpc
7550 set (0x00c57200 | (0x89 << 24)), %r13
7551 and %r12, 0xfff, %r14
7552 sllx %r14, 30, %r14
7553 or %r13, %r14, %r20
7554 wrpr %r20, %g0, %tstate
7555 wrhpr %g0, 0xd45, %htstate
7556 ta T_CHANGE_NONPRIV ! rand=0 (8)
7557 .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, <label_0x1>
7558 retry
7559donretarg_8_36:
7560 .word 0xe26fe12e ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x012e]
7561 .word 0xe19fc3e0 ! 48: LDDFA_R ldda [%r31, %r0], %f16
7562change_to_randtl_8_37:
7563 ta T_CHANGE_HPRIV ! macro
7564done_change_to_randtl_8_37:
7565 .word 0x8f902002 ! 49: WRPR_TL_I wrpr %r0, 0x0002, %tl
7566 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
7567 .word 0xc32fc000 ! 51: STXFSR_R st-sfr %f1, [%r0, %r31]
7568intveclr_8_39:
7569 nop
7570 ta T_CHANGE_HPRIV
7571 setx 0x188a3fe8433d3d6d, %r1, %r28
7572 stxa %r28, [%g0] 0x72
7573 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
7574 .word 0x9f803b4b ! 53: SIR sir 0x1b4b
7575 .word 0xe337e154 ! 54: STQF_I - %f17, [0x0154, %r31]
7576dvapa_8_40:
7577 nop
7578 ta T_CHANGE_HPRIV
7579 mov 0xa26, %r20
7580 mov 0x1c, %r19
7581 sllx %r20, 23, %r20
7582 or %r19, %r20, %r19
7583 stxa %r19, [%g0] ASI_LSU_CONTROL
7584 mov 0x38, %r18
7585 stxa %r31, [%r18]0x58
7586 ta T_CHANGE_NONHPRIV
7587 .word 0xe1bfe0c0 ! 55: STDFA_I stda %f16, [0x00c0, %r31]
7588 .word 0xe22fe110 ! 56: STB_I stb %r17, [%r31 + 0x0110]
7589 setx 0x38a5db3b1649d20f, %r1, %r28
7590 stxa %r28, [%g0] 0x73
7591intvec_8_41:
7592 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
7593brcommon2_8_42:
7594 nop
7595 setx common_target, %r12, %r27
7596 ba,a .+12
7597 .word 0x95a409d1 ! 1: FDIVd fdivd %f16, %f48, %f10
7598 ba,a .+8
7599 jmpl %r27+0, %r27
7600 .word 0xe19fe120 ! 58: LDDFA_I ldda [%r31, 0x0120], %f16
7601jmptr_8_43:
7602 nop
7603 best_set_reg(0xe1a00000, %r20, %r27)
7604 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
7605memptr_8_44:
7606 set 0x60740000, %r31
7607 .word 0x8580673f ! 60: WRCCR_I wr %r1, 0x073f, %ccr
7608 nop
7609 ta T_CHANGE_HPRIV
7610 mov 0x8+1, %r10
7611 set sync_thr_counter5, %r23
7612#ifndef SPC
7613 ldxa [%g0]0x63, %o1
7614 and %o1, 0x38, %o1
7615 add %o1, %r23, %r23
7616 sllx %o1, 5, %o3 !(CID*256)
7617#endif
7618 cas [%r23],%g0,%r10 !lock
7619 brnz %r10, cwq_8_45
7620 rd %asi, %r12
7621 wr %g0, 0x40, %asi
7622 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
7623 and %l1, 0x3, %l1 ! Check if busy/enabled ..
7624 cmp %l1, 1
7625 bne cwq_8_45
7626 set CWQ_BASE, %l6
7627#ifndef SPC
7628 add %l6, %o3, %l6
7629#endif
7630 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
7631 best_set_reg(0x20610080, %l1, %l2) !# Control Word
7632 sllx %l2, 32, %l2
7633 stx %l2, [%l6 + 0x0]
7634 membar #Sync
7635 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
7636 sub %l2, 0x40, %l2
7637 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
7638 wr %r12, %g0, %asi
7639 st %g0, [%r23]
7640cwq_8_45:
7641 ta T_CHANGE_NONHPRIV
7642 .word 0x97414000 ! 61: RDPC rd %pc, %r11
7643fpinit_8_46:
7644 nop
7645 setx fp_data_quads, %r19, %r20
7646 ldd [%r20], %f0
7647 ldd [%r20+8], %f4
7648 ld [%r20+16], %fsr
7649 ld [%r20+24], %r19
7650 wr %r19, %g0, %gsr
7651 .word 0x89a009c4 ! 62: FDIVd fdivd %f0, %f4, %f4
7652 .word 0x91d020b3 ! 63: Tcc_I ta icc_or_xcc, %r0 + 179
7653 .word 0x99a309c1 ! 64: FDIVd fdivd %f12, %f32, %f12
7654 nop
7655 ta T_CHANGE_HPRIV
7656 mov 0x8, %r10
7657 set sync_thr_counter6, %r23
7658#ifndef SPC
7659 ldxa [%g0]0x63, %o1
7660 and %o1, 0x38, %o1
7661 add %o1, %r23, %r23
7662#endif
7663 cas [%r23],%g0,%r10 !lock
7664 brnz %r10, sma_8_48
7665 rd %asi, %r12
7666 wr %g0, 0x40, %asi
7667 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
7668 set 0x00021fff, %g1
7669 stxa %g1, [%g0 + 0x80] %asi
7670 wr %r12, %g0, %asi
7671 st %g0, [%r23]
7672sma_8_48:
7673 ta T_CHANGE_NONHPRIV
7674 .word 0xe5e7e010 ! 65: CASA_R casa [%r31] %asi, %r16, %r18
7675 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
7676 .word 0xe537e1f0 ! 67: STQF_I - %f18, [0x01f0, %r31]
7677 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
7678reduce_priv_lvl_8_49:
7679 ta T_CHANGE_NONHPRIV ! macro
7680trapasi_8_50:
7681 nop
7682 mov 0x3d8, %r1 ! (VA for ASI 0x25)
7683 .word 0xe48844a0 ! 69: LDUBA_R lduba [%r1, %r0] 0x25, %r18
7684splash_tba_8_51:
7685 nop
7686 ta T_CHANGE_PRIV
7687 setx 0x00000000003a0000, %r11, %r12
7688 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
7689dvapa_8_52:
7690 nop
7691 ta T_CHANGE_HPRIV
7692 mov 0x8fe, %r20
7693 mov 0x15, %r19
7694 sllx %r20, 23, %r20
7695 or %r19, %r20, %r19
7696 stxa %r19, [%g0] ASI_LSU_CONTROL
7697 mov 0x38, %r18
7698 stxa %r31, [%r18]0x58
7699 ta T_CHANGE_NONHPRIV
7700 .word 0xe51fe0d0 ! 71: LDDF_I ldd [%r31, 0x00d0], %f18
7701 .word 0x9148c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r8
7702 nop
7703 ta T_CHANGE_HPRIV
7704 mov 0x8, %r10
7705 set sync_thr_counter6, %r23
7706#ifndef SPC
7707 ldxa [%g0]0x63, %o1
7708 and %o1, 0x38, %o1
7709 add %o1, %r23, %r23
7710#endif
7711 cas [%r23],%g0,%r10 !lock
7712 brnz %r10, sma_8_53
7713 rd %asi, %r12
7714 wr %g0, 0x40, %asi
7715 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
7716 set 0x00121fff, %g1
7717 stxa %g1, [%g0 + 0x80] %asi
7718 wr %r12, %g0, %asi
7719 st %g0, [%r23]
7720sma_8_53:
7721 ta T_CHANGE_NONHPRIV
7722 .word 0xe9e7e011 ! 73: CASA_R casa [%r31] %asi, %r17, %r20
7723mondo_8_54:
7724 nop
7725 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
7726 ta T_CHANGE_PRIV
7727 stxa %r19, [%r0+0x3c8] %asi
7728 .word 0x9d90c004 ! 74: WRPR_WSTATE_R wrpr %r3, %r4, %wstate
7729intveclr_8_55:
7730 nop
7731 ta T_CHANGE_HPRIV
7732 setx 0xe4ac3efa6d5ca76a, %r1, %r28
7733 stxa %r28, [%g0] 0x72
7734 ta T_CHANGE_NONHPRIV
7735 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
7736 .word 0xe937e101 ! 76: STQF_I - %f20, [0x0101, %r31]
7737splash_hpstate_8_56:
7738 ta T_CHANGE_NONHPRIV
7739 .word 0x24c94001 ! 1: BRLEZ brlez,a,pt %r5,<label_0x94001>
7740 .word 0x81982489 ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x0489, %hpstate
7741br_badelay3_8_57:
7742 .word 0x20800001 ! 1: BN bn,a <label_0x1>
7743 .word 0x22800001 ! 1: BE be,a <label_0x1>
7744 .word 0xa9a209d2 ! 1: FDIVd fdivd %f8, %f18, %f20
7745 .word 0x91a50825 ! 78: FADDs fadds %f20, %f5, %f8
7746br_longdelay1_8_58:
7747 .word 0x25400001 ! 1: FBPLG fblg,a,pn %fcc0, <label_0x1>
7748 .word 0xbfefc000 ! 79: RESTORE_R restore %r31, %r0, %r31
7749splash_lsu_8_59:
7750 nop
7751 ta T_CHANGE_HPRIV
7752 set 0x4a6d986e, %r2
7753 mov 0x1, %r1
7754 sllx %r1, 32, %r1
7755 or %r1, %r2, %r2
7756 stxa %r2, [%r0] ASI_LSU_CONTROL
7757 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
7758 .word 0x95b20592 ! 81: FCMPGT32 fcmpgt32 %d8, %d18, %r10
7759dvapa_8_60:
7760 nop
7761 ta T_CHANGE_HPRIV
7762 mov 0xae8, %r20
7763 mov 0x2, %r19
7764 sllx %r20, 23, %r20
7765 or %r19, %r20, %r19
7766 stxa %r19, [%g0] ASI_LSU_CONTROL
7767 mov 0x38, %r18
7768 stxa %r31, [%r18]0x58
7769 ta T_CHANGE_NONHPRIV
7770 .word 0xd4dfc034 ! 82: LDXA_R ldxa [%r31, %r20] 0x01, %r10
7771 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
7772 .word 0xa145c000 ! 84: RD_TICK_CMPR_REG rd %-, %r16
7773 .word 0xa1902000 ! 85: WRPR_GL_I wrpr %r0, 0x0000, %-
7774trapasi_8_62:
7775 nop
7776 mov 0x30, %r1 ! (VA for ASI 0x5a)
7777 .word 0xe8904b40 ! 86: LDUHA_R lduha [%r1, %r0] 0x5a, %r20
7778brcommon3_8_63:
7779 nop
7780 setx common_target, %r12, %r27
7781 lduw [%r27], %r12 ! Load common dest into dcache ..
7782 ba,a .+12
7783 .word 0xe937e1d0 ! 1: STQF_I - %f20, [0x01d0, %r31]
7784 ba,a .+8
7785 jmpl %r27+0, %r27
7786 .word 0xe89fc030 ! 87: LDDA_R ldda [%r31, %r16] 0x01, %r20
7787memptr_8_64:
7788 set 0x60540000, %r31
7789 .word 0x8584b954 ! 88: WRCCR_I wr %r18, 0x1954, %ccr
7790brcommon1_8_65:
7791 nop
7792 setx common_target, %r12, %r27
7793 lduw [%r27], %r12 ! Load common dest into dcache ..
7794 ba,a .+12
7795 .word 0xa9b7c7d3 ! 1: PDIST pdistn %d62, %d50, %d20
7796 ba,a .+8
7797 jmpl %r27+0, %r27
7798 .word 0x9f8031a6 ! 89: SIR sir 0x11a6
7799 .word 0x96c2227c ! 90: ADDCcc_I addccc %r8, 0x027c, %r11
7800fpinit_8_66:
7801 nop
7802 setx fp_data_quads, %r19, %r20
7803 ldd [%r20], %f0
7804 ldd [%r20+8], %f4
7805 ld [%r20+16], %fsr
7806 ld [%r20+24], %r19
7807 wr %r19, %g0, %gsr
7808 .word 0xc3e820e7 ! 91: PREFETCHA_I prefetcha [%r0, + 0x00e7] %asi, #one_read
7809 nop
7810 ta T_CHANGE_HPRIV ! macro
7811donret_8_67:
7812 rd %pc, %r12
7813 add %r12, (donretarg_8_67-donret_8_67), %r12
7814 add %r12, 0x4, %r11 ! seq tnpc
7815 wrpr %g0, 0x1, %tl
7816 wrpr %g0, %r12, %tpc
7817 wrpr %g0, %r11, %tnpc
7818 set (0x0013c100 | (0x88 << 24)), %r13
7819 and %r12, 0xfff, %r14
7820 sllx %r14, 30, %r14
7821 or %r13, %r14, %r20
7822 wrpr %r20, %g0, %tstate
7823 wrhpr %g0, 0x1fc4, %htstate
7824 ta T_CHANGE_NONPRIV ! rand=0 (8)
7825 .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
7826 done
7827donretarg_8_67:
7828 .word 0xa1a489c7 ! 92: FDIVd fdivd %f18, %f38, %f16
7829change_to_randtl_8_68:
7830 ta T_CHANGE_PRIV ! macro
7831done_change_to_randtl_8_68:
7832 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
7833 set 0x36f5, %l3
7834 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
7835 .word 0x9bb4c7d1 ! 94: PDIST pdistn %d50, %d48, %d44
7836 .word 0xdadfc034 ! 95: LDXA_R ldxa [%r31, %r20] 0x01, %r13
7837splash_tba_8_70:
7838 nop
7839 ta T_CHANGE_PRIV
7840 setx 0x00000000003a0000, %r11, %r12
7841 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
7842 setx 0x7d02c9fa812ffb9b, %r1, %r28
7843 stxa %r28, [%g0] 0x73
7844intvec_8_71:
7845 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
7846memptr_8_72:
7847 set user_data_start, %r31
7848 .word 0x8585214e ! 98: WRCCR_I wr %r20, 0x014e, %ccr
7849fpinit_8_73:
7850 nop
7851 setx fp_data_quads, %r19, %r20
7852 ldd [%r20], %f0
7853 ldd [%r20+8], %f4
7854 ld [%r20+16], %fsr
7855 ld [%r20+24], %r19
7856 wr %r19, %g0, %gsr
7857 .word 0x91a009a4 ! 99: FDIVs fdivs %f0, %f4, %f8
7858intveclr_8_74:
7859 nop
7860 ta T_CHANGE_HPRIV
7861 setx 0x50b80d86aa895d7c, %r1, %r28
7862 stxa %r28, [%g0] 0x72
7863 ta T_CHANGE_NONHPRIV
7864 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
7865 nop
7866 ta T_CHANGE_HPRIV ! macro
7867donret_8_75:
7868 rd %pc, %r12
7869 add %r12, (donretarg_8_75-donret_8_75+4), %r12
7870 add %r12, 0x4, %r11 ! seq tnpc
7871 wrpr %g0, 0x1, %tl
7872 wrpr %g0, %r12, %tpc
7873 wrpr %g0, %r11, %tnpc
7874 set (0x00a50600 | (20 << 24)), %r13
7875 and %r12, 0xfff, %r14
7876 sllx %r14, 30, %r14
7877 or %r13, %r14, %r20
7878 wrpr %r20, %g0, %tstate
7879 wrhpr %g0, 0xf85, %htstate
7880 ta T_CHANGE_NONHPRIV ! rand=1 (8)
7881 done
7882donretarg_8_75:
7883 .word 0xa5a4c9c8 ! 101: FDIVd fdivd %f50, %f8, %f18
7884 .word 0x81dc400b ! 102: FLUSH_R flush
7885ibp_8_76:
7886 nop
7887 .word 0xe1bfdc00 ! 103: STDFA_R stda %f16, [%r0, %r31]
7888 .word 0xe89fe008 ! 104: LDDA_I ldda [%r31, + 0x0008] %asi, %r20
7889 nop
7890 ta T_CHANGE_HPRIV ! macro
7891donret_8_77:
7892 rd %pc, %r12
7893 add %r12, (donretarg_8_77-donret_8_77+4), %r12
7894 add %r12, 0x4, %r11 ! seq tnpc
7895 wrpr %g0, 0x1, %tl
7896 wrpr %g0, %r12, %tpc
7897 wrpr %g0, %r11, %tnpc
7898 set (0x00a2dd00 | (0x55 << 24)), %r13
7899 and %r12, 0xfff, %r14
7900 sllx %r14, 30, %r14
7901 or %r13, %r14, %r20
7902 wrpr %r20, %g0, %tstate
7903 wrhpr %g0, 0x1e4d, %htstate
7904 ta T_CHANGE_NONPRIV ! rand=0 (8)
7905 done
7906donretarg_8_77:
7907 .word 0x93a509c4 ! 105: FDIVd fdivd %f20, %f4, %f40
7908 .word 0x8d902e1f ! 106: WRPR_PSTATE_I wrpr %r0, 0x0e1f, %pstate
7909 .word 0x9353c000 ! 107: RDPR_FQ <illegal instruction>
7910 .word 0xab8326c7 ! 108: WR_CLEAR_SOFTINT_I wr %r12, 0x06c7, %clear_softint
7911 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
7912 .word 0xc1bfd920 ! 110: STDFA_R stda %f0, [%r0, %r31]
7913br_badelay3_8_80:
7914 .word 0x34800001 ! 1: BG bg,a <label_0x1>
7915 .word 0xf54c4cb2 ! Random illegal ?
7916 .word 0x91a00547 ! 1: FSQRTd fsqrt
7917 .word 0x93a2c82a ! 111: FADDs fadds %f11, %f10, %f9
7918ibp_8_81:
7919 nop
7920 ta T_CHANGE_NONHPRIV
7921 .word 0xd93fc008 ! 112: STDF_R std %f12, [%r8, %r31]
7922memptr_8_82:
7923 set 0x60140000, %r31
7924 .word 0x858520b9 ! 113: WRCCR_I wr %r20, 0x00b9, %ccr
7925mondo_8_83:
7926 nop
7927 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
7928 ta T_CHANGE_PRIV
7929 stxa %r19, [%r0+0x3c8] %asi
7930 .word 0x9d93400b ! 114: WRPR_WSTATE_R wrpr %r13, %r11, %wstate
7931 .word 0x91508000 ! 115: RDPR_TSTATE <illegal instruction>
7932splash_lsu_8_84:
7933 nop
7934 ta T_CHANGE_HPRIV
7935 set 0x105ec14c, %r2
7936 mov 0x6, %r1
7937 sllx %r1, 32, %r1
7938 or %r1, %r2, %r2
7939 stxa %r2, [%r0] ASI_LSU_CONTROL
7940 ta T_CHANGE_NONHPRIV
7941 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
7942splash_cmpr_8_85:
7943 mov 0, %r18
7944 sllx %r18, 63, %r18
7945 rd %tick, %r17
7946 add %r17, 0x60, %r17
7947 or %r17, %r18, %r17
7948 ta T_CHANGE_PRIV
7949 .word 0xb3800011 ! 117: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
7950splash_hpstate_8_86:
7951 ta T_CHANGE_NONHPRIV
7952 .word 0x8198200d ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x000d, %hpstate
7953 .word 0xa1902000 ! 119: WRPR_GL_I wrpr %r0, 0x0000, %-
7954 nop
7955 ta T_CHANGE_HPRIV
7956 mov 0x8, %r10
7957 set sync_thr_counter6, %r23
7958#ifndef SPC
7959 ldxa [%g0]0x63, %o1
7960 and %o1, 0x38, %o1
7961 add %o1, %r23, %r23
7962#endif
7963 cas [%r23],%g0,%r10 !lock
7964 brnz %r10, sma_8_87
7965 rd %asi, %r12
7966 wr %g0, 0x40, %asi
7967 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
7968 set 0x00061fff, %g1
7969 stxa %g1, [%g0 + 0x80] %asi
7970 wr %r12, %g0, %asi
7971 st %g0, [%r23]
7972sma_8_87:
7973 ta T_CHANGE_NONHPRIV
7974 .word 0xe1e7e008 ! 120: CASA_R casa [%r31] %asi, %r8, %r16
7975mondo_8_88:
7976 nop
7977 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
7978 stxa %r18, [%r0+0x3c8] %asi
7979 .word 0x9d94400a ! 121: WRPR_WSTATE_R wrpr %r17, %r10, %wstate
7980splash_lsu_8_89:
7981 nop
7982 ta T_CHANGE_HPRIV
7983 set 0xecefea66, %r2
7984 mov 0x4, %r1
7985 sllx %r1, 32, %r1
7986 or %r1, %r2, %r2
7987 stxa %r2, [%r0] ASI_LSU_CONTROL
7988 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
7989brcommon3_8_90:
7990 nop
7991 setx common_target, %r12, %r27
7992 lduw [%r27], %r12 ! Load common dest into dcache ..
7993 ba,a .+12
7994 .word 0xe1e7c029 ! 1: CASA_I casa [%r31] 0x 1, %r9, %r16
7995 ba,a .+8
7996 jmpl %r27+0, %r27
7997 .word 0xe0dfc02c ! 123: LDXA_R ldxa [%r31, %r12] 0x01, %r16
7998dvapa_8_91:
7999 nop
8000 ta T_CHANGE_HPRIV
8001 mov 0xd84, %r20
8002 mov 0x2, %r19
8003 sllx %r20, 23, %r20
8004 or %r19, %r20, %r19
8005 stxa %r19, [%g0] ASI_LSU_CONTROL
8006 mov 0x38, %r18
8007 stxa %r31, [%r18]0x58
8008 ta T_CHANGE_NONHPRIV
8009 .word 0xe19fe0a0 ! 124: LDDFA_I ldda [%r31, 0x00a0], %f16
8010 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
8011 .word 0xe1e7e00a ! 126: CASA_R casa [%r31] %asi, %r10, %r16
8012 setx 0x7bbf4d0134d41364, %r1, %r28
8013 stxa %r28, [%g0] 0x73
8014intvec_8_93:
8015 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8016 .word 0x8d802000 ! 128: WRFPRS_I wr %r0, 0x0000, %fprs
8017 .word 0xe0d7e1c8 ! 129: LDSHA_I ldsha [%r31, + 0x01c8] %asi, %r16
8018#if (defined SPC || defined CMP1)
8019!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_94) + 40, 16, 16)) -> intp(2,0,30)
8020#else
8021 setx 0x0bf97cedba6cebcb, %r1, %r28
8022 stxa %r28, [%g0] 0x73
8023#endif
8024intvec_8_94:
8025 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8026 .word 0x8d802000 ! 131: WRFPRS_I wr %r0, 0x0000, %fprs
8027 .word 0x8d903770 ! 132: WRPR_PSTATE_I wrpr %r0, 0x1770, %pstate
8028 .word 0x22ccc001 ! 1: BRZ brz,a,pt %r19,<label_0xcc001>
8029 .word 0x8d903f9f ! 133: WRPR_PSTATE_I wrpr %r0, 0x1f9f, %pstate
8030 setx 0x412ee7f06b8c783b, %r1, %r28
8031 stxa %r28, [%g0] 0x73
8032intvec_8_97:
8033 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8034 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
8035reduce_priv_lvl_8_98:
8036 ta T_CHANGE_NONHPRIV ! macro
8037ibp_8_99:
8038 nop
8039 ta T_CHANGE_NONHPRIV
8040 .word 0x97b4c494 ! 136: FCMPLE32 fcmple32 %d50, %d20, %r11
8041 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
8042change_to_randtl_8_101:
8043 ta T_CHANGE_HPRIV ! macro
8044done_change_to_randtl_8_101:
8045 .word 0x8f902000 ! 138: WRPR_TL_I wrpr %r0, 0x0000, %tl
8046splash_cmpr_8_102:
8047 mov 0, %r18
8048 sllx %r18, 63, %r18
8049 rd %tick, %r17
8050 add %r17, 0x60, %r17
8051 or %r17, %r18, %r17
8052 .word 0xaf800011 ! 139: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
8053 .word 0xe8cfe100 ! 140: LDSBA_I ldsba [%r31, + 0x0100] %asi, %r20
8054 nop
8055 ta T_CHANGE_HPRIV ! macro
8056donret_8_103:
8057 rd %pc, %r12
8058 add %r12, (donretarg_8_103-donret_8_103), %r12
8059 add %r12, 0x4, %r11 ! seq tnpc
8060 wrpr %g0, 0x1, %tl
8061 wrpr %g0, %r12, %tpc
8062 wrpr %g0, %r11, %tnpc
8063 set (0x00d65200 | (20 << 24)), %r13
8064 and %r12, 0xfff, %r14
8065 sllx %r14, 30, %r14
8066 or %r13, %r14, %r20
8067 wrpr %r20, %g0, %tstate
8068 wrhpr %g0, 0x1bef, %htstate
8069 ta T_CHANGE_NONPRIV ! rand=0 (8)
8070 .word 0x2acb4001 ! 1: BRNZ brnz,a,pt %r13,<label_0xb4001>
8071 done
8072donretarg_8_103:
8073 .word 0xe86fe1ad ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x01ad]
8074trapasi_8_104:
8075 nop
8076 mov 0x38, %r1 ! (VA for ASI 0x5b)
8077 .word 0xe8904b60 ! 142: LDUHA_R lduha [%r1, %r0] 0x5b, %r20
8078fpinit_8_105:
8079 nop
8080 setx fp_data_quads, %r19, %r20
8081 ldd [%r20], %f0
8082 ldd [%r20+8], %f4
8083 ld [%r20+16], %fsr
8084 ld [%r20+24], %r19
8085 wr %r19, %g0, %gsr
8086 .word 0x89b00484 ! 143: FCMPLE32 fcmple32 %d0, %d4, %r4
8087 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
8088change_to_randtl_8_107:
8089 ta T_CHANGE_HPRIV ! macro
8090done_change_to_randtl_8_107:
8091 .word 0x8f902000 ! 145: WRPR_TL_I wrpr %r0, 0x0000, %tl
8092dvapa_8_108:
8093 nop
8094 ta T_CHANGE_HPRIV
8095 mov 0xc60, %r20
8096 mov 0x1f, %r19
8097 sllx %r20, 23, %r20
8098 or %r19, %r20, %r19
8099 stxa %r19, [%g0] ASI_LSU_CONTROL
8100 mov 0x38, %r18
8101 stxa %r31, [%r18]0x58
8102 ta T_CHANGE_NONHPRIV
8103 .word 0xe93fc009 ! 146: STDF_R std %f20, [%r9, %r31]
8104 setx 0x5cc72336c3a63858, %r1, %r28
8105 stxa %r28, [%g0] 0x73
8106intvec_8_109:
8107 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8108 .word 0xe8cfe068 ! 148: LDSBA_I ldsba [%r31, + 0x0068] %asi, %r20
8109 .word 0xa7848004 ! 149: WR_GRAPHICS_STATUS_REG_R wr %r18, %r4, %-
8110 .word 0xe83fe160 ! 150: STD_I std %r20, [%r31 + 0x0160]
8111br_longdelay3_8_112:
8112 nop
8113 not %g0, %r12
8114 jmp %r12
8115 .word 0x99902002 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0002, %cleanwin
8116 .word 0xa9a00551 ! 152: FSQRTd fsqrt
8117 .word 0xe19fe100 ! 153: LDDFA_I ldda [%r31, 0x0100], %f16
8118splash_cmpr_8_113:
8119 mov 0, %r18
8120 sllx %r18, 63, %r18
8121 rd %tick, %r17
8122 add %r17, 0x50, %r17
8123 or %r17, %r18, %r17
8124 .word 0xb3800011 ! 154: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
8125 .word 0x8798c005 ! 155: WRHPR_HINTP_R wrhpr %r3, %r5, %hintp
8126 .word 0x91914005 ! 156: WRPR_PIL_R wrpr %r5, %r5, %pil
8127ibp_8_115:
8128 nop
8129 .word 0xd6dfc029 ! 157: LDXA_R ldxa [%r31, %r9] 0x01, %r11
8130fpinit_8_116:
8131 nop
8132 setx fp_data_quads, %r19, %r20
8133 ldd [%r20], %f0
8134 ldd [%r20+8], %f4
8135 ld [%r20+16], %fsr
8136 ld [%r20+24], %r19
8137 wr %r19, %g0, %gsr
8138 .word 0x89b00484 ! 158: FCMPLE32 fcmple32 %d0, %d4, %r4
8139 nop
8140 ta T_CHANGE_HPRIV ! macro
8141donret_8_117:
8142 rd %pc, %r12
8143 add %r12, (donretarg_8_117-donret_8_117), %r12
8144 add %r12, 0x4, %r11 ! seq tnpc
8145 wrpr %g0, 0x1, %tl
8146 wrpr %g0, %r12, %tpc
8147 wrpr %g0, %r11, %tnpc
8148 set (0x00997600 | (0x83 << 24)), %r13
8149 and %r12, 0xfff, %r14
8150 sllx %r14, 30, %r14
8151 or %r13, %r14, %r20
8152 wrpr %r20, %g0, %tstate
8153 wrhpr %g0, 0x16d5, %htstate
8154 ta T_CHANGE_NONPRIV ! rand=0 (8)
8155 done
8156donretarg_8_117:
8157 .word 0xd6ffe1a8 ! 159: SWAPA_I swapa %r11, [%r31 + 0x01a8] %asi
8158 .word 0xd6dfe000 ! 160: LDXA_I ldxa [%r31, + 0x0000] %asi, %r11
8159jmptr_8_118:
8160 nop
8161 best_set_reg(0xe1a00000, %r20, %r27)
8162 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
8163dvapa_8_119:
8164 nop
8165 ta T_CHANGE_HPRIV
8166 mov 0xfeb, %r20
8167 mov 0x1a, %r19
8168 sllx %r20, 23, %r20
8169 or %r19, %r20, %r19
8170 stxa %r19, [%g0] ASI_LSU_CONTROL
8171 mov 0x38, %r18
8172 stxa %r31, [%r18]0x58
8173 ta T_CHANGE_NONHPRIV
8174 .word 0x9bb287cc ! 162: PDIST pdistn %d10, %d12, %d44
8175 .word 0xa984c006 ! 163: WR_SET_SOFTINT_R wr %r19, %r6, %set_softint
8176 nop
8177 ta T_CHANGE_HPRIV ! macro
8178donret_8_120:
8179 rd %pc, %r12
8180 add %r12, (donretarg_8_120-donret_8_120+4), %r12
8181 add %r12, 0x4, %r11 ! seq tnpc
8182 wrpr %g0, 0x2, %tl
8183 wrpr %g0, %r12, %tpc
8184 wrpr %g0, %r11, %tnpc
8185 set (0x00ba8200 | (0x4f << 24)), %r13
8186 and %r12, 0xfff, %r14
8187 sllx %r14, 30, %r14
8188 or %r13, %r14, %r20
8189 wrpr %r20, %g0, %tstate
8190 wrhpr %g0, 0x685, %htstate
8191 ta T_CHANGE_NONHPRIV ! rand=1 (8)
8192 retry
8193donretarg_8_120:
8194 .word 0xa1a209c1 ! 164: FDIVd fdivd %f8, %f32, %f16
8195 nop
8196 ta T_CHANGE_HPRIV
8197 mov 0x8, %r10
8198 set sync_thr_counter6, %r23
8199#ifndef SPC
8200 ldxa [%g0]0x63, %o1
8201 and %o1, 0x38, %o1
8202 add %o1, %r23, %r23
8203#endif
8204 cas [%r23],%g0,%r10 !lock
8205 brnz %r10, sma_8_121
8206 rd %asi, %r12
8207 wr %g0, 0x40, %asi
8208 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
8209 set 0x000a1fff, %g1
8210 stxa %g1, [%g0 + 0x80] %asi
8211 wr %r12, %g0, %asi
8212 st %g0, [%r23]
8213sma_8_121:
8214 ta T_CHANGE_NONHPRIV
8215 .word 0xe9e7e00c ! 165: CASA_R casa [%r31] %asi, %r12, %r20
8216 .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, <label_0x1>
8217 .word 0x8d9030bd ! 166: WRPR_PSTATE_I wrpr %r0, 0x10bd, %pstate
8218 .word 0x8d802004 ! 167: WRFPRS_I wr %r0, 0x0004, %fprs
8219 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
8220 set 0x289d, %l3
8221 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
8222 .word 0x99b4c7d1 ! 169: PDIST pdistn %d50, %d48, %d12
8223 .word 0xe09fc032 ! 170: LDDA_R ldda [%r31, %r18] 0x01, %r16
8224splash_hpstate_8_125:
8225 .word 0x81983f5e ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x1f5e, %hpstate
8226memptr_8_126:
8227 set user_data_start, %r31
8228 .word 0x8584648c ! 172: WRCCR_I wr %r17, 0x048c, %ccr
8229 .word 0x8d903d4e ! 173: WRPR_PSTATE_I wrpr %r0, 0x1d4e, %pstate
8230splash_cmpr_8_128:
8231 mov 0, %r18
8232 sllx %r18, 63, %r18
8233 rd %tick, %r17
8234 add %r17, 0x100, %r17
8235 or %r17, %r18, %r17
8236 ta T_CHANGE_HPRIV
8237 wrhpr %r17, %g0, %hsys_tick_cmpr
8238 ta T_CHANGE_PRIV
8239 .word 0xb3800011 ! 174: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
8240 .word 0xe03fc000 ! 175: STD_R std %r16, [%r31 + %r0]
8241brcommon2_8_130:
8242 nop
8243 setx common_target, %r12, %r27
8244 ba,a .+12
8245 .word 0x95a1c9cd ! 1: FDIVd fdivd %f38, %f44, %f10
8246 ba,a .+8
8247 jmpl %r27+0, %r27
8248 .word 0xc19fda00 ! 176: LDDFA_R ldda [%r31, %r0], %f0
8249splash_cmpr_8_131:
8250 mov 0, %r18
8251 sllx %r18, 63, %r18
8252 rd %tick, %r17
8253 add %r17, 0x70, %r17
8254 or %r17, %r18, %r17
8255 ta T_CHANGE_HPRIV
8256 wrhpr %r17, %g0, %hsys_tick_cmpr
8257 .word 0xb3800011 ! 177: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
8258splash_cmpr_8_132:
8259 mov 0, %r18
8260 sllx %r18, 63, %r18
8261 rd %tick, %r17
8262 add %r17, 0x60, %r17
8263 or %r17, %r18, %r17
8264 ta T_CHANGE_HPRIV
8265 wrhpr %r17, %g0, %hsys_tick_cmpr
8266 ta T_CHANGE_PRIV
8267 .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
8268 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
8269 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
8270 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
8271memptr_8_135:
8272 set user_data_start, %r31
8273 .word 0x8582eab4 ! 182: WRCCR_I wr %r11, 0x0ab4, %ccr
8274memptr_8_136:
8275 set 0x60540000, %r31
8276 .word 0x85833651 ! 183: WRCCR_I wr %r12, 0x1651, %ccr
8277 .word 0xe677e018 ! 184: STX_I stx %r19, [%r31 + 0x0018]
8278 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
8279fpinit_8_138:
8280 nop
8281 setx fp_data_quads, %r19, %r20
8282 ldd [%r20], %f0
8283 ldd [%r20+8], %f4
8284 ld [%r20+16], %fsr
8285 ld [%r20+24], %r19
8286 wr %r19, %g0, %gsr
8287 .word 0x8da009a4 ! 186: FDIVs fdivs %f0, %f4, %f6
8288 .word 0xc19fd920 ! 187: LDDFA_R ldda [%r31, %r0], %f0
8289fpinit_8_140:
8290 nop
8291 setx fp_data_quads, %r19, %r20
8292 ldd [%r20], %f0
8293 ldd [%r20+8], %f4
8294 ld [%r20+16], %fsr
8295 ld [%r20+24], %r19
8296 wr %r19, %g0, %gsr
8297 .word 0x89a009c4 ! 188: FDIVd fdivd %f0, %f4, %f4
8298ceter_8_141:
8299 nop
8300 ta T_CHANGE_HPRIV
8301 mov 7, %r17
8302 sllx %r17, 60, %r17
8303 mov 0x18, %r16
8304 stxa %r17, [%r16]0x4c
8305 ta T_CHANGE_NONHPRIV
8306 .word 0x97410000 ! 189: RDTICK rd %tick, %r11
8307 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
8308 .word 0x8d802000 ! 191: WRFPRS_I wr %r0, 0x0000, %fprs
8309 nop
8310 ta T_CHANGE_HPRIV ! macro
8311donret_8_142:
8312 rd %pc, %r12
8313 add %r12, (donretarg_8_142-donret_8_142+4), %r12
8314 add %r12, 0x4, %r11 ! seq tnpc
8315 wrpr %g0, 0x2, %tl
8316 wrpr %g0, %r12, %tpc
8317 wrpr %g0, %r11, %tnpc
8318 set (0x000c2d00 | (22 << 24)), %r13
8319 and %r12, 0xfff, %r14
8320 sllx %r14, 30, %r14
8321 or %r13, %r14, %r20
8322 wrpr %r20, %g0, %tstate
8323 wrhpr %g0, 0x1ccd, %htstate
8324 ta T_CHANGE_NONPRIV ! rand=0 (8)
8325 retry
8326donretarg_8_142:
8327 .word 0xd2ffe070 ! 192: SWAPA_I swapa %r9, [%r31 + 0x0070] %asi
8328 .word 0x8799c010 ! 193: WRHPR_HINTP_R wrhpr %r7, %r16, %hintp
8329splash_cmpr_8_143:
8330 mov 0, %r18
8331 sllx %r18, 63, %r18
8332 rd %tick, %r17
8333 add %r17, 0x70, %r17
8334 or %r17, %r18, %r17
8335 ta T_CHANGE_HPRIV
8336 wrhpr %r17, %g0, %hsys_tick_cmpr
8337 .word 0xaf800011 ! 194: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
8338 nop
8339 ta T_CHANGE_HPRIV
8340 mov 0x8+1, %r10
8341 set sync_thr_counter5, %r23
8342#ifndef SPC
8343 ldxa [%g0]0x63, %o1
8344 and %o1, 0x38, %o1
8345 add %o1, %r23, %r23
8346 sllx %o1, 5, %o3 !(CID*256)
8347#endif
8348 cas [%r23],%g0,%r10 !lock
8349 brnz %r10, cwq_8_144
8350 rd %asi, %r12
8351 wr %g0, 0x40, %asi
8352 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
8353 and %l1, 0x3, %l1 ! Check if busy/enabled ..
8354 cmp %l1, 1
8355 bne cwq_8_144
8356 set CWQ_BASE, %l6
8357#ifndef SPC
8358 add %l6, %o3, %l6
8359#endif
8360 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
8361 best_set_reg(0x20610030, %l1, %l2) !# Control Word
8362 sllx %l2, 32, %l2
8363 stx %l2, [%l6 + 0x0]
8364 membar #Sync
8365 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
8366 sub %l2, 0x40, %l2
8367 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
8368 wr %r12, %g0, %asi
8369 st %g0, [%r23]
8370cwq_8_144:
8371 ta T_CHANGE_NONHPRIV
8372 .word 0x91414000 ! 195: RDPC rd %pc, %r8
8373br_badelay2_8_145:
8374 .word 0x34800001 ! 1: BG bg,a <label_0x1>
8375 pdist %f16, %f16, %f20
8376 .word 0x93b18309 ! 196: ALIGNADDRESS alignaddr %r6, %r9, %r9
8377splash_tba_8_146:
8378 nop
8379 ta T_CHANGE_PRIV
8380 setx 0x00000000003a0000, %r11, %r12
8381 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
8382 nop
8383 mov 0x80, %g3
8384 stxa %g3, [%g3] 0x5f
8385 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31
8386 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31
8387 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
8388 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
8389 .word 0x81460000 ! 199: RD_STICK_REG stbar
8390 .word 0xd01fe0d0 ! 200: LDD_I ldd [%r31 + 0x00d0], %r8
8391 nop
8392 ta T_CHANGE_HPRIV
8393 mov 0x8+1, %r10
8394 set sync_thr_counter5, %r23
8395#ifndef SPC
8396 ldxa [%g0]0x63, %o1
8397 and %o1, 0x38, %o1
8398 add %o1, %r23, %r23
8399 sllx %o1, 5, %o3 !(CID*256)
8400#endif
8401 cas [%r23],%g0,%r10 !lock
8402 brnz %r10, cwq_8_147
8403 rd %asi, %r12
8404 wr %g0, 0x40, %asi
8405 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
8406 and %l1, 0x3, %l1 ! Check if busy/enabled ..
8407 cmp %l1, 1
8408 bne cwq_8_147
8409 set CWQ_BASE, %l6
8410#ifndef SPC
8411 add %l6, %o3, %l6
8412#endif
8413 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
8414 best_set_reg(0x206100a0, %l1, %l2) !# Control Word
8415 sllx %l2, 32, %l2
8416 stx %l2, [%l6 + 0x0]
8417 membar #Sync
8418 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
8419 sub %l2, 0x40, %l2
8420 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
8421 wr %r12, %g0, %asi
8422 st %g0, [%r23]
8423cwq_8_147:
8424 ta T_CHANGE_NONHPRIV
8425 .word 0xa3414000 ! 201: RDPC rd %pc, %r17
8426 nop
8427 nop
8428 ta T_CHANGE_PRIV
8429 wrpr %g0, %g0, %gl
8430 nop
8431 nop
8432 setx join_lbl_0_0, %g1, %g2
8433 jmp %g2
8434 nop
8435fork_lbl_0_3:
8436 rd %asi, %r12
8437#ifdef XIR_RND_CORES
8438setup_xir_4:
8439 setx 0x7fefdd66824f7eda, %r1, %r28
8440 mov 0x30, %r17
8441 stxa %r28, [%r17] 0x41
8442#endif
8443setup_spu_4:
8444 wr %g0, 0x40, %asi
8445 !# allocate control word queue (e.g., setup head/tail/first/last registers)
8446 set CWQ_BASE, %l6
8447
8448#ifndef SPC
8449 ldxa [%g0]0x63, %o2
8450 and %o2, 0x38, %o2
8451 sllx %o2, 5, %o2 !(CID*256)
8452 add %l6, %o2, %l6
8453#endif
8454# 780 "diag.j"
8455 !# write base addr to first, head, and tail ptr
8456 !# first store to first
8457 stxa %l6, [%g0 + ASI_SPU_CWQ_FIRST] %asi !# first store to first
8458
8459 stxa %l6, [%g0 + ASI_SPU_CWQ_HEAD] %asi !# then to head
8460 stxa %l6, [%g0 + ASI_SPU_CWQ_TAIL] %asi !# then to tail
8461 setx CWQ_LAST, %g1, %l5 !# then end of CWQ region to LAST
8462#ifndef SPC
8463 add %l5, %o2, %l5
8464#endif
8465 stxa %l5, [%g0 + ASI_SPU_CWQ_LAST] %asi
8466
8467 !# set CWQ control word ([38:36] is strand ID ..)
8468 best_set_reg(0x20610000, %l1, %l2) !# Control Word
8469 sllx %l2, 32, %l2
8470
8471 !# write CWQ entry (%l6 points to CWQ)
8472 stx %l2, [%l6 + 0x0]
8473
8474 setx msg, %g1, %l2
8475 stx %l2, [%l6 + 0x8] !# source address
8476
8477 stx %g0, [%l6 + 0x10] !# Authentication Key Address (40-bit)
8478 stx %g0, [%l6 + 0x18] !# Authentication IV Address (40-bit)
8479 stx %g0, [%l6 + 0x20] !# Authentication FSAS Address (40-bit)
8480 stx %g0, [%l6 + 0x28] !# Encryption Key Address (40-bit)
8481 stx %g0, [%l6 + 0x30] !# Encryption Initialization Vector Address (40-bit)
8482
8483 setx results, %g1, %o3
8484 stx %o3, [%l6 + 0x38] !# Destination Address (40-bit)
8485
8486 membar #Sync
8487
8488 ldxa [%g0 + ASI_SPU_CWQ_TAIL] %asi, %l2
8489 add %l2, 0x40, %l2
8490 stxa %l2, [%g0 + ASI_SPU_CWQ_TAIL] %asi
8491
8492 !# Kick off the CWQ operation by writing to the CWQ_CSR
8493 !# Set the enabled bit and reset the other bits
8494 or %g0, 0x1, %g1
8495 stxa %g1, [%g0 + ASI_SPU_CWQ_CSR] %asi
8496
8497unlock_sync_thds_4:
8498 set sync_thr_counter6, %r23
8499#ifndef SPC
8500 ldxa [%g0]0x63, %o2
8501 and %o2, 0x38, %o2
8502 add %o2, %r23, %r23
8503#endif
8504 st %r0, [%r23] !unlock sync_thr_counter6
8505 sub %r23, 64, %r23
8506 st %r0, [%r23] !unlock sync_thr_counter5
8507 sub %r23, 64, %r23
8508 st %r0, [%r23] !unlock sync_thr_counter4
8509
8510 wr %r0, %r12, %asi
8511 ta T_CHANGE_NONHPRIV
8512 nop
8513 ta T_CHANGE_HPRIV ! macro
8514donret_4_0:
8515 rd %pc, %r12
8516 add %r12, (donretarg_4_0-donret_4_0), %r12
8517 add %r12, 0x8, %r11 ! nonseq tnpc
8518 wrpr %g0, 0x1, %tl
8519 wrpr %g0, %r12, %tpc
8520 wrpr %g0, %r11, %tnpc
8521 set (0x0052fc00 | (0x89 << 24)), %r13
8522 and %r12, 0xfff, %r14
8523 sllx %r14, 30, %r14
8524 or %r13, %r14, %r20
8525 wrpr %r20, %g0, %tstate
8526 wrhpr %g0, 0x605, %htstate
8527 ta T_CHANGE_NONPRIV ! rand=0 (4)
8528 retry
8529donretarg_4_0:
8530 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
8531reduce_priv_lvl_4_1:
8532 ta T_CHANGE_NONPRIV ! macro
8533change_to_randtl_4_2:
8534 ta T_CHANGE_PRIV ! macro
8535done_change_to_randtl_4_2:
8536 .word 0x8f902001 ! 2: WRPR_TL_I wrpr %r0, 0x0001, %tl
8537 .word 0xdadfe100 ! 3: LDXA_I ldxa [%r31, + 0x0100] %asi, %r13
8538 .word 0xda8008a0 ! 4: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
8539ibp_4_3:
8540 nop
8541 .word 0xc1bfc3e0 ! 5: STDFA_R stda %f0, [%r0, %r31]
8542intveclr_4_4:
8543 nop
8544 ta T_CHANGE_HPRIV
8545 setx 0x5bacf2c7890fe3dc, %r1, %r28
8546 stxa %r28, [%g0] 0x72
8547 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
8548 setx 0x273eeef78e6d1883, %r1, %r28
8549 stxa %r28, [%g0] 0x73
8550intvec_4_5:
8551 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8552splash_tba_4_6:
8553 nop
8554 ta T_CHANGE_PRIV
8555 setx 0x0000000400380000, %r11, %r12
8556 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
8557memptr_4_7:
8558 set 0x60340000, %r31
8559 .word 0x8584fd2e ! 9: WRCCR_I wr %r19, 0x1d2e, %ccr
8560 .word 0xa1902008 ! 10: WRPR_GL_I wrpr %r0, 0x0008, %-
8561fpinit_4_8:
8562 nop
8563 setx fp_data_quads, %r19, %r20
8564 ldd [%r20], %f0
8565 ldd [%r20+8], %f4
8566 ld [%r20+16], %fsr
8567 ld [%r20+24], %r19
8568 wr %r19, %g0, %gsr
8569 .word 0x91b00484 ! 11: FCMPLE32 fcmple32 %d0, %d4, %r8
8570 .word 0xda800c40 ! 12: LDUWA_R lduwa [%r0, %r0] 0x62, %r13
8571ibp_4_9:
8572 nop
8573 .word 0xa3b48482 ! 13: FCMPLE32 fcmple32 %d18, %d2, %r17
8574memptr_4_10:
8575 set 0x60740000, %r31
8576 .word 0x85817c78 ! 14: WRCCR_I wr %r5, 0x1c78, %ccr
8577pmu_4_11:
8578 nop
8579 setx 0xffffffc9fffff061, %g1, %g7
8580 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
8581 .word 0xe41fe038 ! 16: LDD_I ldd [%r31 + 0x0038], %r18
8582 .word 0xe49fd100 ! 17: LDDA_R ldda [%r31, %r0] 0x88, %r18
8583brcommon2_4_12:
8584 nop
8585 setx common_target, %r12, %r27
8586 ba,a .+12
8587 .word 0xc36fe1d0 ! 1: PREFETCH_I prefetch [%r31 + 0x01d0], #one_read
8588 ba,a .+8
8589 jmpl %r27+0, %r27
8590 .word 0xc1bfe000 ! 18: STDFA_I stda %f0, [0x0000, %r31]
8591intveclr_4_13:
8592 nop
8593 ta T_CHANGE_HPRIV
8594 setx 0x88989ba41aff1eec, %r1, %r28
8595 stxa %r28, [%g0] 0x72
8596 ta T_CHANGE_NONHPRIV
8597 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
8598intveclr_4_14:
8599 nop
8600 ta T_CHANGE_HPRIV
8601 setx 0xe3d8e3cbea42a978, %r1, %r28
8602 stxa %r28, [%g0] 0x72
8603 ta T_CHANGE_NONHPRIV
8604 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
8605pmu_4_15:
8606 nop
8607 setx 0xfffffea4fffff2a2, %g1, %g7
8608 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
8609 .word 0xa7a509c6 ! 22: FDIVd fdivd %f20, %f6, %f50
8610 .word 0xa06cab9e ! 23: UDIVX_I udivx %r18, 0x0b9e, %r16
8611dvapa_4_17:
8612 nop
8613 ta T_CHANGE_HPRIV
8614 mov 0x8b0, %r20
8615 mov 0x1d, %r19
8616 sllx %r20, 23, %r20
8617 or %r19, %r20, %r19
8618 stxa %r19, [%g0] ASI_LSU_CONTROL
8619 mov 0x38, %r18
8620 stxa %r31, [%r18]0x58
8621 ta T_CHANGE_NONHPRIV
8622 .word 0xe69fc034 ! 24: LDDA_R ldda [%r31, %r20] 0x01, %r19
8623splash_htba_4_18:
8624 nop
8625 ta T_CHANGE_HPRIV
8626 setx 0x0000000200280000, %r11, %r12
8627 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
8628 .word 0xe797e1c8 ! 26: LDQFA_I - [%r31, 0x01c8], %f19
8629 .word 0x24cc0001 ! 1: BRLEZ brlez,a,pt %r16,<label_0xc0001>
8630 .word 0x8d903e1b ! 27: WRPR_PSTATE_I wrpr %r0, 0x1e1b, %pstate
8631 .word 0x95698007 ! 28: SDIVX_R sdivx %r6, %r7, %r10
8632splash_hpstate_4_20:
8633 ta T_CHANGE_NONHPRIV
8634 .word 0x81982484 ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x0484, %hpstate
8635intveclr_4_21:
8636 nop
8637 ta T_CHANGE_HPRIV
8638 setx 0x466dce633b0eadce, %r1, %r28
8639 stxa %r28, [%g0] 0x72
8640 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
8641#if (defined SPC || defined CMP1)
8642!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_22) + 56, 16, 16)) -> intp(0,0,3)
8643#else
8644 setx 0xe84b506813572d47, %r1, %r28
8645 stxa %r28, [%g0] 0x73
8646#endif
8647intvec_4_22:
8648 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8649splash_tba_4_23:
8650 nop
8651 ta T_CHANGE_PRIV
8652 setx 0x0000000400380000, %r11, %r12
8653 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
8654splash_lsu_4_24:
8655 nop
8656 ta T_CHANGE_HPRIV
8657 set 0xb7e89ded, %r2
8658 mov 0x3, %r1
8659 sllx %r1, 32, %r1
8660 or %r1, %r2, %r2
8661 stxa %r2, [%r0] ASI_LSU_CONTROL
8662 ta T_CHANGE_NONHPRIV
8663 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
8664splash_hpstate_4_25:
8665 .word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, <label_0x1>
8666 .word 0x81983c8a ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x1c8a, %hpstate
8667pmu_4_26:
8668 nop
8669 ta T_CHANGE_PRIV
8670 setx 0xfffff92efffff73e, %g1, %g7
8671 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
8672iaw_4_27:
8673 nop
8674 ta T_CHANGE_HPRIV
8675 mov 8, %r18
8676 rd %asi, %r12
8677 wr %r0, 0x41, %asi
8678 set sync_thr_counter4, %r23
8679#ifndef SPC
8680 ldxa [%g0]0x63, %r8
8681 and %r8, 0x38, %r8 ! Core ID
8682 add %r8, %r23, %r23
8683#else
8684 mov 0, %r8
8685#endif
8686 mov 0x4, %r16
8687iaw_startwait4_27:
8688 cas [%r23],%g0,%r16 !lock
8689 brz,a %r16, continue_iaw_4_27
8690 mov (~0x4&0xf), %r16
8691 ld [%r23], %r16
8692iaw_wait4_27:
8693 brnz %r16, iaw_wait4_27
8694 ld [%r23], %r16
8695 ba iaw_startwait4_27
8696 mov 0x4, %r16
8697continue_iaw_4_27:
8698 sllx %r16, %r8, %r16 !Mask for my core only
8699 ldxa [0x58]%asi, %r17 !Running_status
8700wait_for_stat_4_27:
8701 ldxa [0x50]%asi, %r13 !Running_rw
8702 cmp %r13, %r17
8703 bne,a %xcc, wait_for_stat_4_27
8704 ldxa [0x58]%asi, %r17 !Running_status
8705 stxa %r16, [0x68]%asi !Park (W1C)
8706 ldxa [0x50]%asi, %r14 !Running_rw
8707wait_for_iaw_4_27:
8708 ldxa [0x58]%asi, %r17 !Running_status
8709 cmp %r14, %r17
8710 bne,a %xcc, wait_for_iaw_4_27
8711 ldxa [0x50]%asi, %r14 !Running_rw
8712iaw_doit4_27:
8713 mov 0x38, %r18
8714iaw1_4_27:
8715 best_set_reg(0x00000000e1200000, %r20, %r19)
8716 or %r19, 0x1, %r19
8717 stxa %r19, [%r18]0x50
8718 stxa %r16, [0x60] %asi ! Unpark (W1S)
8719 st %g0, [%r23] !clear lock
8720 wr %r0, %r12, %asi ! restore %asi
8721 ta T_CHANGE_NONHPRIV
8722 .word 0xc3ea802c ! 36: PREFETCHA_R prefetcha [%r10, %r12] 0x01, #one_read
8723jmptr_4_28:
8724 nop
8725 best_set_reg(0xe0200000, %r20, %r27)
8726 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
8727iaw_4_29:
8728 nop
8729 ta T_CHANGE_HPRIV
8730 mov 8, %r18
8731 rd %asi, %r12
8732 wr %r0, 0x41, %asi
8733 set sync_thr_counter4, %r23
8734#ifndef SPC
8735 ldxa [%g0]0x63, %r8
8736 and %r8, 0x38, %r8 ! Core ID
8737 add %r8, %r23, %r23
8738#else
8739 mov 0, %r8
8740#endif
8741 mov 0x4, %r16
8742iaw_startwait4_29:
8743 cas [%r23],%g0,%r16 !lock
8744 brz,a %r16, continue_iaw_4_29
8745 mov (~0x4&0xf), %r16
8746 ld [%r23], %r16
8747iaw_wait4_29:
8748 brnz %r16, iaw_wait4_29
8749 ld [%r23], %r16
8750 ba iaw_startwait4_29
8751 mov 0x4, %r16
8752continue_iaw_4_29:
8753 sllx %r16, %r8, %r16 !Mask for my core only
8754 ldxa [0x58]%asi, %r17 !Running_status
8755wait_for_stat_4_29:
8756 ldxa [0x50]%asi, %r13 !Running_rw
8757 cmp %r13, %r17
8758 bne,a %xcc, wait_for_stat_4_29
8759 ldxa [0x58]%asi, %r17 !Running_status
8760 stxa %r16, [0x68]%asi !Park (W1C)
8761 ldxa [0x50]%asi, %r14 !Running_rw
8762wait_for_iaw_4_29:
8763 ldxa [0x58]%asi, %r17 !Running_status
8764 cmp %r14, %r17
8765 bne,a %xcc, wait_for_iaw_4_29
8766 ldxa [0x50]%asi, %r14 !Running_rw
8767iaw_doit4_29:
8768 mov 0x38, %r18
8769iaw3_4_29:
8770 setx vahole_target0, %r20, %r19
8771 or %r19, 0x1, %r19
8772 stxa %r19, [%r18]0x50
8773 stxa %r16, [0x60] %asi ! Unpark (W1S)
8774 st %g0, [%r23] !clear lock
8775 wr %r0, %r12, %asi ! restore %asi
8776 ta T_CHANGE_NONHPRIV
8777 .word 0xa1b4c7c8 ! 38: PDIST pdistn %d50, %d8, %d16
8778intveclr_4_30:
8779 nop
8780 ta T_CHANGE_HPRIV
8781 setx 0x3a2db0c3b3d175c5, %r1, %r28
8782 stxa %r28, [%g0] 0x72
8783 ta T_CHANGE_NONHPRIV
8784 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
8785ibp_4_31:
8786 nop
8787 ta T_CHANGE_NONHPRIV
8788 .word 0x9f802010 ! 40: SIR sir 0x0010
8789 invalw
8790 mov 0x30, %r30
8791 .word 0x91d0001e ! 41: Tcc_R ta icc_or_xcc, %r0 + %r30
8792intveclr_4_32:
8793 nop
8794 ta T_CHANGE_HPRIV
8795 setx 0x76e78afb1e688e45, %r1, %r28
8796 stxa %r28, [%g0] 0x72
8797 ta T_CHANGE_NONHPRIV
8798 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
8799ibp_4_33:
8800 nop
8801 .word 0xa3b50494 ! 43: FCMPLE32 fcmple32 %d20, %d20, %r17
8802 .word 0xa1902009 ! 44: WRPR_GL_I wrpr %r0, 0x0009, %-
8803fpinit_4_34:
8804 nop
8805 setx fp_data_quads, %r19, %r20
8806 ldd [%r20], %f0
8807 ldd [%r20+8], %f4
8808 ld [%r20+16], %fsr
8809 ld [%r20+24], %r19
8810 wr %r19, %g0, %gsr
8811 .word 0x87a80a44 ! 45: FCMPd fcmpd %fcc<n>, %f0, %f4
8812cmp_4_35:
8813 nop
8814 ta T_CHANGE_HPRIV
8815 rd %asi, %r12
8816 wr %r0, 0x41, %asi
8817 set sync_thr_counter4, %r23
8818#ifndef SPC
8819 ldxa [%g0]0x63, %r8
8820 and %r8, 0x38, %r8 ! Core ID
8821 add %r8, %r23, %r23
8822 mov 0xff, %r9
8823 xor %r9, 0x4, %r9
8824 sllx %r9, %r8, %r9 ! My core mask
8825#else
8826 mov 0, %r8
8827 mov 0xff, %r9
8828 xor %r9, 0x4, %r9 ! My core mask
8829#endif
8830 mov 0x4, %r10
8831cmp_startwait4_35:
8832 cas [%r23],%g0,%r10 !lock
8833 brz,a %r10, continue_cmp_4_35
8834 ldxa [0x50]%asi, %r13 !Running_rw
8835 ld [%r23], %r10
8836cmp_wait4_35:
8837 brnz,a %r10, cmp_wait4_35
8838 ld [%r23], %r10
8839 ba cmp_startwait4_35
8840 mov 0x4, %r10
8841continue_cmp_4_35:
8842 ldxa [0x58]%asi, %r14 !Running_status
8843 xnor %r14, %r13, %r14 !Bits equal
8844 brz,a %r8, cmp_multi_core_4_35
8845 mov 0xa1, %r17
8846 best_set_reg(0x06a3c23c94698eb5, %r16, %r17)
8847cmp_multi_core_4_35:
8848 and %r14, %r17, %r14 !Apply set/clear mask to bits equal
8849 and %r14, %r9, %r14 !Apply core-mask
8850 stxa %r14, [0x68]%asi
8851 st %g0, [%r23] !clear lock
8852 wr %g0, %r12, %asi
8853 .word 0x9191c006 ! 46: WRPR_PIL_R wrpr %r7, %r6, %pil
8854 nop
8855 ta T_CHANGE_HPRIV ! macro
8856donret_4_36:
8857 rd %pc, %r12
8858 add %r12, (donretarg_4_36-donret_4_36+4), %r12
8859 add %r12, 0x4, %r11 ! seq tnpc
8860 wrpr %g0, 0x2, %tl
8861 wrpr %g0, %r12, %tpc
8862 wrpr %g0, %r11, %tnpc
8863 set (0x00bbb100 | (4 << 24)), %r13
8864 and %r12, 0xfff, %r14
8865 sllx %r14, 30, %r14
8866 or %r13, %r14, %r20
8867 wrpr %r20, %g0, %tstate
8868 wrhpr %g0, 0x254, %htstate
8869 ta T_CHANGE_NONPRIV ! rand=0 (4)
8870 .word 0x2e800001 ! 1: BVS bvs,a <label_0x1>
8871 retry
8872donretarg_4_36:
8873 .word 0xe26fe03b ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x003b]
8874 .word 0xc19fd920 ! 48: LDDFA_R ldda [%r31, %r0], %f0
8875change_to_randtl_4_37:
8876 ta T_CHANGE_HPRIV ! macro
8877done_change_to_randtl_4_37:
8878 .word 0x8f902000 ! 49: WRPR_TL_I wrpr %r0, 0x0000, %tl
8879 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
8880 .word 0xe23fc000 ! 51: STD_R std %r17, [%r31 + %r0]
8881intveclr_4_39:
8882 nop
8883 ta T_CHANGE_HPRIV
8884 setx 0xf8aac57dc67a0474, %r1, %r28
8885 stxa %r28, [%g0] 0x72
8886 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
8887 .word 0x9f80296c ! 53: SIR sir 0x096c
8888 .word 0xe337e010 ! 54: STQF_I - %f17, [0x0010, %r31]
8889dvapa_4_40:
8890 nop
8891 ta T_CHANGE_HPRIV
8892 mov 0x8c5, %r20
8893 mov 0x11, %r19
8894 sllx %r20, 23, %r20
8895 or %r19, %r20, %r19
8896 stxa %r19, [%g0] ASI_LSU_CONTROL
8897 mov 0x38, %r18
8898 stxa %r31, [%r18]0x58
8899 ta T_CHANGE_NONHPRIV
8900 .word 0xe19fe0e0 ! 55: LDDFA_I ldda [%r31, 0x00e0], %f16
8901 .word 0xe22fe11f ! 56: STB_I stb %r17, [%r31 + 0x011f]
8902 setx 0xa13eb739c981f3bb, %r1, %r28
8903 stxa %r28, [%g0] 0x73
8904intvec_4_41:
8905 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
8906brcommon2_4_42:
8907 nop
8908 setx common_target, %r12, %r27
8909 ba,a .+12
8910 .word 0x81dfc013 ! 1: FLUSH_R flush
8911 ba,a .+8
8912 jmpl %r27+0, %r27
8913 .word 0xe19fc2c0 ! 58: LDDFA_R ldda [%r31, %r0], %f16
8914jmptr_4_43:
8915 nop
8916 best_set_reg(0xe0200000, %r20, %r27)
8917 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
8918memptr_4_44:
8919 set 0x60740000, %r31
8920 .word 0x8580b4ec ! 60: WRCCR_I wr %r2, 0x14ec, %ccr
8921 nop
8922 ta T_CHANGE_HPRIV
8923 mov 0x4+1, %r10
8924 set sync_thr_counter5, %r23
8925#ifndef SPC
8926 ldxa [%g0]0x63, %o1
8927 and %o1, 0x38, %o1
8928 add %o1, %r23, %r23
8929 sllx %o1, 5, %o3 !(CID*256)
8930#endif
8931 cas [%r23],%g0,%r10 !lock
8932 brnz %r10, cwq_4_45
8933 rd %asi, %r12
8934 wr %g0, 0x40, %asi
8935 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
8936 and %l1, 0x3, %l1 ! Check if busy/enabled ..
8937 cmp %l1, 1
8938 bne cwq_4_45
8939 set CWQ_BASE, %l6
8940#ifndef SPC
8941 add %l6, %o3, %l6
8942#endif
8943 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
8944 best_set_reg(0x20610020, %l1, %l2) !# Control Word
8945 sllx %l2, 32, %l2
8946 stx %l2, [%l6 + 0x0]
8947 membar #Sync
8948 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
8949 sub %l2, 0x40, %l2
8950 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
8951 wr %r12, %g0, %asi
8952 st %g0, [%r23]
8953cwq_4_45:
8954 ta T_CHANGE_NONHPRIV
8955 .word 0xa5414000 ! 61: RDPC rd %pc, %r18
8956fpinit_4_46:
8957 nop
8958 setx fp_data_quads, %r19, %r20
8959 ldd [%r20], %f0
8960 ldd [%r20+8], %f4
8961 ld [%r20+16], %fsr
8962 ld [%r20+24], %r19
8963 wr %r19, %g0, %gsr
8964 .word 0x91b00484 ! 62: FCMPLE32 fcmple32 %d0, %d4, %r8
8965 .word 0x91d020b3 ! 63: Tcc_I ta icc_or_xcc, %r0 + 179
8966iaw_4_47:
8967 nop
8968 ta T_CHANGE_HPRIV
8969 mov 8, %r18
8970 rd %asi, %r12
8971 wr %r0, 0x41, %asi
8972 set sync_thr_counter4, %r23
8973#ifndef SPC
8974 ldxa [%g0]0x63, %r8
8975 and %r8, 0x38, %r8 ! Core ID
8976 add %r8, %r23, %r23
8977#else
8978 mov 0, %r8
8979#endif
8980 mov 0x4, %r16
8981iaw_startwait4_47:
8982 cas [%r23],%g0,%r16 !lock
8983 brz,a %r16, continue_iaw_4_47
8984 mov (~0x4&0xf), %r16
8985 ld [%r23], %r16
8986iaw_wait4_47:
8987 brnz %r16, iaw_wait4_47
8988 ld [%r23], %r16
8989 ba iaw_startwait4_47
8990 mov 0x4, %r16
8991continue_iaw_4_47:
8992 sllx %r16, %r8, %r16 !Mask for my core only
8993 ldxa [0x58]%asi, %r17 !Running_status
8994wait_for_stat_4_47:
8995 ldxa [0x50]%asi, %r13 !Running_rw
8996 cmp %r13, %r17
8997 bne,a %xcc, wait_for_stat_4_47
8998 ldxa [0x58]%asi, %r17 !Running_status
8999 stxa %r16, [0x68]%asi !Park (W1C)
9000 ldxa [0x50]%asi, %r14 !Running_rw
9001wait_for_iaw_4_47:
9002 ldxa [0x58]%asi, %r17 !Running_status
9003 cmp %r14, %r17
9004 bne,a %xcc, wait_for_iaw_4_47
9005 ldxa [0x50]%asi, %r14 !Running_rw
9006iaw_doit4_47:
9007 mov 0x38, %r18
9008iaw4_4_47:
9009 setx common_target, %r20, %r19
9010 or %r19, 0x1, %r19
9011 stxa %r19, [%r18]0x50
9012 stxa %r16, [0x60] %asi ! Unpark (W1S)
9013 st %g0, [%r23] !clear lock
9014 wr %r0, %r12, %asi ! restore %asi
9015 ta T_CHANGE_NONHPRIV
9016 .word 0x9bb507d2 ! 64: PDIST pdistn %d20, %d18, %d44
9017 nop
9018 ta T_CHANGE_HPRIV
9019 mov 0x4, %r10
9020 set sync_thr_counter6, %r23
9021#ifndef SPC
9022 ldxa [%g0]0x63, %o1
9023 and %o1, 0x38, %o1
9024 add %o1, %r23, %r23
9025#endif
9026 cas [%r23],%g0,%r10 !lock
9027 brnz %r10, sma_4_48
9028 rd %asi, %r12
9029 wr %g0, 0x40, %asi
9030 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
9031 set 0x00121fff, %g1
9032 stxa %g1, [%g0 + 0x80] %asi
9033 wr %r12, %g0, %asi
9034 st %g0, [%r23]
9035sma_4_48:
9036 ta T_CHANGE_NONHPRIV
9037 .word 0xe5e7e00b ! 65: CASA_R casa [%r31] %asi, %r11, %r18
9038 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
9039 .word 0xe537e084 ! 67: STQF_I - %f18, [0x0084, %r31]
9040 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
9041reduce_priv_lvl_4_49:
9042 ta T_CHANGE_NONHPRIV ! macro
9043trapasi_4_50:
9044 nop
9045 mov 0x3c0, %r1 ! (VA for ASI 0x25)
9046 .word 0xe48844a0 ! 69: LDUBA_R lduba [%r1, %r0] 0x25, %r18
9047splash_tba_4_51:
9048 nop
9049 ta T_CHANGE_PRIV
9050 setx 0x0000000400380000, %r11, %r12
9051 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
9052dvapa_4_52:
9053 nop
9054 ta T_CHANGE_HPRIV
9055 mov 0xa1f, %r20
9056 mov 0x3, %r19
9057 sllx %r20, 23, %r20
9058 or %r19, %r20, %r19
9059 stxa %r19, [%g0] ASI_LSU_CONTROL
9060 mov 0x38, %r18
9061 stxa %r31, [%r18]0x58
9062 ta T_CHANGE_NONHPRIV
9063 .word 0xe51fe110 ! 71: LDDF_I ldd [%r31, 0x0110], %f18
9064 .word 0x9548c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r10
9065 nop
9066 ta T_CHANGE_HPRIV
9067 mov 0x4, %r10
9068 set sync_thr_counter6, %r23
9069#ifndef SPC
9070 ldxa [%g0]0x63, %o1
9071 and %o1, 0x38, %o1
9072 add %o1, %r23, %r23
9073#endif
9074 cas [%r23],%g0,%r10 !lock
9075 brnz %r10, sma_4_53
9076 rd %asi, %r12
9077 wr %g0, 0x40, %asi
9078 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
9079 set 0x00061fff, %g1
9080 stxa %g1, [%g0 + 0x80] %asi
9081 wr %r12, %g0, %asi
9082 st %g0, [%r23]
9083sma_4_53:
9084 ta T_CHANGE_NONHPRIV
9085 .word 0xe9e7e014 ! 73: CASA_R casa [%r31] %asi, %r20, %r20
9086mondo_4_54:
9087 nop
9088 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
9089 ta T_CHANGE_PRIV
9090 stxa %r18, [%r0+0x3e0] %asi
9091 .word 0x9d950011 ! 74: WRPR_WSTATE_R wrpr %r20, %r17, %wstate
9092intveclr_4_55:
9093 nop
9094 ta T_CHANGE_HPRIV
9095 setx 0x240b9c2bf8b41be0, %r1, %r28
9096 stxa %r28, [%g0] 0x72
9097 ta T_CHANGE_NONHPRIV
9098 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
9099 .word 0xe937e1d0 ! 76: STQF_I - %f20, [0x01d0, %r31]
9100splash_hpstate_4_56:
9101 ta T_CHANGE_NONHPRIV
9102 .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
9103 .word 0x81982e1d ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x0e1d, %hpstate
9104br_badelay3_4_57:
9105 .word 0x20800001 ! 1: BN bn,a <label_0x1>
9106 .word 0x22800001 ! 1: BE be,a <label_0x1>
9107 .word 0x95a289c5 ! 1: FDIVd fdivd %f10, %f36, %f10
9108 .word 0xa3a08829 ! 78: FADDs fadds %f2, %f9, %f17
9109br_longdelay1_4_58:
9110 .word 0x2ccb4001 ! 1: BRGZ brgz,a,pt %r13,<label_0xb4001>
9111 .word 0xbfe7c000 ! 79: SAVE_R save %r31, %r0, %r31
9112splash_lsu_4_59:
9113 nop
9114 ta T_CHANGE_HPRIV
9115 set 0x9b322b0d, %r2
9116 mov 0x6, %r1
9117 sllx %r1, 32, %r1
9118 or %r1, %r2, %r2
9119 stxa %r2, [%r0] ASI_LSU_CONTROL
9120 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
9121 .word 0xa5b50594 ! 81: FCMPGT32 fcmpgt32 %d20, %d20, %r18
9122dvapa_4_60:
9123 nop
9124 ta T_CHANGE_HPRIV
9125 mov 0xdee, %r20
9126 mov 0x1, %r19
9127 sllx %r20, 23, %r20
9128 or %r19, %r20, %r19
9129 stxa %r19, [%g0] ASI_LSU_CONTROL
9130 mov 0x38, %r18
9131 stxa %r31, [%r18]0x58
9132 ta T_CHANGE_NONHPRIV
9133 .word 0xd4bfc028 ! 82: STDA_R stda %r10, [%r31 + %r8] 0x01
9134cerer_4_61:
9135 nop
9136 ta T_CHANGE_HPRIV
9137 best_set_reg(0x22aae48be2065889, %r26, %r27)
9138 sethi %hi(0x20008000), %r26 ! Set ITTM/DTTM
9139 sllx %r26, 32, %r26
9140 or %r26, %r27, %r27
9141 mov 0x10, %r26
9142 stxa %r27, [%r26]0x4c
9143 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
9144 .word 0xa345c000 ! 84: RD_TICK_CMPR_REG rd %-, %r17
9145 .word 0xa1902007 ! 85: WRPR_GL_I wrpr %r0, 0x0007, %-
9146trapasi_4_62:
9147 nop
9148 mov 0x20, %r1 ! (VA for ASI 0x5a)
9149 .word 0xe8d84b40 ! 86: LDXA_R ldxa [%r1, %r0] 0x5a, %r20
9150brcommon3_4_63:
9151 nop
9152 setx common_target, %r12, %r27
9153 lduw [%r27], %r12 ! Load common dest into dcache ..
9154 ba,a .+12
9155 .word 0xe937e0f0 ! 1: STQF_I - %f20, [0x00f0, %r31]
9156 ba,a .+8
9157 jmpl %r27+0, %r27
9158 .word 0xe897c030 ! 87: LDUHA_R lduha [%r31, %r16] 0x01, %r20
9159memptr_4_64:
9160 set 0x60340000, %r31
9161 .word 0x85847b7e ! 88: WRCCR_I wr %r17, 0x1b7e, %ccr
9162brcommon1_4_65:
9163 nop
9164 setx common_target, %r12, %r27
9165 lduw [%r27], %r12 ! Load common dest into dcache ..
9166 ba,a .+12
9167 .word 0xa9b7c7d2 ! 1: PDIST pdistn %d62, %d18, %d20
9168 ba,a .+8
9169 jmpl %r27+0, %r27
9170 .word 0x93b44494 ! 89: FCMPLE32 fcmple32 %d48, %d20, %r9
9171 .word 0xa0c4e17b ! 90: ADDCcc_I addccc %r19, 0x017b, %r16
9172fpinit_4_66:
9173 nop
9174 setx fp_data_quads, %r19, %r20
9175 ldd [%r20], %f0
9176 ldd [%r20+8], %f4
9177 ld [%r20+16], %fsr
9178 ld [%r20+24], %r19
9179 wr %r19, %g0, %gsr
9180 .word 0x8da009a4 ! 91: FDIVs fdivs %f0, %f4, %f6
9181 nop
9182 ta T_CHANGE_HPRIV ! macro
9183donret_4_67:
9184 rd %pc, %r12
9185 add %r12, (donretarg_4_67-donret_4_67), %r12
9186 add %r12, 0x4, %r11 ! seq tnpc
9187 wrpr %g0, 0x1, %tl
9188 wrpr %g0, %r12, %tpc
9189 wrpr %g0, %r11, %tnpc
9190 set (0x0024c800 | (20 << 24)), %r13
9191 and %r12, 0xfff, %r14
9192 sllx %r14, 30, %r14
9193 or %r13, %r14, %r20
9194 wrpr %r20, %g0, %tstate
9195 wrhpr %g0, 0x7da, %htstate
9196 ta T_CHANGE_NONPRIV ! rand=0 (4)
9197 .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, <label_0x1>
9198 done
9199donretarg_4_67:
9200 .word 0x9ba449d4 ! 92: FDIVd fdivd %f48, %f20, %f44
9201change_to_randtl_4_68:
9202 ta T_CHANGE_PRIV ! macro
9203done_change_to_randtl_4_68:
9204 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
9205 set 0xf31, %l3
9206 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
9207 .word 0xa5b487c3 ! 94: PDIST pdistn %d18, %d34, %d18
9208iaw_4_69:
9209 nop
9210 ta T_CHANGE_HPRIV
9211 mov 8, %r18
9212 rd %asi, %r12
9213 wr %r0, 0x41, %asi
9214 set sync_thr_counter4, %r23
9215#ifndef SPC
9216 ldxa [%g0]0x63, %r8
9217 and %r8, 0x38, %r8 ! Core ID
9218 add %r8, %r23, %r23
9219#else
9220 mov 0, %r8
9221#endif
9222 mov 0x4, %r16
9223iaw_startwait4_69:
9224 cas [%r23],%g0,%r16 !lock
9225 brz,a %r16, continue_iaw_4_69
9226 mov (~0x4&0xf), %r16
9227 ld [%r23], %r16
9228iaw_wait4_69:
9229 brnz %r16, iaw_wait4_69
9230 ld [%r23], %r16
9231 ba iaw_startwait4_69
9232 mov 0x4, %r16
9233continue_iaw_4_69:
9234 sllx %r16, %r8, %r16 !Mask for my core only
9235 ldxa [0x58]%asi, %r17 !Running_status
9236wait_for_stat_4_69:
9237 ldxa [0x50]%asi, %r13 !Running_rw
9238 cmp %r13, %r17
9239 bne,a %xcc, wait_for_stat_4_69
9240 ldxa [0x58]%asi, %r17 !Running_status
9241 stxa %r16, [0x68]%asi !Park (W1C)
9242 ldxa [0x50]%asi, %r14 !Running_rw
9243wait_for_iaw_4_69:
9244 ldxa [0x58]%asi, %r17 !Running_status
9245 cmp %r14, %r17
9246 bne,a %xcc, wait_for_iaw_4_69
9247 ldxa [0x50]%asi, %r14 !Running_rw
9248iaw_doit4_69:
9249 mov 0x38, %r18
9250iaw3_4_69:
9251 setx vahole_target0, %r20, %r19
9252 or %r19, 0x1, %r19
9253 stxa %r19, [%r18]0x50
9254 stxa %r16, [0x60] %asi ! Unpark (W1S)
9255 st %g0, [%r23] !clear lock
9256 wr %r0, %r12, %asi ! restore %asi
9257 ta T_CHANGE_NONHPRIV
9258 .word 0xdb1fe1e0 ! 95: LDDF_I ldd [%r31, 0x01e0], %f13
9259splash_tba_4_70:
9260 nop
9261 ta T_CHANGE_PRIV
9262 setx 0x0000000400380000, %r11, %r12
9263 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
9264 setx 0x2861dc4cf2002207, %r1, %r28
9265 stxa %r28, [%g0] 0x73
9266intvec_4_71:
9267 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
9268memptr_4_72:
9269 set user_data_start, %r31
9270 .word 0x85852c8b ! 98: WRCCR_I wr %r20, 0x0c8b, %ccr
9271fpinit_4_73:
9272 nop
9273 setx fp_data_quads, %r19, %r20
9274 ldd [%r20], %f0
9275 ldd [%r20+8], %f4
9276 ld [%r20+16], %fsr
9277 ld [%r20+24], %r19
9278 wr %r19, %g0, %gsr
9279 .word 0x87a80a44 ! 99: FCMPd fcmpd %fcc<n>, %f0, %f4
9280intveclr_4_74:
9281 nop
9282 ta T_CHANGE_HPRIV
9283 setx 0x9a27d95d448b2451, %r1, %r28
9284 stxa %r28, [%g0] 0x72
9285 ta T_CHANGE_NONHPRIV
9286 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
9287 nop
9288 ta T_CHANGE_HPRIV ! macro
9289donret_4_75:
9290 rd %pc, %r12
9291 add %r12, (donretarg_4_75-donret_4_75+4), %r12
9292 add %r12, 0x4, %r11 ! seq tnpc
9293 wrpr %g0, 0x1, %tl
9294 wrpr %g0, %r12, %tpc
9295 wrpr %g0, %r11, %tnpc
9296 set (0x008d2e00 | (28 << 24)), %r13
9297 and %r12, 0xfff, %r14
9298 sllx %r14, 30, %r14
9299 or %r13, %r14, %r20
9300 wrpr %r20, %g0, %tstate
9301 wrhpr %g0, 0x140e, %htstate
9302 ta T_CHANGE_NONHPRIV ! rand=1 (4)
9303 done
9304donretarg_4_75:
9305 .word 0x97a509c7 ! 101: FDIVd fdivd %f20, %f38, %f42
9306 .word 0x81d9c002 ! 102: FLUSH_R flush
9307ibp_4_76:
9308 nop
9309 .word 0xc19fe1a0 ! 103: LDDFA_I ldda [%r31, 0x01a0], %f0
9310 .word 0xe89fe138 ! 104: LDDA_I ldda [%r31, + 0x0138] %asi, %r20
9311 nop
9312 ta T_CHANGE_HPRIV ! macro
9313donret_4_77:
9314 rd %pc, %r12
9315 add %r12, (donretarg_4_77-donret_4_77+4), %r12
9316 add %r12, 0x4, %r11 ! seq tnpc
9317 wrpr %g0, 0x2, %tl
9318 wrpr %g0, %r12, %tpc
9319 wrpr %g0, %r11, %tnpc
9320 set (0x00a6db00 | (20 << 24)), %r13
9321 and %r12, 0xfff, %r14
9322 sllx %r14, 30, %r14
9323 or %r13, %r14, %r20
9324 wrpr %r20, %g0, %tstate
9325 wrhpr %g0, 0x1719, %htstate
9326 ta T_CHANGE_NONPRIV ! rand=0 (4)
9327 done
9328donretarg_4_77:
9329 .word 0xa5a289c7 ! 105: FDIVd fdivd %f10, %f38, %f18
9330 .word 0x8d90254f ! 106: WRPR_PSTATE_I wrpr %r0, 0x054f, %pstate
9331 .word 0x9153c000 ! 107: RDPR_FQ <illegal instruction>
9332 .word 0xab842ca4 ! 108: WR_CLEAR_SOFTINT_I wr %r16, 0x0ca4, %clear_softint
9333 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
9334 .word 0xe1bfc2c0 ! 110: STDFA_R stda %f16, [%r0, %r31]
9335br_badelay3_4_80:
9336 .word 0x34800001 ! 1: BG bg,a <label_0x1>
9337 .word 0x8546610f ! Random illegal ?
9338 .word 0x9ba00542 ! 1: FSQRTd fsqrt
9339 .word 0x9ba44833 ! 111: FADDs fadds %f17, %f19, %f13
9340ibp_4_81:
9341 nop
9342 ta T_CHANGE_NONHPRIV
9343 .word 0xd91fc010 ! 112: LDDF_R ldd [%r31, %r16], %f12
9344memptr_4_82:
9345 set 0x60140000, %r31
9346 .word 0x858431e7 ! 113: WRCCR_I wr %r16, 0x11e7, %ccr
9347mondo_4_83:
9348 nop
9349 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
9350 ta T_CHANGE_PRIV
9351 stxa %r18, [%r0+0x3d0] %asi
9352 .word 0x9d908011 ! 114: WRPR_WSTATE_R wrpr %r2, %r17, %wstate
9353 .word 0x9b508000 ! 115: RDPR_TSTATE <illegal instruction>
9354splash_lsu_4_84:
9355 nop
9356 ta T_CHANGE_HPRIV
9357 set 0x9e38048c, %r2
9358 mov 0x6, %r1
9359 sllx %r1, 32, %r1
9360 or %r1, %r2, %r2
9361 stxa %r2, [%r0] ASI_LSU_CONTROL
9362 ta T_CHANGE_NONHPRIV
9363 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
9364splash_cmpr_4_85:
9365 mov 0, %r18
9366 sllx %r18, 63, %r18
9367 rd %tick, %r17
9368 add %r17, 0x50, %r17
9369 or %r17, %r18, %r17
9370 ta T_CHANGE_PRIV
9371 .word 0xaf800011 ! 117: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
9372splash_hpstate_4_86:
9373 ta T_CHANGE_NONHPRIV
9374 .word 0x819825cc ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x05cc, %hpstate
9375 .word 0xa190200d ! 119: WRPR_GL_I wrpr %r0, 0x000d, %-
9376 nop
9377 ta T_CHANGE_HPRIV
9378 mov 0x4, %r10
9379 set sync_thr_counter6, %r23
9380#ifndef SPC
9381 ldxa [%g0]0x63, %o1
9382 and %o1, 0x38, %o1
9383 add %o1, %r23, %r23
9384#endif
9385 cas [%r23],%g0,%r10 !lock
9386 brnz %r10, sma_4_87
9387 rd %asi, %r12
9388 wr %g0, 0x40, %asi
9389 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
9390 set 0x00061fff, %g1
9391 stxa %g1, [%g0 + 0x80] %asi
9392 wr %r12, %g0, %asi
9393 st %g0, [%r23]
9394sma_4_87:
9395 ta T_CHANGE_NONHPRIV
9396 .word 0xe1e7e013 ! 120: CASA_R casa [%r31] %asi, %r19, %r16
9397mondo_4_88:
9398 nop
9399 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
9400 stxa %r13, [%r0+0x3e0] %asi
9401 .word 0x9d934013 ! 121: WRPR_WSTATE_R wrpr %r13, %r19, %wstate
9402splash_lsu_4_89:
9403 nop
9404 ta T_CHANGE_HPRIV
9405 set 0x1c46ea60, %r2
9406 mov 0x4, %r1
9407 sllx %r1, 32, %r1
9408 or %r1, %r2, %r2
9409 stxa %r2, [%r0] ASI_LSU_CONTROL
9410 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
9411brcommon3_4_90:
9412 nop
9413 setx common_target, %r12, %r27
9414 lduw [%r27], %r12 ! Load common dest into dcache ..
9415 ba,a .+12
9416 .word 0xe1e7c031 ! 1: CASA_I casa [%r31] 0x 1, %r17, %r16
9417 ba,a .+8
9418 jmpl %r27+0, %r27
9419 .word 0xe13fc013 ! 123: STDF_R std %f16, [%r19, %r31]
9420dvapa_4_91:
9421 nop
9422 ta T_CHANGE_HPRIV
9423 mov 0xb99, %r20
9424 mov 0x9, %r19
9425 sllx %r20, 23, %r20
9426 or %r19, %r20, %r19
9427 stxa %r19, [%g0] ASI_LSU_CONTROL
9428 mov 0x38, %r18
9429 stxa %r31, [%r18]0x58
9430 ta T_CHANGE_NONHPRIV
9431 .word 0xc19fe180 ! 124: LDDFA_I ldda [%r31, 0x0180], %f0
9432 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
9433iaw_4_92:
9434 nop
9435 ta T_CHANGE_HPRIV
9436 mov 8, %r18
9437 rd %asi, %r12
9438 wr %r0, 0x41, %asi
9439 set sync_thr_counter4, %r23
9440#ifndef SPC
9441 ldxa [%g0]0x63, %r8
9442 and %r8, 0x38, %r8 ! Core ID
9443 add %r8, %r23, %r23
9444#else
9445 mov 0, %r8
9446#endif
9447 mov 0x4, %r16
9448iaw_startwait4_92:
9449 cas [%r23],%g0,%r16 !lock
9450 brz,a %r16, continue_iaw_4_92
9451 mov (~0x4&0xf), %r16
9452 ld [%r23], %r16
9453iaw_wait4_92:
9454 brnz %r16, iaw_wait4_92
9455 ld [%r23], %r16
9456 ba iaw_startwait4_92
9457 mov 0x4, %r16
9458continue_iaw_4_92:
9459 sllx %r16, %r8, %r16 !Mask for my core only
9460 ldxa [0x58]%asi, %r17 !Running_status
9461wait_for_stat_4_92:
9462 ldxa [0x50]%asi, %r13 !Running_rw
9463 cmp %r13, %r17
9464 bne,a %xcc, wait_for_stat_4_92
9465 ldxa [0x58]%asi, %r17 !Running_status
9466 stxa %r16, [0x68]%asi !Park (W1C)
9467 ldxa [0x50]%asi, %r14 !Running_rw
9468wait_for_iaw_4_92:
9469 ldxa [0x58]%asi, %r17 !Running_status
9470 cmp %r14, %r17
9471 bne,a %xcc, wait_for_iaw_4_92
9472 ldxa [0x50]%asi, %r14 !Running_rw
9473iaw_doit4_92:
9474 mov 0x38, %r18
9475iaw2_4_92:
9476 rdpr %tba, %r19
9477 mov 0x11, %r20
9478 sllx %r20, 5, %r20
9479 add %r20, %r19, %r19
9480 stxa %r19, [%r18]0x50
9481 stxa %r16, [0x60] %asi ! Unpark (W1S)
9482 st %g0, [%r23] !clear lock
9483 wr %r0, %r12, %asi ! restore %asi
9484 ta T_CHANGE_NONHPRIV
9485 .word 0xe097c02d ! 126: LDUHA_R lduha [%r31, %r13] 0x01, %r16
9486 setx 0x4272fa7f0dfac2ab, %r1, %r28
9487 stxa %r28, [%g0] 0x73
9488intvec_4_93:
9489 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
9490 .word 0x8d802004 ! 128: WRFPRS_I wr %r0, 0x0004, %fprs
9491 .word 0xe0d7e1f0 ! 129: LDSHA_I ldsha [%r31, + 0x01f0] %asi, %r16
9492#if (defined SPC || defined CMP1)
9493!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_94) + 0, 16, 16)) -> intp(7,0,10)
9494#else
9495 setx 0x44519f205b38e50f, %r1, %r28
9496 stxa %r28, [%g0] 0x73
9497#endif
9498intvec_4_94:
9499 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
9500 .word 0x8d802004 ! 131: WRFPRS_I wr %r0, 0x0004, %fprs
9501 .word 0x8d903143 ! 132: WRPR_PSTATE_I wrpr %r0, 0x1143, %pstate
9502 .word 0x24c9c001 ! 1: BRLEZ brlez,a,pt %r7,<label_0x9c001>
9503 .word 0x8d903579 ! 133: WRPR_PSTATE_I wrpr %r0, 0x1579, %pstate
9504 setx 0xb5188cd409d187dd, %r1, %r28
9505 stxa %r28, [%g0] 0x73
9506intvec_4_97:
9507 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
9508 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
9509reduce_priv_lvl_4_98:
9510 ta T_CHANGE_NONHPRIV ! macro
9511ibp_4_99:
9512 nop
9513 ta T_CHANGE_NONHPRIV
9514 .word 0x95a489d4 ! 136: FDIVd fdivd %f18, %f20, %f10
9515splash_tick_4_100:
9516 nop
9517 ta T_CHANGE_HPRIV
9518 best_set_reg(0x3989f23fd226b52b, %r16, %r17)
9519 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
9520change_to_randtl_4_101:
9521 ta T_CHANGE_HPRIV ! macro
9522done_change_to_randtl_4_101:
9523 .word 0x8f902001 ! 138: WRPR_TL_I wrpr %r0, 0x0001, %tl
9524splash_cmpr_4_102:
9525 mov 0, %r18
9526 sllx %r18, 63, %r18
9527 rd %tick, %r17
9528 add %r17, 0x50, %r17
9529 or %r17, %r18, %r17
9530 .word 0xaf800011 ! 139: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
9531 .word 0xe8cfe028 ! 140: LDSBA_I ldsba [%r31, + 0x0028] %asi, %r20
9532 nop
9533 ta T_CHANGE_HPRIV ! macro
9534donret_4_103:
9535 rd %pc, %r12
9536 add %r12, (donretarg_4_103-donret_4_103), %r12
9537 add %r12, 0x4, %r11 ! seq tnpc
9538 wrpr %g0, 0x2, %tl
9539 wrpr %g0, %r12, %tpc
9540 wrpr %g0, %r11, %tnpc
9541 set (0x001c8b00 | (28 << 24)), %r13
9542 and %r12, 0xfff, %r14
9543 sllx %r14, 30, %r14
9544 or %r13, %r14, %r20
9545 wrpr %r20, %g0, %tstate
9546 wrhpr %g0, 0xa4e, %htstate
9547 ta T_CHANGE_NONPRIV ! rand=0 (4)
9548 .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, <label_0x1>
9549 done
9550donretarg_4_103:
9551 .word 0xe86fe00c ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x000c]
9552trapasi_4_104:
9553 nop
9554 mov 0x30, %r1 ! (VA for ASI 0x5b)
9555 .word 0xe8884b60 ! 142: LDUBA_R lduba [%r1, %r0] 0x5b, %r20
9556fpinit_4_105:
9557 nop
9558 setx fp_data_quads, %r19, %r20
9559 ldd [%r20], %f0
9560 ldd [%r20+8], %f4
9561 ld [%r20+16], %fsr
9562 ld [%r20+24], %r19
9563 wr %r19, %g0, %gsr
9564 .word 0x8da009a4 ! 143: FDIVs fdivs %f0, %f4, %f6
9565splash_tick_4_106:
9566 nop
9567 ta T_CHANGE_HPRIV
9568 best_set_reg(0x444527697419a28a, %r16, %r17)
9569 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
9570change_to_randtl_4_107:
9571 ta T_CHANGE_HPRIV ! macro
9572done_change_to_randtl_4_107:
9573 .word 0x8f902000 ! 145: WRPR_TL_I wrpr %r0, 0x0000, %tl
9574dvapa_4_108:
9575 nop
9576 ta T_CHANGE_HPRIV
9577 mov 0x82b, %r20
9578 mov 0xb, %r19
9579 sllx %r20, 23, %r20
9580 or %r19, %r20, %r19
9581 stxa %r19, [%g0] ASI_LSU_CONTROL
9582 mov 0x38, %r18
9583 stxa %r31, [%r18]0x58
9584 ta T_CHANGE_NONHPRIV
9585 .word 0xe9e7e009 ! 146: CASA_R casa [%r31] %asi, %r9, %r20
9586 setx 0xa8a7877781431a6a, %r1, %r28
9587 stxa %r28, [%g0] 0x73
9588intvec_4_109:
9589 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
9590 .word 0xe8cfe0d0 ! 148: LDSBA_I ldsba [%r31, + 0x00d0] %asi, %r20
9591 .word 0xa782c009 ! 149: WR_GRAPHICS_STATUS_REG_R wr %r11, %r9, %-
9592iaw_4_111:
9593 nop
9594 ta T_CHANGE_HPRIV
9595 mov 8, %r18
9596 rd %asi, %r12
9597 wr %r0, 0x41, %asi
9598 set sync_thr_counter4, %r23
9599#ifndef SPC
9600 ldxa [%g0]0x63, %r8
9601 and %r8, 0x38, %r8 ! Core ID
9602 add %r8, %r23, %r23
9603#else
9604 mov 0, %r8
9605#endif
9606 mov 0x4, %r16
9607iaw_startwait4_111:
9608 cas [%r23],%g0,%r16 !lock
9609 brz,a %r16, continue_iaw_4_111
9610 mov (~0x4&0xf), %r16
9611 ld [%r23], %r16
9612iaw_wait4_111:
9613 brnz %r16, iaw_wait4_111
9614 ld [%r23], %r16
9615 ba iaw_startwait4_111
9616 mov 0x4, %r16
9617continue_iaw_4_111:
9618 sllx %r16, %r8, %r16 !Mask for my core only
9619 ldxa [0x58]%asi, %r17 !Running_status
9620wait_for_stat_4_111:
9621 ldxa [0x50]%asi, %r13 !Running_rw
9622 cmp %r13, %r17
9623 bne,a %xcc, wait_for_stat_4_111
9624 ldxa [0x58]%asi, %r17 !Running_status
9625 stxa %r16, [0x68]%asi !Park (W1C)
9626 ldxa [0x50]%asi, %r14 !Running_rw
9627wait_for_iaw_4_111:
9628 ldxa [0x58]%asi, %r17 !Running_status
9629 cmp %r14, %r17
9630 bne,a %xcc, wait_for_iaw_4_111
9631 ldxa [0x50]%asi, %r14 !Running_rw
9632iaw_doit4_111:
9633 mov 0x38, %r18
9634iaw4_4_111:
9635 setx common_target, %r20, %r19
9636 or %r19, 0x1, %r19
9637 stxa %r19, [%r18]0x50
9638 stxa %r16, [0x60] %asi ! Unpark (W1S)
9639 st %g0, [%r23] !clear lock
9640 wr %r0, %r12, %asi ! restore %asi
9641 ta T_CHANGE_NONHPRIV
9642 .word 0xe8dfc034 ! 150: LDXA_R ldxa [%r31, %r20] 0x01, %r20
9643br_longdelay3_4_112:
9644 nop
9645 not %g0, %r12
9646 jmp %r12
9647 .word 0x99902002 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0002, %cleanwin
9648 .word 0x9ba00552 ! 152: FSQRTd fsqrt
9649 .word 0xc19fe020 ! 153: LDDFA_I ldda [%r31, 0x0020], %f0
9650splash_cmpr_4_113:
9651 mov 1, %r18
9652 sllx %r18, 63, %r18
9653 rd %tick, %r17
9654 add %r17, 0x80, %r17
9655 or %r17, %r18, %r17
9656 .word 0xaf800011 ! 154: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
9657 .word 0x879c4008 ! 155: WRHPR_HINTP_R wrhpr %r17, %r8, %hintp
9658cmp_4_114:
9659 nop
9660 ta T_CHANGE_HPRIV
9661 rd %asi, %r12
9662 wr %r0, 0x41, %asi
9663 set sync_thr_counter4, %r23
9664#ifndef SPC
9665 ldxa [%g0]0x63, %r8
9666 and %r8, 0x38, %r8 ! Core ID
9667 add %r8, %r23, %r23
9668 mov 0xff, %r9
9669 xor %r9, 0x4, %r9
9670 sllx %r9, %r8, %r9 ! My core mask
9671#else
9672 mov 0, %r8
9673 mov 0xff, %r9
9674 xor %r9, 0x4, %r9 ! My core mask
9675#endif
9676 mov 0x4, %r10
9677cmp_startwait4_114:
9678 cas [%r23],%g0,%r10 !lock
9679 brz,a %r10, continue_cmp_4_114
9680 ldxa [0x50]%asi, %r13 !Running_rw
9681 ld [%r23], %r10
9682cmp_wait4_114:
9683 brnz,a %r10, cmp_wait4_114
9684 ld [%r23], %r10
9685 ba cmp_startwait4_114
9686 mov 0x4, %r10
9687continue_cmp_4_114:
9688 ldxa [0x58]%asi, %r14 !Running_status
9689 xnor %r14, %r13, %r14 !Bits equal
9690 brz,a %r8, cmp_multi_core_4_114
9691 mov 0xbe, %r17
9692 best_set_reg(0x9a6631d8a2150899, %r16, %r17)
9693cmp_multi_core_4_114:
9694 and %r14, %r17, %r14 !Apply set/clear mask to bits equal
9695 and %r14, %r9, %r14 !Apply core-mask
9696 stxa %r14, [0x60]%asi
9697 st %g0, [%r23] !clear lock
9698 wr %g0, %r12, %asi
9699 .word 0x9190c012 ! 156: WRPR_PIL_R wrpr %r3, %r18, %pil
9700ibp_4_115:
9701 nop
9702 .word 0x9f8021e0 ! 157: SIR sir 0x01e0
9703fpinit_4_116:
9704 nop
9705 setx fp_data_quads, %r19, %r20
9706 ldd [%r20], %f0
9707 ldd [%r20+8], %f4
9708 ld [%r20+16], %fsr
9709 ld [%r20+24], %r19
9710 wr %r19, %g0, %gsr
9711 .word 0x89b00484 ! 158: FCMPLE32 fcmple32 %d0, %d4, %r4
9712 nop
9713 ta T_CHANGE_HPRIV ! macro
9714donret_4_117:
9715 rd %pc, %r12
9716 add %r12, (donretarg_4_117-donret_4_117), %r12
9717 add %r12, 0x4, %r11 ! seq tnpc
9718 wrpr %g0, 0x1, %tl
9719 wrpr %g0, %r12, %tpc
9720 wrpr %g0, %r11, %tnpc
9721 set (0x00585000 | (28 << 24)), %r13
9722 and %r12, 0xfff, %r14
9723 sllx %r14, 30, %r14
9724 or %r13, %r14, %r20
9725 wrpr %r20, %g0, %tstate
9726 wrhpr %g0, 0x84, %htstate
9727 ta T_CHANGE_NONPRIV ! rand=0 (4)
9728 done
9729donretarg_4_117:
9730 .word 0xd6ffe1e4 ! 159: SWAPA_I swapa %r11, [%r31 + 0x01e4] %asi
9731 .word 0xd6dfe0e8 ! 160: LDXA_I ldxa [%r31, + 0x00e8] %asi, %r11
9732jmptr_4_118:
9733 nop
9734 best_set_reg(0xe0200000, %r20, %r27)
9735 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
9736dvapa_4_119:
9737 nop
9738 ta T_CHANGE_HPRIV
9739 mov 0xc66, %r20
9740 mov 0xf, %r19
9741 sllx %r20, 23, %r20
9742 or %r19, %r20, %r19
9743 stxa %r19, [%g0] ASI_LSU_CONTROL
9744 mov 0x38, %r18
9745 stxa %r31, [%r18]0x58
9746 ta T_CHANGE_NONHPRIV
9747 .word 0xa7a4c9ab ! 162: FDIVs fdivs %f19, %f11, %f19
9748 .word 0xa9818006 ! 163: WR_SET_SOFTINT_R wr %r6, %r6, %set_softint
9749 nop
9750 ta T_CHANGE_HPRIV ! macro
9751donret_4_120:
9752 rd %pc, %r12
9753 add %r12, (donretarg_4_120-donret_4_120+4), %r12
9754 add %r12, 0x4, %r11 ! seq tnpc
9755 wrpr %g0, 0x1, %tl
9756 wrpr %g0, %r12, %tpc
9757 wrpr %g0, %r11, %tnpc
9758 set (0x00732a00 | (20 << 24)), %r13
9759 and %r12, 0xfff, %r14
9760 sllx %r14, 30, %r14
9761 or %r13, %r14, %r20
9762 wrpr %r20, %g0, %tstate
9763 wrhpr %g0, 0xd97, %htstate
9764 ta T_CHANGE_NONHPRIV ! rand=1 (4)
9765 retry
9766donretarg_4_120:
9767 .word 0xa5a509c4 ! 164: FDIVd fdivd %f20, %f4, %f18
9768 nop
9769 ta T_CHANGE_HPRIV
9770 mov 0x4, %r10
9771 set sync_thr_counter6, %r23
9772#ifndef SPC
9773 ldxa [%g0]0x63, %o1
9774 and %o1, 0x38, %o1
9775 add %o1, %r23, %r23
9776#endif
9777 cas [%r23],%g0,%r10 !lock
9778 brnz %r10, sma_4_121
9779 rd %asi, %r12
9780 wr %g0, 0x40, %asi
9781 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
9782 set 0x00161fff, %g1
9783 stxa %g1, [%g0 + 0x80] %asi
9784 wr %r12, %g0, %asi
9785 st %g0, [%r23]
9786sma_4_121:
9787 ta T_CHANGE_NONHPRIV
9788 .word 0xe9e7e008 ! 165: CASA_R casa [%r31] %asi, %r8, %r20
9789 .word 0x23400001 ! 1: FBPNE fbne,a,pn %fcc0, <label_0x1>
9790 .word 0x8d902e99 ! 166: WRPR_PSTATE_I wrpr %r0, 0x0e99, %pstate
9791 .word 0x8d802000 ! 167: WRFPRS_I wr %r0, 0x0000, %fprs
9792splash_tick_4_123:
9793 nop
9794 ta T_CHANGE_HPRIV
9795 best_set_reg(0xff1f0c1fd97634cd, %r16, %r17)
9796 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
9797 set 0x1fb1, %l3
9798 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
9799 .word 0xa9b4c7d4 ! 169: PDIST pdistn %d50, %d20, %d20
9800iaw_4_124:
9801 nop
9802 ta T_CHANGE_HPRIV
9803 mov 8, %r18
9804 rd %asi, %r12
9805 wr %r0, 0x41, %asi
9806 set sync_thr_counter4, %r23
9807#ifndef SPC
9808 ldxa [%g0]0x63, %r8
9809 and %r8, 0x38, %r8 ! Core ID
9810 add %r8, %r23, %r23
9811#else
9812 mov 0, %r8
9813#endif
9814 mov 0x4, %r16
9815iaw_startwait4_124:
9816 cas [%r23],%g0,%r16 !lock
9817 brz,a %r16, continue_iaw_4_124
9818 mov (~0x4&0xf), %r16
9819 ld [%r23], %r16
9820iaw_wait4_124:
9821 brnz %r16, iaw_wait4_124
9822 ld [%r23], %r16
9823 ba iaw_startwait4_124
9824 mov 0x4, %r16
9825continue_iaw_4_124:
9826 sllx %r16, %r8, %r16 !Mask for my core only
9827 ldxa [0x58]%asi, %r17 !Running_status
9828wait_for_stat_4_124:
9829 ldxa [0x50]%asi, %r13 !Running_rw
9830 cmp %r13, %r17
9831 bne,a %xcc, wait_for_stat_4_124
9832 ldxa [0x58]%asi, %r17 !Running_status
9833 stxa %r16, [0x68]%asi !Park (W1C)
9834 ldxa [0x50]%asi, %r14 !Running_rw
9835wait_for_iaw_4_124:
9836 ldxa [0x58]%asi, %r17 !Running_status
9837 cmp %r14, %r17
9838 bne,a %xcc, wait_for_iaw_4_124
9839 ldxa [0x50]%asi, %r14 !Running_rw
9840iaw_doit4_124:
9841 mov 0x38, %r18
9842iaw2_4_124:
9843 rdpr %tba, %r19
9844 mov 0x120, %r20
9845 sllx %r20, 5, %r20
9846 add %r20, %r19, %r19
9847 stxa %r19, [%r18]0x50
9848 stxa %r16, [0x60] %asi ! Unpark (W1S)
9849 st %g0, [%r23] !clear lock
9850 wr %r0, %r12, %asi ! restore %asi
9851 ta T_CHANGE_NONHPRIV
9852 .word 0xe11fe1d0 ! 170: LDDF_I ldd [%r31, 0x01d0], %f16
9853splash_hpstate_4_125:
9854 .word 0x81983307 ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x1307, %hpstate
9855memptr_4_126:
9856 set user_data_start, %r31
9857 .word 0x85852cd7 ! 172: WRCCR_I wr %r20, 0x0cd7, %ccr
9858 .word 0x8d902a73 ! 173: WRPR_PSTATE_I wrpr %r0, 0x0a73, %pstate
9859splash_cmpr_4_128:
9860 mov 1, %r18
9861 sllx %r18, 63, %r18
9862 rd %tick, %r17
9863 add %r17, 0x100, %r17
9864 or %r17, %r18, %r17
9865 ta T_CHANGE_HPRIV
9866 wrhpr %r17, %g0, %hsys_tick_cmpr
9867 ta T_CHANGE_PRIV
9868 .word 0xaf800011 ! 174: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
9869 .word 0xc32fc000 ! 175: STXFSR_R st-sfr %f1, [%r0, %r31]
9870brcommon2_4_130:
9871 nop
9872 setx common_target, %r12, %r27
9873 ba,a .+12
9874 .word 0xa1b7c70c ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f12, %d16
9875 ba,a .+8
9876 jmpl %r27+0, %r27
9877 .word 0xe19fe160 ! 176: LDDFA_I ldda [%r31, 0x0160], %f16
9878splash_cmpr_4_131:
9879 mov 0, %r18
9880 sllx %r18, 63, %r18
9881 rd %tick, %r17
9882 add %r17, 0x100, %r17
9883 or %r17, %r18, %r17
9884 ta T_CHANGE_HPRIV
9885 wrhpr %r17, %g0, %hsys_tick_cmpr
9886 .word 0xaf800011 ! 177: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
9887splash_cmpr_4_132:
9888 mov 1, %r18
9889 sllx %r18, 63, %r18
9890 rd %tick, %r17
9891 add %r17, 0x70, %r17
9892 or %r17, %r18, %r17
9893 ta T_CHANGE_HPRIV
9894 wrhpr %r17, %g0, %hsys_tick_cmpr
9895 ta T_CHANGE_PRIV
9896 .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
9897splash_tick_4_133:
9898 nop
9899 ta T_CHANGE_HPRIV
9900 best_set_reg(0xc4e6505492b3b4cb, %r16, %r17)
9901 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
9902splash_tick_4_134:
9903 nop
9904 ta T_CHANGE_HPRIV
9905 best_set_reg(0x746da9e359ee7079, %r16, %r17)
9906 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
9907 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
9908memptr_4_135:
9909 set user_data_start, %r31
9910 .word 0x8582fdc8 ! 182: WRCCR_I wr %r11, 0x1dc8, %ccr
9911memptr_4_136:
9912 set 0x60540000, %r31
9913 .word 0x85806315 ! 183: WRCCR_I wr %r1, 0x0315, %ccr
9914 .word 0xe677e0e8 ! 184: STX_I stx %r19, [%r31 + 0x00e8]
9915splash_tick_4_137:
9916 nop
9917 ta T_CHANGE_HPRIV
9918 best_set_reg(0xae986acf34763caf, %r16, %r17)
9919 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
9920fpinit_4_138:
9921 nop
9922 setx fp_data_quads, %r19, %r20
9923 ldd [%r20], %f0
9924 ldd [%r20+8], %f4
9925 ld [%r20+16], %fsr
9926 ld [%r20+24], %r19
9927 wr %r19, %g0, %gsr
9928 .word 0xc3e82060 ! 186: PREFETCHA_I prefetcha [%r0, + 0x0060] %asi, #one_read
9929iaw_4_139:
9930 nop
9931 ta T_CHANGE_HPRIV
9932 mov 8, %r18
9933 rd %asi, %r12
9934 wr %r0, 0x41, %asi
9935 set sync_thr_counter4, %r23
9936#ifndef SPC
9937 ldxa [%g0]0x63, %r8
9938 and %r8, 0x38, %r8 ! Core ID
9939 add %r8, %r23, %r23
9940#else
9941 mov 0, %r8
9942#endif
9943 mov 0x4, %r16
9944iaw_startwait4_139:
9945 cas [%r23],%g0,%r16 !lock
9946 brz,a %r16, continue_iaw_4_139
9947 mov (~0x4&0xf), %r16
9948 ld [%r23], %r16
9949iaw_wait4_139:
9950 brnz %r16, iaw_wait4_139
9951 ld [%r23], %r16
9952 ba iaw_startwait4_139
9953 mov 0x4, %r16
9954continue_iaw_4_139:
9955 sllx %r16, %r8, %r16 !Mask for my core only
9956 ldxa [0x58]%asi, %r17 !Running_status
9957wait_for_stat_4_139:
9958 ldxa [0x50]%asi, %r13 !Running_rw
9959 cmp %r13, %r17
9960 bne,a %xcc, wait_for_stat_4_139
9961 ldxa [0x58]%asi, %r17 !Running_status
9962 stxa %r16, [0x68]%asi !Park (W1C)
9963 ldxa [0x50]%asi, %r14 !Running_rw
9964wait_for_iaw_4_139:
9965 ldxa [0x58]%asi, %r17 !Running_status
9966 cmp %r14, %r17
9967 bne,a %xcc, wait_for_iaw_4_139
9968 ldxa [0x50]%asi, %r14 !Running_rw
9969iaw_doit4_139:
9970 mov 0x38, %r18
9971iaw1_4_139:
9972 best_set_reg(0x00000000e0200000, %r20, %r19)
9973 or %r19, 0x1, %r19
9974 stxa %r19, [%r18]0x50
9975 stxa %r16, [0x60] %asi ! Unpark (W1S)
9976 st %g0, [%r23] !clear lock
9977 wr %r0, %r12, %asi ! restore %asi
9978 ta T_CHANGE_NONHPRIV
9979 .word 0xe19fc2c0 ! 187: LDDFA_R ldda [%r31, %r0], %f16
9980fpinit_4_140:
9981 nop
9982 setx fp_data_quads, %r19, %r20
9983 ldd [%r20], %f0
9984 ldd [%r20+8], %f4
9985 ld [%r20+16], %fsr
9986 ld [%r20+24], %r19
9987 wr %r19, %g0, %gsr
9988 .word 0x91a009a4 ! 188: FDIVs fdivs %f0, %f4, %f8
9989ceter_4_141:
9990 nop
9991 ta T_CHANGE_HPRIV
9992 mov 7, %r17
9993 sllx %r17, 60, %r17
9994 mov 0x18, %r16
9995 stxa %r17, [%r16]0x4c
9996 ta T_CHANGE_NONHPRIV
9997 .word 0x97410000 ! 189: RDTICK rd %tick, %r11
9998 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
9999 .word 0x8d802000 ! 191: WRFPRS_I wr %r0, 0x0000, %fprs
10000 nop
10001 ta T_CHANGE_HPRIV ! macro
10002donret_4_142:
10003 rd %pc, %r12
10004 add %r12, (donretarg_4_142-donret_4_142+4), %r12
10005 add %r12, 0x4, %r11 ! seq tnpc
10006 wrpr %g0, 0x2, %tl
10007 wrpr %g0, %r12, %tpc
10008 wrpr %g0, %r11, %tnpc
10009 set (0x00929300 | (0x55 << 24)), %r13
10010 and %r12, 0xfff, %r14
10011 sllx %r14, 30, %r14
10012 or %r13, %r14, %r20
10013 wrpr %r20, %g0, %tstate
10014 wrhpr %g0, 0xec5, %htstate
10015 ta T_CHANGE_NONPRIV ! rand=0 (4)
10016 retry
10017donretarg_4_142:
10018 .word 0xd2ffe0ce ! 192: SWAPA_I swapa %r9, [%r31 + 0x00ce] %asi
10019 .word 0x87998008 ! 193: WRHPR_HINTP_R wrhpr %r6, %r8, %hintp
10020splash_cmpr_4_143:
10021 mov 0, %r18
10022 sllx %r18, 63, %r18
10023 rd %tick, %r17
10024 add %r17, 0x80, %r17
10025 or %r17, %r18, %r17
10026 ta T_CHANGE_HPRIV
10027 wrhpr %r17, %g0, %hsys_tick_cmpr
10028 .word 0xaf800011 ! 194: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
10029 nop
10030 ta T_CHANGE_HPRIV
10031 mov 0x4+1, %r10
10032 set sync_thr_counter5, %r23
10033#ifndef SPC
10034 ldxa [%g0]0x63, %o1
10035 and %o1, 0x38, %o1
10036 add %o1, %r23, %r23
10037 sllx %o1, 5, %o3 !(CID*256)
10038#endif
10039 cas [%r23],%g0,%r10 !lock
10040 brnz %r10, cwq_4_144
10041 rd %asi, %r12
10042 wr %g0, 0x40, %asi
10043 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
10044 and %l1, 0x3, %l1 ! Check if busy/enabled ..
10045 cmp %l1, 1
10046 bne cwq_4_144
10047 set CWQ_BASE, %l6
10048#ifndef SPC
10049 add %l6, %o3, %l6
10050#endif
10051 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
10052 best_set_reg(0x206100d0, %l1, %l2) !# Control Word
10053 sllx %l2, 32, %l2
10054 stx %l2, [%l6 + 0x0]
10055 membar #Sync
10056 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
10057 sub %l2, 0x40, %l2
10058 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
10059 wr %r12, %g0, %asi
10060 st %g0, [%r23]
10061cwq_4_144:
10062 ta T_CHANGE_NONHPRIV
10063 .word 0xa3414000 ! 195: RDPC rd %pc, %r17
10064br_badelay2_4_145:
10065 .word 0x34800001 ! 1: BG bg,a <label_0x1>
10066 pdist %f24, %f10, %f28
10067 .word 0x9bb28303 ! 196: ALIGNADDRESS alignaddr %r10, %r3, %r13
10068splash_tba_4_146:
10069 nop
10070 ta T_CHANGE_PRIV
10071 setx 0x0000000400380000, %r11, %r12
10072 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
10073 nop
10074 mov 0x80, %g3
10075 stxa %g3, [%g3] 0x5f
10076 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
10077 .word 0x81460000 ! 199: RD_STICK_REG stbar
10078 .word 0xd01fe170 ! 200: LDD_I ldd [%r31 + 0x0170], %r8
10079 nop
10080 ta T_CHANGE_HPRIV
10081 mov 0x4+1, %r10
10082 set sync_thr_counter5, %r23
10083#ifndef SPC
10084 ldxa [%g0]0x63, %o1
10085 and %o1, 0x38, %o1
10086 add %o1, %r23, %r23
10087 sllx %o1, 5, %o3 !(CID*256)
10088#endif
10089 cas [%r23],%g0,%r10 !lock
10090 brnz %r10, cwq_4_147
10091 rd %asi, %r12
10092 wr %g0, 0x40, %asi
10093 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
10094 and %l1, 0x3, %l1 ! Check if busy/enabled ..
10095 cmp %l1, 1
10096 bne cwq_4_147
10097 set CWQ_BASE, %l6
10098#ifndef SPC
10099 add %l6, %o3, %l6
10100#endif
10101 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
10102 best_set_reg(0x20610090, %l1, %l2) !# Control Word
10103 sllx %l2, 32, %l2
10104 stx %l2, [%l6 + 0x0]
10105 membar #Sync
10106 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
10107 sub %l2, 0x40, %l2
10108 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
10109 wr %r12, %g0, %asi
10110 st %g0, [%r23]
10111cwq_4_147:
10112 ta T_CHANGE_NONHPRIV
10113 .word 0xa9414000 ! 201: RDPC rd %pc, %r20
10114cmpenall_4_148:
10115 nop
10116 nop
10117 ta T_CHANGE_HPRIV
10118 rd %asi, %r12
10119 wr %r0, 0x41, %asi
10120 set sync_thr_counter4, %r23
10121#ifndef SPC
10122 ldxa [%g0]0x63, %r8
10123 and %r8, 0x38, %r8 ! Core ID
10124 add %r8, %r23, %r23
10125 mov 0xff, %r9
10126 sllx %r9, %r8, %r9 ! My core mask
10127#else
10128 mov 0xff, %r9 ! My core mask
10129#endif
10130cmpenall_startwait4_148:
10131 mov 0x4, %r10
10132 cas [%r23],%g0,%r10 !lock
10133 brz,a %r10, continue_cmpenall_4_148
10134 nop
10135cmpenall_wait4_148:
10136 ld [%r23], %r10
10137 brnz %r10, cmpenall_wait4_148
10138 nop
10139 ba,a cmpenall_startwait4_148
10140continue_cmpenall_4_148:
10141 ldxa [0x58]%asi, %r14 !Running_status
10142wait_for_cmpstat_4_148:
10143 ldxa [0x50]%asi, %r13 !Running_rw
10144 cmp %r13, %r14
10145 bne,a %xcc, wait_for_cmpstat_4_148
10146 ldxa [0x58]%asi, %r14 !Running_status
10147 ldxa [0x10]%asi, %r14 !Get enabled threads
10148 and %r14, %r9, %r14 !My core mask
10149 stxa %r14, [0x60]%asi !W1S
10150 ldxa [0x58]%asi, %r16 !Running_status
10151wait_for_cmpstat2_4_148:
10152 and %r16, %r9, %r16 !My core mask
10153 cmp %r14, %r16
10154 bne,a %xcc, wait_for_cmpstat2_4_148
10155 ldxa [0x58]%asi, %r16 !Running_status
10156 st %g0, [%r23] !clear lock
10157 nop
10158 nop
10159 ta T_CHANGE_PRIV
10160 wrpr %g0, %g0, %gl
10161 nop
10162 nop
10163 setx join_lbl_0_0, %g1, %g2
10164 jmp %g2
10165 nop
10166fork_lbl_0_2:
10167 ta T_CHANGE_NONHPRIV
10168 nop
10169 ta T_CHANGE_HPRIV ! macro
10170donret_2_0:
10171 rd %pc, %r12
10172 add %r12, (donretarg_2_0-donret_2_0), %r12
10173 add %r12, 0x8, %r11 ! nonseq tnpc
10174 wrpr %g0, 0x1, %tl
10175 wrpr %g0, %r12, %tpc
10176 wrpr %g0, %r11, %tnpc
10177 set (0x0058a700 | (16 << 24)), %r13
10178 and %r12, 0xfff, %r14
10179 sllx %r14, 30, %r14
10180 or %r13, %r14, %r20
10181 wrpr %r20, %g0, %tstate
10182 wrhpr %g0, 0x757, %htstate
10183 ta T_CHANGE_NONPRIV ! rand=0 (2)
10184 retry
10185donretarg_2_0:
10186 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
10187reduce_priv_lvl_2_1:
10188 ta T_CHANGE_NONPRIV ! macro
10189change_to_randtl_2_2:
10190 ta T_CHANGE_PRIV ! macro
10191done_change_to_randtl_2_2:
10192 .word 0x8f902000 ! 2: WRPR_TL_I wrpr %r0, 0x0000, %tl
10193 .word 0xdadfe0e8 ! 3: LDXA_I ldxa [%r31, + 0x00e8] %asi, %r13
10194 .word 0xda8008a0 ! 4: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
10195ibp_2_3:
10196 nop
10197 ta T_CHANGE_HPRIV
10198 mov 8, %r18
10199 rd %asi, %r12
10200 wr %r0, 0x41, %asi
10201 set sync_thr_counter4, %r23
10202#ifndef SPC
10203 ldxa [%g0]0x63, %r8
10204 and %r8, 0x38, %r8 ! Core ID
10205 add %r8, %r23, %r23
10206#else
10207 mov 0, %r8
10208#endif
10209 mov 0x2, %r16
10210ibp_startwait2_3:
10211 cas [%r23],%g0,%r16 !lock
10212 brz,a %r16, continue_ibp_2_3
10213 mov (~0x2&0xf), %r16
10214 ld [%r23], %r16
10215ibp_wait2_3:
10216 brnz %r16, ibp_wait2_3
10217 ld [%r23], %r16
10218 ba ibp_startwait2_3
10219 mov 0x2, %r16
10220continue_ibp_2_3:
10221 sllx %r16, %r8, %r16 !Mask for my core only
10222 ldxa [0x58]%asi, %r17 !Running_status
10223wait_for_stat_2_3:
10224 ldxa [0x50]%asi, %r13 !Running_rw
10225 cmp %r13, %r17
10226 bne,a %xcc, wait_for_stat_2_3
10227 ldxa [0x58]%asi, %r17 !Running_status
10228 stxa %r16, [0x68]%asi !Park (W1C)
10229 ldxa [0x50]%asi, %r14 !Running_rw
10230wait_for_ibp_2_3:
10231 ldxa [0x58]%asi, %r17 !Running_status
10232 cmp %r14, %r17
10233 bne,a %xcc, wait_for_ibp_2_3
10234 ldxa [0x50]%asi, %r14 !Running_rw
10235ibp_doit2_3:
10236 best_set_reg(0x000000508ec00e8c,%r19, %r20)
10237 stxa %r20, [%r18]0x42
10238 stxa %r16, [0x60] %asi !Unpark (W1S)
10239 st %g0, [%r23] !clear lock
10240 wr %r0, %r12, %asi !restore %asi
10241 .word 0xe19fc3e0 ! 5: LDDFA_R ldda [%r31, %r0], %f16
10242intveclr_2_4:
10243 nop
10244 ta T_CHANGE_HPRIV
10245 setx 0xac425e28d9b36fd0, %r1, %r28
10246 stxa %r28, [%g0] 0x72
10247 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
10248 setx 0x375762e49f40e586, %r1, %r28
10249 stxa %r28, [%g0] 0x73
10250intvec_2_5:
10251 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
10252splash_tba_2_6:
10253 nop
10254 ta T_CHANGE_PRIV
10255 setx 0x00000004003a0000, %r11, %r12
10256 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
10257memptr_2_7:
10258 set 0x60140000, %r31
10259 .word 0x858238ff ! 9: WRCCR_I wr %r8, 0x18ff, %ccr
10260 .word 0xa1902000 ! 10: WRPR_GL_I wrpr %r0, 0x0000, %-
10261fpinit_2_8:
10262 nop
10263 setx fp_data_quads, %r19, %r20
10264 ldd [%r20], %f0
10265 ldd [%r20+8], %f4
10266 ld [%r20+16], %fsr
10267 ld [%r20+24], %r19
10268 wr %r19, %g0, %gsr
10269 .word 0x87a80a44 ! 11: FCMPd fcmpd %fcc<n>, %f0, %f4
10270 .word 0xda8008a0 ! 12: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
10271ibp_2_9:
10272 nop
10273 ta T_CHANGE_HPRIV
10274 mov 8, %r18
10275 rd %asi, %r12
10276 wr %r0, 0x41, %asi
10277 set sync_thr_counter4, %r23
10278#ifndef SPC
10279 ldxa [%g0]0x63, %r8
10280 and %r8, 0x38, %r8 ! Core ID
10281 add %r8, %r23, %r23
10282#else
10283 mov 0, %r8
10284#endif
10285 mov 0x2, %r16
10286ibp_startwait2_9:
10287 cas [%r23],%g0,%r16 !lock
10288 brz,a %r16, continue_ibp_2_9
10289 mov (~0x2&0xf), %r16
10290 ld [%r23], %r16
10291ibp_wait2_9:
10292 brnz %r16, ibp_wait2_9
10293 ld [%r23], %r16
10294 ba ibp_startwait2_9
10295 mov 0x2, %r16
10296continue_ibp_2_9:
10297 sllx %r16, %r8, %r16 !Mask for my core only
10298 ldxa [0x58]%asi, %r17 !Running_status
10299wait_for_stat_2_9:
10300 ldxa [0x50]%asi, %r13 !Running_rw
10301 cmp %r13, %r17
10302 bne,a %xcc, wait_for_stat_2_9
10303 ldxa [0x58]%asi, %r17 !Running_status
10304 stxa %r16, [0x68]%asi !Park (W1C)
10305 ldxa [0x50]%asi, %r14 !Running_rw
10306wait_for_ibp_2_9:
10307 ldxa [0x58]%asi, %r17 !Running_status
10308 cmp %r14, %r17
10309 bne,a %xcc, wait_for_ibp_2_9
10310 ldxa [0x50]%asi, %r14 !Running_rw
10311ibp_doit2_9:
10312 best_set_reg(0x00000050fdce8ce0,%r19, %r20)
10313 stxa %r20, [%r18]0x42
10314 stxa %r16, [0x60] %asi !Unpark (W1S)
10315 st %g0, [%r23] !clear lock
10316 wr %r0, %r12, %asi !restore %asi
10317 .word 0xa5a4c9d0 ! 13: FDIVd fdivd %f50, %f16, %f18
10318memptr_2_10:
10319 set 0x60340000, %r31
10320 .word 0x8580f3b9 ! 14: WRCCR_I wr %r3, 0x13b9, %ccr
10321pmu_2_11:
10322 nop
10323 setx 0xfffff10efffffd4c, %g1, %g7
10324 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
10325 .word 0xe41fe070 ! 16: LDD_I ldd [%r31 + 0x0070], %r18
10326 .word 0xe49fdc40 ! 17: LDDA_R ldda [%r31, %r0] 0xe2, %r18
10327brcommon2_2_12:
10328 nop
10329 setx common_target, %r12, %r27
10330 ba,a .+12
10331 .word 0xa5a0054a ! 1: FSQRTd fsqrt
10332 ba,a .+8
10333 jmpl %r27+0, %r27
10334 .word 0xe1bfd920 ! 18: STDFA_R stda %f16, [%r0, %r31]
10335intveclr_2_13:
10336 nop
10337 ta T_CHANGE_HPRIV
10338 setx 0xa101bea1b58f3db5, %r1, %r28
10339 stxa %r28, [%g0] 0x72
10340 ta T_CHANGE_NONHPRIV
10341 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
10342intveclr_2_14:
10343 nop
10344 ta T_CHANGE_HPRIV
10345 setx 0x04e44105e0f8081f, %r1, %r28
10346 stxa %r28, [%g0] 0x72
10347 ta T_CHANGE_NONHPRIV
10348 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
10349pmu_2_15:
10350 nop
10351 setx 0xfffffcf5fffffb9b, %g1, %g7
10352 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
10353 fbu skip_2_16
10354 fble skip_2_16
10355.align 128
10356skip_2_16:
10357 .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
10358 .word 0x926cf74a ! 23: UDIVX_I udivx %r19, 0xfffff74a, %r9
10359dvapa_2_17:
10360 nop
10361 ta T_CHANGE_HPRIV
10362 mov 0x90c, %r20
10363 mov 0x6, %r19
10364 sllx %r20, 23, %r20
10365 or %r19, %r20, %r19
10366 stxa %r19, [%g0] ASI_LSU_CONTROL
10367 mov 0x38, %r18
10368 stxa %r31, [%r18]0x58
10369 ta T_CHANGE_NONHPRIV
10370 .word 0xe6dfc02c ! 24: LDXA_R ldxa [%r31, %r12] 0x01, %r19
10371splash_htba_2_18:
10372 nop
10373 ta T_CHANGE_HPRIV
10374 setx 0x00000002002a0000, %r11, %r12
10375 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
10376 .word 0xe797e110 ! 26: LDQFA_I - [%r31, 0x0110], %f19
10377 .word 0x26800001 ! 1: BL bl,a <label_0x1>
10378 .word 0x8d90376b ! 27: WRPR_PSTATE_I wrpr %r0, 0x176b, %pstate
10379 .word 0x99690011 ! 28: SDIVX_R sdivx %r4, %r17, %r12
10380splash_hpstate_2_20:
10381 ta T_CHANGE_NONHPRIV
10382 .word 0x81983e1d ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x1e1d, %hpstate
10383intveclr_2_21:
10384 nop
10385 ta T_CHANGE_HPRIV
10386 setx 0xd9b53ec0b06db237, %r1, %r28
10387 stxa %r28, [%g0] 0x72
10388 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
10389#if (defined SPC || defined CMP1)
10390!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_22) + 40, 16, 16)) -> intp(0,0,19)
10391#else
10392 setx 0x3957d4fd7c263f49, %r1, %r28
10393 stxa %r28, [%g0] 0x73
10394#endif
10395intvec_2_22:
10396 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
10397splash_tba_2_23:
10398 nop
10399 ta T_CHANGE_PRIV
10400 setx 0x00000004003a0000, %r11, %r12
10401 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
10402splash_lsu_2_24:
10403 nop
10404 ta T_CHANGE_HPRIV
10405 set 0xf816ed52, %r2
10406 mov 0x4, %r1
10407 sllx %r1, 32, %r1
10408 or %r1, %r2, %r2
10409 stxa %r2, [%r0] ASI_LSU_CONTROL
10410 ta T_CHANGE_NONHPRIV
10411 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
10412splash_hpstate_2_25:
10413 .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, <label_0x1>
10414 .word 0x81982586 ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x0586, %hpstate
10415pmu_2_26:
10416 nop
10417 ta T_CHANGE_PRIV
10418 setx 0xfffff601fffff7ee, %g1, %g7
10419 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
10420 .word 0xc3ec4032 ! 36: PREFETCHA_R prefetcha [%r17, %r18] 0x01, #one_read
10421jmptr_2_28:
10422 nop
10423 best_set_reg(0xe0a00000, %r20, %r27)
10424 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
10425 .word 0x9ba1c9d3 ! 38: FDIVd fdivd %f38, %f50, %f44
10426intveclr_2_30:
10427 nop
10428 ta T_CHANGE_HPRIV
10429 setx 0xf6f32db33da4c764, %r1, %r28
10430 stxa %r28, [%g0] 0x72
10431 ta T_CHANGE_NONHPRIV
10432 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
10433ibp_2_31:
10434 nop
10435 ta T_CHANGE_HPRIV
10436 mov 8, %r18
10437 rd %asi, %r12
10438 wr %r0, 0x41, %asi
10439 set sync_thr_counter4, %r23
10440#ifndef SPC
10441 ldxa [%g0]0x63, %r8
10442 and %r8, 0x38, %r8 ! Core ID
10443 add %r8, %r23, %r23
10444#else
10445 mov 0, %r8
10446#endif
10447 mov 0x2, %r16
10448ibp_startwait2_31:
10449 cas [%r23],%g0,%r16 !lock
10450 brz,a %r16, continue_ibp_2_31
10451 mov (~0x2&0xf), %r16
10452 ld [%r23], %r16
10453ibp_wait2_31:
10454 brnz %r16, ibp_wait2_31
10455 ld [%r23], %r16
10456 ba ibp_startwait2_31
10457 mov 0x2, %r16
10458continue_ibp_2_31:
10459 sllx %r16, %r8, %r16 !Mask for my core only
10460 ldxa [0x58]%asi, %r17 !Running_status
10461wait_for_stat_2_31:
10462 ldxa [0x50]%asi, %r13 !Running_rw
10463 cmp %r13, %r17
10464 bne,a %xcc, wait_for_stat_2_31
10465 ldxa [0x58]%asi, %r17 !Running_status
10466 stxa %r16, [0x68]%asi !Park (W1C)
10467 ldxa [0x50]%asi, %r14 !Running_rw
10468wait_for_ibp_2_31:
10469 ldxa [0x58]%asi, %r17 !Running_status
10470 cmp %r14, %r17
10471 bne,a %xcc, wait_for_ibp_2_31
10472 ldxa [0x50]%asi, %r14 !Running_rw
10473ibp_doit2_31:
10474 best_set_reg(0x0000004002cce07c,%r19, %r20)
10475 stxa %r20, [%r18]0x42
10476 stxa %r16, [0x60] %asi !Unpark (W1S)
10477 st %g0, [%r23] !clear lock
10478 wr %r0, %r12, %asi !restore %asi
10479 ta T_CHANGE_NONHPRIV
10480 .word 0xdbe7e013 ! 40: CASA_R casa [%r31] %asi, %r19, %r13
10481 invalw
10482 mov 0x30, %r30
10483 .word 0x93d0001e ! 41: Tcc_R tne icc_or_xcc, %r0 + %r30
10484intveclr_2_32:
10485 nop
10486 ta T_CHANGE_HPRIV
10487 setx 0x6dc779372b752dd5, %r1, %r28
10488 stxa %r28, [%g0] 0x72
10489 ta T_CHANGE_NONHPRIV
10490 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
10491ibp_2_33:
10492 nop
10493 ta T_CHANGE_HPRIV
10494 mov 8, %r18
10495 rd %asi, %r12
10496 wr %r0, 0x41, %asi
10497 set sync_thr_counter4, %r23
10498#ifndef SPC
10499 ldxa [%g0]0x63, %r8
10500 and %r8, 0x38, %r8 ! Core ID
10501 add %r8, %r23, %r23
10502#else
10503 mov 0, %r8
10504#endif
10505 mov 0x2, %r16
10506ibp_startwait2_33:
10507 cas [%r23],%g0,%r16 !lock
10508 brz,a %r16, continue_ibp_2_33
10509 mov (~0x2&0xf), %r16
10510 ld [%r23], %r16
10511ibp_wait2_33:
10512 brnz %r16, ibp_wait2_33
10513 ld [%r23], %r16
10514 ba ibp_startwait2_33
10515 mov 0x2, %r16
10516continue_ibp_2_33:
10517 sllx %r16, %r8, %r16 !Mask for my core only
10518 ldxa [0x58]%asi, %r17 !Running_status
10519wait_for_stat_2_33:
10520 ldxa [0x50]%asi, %r13 !Running_rw
10521 cmp %r13, %r17
10522 bne,a %xcc, wait_for_stat_2_33
10523 ldxa [0x58]%asi, %r17 !Running_status
10524 stxa %r16, [0x68]%asi !Park (W1C)
10525 ldxa [0x50]%asi, %r14 !Running_rw
10526wait_for_ibp_2_33:
10527 ldxa [0x58]%asi, %r17 !Running_status
10528 cmp %r14, %r17
10529 bne,a %xcc, wait_for_ibp_2_33
10530 ldxa [0x50]%asi, %r14 !Running_rw
10531ibp_doit2_33:
10532 best_set_reg(0x00000040ade07cad,%r19, %r20)
10533 stxa %r20, [%r18]0x42
10534 stxa %r16, [0x60] %asi !Unpark (W1S)
10535 st %g0, [%r23] !clear lock
10536 wr %r0, %r12, %asi !restore %asi
10537 .word 0xc3e9802b ! 43: PREFETCHA_R prefetcha [%r6, %r11] 0x01, #one_read
10538 .word 0xa190200f ! 44: WRPR_GL_I wrpr %r0, 0x000f, %-
10539fpinit_2_34:
10540 nop
10541 setx fp_data_quads, %r19, %r20
10542 ldd [%r20], %f0
10543 ldd [%r20+8], %f4
10544 ld [%r20+16], %fsr
10545 ld [%r20+24], %r19
10546 wr %r19, %g0, %gsr
10547 .word 0xc3e821ae ! 45: PREFETCHA_I prefetcha [%r0, + 0x01ae] %asi, #one_read
10548 .word 0x9192c012 ! 46: WRPR_PIL_R wrpr %r11, %r18, %pil
10549 nop
10550 ta T_CHANGE_HPRIV ! macro
10551donret_2_36:
10552 rd %pc, %r12
10553 add %r12, (donretarg_2_36-donret_2_36+4), %r12
10554 add %r12, 0x4, %r11 ! seq tnpc
10555 wrpr %g0, 0x1, %tl
10556 wrpr %g0, %r12, %tpc
10557 wrpr %g0, %r11, %tnpc
10558 set (0x00dd4e00 | (0x58 << 24)), %r13
10559 and %r12, 0xfff, %r14
10560 sllx %r14, 30, %r14
10561 or %r13, %r14, %r20
10562 wrpr %r20, %g0, %tstate
10563 wrhpr %g0, 0x158d, %htstate
10564 ta T_CHANGE_NONPRIV ! rand=0 (2)
10565 .word 0x34800001 ! 1: BG bg,a <label_0x1>
10566 retry
10567donretarg_2_36:
10568 .word 0xe26fe104 ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x0104]
10569 .word 0xe19fd920 ! 48: LDDFA_R ldda [%r31, %r0], %f16
10570change_to_randtl_2_37:
10571 ta T_CHANGE_HPRIV ! macro
10572done_change_to_randtl_2_37:
10573 .word 0x8f902000 ! 49: WRPR_TL_I wrpr %r0, 0x0000, %tl
10574 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
10575 bpos,a skip_2_38
10576 fbuge,a,pn %fcc0, skip_2_38
10577.align 1024
10578skip_2_38:
10579 .word 0xc32fc000 ! 51: STXFSR_R st-sfr %f1, [%r0, %r31]
10580intveclr_2_39:
10581 nop
10582 ta T_CHANGE_HPRIV
10583 setx 0x7ad0cf070fc0e5d8, %r1, %r28
10584 stxa %r28, [%g0] 0x72
10585 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
10586 .word 0xa3a7c9b4 ! 1: FDIVs fdivs %f31, %f20, %f17
10587 .word 0x9f802742 ! 53: SIR sir 0x0742
10588 .word 0xe337e1ff ! 54: STQF_I - %f17, [0x01ff, %r31]
10589dvapa_2_40:
10590 nop
10591 ta T_CHANGE_HPRIV
10592 mov 0x814, %r20
10593 mov 0x9, %r19
10594 sllx %r20, 23, %r20
10595 or %r19, %r20, %r19
10596 stxa %r19, [%g0] ASI_LSU_CONTROL
10597 mov 0x38, %r18
10598 stxa %r31, [%r18]0x58
10599 ta T_CHANGE_NONHPRIV
10600 .word 0xe19fe120 ! 55: LDDFA_I ldda [%r31, 0x0120], %f16
10601 .word 0xe22fe16e ! 56: STB_I stb %r17, [%r31 + 0x016e]
10602 setx 0x0c2bde66e9308b24, %r1, %r28
10603 stxa %r28, [%g0] 0x73
10604intvec_2_41:
10605 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
10606brcommon2_2_42:
10607 nop
10608 setx common_target, %r12, %r27
10609 ba,a .+12
10610 .word 0x91a2c9cc ! 1: FDIVd fdivd %f42, %f12, %f8
10611 ba,a .+8
10612 jmpl %r27+0, %r27
10613 .word 0xe1bfe020 ! 58: STDFA_I stda %f16, [0x0020, %r31]
10614jmptr_2_43:
10615 nop
10616 best_set_reg(0xe0a00000, %r20, %r27)
10617 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
10618memptr_2_44:
10619 set 0x60140000, %r31
10620 .word 0x85842db0 ! 60: WRCCR_I wr %r16, 0x0db0, %ccr
10621 nop
10622 ta T_CHANGE_HPRIV
10623 mov 0x2+1, %r10
10624 set sync_thr_counter5, %r23
10625#ifndef SPC
10626 ldxa [%g0]0x63, %o1
10627 and %o1, 0x38, %o1
10628 add %o1, %r23, %r23
10629 sllx %o1, 5, %o3 !(CID*256)
10630#endif
10631 cas [%r23],%g0,%r10 !lock
10632 brnz %r10, cwq_2_45
10633 rd %asi, %r12
10634 wr %g0, 0x40, %asi
10635 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
10636 and %l1, 0x3, %l1 ! Check if busy/enabled ..
10637 cmp %l1, 1
10638 bne cwq_2_45
10639 set CWQ_BASE, %l6
10640#ifndef SPC
10641 add %l6, %o3, %l6
10642#endif
10643 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
10644 best_set_reg(0x20610020, %l1, %l2) !# Control Word
10645 sllx %l2, 32, %l2
10646 stx %l2, [%l6 + 0x0]
10647 membar #Sync
10648 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
10649 sub %l2, 0x40, %l2
10650 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
10651 wr %r12, %g0, %asi
10652 st %g0, [%r23]
10653cwq_2_45:
10654 ta T_CHANGE_NONHPRIV
10655 .word 0xa3414000 ! 61: RDPC rd %pc, %r17
10656fpinit_2_46:
10657 nop
10658 setx fp_data_quads, %r19, %r20
10659 ldd [%r20], %f0
10660 ldd [%r20+8], %f4
10661 ld [%r20+16], %fsr
10662 ld [%r20+24], %r19
10663 wr %r19, %g0, %gsr
10664 .word 0x87a80a44 ! 62: FCMPd fcmpd %fcc<n>, %f0, %f4
10665 .word 0x83d020b2 ! 63: Tcc_I te icc_or_xcc, %r0 + 178
10666 .word 0xa5b047c3 ! 64: PDIST pdistn %d32, %d34, %d18
10667 nop
10668 ta T_CHANGE_HPRIV
10669 mov 0x2, %r10
10670 set sync_thr_counter6, %r23
10671#ifndef SPC
10672 ldxa [%g0]0x63, %o1
10673 and %o1, 0x38, %o1
10674 add %o1, %r23, %r23
10675#endif
10676 cas [%r23],%g0,%r10 !lock
10677 brnz %r10, sma_2_48
10678 rd %asi, %r12
10679 wr %g0, 0x40, %asi
10680 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
10681 set 0x00121fff, %g1
10682 stxa %g1, [%g0 + 0x80] %asi
10683 wr %r12, %g0, %asi
10684 st %g0, [%r23]
10685sma_2_48:
10686 ta T_CHANGE_NONHPRIV
10687 .word 0xe5e7e009 ! 65: CASA_R casa [%r31] %asi, %r9, %r18
10688 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
10689 .word 0xe537e094 ! 67: STQF_I - %f18, [0x0094, %r31]
10690 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
10691reduce_priv_lvl_2_49:
10692 ta T_CHANGE_NONHPRIV ! macro
10693trapasi_2_50:
10694 nop
10695 mov 0x3e0, %r1 ! (VA for ASI 0x25)
10696 .word 0xe4c844a0 ! 69: LDSBA_R ldsba [%r1, %r0] 0x25, %r18
10697splash_tba_2_51:
10698 nop
10699 ta T_CHANGE_PRIV
10700 setx 0x00000004003a0000, %r11, %r12
10701 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
10702dvapa_2_52:
10703 nop
10704 ta T_CHANGE_HPRIV
10705 mov 0x8dc, %r20
10706 mov 0xa, %r19
10707 sllx %r20, 23, %r20
10708 or %r19, %r20, %r19
10709 stxa %r19, [%g0] ASI_LSU_CONTROL
10710 mov 0x38, %r18
10711 stxa %r31, [%r18]0x58
10712 ta T_CHANGE_NONHPRIV
10713 .word 0xe4dfc033 ! 71: LDXA_R ldxa [%r31, %r19] 0x01, %r18
10714 .word 0x9b48c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r13
10715 nop
10716 ta T_CHANGE_HPRIV
10717 mov 0x2, %r10
10718 set sync_thr_counter6, %r23
10719#ifndef SPC
10720 ldxa [%g0]0x63, %o1
10721 and %o1, 0x38, %o1
10722 add %o1, %r23, %r23
10723#endif
10724 cas [%r23],%g0,%r10 !lock
10725 brnz %r10, sma_2_53
10726 rd %asi, %r12
10727 wr %g0, 0x40, %asi
10728 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
10729 set 0x00121fff, %g1
10730 stxa %g1, [%g0 + 0x80] %asi
10731 wr %r12, %g0, %asi
10732 st %g0, [%r23]
10733sma_2_53:
10734 ta T_CHANGE_NONHPRIV
10735 .word 0xe9e7e010 ! 73: CASA_R casa [%r31] %asi, %r16, %r20
10736mondo_2_54:
10737 nop
10738 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
10739 ta T_CHANGE_PRIV
10740 stxa %r12, [%r0+0x3e8] %asi
10741 .word 0x9d94c009 ! 74: WRPR_WSTATE_R wrpr %r19, %r9, %wstate
10742intveclr_2_55:
10743 nop
10744 ta T_CHANGE_HPRIV
10745 setx 0x50b2068a5fe06a9a, %r1, %r28
10746 stxa %r28, [%g0] 0x72
10747 ta T_CHANGE_NONHPRIV
10748 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
10749 .word 0xe937e10c ! 76: STQF_I - %f20, [0x010c, %r31]
10750splash_hpstate_2_56:
10751 ta T_CHANGE_NONHPRIV
10752 .word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, <label_0x1>
10753 .word 0x8198350d ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x150d, %hpstate
10754br_badelay3_2_57:
10755 .word 0x20800001 ! 1: BN bn,a <label_0x1>
10756 .word 0x22800001 ! 1: BE be,a <label_0x1>
10757 .word 0x97a1c9cb ! 1: FDIVd fdivd %f38, %f42, %f42
10758 .word 0xa3a08828 ! 78: FADDs fadds %f2, %f8, %f17
10759br_longdelay1_2_58:
10760 .word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, <label_0x1>
10761 .word 0x9d97c000 ! 79: WRPR_WSTATE_R wrpr %r31, %r0, %wstate
10762splash_lsu_2_59:
10763 nop
10764 ta T_CHANGE_HPRIV
10765 set 0x43b58cf7, %r2
10766 mov 0x7, %r1
10767 sllx %r1, 32, %r1
10768 or %r1, %r2, %r2
10769 stxa %r2, [%r0] ASI_LSU_CONTROL
10770 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
10771 .word 0xa3b1c594 ! 81: FCMPGT32 fcmpgt32 %d38, %d20, %r17
10772dvapa_2_60:
10773 nop
10774 ta T_CHANGE_HPRIV
10775 mov 0xd85, %r20
10776 mov 0x19, %r19
10777 sllx %r20, 23, %r20
10778 or %r19, %r20, %r19
10779 stxa %r19, [%g0] ASI_LSU_CONTROL
10780 mov 0x38, %r18
10781 stxa %r31, [%r18]0x58
10782 ta T_CHANGE_NONHPRIV
10783 .word 0xd53fc009 ! 82: STDF_R std %f10, [%r9, %r31]
10784 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
10785 .word 0xa145c000 ! 84: RD_TICK_CMPR_REG rd %-, %r16
10786 .word 0xa1902008 ! 85: WRPR_GL_I wrpr %r0, 0x0008, %-
10787trapasi_2_62:
10788 nop
10789 mov 0x0, %r1 ! (VA for ASI 0x5a)
10790 .word 0xe8884b40 ! 86: LDUBA_R lduba [%r1, %r0] 0x5a, %r20
10791brcommon3_2_63:
10792 nop
10793 setx common_target, %r12, %r27
10794 lduw [%r27], %r12 ! Load common dest into dcache ..
10795 ba,a .+12
10796 .word 0xe937e1b0 ! 1: STQF_I - %f20, [0x01b0, %r31]
10797 ba,a .+8
10798 jmpl %r27+0, %r27
10799 .word 0xe897c033 ! 87: LDUHA_R lduha [%r31, %r19] 0x01, %r20
10800memptr_2_64:
10801 set 0x60540000, %r31
10802 .word 0x8584b50f ! 88: WRCCR_I wr %r18, 0x150f, %ccr
10803brcommon1_2_65:
10804 nop
10805 setx common_target, %r12, %r27
10806 lduw [%r27], %r12 ! Load common dest into dcache ..
10807 ba,a .+12
10808 .word 0xa9b7c7d2 ! 1: PDIST pdistn %d62, %d18, %d20
10809 ba,a .+8
10810 jmpl %r27+0, %r27
10811 .word 0xa9b2048b ! 89: FCMPLE32 fcmple32 %d8, %d42, %r20
10812 .word 0xa0c2b928 ! 90: ADDCcc_I addccc %r10, 0xfffff928, %r16
10813fpinit_2_66:
10814 nop
10815 setx fp_data_quads, %r19, %r20
10816 ldd [%r20], %f0
10817 ldd [%r20+8], %f4
10818 ld [%r20+16], %fsr
10819 ld [%r20+24], %r19
10820 wr %r19, %g0, %gsr
10821 .word 0x89a009c4 ! 91: FDIVd fdivd %f0, %f4, %f4
10822 nop
10823 ta T_CHANGE_HPRIV ! macro
10824donret_2_67:
10825 rd %pc, %r12
10826 add %r12, (donretarg_2_67-donret_2_67), %r12
10827 add %r12, 0x4, %r11 ! seq tnpc
10828 wrpr %g0, 0x2, %tl
10829 wrpr %g0, %r12, %tpc
10830 wrpr %g0, %r11, %tnpc
10831 set (0x006dd300 | (0x88 << 24)), %r13
10832 and %r12, 0xfff, %r14
10833 sllx %r14, 30, %r14
10834 or %r13, %r14, %r20
10835 wrpr %r20, %g0, %tstate
10836 wrhpr %g0, 0x649, %htstate
10837 ta T_CHANGE_NONPRIV ! rand=0 (2)
10838 .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, <label_0x1>
10839 done
10840donretarg_2_67:
10841 .word 0x97a449d2 ! 92: FDIVd fdivd %f48, %f18, %f42
10842change_to_randtl_2_68:
10843 ta T_CHANGE_PRIV ! macro
10844done_change_to_randtl_2_68:
10845 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
10846 set 0x2514, %l3
10847 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
10848 .word 0x93b487d1 ! 94: PDIST pdistn %d18, %d48, %d40
10849 .word 0xdb1fc00a ! 95: LDDF_R ldd [%r31, %r10], %f13
10850splash_tba_2_70:
10851 nop
10852 ta T_CHANGE_PRIV
10853 setx 0x00000004003a0000, %r11, %r12
10854 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
10855 setx 0x74742c75b0575d2f, %r1, %r28
10856 stxa %r28, [%g0] 0x73
10857intvec_2_71:
10858 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
10859memptr_2_72:
10860 set user_data_start, %r31
10861 .word 0x85816790 ! 98: WRCCR_I wr %r5, 0x0790, %ccr
10862fpinit_2_73:
10863 nop
10864 setx fp_data_quads, %r19, %r20
10865 ldd [%r20], %f0
10866 ldd [%r20+8], %f4
10867 ld [%r20+16], %fsr
10868 ld [%r20+24], %r19
10869 wr %r19, %g0, %gsr
10870 .word 0x91b00484 ! 99: FCMPLE32 fcmple32 %d0, %d4, %r8
10871intveclr_2_74:
10872 nop
10873 ta T_CHANGE_HPRIV
10874 setx 0x7dd5e5324b93bd99, %r1, %r28
10875 stxa %r28, [%g0] 0x72
10876 ta T_CHANGE_NONHPRIV
10877 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
10878 nop
10879 ta T_CHANGE_HPRIV ! macro
10880donret_2_75:
10881 rd %pc, %r12
10882 add %r12, (donretarg_2_75-donret_2_75+4), %r12
10883 add %r12, 0x4, %r11 ! seq tnpc
10884 wrpr %g0, 0x2, %tl
10885 wrpr %g0, %r12, %tpc
10886 wrpr %g0, %r11, %tnpc
10887 set (0x006d6500 | (28 << 24)), %r13
10888 and %r12, 0xfff, %r14
10889 sllx %r14, 30, %r14
10890 or %r13, %r14, %r20
10891 wrpr %r20, %g0, %tstate
10892 wrhpr %g0, 0x1b53, %htstate
10893 ta T_CHANGE_NONHPRIV ! rand=1 (2)
10894 done
10895donretarg_2_75:
10896 .word 0xa7a089c8 ! 101: FDIVd fdivd %f2, %f8, %f50
10897 .word 0x81db0011 ! 102: FLUSH_R flush
10898ibp_2_76:
10899 nop
10900 ta T_CHANGE_HPRIV
10901 mov 8, %r18
10902 rd %asi, %r12
10903 wr %r0, 0x41, %asi
10904 set sync_thr_counter4, %r23
10905#ifndef SPC
10906 ldxa [%g0]0x63, %r8
10907 and %r8, 0x38, %r8 ! Core ID
10908 add %r8, %r23, %r23
10909#else
10910 mov 0, %r8
10911#endif
10912 mov 0x2, %r16
10913ibp_startwait2_76:
10914 cas [%r23],%g0,%r16 !lock
10915 brz,a %r16, continue_ibp_2_76
10916 mov (~0x2&0xf), %r16
10917 ld [%r23], %r16
10918ibp_wait2_76:
10919 brnz %r16, ibp_wait2_76
10920 ld [%r23], %r16
10921 ba ibp_startwait2_76
10922 mov 0x2, %r16
10923continue_ibp_2_76:
10924 sllx %r16, %r8, %r16 !Mask for my core only
10925 ldxa [0x58]%asi, %r17 !Running_status
10926wait_for_stat_2_76:
10927 ldxa [0x50]%asi, %r13 !Running_rw
10928 cmp %r13, %r17
10929 bne,a %xcc, wait_for_stat_2_76
10930 ldxa [0x58]%asi, %r17 !Running_status
10931 stxa %r16, [0x68]%asi !Park (W1C)
10932 ldxa [0x50]%asi, %r14 !Running_rw
10933wait_for_ibp_2_76:
10934 ldxa [0x58]%asi, %r17 !Running_status
10935 cmp %r14, %r17
10936 bne,a %xcc, wait_for_ibp_2_76
10937 ldxa [0x50]%asi, %r14 !Running_rw
10938ibp_doit2_76:
10939 best_set_reg(0x0000005025fcad8b,%r19, %r20)
10940 stxa %r20, [%r18]0x42
10941 stxa %r16, [0x60] %asi !Unpark (W1S)
10942 st %g0, [%r23] !clear lock
10943 wr %r0, %r12, %asi !restore %asi
10944 .word 0xe1bfd960 ! 103: STDFA_R stda %f16, [%r0, %r31]
10945 .word 0xe89fe008 ! 104: LDDA_I ldda [%r31, + 0x0008] %asi, %r20
10946 nop
10947 ta T_CHANGE_HPRIV ! macro
10948donret_2_77:
10949 rd %pc, %r12
10950 add %r12, (donretarg_2_77-donret_2_77+4), %r12
10951 add %r12, 0x4, %r11 ! seq tnpc
10952 wrpr %g0, 0x1, %tl
10953 wrpr %g0, %r12, %tpc
10954 wrpr %g0, %r11, %tnpc
10955 set (0x00f51300 | (28 << 24)), %r13
10956 and %r12, 0xfff, %r14
10957 sllx %r14, 30, %r14
10958 or %r13, %r14, %r20
10959 wrpr %r20, %g0, %tstate
10960 wrhpr %g0, 0x49e, %htstate
10961 ta T_CHANGE_NONPRIV ! rand=0 (2)
10962 done
10963donretarg_2_77:
10964 .word 0xa3a289c8 ! 105: FDIVd fdivd %f10, %f8, %f48
10965 .word 0x8d90353b ! 106: WRPR_PSTATE_I wrpr %r0, 0x153b, %pstate
10966 .word 0xa753c000 ! 107: RDPR_FQ <illegal instruction>
10967 .word 0xab82f172 ! 108: WR_CLEAR_SOFTINT_I wr %r11, 0x1172, %clear_softint
10968invtsb_2_79:
10969 nop
10970 ta T_CHANGE_HPRIV
10971 rd %asi, %r21
10972 wr %r0,ASI_MMU_REAL_RANGE, %asi
10973 mov 1, %r20
10974 sllx %r20, 63, %r20
10975 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22
10976 xor %r22 ,%r20, %r22
10977 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi
10978 ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22
10979 xor %r22 ,%r20, %r22
10980 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi
10981 ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22
10982 xor %r22 ,%r20, %r22
10983 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi
10984 ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22
10985 xor %r22 ,%r20, %r22
10986 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi
10987 wr %r21, %r0, %asi
10988 ta T_CHANGE_NONHPRIV
10989 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
10990 .word 0xe1bfd920 ! 110: STDFA_R stda %f16, [%r0, %r31]
10991br_badelay3_2_80:
10992 .word 0x34800001 ! 1: BG bg,a <label_0x1>
10993 .word 0x8372161b ! Random illegal ?
10994 .word 0x95a00552 ! 1: FSQRTd fsqrt
10995 .word 0xa7a44830 ! 111: FADDs fadds %f17, %f16, %f19
10996ibp_2_81:
10997 nop
10998 ta T_CHANGE_HPRIV
10999 mov 8, %r18
11000 rd %asi, %r12
11001 wr %r0, 0x41, %asi
11002 set sync_thr_counter4, %r23
11003#ifndef SPC
11004 ldxa [%g0]0x63, %r8
11005 and %r8, 0x38, %r8 ! Core ID
11006 add %r8, %r23, %r23
11007#else
11008 mov 0, %r8
11009#endif
11010 mov 0x2, %r16
11011ibp_startwait2_81:
11012 cas [%r23],%g0,%r16 !lock
11013 brz,a %r16, continue_ibp_2_81
11014 mov (~0x2&0xf), %r16
11015 ld [%r23], %r16
11016ibp_wait2_81:
11017 brnz %r16, ibp_wait2_81
11018 ld [%r23], %r16
11019 ba ibp_startwait2_81
11020 mov 0x2, %r16
11021continue_ibp_2_81:
11022 sllx %r16, %r8, %r16 !Mask for my core only
11023 ldxa [0x58]%asi, %r17 !Running_status
11024wait_for_stat_2_81:
11025 ldxa [0x50]%asi, %r13 !Running_rw
11026 cmp %r13, %r17
11027 bne,a %xcc, wait_for_stat_2_81
11028 ldxa [0x58]%asi, %r17 !Running_status
11029 stxa %r16, [0x68]%asi !Park (W1C)
11030 ldxa [0x50]%asi, %r14 !Running_rw
11031wait_for_ibp_2_81:
11032 ldxa [0x58]%asi, %r17 !Running_status
11033 cmp %r14, %r17
11034 bne,a %xcc, wait_for_ibp_2_81
11035 ldxa [0x50]%asi, %r14 !Running_rw
11036ibp_doit2_81:
11037 best_set_reg(0x000000409fed8b98,%r19, %r20)
11038 stxa %r20, [%r18]0x42
11039 stxa %r16, [0x60] %asi !Unpark (W1S)
11040 st %g0, [%r23] !clear lock
11041 wr %r0, %r12, %asi !restore %asi
11042 ta T_CHANGE_NONHPRIV
11043 .word 0xd83fe0a0 ! 112: STD_I std %r12, [%r31 + 0x00a0]
11044memptr_2_82:
11045 set 0x60740000, %r31
11046 .word 0x8580f679 ! 113: WRCCR_I wr %r3, 0x1679, %ccr
11047mondo_2_83:
11048 nop
11049 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
11050 ta T_CHANGE_PRIV
11051 stxa %r20, [%r0+0x3c8] %asi
11052 .word 0x9d950005 ! 114: WRPR_WSTATE_R wrpr %r20, %r5, %wstate
11053 .word 0x93508000 ! 115: RDPR_TSTATE <illegal instruction>
11054splash_lsu_2_84:
11055 nop
11056 ta T_CHANGE_HPRIV
11057 set 0xc4e1f330, %r2
11058 mov 0x6, %r1
11059 sllx %r1, 32, %r1
11060 or %r1, %r2, %r2
11061 stxa %r2, [%r0] ASI_LSU_CONTROL
11062 ta T_CHANGE_NONHPRIV
11063 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
11064splash_cmpr_2_85:
11065 mov 1, %r18
11066 sllx %r18, 63, %r18
11067 rd %tick, %r17
11068 add %r17, 0x100, %r17
11069 or %r17, %r18, %r17
11070 ta T_CHANGE_PRIV
11071 .word 0xaf800011 ! 117: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
11072splash_hpstate_2_86:
11073 ta T_CHANGE_NONHPRIV
11074 .word 0x819836a7 ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x16a7, %hpstate
11075 .word 0xa190200a ! 119: WRPR_GL_I wrpr %r0, 0x000a, %-
11076 nop
11077 ta T_CHANGE_HPRIV
11078 mov 0x2, %r10
11079 set sync_thr_counter6, %r23
11080#ifndef SPC
11081 ldxa [%g0]0x63, %o1
11082 and %o1, 0x38, %o1
11083 add %o1, %r23, %r23
11084#endif
11085 cas [%r23],%g0,%r10 !lock
11086 brnz %r10, sma_2_87
11087 rd %asi, %r12
11088 wr %g0, 0x40, %asi
11089 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
11090 set 0x000e1fff, %g1
11091 stxa %g1, [%g0 + 0x80] %asi
11092 wr %r12, %g0, %asi
11093 st %g0, [%r23]
11094sma_2_87:
11095 ta T_CHANGE_NONHPRIV
11096 .word 0xe1e7e013 ! 120: CASA_R casa [%r31] %asi, %r19, %r16
11097mondo_2_88:
11098 nop
11099 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
11100 stxa %r16, [%r0+0x3c8] %asi
11101 .word 0x9d908011 ! 121: WRPR_WSTATE_R wrpr %r2, %r17, %wstate
11102splash_lsu_2_89:
11103 nop
11104 ta T_CHANGE_HPRIV
11105 set 0x23b884e1, %r2
11106 mov 0x5, %r1
11107 sllx %r1, 32, %r1
11108 or %r1, %r2, %r2
11109 stxa %r2, [%r0] ASI_LSU_CONTROL
11110 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
11111brcommon3_2_90:
11112 nop
11113 setx common_target, %r12, %r27
11114 lduw [%r27], %r12 ! Load common dest into dcache ..
11115 ba,a .+12
11116 .word 0xe1e7c032 ! 1: CASA_I casa [%r31] 0x 1, %r18, %r16
11117 ba,a .+8
11118 jmpl %r27+0, %r27
11119 .word 0xe09fc02c ! 123: LDDA_R ldda [%r31, %r12] 0x01, %r16
11120dvapa_2_91:
11121 nop
11122 ta T_CHANGE_HPRIV
11123 mov 0xdd9, %r20
11124 mov 0x8, %r19
11125 sllx %r20, 23, %r20
11126 or %r19, %r20, %r19
11127 stxa %r19, [%g0] ASI_LSU_CONTROL
11128 mov 0x38, %r18
11129 stxa %r31, [%r18]0x58
11130 ta T_CHANGE_NONHPRIV
11131 .word 0xe19fe0e0 ! 124: LDDFA_I ldda [%r31, 0x00e0], %f16
11132 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
11133 .word 0xe0dfc02b ! 126: LDXA_R ldxa [%r31, %r11] 0x01, %r16
11134 setx 0x02b24c82fcffa8e4, %r1, %r28
11135 stxa %r28, [%g0] 0x73
11136intvec_2_93:
11137 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11138 .word 0x8d802004 ! 128: WRFPRS_I wr %r0, 0x0004, %fprs
11139 .word 0xe0d7e0c0 ! 129: LDSHA_I ldsha [%r31, + 0x00c0] %asi, %r16
11140#if (defined SPC || defined CMP1)
11141!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_94) + 16, 16, 16)) -> intp(1,0,26)
11142#else
11143 setx 0xa36004d068c512be, %r1, %r28
11144 stxa %r28, [%g0] 0x73
11145#endif
11146intvec_2_94:
11147 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11148 .word 0x8d802004 ! 131: WRFPRS_I wr %r0, 0x0004, %fprs
11149 .word 0x8d903c3b ! 132: WRPR_PSTATE_I wrpr %r0, 0x1c3b, %pstate
11150 .word 0x2acb0001 ! 1: BRNZ brnz,a,pt %r12,<label_0xb0001>
11151 .word 0x8d9035e9 ! 133: WRPR_PSTATE_I wrpr %r0, 0x15e9, %pstate
11152 setx 0x1bd5ff1db04753f9, %r1, %r28
11153 stxa %r28, [%g0] 0x73
11154intvec_2_97:
11155 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11156 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
11157reduce_priv_lvl_2_98:
11158 ta T_CHANGE_NONHPRIV ! macro
11159ibp_2_99:
11160 nop
11161 ta T_CHANGE_HPRIV
11162 mov 8, %r18
11163 rd %asi, %r12
11164 wr %r0, 0x41, %asi
11165 set sync_thr_counter4, %r23
11166#ifndef SPC
11167 ldxa [%g0]0x63, %r8
11168 and %r8, 0x38, %r8 ! Core ID
11169 add %r8, %r23, %r23
11170#else
11171 mov 0, %r8
11172#endif
11173 mov 0x2, %r16
11174ibp_startwait2_99:
11175 cas [%r23],%g0,%r16 !lock
11176 brz,a %r16, continue_ibp_2_99
11177 mov (~0x2&0xf), %r16
11178 ld [%r23], %r16
11179ibp_wait2_99:
11180 brnz %r16, ibp_wait2_99
11181 ld [%r23], %r16
11182 ba ibp_startwait2_99
11183 mov 0x2, %r16
11184continue_ibp_2_99:
11185 sllx %r16, %r8, %r16 !Mask for my core only
11186 ldxa [0x58]%asi, %r17 !Running_status
11187wait_for_stat_2_99:
11188 ldxa [0x50]%asi, %r13 !Running_rw
11189 cmp %r13, %r17
11190 bne,a %xcc, wait_for_stat_2_99
11191 ldxa [0x58]%asi, %r17 !Running_status
11192 stxa %r16, [0x68]%asi !Park (W1C)
11193 ldxa [0x50]%asi, %r14 !Running_rw
11194wait_for_ibp_2_99:
11195 ldxa [0x58]%asi, %r17 !Running_status
11196 cmp %r14, %r17
11197 bne,a %xcc, wait_for_ibp_2_99
11198 ldxa [0x50]%asi, %r14 !Running_rw
11199ibp_doit2_99:
11200 best_set_reg(0x00000040bccb98e1,%r19, %r20)
11201 stxa %r20, [%r18]0x42
11202 stxa %r16, [0x60] %asi !Unpark (W1S)
11203 st %g0, [%r23] !clear lock
11204 wr %r0, %r12, %asi !restore %asi
11205 ta T_CHANGE_NONHPRIV
11206 .word 0x9bb307c2 ! 136: PDIST pdistn %d12, %d2, %d44
11207 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
11208change_to_randtl_2_101:
11209 ta T_CHANGE_HPRIV ! macro
11210done_change_to_randtl_2_101:
11211 .word 0x8f902000 ! 138: WRPR_TL_I wrpr %r0, 0x0000, %tl
11212splash_cmpr_2_102:
11213 mov 0, %r18
11214 sllx %r18, 63, %r18
11215 rd %tick, %r17
11216 add %r17, 0x80, %r17
11217 or %r17, %r18, %r17
11218 .word 0xaf800011 ! 139: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
11219 .word 0xe8cfe0e8 ! 140: LDSBA_I ldsba [%r31, + 0x00e8] %asi, %r20
11220 nop
11221 ta T_CHANGE_HPRIV ! macro
11222donret_2_103:
11223 rd %pc, %r12
11224 add %r12, (donretarg_2_103-donret_2_103), %r12
11225 add %r12, 0x4, %r11 ! seq tnpc
11226 wrpr %g0, 0x1, %tl
11227 wrpr %g0, %r12, %tpc
11228 wrpr %g0, %r11, %tnpc
11229 set (0x001ea200 | (0x83 << 24)), %r13
11230 and %r12, 0xfff, %r14
11231 sllx %r14, 30, %r14
11232 or %r13, %r14, %r20
11233 wrpr %r20, %g0, %tstate
11234 wrhpr %g0, 0x1105, %htstate
11235 ta T_CHANGE_NONPRIV ! rand=0 (2)
11236 .word 0x2e800001 ! 1: BVS bvs,a <label_0x1>
11237 done
11238donretarg_2_103:
11239 .word 0xe86fe12c ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x012c]
11240trapasi_2_104:
11241 nop
11242 mov 0x30, %r1 ! (VA for ASI 0x5b)
11243 .word 0xe8d04b60 ! 142: LDSHA_R ldsha [%r1, %r0] 0x5b, %r20
11244fpinit_2_105:
11245 nop
11246 setx fp_data_quads, %r19, %r20
11247 ldd [%r20], %f0
11248 ldd [%r20+8], %f4
11249 ld [%r20+16], %fsr
11250 ld [%r20+24], %r19
11251 wr %r19, %g0, %gsr
11252 .word 0x8da009a4 ! 143: FDIVs fdivs %f0, %f4, %f6
11253 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
11254change_to_randtl_2_107:
11255 ta T_CHANGE_HPRIV ! macro
11256done_change_to_randtl_2_107:
11257 .word 0x8f902000 ! 145: WRPR_TL_I wrpr %r0, 0x0000, %tl
11258dvapa_2_108:
11259 nop
11260 ta T_CHANGE_HPRIV
11261 mov 0xd50, %r20
11262 mov 0xc, %r19
11263 sllx %r20, 23, %r20
11264 or %r19, %r20, %r19
11265 stxa %r19, [%g0] ASI_LSU_CONTROL
11266 mov 0x38, %r18
11267 stxa %r31, [%r18]0x58
11268 ta T_CHANGE_NONHPRIV
11269 .word 0xe9e7e011 ! 146: CASA_R casa [%r31] %asi, %r17, %r20
11270 setx 0x940801b25b510a7a, %r1, %r28
11271 stxa %r28, [%g0] 0x73
11272intvec_2_109:
11273 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11274 .word 0xe8cfe0a8 ! 148: LDSBA_I ldsba [%r31, + 0x00a8] %asi, %r20
11275splash_decr_2_110:
11276 nop
11277 ta T_CHANGE_HPRIV
11278 mov 8, %r1
11279 stxa %r0, [%r1] 0x45
11280 .word 0xa781c00c ! 149: WR_GRAPHICS_STATUS_REG_R wr %r7, %r12, %-
11281 .word 0xe89fe1c0 ! 150: LDDA_I ldda [%r31, + 0x01c0] %asi, %r20
11282br_longdelay3_2_112:
11283 nop
11284 not %g0, %r12
11285 jmp %r12
11286 .word 0x99902002 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0002, %cleanwin
11287 .word 0x99a00553 ! 152: FSQRTd fsqrt
11288 .word 0xc19fe080 ! 153: LDDFA_I ldda [%r31, 0x0080], %f0
11289splash_cmpr_2_113:
11290 mov 0, %r18
11291 sllx %r18, 63, %r18
11292 rd %tick, %r17
11293 add %r17, 0x50, %r17
11294 or %r17, %r18, %r17
11295 .word 0xaf800011 ! 154: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
11296 .word 0x87990011 ! 155: WRHPR_HINTP_R wrhpr %r4, %r17, %hintp
11297 .word 0x91920012 ! 156: WRPR_PIL_R wrpr %r8, %r18, %pil
11298ibp_2_115:
11299 nop
11300 ta T_CHANGE_HPRIV
11301 mov 8, %r18
11302 rd %asi, %r12
11303 wr %r0, 0x41, %asi
11304 set sync_thr_counter4, %r23
11305#ifndef SPC
11306 ldxa [%g0]0x63, %r8
11307 and %r8, 0x38, %r8 ! Core ID
11308 add %r8, %r23, %r23
11309#else
11310 mov 0, %r8
11311#endif
11312 mov 0x2, %r16
11313ibp_startwait2_115:
11314 cas [%r23],%g0,%r16 !lock
11315 brz,a %r16, continue_ibp_2_115
11316 mov (~0x2&0xf), %r16
11317 ld [%r23], %r16
11318ibp_wait2_115:
11319 brnz %r16, ibp_wait2_115
11320 ld [%r23], %r16
11321 ba ibp_startwait2_115
11322 mov 0x2, %r16
11323continue_ibp_2_115:
11324 sllx %r16, %r8, %r16 !Mask for my core only
11325 ldxa [0x58]%asi, %r17 !Running_status
11326wait_for_stat_2_115:
11327 ldxa [0x50]%asi, %r13 !Running_rw
11328 cmp %r13, %r17
11329 bne,a %xcc, wait_for_stat_2_115
11330 ldxa [0x58]%asi, %r17 !Running_status
11331 stxa %r16, [0x68]%asi !Park (W1C)
11332 ldxa [0x50]%asi, %r14 !Running_rw
11333wait_for_ibp_2_115:
11334 ldxa [0x58]%asi, %r17 !Running_status
11335 cmp %r14, %r17
11336 bne,a %xcc, wait_for_ibp_2_115
11337 ldxa [0x50]%asi, %r14 !Running_rw
11338ibp_doit2_115:
11339 best_set_reg(0x0000005081d8e1e7,%r19, %r20)
11340 stxa %r20, [%r18]0x42
11341 stxa %r16, [0x60] %asi !Unpark (W1S)
11342 st %g0, [%r23] !clear lock
11343 wr %r0, %r12, %asi !restore %asi
11344 .word 0xd71fc00b ! 157: LDDF_R ldd [%r31, %r11], %f11
11345fpinit_2_116:
11346 nop
11347 setx fp_data_quads, %r19, %r20
11348 ldd [%r20], %f0
11349 ldd [%r20+8], %f4
11350 ld [%r20+16], %fsr
11351 ld [%r20+24], %r19
11352 wr %r19, %g0, %gsr
11353 .word 0x8da009c4 ! 158: FDIVd fdivd %f0, %f4, %f6
11354 nop
11355 ta T_CHANGE_HPRIV ! macro
11356donret_2_117:
11357 rd %pc, %r12
11358 add %r12, (donretarg_2_117-donret_2_117), %r12
11359 add %r12, 0x4, %r11 ! seq tnpc
11360 wrpr %g0, 0x2, %tl
11361 wrpr %g0, %r12, %tpc
11362 wrpr %g0, %r11, %tnpc
11363 set (0x00830100 | (20 << 24)), %r13
11364 and %r12, 0xfff, %r14
11365 sllx %r14, 30, %r14
11366 or %r13, %r14, %r20
11367 wrpr %r20, %g0, %tstate
11368 wrhpr %g0, 0xf5b, %htstate
11369 ta T_CHANGE_NONPRIV ! rand=0 (2)
11370 done
11371donretarg_2_117:
11372 .word 0xd6ffe175 ! 159: SWAPA_I swapa %r11, [%r31 + 0x0175] %asi
11373 .word 0xd6dfe0d8 ! 160: LDXA_I ldxa [%r31, + 0x00d8] %asi, %r11
11374jmptr_2_118:
11375 nop
11376 best_set_reg(0xe0a00000, %r20, %r27)
11377 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
11378dvapa_2_119:
11379 nop
11380 ta T_CHANGE_HPRIV
11381 mov 0x9b7, %r20
11382 mov 0x13, %r19
11383 sllx %r20, 23, %r20
11384 or %r19, %r20, %r19
11385 stxa %r19, [%g0] ASI_LSU_CONTROL
11386 mov 0x38, %r18
11387 stxa %r31, [%r18]0x58
11388 ta T_CHANGE_NONHPRIV
11389 .word 0x97702206 ! 162: POPC_I popc 0x0206, %r11
11390 .word 0xa9848011 ! 163: WR_SET_SOFTINT_R wr %r18, %r17, %set_softint
11391 nop
11392 ta T_CHANGE_HPRIV ! macro
11393donret_2_120:
11394 rd %pc, %r12
11395 add %r12, (donretarg_2_120-donret_2_120+4), %r12
11396 add %r12, 0x4, %r11 ! seq tnpc
11397 wrpr %g0, 0x2, %tl
11398 wrpr %g0, %r12, %tpc
11399 wrpr %g0, %r11, %tnpc
11400 set (0x00d47800 | (0x88 << 24)), %r13
11401 and %r12, 0xfff, %r14
11402 sllx %r14, 30, %r14
11403 or %r13, %r14, %r20
11404 wrpr %r20, %g0, %tstate
11405 wrhpr %g0, 0x1805, %htstate
11406 ta T_CHANGE_NONHPRIV ! rand=1 (2)
11407 retry
11408donretarg_2_120:
11409 .word 0x9ba0c9d3 ! 164: FDIVd fdivd %f34, %f50, %f44
11410 nop
11411 ta T_CHANGE_HPRIV
11412 mov 0x2, %r10
11413 set sync_thr_counter6, %r23
11414#ifndef SPC
11415 ldxa [%g0]0x63, %o1
11416 and %o1, 0x38, %o1
11417 add %o1, %r23, %r23
11418#endif
11419 cas [%r23],%g0,%r10 !lock
11420 brnz %r10, sma_2_121
11421 rd %asi, %r12
11422 wr %g0, 0x40, %asi
11423 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
11424 set 0x001a1fff, %g1
11425 stxa %g1, [%g0 + 0x80] %asi
11426 wr %r12, %g0, %asi
11427 st %g0, [%r23]
11428sma_2_121:
11429 ta T_CHANGE_NONHPRIV
11430 .word 0xe9e7e010 ! 165: CASA_R casa [%r31] %asi, %r16, %r20
11431 .word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, <label_0x1>
11432 .word 0x8d9037ec ! 166: WRPR_PSTATE_I wrpr %r0, 0x17ec, %pstate
11433 .word 0x8d802004 ! 167: WRFPRS_I wr %r0, 0x0004, %fprs
11434 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
11435 set 0x166c, %l3
11436 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
11437 .word 0x93b447d2 ! 169: PDIST pdistn %d48, %d18, %d40
11438 .word 0xe11fe0b0 ! 170: LDDF_I ldd [%r31, 0x00b0], %f16
11439splash_hpstate_2_125:
11440 .word 0x81982c37 ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x0c37, %hpstate
11441memptr_2_126:
11442 set user_data_start, %r31
11443 .word 0x8583381d ! 172: WRCCR_I wr %r12, 0x181d, %ccr
11444 .word 0x8d903018 ! 173: WRPR_PSTATE_I wrpr %r0, 0x1018, %pstate
11445splash_cmpr_2_128:
11446 mov 1, %r18
11447 sllx %r18, 63, %r18
11448 rd %tick, %r17
11449 add %r17, 0x50, %r17
11450 or %r17, %r18, %r17
11451 ta T_CHANGE_HPRIV
11452 wrhpr %r17, %g0, %hsys_tick_cmpr
11453 ta T_CHANGE_PRIV
11454 .word 0xaf800011 ! 174: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
11455 bcs,a skip_2_129
11456 brgez,a,pt %r11, skip_2_129
11457.align 512
11458skip_2_129:
11459 .word 0xc30fc000 ! 175: LDXFSR_R ld-fsr [%r31, %r0], %f1
11460brcommon2_2_130:
11461 nop
11462 setx common_target, %r12, %r27
11463 ba,a .+12
11464 .word 0xa7a509d1 ! 1: FDIVd fdivd %f20, %f48, %f50
11465 ba,a .+8
11466 jmpl %r27+0, %r27
11467 .word 0xe19fc2c0 ! 176: LDDFA_R ldda [%r31, %r0], %f16
11468splash_cmpr_2_131:
11469 mov 1, %r18
11470 sllx %r18, 63, %r18
11471 rd %tick, %r17
11472 add %r17, 0x50, %r17
11473 or %r17, %r18, %r17
11474 ta T_CHANGE_HPRIV
11475 wrhpr %r17, %g0, %hsys_tick_cmpr
11476 .word 0xaf800011 ! 177: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
11477splash_cmpr_2_132:
11478 mov 1, %r18
11479 sllx %r18, 63, %r18
11480 rd %tick, %r17
11481 add %r17, 0x100, %r17
11482 or %r17, %r18, %r17
11483 ta T_CHANGE_HPRIV
11484 wrhpr %r17, %g0, %hsys_tick_cmpr
11485 ta T_CHANGE_PRIV
11486 .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
11487 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
11488 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
11489 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
11490memptr_2_135:
11491 set user_data_start, %r31
11492 .word 0x8584b1f8 ! 182: WRCCR_I wr %r18, 0x11f8, %ccr
11493memptr_2_136:
11494 set 0x60140000, %r31
11495 .word 0x85832ff9 ! 183: WRCCR_I wr %r12, 0x0ff9, %ccr
11496 .word 0xe677e098 ! 184: STX_I stx %r19, [%r31 + 0x0098]
11497 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
11498fpinit_2_138:
11499 nop
11500 setx fp_data_quads, %r19, %r20
11501 ldd [%r20], %f0
11502 ldd [%r20+8], %f4
11503 ld [%r20+16], %fsr
11504 ld [%r20+24], %r19
11505 wr %r19, %g0, %gsr
11506 .word 0x89b00484 ! 186: FCMPLE32 fcmple32 %d0, %d4, %r4
11507 .word 0xe1bfda00 ! 187: STDFA_R stda %f16, [%r0, %r31]
11508fpinit_2_140:
11509 nop
11510 setx fp_data_quads, %r19, %r20
11511 ldd [%r20], %f0
11512 ldd [%r20+8], %f4
11513 ld [%r20+16], %fsr
11514 ld [%r20+24], %r19
11515 wr %r19, %g0, %gsr
11516 .word 0x91a009c4 ! 188: FDIVd fdivd %f0, %f4, %f8
11517ceter_2_141:
11518 nop
11519 ta T_CHANGE_HPRIV
11520 mov 4, %r17
11521 sllx %r17, 60, %r17
11522 mov 0x18, %r16
11523 stxa %r17, [%r16]0x4c
11524 ta T_CHANGE_NONHPRIV
11525 .word 0x95410000 ! 189: RDTICK rd %tick, %r10
11526 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
11527 .word 0x8d802004 ! 191: WRFPRS_I wr %r0, 0x0004, %fprs
11528 nop
11529 ta T_CHANGE_HPRIV ! macro
11530donret_2_142:
11531 rd %pc, %r12
11532 add %r12, (donretarg_2_142-donret_2_142+4), %r12
11533 add %r12, 0x4, %r11 ! seq tnpc
11534 wrpr %g0, 0x1, %tl
11535 wrpr %g0, %r12, %tpc
11536 wrpr %g0, %r11, %tnpc
11537 set (0x006df400 | (0x88 << 24)), %r13
11538 and %r12, 0xfff, %r14
11539 sllx %r14, 30, %r14
11540 or %r13, %r14, %r20
11541 wrpr %r20, %g0, %tstate
11542 wrhpr %g0, 0x60d, %htstate
11543 ta T_CHANGE_NONPRIV ! rand=0 (2)
11544 retry
11545donretarg_2_142:
11546 .word 0xd2ffe16c ! 192: SWAPA_I swapa %r9, [%r31 + 0x016c] %asi
11547 .word 0x879cc010 ! 193: WRHPR_HINTP_R wrhpr %r19, %r16, %hintp
11548splash_cmpr_2_143:
11549 mov 0, %r18
11550 sllx %r18, 63, %r18
11551 rd %tick, %r17
11552 add %r17, 0x100, %r17
11553 or %r17, %r18, %r17
11554 ta T_CHANGE_HPRIV
11555 wrhpr %r17, %g0, %hsys_tick_cmpr
11556 .word 0xaf800011 ! 194: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
11557 nop
11558 ta T_CHANGE_HPRIV
11559 mov 0x2+1, %r10
11560 set sync_thr_counter5, %r23
11561#ifndef SPC
11562 ldxa [%g0]0x63, %o1
11563 and %o1, 0x38, %o1
11564 add %o1, %r23, %r23
11565 sllx %o1, 5, %o3 !(CID*256)
11566#endif
11567 cas [%r23],%g0,%r10 !lock
11568 brnz %r10, cwq_2_144
11569 rd %asi, %r12
11570 wr %g0, 0x40, %asi
11571 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
11572 and %l1, 0x3, %l1 ! Check if busy/enabled ..
11573 cmp %l1, 1
11574 bne cwq_2_144
11575 set CWQ_BASE, %l6
11576#ifndef SPC
11577 add %l6, %o3, %l6
11578#endif
11579 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
11580 best_set_reg(0x20610090, %l1, %l2) !# Control Word
11581 sllx %l2, 32, %l2
11582 stx %l2, [%l6 + 0x0]
11583 membar #Sync
11584 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
11585 sub %l2, 0x40, %l2
11586 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
11587 wr %r12, %g0, %asi
11588 st %g0, [%r23]
11589cwq_2_144:
11590 ta T_CHANGE_NONHPRIV
11591 .word 0xa9414000 ! 195: RDPC rd %pc, %r20
11592br_badelay2_2_145:
11593 .word 0x34800001 ! 1: BG bg,a <label_0x1>
11594 pdist %f30, %f28, %f12
11595 .word 0xa3b40308 ! 196: ALIGNADDRESS alignaddr %r16, %r8, %r17
11596splash_tba_2_146:
11597 nop
11598 ta T_CHANGE_PRIV
11599 setx 0x00000004003a0000, %r11, %r12
11600 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
11601 nop
11602 mov 0x80, %g3
11603 stxa %g3, [%g3] 0x57
11604 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
11605 .word 0x81460000 ! 199: RD_STICK_REG stbar
11606 .word 0xd01fe060 ! 200: LDD_I ldd [%r31 + 0x0060], %r8
11607 nop
11608 ta T_CHANGE_HPRIV
11609 mov 0x2+1, %r10
11610 set sync_thr_counter5, %r23
11611#ifndef SPC
11612 ldxa [%g0]0x63, %o1
11613 and %o1, 0x38, %o1
11614 add %o1, %r23, %r23
11615 sllx %o1, 5, %o3 !(CID*256)
11616#endif
11617 cas [%r23],%g0,%r10 !lock
11618 brnz %r10, cwq_2_147
11619 rd %asi, %r12
11620 wr %g0, 0x40, %asi
11621 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
11622 and %l1, 0x3, %l1 ! Check if busy/enabled ..
11623 cmp %l1, 1
11624 bne cwq_2_147
11625 set CWQ_BASE, %l6
11626#ifndef SPC
11627 add %l6, %o3, %l6
11628#endif
11629 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
11630 best_set_reg(0x206100d0, %l1, %l2) !# Control Word
11631 sllx %l2, 32, %l2
11632 stx %l2, [%l6 + 0x0]
11633 membar #Sync
11634 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
11635 sub %l2, 0x40, %l2
11636 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
11637 wr %r12, %g0, %asi
11638 st %g0, [%r23]
11639cwq_2_147:
11640 ta T_CHANGE_NONHPRIV
11641 .word 0x99414000 ! 201: RDPC rd %pc, %r12
11642 nop
11643 nop
11644 ta T_CHANGE_PRIV
11645 wrpr %g0, %g0, %gl
11646 nop
11647 nop
11648 setx join_lbl_0_0, %g1, %g2
11649 jmp %g2
11650 nop
11651fork_lbl_0_1:
11652 ta T_CHANGE_NONHPRIV
11653 nop
11654 ta T_CHANGE_HPRIV ! macro
11655donret_1_0:
11656 rd %pc, %r12
11657 add %r12, (donretarg_1_0-donret_1_0), %r12
11658 add %r12, 0x8, %r11 ! nonseq tnpc
11659 wrpr %g0, 0x2, %tl
11660 wrpr %g0, %r12, %tpc
11661 wrpr %g0, %r11, %tnpc
11662 set (0x002fc000 | (16 << 24)), %r13
11663 and %r12, 0xfff, %r14
11664 sllx %r14, 30, %r14
11665 or %r13, %r14, %r20
11666 wrpr %r20, %g0, %tstate
11667 wrhpr %g0, 0x155f, %htstate
11668 ta T_CHANGE_NONPRIV ! rand=0 (1)
11669 retry
11670donretarg_1_0:
11671 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
11672reduce_priv_lvl_1_1:
11673 ta T_CHANGE_NONPRIV ! macro
11674change_to_randtl_1_2:
11675 ta T_CHANGE_PRIV ! macro
11676done_change_to_randtl_1_2:
11677 .word 0x8f902000 ! 2: WRPR_TL_I wrpr %r0, 0x0000, %tl
11678 .word 0xdadfe080 ! 3: LDXA_I ldxa [%r31, + 0x0080] %asi, %r13
11679 .word 0xda8008a0 ! 4: LDUWA_R lduwa [%r0, %r0] 0x45, %r13
11680ibp_1_3:
11681 nop
11682 .word 0xe1bfe160 ! 5: STDFA_I stda %f16, [0x0160, %r31]
11683intveclr_1_4:
11684 nop
11685 ta T_CHANGE_HPRIV
11686 setx 0xe26e80d51eb7e984, %r1, %r28
11687 stxa %r28, [%g0] 0x72
11688 .word 0x25400001 ! 6: FBPLG fblg,a,pn %fcc0, <label_0x1>
11689 setx 0xef5f9ac016ba4b29, %r1, %r28
11690 stxa %r28, [%g0] 0x73
11691intvec_1_5:
11692 .word 0x39400001 ! 7: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11693splash_tba_1_6:
11694 nop
11695 ta T_CHANGE_PRIV
11696 setx 0x0000000000380000, %r11, %r12
11697 .word 0x8b90000c ! 8: WRPR_TBA_R wrpr %r0, %r12, %tba
11698memptr_1_7:
11699 set 0x60340000, %r31
11700 .word 0x85853afa ! 9: WRCCR_I wr %r20, 0x1afa, %ccr
11701 .word 0xa190200f ! 10: WRPR_GL_I wrpr %r0, 0x000f, %-
11702fpinit_1_8:
11703 nop
11704 setx fp_data_quads, %r19, %r20
11705 ldd [%r20], %f0
11706 ldd [%r20+8], %f4
11707 ld [%r20+16], %fsr
11708 ld [%r20+24], %r19
11709 wr %r19, %g0, %gsr
11710 .word 0x89a009c4 ! 11: FDIVd fdivd %f0, %f4, %f4
11711 .word 0xda800c60 ! 12: LDUWA_R lduwa [%r0, %r0] 0x63, %r13
11712ibp_1_9:
11713 nop
11714 .word 0x87acca46 ! 13: FCMPd fcmpd %fcc<n>, %f50, %f6
11715memptr_1_10:
11716 set 0x60340000, %r31
11717 .word 0x858524bb ! 14: WRCCR_I wr %r20, 0x04bb, %ccr
11718pmu_1_11:
11719 nop
11720 setx 0xfffff8dafffff6b5, %g1, %g7
11721 .word 0xa3800007 ! 15: WR_PERF_COUNTER_R wr %r0, %r7, %-
11722 .word 0xe41fe0e0 ! 16: LDD_I ldd [%r31 + 0x00e0], %r18
11723 .word 0xe49fc280 ! 17: LDDA_R ldda [%r31, %r0] 0x14, %r18
11724brcommon2_1_12:
11725 nop
11726 setx common_target, %r12, %r27
11727 ba,a .+12
11728 .word 0xc36fe1c0 ! 1: PREFETCH_I prefetch [%r31 + 0x01c0], #one_read
11729 ba,a .+8
11730 jmpl %r27+0, %r27
11731 .word 0xe19fe040 ! 18: LDDFA_I ldda [%r31, 0x0040], %f16
11732intveclr_1_13:
11733 nop
11734 ta T_CHANGE_HPRIV
11735 setx 0x19f17f14ded04f1e, %r1, %r28
11736 stxa %r28, [%g0] 0x72
11737 ta T_CHANGE_NONHPRIV
11738 .word 0x25400001 ! 19: FBPLG fblg,a,pn %fcc0, <label_0x1>
11739intveclr_1_14:
11740 nop
11741 ta T_CHANGE_HPRIV
11742 setx 0xb14c6824a43143be, %r1, %r28
11743 stxa %r28, [%g0] 0x72
11744 ta T_CHANGE_NONHPRIV
11745 .word 0x25400001 ! 20: FBPLG fblg,a,pn %fcc0, <label_0x1>
11746pmu_1_15:
11747 nop
11748 setx 0xfffffaaefffff2ed, %g1, %g7
11749 .word 0xa3800007 ! 21: WR_PERF_COUNTER_R wr %r0, %r7, %-
11750 bge,a skip_1_16
11751 brgz,pt %r16, skip_1_16
11752.align 128
11753skip_1_16:
11754 .word 0x95a449c4 ! 22: FDIVd fdivd %f48, %f4, %f10
11755 .word 0xa66aa3e8 ! 23: UDIVX_I udivx %r10, 0x03e8, %r19
11756dvapa_1_17:
11757 nop
11758 ta T_CHANGE_HPRIV
11759 mov 0xa23, %r20
11760 mov 0x7, %r19
11761 sllx %r20, 23, %r20
11762 or %r19, %r20, %r19
11763 stxa %r19, [%g0] ASI_LSU_CONTROL
11764 mov 0x38, %r18
11765 stxa %r31, [%r18]0x58
11766 ta T_CHANGE_NONHPRIV
11767 .word 0xe7e7e009 ! 24: CASA_R casa [%r31] %asi, %r9, %r19
11768splash_htba_1_18:
11769 nop
11770 ta T_CHANGE_HPRIV
11771 setx 0x0000000000280000, %r11, %r12
11772 .word 0x8b98000c ! 25: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
11773 .word 0xe797e020 ! 26: LDQFA_I - [%r31, 0x0020], %f19
11774 .word 0x3c800001 ! 1: BPOS bpos,a <label_0x1>
11775 .word 0x8d9032e1 ! 27: WRPR_PSTATE_I wrpr %r0, 0x12e1, %pstate
11776 .word 0x936c0012 ! 28: SDIVX_R sdivx %r16, %r18, %r9
11777splash_hpstate_1_20:
11778 ta T_CHANGE_NONHPRIV
11779 .word 0x81983ecd ! 29: WRHPR_HPSTATE_I wrhpr %r0, 0x1ecd, %hpstate
11780intveclr_1_21:
11781 nop
11782 ta T_CHANGE_HPRIV
11783 setx 0x8e15e0e3206e6dc1, %r1, %r28
11784 stxa %r28, [%g0] 0x72
11785 .word 0x25400001 ! 30: FBPLG fblg,a,pn %fcc0, <label_0x1>
11786#if (defined SPC || defined CMP1)
11787!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_22) + 8, 16, 16)) -> intp(6,0,17)
11788#else
11789 setx 0xcd0f9e808c98fa69, %r1, %r28
11790 stxa %r28, [%g0] 0x73
11791#endif
11792intvec_1_22:
11793 .word 0x39400001 ! 31: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11794splash_tba_1_23:
11795 nop
11796 ta T_CHANGE_PRIV
11797 setx 0x0000000000380000, %r11, %r12
11798 .word 0x8b90000c ! 32: WRPR_TBA_R wrpr %r0, %r12, %tba
11799splash_lsu_1_24:
11800 nop
11801 ta T_CHANGE_HPRIV
11802 set 0x9c81e27a, %r2
11803 mov 0x1, %r1
11804 sllx %r1, 32, %r1
11805 or %r1, %r2, %r2
11806 stxa %r2, [%r0] ASI_LSU_CONTROL
11807 ta T_CHANGE_NONHPRIV
11808 .word 0x3d400001 ! 33: FBPULE fbule,a,pn %fcc0, <label_0x1>
11809splash_hpstate_1_25:
11810 .word 0x3e800001 ! 1: BVC bvc,a <label_0x1>
11811 .word 0x81983d0f ! 34: WRHPR_HPSTATE_I wrhpr %r0, 0x1d0f, %hpstate
11812pmu_1_26:
11813 nop
11814 ta T_CHANGE_PRIV
11815 setx 0xfffff2b5fffffbd8, %g1, %g7
11816 .word 0xa3800007 ! 35: WR_PERF_COUNTER_R wr %r0, %r7, %-
11817 .word 0xa7a349b0 ! 36: FDIVs fdivs %f13, %f16, %f19
11818jmptr_1_28:
11819 nop
11820 best_set_reg(0xe1200000, %r20, %r27)
11821 .word 0xb7c6c000 ! 37: JMPL_R jmpl %r27 + %r0, %r27
11822 .word 0xc3eb4021 ! 38: PREFETCHA_R prefetcha [%r13, %r1] 0x01, #one_read
11823intveclr_1_30:
11824 nop
11825 ta T_CHANGE_HPRIV
11826 setx 0xd6ec7f1fcf8c523b, %r1, %r28
11827 stxa %r28, [%g0] 0x72
11828 ta T_CHANGE_NONHPRIV
11829 .word 0x25400001 ! 39: FBPLG fblg,a,pn %fcc0, <label_0x1>
11830ibp_1_31:
11831 nop
11832 ta T_CHANGE_NONHPRIV
11833 .word 0xda97c032 ! 40: LDUHA_R lduha [%r31, %r18] 0x01, %r13
11834 invalw
11835 mov 0xb3, %r30
11836 .word 0x91d0001e ! 41: Tcc_R ta icc_or_xcc, %r0 + %r30
11837intveclr_1_32:
11838 nop
11839 ta T_CHANGE_HPRIV
11840 setx 0x78f751fd704fdde6, %r1, %r28
11841 stxa %r28, [%g0] 0x72
11842 ta T_CHANGE_NONHPRIV
11843 .word 0x25400001 ! 42: FBPLG fblg,a,pn %fcc0, <label_0x1>
11844ibp_1_33:
11845 nop
11846 .word 0xa3a489c4 ! 43: FDIVd fdivd %f18, %f4, %f48
11847 .word 0xa190200b ! 44: WRPR_GL_I wrpr %r0, 0x000b, %-
11848fpinit_1_34:
11849 nop
11850 setx fp_data_quads, %r19, %r20
11851 ldd [%r20], %f0
11852 ldd [%r20+8], %f4
11853 ld [%r20+16], %fsr
11854 ld [%r20+24], %r19
11855 wr %r19, %g0, %gsr
11856 .word 0x91a009c4 ! 45: FDIVd fdivd %f0, %f4, %f8
11857 .word 0x91948011 ! 46: WRPR_PIL_R wrpr %r18, %r17, %pil
11858 nop
11859 ta T_CHANGE_HPRIV ! macro
11860donret_1_36:
11861 rd %pc, %r12
11862 add %r12, (donretarg_1_36-donret_1_36+4), %r12
11863 add %r12, 0x4, %r11 ! seq tnpc
11864 wrpr %g0, 0x2, %tl
11865 wrpr %g0, %r12, %tpc
11866 wrpr %g0, %r11, %tnpc
11867 set (0x00fc6800 | (28 << 24)), %r13
11868 and %r12, 0xfff, %r14
11869 sllx %r14, 30, %r14
11870 or %r13, %r14, %r20
11871 wrpr %r20, %g0, %tstate
11872 wrhpr %g0, 0x10c8, %htstate
11873 ta T_CHANGE_NONPRIV ! rand=0 (1)
11874 .word 0x3e800001 ! 1: BVC bvc,a <label_0x1>
11875 retry
11876donretarg_1_36:
11877 .word 0xe26fe0e1 ! 47: LDSTUB_I ldstub %r17, [%r31 + 0x00e1]
11878 .word 0xc19fd960 ! 48: LDDFA_R ldda [%r31, %r0], %f0
11879change_to_randtl_1_37:
11880 ta T_CHANGE_HPRIV ! macro
11881done_change_to_randtl_1_37:
11882 .word 0x8f902002 ! 49: WRPR_TL_I wrpr %r0, 0x0002, %tl
11883 .word 0x8d802000 ! 50: WRFPRS_I wr %r0, 0x0000, %fprs
11884 fbug skip_1_38
11885 .word 0x9f80264d ! 1: SIR sir 0x064d
11886.align 1024
11887skip_1_38:
11888 .word 0xc36fe13c ! 51: PREFETCH_I prefetch [%r31 + 0x013c], #one_read
11889intveclr_1_39:
11890 nop
11891 ta T_CHANGE_HPRIV
11892 setx 0x9c8d66ca51db2278, %r1, %r28
11893 stxa %r28, [%g0] 0x72
11894 .word 0x25400001 ! 52: FBPLG fblg,a,pn %fcc0, <label_0x1>
11895 .word 0x9f802701 ! 53: SIR sir 0x0701
11896 .word 0xe337e1c2 ! 54: STQF_I - %f17, [0x01c2, %r31]
11897dvapa_1_40:
11898 nop
11899 ta T_CHANGE_HPRIV
11900 mov 0xfd0, %r20
11901 mov 0xd, %r19
11902 sllx %r20, 23, %r20
11903 or %r19, %r20, %r19
11904 stxa %r19, [%g0] ASI_LSU_CONTROL
11905 mov 0x38, %r18
11906 stxa %r31, [%r18]0x58
11907 ta T_CHANGE_NONHPRIV
11908 .word 0xe1bfd920 ! 55: STDFA_R stda %f16, [%r0, %r31]
11909 .word 0xe22fe15e ! 56: STB_I stb %r17, [%r31 + 0x015e]
11910 setx 0x6c6e2a4abbfe5965, %r1, %r28
11911 stxa %r28, [%g0] 0x73
11912intvec_1_41:
11913 .word 0x39400001 ! 57: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
11914brcommon2_1_42:
11915 nop
11916 setx common_target, %r12, %r27
11917 ba,a .+12
11918 .word 0x81dfc014 ! 1: FLUSH_R flush
11919 ba,a .+8
11920 jmpl %r27+0, %r27
11921 .word 0xe1bfdf20 ! 58: STDFA_R stda %f16, [%r0, %r31]
11922jmptr_1_43:
11923 nop
11924 best_set_reg(0xe1200000, %r20, %r27)
11925 .word 0xb7c6c000 ! 59: JMPL_R jmpl %r27 + %r0, %r27
11926memptr_1_44:
11927 set 0x60340000, %r31
11928 .word 0x8581eb0c ! 60: WRCCR_I wr %r7, 0x0b0c, %ccr
11929 nop
11930 ta T_CHANGE_HPRIV
11931 mov 0x1+1, %r10
11932 set sync_thr_counter5, %r23
11933#ifndef SPC
11934 ldxa [%g0]0x63, %o1
11935 and %o1, 0x38, %o1
11936 add %o1, %r23, %r23
11937 sllx %o1, 5, %o3 !(CID*256)
11938#endif
11939 cas [%r23],%g0,%r10 !lock
11940 brnz %r10, cwq_1_45
11941 rd %asi, %r12
11942 wr %g0, 0x40, %asi
11943 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
11944 and %l1, 0x3, %l1 ! Check if busy/enabled ..
11945 cmp %l1, 1
11946 bne cwq_1_45
11947 set CWQ_BASE, %l6
11948#ifndef SPC
11949 add %l6, %o3, %l6
11950#endif
11951 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
11952 best_set_reg(0x20610070, %l1, %l2) !# Control Word
11953 sllx %l2, 32, %l2
11954 stx %l2, [%l6 + 0x0]
11955 membar #Sync
11956 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
11957 sub %l2, 0x40, %l2
11958 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
11959 wr %r12, %g0, %asi
11960 st %g0, [%r23]
11961cwq_1_45:
11962 ta T_CHANGE_NONHPRIV
11963 .word 0x91414000 ! 61: RDPC rd %pc, %r8
11964fpinit_1_46:
11965 nop
11966 setx fp_data_quads, %r19, %r20
11967 ldd [%r20], %f0
11968 ldd [%r20+8], %f4
11969 ld [%r20+16], %fsr
11970 ld [%r20+24], %r19
11971 wr %r19, %g0, %gsr
11972 .word 0xc3e82b0c ! 62: PREFETCHA_I prefetcha [%r0, + 0x0b0c] %asi, #one_read
11973 .word 0x91d020b3 ! 63: Tcc_I ta icc_or_xcc, %r0 + 179
11974 .word 0x87ad0a53 ! 64: FCMPd fcmpd %fcc<n>, %f20, %f50
11975 nop
11976 ta T_CHANGE_HPRIV
11977 mov 0x1, %r10
11978 set sync_thr_counter6, %r23
11979#ifndef SPC
11980 ldxa [%g0]0x63, %o1
11981 and %o1, 0x38, %o1
11982 add %o1, %r23, %r23
11983#endif
11984 cas [%r23],%g0,%r10 !lock
11985 brnz %r10, sma_1_48
11986 rd %asi, %r12
11987 wr %g0, 0x40, %asi
11988 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
11989 set 0x000a1fff, %g1
11990 stxa %g1, [%g0 + 0x80] %asi
11991 wr %r12, %g0, %asi
11992 st %g0, [%r23]
11993sma_1_48:
11994 ta T_CHANGE_NONHPRIV
11995 .word 0xe5e7e00a ! 65: CASA_R casa [%r31] %asi, %r10, %r18
11996 .word 0x81510000 ! 66: RDPR_TICK rdpr %tick, %r0
11997 .word 0xe537e010 ! 67: STQF_I - %f18, [0x0010, %r31]
11998 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
11999reduce_priv_lvl_1_49:
12000 ta T_CHANGE_NONHPRIV ! macro
12001trapasi_1_50:
12002 nop
12003 mov 0x3d0, %r1 ! (VA for ASI 0x25)
12004 .word 0xe4c044a0 ! 69: LDSWA_R ldswa [%r1, %r0] 0x25, %r18
12005splash_tba_1_51:
12006 nop
12007 ta T_CHANGE_PRIV
12008 setx 0x0000000000380000, %r11, %r12
12009 .word 0x8b90000c ! 70: WRPR_TBA_R wrpr %r0, %r12, %tba
12010dvapa_1_52:
12011 nop
12012 ta T_CHANGE_HPRIV
12013 mov 0xcaa, %r20
12014 mov 0x1, %r19
12015 sllx %r20, 23, %r20
12016 or %r19, %r20, %r19
12017 stxa %r19, [%g0] ASI_LSU_CONTROL
12018 mov 0x38, %r18
12019 stxa %r31, [%r18]0x58
12020 ta T_CHANGE_NONHPRIV
12021 .word 0xe497c02a ! 71: LDUHA_R lduha [%r31, %r10] 0x01, %r18
12022 .word 0xa948c000 ! 72: RDHPR_HINTP rdhpr %hintp, %r20
12023 nop
12024 ta T_CHANGE_HPRIV
12025 mov 0x1, %r10
12026 set sync_thr_counter6, %r23
12027#ifndef SPC
12028 ldxa [%g0]0x63, %o1
12029 and %o1, 0x38, %o1
12030 add %o1, %r23, %r23
12031#endif
12032 cas [%r23],%g0,%r10 !lock
12033 brnz %r10, sma_1_53
12034 rd %asi, %r12
12035 wr %g0, 0x40, %asi
12036 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
12037 set 0x00021fff, %g1
12038 stxa %g1, [%g0 + 0x80] %asi
12039 wr %r12, %g0, %asi
12040 st %g0, [%r23]
12041sma_1_53:
12042 ta T_CHANGE_NONHPRIV
12043 .word 0xe9e7e013 ! 73: CASA_R casa [%r31] %asi, %r19, %r20
12044mondo_1_54:
12045 nop
12046 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
12047 ta T_CHANGE_PRIV
12048 stxa %r4, [%r0+0x3d0] %asi
12049 .word 0x9d904012 ! 74: WRPR_WSTATE_R wrpr %r1, %r18, %wstate
12050intveclr_1_55:
12051 nop
12052 ta T_CHANGE_HPRIV
12053 setx 0x6ad068aa8b8ead3a, %r1, %r28
12054 stxa %r28, [%g0] 0x72
12055 ta T_CHANGE_NONHPRIV
12056 .word 0x25400001 ! 75: FBPLG fblg,a,pn %fcc0, <label_0x1>
12057 .word 0xe937e0b9 ! 76: STQF_I - %f20, [0x00b9, %r31]
12058splash_hpstate_1_56:
12059 ta T_CHANGE_NONHPRIV
12060 .word 0x20800001 ! 1: BN bn,a <label_0x1>
12061 .word 0x819828c9 ! 77: WRHPR_HPSTATE_I wrhpr %r0, 0x08c9, %hpstate
12062br_badelay3_1_57:
12063 .word 0x20800001 ! 1: BN bn,a <label_0x1>
12064 .word 0x22800001 ! 1: BE be,a <label_0x1>
12065 .word 0xa3a509c4 ! 1: FDIVd fdivd %f20, %f4, %f48
12066 .word 0x93a34832 ! 78: FADDs fadds %f13, %f18, %f9
12067br_longdelay1_1_58:
12068 .word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, <label_0x1>
12069 .word 0xbfefc000 ! 79: RESTORE_R restore %r31, %r0, %r31
12070splash_lsu_1_59:
12071 nop
12072 ta T_CHANGE_HPRIV
12073 set 0x08176f9f, %r2
12074 mov 0x2, %r1
12075 sllx %r1, 32, %r1
12076 or %r1, %r2, %r2
12077 stxa %r2, [%r0] ASI_LSU_CONTROL
12078 .word 0x3d400001 ! 80: FBPULE fbule,a,pn %fcc0, <label_0x1>
12079 .word 0x95b0c590 ! 81: FCMPGT32 fcmpgt32 %d34, %d16, %r10
12080dvapa_1_60:
12081 nop
12082 ta T_CHANGE_HPRIV
12083 mov 0x9a0, %r20
12084 mov 0xb, %r19
12085 sllx %r20, 23, %r20
12086 or %r19, %r20, %r19
12087 stxa %r19, [%g0] ASI_LSU_CONTROL
12088 mov 0x38, %r18
12089 stxa %r31, [%r18]0x58
12090 ta T_CHANGE_NONHPRIV
12091 .word 0xd4bfc029 ! 82: STDA_R stda %r10, [%r31 + %r9] 0x01
12092 .word 0x8143e011 ! 83: MEMBAR membar #LoadLoad | #Lookaside
12093 .word 0xa945c000 ! 84: RD_TICK_CMPR_REG rd %-, %r20
12094 .word 0xa1902000 ! 85: WRPR_GL_I wrpr %r0, 0x0000, %-
12095trapasi_1_62:
12096 nop
12097 mov 0x8, %r1 ! (VA for ASI 0x5a)
12098 .word 0xe8c04b40 ! 86: LDSWA_R ldswa [%r1, %r0] 0x5a, %r20
12099brcommon3_1_63:
12100 nop
12101 setx common_target, %r12, %r27
12102 lduw [%r27], %r12 ! Load common dest into dcache ..
12103 ba,a .+12
12104 .word 0xe937e0a0 ! 1: STQF_I - %f20, [0x00a0, %r31]
12105 ba,a .+8
12106 jmpl %r27+0, %r27
12107 .word 0xe8dfc02d ! 87: LDXA_R ldxa [%r31, %r13] 0x01, %r20
12108memptr_1_64:
12109 set 0x60540000, %r31
12110 .word 0x8580a28a ! 88: WRCCR_I wr %r2, 0x028a, %ccr
12111brcommon1_1_65:
12112 nop
12113 setx common_target, %r12, %r27
12114 lduw [%r27], %r12 ! Load common dest into dcache ..
12115 ba,a .+12
12116 .word 0xa9b7c7d3 ! 1: PDIST pdistn %d62, %d50, %d20
12117 ba,a .+8
12118 jmpl %r27+0, %r27
12119 .word 0x87ab0a47 ! 89: FCMPd fcmpd %fcc<n>, %f12, %f38
12120 .word 0x90c460e7 ! 90: ADDCcc_I addccc %r17, 0x00e7, %r8
12121fpinit_1_66:
12122 nop
12123 setx fp_data_quads, %r19, %r20
12124 ldd [%r20], %f0
12125 ldd [%r20+8], %f4
12126 ld [%r20+16], %fsr
12127 ld [%r20+24], %r19
12128 wr %r19, %g0, %gsr
12129 .word 0x8da009a4 ! 91: FDIVs fdivs %f0, %f4, %f6
12130 nop
12131 ta T_CHANGE_HPRIV ! macro
12132donret_1_67:
12133 rd %pc, %r12
12134 add %r12, (donretarg_1_67-donret_1_67), %r12
12135 add %r12, 0x4, %r11 ! seq tnpc
12136 wrpr %g0, 0x2, %tl
12137 wrpr %g0, %r12, %tpc
12138 wrpr %g0, %r11, %tnpc
12139 set (0x00fc5800 | (22 << 24)), %r13
12140 and %r12, 0xfff, %r14
12141 sllx %r14, 30, %r14
12142 or %r13, %r14, %r20
12143 wrpr %r20, %g0, %tstate
12144 wrhpr %g0, 0x1c55, %htstate
12145 ta T_CHANGE_NONPRIV ! rand=0 (1)
12146 .word 0x22800001 ! 1: BE be,a <label_0x1>
12147 done
12148donretarg_1_67:
12149 .word 0x9ba4c9d3 ! 92: FDIVd fdivd %f50, %f50, %f44
12150change_to_randtl_1_68:
12151 ta T_CHANGE_PRIV ! macro
12152done_change_to_randtl_1_68:
12153 .word 0x8f902000 ! 93: WRPR_TL_I wrpr %r0, 0x0000, %tl
12154 set 0xb10, %l3
12155 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
12156 .word 0x9bb407c2 ! 94: PDIST pdistn %d16, %d2, %d44
12157 .word 0xc32fc010 ! 95: STXFSR_R st-sfr %f1, [%r16, %r31]
12158splash_tba_1_70:
12159 nop
12160 ta T_CHANGE_PRIV
12161 setx 0x0000000000380000, %r11, %r12
12162 .word 0x8b90000c ! 96: WRPR_TBA_R wrpr %r0, %r12, %tba
12163 setx 0xb8605065216d8066, %r1, %r28
12164 stxa %r28, [%g0] 0x73
12165intvec_1_71:
12166 .word 0x39400001 ! 97: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
12167memptr_1_72:
12168 set user_data_start, %r31
12169 .word 0x8582279c ! 98: WRCCR_I wr %r8, 0x079c, %ccr
12170fpinit_1_73:
12171 nop
12172 setx fp_data_quads, %r19, %r20
12173 ldd [%r20], %f0
12174 ldd [%r20+8], %f4
12175 ld [%r20+16], %fsr
12176 ld [%r20+24], %r19
12177 wr %r19, %g0, %gsr
12178 .word 0x8db00484 ! 99: FCMPLE32 fcmple32 %d0, %d4, %r6
12179intveclr_1_74:
12180 nop
12181 ta T_CHANGE_HPRIV
12182 setx 0xe7c4f37e63ec30a2, %r1, %r28
12183 stxa %r28, [%g0] 0x72
12184 ta T_CHANGE_NONHPRIV
12185 .word 0x25400001 ! 100: FBPLG fblg,a,pn %fcc0, <label_0x1>
12186 nop
12187 ta T_CHANGE_HPRIV ! macro
12188donret_1_75:
12189 rd %pc, %r12
12190 add %r12, (donretarg_1_75-donret_1_75+4), %r12
12191 add %r12, 0x4, %r11 ! seq tnpc
12192 wrpr %g0, 0x2, %tl
12193 wrpr %g0, %r12, %tpc
12194 wrpr %g0, %r11, %tnpc
12195 set (0x00a38800 | (28 << 24)), %r13
12196 and %r12, 0xfff, %r14
12197 sllx %r14, 30, %r14
12198 or %r13, %r14, %r20
12199 wrpr %r20, %g0, %tstate
12200 wrhpr %g0, 0x169d, %htstate
12201 ta T_CHANGE_NONHPRIV ! rand=1 (1)
12202 done
12203donretarg_1_75:
12204 .word 0xa9a189d2 ! 101: FDIVd fdivd %f6, %f18, %f20
12205 .word 0x81dd0010 ! 102: FLUSH_R flush
12206ibp_1_76:
12207 nop
12208 .word 0xe19fe140 ! 103: LDDFA_I ldda [%r31, 0x0140], %f16
12209 .word 0xe89fe0c0 ! 104: LDDA_I ldda [%r31, + 0x00c0] %asi, %r20
12210 nop
12211 ta T_CHANGE_HPRIV ! macro
12212donret_1_77:
12213 rd %pc, %r12
12214 add %r12, (donretarg_1_77-donret_1_77+4), %r12
12215 add %r12, 0x4, %r11 ! seq tnpc
12216 wrpr %g0, 0x2, %tl
12217 wrpr %g0, %r12, %tpc
12218 wrpr %g0, %r11, %tnpc
12219 set (0x00da8a00 | (20 << 24)), %r13
12220 and %r12, 0xfff, %r14
12221 sllx %r14, 30, %r14
12222 or %r13, %r14, %r20
12223 wrpr %r20, %g0, %tstate
12224 wrhpr %g0, 0x1a1b, %htstate
12225 ta T_CHANGE_NONPRIV ! rand=0 (1)
12226 done
12227donretarg_1_77:
12228 .word 0x95a209d0 ! 105: FDIVd fdivd %f8, %f16, %f10
12229 .word 0x8d9029d5 ! 106: WRPR_PSTATE_I wrpr %r0, 0x09d5, %pstate
12230 .word 0xa753c000 ! 107: RDPR_FQ <illegal instruction>
12231 .word 0xab843044 ! 108: WR_CLEAR_SOFTINT_I wr %r16, 0x1044, %clear_softint
12232 .word 0x29800001 ! 109: FBL fbl,a <label_0x1>
12233 .word 0xc1bfc2c0 ! 110: STDFA_R stda %f0, [%r0, %r31]
12234br_badelay3_1_80:
12235 .word 0x34800001 ! 1: BG bg,a <label_0x1>
12236 .word 0xab799a7a ! Random illegal ?
12237 .word 0xa3a00553 ! 1: FSQRTd fsqrt
12238 .word 0x99a44834 ! 111: FADDs fadds %f17, %f20, %f12
12239ibp_1_81:
12240 nop
12241 ta T_CHANGE_NONHPRIV
12242 .word 0xd91fe120 ! 112: LDDF_I ldd [%r31, 0x0120], %f12
12243memptr_1_82:
12244 set 0x60740000, %r31
12245 .word 0x8581f367 ! 113: WRCCR_I wr %r7, 0x1367, %ccr
12246mondo_1_83:
12247 nop
12248 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
12249 ta T_CHANGE_PRIV
12250 stxa %r19, [%r0+0x3e8] %asi
12251 .word 0x9d91c004 ! 114: WRPR_WSTATE_R wrpr %r7, %r4, %wstate
12252 .word 0xa1508000 ! 115: RDPR_TSTATE <illegal instruction>
12253splash_lsu_1_84:
12254 nop
12255 ta T_CHANGE_HPRIV
12256 set 0x3e7bf9fb, %r2
12257 mov 0x2, %r1
12258 sllx %r1, 32, %r1
12259 or %r1, %r2, %r2
12260 stxa %r2, [%r0] ASI_LSU_CONTROL
12261 ta T_CHANGE_NONHPRIV
12262 .word 0x3d400001 ! 116: FBPULE fbule,a,pn %fcc0, <label_0x1>
12263splash_cmpr_1_85:
12264 mov 1, %r18
12265 sllx %r18, 63, %r18
12266 rd %tick, %r17
12267 add %r17, 0x50, %r17
12268 or %r17, %r18, %r17
12269 ta T_CHANGE_PRIV
12270 .word 0xb3800011 ! 117: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
12271splash_hpstate_1_86:
12272 ta T_CHANGE_NONHPRIV
12273 .word 0x8198258d ! 118: WRHPR_HPSTATE_I wrhpr %r0, 0x058d, %hpstate
12274 .word 0xa190200a ! 119: WRPR_GL_I wrpr %r0, 0x000a, %-
12275 nop
12276 ta T_CHANGE_HPRIV
12277 mov 0x1, %r10
12278 set sync_thr_counter6, %r23
12279#ifndef SPC
12280 ldxa [%g0]0x63, %o1
12281 and %o1, 0x38, %o1
12282 add %o1, %r23, %r23
12283#endif
12284 cas [%r23],%g0,%r10 !lock
12285 brnz %r10, sma_1_87
12286 rd %asi, %r12
12287 wr %g0, 0x40, %asi
12288 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
12289 set 0x00121fff, %g1
12290 stxa %g1, [%g0 + 0x80] %asi
12291 wr %r12, %g0, %asi
12292 st %g0, [%r23]
12293sma_1_87:
12294 ta T_CHANGE_NONHPRIV
12295 .word 0xe1e7e010 ! 120: CASA_R casa [%r31] %asi, %r16, %r16
12296mondo_1_88:
12297 nop
12298 .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
12299 stxa %r2, [%r0+0x3e0] %asi
12300 .word 0x9d94c005 ! 121: WRPR_WSTATE_R wrpr %r19, %r5, %wstate
12301splash_lsu_1_89:
12302 nop
12303 ta T_CHANGE_HPRIV
12304 set 0x4eee0bed, %r2
12305 mov 0x2, %r1
12306 sllx %r1, 32, %r1
12307 or %r1, %r2, %r2
12308 stxa %r2, [%r0] ASI_LSU_CONTROL
12309 .word 0x3d400001 ! 122: FBPULE fbule,a,pn %fcc0, <label_0x1>
12310brcommon3_1_90:
12311 nop
12312 setx common_target, %r12, %r27
12313 lduw [%r27], %r12 ! Load common dest into dcache ..
12314 ba,a .+12
12315 .word 0xe1e7c031 ! 1: CASA_I casa [%r31] 0x 1, %r17, %r16
12316 ba,a .+8
12317 jmpl %r27+0, %r27
12318 .word 0xc32fc010 ! 123: STXFSR_R st-sfr %f1, [%r16, %r31]
12319dvapa_1_91:
12320 nop
12321 ta T_CHANGE_HPRIV
12322 mov 0xc61, %r20
12323 mov 0x1, %r19
12324 sllx %r20, 23, %r20
12325 or %r19, %r20, %r19
12326 stxa %r19, [%g0] ASI_LSU_CONTROL
12327 mov 0x38, %r18
12328 stxa %r31, [%r18]0x58
12329 ta T_CHANGE_NONHPRIV
12330 .word 0xe19fe160 ! 124: LDDFA_I ldda [%r31, 0x0160], %f16
12331 .word 0xe137c000 ! 125: STQF_R - %f16, [%r0, %r31]
12332 .word 0xe0bfc030 ! 126: STDA_R stda %r16, [%r31 + %r16] 0x01
12333 setx 0x07bd15b10a0df980, %r1, %r28
12334 stxa %r28, [%g0] 0x73
12335intvec_1_93:
12336 .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
12337 .word 0x8d802000 ! 128: WRFPRS_I wr %r0, 0x0000, %fprs
12338 .word 0xe0d7e148 ! 129: LDSHA_I ldsha [%r31, + 0x0148] %asi, %r16
12339#if (defined SPC || defined CMP1)
12340!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_94) + 0, 16, 16)) -> intp(5,0,13)
12341#else
12342 setx 0x870e68e91e099fad, %r1, %r28
12343 stxa %r28, [%g0] 0x73
12344#endif
12345intvec_1_94:
12346 .word 0x39400001 ! 130: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
12347 .word 0x8d802000 ! 131: WRFPRS_I wr %r0, 0x0000, %fprs
12348 .word 0x8d90302d ! 132: WRPR_PSTATE_I wrpr %r0, 0x102d, %pstate
12349 .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, <label_0x1>
12350 .word 0x8d903731 ! 133: WRPR_PSTATE_I wrpr %r0, 0x1731, %pstate
12351 setx 0x7896aafee640e807, %r1, %r28
12352 stxa %r28, [%g0] 0x73
12353intvec_1_97:
12354 .word 0x39400001 ! 134: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
12355 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
12356reduce_priv_lvl_1_98:
12357 ta T_CHANGE_NONHPRIV ! macro
12358ibp_1_99:
12359 nop
12360 ta T_CHANGE_NONHPRIV
12361 .word 0xa9b4c490 ! 136: FCMPLE32 fcmple32 %d50, %d16, %r20
12362 .word 0x89800011 ! 137: WRTICK_R wr %r0, %r17, %tick
12363change_to_randtl_1_101:
12364 ta T_CHANGE_HPRIV ! macro
12365done_change_to_randtl_1_101:
12366 .word 0x8f902000 ! 138: WRPR_TL_I wrpr %r0, 0x0000, %tl
12367splash_cmpr_1_102:
12368 mov 1, %r18
12369 sllx %r18, 63, %r18
12370 rd %tick, %r17
12371 add %r17, 0x70, %r17
12372 or %r17, %r18, %r17
12373 .word 0xb3800011 ! 139: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
12374 .word 0xe8cfe1d0 ! 140: LDSBA_I ldsba [%r31, + 0x01d0] %asi, %r20
12375 nop
12376 ta T_CHANGE_HPRIV ! macro
12377donret_1_103:
12378 rd %pc, %r12
12379 add %r12, (donretarg_1_103-donret_1_103), %r12
12380 add %r12, 0x4, %r11 ! seq tnpc
12381 wrpr %g0, 0x2, %tl
12382 wrpr %g0, %r12, %tpc
12383 wrpr %g0, %r11, %tnpc
12384 set (0x003f5900 | (4 << 24)), %r13
12385 and %r12, 0xfff, %r14
12386 sllx %r14, 30, %r14
12387 or %r13, %r14, %r20
12388 wrpr %r20, %g0, %tstate
12389 wrhpr %g0, 0x1f95, %htstate
12390 ta T_CHANGE_NONPRIV ! rand=0 (1)
12391 .word 0x3f400001 ! 1: FBPO fbo,a,pn %fcc0, <label_0x1>
12392 done
12393donretarg_1_103:
12394 .word 0xe86fe086 ! 141: LDSTUB_I ldstub %r20, [%r31 + 0x0086]
12395trapasi_1_104:
12396 nop
12397 mov 0x20, %r1 ! (VA for ASI 0x5b)
12398 .word 0xe8c84b60 ! 142: LDSBA_R ldsba [%r1, %r0] 0x5b, %r20
12399fpinit_1_105:
12400 nop
12401 setx fp_data_quads, %r19, %r20
12402 ldd [%r20], %f0
12403 ldd [%r20+8], %f4
12404 ld [%r20+16], %fsr
12405 ld [%r20+24], %r19
12406 wr %r19, %g0, %gsr
12407 .word 0x91a009a4 ! 143: FDIVs fdivs %f0, %f4, %f8
12408 .word 0x89800011 ! 144: WRTICK_R wr %r0, %r17, %tick
12409change_to_randtl_1_107:
12410 ta T_CHANGE_HPRIV ! macro
12411done_change_to_randtl_1_107:
12412 .word 0x8f902000 ! 145: WRPR_TL_I wrpr %r0, 0x0000, %tl
12413dvapa_1_108:
12414 nop
12415 ta T_CHANGE_HPRIV
12416 mov 0xec4, %r20
12417 mov 0x1a, %r19
12418 sllx %r20, 23, %r20
12419 or %r19, %r20, %r19
12420 stxa %r19, [%g0] ASI_LSU_CONTROL
12421 mov 0x38, %r18
12422 stxa %r31, [%r18]0x58
12423 ta T_CHANGE_NONHPRIV
12424 .word 0xe9e7e012 ! 146: CASA_R casa [%r31] %asi, %r18, %r20
12425 setx 0xec8ebab6cb6f3b6b, %r1, %r28
12426 stxa %r28, [%g0] 0x73
12427intvec_1_109:
12428 .word 0x39400001 ! 147: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
12429 .word 0xe8cfe1a0 ! 148: LDSBA_I ldsba [%r31, + 0x01a0] %asi, %r20
12430 .word 0xa7828003 ! 149: WR_GRAPHICS_STATUS_REG_R wr %r10, %r3, %-
12431 .word 0xe93fc014 ! 150: STDF_R std %f20, [%r20, %r31]
12432br_longdelay3_1_112:
12433 nop
12434 not %g0, %r12
12435 jmp %r12
12436 .word 0x99902005 ! 151: WRPR_CLEANWIN_I wrpr %r0, 0x0005, %cleanwin
12437 .word 0x97a00542 ! 152: FSQRTd fsqrt
12438 .word 0xc19fe140 ! 153: LDDFA_I ldda [%r31, 0x0140], %f0
12439splash_cmpr_1_113:
12440 mov 0, %r18
12441 sllx %r18, 63, %r18
12442 rd %tick, %r17
12443 add %r17, 0x60, %r17
12444 or %r17, %r18, %r17
12445 .word 0xb3800011 ! 154: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
12446 .word 0x879b0005 ! 155: WRHPR_HINTP_R wrhpr %r12, %r5, %hintp
12447 .word 0x9194000b ! 156: WRPR_PIL_R wrpr %r16, %r11, %pil
12448ibp_1_115:
12449 nop
12450 .word 0xc32fc010 ! 157: STXFSR_R st-sfr %f1, [%r16, %r31]
12451fpinit_1_116:
12452 nop
12453 setx fp_data_quads, %r19, %r20
12454 ldd [%r20], %f0
12455 ldd [%r20+8], %f4
12456 ld [%r20+16], %fsr
12457 ld [%r20+24], %r19
12458 wr %r19, %g0, %gsr
12459 .word 0x89a009c4 ! 158: FDIVd fdivd %f0, %f4, %f4
12460 nop
12461 ta T_CHANGE_HPRIV ! macro
12462donret_1_117:
12463 rd %pc, %r12
12464 add %r12, (donretarg_1_117-donret_1_117), %r12
12465 add %r12, 0x4, %r11 ! seq tnpc
12466 wrpr %g0, 0x1, %tl
12467 wrpr %g0, %r12, %tpc
12468 wrpr %g0, %r11, %tnpc
12469 set (0x00192600 | (0x8b << 24)), %r13
12470 and %r12, 0xfff, %r14
12471 sllx %r14, 30, %r14
12472 or %r13, %r14, %r20
12473 wrpr %r20, %g0, %tstate
12474 wrhpr %g0, 0x1a49, %htstate
12475 ta T_CHANGE_NONPRIV ! rand=0 (1)
12476 done
12477donretarg_1_117:
12478 .word 0xd6ffe1e4 ! 159: SWAPA_I swapa %r11, [%r31 + 0x01e4] %asi
12479 .word 0xd6dfe1a8 ! 160: LDXA_I ldxa [%r31, + 0x01a8] %asi, %r11
12480jmptr_1_118:
12481 nop
12482 best_set_reg(0xe1200000, %r20, %r27)
12483 .word 0xb7c6c000 ! 161: JMPL_R jmpl %r27 + %r0, %r27
12484dvapa_1_119:
12485 nop
12486 ta T_CHANGE_HPRIV
12487 mov 0xb01, %r20
12488 mov 0x8, %r19
12489 sllx %r20, 23, %r20
12490 or %r19, %r20, %r19
12491 stxa %r19, [%g0] ASI_LSU_CONTROL
12492 mov 0x38, %r18
12493 stxa %r31, [%r18]0x58
12494 ta T_CHANGE_NONHPRIV
12495 .word 0xa5702ddc ! 162: POPC_I popc 0x0ddc, %r18
12496 .word 0xa9850012 ! 163: WR_SET_SOFTINT_R wr %r20, %r18, %set_softint
12497 nop
12498 ta T_CHANGE_HPRIV ! macro
12499donret_1_120:
12500 rd %pc, %r12
12501 add %r12, (donretarg_1_120-donret_1_120+4), %r12
12502 add %r12, 0x4, %r11 ! seq tnpc
12503 wrpr %g0, 0x1, %tl
12504 wrpr %g0, %r12, %tpc
12505 wrpr %g0, %r11, %tnpc
12506 set (0x00e19100 | (22 << 24)), %r13
12507 and %r12, 0xfff, %r14
12508 sllx %r14, 30, %r14
12509 or %r13, %r14, %r20
12510 wrpr %r20, %g0, %tstate
12511 wrhpr %g0, 0x1d46, %htstate
12512 ta T_CHANGE_NONHPRIV ! rand=1 (1)
12513 retry
12514donretarg_1_120:
12515 .word 0xa9a449d4 ! 164: FDIVd fdivd %f48, %f20, %f20
12516 nop
12517 ta T_CHANGE_HPRIV
12518 mov 0x1, %r10
12519 set sync_thr_counter6, %r23
12520#ifndef SPC
12521 ldxa [%g0]0x63, %o1
12522 and %o1, 0x38, %o1
12523 add %o1, %r23, %r23
12524#endif
12525 cas [%r23],%g0,%r10 !lock
12526 brnz %r10, sma_1_121
12527 rd %asi, %r12
12528 wr %g0, 0x40, %asi
12529 ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
12530 set 0x001a1fff, %g1
12531 stxa %g1, [%g0 + 0x80] %asi
12532 wr %r12, %g0, %asi
12533 st %g0, [%r23]
12534sma_1_121:
12535 ta T_CHANGE_NONHPRIV
12536 .word 0xe9e7e014 ! 165: CASA_R casa [%r31] %asi, %r20, %r20
12537 .word 0x26800001 ! 1: BL bl,a <label_0x1>
12538 .word 0x8d903165 ! 166: WRPR_PSTATE_I wrpr %r0, 0x1165, %pstate
12539 .word 0x8d802000 ! 167: WRFPRS_I wr %r0, 0x0000, %fprs
12540 .word 0x89800011 ! 168: WRTICK_R wr %r0, %r17, %tick
12541 set 0x2b40, %l3
12542 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
12543 .word 0xa1b407d2 ! 169: PDIST pdistn %d16, %d18, %d16
12544 .word 0xe1e7e008 ! 170: CASA_R casa [%r31] %asi, %r8, %r16
12545splash_hpstate_1_125:
12546 .word 0x81982d0b ! 171: WRHPR_HPSTATE_I wrhpr %r0, 0x0d0b, %hpstate
12547memptr_1_126:
12548 set user_data_start, %r31
12549 .word 0x8584a633 ! 172: WRCCR_I wr %r18, 0x0633, %ccr
12550 .word 0x8d903373 ! 173: WRPR_PSTATE_I wrpr %r0, 0x1373, %pstate
12551splash_cmpr_1_128:
12552 mov 0, %r18
12553 sllx %r18, 63, %r18
12554 rd %tick, %r17
12555 add %r17, 0x60, %r17
12556 or %r17, %r18, %r17
12557 ta T_CHANGE_HPRIV
12558 wrhpr %r17, %g0, %hsys_tick_cmpr
12559 ta T_CHANGE_PRIV
12560 .word 0xaf800011 ! 174: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
12561 brnz,pn %r18, skip_1_129
12562 bvc skip_1_129
12563.align 512
12564skip_1_129:
12565 .word 0xc30fc000 ! 175: LDXFSR_R ld-fsr [%r31, %r0], %f1
12566brcommon2_1_130:
12567 nop
12568 setx common_target, %r12, %r27
12569 ba,a .+12
12570 .word 0xa1b7c708 ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f8, %d16
12571 ba,a .+8
12572 jmpl %r27+0, %r27
12573 .word 0xc1bfe1a0 ! 176: STDFA_I stda %f0, [0x01a0, %r31]
12574splash_cmpr_1_131:
12575 mov 0, %r18
12576 sllx %r18, 63, %r18
12577 rd %tick, %r17
12578 add %r17, 0x60, %r17
12579 or %r17, %r18, %r17
12580 ta T_CHANGE_HPRIV
12581 wrhpr %r17, %g0, %hsys_tick_cmpr
12582 .word 0xb3800011 ! 177: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
12583splash_cmpr_1_132:
12584 mov 0, %r18
12585 sllx %r18, 63, %r18
12586 rd %tick, %r17
12587 add %r17, 0x60, %r17
12588 or %r17, %r18, %r17
12589 ta T_CHANGE_HPRIV
12590 wrhpr %r17, %g0, %hsys_tick_cmpr
12591 ta T_CHANGE_PRIV
12592 .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
12593 .word 0x89800011 ! 179: WRTICK_R wr %r0, %r17, %tick
12594 .word 0x89800011 ! 180: WRTICK_R wr %r0, %r17, %tick
12595 .word 0xe737c000 ! 181: STQF_R - %f19, [%r0, %r31]
12596memptr_1_135:
12597 set user_data_start, %r31
12598 .word 0x8584e960 ! 182: WRCCR_I wr %r19, 0x0960, %ccr
12599memptr_1_136:
12600 set 0x60340000, %r31
12601 .word 0x8584e060 ! 183: WRCCR_I wr %r19, 0x0060, %ccr
12602 .word 0xe677e140 ! 184: STX_I stx %r19, [%r31 + 0x0140]
12603 .word 0x89800011 ! 185: WRTICK_R wr %r0, %r17, %tick
12604fpinit_1_138:
12605 nop
12606 setx fp_data_quads, %r19, %r20
12607 ldd [%r20], %f0
12608 ldd [%r20+8], %f4
12609 ld [%r20+16], %fsr
12610 ld [%r20+24], %r19
12611 wr %r19, %g0, %gsr
12612 .word 0x89b00484 ! 186: FCMPLE32 fcmple32 %d0, %d4, %r4
12613 .word 0xc1bfe1c0 ! 187: STDFA_I stda %f0, [0x01c0, %r31]
12614fpinit_1_140:
12615 nop
12616 setx fp_data_quads, %r19, %r20
12617 ldd [%r20], %f0
12618 ldd [%r20+8], %f4
12619 ld [%r20+16], %fsr
12620 ld [%r20+24], %r19
12621 wr %r19, %g0, %gsr
12622 .word 0x89a009c4 ! 188: FDIVd fdivd %f0, %f4, %f4
12623ceter_1_141:
12624 nop
12625 ta T_CHANGE_HPRIV
12626 mov 7, %r17
12627 sllx %r17, 60, %r17
12628 mov 0x18, %r16
12629 stxa %r17, [%r16]0x4c
12630 ta T_CHANGE_NONHPRIV
12631 .word 0x93410000 ! 189: RDTICK rd %tick, %r9
12632 .word 0xd277c000 ! 190: STX_R stx %r9, [%r31 + %r0]
12633 .word 0x8d802000 ! 191: WRFPRS_I wr %r0, 0x0000, %fprs
12634 nop
12635 ta T_CHANGE_HPRIV ! macro
12636donret_1_142:
12637 rd %pc, %r12
12638 add %r12, (donretarg_1_142-donret_1_142+4), %r12
12639 add %r12, 0x4, %r11 ! seq tnpc
12640 wrpr %g0, 0x2, %tl
12641 wrpr %g0, %r12, %tpc
12642 wrpr %g0, %r11, %tnpc
12643 set (0x00a33600 | (28 << 24)), %r13
12644 and %r12, 0xfff, %r14
12645 sllx %r14, 30, %r14
12646 or %r13, %r14, %r20
12647 wrpr %r20, %g0, %tstate
12648 wrhpr %g0, 0xd85, %htstate
12649 ta T_CHANGE_NONPRIV ! rand=0 (1)
12650 retry
12651donretarg_1_142:
12652 .word 0xd2ffe1e8 ! 192: SWAPA_I swapa %r9, [%r31 + 0x01e8] %asi
12653 .word 0x87998010 ! 193: WRHPR_HINTP_R wrhpr %r6, %r16, %hintp
12654splash_cmpr_1_143:
12655 mov 0, %r18
12656 sllx %r18, 63, %r18
12657 rd %tick, %r17
12658 add %r17, 0x60, %r17
12659 or %r17, %r18, %r17
12660 ta T_CHANGE_HPRIV
12661 wrhpr %r17, %g0, %hsys_tick_cmpr
12662 .word 0xb3800011 ! 194: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
12663 nop
12664 ta T_CHANGE_HPRIV
12665 mov 0x1+1, %r10
12666 set sync_thr_counter5, %r23
12667#ifndef SPC
12668 ldxa [%g0]0x63, %o1
12669 and %o1, 0x38, %o1
12670 add %o1, %r23, %r23
12671 sllx %o1, 5, %o3 !(CID*256)
12672#endif
12673 cas [%r23],%g0,%r10 !lock
12674 brnz %r10, cwq_1_144
12675 rd %asi, %r12
12676 wr %g0, 0x40, %asi
12677 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
12678 and %l1, 0x3, %l1 ! Check if busy/enabled ..
12679 cmp %l1, 1
12680 bne cwq_1_144
12681 set CWQ_BASE, %l6
12682#ifndef SPC
12683 add %l6, %o3, %l6
12684#endif
12685 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
12686 best_set_reg(0x206100d0, %l1, %l2) !# Control Word
12687 sllx %l2, 32, %l2
12688 stx %l2, [%l6 + 0x0]
12689 membar #Sync
12690 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
12691 sub %l2, 0x40, %l2
12692 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
12693 wr %r12, %g0, %asi
12694 st %g0, [%r23]
12695cwq_1_144:
12696 ta T_CHANGE_NONHPRIV
12697 .word 0xa9414000 ! 195: RDPC rd %pc, %r20
12698br_badelay2_1_145:
12699 .word 0x34800001 ! 1: BG bg,a <label_0x1>
12700 pdist %f20, %f4, %f20
12701 .word 0x91b20309 ! 196: ALIGNADDRESS alignaddr %r8, %r9, %r8
12702splash_tba_1_146:
12703 nop
12704 ta T_CHANGE_PRIV
12705 setx 0x0000000000380000, %r11, %r12
12706 .word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
12707 nop
12708 mov 0x80, %g3
12709 stxa %g3, [%g3] 0x57
12710 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
12711 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate
12712 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate
12713 .word 0xd05fc000 ! 198: LDX_R ldx [%r31 + %r0], %r8
12714 .word 0x81460000 ! 199: RD_STICK_REG stbar
12715 .word 0xd01fe1c8 ! 200: LDD_I ldd [%r31 + 0x01c8], %r8
12716 nop
12717 ta T_CHANGE_HPRIV
12718 mov 0x1+1, %r10
12719 set sync_thr_counter5, %r23
12720#ifndef SPC
12721 ldxa [%g0]0x63, %o1
12722 and %o1, 0x38, %o1
12723 add %o1, %r23, %r23
12724 sllx %o1, 5, %o3 !(CID*256)
12725#endif
12726 cas [%r23],%g0,%r10 !lock
12727 brnz %r10, cwq_1_147
12728 rd %asi, %r12
12729 wr %g0, 0x40, %asi
12730 ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
12731 and %l1, 0x3, %l1 ! Check if busy/enabled ..
12732 cmp %l1, 1
12733 bne cwq_1_147
12734 set CWQ_BASE, %l6
12735#ifndef SPC
12736 add %l6, %o3, %l6
12737#endif
12738 stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
12739 best_set_reg(0x20610030, %l1, %l2) !# Control Word
12740 sllx %l2, 32, %l2
12741 stx %l2, [%l6 + 0x0]
12742 membar #Sync
12743 ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
12744 sub %l2, 0x40, %l2
12745 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
12746 wr %r12, %g0, %asi
12747 st %g0, [%r23]
12748cwq_1_147:
12749 ta T_CHANGE_NONHPRIV
12750 .word 0x93414000 ! 201: RDPC rd %pc, %r9
12751 nop
12752 nop
12753 ta T_CHANGE_PRIV
12754 wrpr %g0, %g0, %gl
12755 nop
12756 nop
12757
12758join_lbl_0_0:
12759SECTION .MAIN
12760.text
12761diag_finish:
12762 nop
12763 nop
12764 nop
12765 ta T_CHANGE_HPRIV
12766 best_set_reg(HV_TRAP_BASE_PA, %r1, %r2)
12767 wrhpr %g2, %g0, %htba
12768 ta T_GOOD_TRAP
12769 nop
12770 nop
12771 nop
12772.data
12773 .xword 0x0
12774 ! fp data rs1, rs2, fsr, gsr quads ..
12775.global fp_data_quads
12776fp_data_quads:
12777 .xword 0x0044000000000000
12778 .xword 0x4028000000000000
12779 .xword 0x0fc0400400000000
12780 .xword 0x0000000000000000
12781 .xword 0x0041000000000000
12782 .xword 0x4022000000000000
12783 .xword 0x0600800000000000
12784 .xword 0x0000000000000000
12785 .xword 0x0220000000000000
12786 .xword 0x4140000000000000
12787 .xword 0x4fc0400400000000
12788 .xword 0x0000000000000000
12789 .xword 0x4090000000000000
12790 .xword 0x0090000000000000
12791 .xword 0x0f80400800000000
12792 .xword 0x0a00000000000000
12793.align 128
12794.global user_data_start
12795.data
12796user_data_start:
12797
12798 .xword 0x0af1724c46ca53d4
12799 .xword 0x7844e5c7d62fd766
12800 .xword 0xdac0281b78099bd4
12801 .xword 0x2fd2327d95d4127f
12802 .xword 0x7f9707458ed02e3f
12803 .xword 0x2e16234e27c325fd
12804 .xword 0xe403b3669fc69ae9
12805 .xword 0x40a0dce85af1634f
12806 .xword 0xc87839ab0bf13394
12807 .xword 0x96fee66d66c10122
12808 .xword 0xc470186f2e4b1f70
12809 .xword 0x69d76aa4bb339712
12810 .xword 0x897e35ba9dbc14a4
12811 .xword 0xc8cf333ccac7c69d
12812 .xword 0xa29ffb0591403ad2
12813 .xword 0x8831ec4c5698d3c7
12814 .xword 0x23d7d08bb80d3a63
12815 .xword 0x9bdcf5511324ce0e
12816 .xword 0x4f9277edd2dbdccf
12817 .xword 0x6064ee8b9a904433
12818 .xword 0xef44462c755b1457
12819 .xword 0xf7a2347f596b33fe
12820 .xword 0x1fca39cbd2a9a3b4
12821 .xword 0xd86b2fc9c058b99d
12822 .xword 0xb67704fbe905da81
12823 .xword 0x8ccd2ab1ddaa27b6
12824 .xword 0x3116bdbcc6a467de
12825 .xword 0xd741163eaece4083
12826 .xword 0x88a80f140ea2c55c
12827 .xword 0xaea6bc663b5056af
12828 .xword 0xe642740c2e4eeaa5
12829 .xword 0xe716cfff457b565a
12830 .xword 0x8827e42fbd82bd90
12831 .xword 0x97d17b3bbfc79016
12832 .xword 0xad9b6192b9d7e210
12833 .xword 0xd8589ebd45d5edf2
12834 .xword 0x0e77946dcbd3c935
12835 .xword 0xf0af16a6acc0dec1
12836 .xword 0xd57350e1d5445962
12837 .xword 0x93ff4f4264fa841b
12838 .xword 0xb9ab87025abba096
12839 .xword 0x16d4bb6c13a46708
12840 .xword 0xf404513c6cb0551a
12841 .xword 0xcd9861459e906c09
12842 .xword 0xff6c118d63cda3b2
12843 .xword 0x33542527d5d8da87
12844 .xword 0x647684cc5034d40f
12845 .xword 0xecab1a23d3a19355
12846 .xword 0xb01b0b4663f1fa60
12847 .xword 0xb3ec20c115ad9992
12848 .xword 0x7d45a74dd8481f30
12849 .xword 0x5a64545eec1b137a
12850 .xword 0x2ff07ca79152ce9b
12851 .xword 0xd1e0c598c0c0d6b4
12852 .xword 0x560c2ace1a1a136c
12853 .xword 0xb9052270561885b4
12854 .xword 0x95e9177fc11d6812
12855 .xword 0x56a7bcd6323634fb
12856 .xword 0x117683477a0e2012
12857 .xword 0xbcf4bc3af8ef3216
12858 .xword 0x8bb9750431d43bf7
12859 .xword 0x70caefee95a27645
12860 .xword 0x2c35c1619b0b9c28
12861 .xword 0xc494e975aa347d46
12862 .xword 0x45673f398e8e5bb6
12863 .xword 0x4ec80cc384096303
12864 .xword 0x3617b15919926015
12865 .xword 0xf63ad8f6ac1a8d1d
12866 .xword 0x050f4e9d2b812801
12867 .xword 0xe69470986bdaa11b
12868 .xword 0xaff1250cbfa618b3
12869 .xword 0x9f1d4345a776fb72
12870 .xword 0x9310ea74bcc3c354
12871 .xword 0x175a614fab9e41b3
12872 .xword 0xf60bcadd216fc552
12873 .xword 0x854569858824f115
12874 .xword 0x8d4c99a5c993ecc1
12875 .xword 0xf177d96c09d02e1d
12876 .xword 0x7d8f639177fcda00
12877 .xword 0xcd1f52120c7b4616
12878 .xword 0x30b3857e80784b5e
12879 .xword 0x9ebcbcefc0eacb2b
12880 .xword 0x7ac774cf2d6edb9d
12881 .xword 0x173118199c39ff3e
12882 .xword 0x2b3147f57da6e51a
12883 .xword 0xe01e0ebdd0b36d0a
12884 .xword 0xe533908e7b01eb58
12885 .xword 0x54ad3d495effa0c7
12886 .xword 0x73c5148262d6a62c
12887 .xword 0x3a7db5db36241871
12888 .xword 0xda5170537e242598
12889 .xword 0x69790c7cb9a53d9d
12890 .xword 0x9e5c8ca93a9d58ec
12891 .xword 0xb1074dfba8a05193
12892 .xword 0x4d1bc5d35961bb11
12893 .xword 0x217d923220bf990f
12894 .xword 0x8d979a3c85a7517b
12895 .xword 0xdf80d051d29fcfab
12896 .xword 0x4cf9b027b7fe5777
12897 .xword 0x43c14985c8bd18fa
12898 .xword 0x0426940d357be6b0
12899 .xword 0xd1fd2064598d290b
12900 .xword 0xb990eab305333122
12901 .xword 0x29da1ce06c3ac58a
12902 .xword 0x5c7bc2cf6e1c6f59
12903 .xword 0xe0931b664f879030
12904 .xword 0x508c90c28b8552a4
12905 .xword 0xe74ed1656ff0751f
12906 .xword 0x5c186179ed4d8420
12907 .xword 0xeac11e92a0fad02e
12908 .xword 0x33b27b121803bf01
12909 .xword 0x22a50507d409e794
12910 .xword 0x6a1a2f14270acc12
12911 .xword 0xd23d467a82daa03c
12912 .xword 0x7470e53871dabe45
12913 .xword 0x735a36d745bd3047
12914 .xword 0x85b85dff7b086e6d
12915 .xword 0x3af893e900cbe8c8
12916 .xword 0xf61815c1f0606feb
12917 .xword 0x65c6e2dd305d1396
12918 .xword 0x782ceebd0eb50db4
12919 .xword 0x9012f4282e379e9c
12920 .xword 0x20a9fe04f871a7cd
12921 .xword 0xc9564ccc91025a7f
12922 .xword 0x015aa33b8e2c7248
12923 .xword 0x0e5ec667feffb674
12924 .xword 0x3e8a350cc5873022
12925 .xword 0x1940f05b801be30e
12926 .xword 0x747a6f238e9cd058
12927 .xword 0x6572129d56cf6215
12928 .xword 0xf989860b6d5ae83b
12929 .xword 0x4d16c7ff344ee0d6
12930 .xword 0xe29728e89f77d645
12931 .xword 0x31e6c54511e30a27
12932 .xword 0x930a46a4d67aa998
12933 .xword 0x35bf55bc3df2fdaf
12934 .xword 0xc70be9130277bf30
12935 .xword 0x14c2c8cd0a33a75a
12936 .xword 0x0d8f9ca01f882716
12937 .xword 0x0267642f41dd525c
12938 .xword 0x8771b8af132f2c9a
12939 .xword 0x7b1aff51775c59ce
12940 .xword 0x7c784a76d0e284aa
12941 .xword 0x21ae224dad900e27
12942 .xword 0xb52f2e8e2b8fb37c
12943 .xword 0xa50e430ec39d0d7e
12944 .xword 0x8aba5e16be175434
12945 .xword 0xf2f29fdde5400d84
12946 .xword 0x45d6077119079324
12947 .xword 0x132375da005851be
12948 .xword 0xb096d6cda760e3fc
12949 .xword 0xee6196f9b2770ade
12950 .xword 0x83e643b99e7a6e1d
12951 .xword 0x04ec00293d0291e4
12952 .xword 0x13fa4a6ec816db29
12953 .xword 0x6a92cbd691b6e1ea
12954 .xword 0x4bf2d7dbdecff465
12955 .xword 0x2c1a90b8b4fc03b3
12956 .xword 0x68771e0a011a7a9d
12957 .xword 0x9f0756991ce82cfe
12958 .xword 0xc21f014ffb1bcb8d
12959 .xword 0x5188f9ffb9a17eb9
12960 .xword 0xdcd01298d05d0507
12961 .xword 0xee72e46dd7084f93
12962 .xword 0xc696ca21be01c189
12963 .xword 0x29dc6b5611f12693
12964 .xword 0xdabcca1fbe133b04
12965 .xword 0xaf8f72081f121a1b
12966 .xword 0x7febd5dea2e3bba0
12967 .xword 0xa0255127f9810dec
12968 .xword 0xf12281288f86ba28
12969 .xword 0x5604c0619a940a0d
12970 .xword 0x723a46820695bb84
12971 .xword 0xe4f19b9de0147072
12972 .xword 0x0c63bb80c550087a
12973 .xword 0xb35e41decb046a7f
12974 .xword 0x35b5ff570776444f
12975 .xword 0x27f1337f1bff0b3b
12976 .xword 0x74a3625b8bf5dba9
12977 .xword 0x1c02406bcca5fe69
12978 .xword 0xce8670e041f01fb0
12979 .xword 0x5a9de66a9c48e8e0
12980 .xword 0xae2ed5dc3b7ab9c2
12981 .xword 0x5d107f25dfe95e98
12982 .xword 0x0ba386f62b293f2b
12983 .xword 0x405b8c58e9d911d5
12984 .xword 0xdbd68bf67befbda4
12985 .xword 0x6db41b073498939f
12986 .xword 0xce4e37561f142a46
12987 .xword 0x09b35de4923c4d05
12988 .xword 0x8ffbf8085eb9f9a8
12989 .xword 0x87a503371044949e
12990 .xword 0xc45cc4defd3559c8
12991 .xword 0x3352b46b077c7242
12992 .xword 0x1a1dfe9ed944d185
12993 .xword 0x418ad3f6252a1576
12994 .xword 0xcae8219b9914812c
12995 .xword 0x9fb8be7adc726f04
12996 .xword 0x9916d735016c8526
12997 .xword 0x5dc8037b8b509656
12998 .xword 0x3950bb3b0887b65f
12999 .xword 0x24a547275b1c23a3
13000 .xword 0x0bc302b07c1877ab
13001 .xword 0x2cb78b9ef2a19776
13002 .xword 0x5be4f28fb1322a78
13003 .xword 0xde5ab8764cb3c2ab
13004 .xword 0x611e7f3b14085c4e
13005 .xword 0x85fef73e1cae9adc
13006 .xword 0x58d9cba648648172
13007 .xword 0xfa65d8f003c4fadb
13008 .xword 0x6cbce50b1344d08a
13009 .xword 0x77cf616cbf851979
13010 .xword 0x657de0f77a811197
13011 .xword 0xfbd6f92cb8be3393
13012 .xword 0xe9c5000975e2cc48
13013 .xword 0xe046494a921108ff
13014 .xword 0x59402bfc4c4860a7
13015 .xword 0x3bdd376e92d7378a
13016 .xword 0x4d3f112c9abf0668
13017 .xword 0x00d68c1979f6439d
13018 .xword 0x5539e5f4824661a4
13019 .xword 0x54d00ef2042b9009
13020 .xword 0xcf5ab2efabe1f982
13021 .xword 0x6cbba1c391cc2f38
13022 .xword 0xca0135d5030b73b9
13023 .xword 0xfb06ce83d9ee5ecb
13024 .xword 0x323cdb9ebc5451b3
13025 .xword 0xf5422f981651b904
13026 .xword 0xe9d2427e6dbd1760
13027 .xword 0xfd0e5a35d579b130
13028 .xword 0x462f76a8f26b4a1a
13029 .xword 0xd3d8f5740b843299
13030 .xword 0x51dac289875d5c33
13031 .xword 0x7f0bd969aabe1d3a
13032 .xword 0x4792a88db3cd49bd
13033 .xword 0x65114b18d5b6398f
13034 .xword 0x0a507cec54f73948
13035 .xword 0xd0d0a151ae433415
13036 .xword 0xd218edc4ff9b396b
13037 .xword 0xedbb76f411e9a4a7
13038 .xword 0x84cb6f0ab483ba21
13039 .xword 0x2ed1af68801e7413
13040 .xword 0x96c43b0a43e66fad
13041 .xword 0x27a3ebb424510f65
13042 .xword 0xb490139cb461b609
13043 .xword 0xe76af9a7f8959d43
13044 .xword 0x93f572a49b9b8182
13045 .xword 0xe1cde640ed889e45
13046 .xword 0xe26c55a6a45bd2cc
13047 .xword 0x0af6237a665e68e1
13048 .xword 0x18c8c0cedbad2830
13049 .xword 0x5ce8f65b4351980a
13050 .xword 0x3c353236e57cebf6
13051 .xword 0xc60d17ff942a2447
13052 .xword 0xf697a47039a3148e
13053 .xword 0x587845c09ce84901
13054
13055SECTION .HTRAPS
13056.text
13057.global restore_range_regs
13058restore_range_regs:
13059 wr %g0, ASI_MMU_REAL_RANGE, %asi
13060 mov 1, %g1
13061 sllx %g1, 63, %g1
13062 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %g2
13063 or %g2 ,%g1, %g2
13064 stxa %g2, [ASI_MMU_REAL_RANGE_0] %asi
13065 ldxa [ASI_MMU_REAL_RANGE_1] %asi, %g2
13066 or %g2 ,%g1, %g2
13067 stxa %g2, [ASI_MMU_REAL_RANGE_1] %asi
13068 ldxa [ASI_MMU_REAL_RANGE_2] %asi, %g2
13069 or %g2 ,%g1, %g2
13070 stxa %g2, [ASI_MMU_REAL_RANGE_2] %asi
13071 ldxa [ASI_MMU_REAL_RANGE_3] %asi, %g2
13072 or %g2 ,%g1, %g2
13073 stxa %g2, [ASI_MMU_REAL_RANGE_3] %asi
13074 retry
13075
13076.global wdog_2_ext
13077# 10 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_extensions.s"
13078SECTION .HTRAPS
13079.global wdog_2_ext
13080.global retry_with_base_tba
13081.global resolve_bad_tte
13082
13083.text
13084resolve_bad_tte:
13085 !if pc[13:5]==0, then assume not a relocated handler
13086 rdpr %tpc, %r4
13087 andn %r4, 0xf, %r4
13088 sllx %r4, 49, %r5
13089 brnz,a %r5, retry_with_base_tba
13090 !assume %r27 is where we came from ..
13091 fdivd %f0, %f4, %f12
13092 jmpl %r27+8, %r0
13093 fdivs %f0, %f4, %f12
13094retry_with_base_tba:
13095 best_set_reg(TRAP_BASE_VA, %r3, %r5)
13096 cmp %r4, %r5
13097 bz htrap_5_ext_done
13098 set 0x7fff, %r3
13099 and %r4, %r3, %r4
13100 or %r5, %r4, %r4
13101 wrpr %r4, %tpc
13102 rdpr %tnpc, %r4
13103 and %r4, %r3, %r4
13104 or %r5, %r4, %r4
13105 wrpr %r4, %tnpc
13106 retry
13107
13108htrap_5_ext:
13109 rd %pc, %l2
13110 inc %l3
13111 add %l2, htrap_5_ext_done-htrap_5_ext, %l2
13112 rdpr %tl, %l3
13113 rdpr %tstate, %l4
13114 rdhpr %htstate, %l5
13115 or %l5, 0x4, %l5
13116 inc %l3
13117 wrpr %l3, %tl
13118 wrpr %l2, %tpc
13119 add %l2, 4, %l2
13120 wrpr %l2, %tnpc
13121 wrpr %l4, %tstate
13122 wrhpr %l5, %htstate
13123 retry
13124htrap_5_ext_done:
13125 done
13126
13127wdog_2_ext:
13128 mov 0x1f, %l1
13129 stxa %l1, [%g0] ASI_LSU_CTL_REG
13130 ! If TT != 2, then goto trap handler
13131 rdpr %tt, %l1
13132 cmp %l1, 0x2
13133 bne wdog_2_goto_handler
13134 nop
13135 ! else done
13136 done
13137wdog_2_goto_handler:
13138 rdhpr %htstate, %l3
13139 and %l3, 0x4, %l3 ! If previously in hpriv mode, go to hpriv
13140 brnz,a %l3, wdog_2_goto_handler_1
13141 rdhpr %htba, %l3
13142 srlx %l1, 7, %l3 ! Send priv sw traps to priv mode ..
13143 cmp %l3, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap ..
13144 be,a wdog_2_goto_handler_1
13145 rdpr %tba, %l3
13146 rdhpr %htba, %l3
13147wdog_2_goto_handler_1:
13148 sllx %l1, 5, %l1
13149 add %l1, %l3, %l3
13150 jmp %l3
13151 nop
13152# 86 "/import/n2-aus-localdir1/somePerson/n2cdmspp/verif/diag/assembly/include/tlu_custom_trap_extensions.s"
13153! Red mode other reset handler
13154! Get htba, and tt and make trap address
13155! Jump to trap handler ..
13156
13157SECTION .RED_SEC
13158.global red_other_ext
13159.global wdog_red_ext
13160.text
13161red_other_ext:
13162 ! IF TL=6, shift stack by one ..
13163 rdpr %tl, %l1
13164 cmp %l1, 6
13165 be start_tsa_shift
13166 nop
13167
13168continue_red_other:
13169 mov 0x1f, %l1
13170 stxa %l1, [%g0] ASI_LSU_CTL_REG
13171
13172 rdpr %tt, %l1
13173
13174 rdhpr %htstate, %l2
13175 and %l2, 0x4, %l2 ! If previously in hpriv mode, go to hpriv
13176 brnz,a %l2, red_goto_handler
13177 rdhpr %htba, %l2
13178 srlx %l1, 7, %l2 ! Send priv sw traps to priv mode ..
13179 cmp %l2, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap ..
13180 be,a red_goto_handler
13181 rdpr %tba, %l2
13182 rdhpr %htba, %l2
13183red_goto_handler:
13184
13185 sllx %l1, 5, %l1
13186 add %l1, %l2, %l2
13187 rdhpr %hpstate, %l1
13188 jmp %l2
13189 wrhpr %l1, 0x20, %hpstate
13190 nop
13191
13192wdog_red_ext:
13193 ! Shift stack down by 1 ...
13194 rdpr %tl, %l1
13195 cmp %l1, 6
13196 bl wdog_end
13197start_tsa_shift:
13198 mov 0x2, %l2
13199
13200tsa_shift:
13201 wrpr %l2, %tl
13202 rdpr %tt, %l3
13203 rdpr %tpc, %l4
13204 rdpr %tnpc, %l5
13205 rdpr %tstate, %l6
13206 rdhpr %htstate, %l7
13207 dec %l2
13208 wrpr %l2, %tl
13209 wrpr %l3, %tt
13210 wrpr %l4, %tpc
13211 wrpr %l5, %tnpc
13212 wrpr %l6, %tstate
13213 wrhpr %l7, %htstate
13214 add %l2, 2, %l2
13215 cmp %l2, %l1
13216 ble tsa_shift
13217 nop
13218tsa_shift_done:
13219 dec %l1
13220 wrpr %l1, %tl
13221
13222wdog_end:
13223 ! If TT != 2, then goto trap handler
13224 rdpr %tt, %l1
13225
13226 cmp %l1, 0x2
13227 bne continue_red_other
13228 nop
13229 ! else done
13230 mov 0x1f, %l1
13231 stxa %l1, [%g0] ASI_LSU_CTL_REG
13232 done
13233# 973 "diag.j"
13234
13235SECTION .CWQ_DATA DATA_VA =0x4000
13236attr_data {
13237 Name = .CWQ_DATA
13238 hypervisor
13239}
13240
13241.data
13242.align 16
13243.global msg
13244msg:
13245.xword 0xad32fa52374cc6ba
13246.xword 0x4cbf52280549003a
13247
13248.align 16
13249.global results
13250results:
13251.xword 0xDEADBEEFDEADBEEF
13252.xword 0xDEADBEEFDEADBEEF
13253!# CWQ data area
13254!# CWQ_BASE for core N is CWQ_BASE+(N*256)
13255!# CWQ_LAST for core N is CWQ_LAST+(N*256)
13256.align 64
13257.global CWQ_BASE
13258CWQ_BASE:
13259.xword 0xAAAAAAAAAAAAAAA
13260.xword 0xAAAAAAAAAAAAAAA
13261.xword 0xAAAAAAAAAAAAAAA
13262.xword 0xAAAAAAAAAAAAAAA
13263.xword 0xAAAAAAAAAAAAAAA
13264.xword 0xAAAAAAAAAAAAAAA
13265.xword 0xAAAAAAAAAAAAAAA
13266.xword 0xAAAAAAAAAAAAAAA
13267.xword 0xAAAAAAAAAAAAAAA
13268.xword 0xAAAAAAAAAAAAAAA
13269.xword 0xAAAAAAAAAAAAAAA
13270.xword 0xAAAAAAAAAAAAAAA
13271.xword 0xAAAAAAAAAAAAAAA
13272.xword 0xAAAAAAAAAAAAAAA
13273.xword 0xAAAAAAAAAAAAAAA
13274.xword 0xAAAAAAAAAAAAAAA
13275.xword 0xAAAAAAAAAAAAAAA
13276.xword 0xAAAAAAAAAAAAAAA
13277.xword 0xAAAAAAAAAAAAAAA
13278.xword 0xAAAAAAAAAAAAAAA
13279.xword 0xAAAAAAAAAAAAAAA
13280.xword 0xAAAAAAAAAAAAAAA
13281.xword 0xAAAAAAAAAAAAAAA
13282.xword 0xAAAAAAAAAAAAAAA
13283.global CWQ_LAST
13284.align 64
13285CWQ_LAST:
13286.word 0x0
13287.align 64
13288cwq_base1:
13289.xword 0xAAAAAAAAAAAAAAA
13290.xword 0xAAAAAAAAAAAAAAA
13291.xword 0xAAAAAAAAAAAAAAA
13292.xword 0xAAAAAAAAAAAAAAA
13293.xword 0xAAAAAAAAAAAAAAA
13294.xword 0xAAAAAAAAAAAAAAA
13295.xword 0xAAAAAAAAAAAAAAA
13296.xword 0xAAAAAAAAAAAAAAA
13297.xword 0xAAAAAAAAAAAAAAA
13298.xword 0xAAAAAAAAAAAAAAA
13299.xword 0xAAAAAAAAAAAAAAA
13300.xword 0xAAAAAAAAAAAAAAA
13301.xword 0xAAAAAAAAAAAAAAA
13302.xword 0xAAAAAAAAAAAAAAA
13303.xword 0xAAAAAAAAAAAAAAA
13304.xword 0xAAAAAAAAAAAAAAA
13305.xword 0xAAAAAAAAAAAAAAA
13306.xword 0xAAAAAAAAAAAAAAA
13307.xword 0xAAAAAAAAAAAAAAA
13308.xword 0xAAAAAAAAAAAAAAA
13309.xword 0xAAAAAAAAAAAAAAA
13310.xword 0xAAAAAAAAAAAAAAA
13311.xword 0xAAAAAAAAAAAAAAA
13312.xword 0xAAAAAAAAAAAAAAA
13313.align 64
13314cwq_last1:
13315.word 0x0
13316.align 64
13317.xword 0xAAAAAAAAAAAAAAA
13318.xword 0xAAAAAAAAAAAAAAA
13319.xword 0xAAAAAAAAAAAAAAA
13320.xword 0xAAAAAAAAAAAAAAA
13321.xword 0xAAAAAAAAAAAAAAA
13322.xword 0xAAAAAAAAAAAAAAA
13323.xword 0xAAAAAAAAAAAAAAA
13324.xword 0xAAAAAAAAAAAAAAA
13325.xword 0xAAAAAAAAAAAAAAA
13326.xword 0xAAAAAAAAAAAAAAA
13327.xword 0xAAAAAAAAAAAAAAA
13328.xword 0xAAAAAAAAAAAAAAA
13329.xword 0xAAAAAAAAAAAAAAA
13330.xword 0xAAAAAAAAAAAAAAA
13331.xword 0xAAAAAAAAAAAAAAA
13332.xword 0xAAAAAAAAAAAAAAA
13333.xword 0xAAAAAAAAAAAAAAA
13334.xword 0xAAAAAAAAAAAAAAA
13335.xword 0xAAAAAAAAAAAAAAA
13336.xword 0xAAAAAAAAAAAAAAA
13337.xword 0xAAAAAAAAAAAAAAA
13338.xword 0xAAAAAAAAAAAAAAA
13339.xword 0xAAAAAAAAAAAAAAA
13340.xword 0xAAAAAAAAAAAAAAA
13341.align 64
13342.word 0x0
13343.align 64
13344.xword 0xAAAAAAAAAAAAAAA
13345.xword 0xAAAAAAAAAAAAAAA
13346.xword 0xAAAAAAAAAAAAAAA
13347.xword 0xAAAAAAAAAAAAAAA
13348.xword 0xAAAAAAAAAAAAAAA
13349.xword 0xAAAAAAAAAAAAAAA
13350.xword 0xAAAAAAAAAAAAAAA
13351.xword 0xAAAAAAAAAAAAAAA
13352.xword 0xAAAAAAAAAAAAAAA
13353.xword 0xAAAAAAAAAAAAAAA
13354.xword 0xAAAAAAAAAAAAAAA
13355.xword 0xAAAAAAAAAAAAAAA
13356.xword 0xAAAAAAAAAAAAAAA
13357.xword 0xAAAAAAAAAAAAAAA
13358.xword 0xAAAAAAAAAAAAAAA
13359.xword 0xAAAAAAAAAAAAAAA
13360.xword 0xAAAAAAAAAAAAAAA
13361.xword 0xAAAAAAAAAAAAAAA
13362.xword 0xAAAAAAAAAAAAAAA
13363.xword 0xAAAAAAAAAAAAAAA
13364.xword 0xAAAAAAAAAAAAAAA
13365.xword 0xAAAAAAAAAAAAAAA
13366.xword 0xAAAAAAAAAAAAAAA
13367.xword 0xAAAAAAAAAAAAAAA
13368.align 64
13369.word 0x0
13370.align 64
13371.xword 0xAAAAAAAAAAAAAAA
13372.xword 0xAAAAAAAAAAAAAAA
13373.xword 0xAAAAAAAAAAAAAAA
13374.xword 0xAAAAAAAAAAAAAAA
13375.xword 0xAAAAAAAAAAAAAAA
13376.xword 0xAAAAAAAAAAAAAAA
13377.xword 0xAAAAAAAAAAAAAAA
13378.xword 0xAAAAAAAAAAAAAAA
13379.xword 0xAAAAAAAAAAAAAAA
13380.xword 0xAAAAAAAAAAAAAAA
13381.xword 0xAAAAAAAAAAAAAAA
13382.xword 0xAAAAAAAAAAAAAAA
13383.xword 0xAAAAAAAAAAAAAAA
13384.xword 0xAAAAAAAAAAAAAAA
13385.xword 0xAAAAAAAAAAAAAAA
13386.xword 0xAAAAAAAAAAAAAAA
13387.xword 0xAAAAAAAAAAAAAAA
13388.xword 0xAAAAAAAAAAAAAAA
13389.xword 0xAAAAAAAAAAAAAAA
13390.xword 0xAAAAAAAAAAAAAAA
13391.xword 0xAAAAAAAAAAAAAAA
13392.xword 0xAAAAAAAAAAAAAAA
13393.xword 0xAAAAAAAAAAAAAAA
13394.xword 0xAAAAAAAAAAAAAAA
13395.align 64
13396.word 0x0
13397.align 64
13398.xword 0xAAAAAAAAAAAAAAA
13399.xword 0xAAAAAAAAAAAAAAA
13400.xword 0xAAAAAAAAAAAAAAA
13401.xword 0xAAAAAAAAAAAAAAA
13402.xword 0xAAAAAAAAAAAAAAA
13403.xword 0xAAAAAAAAAAAAAAA
13404.xword 0xAAAAAAAAAAAAAAA
13405.xword 0xAAAAAAAAAAAAAAA
13406.xword 0xAAAAAAAAAAAAAAA
13407.xword 0xAAAAAAAAAAAAAAA
13408.xword 0xAAAAAAAAAAAAAAA
13409.xword 0xAAAAAAAAAAAAAAA
13410.xword 0xAAAAAAAAAAAAAAA
13411.xword 0xAAAAAAAAAAAAAAA
13412.xword 0xAAAAAAAAAAAAAAA
13413.xword 0xAAAAAAAAAAAAAAA
13414.xword 0xAAAAAAAAAAAAAAA
13415.xword 0xAAAAAAAAAAAAAAA
13416.xword 0xAAAAAAAAAAAAAAA
13417.xword 0xAAAAAAAAAAAAAAA
13418.xword 0xAAAAAAAAAAAAAAA
13419.xword 0xAAAAAAAAAAAAAAA
13420.xword 0xAAAAAAAAAAAAAAA
13421.xword 0xAAAAAAAAAAAAAAA
13422.align 64
13423.word 0x0
13424.align 64
13425.xword 0xAAAAAAAAAAAAAAA
13426.xword 0xAAAAAAAAAAAAAAA
13427.xword 0xAAAAAAAAAAAAAAA
13428.xword 0xAAAAAAAAAAAAAAA
13429.xword 0xAAAAAAAAAAAAAAA
13430.xword 0xAAAAAAAAAAAAAAA
13431.xword 0xAAAAAAAAAAAAAAA
13432.xword 0xAAAAAAAAAAAAAAA
13433.xword 0xAAAAAAAAAAAAAAA
13434.xword 0xAAAAAAAAAAAAAAA
13435.xword 0xAAAAAAAAAAAAAAA
13436.xword 0xAAAAAAAAAAAAAAA
13437.xword 0xAAAAAAAAAAAAAAA
13438.xword 0xAAAAAAAAAAAAAAA
13439.xword 0xAAAAAAAAAAAAAAA
13440.xword 0xAAAAAAAAAAAAAAA
13441.xword 0xAAAAAAAAAAAAAAA
13442.xword 0xAAAAAAAAAAAAAAA
13443.xword 0xAAAAAAAAAAAAAAA
13444.xword 0xAAAAAAAAAAAAAAA
13445.xword 0xAAAAAAAAAAAAAAA
13446.xword 0xAAAAAAAAAAAAAAA
13447.xword 0xAAAAAAAAAAAAAAA
13448.xword 0xAAAAAAAAAAAAAAA
13449.align 64
13450.word 0x0
13451.align 64
13452.xword 0xAAAAAAAAAAAAAAA
13453.xword 0xAAAAAAAAAAAAAAA
13454.xword 0xAAAAAAAAAAAAAAA
13455.xword 0xAAAAAAAAAAAAAAA
13456.xword 0xAAAAAAAAAAAAAAA
13457.xword 0xAAAAAAAAAAAAAAA
13458.xword 0xAAAAAAAAAAAAAAA
13459.xword 0xAAAAAAAAAAAAAAA
13460.xword 0xAAAAAAAAAAAAAAA
13461.xword 0xAAAAAAAAAAAAAAA
13462.xword 0xAAAAAAAAAAAAAAA
13463.xword 0xAAAAAAAAAAAAAAA
13464.xword 0xAAAAAAAAAAAAAAA
13465.xword 0xAAAAAAAAAAAAAAA
13466.xword 0xAAAAAAAAAAAAAAA
13467.xword 0xAAAAAAAAAAAAAAA
13468.xword 0xAAAAAAAAAAAAAAA
13469.xword 0xAAAAAAAAAAAAAAA
13470.xword 0xAAAAAAAAAAAAAAA
13471.xword 0xAAAAAAAAAAAAAAA
13472.xword 0xAAAAAAAAAAAAAAA
13473.xword 0xAAAAAAAAAAAAAAA
13474.xword 0xAAAAAAAAAAAAAAA
13475.xword 0xAAAAAAAAAAAAAAA
13476.align 64
13477.word 0x0
13478
13479
13480
13481SECTION .MyHTRAPS_0 TEXT_VA = 0x0000000000280000, DATA_VA = 0x00000000002c0000
13482attr_text {
13483 Name = .MyHTRAPS_0,
13484 RA = 0x0000000000280000,
13485 PA = ra2pa(0x0000000000280000,0),
13486 part_0_ctx_zero_tsb_config_3,
13487 part_0_ctx_nonzero_tsb_config_3,
13488 TTE_G = 1,
13489 TTE_Context = 0,
13490 TTE_V = 1,
13491 TTE_Size = PART0_Z_PAGE_SIZE_3,
13492 TTE_NFO = 0,
13493 TTE_IE = 0,
13494 TTE_Soft2 = 0,
13495 TTE_Diag = 0,
13496 TTE_Soft = 0,
13497 TTE_L = 0,
13498 TTE_CP = 0,
13499 TTE_CV = 1,
13500 TTE_E = 0,
13501 TTE_P = 1,
13502 TTE_W = 0,
13503 TTE_X = 0
13504}
13505
13506
13507attr_data {
13508 Name = .MyHTRAPS_0,
13509 RA = 0x00000000002c0000,
13510 PA = ra2pa(0x00000000002c0000,0),
13511 part_0_ctx_zero_tsb_config_3,
13512 part_0_ctx_nonzero_tsb_config_3,
13513 TTE_G = 1,
13514 TTE_Context = 0,
13515 TTE_V = 1,
13516 TTE_Size = PART0_Z_PAGE_SIZE_3,
13517 TTE_NFO = 0,
13518 TTE_IE = 0,
13519 TTE_Soft2 = 0,
13520 TTE_Diag = 0,
13521 TTE_Soft = 0,
13522 TTE_L = 0,
13523 TTE_CP = 0,
13524 TTE_CV = 1,
13525 TTE_E = 0,
13526 TTE_P = 1,
13527 TTE_W = 0
13528}
13529
13530.text
13531#include "htraps.s"
13532#include "tlu_htraps_ext.s"
13533
13534
13535
13536SECTION .MyHTRAPS_1 TEXT_VA = 0x00000000002a0000, DATA_VA = 0x00000000002e0000
13537attr_text {
13538 Name = .MyHTRAPS_1,
13539 RA = 0x00000000002a0000,
13540 PA = ra2pa(0x00000000002a0000,0),
13541 part_0_ctx_zero_tsb_config_3,
13542 part_0_ctx_nonzero_tsb_config_3,
13543 TTE_G = 1,
13544 TTE_Context = 0,
13545 TTE_V = 1,
13546 TTE_Size = PART0_Z_PAGE_SIZE_3,
13547 TTE_NFO = 0,
13548 TTE_IE = 0,
13549 TTE_Soft2 = 0,
13550 TTE_Diag = 0,
13551 TTE_Soft = 0,
13552 TTE_L = 0,
13553 TTE_CP = 1,
13554 TTE_CV = 1,
13555 TTE_E = 0,
13556 TTE_P = 1,
13557 TTE_W = 0,
13558 TTE_X = 0
13559}
13560
13561
13562attr_data {
13563 Name = .MyHTRAPS_1,
13564 RA = 0x00000000002e0000,
13565 PA = ra2pa(0x00000000002e0000,0),
13566 part_0_ctx_zero_tsb_config_3,
13567 part_0_ctx_nonzero_tsb_config_3,
13568 TTE_G = 1,
13569 TTE_Context = 0,
13570 TTE_V = 1,
13571 TTE_Size = PART0_Z_PAGE_SIZE_3,
13572 TTE_NFO = 0,
13573 TTE_IE = 0,
13574 TTE_Soft2 = 0,
13575 TTE_Diag = 0,
13576 TTE_Soft = 0,
13577 TTE_L = 0,
13578 TTE_CP = 1,
13579 TTE_CV = 0,
13580 TTE_E = 0,
13581 TTE_P = 1,
13582 TTE_W = 0
13583}
13584
13585.text
13586#include "htraps.s"
13587#include "tlu_htraps_ext.s"
13588
13589
13590
13591SECTION .MyHTRAPS_2 TEXT_VA = 0x0000000200280000, DATA_VA = 0x00000002002c0000
13592attr_text {
13593 Name = .MyHTRAPS_2,
13594 RA = 0x0000000200280000,
13595 PA = ra2pa(0x0000000200280000,0),
13596 part_0_ctx_zero_tsb_config_3,
13597 part_0_ctx_nonzero_tsb_config_3,
13598 TTE_G = 1,
13599 TTE_Context = 0,
13600 TTE_V = 1,
13601 TTE_Size = PART0_Z_PAGE_SIZE_3,
13602 TTE_NFO = 0,
13603 TTE_IE = 0,
13604 TTE_Soft2 = 0,
13605 TTE_Diag = 0,
13606 TTE_Soft = 0,
13607 TTE_L = 0,
13608 TTE_CP = 1,
13609 TTE_CV = 0,
13610 TTE_E = 0,
13611 TTE_P = 1,
13612 TTE_W = 0,
13613 TTE_X = 0
13614}
13615
13616
13617attr_data {
13618 Name = .MyHTRAPS_2,
13619 RA = 0x00000002002c0000,
13620 PA = ra2pa(0x00000002002c0000,0),
13621 part_0_ctx_zero_tsb_config_3,
13622 part_0_ctx_nonzero_tsb_config_3,
13623 TTE_G = 1,
13624 TTE_Context = 0,
13625 TTE_V = 1,
13626 TTE_Size = PART0_Z_PAGE_SIZE_3,
13627 TTE_NFO = 0,
13628 TTE_IE = 0,
13629 TTE_Soft2 = 0,
13630 TTE_Diag = 0,
13631 TTE_Soft = 0,
13632 TTE_L = 0,
13633 TTE_CP = 0,
13634 TTE_CV = 0,
13635 TTE_E = 0,
13636 TTE_P = 1,
13637 TTE_W = 0
13638}
13639
13640.text
13641#include "htraps.s"
13642#include "tlu_htraps_ext.s"
13643
13644
13645
13646SECTION .MyHTRAPS_3 TEXT_VA = 0x00000002002a0000, DATA_VA = 0x00000002002e0000
13647attr_text {
13648 Name = .MyHTRAPS_3,
13649 RA = 0x00000002002a0000,
13650 PA = ra2pa(0x00000002002a0000,0),
13651 part_0_ctx_zero_tsb_config_3,
13652 part_0_ctx_nonzero_tsb_config_3,
13653 TTE_G = 1,
13654 TTE_Context = 0,
13655 TTE_V = 1,
13656 TTE_Size = PART0_Z_PAGE_SIZE_3,
13657 TTE_NFO = 0,
13658 TTE_IE = 0,
13659 TTE_Soft2 = 0,
13660 TTE_Diag = 0,
13661 TTE_Soft = 0,
13662 TTE_L = 0,
13663 TTE_CP = 0,
13664 TTE_CV = 0,
13665 TTE_E = 0,
13666 TTE_P = 1,
13667 TTE_W = 0,
13668 TTE_X = 0
13669}
13670
13671
13672attr_data {
13673 Name = .MyHTRAPS_3,
13674 RA = 0x00000002002e0000,
13675 PA = ra2pa(0x00000002002e0000,0),
13676 part_0_ctx_zero_tsb_config_3,
13677 part_0_ctx_nonzero_tsb_config_3,
13678 TTE_G = 1,
13679 TTE_Context = 0,
13680 TTE_V = 1,
13681 TTE_Size = PART0_Z_PAGE_SIZE_3,
13682 TTE_NFO = 0,
13683 TTE_IE = 0,
13684 TTE_Soft2 = 0,
13685 TTE_Diag = 0,
13686 TTE_Soft = 0,
13687 TTE_L = 0,
13688 TTE_CP = 0,
13689 TTE_CV = 1,
13690 TTE_E = 0,
13691 TTE_P = 1,
13692 TTE_W = 0
13693}
13694
13695.text
13696#include "htraps.s"
13697#include "tlu_htraps_ext.s"
13698
13699
13700
13701
13702
13703SECTION .MyTRAPS_0 TEXT_VA = 0x0000000000380000, DATA_VA = 0x00000000003c0000
13704attr_text {
13705 Name = .MyTRAPS_0,
13706 RA = 0x0000000000380000,
13707 PA = ra2pa(0x0000000000380000,0),
13708 part_0_ctx_zero_tsb_config_3,
13709 part_0_ctx_nonzero_tsb_config_3,
13710 TTE_G = 1,
13711 TTE_Context = 0,
13712 TTE_V = 1,
13713 TTE_Size = PART0_Z_PAGE_SIZE_3,
13714 TTE_NFO = 0,
13715 TTE_IE = 0,
13716 TTE_Soft2 = 0,
13717 TTE_Diag = 0,
13718 TTE_Soft = 0,
13719 TTE_L = 0,
13720 TTE_CP = 1,
13721 TTE_CV = 0,
13722 TTE_E = 1,
13723 TTE_P = 0,
13724 TTE_W = 1,
13725 TTE_X = 1
13726}
13727
13728
13729attr_data {
13730 Name = .MyTRAPS_0,
13731 RA = 0x00000000003c0000,
13732 PA = ra2pa(0x00000000003c0000,0),
13733 part_0_ctx_zero_tsb_config_3,
13734 part_0_ctx_nonzero_tsb_config_3,
13735 TTE_G = 1,
13736 TTE_Context = 0,
13737 TTE_V = 1,
13738 TTE_Size = PART0_Z_PAGE_SIZE_3,
13739 TTE_NFO = 0,
13740 TTE_IE = 1,
13741 TTE_Soft2 = 0,
13742 TTE_Diag = 0,
13743 TTE_Soft = 0,
13744 TTE_L = 0,
13745 TTE_CP = 1,
13746 TTE_CV = 1,
13747 TTE_E = 0,
13748 TTE_P = 1,
13749 TTE_W = 1
13750}
13751
13752#include "traps.s"
13753
13754
13755
13756SECTION .MyTRAPS_1 TEXT_VA = 0x00000000003a0000, DATA_VA = 0x00000000003e0000
13757attr_text {
13758 Name = .MyTRAPS_1,
13759 RA = 0x00000000003a0000,
13760 PA = ra2pa(0x00000000003a0000,0),
13761 part_0_ctx_zero_tsb_config_3,
13762 part_0_ctx_nonzero_tsb_config_3,
13763 TTE_G = 1,
13764 TTE_Context = 0,
13765 TTE_V = 1,
13766 TTE_Size = PART0_Z_PAGE_SIZE_3,
13767 TTE_NFO = 0,
13768 TTE_IE = 0,
13769 TTE_Soft2 = 0,
13770 TTE_Diag = 0,
13771 TTE_Soft = 0,
13772 TTE_L = 0,
13773 TTE_CP = 1,
13774 TTE_CV = 1,
13775 TTE_E = 1,
13776 TTE_P = 0,
13777 TTE_W = 0,
13778 TTE_X = 1
13779}
13780
13781
13782attr_data {
13783 Name = .MyTRAPS_1,
13784 RA = 0x00000000003e0000,
13785 PA = ra2pa(0x00000000003e0000,0),
13786 part_0_ctx_zero_tsb_config_3,
13787 part_0_ctx_nonzero_tsb_config_3,
13788 TTE_G = 1,
13789 TTE_Context = 0,
13790 TTE_V = 1,
13791 TTE_Size = PART0_Z_PAGE_SIZE_3,
13792 TTE_NFO = 1,
13793 TTE_IE = 1,
13794 TTE_Soft2 = 0,
13795 TTE_Diag = 0,
13796 TTE_Soft = 0,
13797 TTE_L = 0,
13798 TTE_CP = 1,
13799 TTE_CV = 0,
13800 TTE_E = 0,
13801 TTE_P = 1,
13802 TTE_W = 1
13803}
13804
13805#include "traps.s"
13806
13807
13808
13809SECTION .MyTRAPS_2 TEXT_VA = 0x0000000400380000, DATA_VA = 0x00000004003c0000
13810attr_text {
13811 Name = .MyTRAPS_2,
13812 RA = 0x0000000400380000,
13813 PA = ra2pa(0x0000000400380000,0),
13814 part_0_ctx_zero_tsb_config_3,
13815 part_0_ctx_nonzero_tsb_config_3,
13816 TTE_G = 1,
13817 TTE_Context = 0,
13818 TTE_V = 1,
13819 TTE_Size = PART0_Z_PAGE_SIZE_3,
13820 TTE_NFO = 1,
13821 TTE_IE = 1,
13822 TTE_Soft2 = 0,
13823 TTE_Diag = 0,
13824 TTE_Soft = 0,
13825 TTE_L = 0,
13826 TTE_CP = 0,
13827 TTE_CV = 0,
13828 TTE_E = 0,
13829 TTE_P = 0,
13830 TTE_W = 1,
13831 TTE_X = 1
13832}
13833
13834
13835attr_data {
13836 Name = .MyTRAPS_2,
13837 RA = 0x00000004003c0000,
13838 PA = ra2pa(0x00000004003c0000,0),
13839 part_0_ctx_zero_tsb_config_3,
13840 part_0_ctx_nonzero_tsb_config_3,
13841 TTE_G = 1,
13842 TTE_Context = 0,
13843 TTE_V = 1,
13844 TTE_Size = PART0_Z_PAGE_SIZE_3,
13845 TTE_NFO = 0,
13846 TTE_IE = 0,
13847 TTE_Soft2 = 0,
13848 TTE_Diag = 0,
13849 TTE_Soft = 0,
13850 TTE_L = 0,
13851 TTE_CP = 1,
13852 TTE_CV = 0,
13853 TTE_E = 0,
13854 TTE_P = 1,
13855 TTE_W = 0
13856}
13857
13858#include "traps.s"
13859
13860
13861
13862SECTION .MyTRAPS_3 TEXT_VA = 0x00000004003a0000, DATA_VA = 0x00000004003e0000
13863attr_text {
13864 Name = .MyTRAPS_3,
13865 RA = 0x00000004003a0000,
13866 PA = ra2pa(0x00000004003a0000,0),
13867 part_0_ctx_zero_tsb_config_3,
13868 part_0_ctx_nonzero_tsb_config_3,
13869 TTE_G = 1,
13870 TTE_Context = 0,
13871 TTE_V = 1,
13872 TTE_Size = PART0_Z_PAGE_SIZE_3,
13873 TTE_NFO = 0,
13874 TTE_IE = 1,
13875 TTE_Soft2 = 0,
13876 TTE_Diag = 0,
13877 TTE_Soft = 0,
13878 TTE_L = 0,
13879 TTE_CP = 1,
13880 TTE_CV = 0,
13881 TTE_E = 1,
13882 TTE_P = 0,
13883 TTE_W = 0,
13884 TTE_X = 0
13885}
13886
13887
13888attr_data {
13889 Name = .MyTRAPS_3,
13890 RA = 0x00000004003e0000,
13891 PA = ra2pa(0x00000004003e0000,0),
13892 part_0_ctx_zero_tsb_config_3,
13893 part_0_ctx_nonzero_tsb_config_3,
13894 TTE_G = 1,
13895 TTE_Context = 0,
13896 TTE_V = 1,
13897 TTE_Size = PART0_Z_PAGE_SIZE_3,
13898 TTE_NFO = 0,
13899 TTE_IE = 1,
13900 TTE_Soft2 = 0,
13901 TTE_Diag = 0,
13902 TTE_Soft = 0,
13903 TTE_L = 0,
13904 TTE_CP = 0,
13905 TTE_CV = 1,
13906 TTE_E = 0,
13907 TTE_P = 1,
13908 TTE_W = 0
13909}
13910
13911#include "traps.s"
13912
13913
13914
13915
13916
13917SECTION .MyDATA_0 TEXT_VA = 0x00000000e0140000, DATA_VA = 0x0000000060140000
13918attr_data {
13919 Name = .MyDATA_0,
13920 RA = 0x0000000170100000,
13921 PA = ra2pa(0x0000000170100000,0),
13922 part_0_ctx_zero_tsb_config_0,
13923 part_0_ctx_nonzero_tsb_config_0,
13924 TTE_G = 1,
13925 TTE_Context = PCONTEXT,
13926 TTE_V = 1,
13927 TTE_Size = 3,
13928 TTE_NFO = 1,
13929 TTE_IE = 0,
13930 TTE_Soft2 = 0,
13931 TTE_Diag = 0,
13932 TTE_Soft = 0,
13933 TTE_L = 0,
13934 TTE_CP = 1,
13935 TTE_CV = 0,
13936 TTE_E = 1,
13937 TTE_P = 0,
13938 TTE_W = 1
13939}
13940
13941
13942attr_data {
13943 Name = .MyDATA_0,
13944 RA = 0x0000000170100000,
13945 PA = ra2pa(0x0000000170100000,0),
13946 part_0_ctx_zero_tsb_config_1,
13947 part_0_ctx_nonzero_tsb_config_1,
13948 TTE_G = 1,
13949 TTE_Context = SCONTEXT,
13950 TTE_V = 1,
13951 TTE_Size = 0,
13952 TTE_NFO = 1,
13953 TTE_IE = 1,
13954 TTE_Soft2 = 0,
13955 TTE_Diag = 0,
13956 TTE_Soft = 0,
13957 TTE_L = 0,
13958 TTE_CP = 0,
13959 TTE_CV = 1,
13960 TTE_E = 0,
13961 TTE_P = 0,
13962 TTE_W = 1,
13963 tsbonly
13964}
13965
13966
13967attr_data {
13968 Name = .MyDATA_0,
13969 hypervisor
13970}
13971
13972
13973attr_text {
13974 Name = .MyDATA_0,
13975 hypervisor
13976}
13977
13978.data
13979 .xword 0x2b05d14386ce19f0
13980 .xword 0xd5b84c8f2a667056
13981 .xword 0x338d088015fd7339
13982 .xword 0xdff8eddebad41434
13983 .xword 0xa1959c8c4b593415
13984 .xword 0xb77790a5c783085e
13985 .xword 0x438f30a4fbc5eefd
13986 .xword 0x433ffa5f660bdc21
13987 .xword 0x4ea70e6d2440059d
13988 .xword 0x86bbc7ac3cfcc49c
13989 .xword 0xc21b32a769b1aae9
13990 .xword 0x5e48708ba07feb32
13991 .xword 0x00d4be16fb9e2995
13992 .xword 0x32e100a963ca1f0b
13993 .xword 0xa7be76a342f1ea3f
13994 .xword 0x6e3e0d898d34b499
13995 .xword 0x8b6f1f95e4265e97
13996 .xword 0xc87a03ccba7ad49d
13997 .xword 0xc307174178a2dd33
13998 .xword 0xcb5c2cd7da7d9241
13999 .xword 0x2ce0e23e0615e1f5
14000 .xword 0x137c60bbbe21f766
14001 .xword 0xd98a3ca3efc0ac69
14002 .xword 0xac819a592f4f9fd5
14003 .xword 0x57a9b5dadd13c34e
14004 .xword 0x6ba91bfdb2396c5d
14005 .xword 0x2878353344f08496
14006 .xword 0x60b71978ec499505
14007 .xword 0x59a77cfeac08cc8d
14008 .xword 0xc9fae343cdfaae92
14009 .xword 0x7e9c9774e730eff1
14010 .xword 0x73a405c3c1d47060
14011
14012
14013
14014SECTION .MyDATA_1 TEXT_VA = 0x00000000e0340000, DATA_VA = 0x0000000060340000
14015attr_data {
14016 Name = .MyDATA_1,
14017 RA = 0x0000000170300000,
14018 PA = ra2pa(0x0000000170300000,0),
14019 part_0_ctx_zero_tsb_config_0,
14020 part_0_ctx_nonzero_tsb_config_0,
14021 TTE_G = 1,
14022 TTE_Context = PCONTEXT,
14023 TTE_V = 1,
14024 TTE_Size = 1,
14025 TTE_NFO = 0,
14026 TTE_IE = 1,
14027 TTE_Soft2 = 0,
14028 TTE_Diag = 0,
14029 TTE_Soft = 0,
14030 TTE_L = 0,
14031 TTE_CP = 1,
14032 TTE_CV = 1,
14033 TTE_E = 0,
14034 TTE_P = 1,
14035 TTE_W = 0
14036}
14037
14038
14039attr_data {
14040 Name = .MyDATA_1,
14041 RA = 0x0000000170300000,
14042 PA = ra2pa(0x0000000170300000,0),
14043 part_0_ctx_zero_tsb_config_1,
14044 part_0_ctx_nonzero_tsb_config_1,
14045 TTE_G = 1,
14046 TTE_Context = SCONTEXT,
14047 TTE_V = 1,
14048 TTE_Size = 5,
14049 TTE_NFO = 0,
14050 TTE_IE = 1,
14051 TTE_Soft2 = 0,
14052 TTE_Diag = 0,
14053 TTE_Soft = 0,
14054 TTE_L = 0,
14055 TTE_CP = 1,
14056 TTE_CV = 1,
14057 TTE_E = 0,
14058 TTE_P = 1,
14059 TTE_W = 0,
14060 tsbonly
14061}
14062
14063
14064attr_data {
14065 Name = .MyDATA_1,
14066 hypervisor
14067}
14068
14069
14070attr_text {
14071 Name = .MyDATA_1,
14072 hypervisor
14073}
14074
14075.data
14076 .xword 0xe07d0a53daf5f3ae
14077 .xword 0x9b921452e3ae4b19
14078 .xword 0x18e5ec0b581c899d
14079 .xword 0xccbc19d7334e8680
14080 .xword 0xfc9a02f1b42f9195
14081 .xword 0x1d57cbb1e1e5b5f3
14082 .xword 0xda413b9b2e42cbc1
14083 .xword 0xe1ae046bcba31347
14084 .xword 0xb6b29d2a7a24b960
14085 .xword 0xbb1ac3674ed4a7da
14086 .xword 0x0ea9bd27cb2fed3c
14087 .xword 0x456a74416fda2217
14088 .xword 0x13b42037975de273
14089 .xword 0xdfe5129103dbc87d
14090 .xword 0xb095c8dc0ac2efe9
14091 .xword 0x66205b28c3a83b58
14092 .xword 0x1b0bf011d4f9bb53
14093 .xword 0xf204b6ac264f6384
14094 .xword 0x57c74f572bf8ddea
14095 .xword 0x316b833668883261
14096 .xword 0x88ccc3020e87ae61
14097 .xword 0x1bdd2aeb1340c0bb
14098 .xword 0xa45dea83906fd20e
14099 .xword 0x3287135246009223
14100 .xword 0xb5ff75cf86d79b65
14101 .xword 0xfa28fd29780f608c
14102 .xword 0x7d8ac5dfc78c0b59
14103 .xword 0xe75644668a48c671
14104 .xword 0x96a6efe405d8e1c9
14105 .xword 0x0a6a6e580f364be8
14106 .xword 0x237eb6743705cbbf
14107 .xword 0xbb5d69894560ef5d
14108
14109
14110
14111SECTION .MyDATA_2 TEXT_VA = 0x00000000e0540000, DATA_VA = 0x0000000060540000
14112attr_data {
14113 Name = .MyDATA_2,
14114 RA = 0x0000000170500000,
14115 PA = ra2pa(0x0000000170500000,0),
14116 part_0_ctx_zero_tsb_config_0,
14117 part_0_ctx_nonzero_tsb_config_0,
14118 TTE_G = 1,
14119 TTE_Context = PCONTEXT,
14120 TTE_V = 1,
14121 TTE_Size = 3,
14122 TTE_NFO = 0,
14123 TTE_IE = 1,
14124 TTE_Soft2 = 0,
14125 TTE_Diag = 0,
14126 TTE_Soft = 0,
14127 TTE_L = 0,
14128 TTE_CP = 0,
14129 TTE_CV = 0,
14130 TTE_E = 1,
14131 TTE_P = 0,
14132 TTE_W = 1
14133}
14134
14135
14136attr_data {
14137 Name = .MyDATA_2,
14138 RA = 0x0000000170500000,
14139 PA = ra2pa(0x0000000170500000,0),
14140 part_0_ctx_zero_tsb_config_1,
14141 part_0_ctx_nonzero_tsb_config_1,
14142 TTE_G = 1,
14143 TTE_Context = SCONTEXT,
14144 TTE_V = 1,
14145 TTE_Size = 3,
14146 TTE_NFO = 0,
14147 TTE_IE = 1,
14148 TTE_Soft2 = 0,
14149 TTE_Diag = 0,
14150 TTE_Soft = 0,
14151 TTE_L = 0,
14152 TTE_CP = 0,
14153 TTE_CV = 0,
14154 TTE_E = 1,
14155 TTE_P = 1,
14156 TTE_W = 1,
14157 tsbonly
14158}
14159
14160
14161attr_data {
14162 Name = .MyDATA_2,
14163 hypervisor
14164}
14165
14166
14167attr_text {
14168 Name = .MyDATA_2,
14169 hypervisor
14170}
14171
14172.data
14173 .xword 0xe53848abd18ec5c3
14174 .xword 0x31f77e910fa928db
14175 .xword 0xe8e1cc93af9d99d5
14176 .xword 0x4da3c87f4ff9b9f6
14177 .xword 0xe411f56b73a298b1
14178 .xword 0x3ae0a62435e7f412
14179 .xword 0x40f1668c0e333781
14180 .xword 0x126819b9d2b40224
14181 .xword 0x3c6eb514014297a8
14182 .xword 0xab3274d43e0c4a36
14183 .xword 0x811bbfc9b2fdc66e
14184 .xword 0x56b968edf7b6dcf4
14185 .xword 0x48f0882776aba194
14186 .xword 0xb1a795e8c1ed16b3
14187 .xword 0x8edf6b01d1f68dc9
14188 .xword 0x84d16bcc44daa1c3
14189 .xword 0xf2978bbf5e7782e6
14190 .xword 0x186007ad15605513
14191 .xword 0xe25cbeddc7a9a1ff
14192 .xword 0xc53311b0d4217060
14193 .xword 0xf4b916f6b1417a22
14194 .xword 0x5e0de2458fec7c89
14195 .xword 0xf780da2afe2e2cba
14196 .xword 0xa8e0a18c6f461b18
14197 .xword 0x19b080a7ae154345
14198 .xword 0xcd25ab730aa31afc
14199 .xword 0xbf4bd459f7777b00
14200 .xword 0xe7ac0e0c703879ea
14201 .xword 0xe1dca87c193c8fb4
14202 .xword 0x392b28cb130a4876
14203 .xword 0xe1d74500c4ff06b9
14204 .xword 0x014b8d46e6f1c279
14205
14206
14207
14208SECTION .MyDATA_3 TEXT_VA = 0x00000000e0740000, DATA_VA = 0x0000000060740000
14209attr_data {
14210 Name = .MyDATA_3,
14211 RA = 0x0000000170700000,
14212 PA = ra2pa(0x0000000170700000,0),
14213 part_0_ctx_zero_tsb_config_0,
14214 part_0_ctx_nonzero_tsb_config_0,
14215 TTE_G = 1,
14216 TTE_Context = PCONTEXT,
14217 TTE_V = 1,
14218 TTE_Size = 5,
14219 TTE_NFO = 1,
14220 TTE_IE = 1,
14221 TTE_Soft2 = 0,
14222 TTE_Diag = 0,
14223 TTE_Soft = 0,
14224 TTE_L = 0,
14225 TTE_CP = 0,
14226 TTE_CV = 1,
14227 TTE_E = 0,
14228 TTE_P = 1,
14229 TTE_W = 1
14230}
14231
14232
14233attr_data {
14234 Name = .MyDATA_3,
14235 RA = 0x0000000170700000,
14236 PA = ra2pa(0x0000000170700000,0),
14237 part_0_ctx_zero_tsb_config_1,
14238 part_0_ctx_nonzero_tsb_config_1,
14239 TTE_G = 1,
14240 TTE_Context = SCONTEXT,
14241 TTE_V = 1,
14242 TTE_Size = 0,
14243 TTE_NFO = 0,
14244 TTE_IE = 0,
14245 TTE_Soft2 = 0,
14246 TTE_Diag = 0,
14247 TTE_Soft = 0,
14248 TTE_L = 0,
14249 TTE_CP = 0,
14250 TTE_CV = 1,
14251 TTE_E = 1,
14252 TTE_P = 1,
14253 TTE_W = 1,
14254 tsbonly
14255}
14256
14257
14258attr_data {
14259 Name = .MyDATA_3,
14260 hypervisor
14261}
14262
14263
14264attr_text {
14265 Name = .MyDATA_3,
14266 hypervisor
14267}
14268
14269.data
14270 .xword 0x3aaa7d4e39604a13
14271 .xword 0x78b1c196c77fc22c
14272 .xword 0xe9557669e277520e
14273 .xword 0x8f85239ea4bfc0d0
14274 .xword 0x79d40070f1c252a2
14275 .xword 0x96a00ba468c8a404
14276 .xword 0x2b32ea5fc33e0586
14277 .xword 0xfebf3b9a08910d22
14278 .xword 0x6e65ffc2ca8d98dd
14279 .xword 0x988b8627eb933fda
14280 .xword 0xac942299cc04d427
14281 .xword 0xdddb288dcbc44981
14282 .xword 0xf15c6eeee037fca9
14283 .xword 0xa69184309e002508
14284 .xword 0x51c49e91e6c61d42
14285 .xword 0x0d3f3b7162f1a385
14286 .xword 0x630a992f710f54a0
14287 .xword 0xde08dda21f1624f8
14288 .xword 0x2b0f4e3022ddcce9
14289 .xword 0xe35f508cbcd658d7
14290 .xword 0x62a5356b8919c91f
14291 .xword 0x69babe49deeb10f3
14292 .xword 0xf37f200c4b4a872a
14293 .xword 0xe226fcfb5018b9ad
14294 .xword 0x6d3b743e5f3d0bd6
14295 .xword 0x0ece1ac932a7902a
14296 .xword 0x1d655523856c45b1
14297 .xword 0x76dd0841561b3bab
14298 .xword 0x0fa03a7059ea88dc
14299 .xword 0xde731d5639a4c2a3
14300 .xword 0xc9342b3d3a5893a9
14301 .xword 0xbebc5782b3875a87
14302
14303
14304
14305
14306
14307SECTION .MyTEXT_0 TEXT_VA = 0x00000000e0200000
14308attr_text {
14309 Name = .MyTEXT_0,
14310 RA = 0x00000000e0200000,
14311 PA = ra2pa(0x00000000e0200000,0),
14312 part_0_ctx_zero_tsb_config_1,
14313 part_0_ctx_nonzero_tsb_config_1,
14314 TTE_G = 1,
14315 TTE_Context = PCONTEXT,
14316 TTE_V = 1,
14317 TTE_Size = 0,
14318 TTE_NFO = 0,
14319 TTE_IE = 0,
14320 TTE_Soft2 = 0,
14321 TTE_Diag = 0,
14322 TTE_Soft = 0,
14323 TTE_L = 0,
14324 TTE_CP = 1,
14325 TTE_CV = 0,
14326 TTE_E = 1,
14327 TTE_P = 1,
14328 TTE_W = 0
14329}
14330
14331.text
14332nuff_said_0:
14333 fdivd %f0, %f4, %f4
14334 jmpl %r27+8, %r0
14335 fdivs %f0, %f4, %f8
14336
14337
14338
14339SECTION .MyTEXT_1 TEXT_VA = 0x00000000e0a00000
14340attr_text {
14341 Name = .MyTEXT_1,
14342 RA = 0x00000000e0a00000,
14343 PA = ra2pa(0x00000000e0a00000,0),
14344 part_0_ctx_zero_tsb_config_1,
14345 part_0_ctx_nonzero_tsb_config_1,
14346 TTE_G = 1,
14347 TTE_Context = PCONTEXT,
14348 TTE_V = 1,
14349 TTE_Size = 0,
14350 TTE_NFO = 0,
14351 TTE_IE = 0,
14352 TTE_Soft2 = 0,
14353 TTE_Diag = 0,
14354 TTE_Soft = 0,
14355 TTE_L = 0,
14356 TTE_CP = 0,
14357 TTE_CV = 0,
14358 TTE_E = 0,
14359 TTE_P = 1,
14360 TTE_W = 1
14361}
14362
14363.text
14364nuff_said_1:
14365 fdivs %f0, %f4, %f4
14366 jmpl %r27+8, %r0
14367 fdivd %f0, %f4, %f8
14368
14369
14370
14371SECTION .MyTEXT_2 TEXT_VA = 0x00000000e1200000
14372attr_text {
14373 Name = .MyTEXT_2,
14374 RA = 0x00000000e1200000,
14375 PA = ra2pa(0x00000000e1200000,0),
14376 part_0_ctx_zero_tsb_config_1,
14377 part_0_ctx_nonzero_tsb_config_1,
14378 TTE_G = 1,
14379 TTE_Context = PCONTEXT,
14380 TTE_V = 1,
14381 TTE_Size = 0,
14382 TTE_NFO = 0,
14383 TTE_IE = 0,
14384 TTE_Soft2 = 0,
14385 TTE_Diag = 0,
14386 TTE_Soft = 0,
14387 TTE_L = 0,
14388 TTE_CP = 1,
14389 TTE_CV = 1,
14390 TTE_E = 1,
14391 TTE_P = 1,
14392 TTE_W = 1
14393}
14394
14395.text
14396nuff_said_2:
14397 fdivd %f0, %f4, %f8
14398 jmpl %r27+8, %r0
14399 fdivs %f0, %f4, %f4
14400
14401
14402
14403SECTION .MyTEXT_3 TEXT_VA = 0x00000000e1a00000
14404attr_text {
14405 Name = .MyTEXT_3,
14406 RA = 0x00000000e1a00000,
14407 PA = ra2pa(0x00000000e1a00000,0),
14408 part_0_ctx_zero_tsb_config_1,
14409 part_0_ctx_nonzero_tsb_config_1,
14410 TTE_G = 1,
14411 TTE_Context = PCONTEXT,
14412 TTE_V = 1,
14413 TTE_Size = 0,
14414 TTE_NFO = 0,
14415 TTE_IE = 1,
14416 TTE_Soft2 = 0,
14417 TTE_Diag = 0,
14418 TTE_Soft = 0,
14419 TTE_L = 0,
14420 TTE_CP = 1,
14421 TTE_CV = 1,
14422 TTE_E = 1,
14423 TTE_P = 1,
14424 TTE_W = 0
14425}
14426
14427.text
14428nuff_said_3:
14429 fdivs %f0, %f4, %f6
14430 jmpl %r27+8, %r0
14431 fdivd %f0, %f4, %f4
14432
14433
14434
14435
14436
14437SECTION .VaHOLE_0 TEXT_VA = 0x00007fffffffe000
14438attr_text {
14439 Name = .VaHOLE_0,
14440 RA = 0x00000000ffffe000,
14441 PA = ra2pa(0x00000000ffffe000,0),
14442 part_0_ctx_zero_tsb_config_1,
14443 part_0_ctx_nonzero_tsb_config_1,
14444 TTE_G = 1,
14445 TTE_Context = PCONTEXT,
14446 TTE_V = 1,
14447 TTE_Size = 0,
14448 TTE_NFO = 0,
14449 TTE_IE = 0,
14450 TTE_Soft2 = 0,
14451 TTE_Diag = 0,
14452 TTE_Soft = 0,
14453 TTE_L = 0,
14454 TTE_CP = 0,
14455 TTE_CV = 1,
14456 TTE_E = 1,
14457 TTE_P = 0,
14458 TTE_W = 1,
14459 TTE_X = 1
14460}
14461
14462.text
14463.global vahole_target0
14464.text
14465.global vahole_target1
14466.text
14467.global vahole_target2
14468.text
14469.global vahole_target3
14470 nop
14471.align 4096
14472 nop
14473.align 2048
14474 nop
14475.align 1024
14476 nop
14477.align 512
14478 nop
14479.align 256
14480 nop
14481.align 128
14482 nop
14483.align 64
14484 nop
14485 nop
14486.align 16
14487 nop;nop;nop
14488vahole_target0: nop;nop
14489vahole_target1: nop
14490vahole_target2: nop;nop;nop
14491vahole_target3: nop;nop;nop
14492
14493
14494
14495
14496
14497SECTION .VaHOLEL_0 TEXT_VA = 0x00000000ffffe000
14498attr_text {
14499 Name = .VaHOLEL_0,
14500 RA = 0x00000000ffffe000,
14501 PA = ra2pa(0x00000000ffffe000,0),
14502 part_0_ctx_zero_tsb_config_0,
14503 part_0_ctx_nonzero_tsb_config_0,
14504 TTE_G = 1,
14505 TTE_Context = PCONTEXT,
14506 TTE_V = 1,
14507 TTE_Size = 3,
14508 TTE_NFO = 0,
14509 TTE_IE = 0,
14510 TTE_Soft2 = 0,
14511 TTE_Diag = 0,
14512 TTE_Soft = 0,
14513 TTE_L = 0,
14514 TTE_CP = 1,
14515 TTE_CV = 0,
14516 TTE_E = 1,
14517 TTE_P = 0,
14518 TTE_W = 0,
14519 TTE_X = 1,
14520 tsbonly
14521}
14522
14523.text
14524 nop
14525
14526
14527
14528
14529
14530SECTION .ZERO_0 TEXT_VA = 0x0000000000000000
14531attr_text {
14532 Name = .ZERO_0,
14533 RA = 0x0000000000000000,
14534 PA = ra2pa(0x0000000000000000,0),
14535 part_0_ctx_zero_tsb_config_1,
14536 part_0_ctx_nonzero_tsb_config_1,
14537 TTE_G = 1,
14538 TTE_Context = 0x44,
14539 TTE_V = 1,
14540 TTE_Size = 1,
14541 TTE_NFO = 0,
14542 TTE_IE = 1,
14543 TTE_Soft2 = 0,
14544 TTE_Diag = 0,
14545 TTE_Soft = 0,
14546 TTE_L = 0,
14547 TTE_CP = 0,
14548 TTE_CV = 0,
14549 TTE_E = 0,
14550 TTE_P = 0,
14551 TTE_W = 1,
14552 TTE_X = 1
14553}
14554
14555
14556.text
14557 nop
14558 nop
14559 jmpl %r27+8, %r0
14560 nop
14561 nop
14562 nop
14563 nop
14564 nop
14565
14566Power_On_Reset:
14567 setx HRedmode_Reset_Handler, %g1, %g2
14568 jmp %g2
14569 nop
14570.align 32
14571
14572Watchdog_Reset:
14573 setx wdog_red_ext, %g1, %g2
14574 jmp %g2
14575 nop
14576.align 32
14577
14578External_Reset:
14579 My_External_Reset
14580
14581.align 32
14582
14583Software_Initiated_Reset:
14584 setx Software_Reset_Handler, %g1, %g2
14585 jmp %g2
14586 nop
14587
14588.align 32
14589
14590RED_Mode_Other_Reset:
14591 ! IF TL=6, shift stack by one ..
14592 rdpr %tl, %l1
14593 cmp %l1, 6
14594 be start_tsa_shift
14595 nop
14596
14597continue_red_other:
14598 mov 0x1f, %l1
14599 stxa %l1, [%g0] ASI_LSU_CTL_REG
14600
14601 rdpr %tt, %l1
14602
14603 rdhpr %htstate, %l2
14604 and %l2, 0x4, %l2 ! If previously in hpriv mode, go to hpriv
14605 brnz,a %l2, red_goto_handler
14606 rdhpr %htba, %l2
14607 srlx %l1, 7, %l2 ! Send priv sw traps to priv mode ..
14608 cmp %l2, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap ..
14609 be,a red_goto_handler
14610 rdpr %tba, %l2
14611 rdhpr %htba, %l2
14612red_goto_handler:
14613
14614 sllx %l1, 5, %l1
14615 add %l1, %l2, %l2
14616 rdhpr %hpstate, %l1
14617 jmp %l2
14618 wrhpr %l1, 0x20, %hpstate
14619 nop
14620
14621wdog_red_ext:
14622 ! Shift stack down by 1 ...
14623 rdpr %tl, %l1
14624 cmp %l1, 6
14625 bl wdog_end
14626start_tsa_shift:
14627 mov 0x2, %l2
14628
14629tsa_shift:
14630 wrpr %l2, %tl
14631 rdpr %tt, %l3
14632 rdpr %tpc, %l4
14633 rdpr %tnpc, %l5
14634 rdpr %tstate, %l6
14635 rdhpr %htstate, %l7
14636 dec %l2
14637 wrpr %l2, %tl
14638 wrpr %l3, %tt
14639 wrpr %l4, %tpc
14640 wrpr %l5, %tnpc
14641 wrpr %l6, %tstate
14642 wrhpr %l7, %htstate
14643 add %l2, 2, %l2
14644 cmp %l2, %l1
14645 ble tsa_shift
14646 nop
14647tsa_shift_done:
14648 dec %l1
14649 wrpr %l1, %tl
14650
14651wdog_end:
14652 ! If TT != 2, then goto trap handler
14653 rdpr %tt, %l1
14654
14655 cmp %l1, 0x2
14656 bne continue_red_other
14657 nop
14658 ! else done
14659 mov 0x1f, %l1
14660 stxa %l1, [%g0] ASI_LSU_CTL_REG
14661 done
14662
14663
14664
14665
14666
14667
14668SECTION .VaHOLE_PA_0 TEXT_VA = 0x000000ffffffe000
14669attr_text {
14670 Name = .VAHOLE_PA_0,
14671 hypervisor
14672}
14673
14674 nop
14675.align 4096
14676 nop
14677.align 2048
14678 nop
14679.align 1024
14680 nop
14681.align 512
14682 nop
14683.align 256
14684 nop
14685.align 128
14686 nop
14687.align 64
14688 nop
14689 nop
14690.align 16
14691 nop;nop;nop
14692 nop
14693 nop
14694 jmpl %r27+8, %r0
14695 nop
14696 nop
14697 nop
14698 jmpl %r27+8, %r0
14699 nop
14700
14701
14702
14703#if 0
14704#endif