1 //Original:/proj/frio/dv/testcases/lmu/lmu_cplb_multiple1/lmu_cplb_multiple1.dsp
2 // Description: Multiple CPLB Hit exceptions (DAG1)
4 # sim: --environment operating
7 .include "testutils.inc"
10 include(selfcheck.inc)
14 //-------------------------------------
16 // Test LMU/CPLB exceptions
19 // Set exception handler
20 // program CPLB Entries
21 // Enable CPLB in DMEM_CNTL
23 // verify exception occurred
25 CHECK_INIT(p5, 0xEFFFFFFC);
27 //-------------------------
28 // Zero the CPLB Address and Data regs.
30 LD32(p0, DCPLB_ADDR0);
49 LD32(p0, DCPLB_DATA0);
67 // Now set the CPLB entries we will need
72 // Data area for the desired error
73 WR_MMR(DCPLB_ADDR0, 0x10000000, p0, r0);
74 WR_MMR(DCPLB_ADDR1, 0x10000000, p0, r0);
75 WR_MMR(DCPLB_ADDR2, 0x10000000, p0, r0);
76 WR_MMR(DCPLB_ADDR3, 0x10000000, p0, r0);
77 WR_MMR(DCPLB_ADDR4, 0x10000000, p0, r0);
78 WR_MMR(DCPLB_ADDR5, 0x10000000, p0, r0);
79 WR_MMR(DCPLB_ADDR6, 0x10000000, p0, r0);
80 WR_MMR(DCPLB_ADDR7, 0x10000000, p0, r0);
81 WR_MMR(DCPLB_ADDR8, 0x10000000, p0, r0);
82 WR_MMR(DCPLB_ADDR9, 0x10000000, p0, r0);
83 WR_MMR(DCPLB_ADDR10, 0x10000000, p0, r0);
84 WR_MMR(DCPLB_ADDR11, 0x10000000, p0, r0);
85 WR_MMR(DCPLB_ADDR12, 0x10000000, p0, r0);
86 WR_MMR(DCPLB_ADDR13, 0x10000000, p0, r0);
87 WR_MMR(DCPLB_ADDR14, 0x10000000, p0, r0);
90 WR_MMR(DCPLB_ADDR15, 0xFFC00000, p0, r0);
91 WR_MMR(DCPLB_DATA15, PAGE_SIZE_4M|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR, p0, r0);
93 // setup interrupt controller with exception handler address
94 WR_MMR_LABEL(EVT3, handler, p0, r1);
95 WR_MMR_LABEL(EVT15, int_15, p0, r1);
96 WR_MMR(EVT_IMASK, 0xFFFFFFFF, p0, r0);
97 WR_MMR(EVT_OVERRIDE, 0x00000000, p0, r0);
102 // go to user mode. and enable exceptions
103 LD32_LABEL(r0, User);
106 // But first raise interrupt 15 so we can do one test
107 // in supervisor mode.
113 // Nops to work around ICache bug
118 // generic protection exception handler
120 // p2: addr of CPLB entry to be modified ( current test)
124 // r5: DCPLB_FAULT_ADDR
126 // r7: RETX (instruction addr where exception occurred)
129 R4 = SEQSTAT; // Get exception cause
130 R4 <<= 24; // Clear HWERRCAUSE + SFTRESET
133 // read data addr which caused exception
134 RD_MMR(DCPLB_FAULT_ADDR, p0, r5);
136 RD_MMR(DCPLB_STATUS, p0, r6);
138 R7 = RETX; // get address of excepting instruction
140 // disable the offending CPLB entries
146 // return from exception and re-execute offending instruction
149 // Nops to work around ICache bug
155 // Interrupt 15 handler - test will run in supervisor mode
157 //-------------------------------------------------------
158 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
160 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
161 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
162 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
165 LD32(i1, 0x10000000);
167 LD32(p2, DCPLB_DATA1);
169 X0_1: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
171 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
173 WR_MMR(DCPLB_DATA0, 0, p0, r0);
175 // Now check that handler read correct values
176 CHECKREG(r4,0x27); // supv and EXCPT_PROT
177 CHECKREG(r5, 0x10000000);
178 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB1));
179 CHECKREG_SYM(r7, X0_1, r0); // RETX should be value of X0_1 (HARDCODED ADDR!!)
181 //-------------------------------------------------------
182 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
184 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
185 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
186 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
189 LD32(i1, 0x10000000);
191 LD32(p2, DCPLB_DATA2);
193 X0_2: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
195 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
197 WR_MMR(DCPLB_DATA0, 0, p0, r0);
199 // Now check that handler read correct values
200 CHECKREG(r4,0x27); // supv and EXCPT_PROT
201 CHECKREG(r5, 0x10000000);
202 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB2));
203 CHECKREG_SYM(r7, X0_2, r0); // RETX should be value of X0_2 (HARDCODED ADDR!!)
205 //-------------------------------------------------------
206 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
208 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
209 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
210 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
213 LD32(i1, 0x10000000);
215 LD32(p2, DCPLB_DATA3);
217 X0_3: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
219 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
221 WR_MMR(DCPLB_DATA0, 0, p0, r0);
223 // Now check that handler read correct values
224 CHECKREG(r4,0x27); // supv and EXCPT_PROT
225 CHECKREG(r5, 0x10000000);
226 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB3));
227 CHECKREG_SYM(r7, X0_3, r0); // RETX should be value of X0_3 (HARDCODED ADDR!!)
229 //-------------------------------------------------------
230 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
232 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
233 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
234 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
237 LD32(i1, 0x10000000);
239 LD32(p2, DCPLB_DATA4);
241 X0_4: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
243 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
245 WR_MMR(DCPLB_DATA0, 0, p0, r0);
247 // Now check that handler read correct values
248 CHECKREG(r4,0x27); // supv and EXCPT_PROT
249 CHECKREG(r5, 0x10000000);
250 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB4));
251 CHECKREG_SYM(r7, X0_4, r0); // RETX should be value of X0_4 (HARDCODED ADDR!!)
253 //-------------------------------------------------------
254 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
256 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
257 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
258 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
261 LD32(i1, 0x10000000);
263 LD32(p2, DCPLB_DATA5);
265 X0_5: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
267 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
269 WR_MMR(DCPLB_DATA0, 0, p0, r0);
271 // Now check that handler read correct values
272 CHECKREG(r4,0x27); // supv and EXCPT_PROT
273 CHECKREG(r5, 0x10000000);
274 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB5));
275 CHECKREG_SYM(r7, X0_5, r0); // RETX should be value of X0_5 (HARDCODED ADDR!!)
277 //-------------------------------------------------------
278 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
280 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
281 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
282 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
285 LD32(i1, 0x10000000);
287 LD32(p2, DCPLB_DATA6);
289 X0_6: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
291 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
293 WR_MMR(DCPLB_DATA0, 0, p0, r0);
295 // Now check that handler read correct values
296 CHECKREG(r4,0x27); // supv and EXCPT_PROT
297 CHECKREG(r5, 0x10000000);
298 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB6));
299 CHECKREG_SYM(r7, X0_6, r0); // RETX should be value of X0_6 (HARDCODED ADDR!!)
301 //-------------------------------------------------------
302 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
304 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
305 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
306 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
309 LD32(i1, 0x10000000);
311 LD32(p2, DCPLB_DATA7);
313 X0_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
315 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
317 WR_MMR(DCPLB_DATA0, 0, p0, r0);
319 // Now check that handler read correct values
320 CHECKREG(r4,0x27); // supv and EXCPT_PROT
321 CHECKREG(r5, 0x10000000);
322 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB7));
323 CHECKREG_SYM(r7, X0_7, r0); // RETX should be value of X0_7 (HARDCODED ADDR!!)
325 //-------------------------------------------------------
326 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
328 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
329 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
330 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
333 LD32(i1, 0x10000000);
335 LD32(p2, DCPLB_DATA8);
337 X0_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
339 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
341 WR_MMR(DCPLB_DATA0, 0, p0, r0);
343 // Now check that handler read correct values
344 CHECKREG(r4,0x27); // supv and EXCPT_PROT
345 CHECKREG(r5, 0x10000000);
346 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB8));
347 CHECKREG_SYM(r7, X0_8, r0); // RETX should be value of X0_8 (HARDCODED ADDR!!)
349 //-------------------------------------------------------
350 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
352 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
353 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
354 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
357 LD32(i1, 0x10000000);
359 LD32(p2, DCPLB_DATA9);
361 X0_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
363 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
365 WR_MMR(DCPLB_DATA0, 0, p0, r0);
367 // Now check that handler read correct values
368 CHECKREG(r4,0x27); // supv and EXCPT_PROT
369 CHECKREG(r5, 0x10000000);
370 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB9));
371 CHECKREG_SYM(r7, X0_9, r0); // RETX should be value of X0_9 (HARDCODED ADDR!!)
373 //-------------------------------------------------------
374 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
376 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
377 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
378 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
381 LD32(i1, 0x10000000);
383 LD32(p2, DCPLB_DATA10);
385 X0_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
387 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
389 WR_MMR(DCPLB_DATA0, 0, p0, r0);
391 // Now check that handler read correct values
392 CHECKREG(r4,0x27); // supv and EXCPT_PROT
393 CHECKREG(r5, 0x10000000);
394 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB10));
395 CHECKREG_SYM(r7, X0_10, r0); // RETX should be value of X0_10 (HARDCODED ADDR!!)
397 //-------------------------------------------------------
398 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
400 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
401 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
402 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
405 LD32(i1, 0x10000000);
407 LD32(p2, DCPLB_DATA11);
409 X0_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
411 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
413 WR_MMR(DCPLB_DATA0, 0, p0, r0);
415 // Now check that handler read correct values
416 CHECKREG(r4,0x27); // supv and EXCPT_PROT
417 CHECKREG(r5, 0x10000000);
418 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB11));
419 CHECKREG_SYM(r7, X0_11, r0); // RETX should be value of X0_11 (HARDCODED ADDR!!)
421 //-------------------------------------------------------
422 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
424 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
425 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
426 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
429 LD32(i1, 0x10000000);
431 LD32(p2, DCPLB_DATA12);
433 X0_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
435 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
437 WR_MMR(DCPLB_DATA0, 0, p0, r0);
439 // Now check that handler read correct values
440 CHECKREG(r4,0x27); // supv and EXCPT_PROT
441 CHECKREG(r5, 0x10000000);
442 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB12));
443 CHECKREG_SYM(r7, X0_12, r0); // RETX should be value of X0_12 (HARDCODED ADDR!!)
445 //-------------------------------------------------------
446 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
448 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
449 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
450 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
453 LD32(i1, 0x10000000);
455 LD32(p2, DCPLB_DATA13);
457 X0_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
459 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
461 WR_MMR(DCPLB_DATA0, 0, p0, r0);
463 // Now check that handler read correct values
464 CHECKREG(r4,0x27); // supv and EXCPT_PROT
465 CHECKREG(r5, 0x10000000);
466 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB13));
467 CHECKREG_SYM(r7, X0_13, r0); // RETX should be value of X0_13 (HARDCODED ADDR!!)
469 //-------------------------------------------------------
470 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
472 WR_MMR(DCPLB_DATA0, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
473 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
474 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
477 LD32(i1, 0x10000000);
479 LD32(p2, DCPLB_DATA14);
481 X0_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
483 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
485 WR_MMR(DCPLB_DATA0, 0, p0, r0);
487 // Now check that handler read correct values
488 CHECKREG(r4,0x27); // supv and EXCPT_PROT
489 CHECKREG(r5, 0x10000000);
490 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB0|FAULT_CPLB14));
491 CHECKREG_SYM(r7, X0_14, r0); // RETX should be value of X0_14 (HARDCODED ADDR!!)
493 //-------------------------------------------------------
494 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
496 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
497 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
498 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
501 LD32(i1, 0x10000000);
503 LD32(p2, DCPLB_DATA2);
505 X1_2: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
507 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
509 WR_MMR(DCPLB_DATA1, 0, p0, r0);
511 // Now check that handler read correct values
512 CHECKREG(r4,0x27); // supv and EXCPT_PROT
513 CHECKREG(r5, 0x10000000);
514 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB2));
515 CHECKREG_SYM(r7, X1_2, r0); // RETX should be value of X1_2 (HARDCODED ADDR!!)
517 //-------------------------------------------------------
518 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
520 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
521 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
522 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
525 LD32(i1, 0x10000000);
527 LD32(p2, DCPLB_DATA3);
529 X1_3: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
531 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
533 WR_MMR(DCPLB_DATA1, 0, p0, r0);
535 // Now check that handler read correct values
536 CHECKREG(r4,0x27); // supv and EXCPT_PROT
537 CHECKREG(r5, 0x10000000);
538 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB3));
539 CHECKREG_SYM(r7, X1_3, r0); // RETX should be value of X1_3 (HARDCODED ADDR!!)
541 //-------------------------------------------------------
542 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
544 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
545 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
546 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
549 LD32(i1, 0x10000000);
551 LD32(p2, DCPLB_DATA4);
553 X1_4: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
555 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
557 WR_MMR(DCPLB_DATA1, 0, p0, r0);
559 // Now check that handler read correct values
560 CHECKREG(r4,0x27); // supv and EXCPT_PROT
561 CHECKREG(r5, 0x10000000);
562 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB4));
563 CHECKREG_SYM(r7, X1_4, r0); // RETX should be value of X1_4 (HARDCODED ADDR!!)
565 //-------------------------------------------------------
566 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
568 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
569 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
570 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
573 LD32(i1, 0x10000000);
575 LD32(p2, DCPLB_DATA5);
577 X1_5: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
579 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
581 WR_MMR(DCPLB_DATA1, 0, p0, r0);
583 // Now check that handler read correct values
584 CHECKREG(r4,0x27); // supv and EXCPT_PROT
585 CHECKREG(r5, 0x10000000);
586 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB5));
587 CHECKREG_SYM(r7, X1_5, r0); // RETX should be value of X1_5 (HARDCODED ADDR!!)
589 //-------------------------------------------------------
590 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
592 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
593 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
594 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
597 LD32(i1, 0x10000000);
599 LD32(p2, DCPLB_DATA6);
601 X1_6: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
603 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
605 WR_MMR(DCPLB_DATA1, 0, p0, r0);
607 // Now check that handler read correct values
608 CHECKREG(r4,0x27); // supv and EXCPT_PROT
609 CHECKREG(r5, 0x10000000);
610 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB6));
611 CHECKREG_SYM(r7, X1_6, r0); // RETX should be value of X1_6 (HARDCODED ADDR!!)
613 //-------------------------------------------------------
614 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
616 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
617 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
618 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
621 LD32(i1, 0x10000000);
623 LD32(p2, DCPLB_DATA7);
625 X1_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
627 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
629 WR_MMR(DCPLB_DATA1, 0, p0, r0);
631 // Now check that handler read correct values
632 CHECKREG(r4,0x27); // supv and EXCPT_PROT
633 CHECKREG(r5, 0x10000000);
634 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB7));
635 CHECKREG_SYM(r7, X1_7, r0); // RETX should be value of X1_7 (HARDCODED ADDR!!)
637 //-------------------------------------------------------
638 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
640 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
641 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
642 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
645 LD32(i1, 0x10000000);
647 LD32(p2, DCPLB_DATA8);
649 X1_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
651 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
653 WR_MMR(DCPLB_DATA1, 0, p0, r0);
655 // Now check that handler read correct values
656 CHECKREG(r4,0x27); // supv and EXCPT_PROT
657 CHECKREG(r5, 0x10000000);
658 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB8));
659 CHECKREG_SYM(r7, X1_8, r0); // RETX should be value of X1_8 (HARDCODED ADDR!!)
661 //-------------------------------------------------------
662 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
664 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
665 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
666 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
669 LD32(i1, 0x10000000);
671 LD32(p2, DCPLB_DATA9);
673 X1_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
675 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
677 WR_MMR(DCPLB_DATA1, 0, p0, r0);
679 // Now check that handler read correct values
680 CHECKREG(r4,0x27); // supv and EXCPT_PROT
681 CHECKREG(r5, 0x10000000);
682 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB9));
683 CHECKREG_SYM(r7, X1_9, r0); // RETX should be value of X1_9 (HARDCODED ADDR!!)
685 //-------------------------------------------------------
686 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
688 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
689 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
690 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
693 LD32(i1, 0x10000000);
695 LD32(p2, DCPLB_DATA10);
697 X1_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
699 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
701 WR_MMR(DCPLB_DATA1, 0, p0, r0);
703 // Now check that handler read correct values
704 CHECKREG(r4,0x27); // supv and EXCPT_PROT
705 CHECKREG(r5, 0x10000000);
706 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB10));
707 CHECKREG_SYM(r7, X1_10, r0); // RETX should be value of X1_10 (HARDCODED ADDR!!)
709 //-------------------------------------------------------
710 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
712 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
713 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
714 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
717 LD32(i1, 0x10000000);
719 LD32(p2, DCPLB_DATA11);
721 X1_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
723 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
725 WR_MMR(DCPLB_DATA1, 0, p0, r0);
727 // Now check that handler read correct values
728 CHECKREG(r4,0x27); // supv and EXCPT_PROT
729 CHECKREG(r5, 0x10000000);
730 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB11));
731 CHECKREG_SYM(r7, X1_11, r0); // RETX should be value of X1_11 (HARDCODED ADDR!!)
733 //-------------------------------------------------------
734 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
736 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
737 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
738 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
741 LD32(i1, 0x10000000);
743 LD32(p2, DCPLB_DATA12);
745 X1_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
747 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
749 WR_MMR(DCPLB_DATA1, 0, p0, r0);
751 // Now check that handler read correct values
752 CHECKREG(r4,0x27); // supv and EXCPT_PROT
753 CHECKREG(r5, 0x10000000);
754 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB12));
755 CHECKREG_SYM(r7, X1_12, r0); // RETX should be value of X1_12 (HARDCODED ADDR!!)
757 //-------------------------------------------------------
758 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
760 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
761 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
762 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
765 LD32(i1, 0x10000000);
767 LD32(p2, DCPLB_DATA13);
769 X1_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
771 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
773 WR_MMR(DCPLB_DATA1, 0, p0, r0);
775 // Now check that handler read correct values
776 CHECKREG(r4,0x27); // supv and EXCPT_PROT
777 CHECKREG(r5, 0x10000000);
778 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB13));
779 CHECKREG_SYM(r7, X1_13, r0); // RETX should be value of X1_13 (HARDCODED ADDR!!)
781 //-------------------------------------------------------
782 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
784 WR_MMR(DCPLB_DATA1, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
785 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
786 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
789 LD32(i1, 0x10000000);
791 LD32(p2, DCPLB_DATA14);
793 X1_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
795 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
797 WR_MMR(DCPLB_DATA1, 0, p0, r0);
799 // Now check that handler read correct values
800 CHECKREG(r4,0x27); // supv and EXCPT_PROT
801 CHECKREG(r5, 0x10000000);
802 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB1|FAULT_CPLB14));
803 CHECKREG_SYM(r7, X1_14, r0); // RETX should be value of X1_14 (HARDCODED ADDR!!)
805 //-------------------------------------------------------
806 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
808 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
809 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
810 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
813 LD32(i1, 0x10000000);
815 LD32(p2, DCPLB_DATA3);
817 X2_3: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
819 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
821 WR_MMR(DCPLB_DATA2, 0, p0, r0);
823 // Now check that handler read correct values
824 CHECKREG(r4,0x27); // supv and EXCPT_PROT
825 CHECKREG(r5, 0x10000000);
826 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB3));
827 CHECKREG_SYM(r7, X2_3, r0); // RETX should be value of X2_3 (HARDCODED ADDR!!)
829 //-------------------------------------------------------
830 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
832 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
833 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
834 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
837 LD32(i1, 0x10000000);
839 LD32(p2, DCPLB_DATA4);
841 X2_4: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
843 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
845 WR_MMR(DCPLB_DATA2, 0, p0, r0);
847 // Now check that handler read correct values
848 CHECKREG(r4,0x27); // supv and EXCPT_PROT
849 CHECKREG(r5, 0x10000000);
850 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB4));
851 CHECKREG_SYM(r7, X2_4, r0); // RETX should be value of X2_4 (HARDCODED ADDR!!)
853 //-------------------------------------------------------
854 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
856 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
857 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
858 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
861 LD32(i1, 0x10000000);
863 LD32(p2, DCPLB_DATA5);
865 X2_5: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
867 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
869 WR_MMR(DCPLB_DATA2, 0, p0, r0);
871 // Now check that handler read correct values
872 CHECKREG(r4,0x27); // supv and EXCPT_PROT
873 CHECKREG(r5, 0x10000000);
874 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB5));
875 CHECKREG_SYM(r7, X2_5, r0); // RETX should be value of X2_5 (HARDCODED ADDR!!)
877 //-------------------------------------------------------
878 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
880 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
881 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
882 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
885 LD32(i1, 0x10000000);
887 LD32(p2, DCPLB_DATA6);
889 X2_6: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
891 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
893 WR_MMR(DCPLB_DATA2, 0, p0, r0);
895 // Now check that handler read correct values
896 CHECKREG(r4,0x27); // supv and EXCPT_PROT
897 CHECKREG(r5, 0x10000000);
898 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB6));
899 CHECKREG_SYM(r7, X2_6, r0); // RETX should be value of X2_6 (HARDCODED ADDR!!)
901 //-------------------------------------------------------
902 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
904 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
905 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
906 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
909 LD32(i1, 0x10000000);
911 LD32(p2, DCPLB_DATA7);
913 X2_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
915 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
917 WR_MMR(DCPLB_DATA2, 0, p0, r0);
919 // Now check that handler read correct values
920 CHECKREG(r4,0x27); // supv and EXCPT_PROT
921 CHECKREG(r5, 0x10000000);
922 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB7));
923 CHECKREG_SYM(r7, X2_7, r0); // RETX should be value of X2_7 (HARDCODED ADDR!!)
925 //-------------------------------------------------------
926 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
928 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
929 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
930 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
933 LD32(i1, 0x10000000);
935 LD32(p2, DCPLB_DATA8);
937 X2_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
939 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
941 WR_MMR(DCPLB_DATA2, 0, p0, r0);
943 // Now check that handler read correct values
944 CHECKREG(r4,0x27); // supv and EXCPT_PROT
945 CHECKREG(r5, 0x10000000);
946 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB8));
947 CHECKREG_SYM(r7, X2_8, r0); // RETX should be value of X2_8 (HARDCODED ADDR!!)
949 //-------------------------------------------------------
950 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
952 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
953 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
954 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
957 LD32(i1, 0x10000000);
959 LD32(p2, DCPLB_DATA9);
961 X2_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
963 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
965 WR_MMR(DCPLB_DATA2, 0, p0, r0);
967 // Now check that handler read correct values
968 CHECKREG(r4,0x27); // supv and EXCPT_PROT
969 CHECKREG(r5, 0x10000000);
970 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB9));
971 CHECKREG_SYM(r7, X2_9, r0); // RETX should be value of X2_9 (HARDCODED ADDR!!)
973 //-------------------------------------------------------
974 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
976 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
977 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
978 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
981 LD32(i1, 0x10000000);
983 LD32(p2, DCPLB_DATA10);
985 X2_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
987 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
989 WR_MMR(DCPLB_DATA2, 0, p0, r0);
991 // Now check that handler read correct values
992 CHECKREG(r4,0x27); // supv and EXCPT_PROT
993 CHECKREG(r5, 0x10000000);
994 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB10));
995 CHECKREG_SYM(r7, X2_10, r0); // RETX should be value of X2_10 (HARDCODED ADDR!!)
997 //-------------------------------------------------------
998 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1000 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1001 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1002 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1005 LD32(i1, 0x10000000);
1007 LD32(p2, DCPLB_DATA11);
1009 X2_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1011 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1013 WR_MMR(DCPLB_DATA2, 0, p0, r0);
1015 // Now check that handler read correct values
1016 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1017 CHECKREG(r5, 0x10000000);
1018 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB11));
1019 CHECKREG_SYM(r7, X2_11, r0); // RETX should be value of X2_11 (HARDCODED ADDR!!)
1021 //-------------------------------------------------------
1022 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1024 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1025 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1026 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1029 LD32(i1, 0x10000000);
1031 LD32(p2, DCPLB_DATA12);
1033 X2_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1035 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1037 WR_MMR(DCPLB_DATA2, 0, p0, r0);
1039 // Now check that handler read correct values
1040 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1041 CHECKREG(r5, 0x10000000);
1042 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB12));
1043 CHECKREG_SYM(r7, X2_12, r0); // RETX should be value of X2_12 (HARDCODED ADDR!!)
1045 //-------------------------------------------------------
1046 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1048 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1049 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1050 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1053 LD32(i1, 0x10000000);
1055 LD32(p2, DCPLB_DATA13);
1057 X2_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1059 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1061 WR_MMR(DCPLB_DATA2, 0, p0, r0);
1063 // Now check that handler read correct values
1064 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1065 CHECKREG(r5, 0x10000000);
1066 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB13));
1067 CHECKREG_SYM(r7, X2_13, r0); // RETX should be value of X2_13 (HARDCODED ADDR!!)
1069 //-------------------------------------------------------
1070 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1072 WR_MMR(DCPLB_DATA2, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1073 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1074 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1077 LD32(i1, 0x10000000);
1079 LD32(p2, DCPLB_DATA14);
1081 X2_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1083 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1085 WR_MMR(DCPLB_DATA2, 0, p0, r0);
1087 // Now check that handler read correct values
1088 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1089 CHECKREG(r5, 0x10000000);
1090 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB2|FAULT_CPLB14));
1091 CHECKREG_SYM(r7, X2_14, r0); // RETX should be value of X2_14 (HARDCODED ADDR!!)
1093 //-------------------------------------------------------
1094 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1096 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1097 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1098 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1101 LD32(i1, 0x10000000);
1103 LD32(p2, DCPLB_DATA4);
1105 X3_4: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1107 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1109 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1111 // Now check that handler read correct values
1112 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1113 CHECKREG(r5, 0x10000000);
1114 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB4));
1115 CHECKREG_SYM(r7, X3_4, r0); // RETX should be value of X3_4 (HARDCODED ADDR!!)
1117 //-------------------------------------------------------
1118 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1120 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1121 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1122 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1125 LD32(i1, 0x10000000);
1127 LD32(p2, DCPLB_DATA5);
1129 X3_5: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1131 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1133 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1135 // Now check that handler read correct values
1136 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1137 CHECKREG(r5, 0x10000000);
1138 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB5));
1139 CHECKREG_SYM(r7, X3_5, r0); // RETX should be value of X3_5 (HARDCODED ADDR!!)
1141 //-------------------------------------------------------
1142 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1144 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1145 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1146 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1149 LD32(i1, 0x10000000);
1151 LD32(p2, DCPLB_DATA6);
1153 X3_6: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1155 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1157 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1159 // Now check that handler read correct values
1160 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1161 CHECKREG(r5, 0x10000000);
1162 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB6));
1163 CHECKREG_SYM(r7, X3_6, r0); // RETX should be value of X3_6 (HARDCODED ADDR!!)
1165 //-------------------------------------------------------
1166 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1168 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1169 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1170 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1173 LD32(i1, 0x10000000);
1175 LD32(p2, DCPLB_DATA7);
1177 X3_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1179 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1181 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1183 // Now check that handler read correct values
1184 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1185 CHECKREG(r5, 0x10000000);
1186 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB7));
1187 CHECKREG_SYM(r7, X3_7, r0); // RETX should be value of X3_7 (HARDCODED ADDR!!)
1189 //-------------------------------------------------------
1190 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1192 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1193 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1194 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1197 LD32(i1, 0x10000000);
1199 LD32(p2, DCPLB_DATA8);
1201 X3_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1203 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1205 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1207 // Now check that handler read correct values
1208 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1209 CHECKREG(r5, 0x10000000);
1210 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB8));
1211 CHECKREG_SYM(r7, X3_8, r0); // RETX should be value of X3_8 (HARDCODED ADDR!!)
1213 //-------------------------------------------------------
1214 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1216 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1217 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1218 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1221 LD32(i1, 0x10000000);
1223 LD32(p2, DCPLB_DATA9);
1225 X3_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1227 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1229 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1231 // Now check that handler read correct values
1232 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1233 CHECKREG(r5, 0x10000000);
1234 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB9));
1235 CHECKREG_SYM(r7, X3_9, r0); // RETX should be value of X3_9 (HARDCODED ADDR!!)
1237 //-------------------------------------------------------
1238 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1240 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1241 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1242 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1245 LD32(i1, 0x10000000);
1247 LD32(p2, DCPLB_DATA10);
1249 X3_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1251 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1253 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1255 // Now check that handler read correct values
1256 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1257 CHECKREG(r5, 0x10000000);
1258 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB10));
1259 CHECKREG_SYM(r7, X3_10, r0); // RETX should be value of X3_10 (HARDCODED ADDR!!)
1261 //-------------------------------------------------------
1262 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1264 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1265 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1266 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1269 LD32(i1, 0x10000000);
1271 LD32(p2, DCPLB_DATA11);
1273 X3_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1275 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1277 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1279 // Now check that handler read correct values
1280 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1281 CHECKREG(r5, 0x10000000);
1282 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB11));
1283 CHECKREG_SYM(r7, X3_11, r0); // RETX should be value of X3_11 (HARDCODED ADDR!!)
1285 //-------------------------------------------------------
1286 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1288 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1289 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1290 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1293 LD32(i1, 0x10000000);
1295 LD32(p2, DCPLB_DATA12);
1297 X3_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1299 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1301 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1303 // Now check that handler read correct values
1304 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1305 CHECKREG(r5, 0x10000000);
1306 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB12));
1307 CHECKREG_SYM(r7, X3_12, r0); // RETX should be value of X3_12 (HARDCODED ADDR!!)
1309 //-------------------------------------------------------
1310 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1312 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1313 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1314 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1317 LD32(i1, 0x10000000);
1319 LD32(p2, DCPLB_DATA13);
1321 X3_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1323 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1325 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1327 // Now check that handler read correct values
1328 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1329 CHECKREG(r5, 0x10000000);
1330 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB13));
1331 CHECKREG_SYM(r7, X3_13, r0); // RETX should be value of X3_13 (HARDCODED ADDR!!)
1333 //-------------------------------------------------------
1334 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1336 WR_MMR(DCPLB_DATA3, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1337 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1338 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1341 LD32(i1, 0x10000000);
1343 LD32(p2, DCPLB_DATA14);
1345 X3_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1347 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1349 WR_MMR(DCPLB_DATA3, 0, p0, r0);
1351 // Now check that handler read correct values
1352 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1353 CHECKREG(r5, 0x10000000);
1354 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB3|FAULT_CPLB14));
1355 CHECKREG_SYM(r7, X3_14, r0); // RETX should be value of X3_14 (HARDCODED ADDR!!)
1357 //-------------------------------------------------------
1358 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1360 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1361 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1362 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1365 LD32(i1, 0x10000000);
1367 LD32(p2, DCPLB_DATA5);
1369 X4_5: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1371 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1373 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1375 // Now check that handler read correct values
1376 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1377 CHECKREG(r5, 0x10000000);
1378 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB5));
1379 CHECKREG_SYM(r7, X4_5, r0); // RETX should be value of X4_5 (HARDCODED ADDR!!)
1381 //-------------------------------------------------------
1382 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1384 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1385 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1386 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1389 LD32(i1, 0x10000000);
1391 LD32(p2, DCPLB_DATA6);
1393 X4_6: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1395 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1397 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1399 // Now check that handler read correct values
1400 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1401 CHECKREG(r5, 0x10000000);
1402 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB6));
1403 CHECKREG_SYM(r7, X4_6, r0); // RETX should be value of X4_6 (HARDCODED ADDR!!)
1405 //-------------------------------------------------------
1406 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1408 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1409 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1410 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1413 LD32(i1, 0x10000000);
1415 LD32(p2, DCPLB_DATA7);
1417 X4_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1419 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1421 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1423 // Now check that handler read correct values
1424 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1425 CHECKREG(r5, 0x10000000);
1426 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB7));
1427 CHECKREG_SYM(r7, X4_7, r0); // RETX should be value of X4_7 (HARDCODED ADDR!!)
1429 //-------------------------------------------------------
1430 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1432 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1433 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1434 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1437 LD32(i1, 0x10000000);
1439 LD32(p2, DCPLB_DATA8);
1441 X4_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1443 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1445 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1447 // Now check that handler read correct values
1448 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1449 CHECKREG(r5, 0x10000000);
1450 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB8));
1451 CHECKREG_SYM(r7, X4_8, r0); // RETX should be value of X4_8 (HARDCODED ADDR!!)
1453 //-------------------------------------------------------
1454 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1456 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1457 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1458 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1461 LD32(i1, 0x10000000);
1463 LD32(p2, DCPLB_DATA9);
1465 X4_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1467 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1469 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1471 // Now check that handler read correct values
1472 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1473 CHECKREG(r5, 0x10000000);
1474 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB9));
1475 CHECKREG_SYM(r7, X4_9, r0); // RETX should be value of X4_9 (HARDCODED ADDR!!)
1477 //-------------------------------------------------------
1478 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1480 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1481 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1482 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1485 LD32(i1, 0x10000000);
1487 LD32(p2, DCPLB_DATA10);
1489 X4_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1491 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1493 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1495 // Now check that handler read correct values
1496 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1497 CHECKREG(r5, 0x10000000);
1498 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB10));
1499 CHECKREG_SYM(r7, X4_10, r0); // RETX should be value of X4_10 (HARDCODED ADDR!!)
1501 //-------------------------------------------------------
1502 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1504 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1505 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1506 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1509 LD32(i1, 0x10000000);
1511 LD32(p2, DCPLB_DATA11);
1513 X4_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1515 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1517 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1519 // Now check that handler read correct values
1520 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1521 CHECKREG(r5, 0x10000000);
1522 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB11));
1523 CHECKREG_SYM(r7, X4_11, r0); // RETX should be value of X4_11 (HARDCODED ADDR!!)
1525 //-------------------------------------------------------
1526 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1528 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1529 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1530 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1533 LD32(i1, 0x10000000);
1535 LD32(p2, DCPLB_DATA12);
1537 X4_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1539 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1541 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1543 // Now check that handler read correct values
1544 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1545 CHECKREG(r5, 0x10000000);
1546 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB12));
1547 CHECKREG_SYM(r7, X4_12, r0); // RETX should be value of X4_12 (HARDCODED ADDR!!)
1549 //-------------------------------------------------------
1550 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1552 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1553 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1554 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1557 LD32(i1, 0x10000000);
1559 LD32(p2, DCPLB_DATA13);
1561 X4_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1563 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1565 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1567 // Now check that handler read correct values
1568 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1569 CHECKREG(r5, 0x10000000);
1570 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB13));
1571 CHECKREG_SYM(r7, X4_13, r0); // RETX should be value of X4_13 (HARDCODED ADDR!!)
1573 //-------------------------------------------------------
1574 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1576 WR_MMR(DCPLB_DATA4, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1577 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1578 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1581 LD32(i1, 0x10000000);
1583 LD32(p2, DCPLB_DATA14);
1585 X4_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1587 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1589 WR_MMR(DCPLB_DATA4, 0, p0, r0);
1591 // Now check that handler read correct values
1592 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1593 CHECKREG(r5, 0x10000000);
1594 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB4|FAULT_CPLB14));
1595 CHECKREG_SYM(r7, X4_14, r0); // RETX should be value of X4_14 (HARDCODED ADDR!!)
1597 //-------------------------------------------------------
1598 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1600 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1601 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1602 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1605 LD32(i1, 0x10000000);
1607 LD32(p2, DCPLB_DATA6);
1609 X5_6: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1611 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1613 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1615 // Now check that handler read correct values
1616 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1617 CHECKREG(r5, 0x10000000);
1618 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB6));
1619 CHECKREG_SYM(r7, X5_6, r0); // RETX should be value of X5_6 (HARDCODED ADDR!!)
1621 //-------------------------------------------------------
1622 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1624 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1625 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1626 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1629 LD32(i1, 0x10000000);
1631 LD32(p2, DCPLB_DATA7);
1633 X5_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1635 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1637 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1639 // Now check that handler read correct values
1640 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1641 CHECKREG(r5, 0x10000000);
1642 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB7));
1643 CHECKREG_SYM(r7, X5_7, r0); // RETX should be value of X5_7 (HARDCODED ADDR!!)
1645 //-------------------------------------------------------
1646 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1648 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1649 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1650 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1653 LD32(i1, 0x10000000);
1655 LD32(p2, DCPLB_DATA8);
1657 X5_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1659 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1661 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1663 // Now check that handler read correct values
1664 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1665 CHECKREG(r5, 0x10000000);
1666 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB8));
1667 CHECKREG_SYM(r7, X5_8, r0); // RETX should be value of X5_8 (HARDCODED ADDR!!)
1669 //-------------------------------------------------------
1670 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1672 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1673 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1674 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1677 LD32(i1, 0x10000000);
1679 LD32(p2, DCPLB_DATA9);
1681 X5_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1683 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1685 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1687 // Now check that handler read correct values
1688 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1689 CHECKREG(r5, 0x10000000);
1690 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB9));
1691 CHECKREG_SYM(r7, X5_9, r0); // RETX should be value of X5_9 (HARDCODED ADDR!!)
1693 //-------------------------------------------------------
1694 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1696 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1697 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1698 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1701 LD32(i1, 0x10000000);
1703 LD32(p2, DCPLB_DATA10);
1705 X5_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1707 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1709 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1711 // Now check that handler read correct values
1712 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1713 CHECKREG(r5, 0x10000000);
1714 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB10));
1715 CHECKREG_SYM(r7, X5_10, r0); // RETX should be value of X5_10 (HARDCODED ADDR!!)
1717 //-------------------------------------------------------
1718 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1720 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1721 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1722 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1725 LD32(i1, 0x10000000);
1727 LD32(p2, DCPLB_DATA11);
1729 X5_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1731 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1733 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1735 // Now check that handler read correct values
1736 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1737 CHECKREG(r5, 0x10000000);
1738 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB11));
1739 CHECKREG_SYM(r7, X5_11, r0); // RETX should be value of X5_11 (HARDCODED ADDR!!)
1741 //-------------------------------------------------------
1742 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1744 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1745 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1746 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1749 LD32(i1, 0x10000000);
1751 LD32(p2, DCPLB_DATA12);
1753 X5_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1755 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1757 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1759 // Now check that handler read correct values
1760 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1761 CHECKREG(r5, 0x10000000);
1762 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB12));
1763 CHECKREG_SYM(r7, X5_12, r0); // RETX should be value of X5_12 (HARDCODED ADDR!!)
1765 //-------------------------------------------------------
1766 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1768 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1769 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1770 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1773 LD32(i1, 0x10000000);
1775 LD32(p2, DCPLB_DATA13);
1777 X5_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1779 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1781 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1783 // Now check that handler read correct values
1784 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1785 CHECKREG(r5, 0x10000000);
1786 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB13));
1787 CHECKREG_SYM(r7, X5_13, r0); // RETX should be value of X5_13 (HARDCODED ADDR!!)
1789 //-------------------------------------------------------
1790 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1792 WR_MMR(DCPLB_DATA5, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1793 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1794 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1797 LD32(i1, 0x10000000);
1799 LD32(p2, DCPLB_DATA14);
1801 X5_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1803 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1805 WR_MMR(DCPLB_DATA5, 0, p0, r0);
1807 // Now check that handler read correct values
1808 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1809 CHECKREG(r5, 0x10000000);
1810 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB5|FAULT_CPLB14));
1811 CHECKREG_SYM(r7, X5_14, r0); // RETX should be value of X5_14 (HARDCODED ADDR!!)
1813 //-------------------------------------------------------
1814 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1816 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1817 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1818 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1821 LD32(i1, 0x10000000);
1823 LD32(p2, DCPLB_DATA7);
1825 X6_7: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1827 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1829 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1831 // Now check that handler read correct values
1832 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1833 CHECKREG(r5, 0x10000000);
1834 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB7));
1835 CHECKREG_SYM(r7, X6_7, r0); // RETX should be value of X6_7 (HARDCODED ADDR!!)
1837 //-------------------------------------------------------
1838 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1840 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1841 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1842 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1845 LD32(i1, 0x10000000);
1847 LD32(p2, DCPLB_DATA8);
1849 X6_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1851 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1853 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1855 // Now check that handler read correct values
1856 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1857 CHECKREG(r5, 0x10000000);
1858 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB8));
1859 CHECKREG_SYM(r7, X6_8, r0); // RETX should be value of X6_8 (HARDCODED ADDR!!)
1861 //-------------------------------------------------------
1862 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1864 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1865 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1866 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1869 LD32(i1, 0x10000000);
1871 LD32(p2, DCPLB_DATA9);
1873 X6_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1875 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1877 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1879 // Now check that handler read correct values
1880 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1881 CHECKREG(r5, 0x10000000);
1882 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB9));
1883 CHECKREG_SYM(r7, X6_9, r0); // RETX should be value of X6_9 (HARDCODED ADDR!!)
1885 //-------------------------------------------------------
1886 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1888 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1889 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1890 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1893 LD32(i1, 0x10000000);
1895 LD32(p2, DCPLB_DATA10);
1897 X6_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1899 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1901 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1903 // Now check that handler read correct values
1904 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1905 CHECKREG(r5, 0x10000000);
1906 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB10));
1907 CHECKREG_SYM(r7, X6_10, r0); // RETX should be value of X6_10 (HARDCODED ADDR!!)
1909 //-------------------------------------------------------
1910 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1912 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1913 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1914 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1917 LD32(i1, 0x10000000);
1919 LD32(p2, DCPLB_DATA11);
1921 X6_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1923 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1925 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1927 // Now check that handler read correct values
1928 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1929 CHECKREG(r5, 0x10000000);
1930 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB11));
1931 CHECKREG_SYM(r7, X6_11, r0); // RETX should be value of X6_11 (HARDCODED ADDR!!)
1933 //-------------------------------------------------------
1934 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1936 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1937 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1938 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1941 LD32(i1, 0x10000000);
1943 LD32(p2, DCPLB_DATA12);
1945 X6_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1947 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1949 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1951 // Now check that handler read correct values
1952 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1953 CHECKREG(r5, 0x10000000);
1954 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB12));
1955 CHECKREG_SYM(r7, X6_12, r0); // RETX should be value of X6_12 (HARDCODED ADDR!!)
1957 //-------------------------------------------------------
1958 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1960 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1961 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1962 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1965 LD32(i1, 0x10000000);
1967 LD32(p2, DCPLB_DATA13);
1969 X6_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1971 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1973 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1975 // Now check that handler read correct values
1976 CHECKREG(r4,0x27); // supv and EXCPT_PROT
1977 CHECKREG(r5, 0x10000000);
1978 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB13));
1979 CHECKREG_SYM(r7, X6_13, r0); // RETX should be value of X6_13 (HARDCODED ADDR!!)
1981 //-------------------------------------------------------
1982 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
1984 WR_MMR(DCPLB_DATA6, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1985 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
1986 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
1989 LD32(i1, 0x10000000);
1991 LD32(p2, DCPLB_DATA14);
1993 X6_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
1995 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
1997 WR_MMR(DCPLB_DATA6, 0, p0, r0);
1999 // Now check that handler read correct values
2000 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2001 CHECKREG(r5, 0x10000000);
2002 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB6|FAULT_CPLB14));
2003 CHECKREG_SYM(r7, X6_14, r0); // RETX should be value of X6_14 (HARDCODED ADDR!!)
2005 //-------------------------------------------------------
2006 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2008 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2009 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2010 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2013 LD32(i1, 0x10000000);
2015 LD32(p2, DCPLB_DATA8);
2017 X7_8: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2019 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2021 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2023 // Now check that handler read correct values
2024 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2025 CHECKREG(r5, 0x10000000);
2026 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB8));
2027 CHECKREG_SYM(r7, X7_8, r0); // RETX should be value of X7_8 (HARDCODED ADDR!!)
2029 //-------------------------------------------------------
2030 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2032 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2033 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2034 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2037 LD32(i1, 0x10000000);
2039 LD32(p2, DCPLB_DATA9);
2041 X7_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2043 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2045 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2047 // Now check that handler read correct values
2048 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2049 CHECKREG(r5, 0x10000000);
2050 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB9));
2051 CHECKREG_SYM(r7, X7_9, r0); // RETX should be value of X7_9 (HARDCODED ADDR!!)
2053 //-------------------------------------------------------
2054 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2056 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2057 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2058 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2061 LD32(i1, 0x10000000);
2063 LD32(p2, DCPLB_DATA10);
2065 X7_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2067 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2069 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2071 // Now check that handler read correct values
2072 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2073 CHECKREG(r5, 0x10000000);
2074 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB10));
2075 CHECKREG_SYM(r7, X7_10, r0); // RETX should be value of X7_10 (HARDCODED ADDR!!)
2077 //-------------------------------------------------------
2078 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2080 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2081 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2082 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2085 LD32(i1, 0x10000000);
2087 LD32(p2, DCPLB_DATA11);
2089 X7_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2091 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2093 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2095 // Now check that handler read correct values
2096 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2097 CHECKREG(r5, 0x10000000);
2098 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB11));
2099 CHECKREG_SYM(r7, X7_11, r0); // RETX should be value of X7_11 (HARDCODED ADDR!!)
2101 //-------------------------------------------------------
2102 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2104 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2105 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2106 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2109 LD32(i1, 0x10000000);
2111 LD32(p2, DCPLB_DATA12);
2113 X7_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2115 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2117 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2119 // Now check that handler read correct values
2120 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2121 CHECKREG(r5, 0x10000000);
2122 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB12));
2123 CHECKREG_SYM(r7, X7_12, r0); // RETX should be value of X7_12 (HARDCODED ADDR!!)
2125 //-------------------------------------------------------
2126 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2128 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2129 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2130 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2133 LD32(i1, 0x10000000);
2135 LD32(p2, DCPLB_DATA13);
2137 X7_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2139 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2141 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2143 // Now check that handler read correct values
2144 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2145 CHECKREG(r5, 0x10000000);
2146 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB13));
2147 CHECKREG_SYM(r7, X7_13, r0); // RETX should be value of X7_13 (HARDCODED ADDR!!)
2149 //-------------------------------------------------------
2150 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2152 WR_MMR(DCPLB_DATA7, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2153 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2154 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2157 LD32(i1, 0x10000000);
2159 LD32(p2, DCPLB_DATA14);
2161 X7_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2163 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2165 WR_MMR(DCPLB_DATA7, 0, p0, r0);
2167 // Now check that handler read correct values
2168 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2169 CHECKREG(r5, 0x10000000);
2170 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB7|FAULT_CPLB14));
2171 CHECKREG_SYM(r7, X7_14, r0); // RETX should be value of X7_14 (HARDCODED ADDR!!)
2173 //-------------------------------------------------------
2174 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2176 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2177 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2178 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2181 LD32(i1, 0x10000000);
2183 LD32(p2, DCPLB_DATA9);
2185 X8_9: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2187 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2189 WR_MMR(DCPLB_DATA8, 0, p0, r0);
2191 // Now check that handler read correct values
2192 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2193 CHECKREG(r5, 0x10000000);
2194 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB8|FAULT_CPLB9));
2195 CHECKREG_SYM(r7, X8_9, r0); // RETX should be value of X8_9 (HARDCODED ADDR!!)
2197 //-------------------------------------------------------
2198 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2200 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2201 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2202 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2205 LD32(i1, 0x10000000);
2207 LD32(p2, DCPLB_DATA10);
2209 X8_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2211 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2213 WR_MMR(DCPLB_DATA8, 0, p0, r0);
2215 // Now check that handler read correct values
2216 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2217 CHECKREG(r5, 0x10000000);
2218 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB8|FAULT_CPLB10));
2219 CHECKREG_SYM(r7, X8_10, r0); // RETX should be value of X8_10 (HARDCODED ADDR!!)
2221 //-------------------------------------------------------
2222 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2224 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2225 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2226 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2229 LD32(i1, 0x10000000);
2231 LD32(p2, DCPLB_DATA11);
2233 X8_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2235 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2237 WR_MMR(DCPLB_DATA8, 0, p0, r0);
2239 // Now check that handler read correct values
2240 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2241 CHECKREG(r5, 0x10000000);
2242 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB8|FAULT_CPLB11));
2243 CHECKREG_SYM(r7, X8_11, r0); // RETX should be value of X8_11 (HARDCODED ADDR!!)
2245 //-------------------------------------------------------
2246 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2248 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2249 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2250 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2253 LD32(i1, 0x10000000);
2255 LD32(p2, DCPLB_DATA12);
2257 X8_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2259 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2261 WR_MMR(DCPLB_DATA8, 0, p0, r0);
2263 // Now check that handler read correct values
2264 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2265 CHECKREG(r5, 0x10000000);
2266 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB8|FAULT_CPLB12));
2267 CHECKREG_SYM(r7, X8_12, r0); // RETX should be value of X8_12 (HARDCODED ADDR!!)
2269 //-------------------------------------------------------
2270 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2272 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2273 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2274 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2277 LD32(i1, 0x10000000);
2279 LD32(p2, DCPLB_DATA13);
2281 X8_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2283 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2285 WR_MMR(DCPLB_DATA8, 0, p0, r0);
2287 // Now check that handler read correct values
2288 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2289 CHECKREG(r5, 0x10000000);
2290 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB8|FAULT_CPLB13));
2291 CHECKREG_SYM(r7, X8_13, r0); // RETX should be value of X8_13 (HARDCODED ADDR!!)
2293 //-------------------------------------------------------
2294 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2296 WR_MMR(DCPLB_DATA8, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2297 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2298 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2301 LD32(i1, 0x10000000);
2303 LD32(p2, DCPLB_DATA14);
2305 X8_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2307 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2309 WR_MMR(DCPLB_DATA8, 0, p0, r0);
2311 // Now check that handler read correct values
2312 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2313 CHECKREG(r5, 0x10000000);
2314 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB8|FAULT_CPLB14));
2315 CHECKREG_SYM(r7, X8_14, r0); // RETX should be value of X8_14 (HARDCODED ADDR!!)
2317 //-------------------------------------------------------
2318 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2320 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2321 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2322 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2325 LD32(i1, 0x10000000);
2327 LD32(p2, DCPLB_DATA10);
2329 X9_10: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2331 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2333 WR_MMR(DCPLB_DATA9, 0, p0, r0);
2335 // Now check that handler read correct values
2336 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2337 CHECKREG(r5, 0x10000000);
2338 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB9|FAULT_CPLB10));
2339 CHECKREG_SYM(r7, X9_10, r0); // RETX should be value of X9_10 (HARDCODED ADDR!!)
2341 //-------------------------------------------------------
2342 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2344 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2345 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2346 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2349 LD32(i1, 0x10000000);
2351 LD32(p2, DCPLB_DATA11);
2353 X9_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2355 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2357 WR_MMR(DCPLB_DATA9, 0, p0, r0);
2359 // Now check that handler read correct values
2360 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2361 CHECKREG(r5, 0x10000000);
2362 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB9|FAULT_CPLB11));
2363 CHECKREG_SYM(r7, X9_11, r0); // RETX should be value of X9_11 (HARDCODED ADDR!!)
2365 //-------------------------------------------------------
2366 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2368 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2369 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2370 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2373 LD32(i1, 0x10000000);
2375 LD32(p2, DCPLB_DATA12);
2377 X9_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2379 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2381 WR_MMR(DCPLB_DATA9, 0, p0, r0);
2383 // Now check that handler read correct values
2384 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2385 CHECKREG(r5, 0x10000000);
2386 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB9|FAULT_CPLB12));
2387 CHECKREG_SYM(r7, X9_12, r0); // RETX should be value of X9_12 (HARDCODED ADDR!!)
2389 //-------------------------------------------------------
2390 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2392 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2393 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2394 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2397 LD32(i1, 0x10000000);
2399 LD32(p2, DCPLB_DATA13);
2401 X9_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2403 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2405 WR_MMR(DCPLB_DATA9, 0, p0, r0);
2407 // Now check that handler read correct values
2408 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2409 CHECKREG(r5, 0x10000000);
2410 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB9|FAULT_CPLB13));
2411 CHECKREG_SYM(r7, X9_13, r0); // RETX should be value of X9_13 (HARDCODED ADDR!!)
2413 //-------------------------------------------------------
2414 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2416 WR_MMR(DCPLB_DATA9, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2417 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2418 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2421 LD32(i1, 0x10000000);
2423 LD32(p2, DCPLB_DATA14);
2425 X9_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2427 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2429 WR_MMR(DCPLB_DATA9, 0, p0, r0);
2431 // Now check that handler read correct values
2432 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2433 CHECKREG(r5, 0x10000000);
2434 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB9|FAULT_CPLB14));
2435 CHECKREG_SYM(r7, X9_14, r0); // RETX should be value of X9_14 (HARDCODED ADDR!!)
2437 //-------------------------------------------------------
2438 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2440 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2441 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2442 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2445 LD32(i1, 0x10000000);
2447 LD32(p2, DCPLB_DATA11);
2449 X10_11: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2451 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2453 WR_MMR(DCPLB_DATA10, 0, p0, r0);
2455 // Now check that handler read correct values
2456 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2457 CHECKREG(r5, 0x10000000);
2458 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB10|FAULT_CPLB11));
2459 CHECKREG_SYM(r7, X10_11, r0); // RETX should be value of X10_11 (HARDCODED ADDR!!)
2461 //-------------------------------------------------------
2462 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2464 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2465 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2466 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2469 LD32(i1, 0x10000000);
2471 LD32(p2, DCPLB_DATA12);
2473 X10_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2475 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2477 WR_MMR(DCPLB_DATA10, 0, p0, r0);
2479 // Now check that handler read correct values
2480 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2481 CHECKREG(r5, 0x10000000);
2482 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB10|FAULT_CPLB12));
2483 CHECKREG_SYM(r7, X10_12, r0); // RETX should be value of X10_12 (HARDCODED ADDR!!)
2485 //-------------------------------------------------------
2486 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2488 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2489 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2490 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2493 LD32(i1, 0x10000000);
2495 LD32(p2, DCPLB_DATA13);
2497 X10_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2499 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2501 WR_MMR(DCPLB_DATA10, 0, p0, r0);
2503 // Now check that handler read correct values
2504 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2505 CHECKREG(r5, 0x10000000);
2506 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB10|FAULT_CPLB13));
2507 CHECKREG_SYM(r7, X10_13, r0); // RETX should be value of X10_13 (HARDCODED ADDR!!)
2509 //-------------------------------------------------------
2510 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2512 WR_MMR(DCPLB_DATA10, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2513 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2514 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2517 LD32(i1, 0x10000000);
2519 LD32(p2, DCPLB_DATA14);
2521 X10_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2523 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2525 WR_MMR(DCPLB_DATA10, 0, p0, r0);
2527 // Now check that handler read correct values
2528 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2529 CHECKREG(r5, 0x10000000);
2530 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB10|FAULT_CPLB14));
2531 CHECKREG_SYM(r7, X10_14, r0); // RETX should be value of X10_14 (HARDCODED ADDR!!)
2533 //-------------------------------------------------------
2534 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2536 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2537 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2538 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2541 LD32(i1, 0x10000000);
2543 LD32(p2, DCPLB_DATA12);
2545 X11_12: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2547 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2549 WR_MMR(DCPLB_DATA11, 0, p0, r0);
2551 // Now check that handler read correct values
2552 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2553 CHECKREG(r5, 0x10000000);
2554 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB11|FAULT_CPLB12));
2555 CHECKREG_SYM(r7, X11_12, r0); // RETX should be value of X11_12 (HARDCODED ADDR!!)
2557 //-------------------------------------------------------
2558 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2560 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2561 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2562 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2565 LD32(i1, 0x10000000);
2567 LD32(p2, DCPLB_DATA13);
2569 X11_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2571 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2573 WR_MMR(DCPLB_DATA11, 0, p0, r0);
2575 // Now check that handler read correct values
2576 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2577 CHECKREG(r5, 0x10000000);
2578 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB11|FAULT_CPLB13));
2579 CHECKREG_SYM(r7, X11_13, r0); // RETX should be value of X11_13 (HARDCODED ADDR!!)
2581 //-------------------------------------------------------
2582 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2584 WR_MMR(DCPLB_DATA11, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2585 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2586 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2589 LD32(i1, 0x10000000);
2591 LD32(p2, DCPLB_DATA14);
2593 X11_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2595 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2597 WR_MMR(DCPLB_DATA11, 0, p0, r0);
2599 // Now check that handler read correct values
2600 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2601 CHECKREG(r5, 0x10000000);
2602 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB11|FAULT_CPLB14));
2603 CHECKREG_SYM(r7, X11_14, r0); // RETX should be value of X11_14 (HARDCODED ADDR!!)
2605 //-------------------------------------------------------
2606 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2608 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2609 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2610 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2613 LD32(i1, 0x10000000);
2615 LD32(p2, DCPLB_DATA13);
2617 X12_13: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2619 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2621 WR_MMR(DCPLB_DATA12, 0, p0, r0);
2623 // Now check that handler read correct values
2624 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2625 CHECKREG(r5, 0x10000000);
2626 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB12|FAULT_CPLB13));
2627 CHECKREG_SYM(r7, X12_13, r0); // RETX should be value of X12_13 (HARDCODED ADDR!!)
2629 //-------------------------------------------------------
2630 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2632 WR_MMR(DCPLB_DATA12, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2633 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2634 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2637 LD32(i1, 0x10000000);
2639 LD32(p2, DCPLB_DATA14);
2641 X12_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2643 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2645 WR_MMR(DCPLB_DATA12, 0, p0, r0);
2647 // Now check that handler read correct values
2648 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2649 CHECKREG(r5, 0x10000000);
2650 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB12|FAULT_CPLB14));
2651 CHECKREG_SYM(r7, X12_14, r0); // RETX should be value of X12_14 (HARDCODED ADDR!!)
2653 //-------------------------------------------------------
2654 R0 = 0;R1 = 0;R2 = 0;R3 = 0;R4 = 0;R5 = 0;R6 = 0;R7 = 0;
2656 WR_MMR(DCPLB_DATA13, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2657 WR_MMR(DCPLB_DATA14, (PAGE_SIZE_1K|CPLB_VALID|CPLB_DIRTY|CPLB_SUPV_WR|CPLB_USER_RW), p0, r0);
2658 WR_MMR(DMEM_CONTROL, ENDM | ENDCPLB | DMC_AB_CACHE, p0, r0);
2661 LD32(i1, 0x10000000);
2663 LD32(p2, DCPLB_DATA14);
2665 X13_14: A0 = 0 || NOP || [ I1 ] = R1; // Exception should occur here
2667 WR_MMR(DMEM_CONTROL, ENDM | DMC_AB_CACHE, p0, r0);
2669 WR_MMR(DCPLB_DATA13, 0, p0, r0);
2671 // Now check that handler read correct values
2672 CHECKREG(r4,0x27); // supv and EXCPT_PROT
2673 CHECKREG(r5, 0x10000000);
2674 CHECKREG(r6, (FAULT_WRITE|FAULT_DAG1|FAULT_SUPV|FAULT_CPLB13|FAULT_CPLB14));
2675 CHECKREG_SYM(r7, X13_14, r0); // RETX should be value of X13_14 (HARDCODED ADDR!!)
2677 //-------------------------------------------------------