source: trunk/Softwares/Test/Test_038/src/sys/crt0.s @ 137

Last change on this file since 137 was 102, checked in by rosiere, 16 years ago

Previous commit with new files :P

  • Property svn:keywords set to Id
File size: 13.1 KB
Line 
1/*
2 * Test_038
3 *
4 * end_ko : infinite_loop
5 * end_ok : Write in R1 the stop address and stop an data
6 *          The store in the destination of an jump
7 * start  : Test l.rori
8 */
9       
10        .file   "crt0.s"
11        /*
12        .section .vector
13        */
14        .section .text
15        .align  4       
16
17/* ---[ 0x0  : Print a error ]------------------------------------------- */
18
19        .org 0x0
20_end_ko        :       
21        l.movhi r1,     hi(_tty)
22        l.ori   r1, r1, lo(_tty)
23        l.sw    4(r1), r1 /* stop address */
24_infinite_loop :       
25        l.j     _infinite_loop
26        l.nop
27
28_end_ok :
29        l.movhi r1,     hi(_tty)
30        l.ori   r1, r1, lo(_tty)
31        l.sw    4(r1), r0 /* stop address */
32
33
34/* ---[ 0x100: RESET exception ]----------------------------------------- */
35        .org 0x100
36        .global _start
37_start:
38        /*
39             A (r1)     B (r2)     - D (r3 wait)
40                                           (r4)     
41         01) 0xdeadbeef 0x00000000 - 0xdeadbeef
42         02) 0xdeadbeef 0x00000001 - 0xef56df77
43         03) 0xdeadbeef 0x00000002 - 0xf7ab6fbb
44         04) 0xdeadbeef 0x00000003 - 0xfbd5b7dd
45         05) 0xdeadbeef 0x00000004 - 0xfdeadbee
46         06) 0xdeadbeef 0x00000005 - 0x7ef56df7
47         07) 0xdeadbeef 0x00000006 - 0xbf7ab6fb
48         08) 0xdeadbeef 0x00000007 - 0xdfbd5b7d
49         09) 0xdeadbeef 0x00000008 - 0xefdeadbe
50         10) 0xdeadbeef 0x00000009 - 0x77ef56df
51         11) 0xdeadbeef 0x0000000a - 0xbbf7ab6f
52         12) 0xdeadbeef 0x0000000b - 0xddfbd5b7
53         13) 0xdeadbeef 0x0000000c - 0xeefdeadb
54         14) 0xdeadbeef 0x0000000d - 0xf77ef56d
55         15) 0xdeadbeef 0x0000000e - 0xfbbf7ab6
56         16) 0xdeadbeef 0x0000000f - 0x7ddfbd5b
57         17) 0xdeadbeef 0x00000010 - 0xbeefdead
58         18) 0xdeadbeef 0x00000011 - 0xdf77ef56
59         19) 0xdeadbeef 0x00000012 - 0x6fbbf7ab
60         20) 0xdeadbeef 0x00000013 - 0xb7ddfbd5
61         21) 0xdeadbeef 0x00000014 - 0xdbeefdea
62         22) 0xdeadbeef 0x00000015 - 0x6df77ef5
63         23) 0xdeadbeef 0x00000016 - 0xb6fbbf7a
64         24) 0xdeadbeef 0x00000017 - 0x5b7ddfbd
65         25) 0xdeadbeef 0x00000018 - 0xadbeefde
66         26) 0xdeadbeef 0x00000019 - 0x56df77ef
67         27) 0xdeadbeef 0x0000001a - 0xab6fbbf7
68         28) 0xdeadbeef 0x0000001b - 0xd5b7ddfb
69         29) 0xdeadbeef 0x0000001c - 0xeadbeefd
70         30) 0xdeadbeef 0x0000001d - 0xf56df77e
71         31) 0xdeadbeef 0x0000001e - 0x7ab6fbbf
72         32) 0xdeadbeef 0x0000001f - 0xbd5b7ddf
73         */
74
75        /***********/
76        /* Test 1  */
77        /***********/
78        l.movhi r1,     hi(0xdeadbeef) /* RA */
79        l.ori   r1, r1, lo(0xdeadbeef)
80        l.movhi r3,     hi(0xdeadbeef) /* RD wait */
81        l.ori   r3, r3, lo(0xdeadbeef)
82       
83        l.rori  r4, r1, 0
84
85        /* Test result */
86        l.sfeq  r3, r4
87        l.bnf   _end_ko
88        l.nop
89
90        /***********/
91        /* Test 2  */
92        /***********/
93        l.movhi r1,     hi(0xdeadbeef) /* RA */
94        l.ori   r1, r1, lo(0xdeadbeef)
95        l.movhi r3,     hi(0xef56df77) /* RD wait */
96        l.ori   r3, r3, lo(0xef56df77)
97       
98        l.rori  r4, r1, 1
99
100        /* Test result */
101        l.sfeq  r3, r4
102        l.bnf   _end_ko
103        l.nop
104
105        /***********/
106        /* Test 3  */
107        /***********/
108        l.movhi r1,     hi(0xdeadbeef) /* RA */
109        l.ori   r1, r1, lo(0xdeadbeef)
110        l.movhi r3,     hi(0xf7ab6fbb) /* RD wait */
111        l.ori   r3, r3, lo(0xf7ab6fbb)
112       
113        l.rori  r4, r1, 2
114
115        /* Test result */
116        l.sfeq  r3, r4
117        l.bnf   _end_ko
118        l.nop
119
120        /***********/
121        /* Test 4  */
122        /***********/
123        l.movhi r1,     hi(0xdeadbeef) /* RA */
124        l.ori   r1, r1, lo(0xdeadbeef)
125        l.movhi r3,     hi(0xfbd5b7dd) /* RD wait */
126        l.ori   r3, r3, lo(0xfbd5b7dd)
127       
128        l.rori  r4, r1, 3
129
130        /* Test result */
131        l.sfeq  r3, r4
132        l.bnf   _end_ko
133        l.nop
134
135        /***********/
136        /* Test 5  */
137        /***********/
138        l.movhi r1,     hi(0xdeadbeef) /* RA */
139        l.ori   r1, r1, lo(0xdeadbeef)
140        l.movhi r3,     hi(0xfdeadbee) /* RD wait */
141        l.ori   r3, r3, lo(0xfdeadbee)
142       
143        l.rori  r4, r1, 4
144
145        /* Test result */
146        l.sfeq  r3, r4
147        l.bnf   _end_ko
148        l.nop
149
150        /***********/
151        /* Test 6  */
152        /***********/
153        l.movhi r1,     hi(0xdeadbeef) /* RA */
154        l.ori   r1, r1, lo(0xdeadbeef)
155        l.movhi r3,     hi(0x7ef56df7) /* RD wait */
156        l.ori   r3, r3, lo(0x7ef56df7)
157       
158        l.rori  r4, r1, 5
159
160        /* Test result */
161        l.sfeq  r3, r4
162        l.bnf   _end_ko
163        l.nop
164
165        /***********/
166        /* Test 7  */
167        /***********/
168        l.movhi r1,     hi(0xdeadbeef) /* RA */
169        l.ori   r1, r1, lo(0xdeadbeef)
170        l.movhi r3,     hi(0xbf7ab6fb) /* RD wait */
171        l.ori   r3, r3, lo(0xbf7ab6fb)
172       
173        l.rori  r4, r1, 6
174
175        /* Test result */
176        l.sfeq  r3, r4
177        l.bnf   _end_ko
178        l.nop
179
180        /***********/
181        /* Test 8  */
182        /***********/
183        l.movhi r1,     hi(0xdeadbeef) /* RA */
184        l.ori   r1, r1, lo(0xdeadbeef)
185        l.movhi r3,     hi(0xdfbd5b7d) /* RD wait */
186        l.ori   r3, r3, lo(0xdfbd5b7d)
187       
188        l.rori  r4, r1, 7
189
190        /* Test result */
191        l.sfeq  r3, r4
192        l.bnf   _end_ko
193        l.nop
194
195        /***********/
196        /* Test 9  */
197        /***********/
198        l.movhi r1,     hi(0xdeadbeef) /* RA */
199        l.ori   r1, r1, lo(0xdeadbeef)
200        l.movhi r3,     hi(0xefdeadbe) /* RD wait */
201        l.ori   r3, r3, lo(0xefdeadbe)
202       
203        l.rori  r4, r1, 8
204
205        /* Test result */
206        l.sfeq  r3, r4
207        l.bnf   _end_ko
208        l.nop
209
210        /***********/
211        /* Test 10 */
212        /***********/
213        l.movhi r1,     hi(0xdeadbeef) /* RA */
214        l.ori   r1, r1, lo(0xdeadbeef)
215        l.movhi r3,     hi(0x77ef56df) /* RD wait */
216        l.ori   r3, r3, lo(0x77ef56df)
217       
218        l.rori  r4, r1, 9
219
220        /* Test result */
221        l.sfeq  r3, r4
222        l.bnf   _end_ko
223        l.nop
224
225        /***********/
226        /* Test 11 */
227        /***********/
228        l.movhi r1,     hi(0xdeadbeef) /* RA */
229        l.ori   r1, r1, lo(0xdeadbeef)
230        l.movhi r3,     hi(0xbbf7ab6f) /* RD wait */
231        l.ori   r3, r3, lo(0xbbf7ab6f)
232       
233        l.rori  r4, r1, 10
234
235        /* Test result */
236        l.sfeq  r3, r4
237        l.bnf   _end_ko
238        l.nop
239
240        /***********/
241        /* Test 12 */
242        /***********/
243        l.movhi r1,     hi(0xdeadbeef) /* RA */
244        l.ori   r1, r1, lo(0xdeadbeef)
245        l.movhi r3,     hi(0xddfbd5b7) /* RD wait */
246        l.ori   r3, r3, lo(0xddfbd5b7)
247       
248        l.rori  r4, r1, 11
249
250        /* Test result */
251        l.sfeq  r3, r4
252        l.bnf   _end_ko
253        l.nop
254
255        /***********/
256        /* Test 13 */
257        /***********/
258        l.movhi r1,     hi(0xdeadbeef) /* RA */
259        l.ori   r1, r1, lo(0xdeadbeef)
260        l.movhi r3,     hi(0xeefdeadb) /* RD wait */
261        l.ori   r3, r3, lo(0xeefdeadb)
262       
263        l.rori  r4, r1, 12
264
265        /* Test result */
266        l.sfeq  r3, r4
267        l.bnf   _end_ko
268        l.nop
269
270        /***********/
271        /* Test 14 */
272        /***********/
273        l.movhi r1,     hi(0xdeadbeef) /* RA */
274        l.ori   r1, r1, lo(0xdeadbeef)
275        l.movhi r3,     hi(0xf77ef56d) /* RD wait */
276        l.ori   r3, r3, lo(0xf77ef56d)
277       
278        l.rori  r4, r1, 13
279
280        /* Test result */
281        l.sfeq  r3, r4
282        l.bnf   _end_ko
283        l.nop
284
285        /***********/
286        /* Test 15 */
287        /***********/
288        l.movhi r1,     hi(0xdeadbeef) /* RA */
289        l.ori   r1, r1, lo(0xdeadbeef)
290        l.movhi r3,     hi(0xfbbf7ab6) /* RD wait */
291        l.ori   r3, r3, lo(0xfbbf7ab6)
292       
293        l.rori  r4, r1, 14
294
295        /* Test result */
296        l.sfeq  r3, r4
297        l.bnf   _end_ko
298        l.nop
299
300        /***********/
301        /* Test 16 */
302        /***********/
303        l.movhi r1,     hi(0xdeadbeef) /* RA */
304        l.ori   r1, r1, lo(0xdeadbeef)
305        l.movhi r3,     hi(0x7ddfbd5b) /* RD wait */
306        l.ori   r3, r3, lo(0x7ddfbd5b)
307       
308        l.rori  r4, r1, 15
309
310        /* Test result */
311        l.sfeq  r3, r4
312        l.bnf   _end_ko
313        l.nop
314
315        /***********/
316        /* Test 17 */
317        /***********/
318        l.movhi r1,     hi(0xdeadbeef) /* RA */
319        l.ori   r1, r1, lo(0xdeadbeef)
320        l.movhi r3,     hi(0xbeefdead) /* RD wait */
321        l.ori   r3, r3, lo(0xbeefdead)
322       
323        l.rori  r4, r1, 16
324
325        /* Test result */
326        l.sfeq  r3, r4
327        l.bnf   _end_ko
328        l.nop
329
330        /***********/
331        /* Test 18 */
332        /***********/
333        l.movhi r1,     hi(0xdeadbeef) /* RA */
334        l.ori   r1, r1, lo(0xdeadbeef)
335        l.movhi r3,     hi(0xdf77ef56) /* RD wait */
336        l.ori   r3, r3, lo(0xdf77ef56)
337       
338        l.rori  r4, r1, 17
339
340        /* Test result */
341        l.sfeq  r3, r4
342        l.bnf   _end_ko
343        l.nop
344
345        /***********/
346        /* Test 19 */
347        /***********/
348        l.movhi r1,     hi(0xdeadbeef) /* RA */
349        l.ori   r1, r1, lo(0xdeadbeef)
350        l.movhi r3,     hi(0x6fbbf7ab) /* RD wait */
351        l.ori   r3, r3, lo(0x6fbbf7ab)
352       
353        l.rori  r4, r1, 18
354
355        /* Test result */
356        l.sfeq  r3, r4
357        l.bnf   _end_ko
358        l.nop
359
360        /***********/
361        /* Test 20 */
362        /***********/
363        l.movhi r1,     hi(0xdeadbeef) /* RA */
364        l.ori   r1, r1, lo(0xdeadbeef)
365        l.movhi r3,     hi(0xb7ddfbd5) /* RD wait */
366        l.ori   r3, r3, lo(0xb7ddfbd5)
367       
368        l.rori  r4, r1, 19
369
370        /* Test result */
371        l.sfeq  r3, r4
372        l.bnf   _end_ko
373        l.nop
374
375        /***********/
376        /* Test 21 */
377        /***********/
378        l.movhi r1,     hi(0xdeadbeef) /* RA */
379        l.ori   r1, r1, lo(0xdeadbeef)
380        l.movhi r3,     hi(0xdbeefdea) /* RD wait */
381        l.ori   r3, r3, lo(0xdbeefdea)
382       
383        l.rori  r4, r1, 20
384
385        /* Test result */
386        l.sfeq  r3, r4
387        l.bnf   _end_ko
388        l.nop
389
390        /***********/
391        /* Test 22 */
392        /***********/
393        l.movhi r1,     hi(0xdeadbeef) /* RA */
394        l.ori   r1, r1, lo(0xdeadbeef)
395        l.movhi r3,     hi(0x6df77ef5) /* RD wait */
396        l.ori   r3, r3, lo(0x6df77ef5)
397       
398        l.rori  r4, r1, 21
399
400        /* Test result */
401        l.sfeq  r3, r4
402        l.bnf   _end_ko
403        l.nop
404
405        /***********/
406        /* Test 23 */
407        /***********/
408        l.movhi r1,     hi(0xdeadbeef) /* RA */
409        l.ori   r1, r1, lo(0xdeadbeef)
410        l.movhi r3,     hi(0xb6fbbf7a) /* RD wait */
411        l.ori   r3, r3, lo(0xb6fbbf7a)
412       
413        l.rori  r4, r1, 22
414
415        /* Test result */
416        l.sfeq  r3, r4
417        l.bnf   _end_ko
418        l.nop
419
420        /***********/
421        /* Test 24 */
422        /***********/
423        l.movhi r1,     hi(0xdeadbeef) /* RA */
424        l.ori   r1, r1, lo(0xdeadbeef)
425        l.movhi r3,     hi(0x5b7ddfbd) /* RD wait */
426        l.ori   r3, r3, lo(0x5b7ddfbd)
427       
428        l.rori  r4, r1, 23
429
430        /* Test result */
431        l.sfeq  r3, r4
432        l.bnf   _end_ko
433        l.nop
434
435        /***********/
436        /* Test 25 */
437        /***********/
438        l.movhi r1,     hi(0xdeadbeef) /* RA */
439        l.ori   r1, r1, lo(0xdeadbeef)
440        l.movhi r3,     hi(0xadbeefde) /* RD wait */
441        l.ori   r3, r3, lo(0xadbeefde)
442       
443        l.rori  r4, r1, 24
444
445        /* Test result */
446        l.sfeq  r3, r4
447        l.bnf   _end_ko
448        l.nop
449
450        /***********/
451        /* Test 26 */
452        /***********/
453        l.movhi r1,     hi(0xdeadbeef) /* RA */
454        l.ori   r1, r1, lo(0xdeadbeef)
455        l.movhi r3,     hi(0x56df77ef) /* RD wait */
456        l.ori   r3, r3, lo(0x56df77ef)
457       
458        l.rori  r4, r1, 25
459
460        /* Test result */
461        l.sfeq  r3, r4
462        l.bnf   _end_ko
463        l.nop
464
465        /***********/
466        /* Test 27 */
467        /***********/
468        l.movhi r1,     hi(0xdeadbeef) /* RA */
469        l.ori   r1, r1, lo(0xdeadbeef)
470        l.movhi r3,     hi(0xab6fbbf7) /* RD wait */
471        l.ori   r3, r3, lo(0xab6fbbf7)
472       
473        l.rori  r4, r1, 26
474
475        /* Test result */
476        l.sfeq  r3, r4
477        l.bnf   _end_ko
478        l.nop
479
480        /***********/
481        /* Test 28 */
482        /***********/
483        l.movhi r1,     hi(0xdeadbeef) /* RA */
484        l.ori   r1, r1, lo(0xdeadbeef)
485        l.movhi r3,     hi(0xd5b7ddfb) /* RD wait */
486        l.ori   r3, r3, lo(0xd5b7ddfb)
487       
488        l.rori  r4, r1, 27
489
490        /* Test result */
491        l.sfeq  r3, r4
492        l.bnf   _end_ko
493        l.nop
494
495        /***********/
496        /* Test 29 */
497        /***********/
498        l.movhi r1,     hi(0xdeadbeef) /* RA */
499        l.ori   r1, r1, lo(0xdeadbeef)
500        l.movhi r3,     hi(0xeadbeefd) /* RD wait */
501        l.ori   r3, r3, lo(0xeadbeefd)
502       
503        l.rori  r4, r1, 28
504
505        /* Test result */
506        l.sfeq  r3, r4
507        l.bnf   _end_ko
508        l.nop
509
510        /***********/
511        /* Test 30 */
512        /***********/
513        l.movhi r1,     hi(0xdeadbeef) /* RA */
514        l.ori   r1, r1, lo(0xdeadbeef)
515        l.movhi r3,     hi(0xf56df77e) /* RD wait */
516        l.ori   r3, r3, lo(0xf56df77e)
517       
518        l.rori  r4, r1, 29
519
520        /* Test result */
521        l.sfeq  r3, r4
522        l.bnf   _end_ko
523        l.nop
524
525        /***********/
526        /* Test 31 */
527        /***********/
528        l.movhi r1,     hi(0xdeadbeef) /* RA */
529        l.ori   r1, r1, lo(0xdeadbeef)
530        l.movhi r3,     hi(0x7ab6fbbf) /* RD wait */
531        l.ori   r3, r3, lo(0x7ab6fbbf)
532       
533        l.rori  r4, r1, 30
534
535        /* Test result */
536        l.sfeq  r3, r4
537        l.bnf   _end_ko
538        l.nop
539
540        /***********/
541        /* Test 32 */
542        /***********/
543        l.movhi r1,     hi(0xdeadbeef) /* RA */
544        l.ori   r1, r1, lo(0xdeadbeef)
545        l.movhi r3,     hi(0xbd5b7ddf) /* RD wait */
546        l.ori   r3, r3, lo(0xbd5b7ddf)
547       
548        l.rori  r4, r1, 31
549
550        /* Test result */
551        l.sfeq  r3, r4
552        l.bnf   _end_ko
553        l.nop
554       
555        /**********/
556        /* End */
557        /**********/
558
559        l.j     _end_ok
560        l.nop
Note: See TracBrowser for help on using the repository browser.