]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/PIC32MZ_MPLAB/RegisterTestTasks.S
Update version number in readiness for V10.3.0 release. Sync SVN with reviewed releas...
[freertos] / FreeRTOS / Demo / PIC32MZ_MPLAB / RegisterTestTasks.S
1 /*\r
2  * FreeRTOS Kernel V10.3.0\r
3  * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://www.FreeRTOS.org\r
23  * http://aws.amazon.com/freertos\r
24  *\r
25  * 1 tab == 4 spaces!\r
26  */\r
27 \r
28 \r
29 #include <xc.h>\r
30 #include <sys/asm.h>\r
31 #include "FreeRTOSConfig.h"\r
32 \r
33         .set    nomips16\r
34         .set    noreorder\r
35 \r
36 \r
37         .global vRegTest1\r
38         .global vRegTest2\r
39 \r
40 /************************************************************************/\r
41 /* Reg test macro helper. Test a register for a known value branching to\r
42 error_loop if not correct otherwise continuing on */\r
43 .macro  portREG_TEST work_reg, test_reg, test_value\r
44 \r
45         /* Check each register maintains the value assigned to it for the lifetime\r
46         of the task. */\r
47         addiu   \work_reg, $0, 0x00\r
48         addiu   \work_reg, \test_reg, -\test_value\r
49         beq             \work_reg, $0, 1f\r
50         nop\r
51         /* The register value was not that expected.  Jump to the error loop so the\r
52         cycle counter stops incrementing. */\r
53         b       error_loop\r
54         nop\r
55 1:\r
56         .endm\r
57 \r
58 /************************************************************************/\r
59 /* FPU reg test macro helper, Test an FPU register for a known value branching to\r
60 error_loop if not correct otherwise continuing on */\r
61         #if ( __mips_hard_float == 1)  && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
62 .macro  portFPU_REG_TEST work_reg, test_reg, test_value\r
63         /* get the lower 32 bit value from the FPU and compare to the test value */\r
64         mfc1    \work_reg, \test_reg\r
65         addiu   \work_reg, \work_reg, -\test_value\r
66         beq             \work_reg, $0, 1f\r
67         nop\r
68 \r
69         /* The register values was not that expected. Jump to the error loop */\r
70         b       error_loop\r
71         nop\r
72 1:\r
73         .endm\r
74         #endif\r
75 \r
76 \r
77 /************************************************************************/\r
78         .set    noreorder\r
79         .set    noat\r
80         .ent    error_loop\r
81 \r
82 /* Reg test tasks call the error loop when they find an error.  Sitting in the\r
83 tight error loop prevents them incrementing their ulRegTestnCycles counter, and\r
84 so allows the check softwate timer to know an error has been found. */\r
85 error_loop:\r
86         b               .\r
87         nop\r
88 \r
89         .end error_loop\r
90 \r
91 \r
92         .set    noreorder\r
93         .set    noat\r
94         .ent    vRegTest1\r
95 \r
96 vRegTest1:\r
97         /* Fill the registers with known values. */\r
98         addiu   $1, $0, 0x11\r
99         addiu   $2, $0, 0x12\r
100         addiu   $3, $0, 0x13\r
101         /* $4 contains the address of the loop counter - don't mess with $4. */\r
102         addiu   $5, $0, 0x15\r
103         addiu   $6, $0, 0x16\r
104         addiu   $7, $0, 0x17\r
105         addiu   $8, $0, 0x18\r
106         addiu   $9, $0, 0x19\r
107         addiu   $10, $0, 0x110\r
108         addiu   $11, $0, 0x111\r
109         addiu   $12, $0, 0x112\r
110         addiu   $13, $0, 0x113\r
111         addiu   $14, $0, 0x114\r
112         addiu   $15, $0, 0x115\r
113         addiu   $16, $0, 0x116\r
114         addiu   $17, $0, 0x117\r
115         addiu   $18, $0, 0x118\r
116         addiu   $19, $0, 0x119\r
117         addiu   $20, $0, 0x120\r
118         addiu   $21, $0, 0x121\r
119         addiu   $23, $0, 0x123\r
120         addiu   $24, $0, 0x124\r
121         addiu   $25, $0, 0x125\r
122         addiu   $30, $0, 0x130\r
123         addiu   $22, $0, 0x131\r
124         mthi    $22, $ac1\r
125         addiu   $22, $0, 0x132\r
126         mtlo    $22, $ac1\r
127         addiu   $22, $0, 0x133\r
128         mthi    $22, $ac2\r
129         addiu   $22, $0, 0x134\r
130         mtlo    $22, $ac2\r
131         addiu   $22, $0, 0x135\r
132         mthi    $22, $ac3\r
133         addiu   $22, $0, 0x136\r
134         mtlo    $22, $ac3\r
135 \r
136         /* Test the FPU registers if they are present on the part. */\r
137         #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
138         addiu   $22, $0, 0x180\r
139         mtc1    $22, $f0\r
140         addiu   $22, $0, 0x181\r
141         mtc1    $22, $f1\r
142         addiu   $22, $0, 0x182\r
143         mtc1    $22, $f2\r
144         addiu   $22, $0, 0x183\r
145         mtc1    $22, $f3\r
146         addiu   $22, $0, 0x184\r
147         mtc1    $22, $f4\r
148         addiu   $22, $0, 0x185\r
149         mtc1    $22, $f5\r
150         addiu   $22, $0, 0x186\r
151         mtc1    $22, $f6\r
152         addiu   $22, $0, 0x187\r
153         mtc1    $22, $f7\r
154         addiu   $22, $0, 0x188\r
155         mtc1    $22, $f8\r
156         addiu   $22, $0, 0x189\r
157         mtc1    $22, $f9\r
158         addiu   $22, $0, 0x18A\r
159         mtc1    $22, $f10\r
160         addiu   $22, $0, 0x18B\r
161         mtc1    $22, $f11\r
162         addiu   $22, $0, 0x18C\r
163         mtc1    $22, $f12\r
164         addiu   $22, $0, 0x18D\r
165         mtc1    $22, $f13\r
166         addiu   $22, $0, 0x18E\r
167         mtc1    $22, $f14\r
168         addiu   $22, $0, 0x18F\r
169         mtc1    $22, $f15\r
170         addiu   $22, $0, 0x190\r
171         mtc1    $22, $f16\r
172         addiu   $22, $0, 0x191\r
173         mtc1    $22, $f17\r
174         addiu   $22, $0, 0x192\r
175         mtc1    $22, $f18\r
176         addiu   $22, $0, 0x193\r
177         mtc1    $22, $f19\r
178         addiu   $22, $0, 0x194\r
179         mtc1    $22, $f20\r
180         addiu   $22, $0, 0x195\r
181         mtc1    $22, $f21\r
182         addiu   $22, $0, 0x196\r
183         mtc1    $22, $f22\r
184         addiu   $22, $0, 0x197\r
185         mtc1    $22, $f23\r
186         addiu   $22, $0, 0x198\r
187         mtc1    $22, $f24\r
188         addiu   $22, $0, 0x199\r
189         mtc1    $22, $f25\r
190         addiu   $22, $0, 0x19A\r
191         mtc1    $22, $f26\r
192         addiu   $22, $0, 0x19B\r
193         mtc1    $22, $f27\r
194         addiu   $22, $0, 0x19C\r
195         mtc1    $22, $f28\r
196         addiu   $22, $0, 0x19D\r
197         mtc1    $22, $f29\r
198         addiu   $22, $0, 0x19E\r
199         mtc1    $22, $f30\r
200         addiu   $22, $0, 0x19F\r
201         mtc1    $22, $f31\r
202         #endif\r
203 \r
204 vRegTest1Loop:\r
205         portREG_TEST    $22, $1, 0x11\r
206         portREG_TEST    $22, $2, 0x12\r
207         portREG_TEST    $22, $3, 0x13\r
208         /* Do not test r4 as we are using it as a loop counter */\r
209         portREG_TEST    $22, $5, 0x15\r
210         portREG_TEST    $22, $6, 0x16\r
211         portREG_TEST    $22, $7, 0x17\r
212         portREG_TEST    $22, $8, 0x18\r
213         portREG_TEST    $22, $9, 0x19\r
214         portREG_TEST    $22, $10, 0x110\r
215         portREG_TEST    $22, $11, 0x111\r
216         portREG_TEST    $22, $12, 0x112\r
217         portREG_TEST    $22, $13, 0x113\r
218         portREG_TEST    $22, $14, 0x114\r
219         portREG_TEST    $22, $15, 0x115\r
220         portREG_TEST    $22, $16, 0x116\r
221         portREG_TEST    $22, $17, 0x117\r
222         portREG_TEST    $22, $18, 0x118\r
223         portREG_TEST    $22, $19, 0x119\r
224         portREG_TEST    $22, $20, 0x120\r
225         portREG_TEST    $22, $21, 0x121\r
226         /* Do not test r22, used as a helper */\r
227         portREG_TEST    $22, $23, 0x123\r
228         portREG_TEST    $22, $24, 0x124\r
229         portREG_TEST    $22, $25, 0x125\r
230         portREG_TEST    $22, $30, 0x130\r
231 \r
232         mfhi            $22, $ac1\r
233         addiu           $22, $22, -0x131\r
234         beq             $22, $0, .+16\r
235         nop\r
236         b               error_loop\r
237         nop\r
238 \r
239         mflo            $22, $ac1\r
240         addiu           $22, $22, -0x132\r
241         beq             $22, $0, .+16\r
242         nop\r
243         b               error_loop\r
244         nop\r
245 \r
246         mfhi            $22, $ac2\r
247         addiu           $22, $22, -0x133\r
248         beq             $22, $0, .+16\r
249         nop\r
250         b               error_loop\r
251         nop\r
252 \r
253         mflo            $22, $ac2\r
254         addiu           $22, $22, -0x134\r
255         beq             $22, $0, .+16\r
256         nop\r
257         b               error_loop\r
258         nop\r
259 \r
260         mfhi            $22, $ac3\r
261         addiu           $22, $22, -0x135\r
262         beq             $22, $0, .+16\r
263         nop\r
264         b               error_loop\r
265         nop\r
266 \r
267         mflo            $22, $ac3\r
268         addiu           $22, $22, -0x136\r
269         beq             $22, $0, .+16\r
270         nop\r
271         b               error_loop\r
272         nop\r
273 \r
274         /* Test the FPU registers if they are present on the part. */\r
275         #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
276                 portFPU_REG_TEST    $22, $f0, 0x180\r
277                 portFPU_REG_TEST    $22, $f1, 0x181\r
278                 portFPU_REG_TEST    $22, $f2, 0x182\r
279                 portFPU_REG_TEST    $22, $f3, 0x183\r
280                 portFPU_REG_TEST    $22, $f4, 0x184\r
281                 portFPU_REG_TEST    $22, $f5, 0x185\r
282                 portFPU_REG_TEST    $22, $f6, 0x186\r
283                 portFPU_REG_TEST    $22, $f7, 0x187\r
284                 portFPU_REG_TEST    $22, $f8, 0x188\r
285                 portFPU_REG_TEST    $22, $f9, 0x189\r
286                 portFPU_REG_TEST    $22, $f10, 0x18A\r
287                 portFPU_REG_TEST    $22, $f11, 0x18B\r
288                 portFPU_REG_TEST    $22, $f12, 0x18C\r
289                 portFPU_REG_TEST    $22, $f13, 0x18D\r
290                 portFPU_REG_TEST    $22, $f14, 0x18E\r
291                 portFPU_REG_TEST    $22, $f15, 0x18F\r
292                 portFPU_REG_TEST    $22, $f16, 0x190\r
293                 portFPU_REG_TEST    $22, $f17, 0x191\r
294                 portFPU_REG_TEST    $22, $f18, 0x192\r
295                 portFPU_REG_TEST    $22, $f19, 0x193\r
296                 portFPU_REG_TEST    $22, $f20, 0x194\r
297                 portFPU_REG_TEST    $22, $f21, 0x195\r
298                 portFPU_REG_TEST    $22, $f22, 0x196\r
299                 portFPU_REG_TEST    $22, $f23, 0x197\r
300                 portFPU_REG_TEST    $22, $f24, 0x198\r
301                 portFPU_REG_TEST    $22, $f25, 0x199\r
302                 portFPU_REG_TEST    $22, $f26, 0x19A\r
303                 portFPU_REG_TEST    $22, $f27, 0x19B\r
304                 portFPU_REG_TEST    $22, $f28, 0x19C\r
305                 portFPU_REG_TEST    $22, $f29, 0x19D\r
306                 portFPU_REG_TEST    $22, $f30, 0x19E\r
307                 portFPU_REG_TEST    $22, $f31, 0x19F\r
308         #endif\r
309 \r
310         /* No errors detected.  Increment the loop count so the check timer knows\r
311         this task is still running without error, then loop back to do it all\r
312         again.  The address of the loop counter is in $4. */\r
313         lw              $22, 0( $4 )\r
314         addiu           $22, $22, 0x01\r
315         sw              $22, 0( $4 )\r
316         b               vRegTest1Loop\r
317         nop\r
318 \r
319         .end    vRegTest1\r
320 \r
321 /************************************************************************/\r
322         .set    noreorder\r
323         .set    noat\r
324         .ent    vRegTest2\r
325 \r
326 vRegTest2:\r
327         addiu   $1, $0, 0x21\r
328         addiu   $2, $0, 0x22\r
329         addiu   $3, $0, 0x23\r
330         /* $4 contains the address of the loop counter - don't mess with $4. */\r
331         addiu   $5, $0, 0x25\r
332         addiu   $6, $0, 0x26\r
333         addiu   $7, $0, 0x27\r
334         addiu   $8, $0, 0x28\r
335         addiu   $9, $0, 0x29\r
336         addiu   $10, $0, 0x210\r
337         addiu   $11, $0, 0x211\r
338         addiu   $12, $0, 0x212\r
339         addiu   $13, $0, 0x213\r
340         addiu   $14, $0, 0x214\r
341         addiu   $15, $0, 0x215\r
342         addiu   $16, $0, 0x216\r
343         addiu   $17, $0, 0x217\r
344         addiu   $18, $0, 0x218\r
345         addiu   $19, $0, 0x219\r
346         addiu   $20, $0, 0x220\r
347         addiu   $21, $0, 0x221\r
348         addiu   $23, $0, 0x223\r
349         addiu   $24, $0, 0x224\r
350         addiu   $25, $0, 0x225\r
351         addiu   $30, $0, 0x230\r
352         addiu   $22, $0, 0x231\r
353         mthi    $22, $ac1\r
354         addiu   $22, $0, 0x232\r
355         mtlo    $22, $ac1\r
356         addiu   $22, $0, 0x233\r
357         mthi    $22, $ac2\r
358         addiu   $22, $0, 0x234\r
359         mtlo    $22, $ac2\r
360         addiu   $22, $0, 0x235\r
361         mthi    $22, $ac3\r
362         addiu   $22, $0, 0x236\r
363         mtlo    $22, $ac3\r
364 \r
365         /* Test the FPU registers if they are present on the part. */\r
366         #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
367         addiu   $22, $0, 0x280\r
368         mtc1    $22, $f0\r
369         addiu   $22, $0, 0x281\r
370         mtc1    $22, $f1\r
371         addiu   $22, $0, 0x282\r
372         mtc1    $22, $f2\r
373         addiu   $22, $0, 0x283\r
374         mtc1    $22, $f3\r
375         addiu   $22, $0, 0x284\r
376         mtc1    $22, $f4\r
377         addiu   $22, $0, 0x285\r
378         mtc1    $22, $f5\r
379         addiu   $22, $0, 0x286\r
380         mtc1    $22, $f6\r
381         addiu   $22, $0, 0x287\r
382         mtc1    $22, $f7\r
383         addiu   $22, $0, 0x288\r
384         mtc1    $22, $f8\r
385         addiu   $22, $0, 0x289\r
386         mtc1    $22, $f9\r
387         addiu   $22, $0, 0x28A\r
388         mtc1    $22, $f10\r
389         addiu   $22, $0, 0x28B\r
390         mtc1    $22, $f11\r
391         addiu   $22, $0, 0x28C\r
392         mtc1    $22, $f12\r
393         addiu   $22, $0, 0x28D\r
394         mtc1    $22, $f13\r
395         addiu   $22, $0, 0x28E\r
396         mtc1    $22, $f14\r
397         addiu   $22, $0, 0x28F\r
398         mtc1    $22, $f15\r
399         addiu   $22, $0, 0x290\r
400         mtc1    $22, $f16\r
401         addiu   $22, $0, 0x291\r
402         mtc1    $22, $f17\r
403         addiu   $22, $0, 0x292\r
404         mtc1    $22, $f18\r
405         addiu   $22, $0, 0x293\r
406         mtc1    $22, $f19\r
407         addiu   $22, $0, 0x294\r
408         mtc1    $22, $f20\r
409         addiu   $22, $0, 0x295\r
410         mtc1    $22, $f21\r
411         addiu   $22, $0, 0x296\r
412         mtc1    $22, $f22\r
413         addiu   $22, $0, 0x297\r
414         mtc1    $22, $f23\r
415         addiu   $22, $0, 0x298\r
416         mtc1    $22, $f24\r
417         addiu   $22, $0, 0x299\r
418         mtc1    $22, $f25\r
419         addiu   $22, $0, 0x29A\r
420         mtc1    $22, $f26\r
421         addiu   $22, $0, 0x29B\r
422         mtc1    $22, $f27\r
423         addiu   $22, $0, 0x29C\r
424         mtc1    $22, $f28\r
425         addiu   $22, $0, 0x29D\r
426         mtc1    $22, $f29\r
427         addiu   $22, $0, 0x29E\r
428         mtc1    $22, $f30\r
429         addiu   $22, $0, 0x29F\r
430         mtc1    $22, $f31\r
431         #endif\r
432 \r
433 vRegTest2Loop:\r
434         portREG_TEST    $22, $1, 0x21\r
435         portREG_TEST    $22, $2, 0x22\r
436         portREG_TEST    $22, $3, 0x23\r
437         /* Do not test r4 as we are using it as a loop counter */\r
438         portREG_TEST    $22, $5, 0x25\r
439         portREG_TEST    $22, $6, 0x26\r
440         portREG_TEST    $22, $7, 0x27\r
441         portREG_TEST    $22, $8, 0x28\r
442         portREG_TEST    $22, $9, 0x29\r
443         portREG_TEST    $22, $10, 0x210\r
444         portREG_TEST    $22, $11, 0x211\r
445         portREG_TEST    $22, $12, 0x212\r
446         portREG_TEST    $22, $13, 0x213\r
447         portREG_TEST    $22, $14, 0x214\r
448         portREG_TEST    $22, $15, 0x215\r
449         portREG_TEST    $22, $16, 0x216\r
450         portREG_TEST    $22, $17, 0x217\r
451         portREG_TEST    $22, $18, 0x218\r
452         portREG_TEST    $22, $19, 0x219\r
453         portREG_TEST    $22, $20, 0x220\r
454         portREG_TEST    $22, $21, 0x221\r
455         /* Do not test r22, used as a helper */\r
456         portREG_TEST    $22, $23, 0x223\r
457         portREG_TEST    $22, $24, 0x224\r
458         portREG_TEST    $22, $25, 0x225\r
459         portREG_TEST    $22, $30, 0x230\r
460 \r
461         mfhi    $22, $ac1\r
462         addiu   $22, $22, -0x231\r
463         beq             $22, $0, .+16\r
464         nop\r
465         b               error_loop\r
466         nop\r
467 \r
468         mflo    $22, $ac1\r
469         addiu   $22, $22, -0x232\r
470         beq             $22, $0, .+16\r
471         nop\r
472         b               error_loop\r
473         nop\r
474 \r
475         mfhi    $22, $ac2\r
476         addiu   $22, $22, -0x233\r
477         beq             $22, $0, .+16\r
478         nop\r
479         b               error_loop\r
480         nop\r
481 \r
482         mflo    $22, $ac2\r
483         addiu   $22, $22, -0x234\r
484         beq             $22, $0, .+16\r
485         nop\r
486         b               error_loop\r
487         nop\r
488 \r
489         mfhi    $22, $ac3\r
490         addiu   $22, $22, -0x235\r
491         beq             $22, $0, .+16\r
492         nop\r
493         b               error_loop\r
494         nop\r
495 \r
496         mflo    $22, $ac3\r
497         addiu   $22, $22, -0x236\r
498         beq             $22, $0, .+16\r
499         nop\r
500         b               error_loop\r
501         nop\r
502 \r
503         /* Test the FPU registers if they are present on the part. */\r
504         #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
505                 portFPU_REG_TEST    $22, $f0, 0x280\r
506                 portFPU_REG_TEST    $22, $f1, 0x281\r
507                 portFPU_REG_TEST    $22, $f2, 0x282\r
508                 portFPU_REG_TEST    $22, $f3, 0x283\r
509                 portFPU_REG_TEST    $22, $f4, 0x284\r
510                 portFPU_REG_TEST    $22, $f5, 0x285\r
511                 portFPU_REG_TEST    $22, $f6, 0x286\r
512                 portFPU_REG_TEST    $22, $f7, 0x287\r
513                 portFPU_REG_TEST    $22, $f8, 0x288\r
514                 portFPU_REG_TEST    $22, $f9, 0x289\r
515                 portFPU_REG_TEST    $22, $f10, 0x28A\r
516                 portFPU_REG_TEST    $22, $f11, 0x28B\r
517                 portFPU_REG_TEST    $22, $f12, 0x28C\r
518                 portFPU_REG_TEST    $22, $f13, 0x28D\r
519                 portFPU_REG_TEST    $22, $f14, 0x28E\r
520                 portFPU_REG_TEST    $22, $f15, 0x28F\r
521                 portFPU_REG_TEST    $22, $f16, 0x290\r
522                 portFPU_REG_TEST    $22, $f17, 0x291\r
523                 portFPU_REG_TEST    $22, $f18, 0x292\r
524                 portFPU_REG_TEST    $22, $f19, 0x293\r
525                 portFPU_REG_TEST    $22, $f20, 0x294\r
526                 portFPU_REG_TEST    $22, $f21, 0x295\r
527                 portFPU_REG_TEST    $22, $f22, 0x296\r
528                 portFPU_REG_TEST    $22, $f23, 0x297\r
529                 portFPU_REG_TEST    $22, $f24, 0x298\r
530                 portFPU_REG_TEST    $22, $f25, 0x299\r
531                 portFPU_REG_TEST    $22, $f26, 0x29A\r
532                 portFPU_REG_TEST    $22, $f27, 0x29B\r
533                 portFPU_REG_TEST    $22, $f28, 0x29C\r
534                 portFPU_REG_TEST    $22, $f29, 0x29D\r
535                 portFPU_REG_TEST    $22, $f30, 0x29E\r
536                 portFPU_REG_TEST    $22, $f31, 0x29F\r
537         #endif\r
538 \r
539         /* No errors detected.  Increment the loop count so the check timer knows\r
540         this task is still running without error, then loop back to do it all\r
541         again.  The address of the loop counter is in $4. */\r
542         lw              $22, 0( $4 )\r
543         addiu   $22, $22, 0x01\r
544         sw              $22, 0( $4 )\r
545         b               vRegTest2Loop\r
546         nop\r
547 \r
548         .end    vRegTest2\r
549 \r
550 \r
551 \r