ld: Move the .note.build-id section to near the start of the memory map.
[binutils-gdb.git] / sim / testsuite / bfin / c_cc2stat_cc_av0.S
blobc600902f5d31bc97e04957dace9e4b62eaf5a76c
1 //Original:/testcases/core/c_cc2stat_cc_av0/c_cc2stat_cc_av0.dsp
2 // Spec Reference: cc2stat cc av0
3 # mach: bfin
5 #include "test.h"
6         .include "testutils.inc"
8         start
10         imm32 r0, 0x00000000;
11         imm32 r1, 0x00000000;
12         imm32 r2, 0x00000000;
13         imm32 r3, 0x00000000;
14         imm32 r4, 0x00000000;
15         imm32 r5, 0x00000000;
16         imm32 r6, 0x00000000;
17         imm32 r7, 0x00000000;
19 // test CC = AV0      0-0, 0-1, 1-0, 1-1
20         R7 = 0x00;
21         ASTAT = R7;     // cc = 0, AV0 = 0
22         CC = AV0;       //
23         R0 = CC;        //
25         imm32 R7, _AV0;
26         ASTAT = R7;     // cc = 0, AV0 = 1
27         CC = AV0;       //
28         R1 = CC;        //
30         imm32 R7, _CC;
31         ASTAT = R7;     // cc = 1, AV0 = 0
32         CC = AV0;       //
33         R2 = CC;        //
35         imm32 R7, (_CC|_AV0);
36         ASTAT = R7;     // cc = 1, AV0 = 1
37         CC = AV0;       //
38         R3 = CC;        //
40 // test cc |= AV0 (0-0,  0-1,  1-0,  1-1)
41         R7 = 0x00;
42         ASTAT = R7;     // cc = 0, AV0 = 0
43         CC |= AV0;      //
44         R4 = CC;        //
46         imm32 R7, _AV0;
47         ASTAT = R7;     // cc = 0, AV0 = 1
48         CC |= AV0;      //
49         R5 = CC;        //
51         imm32 R7, (_CC|_AV0);
52         ASTAT = R7;     // cc = 1, AV0 = 0
53         CC |= AV0;      //
54         R6 = CC;        //
56         imm32 R7, (_CC|_AV0);
57         ASTAT = R7;     // cc = 1, AV0 = 1
58         CC |= AV0;      //
59         R7 = CC;        //
61         CHECKREG r0, _UNSET;
62         CHECKREG r1,   _SET;
63         CHECKREG r2, _UNSET;
64         CHECKREG r3,   _SET;
65         CHECKREG r4, _UNSET;
66         CHECKREG r5,   _SET;
67         CHECKREG r6,   _SET;
68         CHECKREG r7,   _SET;
70 // test CC &= AV0 (0-0,  0-1,  1-0,  1-1)
71         R7 = 0x00;
72         ASTAT = R7;     // cc = 0, AV0 = 0
73         CC &= AV0;      //
74         R4 = CC;        //
76         imm32 R7, _AV0;
77         ASTAT = R7;     // cc = 0, AV0 = 1
78         CC &= AV0;      //
79         R5 = CC;        //
81         imm32 R7, _CC;
82         ASTAT = R7;     // cc = 1, AV0 = 0
83         CC &= AV0;      //
84         R6 = CC;        //
86         imm32 R7, (_CC|_AV0);
87         ASTAT = R7;     // cc = 1, AV0 = 1
88         CC &= AV0;      //
89         R7 = CC;        //
91         CHECKREG r0, _UNSET;
92         CHECKREG r1,   _SET;
93         CHECKREG r2, _UNSET;
94         CHECKREG r3,   _SET;
95         CHECKREG r4, _UNSET;
96         CHECKREG r5, _UNSET;
97         CHECKREG r6, _UNSET;
98         CHECKREG r7,   _SET;
100 // test CC ^= AV0 (0-0,  0-1,  1-0,  1-1)
101         R7 = 0x00;
102         ASTAT = R7;     // cc = 0, AV0 = 0
103         CC ^= AV0;      //
104         R4 = CC;        //
106         imm32 R7, _AV0;
107         ASTAT = R7;     // cc = 0, AV0 = 1
108         CC ^= AV0;      //
109         R5 = CC;        //
111         imm32 R7, _CC;
112         ASTAT = R7;     // cc = 1, AV0 = 0
113         CC ^= AV0;      //
114         R6 = CC;        //
116         imm32 R7, (_CC|_AV0);
117         ASTAT = R7;     // cc = 1, AV0 = 1
118         CC ^= AV0;      //
119         R7 = CC;        //
121         CHECKREG r0, _UNSET;
122         CHECKREG r1,   _SET;
123         CHECKREG r2, _UNSET;
124         CHECKREG r3,   _SET;
125         CHECKREG r4, _UNSET;
126         CHECKREG r5,   _SET;
127         CHECKREG r6,   _SET;
128         CHECKREG r7, _UNSET;
130 // test AV0 = CC      0-0, 0-1, 1-0, 1-1
131         R7 = 0x00;
132         ASTAT = R7;     // cc = 0, AV0 = 0
133         AV0 = CC;       //
134         R0 = ASTAT;     //
136         imm32 R7, _AV0;
137         ASTAT = R7;     // cc = 0, AV0 = 1
138         AV0 = CC;       //
139         R1 = ASTAT;     //
141         imm32 R7, _CC;
142         ASTAT = R7;     // cc = 1, AV0 = 0
143         AV0 = CC;       //
144         R2 = ASTAT;     //
146         imm32 R7, (_CC|_AV0);
147         ASTAT = R7;     // cc = 1, AV0 = 1
148         AV0 = CC;       //
149         R3 = ASTAT;     //
151 // test AV0 |= CC (0-0,  0-1,  1-0,  1-1)
152         R7 = 0x00;
153         ASTAT = R7;     // cc = 0, AV0 = 0
154         AV0 |= CC;      //
155         R4 = ASTAT;     //
157         imm32 R7, _AV0;
158         ASTAT = R7;     // cc = 0, AV0 = 1
159         AV0 |= CC;      //
160         R5 = ASTAT;     //
162         imm32 R7, _CC;
163         ASTAT = R7;     // cc = 1, AV0 = 0
164         AV0 |= CC;      //
165         R6 = ASTAT;     //
167         imm32 R7, (_CC|_AV0);
168         ASTAT = R7;     // cc = 1, AV0 = 1
169         AV0 |= CC;      //
170         R7 = ASTAT;     //
172         CHECKREG r0, _UNSET;
173         CHECKREG r1, _UNSET;
174         CHECKREG r2, (_CC|_AV0);
175         CHECKREG r3, (_CC|_AV0);
176         CHECKREG r4, _UNSET;
177         CHECKREG r5, _AV0;
178         CHECKREG r6, (_CC|_AV0);
179         CHECKREG r7, (_CC|_AV0);
181 // test AV0 &= CC (0-0,  0-1,  1-0,  1-1)
182         R7 = 0x00;
183         ASTAT = R7;     // cc = 0, AV0 = 0
184         AV0 &= CC;      //
185         R4 = ASTAT;     //
187         imm32 R7, _AV0;
188         ASTAT = R7;     // cc = 0, AV0 = 1
189         AV0 &= CC;      //
190         R5 = ASTAT;     //
192         imm32 R7, _CC;
193         ASTAT = R7;     // cc = 1, AV0 = 0
194         AV0 &= CC;      //
195         R6 = ASTAT;     //
197         imm32 R7, (_CC|_AV0);
198         ASTAT = R7;     // cc = 1, AV0 = 1
199         AV0 &= CC;      //
200         R7 = ASTAT;     //
202         CHECKREG r0, _UNSET;
203         CHECKREG r1, _UNSET;
204         CHECKREG r2, (_CC|_AV0);
205         CHECKREG r3, (_CC|_AV0);
206         CHECKREG r4, _UNSET;
207         CHECKREG r5, _UNSET;
208         CHECKREG r6, (_CC);
209         CHECKREG r7, (_CC|_AV0);
211 // test AV0 ^= CC (0-0,  0-1,  1-0,  1-1)
212         R7 = 0x00;
213         ASTAT = R7;     // cc = 0, AV0 = 0
214         AV0 ^= CC;      //
215         R4 = ASTAT;     //
217         imm32 R7, _AV0;
218         ASTAT = R7;     // cc = 0, AV0 = 1
219         AV0 ^= CC;      //
220         R5 = ASTAT;     //
222         imm32 R7, _CC;
223         ASTAT = R7;     // cc = 1, AV0 = 0
224         AV0 ^= CC;      //
225         R6 = ASTAT;     //
227         imm32 R7, (_CC|_AV0);
228         ASTAT = R7;     // cc = 1, AV0 = 1
229         AV0 ^= CC;      //
230         R7 = ASTAT;     //
232         CHECKREG r0, _UNSET;
233         CHECKREG r1, _UNSET;
234         CHECKREG r2, (_CC|_AV0);
235         CHECKREG r3, (_CC|_AV0);
236         CHECKREG r4, _UNSET;
237         CHECKREG r5, _AV0;
238         CHECKREG r6, (_CC|_AV0);
239         CHECKREG r7, _CC;
241         pass