source: trunk/Softwares/Test/Test_039/src/sys/crt0.s

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

Previous commit with new files :P

  • Property svn:keywords set to Id
File size: 3.7 KB
Line 
1/*
2 * Test_039
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.sll
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 - 0xadbeef00
43          3) 0xdeadbeef 0x00000010 - 0xbeef0000
44          4) 0xdeadbeef 0x00000018 - 0xef000000
45          5) 0xdeadbeef 0x0000001f - 0x80000000
46          6) 0xdeadbeef 0x00000024 - 0xeadbeef0
47         */
48
49        /***********/
50        /* Test 1  */
51        /***********/
52        l.movhi r1,     hi(0xdeadbeef) /* RA */
53        l.ori   r1, r1, lo(0xdeadbeef)
54        l.movhi r2,     hi(0x00000000) /* RB */
55        l.ori   r2, r2, lo(0x00000000)
56        l.movhi r3,     hi(0xdeadbeef) /* RD wait */
57        l.ori   r3, r3, lo(0xdeadbeef)
58       
59        l.sll   r4, r1, r2
60
61        /* Test result */
62        l.sfeq  r3, r4
63        l.bnf   _end_ko
64        l.nop
65
66        /***********/
67        /* Test 2  */
68        /***********/
69        l.movhi r1,     hi(0xdeadbeef) /* RA */
70        l.ori   r1, r1, lo(0xdeadbeef)
71        l.movhi r2,     hi(0x00000008) /* RB */
72        l.ori   r2, r2, lo(0x00000008)
73        l.movhi r3,     hi(0xadbeef00) /* RD wait */
74        l.ori   r3, r3, lo(0xadbeef00)
75       
76        l.sll   r4, r1, r2
77
78        /* Test result */
79        l.sfeq  r3, r4
80        l.bnf   _end_ko
81        l.nop
82
83        /***********/
84        /* Test 3  */
85        /***********/
86        l.movhi r1,     hi(0xdeadbeef) /* RA */
87        l.ori   r1, r1, lo(0xdeadbeef)
88        l.movhi r2,     hi(0x00000010) /* RB */
89        l.ori   r2, r2, lo(0x00000010)
90        l.movhi r3,     hi(0xbeef0000) /* RD wait */
91        l.ori   r3, r3, lo(0xbeef0000)
92       
93        l.sll   r4, r1, r2
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 r2,     hi(0x00000018) /* RB */
106        l.ori   r2, r2, lo(0x00000018)
107        l.movhi r3,     hi(0xef000000) /* RD wait */
108        l.ori   r3, r3, lo(0xef000000)
109       
110        l.sll   r4, r1, r2
111
112        /* Test result */
113        l.sfeq  r3, r4
114        l.bnf   _end_ko
115        l.nop
116
117        /***********/
118        /* Test 5  */
119        /***********/
120        l.movhi r1,     hi(0xdeadbeef) /* RA */
121        l.ori   r1, r1, lo(0xdeadbeef)
122        l.movhi r2,     hi(0x0000001f) /* RB */
123        l.ori   r2, r2, lo(0x0000001f)
124        l.movhi r3,     hi(0x80000000) /* RD wait */
125        l.ori   r3, r3, lo(0x80000000)
126       
127        l.sll   r4, r1, r2
128
129        /* Test result */
130        l.sfeq  r3, r4
131        l.bnf   _end_ko
132        l.nop
133
134        /***********/
135        /* Test 6  */
136        /***********/
137        l.movhi r1,     hi(0xdeadbeef) /* RA */
138        l.ori   r1, r1, lo(0xdeadbeef)
139        l.movhi r2,     hi(0x00000024) /* RB */
140        l.ori   r2, r2, lo(0x00000024)
141        l.movhi r3,     hi(0xeadbeef0) /* RD wait */
142        l.ori   r3, r3, lo(0xeadbeef0)
143       
144        l.sll   r4, r1, r2
145
146        /* Test result */
147        l.sfeq  r3, r4
148        l.bnf   _end_ko
149        l.nop
150       
151        /**********/
152        /* End */
153        /**********/
154
155        l.j     _end_ok
156        l.nop
Note: See TracBrowser for help on using the repository browser.