]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/NEC_V850ES_IAR/RegTest.s85
1ef661da0476e90fde046373fcdf773472f1e760
[freertos] / FreeRTOS / Demo / NEC_V850ES_IAR / RegTest.s85
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 ; Note: Select the correct include files for the device used by the application.\r
28 \r
29         EXTERN  vRegTestFailed\r
30 \r
31 \r
32 \r
33 ;\r
34 ; The RegTest tasks as described in the comments at the top of main().\r
35 ;\r
36 \r
37 \r
38 ;------------------------------------------------------------------------------\r
39 \r
40 ; Functions implemented in this file\r
41 ;------------------------------------------------------------------------------\r
42     PUBLIC      vRegTest1\r
43     PUBLIC      vRegTest2\r
44 \r
45 \r
46 ;------------------------------------------------------------------------------\r
47 ;------------------------------------------------------------------------------ \r
48     RSEG CODE:CODE\r
49 vRegTest1:\r
50     MOV         0x01010101, R1\r
51     MOV         0x02020202, R2\r
52         ; Ignore R3 and R4 as these are the stack and global pointers respectively.\r
53         MOV             0x04040404, R5\r
54         MOV             0x05050505, R6\r
55         MOV             0x06060606, R7\r
56         MOV             0x07070707, R8\r
57         MOV             0x08080808, R9\r
58         MOV             0x09090909, R10\r
59         MOV             0x0a0a0a0a, R11\r
60         MOV             0x0b0b0b0b, R12\r
61         MOV             0x0c0c0c0c, R13\r
62         MOV             0x0d0d0d0d, R14\r
63         MOV             0x0e0e0e0e, R15\r
64         MOV             0x0f0f0f0f, R16\r
65         MOV             0x10101010, R17\r
66         MOV             0x11111111, R18\r
67         MOV             0x12121212, R19\r
68         MOV             0x13131313, R20\r
69         MOV             0x14141414, R21\r
70         MOV             0x15151515, R22\r
71         MOV             0x16161616, R23\r
72         MOV             0x17171717, R24\r
73 #if ( configDATA_MODE == 1 )\r
74         ;R25 is used as a base register except when the tiny model is used. */\r
75         MOV             0x18181818, R25\r
76 #endif\r
77         MOV             0x19191919, R26\r
78         MOV             0x20202020, R27\r
79         MOV             0x21212121, R28\r
80         MOV             0x22222222, R29\r
81         MOV             0x23232323, R30\r
82         \r
83 vReg1TestLoopStart:\r
84         TRAP    0\r
85         MOV             0x01010101, R31\r
86         CMP             R31, R1\r
87         BZ              $+6\r
88         JARL    vRegTestFailed, lp\r
89         MOV             0x02020202, R31\r
90         CMP             R31, R2\r
91         BZ              $+6\r
92         JARL    vRegTestFailed, lp\r
93         MOV             0x04040404, R31\r
94         CMP             R31, R5\r
95         BZ              $+6\r
96         JARL    vRegTestFailed, lp\r
97         MOV             0x05050505, R31\r
98         CMP             R31, R6\r
99         BZ              $+6\r
100         JARL    vRegTestFailed, lp\r
101         MOV             0x06060606, R31\r
102         CMP             R31, R7\r
103         BZ              $+6\r
104         JARL    vRegTestFailed, lp\r
105         MOV             0x07070707, R31\r
106         CMP             R31, R8\r
107         BZ              $+6\r
108         JARL    vRegTestFailed, lp\r
109         MOV             0x08080808, R31\r
110         CMP             R31, R9\r
111         BZ              $+6\r
112         JARL    vRegTestFailed, lp\r
113         MOV             0x09090909, R31\r
114         CMP             R31, R10\r
115         BZ              $+6\r
116         JARL    vRegTestFailed, lp\r
117         MOV             0x0a0a0a0a, R31\r
118         CMP             R31, R11\r
119         BZ              $+6\r
120         JARL    vRegTestFailed, lp\r
121         MOV             0x0b0b0b0b, R31\r
122         CMP             R31, R12\r
123         BZ              $+6\r
124         JARL    vRegTestFailed, lp\r
125         MOV             0x0c0c0c0c, R31\r
126         CMP             R31, R13\r
127         BZ              $+6\r
128         JARL    vRegTestFailed, lp\r
129         MOV             0x0d0d0d0d, R31\r
130         CMP             R31, R14\r
131         BZ              $+6\r
132         JARL    vRegTestFailed, lp\r
133         MOV             0x0e0e0e0e, R31\r
134         CMP             R31, R15\r
135         BZ              $+6\r
136         JARL    vRegTestFailed, lp\r
137         MOV             0x0f0f0f0f, R31\r
138         CMP             R31, R16\r
139         BZ              $+6\r
140         JARL    vRegTestFailed, lp\r
141         MOV             0x10101010, R31\r
142         CMP             R31, R17\r
143         BZ              $+6\r
144         JARL    vRegTestFailed, lp\r
145         MOV             0x11111111, R31\r
146         CMP             R31, R18\r
147         BZ              $+6\r
148         JARL    vRegTestFailed, lp\r
149         MOV             0x12121212, R31\r
150         CMP             R31, R19\r
151         BZ              $+6\r
152         JARL    vRegTestFailed, lp\r
153         MOV             0x13131313, R31\r
154         CMP             R31, R20\r
155         BZ              $+6\r
156         JARL    vRegTestFailed, lp\r
157         MOV             0x14141414, R31\r
158         CMP             R31, R21\r
159         BZ              $+6\r
160         JARL    vRegTestFailed, lp\r
161         MOV             0x15151515, R31\r
162         CMP             R31, R22\r
163         BZ              $+6\r
164         JARL    vRegTestFailed, lp\r
165         MOV             0x16161616, R31\r
166         CMP             R31, R23\r
167         BZ              $+6\r
168         JARL    vRegTestFailed, lp\r
169         MOV             0x17171717, R31\r
170         CMP             R31, R24\r
171         BZ              $+6\r
172         JARL    vRegTestFailed, lp\r
173 #if ( configDATA_MODE == 1 )\r
174         MOV             0x18181818, R31\r
175         CMP             R31, R25\r
176         BZ              $+6\r
177         JARL    vRegTestFailed, lp\r
178 #endif\r
179         MOV             0x19191919, R31\r
180         CMP             R31, R26\r
181         BZ              $+6\r
182         JARL    vRegTestFailed, lp\r
183         MOV             0x20202020, R31\r
184         CMP             R31, R27\r
185         BZ              $+6\r
186         JARL    vRegTestFailed, lp\r
187         MOV             0x21212121, R31\r
188         CMP             R31, R28\r
189         BZ              $+6\r
190         JARL    vRegTestFailed, lp\r
191         MOV             0x22222222, R31\r
192         CMP             R31, R29\r
193         BZ              $+6\r
194         JARL    vRegTestFailed, lp\r
195         MOV             0x23232323, R31\r
196         CMP             R31, R30\r
197         BZ              $+6\r
198         JARL    vRegTestFailed, lp\r
199         MOV             vReg1TestLoopStart, R31 \r
200         JMP             [R31]\r
201 \r
202 ;------------------------------------------------------------------------------\r
203 ;------------------------------------------------------------------------------ \r
204     RSEG CODE:CODE\r
205 vRegTest2:\r
206     MOV         0xa101010b, R1\r
207     MOV         0xa202020b, R2\r
208         ; Ignore R3 and R4 as these are the stack and global pointers respectively.\r
209         MOV             0xa404040b, R5\r
210         MOV             0xa505050b, R6\r
211         MOV             0xa606060b, R7\r
212         MOV             0xa707070b, R8\r
213         MOV             0xa808080b, R9\r
214         MOV             0xa909090b, R10\r
215         MOV             0xaa0a0a0b, R11\r
216         MOV             0xab0b0b0b, R12\r
217         MOV             0xac0c0c0b, R13\r
218         MOV             0xad0d0d0b, R14\r
219         MOV             0xae0e0e0b, R15\r
220         MOV             0xaf0f0f0b, R16\r
221         MOV             0xa010101b, R17\r
222         MOV             0xa111111b, R18\r
223         MOV             0xa212121b, R19\r
224         MOV             0xa313131b, R20\r
225         MOV             0xa414141b, R21\r
226         MOV             0xa515151b, R22\r
227         MOV             0xa616161b, R23\r
228         MOV             0xa717171b, R24\r
229 #if ( configDATA_MODE == 1 )\r
230         ;R25 is used as a base register except when the tiny model is used. */\r
231         MOV             0xa818181b, R25\r
232 #endif\r
233         MOV             0xa919191b, R26\r
234         MOV             0xa020202b, R27\r
235         MOV             0xa121212b, R28\r
236         MOV             0xa222222b, R29\r
237         MOV             0xa323232b, R30\r
238         \r
239 vReg2TestLoopStart:\r
240         MOV             0xa101010b, R31\r
241         CMP             R31, R1\r
242         BZ              $+6\r
243         JARL    vRegTestFailed, lp\r
244         MOV             0xa202020b, R31\r
245         CMP             R31, R2\r
246         BZ              $+6\r
247         JARL    vRegTestFailed, lp\r
248         MOV             0xa404040b, R31\r
249         CMP             R31, R5\r
250         BZ              $+6\r
251         JARL    vRegTestFailed, lp\r
252         MOV             0xa505050b, R31\r
253         CMP             R31, R6\r
254         BZ              $+6\r
255         JARL    vRegTestFailed, lp\r
256         MOV             0xa606060b, R31\r
257         CMP             R31, R7\r
258         BZ              $+6\r
259         JARL    vRegTestFailed, lp\r
260         MOV             0xa707070b, R31\r
261         CMP             R31, R8\r
262         BZ              $+6\r
263         JARL    vRegTestFailed, lp\r
264         MOV             0xa808080b, R31\r
265         CMP             R31, R9\r
266         BZ              $+6\r
267         JARL    vRegTestFailed, lp\r
268         MOV             0xa909090b, R31\r
269         CMP             R31, R10\r
270         BZ              $+6\r
271         JARL    vRegTestFailed, lp\r
272         MOV             0xaa0a0a0b, R31\r
273         CMP             R31, R11\r
274         BZ              $+6\r
275         JARL    vRegTestFailed, lp\r
276         MOV             0xab0b0b0b, R31\r
277         CMP             R31, R12\r
278         BZ              $+6\r
279         JARL    vRegTestFailed, lp\r
280         MOV             0xac0c0c0b, R31\r
281         CMP             R31, R13\r
282         BZ              $+6\r
283         JARL    vRegTestFailed, lp\r
284         MOV             0xad0d0d0b, R31\r
285         CMP             R31, R14\r
286         BZ              $+6\r
287         JARL    vRegTestFailed, lp\r
288         MOV             0xae0e0e0b, R31\r
289         CMP             R31, R15\r
290         BZ              $+6\r
291         JARL    vRegTestFailed, lp\r
292         MOV             0xaf0f0f0b, R31\r
293         CMP             R31, R16\r
294         BZ              $+6\r
295         JARL    vRegTestFailed, lp\r
296         MOV             0xa010101b, R31\r
297         CMP             R31, R17\r
298         BZ              $+6\r
299         JARL    vRegTestFailed, lp\r
300         MOV             0xa111111b, R31\r
301         CMP             R31, R18\r
302         BZ              $+6\r
303         JARL    vRegTestFailed, lp\r
304         MOV             0xa212121b, R31\r
305         CMP             R31, R19\r
306         BZ              $+6\r
307         JARL    vRegTestFailed, lp\r
308         MOV             0xa313131b, R31\r
309         CMP             R31, R20\r
310         BZ              $+6\r
311         JARL    vRegTestFailed, lp\r
312         MOV             0xa414141b, R31\r
313         CMP             R31, R21\r
314         BZ              $+6\r
315         JARL    vRegTestFailed, lp\r
316         MOV             0xa515151b, R31\r
317         CMP             R31, R22\r
318         BZ              $+6\r
319         JARL    vRegTestFailed, lp\r
320         MOV             0xa616161b, R31\r
321         CMP             R31, R23\r
322         BZ              $+6\r
323         JARL    vRegTestFailed, lp\r
324         MOV             0xa717171b, R31\r
325         CMP             R31, R24\r
326         BZ              $+6\r
327         JARL    vRegTestFailed, lp\r
328 #if ( configDATA_MODE == 1 )\r
329         MOV             0xa818181b, R31\r
330         CMP             R31, R25\r
331         BZ              $+6\r
332         JARL    vRegTestFailed, lp\r
333 #endif\r
334         MOV             0xa919191b, R31\r
335         CMP             R31, R26\r
336         BZ              $+6\r
337         JARL    vRegTestFailed, lp\r
338         MOV             0xa020202b, R31\r
339         CMP             R31, R27\r
340         BZ              $+6\r
341         JARL    vRegTestFailed, lp\r
342         MOV             0xa121212b, R31\r
343         CMP             R31, R28\r
344         BZ              $+6\r
345         JARL    vRegTestFailed, lp\r
346         MOV             0xa222222b, R31\r
347         CMP             R31, R29\r
348         BZ              $+6\r
349         JARL    vRegTestFailed, lp\r
350         MOV             0xa323232b, R31\r
351         CMP             R31, R30\r
352         BZ              $+6\r
353         JARL    vRegTestFailed, lp\r
354         MOV             vReg2TestLoopStart, R31 \r
355         JMP             [R31]\r
356 \r
357       END\r
358