source: trunk/Softwares/Test/Test_044/src/sys/crt0.s @ 136

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

Previous commit with new files :P

  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
1/*
2 * Test_044
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.srai
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          1) 0xdeadbeef 0x00000000 - 0xdeadbeef
42          2) 0xdeadbeef 0x00000008 - 0xffdeadbe
43          3) 0xdeadbeef 0x00000010 - 0xffffdead
44          4) 0xdeadbeef 0x00000018 - 0xffffffde
45          5) 0xdeadbeef 0x0000001f - 0xffffffff
46          6) 0xdeadbeef 0x00000004 - 0xfdeadbee 
47          7) 0x12345678 0x00000000 - 0x12345678
48          8) 0x12345678 0x00000008 - 0x00123456
49          9) 0x12345678 0x00000010 - 0x00001234
50         10) 0x12345678 0x00000018 - 0x00000012
51         11) 0x12345678 0x0000001f - 0x00000000
52         12) 0x12345678 0x00000004 - 0x01234567
53         */
54
55        /***********/
56        /* Test 1  */
57        /***********/
58        l.movhi r1,     hi(0xdeadbeef) /* RA */
59        l.ori   r1, r1, lo(0xdeadbeef)
60        l.movhi r3,     hi(0xdeadbeef) /* RD wait */
61        l.ori   r3, r3, lo(0xdeadbeef)
62       
63        l.srai  r4, r1, 0 
64
65        /* Test result */
66        l.sfeq  r3, r4
67        l.bnf   _end_ko
68        l.nop
69
70        /***********/
71        /* Test 2  */
72        /***********/
73        l.movhi r1,     hi(0xdeadbeef) /* RA */
74        l.ori   r1, r1, lo(0xdeadbeef)
75        l.movhi r3,     hi(0xffdeadbe) /* RD wait */
76        l.ori   r3, r3, lo(0xffdeadbe)
77       
78        l.srai  r4, r1, 8 
79
80        /* Test result */
81        l.sfeq  r3, r4
82        l.bnf   _end_ko
83        l.nop
84       
85        /***********/
86        /* Test 3  */
87        /***********/
88        l.movhi r1,     hi(0xdeadbeef) /* RA */
89        l.ori   r1, r1, lo(0xdeadbeef)
90        l.movhi r3,     hi(0xffffdead) /* RD wait */
91        l.ori   r3, r3, lo(0xffffdead)
92       
93        l.srai  r4, r1, 16 
94
95        /* Test result */
96        l.sfeq  r3, r4
97        l.bnf   _end_ko
98        l.nop
99       
100        /***********/
101        /* Test 4  */
102        /***********/
103        l.movhi r1,     hi(0xdeadbeef) /* RA */
104        l.ori   r1, r1, lo(0xdeadbeef)
105        l.movhi r3,     hi(0xffffffde) /* RD wait */
106        l.ori   r3, r3, lo(0xffffffde)
107       
108        l.srai  r4, r1, 24 
109
110        /* Test result */
111        l.sfeq  r3, r4
112        l.bnf   _end_ko
113        l.nop
114       
115        /***********/
116        /* Test 5  */
117        /***********/
118        l.movhi r1,     hi(0xdeadbeef) /* RA */
119        l.ori   r1, r1, lo(0xdeadbeef)
120        l.movhi r3,     hi(0xffffffff) /* RD wait */
121        l.ori   r3, r3, lo(0xffffffff)
122       
123        l.srai  r4, r1, 31 
124
125        /* Test result */
126        l.sfeq  r3, r4
127        l.bnf   _end_ko
128        l.nop
129       
130        /***********/
131        /* Test 6  */
132        /***********/
133        l.movhi r1,     hi(0xdeadbeef) /* RA */
134        l.ori   r1, r1, lo(0xdeadbeef)
135        l.movhi r3,     hi(0xfdeadbee) /* RD wait */
136        l.ori   r3, r3, lo(0xfdeadbee)
137       
138        l.srai  r4, r1, 4
139
140        /* Test result */
141        l.sfeq  r3, r4
142        l.bnf   _end_ko
143        l.nop
144
145        /***********/
146        /* Test 7  */
147        /***********/
148        l.movhi r1,     hi(0x12345678) /* RA */
149        l.ori   r1, r1, lo(0x12345678)
150        l.movhi r3,     hi(0x12345678) /* RD wait */
151        l.ori   r3, r3, lo(0x12345678)
152       
153        l.srai  r4, r1, 0
154
155        /* Test result */
156        l.sfeq  r3, r4
157        l.bnf   _end_ko
158        l.nop
159
160        /***********/
161        /* Test 8  */
162        /***********/
163        l.movhi r1,     hi(0x12345678) /* RA */
164        l.ori   r1, r1, lo(0x12345678)
165        l.movhi r3,     hi(0x00123456) /* RD wait */
166        l.ori   r3, r3, lo(0x00123456)
167       
168        l.srai  r4, r1, 8
169
170        /* Test result */
171        l.sfeq  r3, r4
172        l.bnf   _end_ko
173        l.nop
174       
175        /***********/
176        /* Test 9  */
177        /***********/
178        l.movhi r1,     hi(0x12345678) /* RA */
179        l.ori   r1, r1, lo(0x12345678)
180        l.movhi r3,     hi(0x00001234) /* RD wait */
181        l.ori   r3, r3, lo(0x00001234)
182       
183        l.srai  r4, r1, 16 
184
185        /* Test result */
186        l.sfeq  r3, r4
187        l.bnf   _end_ko
188        l.nop
189       
190        /***********/
191        /* Test 10 */
192        /***********/
193        l.movhi r1,     hi(0x12345678) /* RA */
194        l.ori   r1, r1, lo(0x12345678)
195        l.movhi r3,     hi(0x00000012) /* RD wait */
196        l.ori   r3, r3, lo(0x00000012)
197       
198        l.srai  r4, r1, 24 
199
200        /* Test result */
201        l.sfeq  r3, r4
202        l.bnf   _end_ko
203        l.nop
204       
205        /***********/
206        /* Test 11 */
207        /***********/
208        l.movhi r1,     hi(0x12345678) /* RA */
209        l.ori   r1, r1, lo(0x12345678)
210        l.movhi r3,     hi(0x00000000) /* RD wait */
211        l.ori   r3, r3, lo(0x00000000)
212       
213        l.srai  r4, r1, 31 
214
215        /* Test result */
216        l.sfeq  r3, r4
217        l.bnf   _end_ko
218        l.nop
219       
220        /***********/
221        /* Test 12 */
222        /***********/
223        l.movhi r1,     hi(0x12345678) /* RA */
224        l.ori   r1, r1, lo(0x12345678)
225        l.movhi r3,     hi(0x01234567) /* RD wait */
226        l.ori   r3, r3, lo(0x01234567)
227       
228        l.srai  r4, r1, 4
229
230        /* Test result */
231        l.sfeq  r3, r4
232        l.bnf   _end_ko
233        l.nop
234
235       
236        /**********/
237        /* End */
238        /**********/
239
240        l.j     _end_ok
241        l.nop
Note: See TracBrowser for help on using the repository browser.