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