]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/bfin/c_ccflag_pr_pr.s
sim: bfin: import testsuite
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / bfin / c_ccflag_pr_pr.s
1 //Original:/proj/frio/dv/testcases/core/c_ccflag_pr_pr/c_ccflag_pr_pr.dsp
2 // Spec Reference: ccflag pr-pr
3 # mach: bfin
4
5 .include "testutils.inc"
6 start
7
8 INIT_P_REGS 0;
9 INIT_R_REGS 0;
10
11
12 //imm32 p0, 0x00110022;
13 imm32 p1, 0x00110022;
14 imm32 p2, 0x00330044;
15 imm32 p3, 0x00550066;
16
17 imm32 p4, 0x00770088;
18 imm32 p5, 0x009900aa;
19 imm32 fp, 0x00bb00cc;
20 imm32 sp, 0x00000000;
21
22 R0 = 0;
23 ASTAT = R0;
24 R4 = ASTAT;
25
26 // positive preg-1 EQUAL to positive preg-2
27 CC = P2 == P1;
28 R5 = ASTAT;
29 P5 = R5;
30 CC = P2 < P1;
31 R6 = ASTAT;
32 CC = P2 <= P1;
33 R7 = ASTAT;
34 CHECKREG r4, 0x00000000;
35 CHECKREG r5, 0x00000000;
36 CHECKREG r6, 0x00000000;
37 CHECKREG r7, 0x00000000;
38
39 // positive preg-1 GREATER than positive preg-2
40 CC = P3 == P2;
41 R5 = ASTAT;
42 CC = P3 < P2;
43 R6 = ASTAT;
44 CC = P3 <= P2;
45 R7 = ASTAT;
46 CHECKREG r5, 0x00000000;
47 CHECKREG r6, 0x00000000;
48 CHECKREG r7, 0x00000000;
49 // positive preg-1 LESS than positive preg-2
50 CC = P2 == P3;
51 R5 = ASTAT;
52 CC = P2 < P3;
53 R6 = ASTAT;
54 CC = P2 <= P3;
55 R7 = ASTAT;
56 CHECKREG r5, 0x00000000;
57 CHECKREG r6, 0x00000020;
58 CHECKREG r7, 0x00000020;
59
60 //imm32 p0, 0x01230123;
61 imm32 p1, 0x81230123;
62 imm32 p2, 0x04560456;
63 imm32 p3, 0x87890789;
64 // operate on negative number
65 R0 = 0;
66 ASTAT = R0;
67 R4 = ASTAT;
68
69 // positive preg-1 GREATER than negative preg-2
70 CC = P2 == P1;
71 R5 = ASTAT;
72 CC = P2 < P1;
73 R6 = ASTAT;
74 CC = P2 <= P1;
75 R7 = ASTAT;
76 CHECKREG r4, 0x00000000;
77 CHECKREG r5, 0x00000000;
78 CHECKREG r6, 0x00000000;
79 CHECKREG r7, 0x00000000;
80
81 // negative preg-1 LESS than POSITIVE preg-2 small
82 CC = P3 == P2;
83 R5 = ASTAT;
84 CC = P3 < P2;
85 R6 = ASTAT;
86 CC = P3 <= P2;
87 R7 = ASTAT;
88 CHECKREG r5, 0x00000000;
89 CHECKREG r6, 0x00000020;
90 CHECKREG r7, 0x00000020;
91
92 // negative preg-1 GREATER than negative preg-2
93 CC = P1 == P3;
94 R5 = ASTAT;
95 CC = P1 < P3;
96 R6 = ASTAT;
97 CC = P1 <= P3;
98 R7 = ASTAT;
99 CHECKREG r5, 0x00000000;
100 CHECKREG r6, 0x00000020;
101 CHECKREG r7, 0x00000020;
102
103 // negative preg-1 LESS than negative preg-2
104 CC = P3 == P1;
105 R5 = ASTAT;
106 CC = P3 < P1;
107 R6 = ASTAT;
108 CC = P3 <= P1;
109 R7 = ASTAT;
110 CHECKREG r5, 0x00000000;
111 CHECKREG r6, 0x00000000;
112 CHECKREG r7, 0x00000000;
113
114
115 //imm32 p0, 0x80230123;
116 imm32 p1, 0x00230123;
117 imm32 p2, 0x80560056;
118 imm32 p3, 0x00890089;
119 // operate on negative number
120 R0 = 0;
121 ASTAT = R0;
122 R4 = ASTAT;
123
124 // negative preg-1 LESS than POSITIVE preg-2
125 CC = P2 == P3;
126 R5 = ASTAT;
127 CC = P2 < P3;
128 R6 = ASTAT;
129 CC = P2 <= P3;
130 R7 = ASTAT;
131 CHECKREG r4, 0x00000000;
132 CHECKREG r5, 0x00000000; // overflow and carry but not negative
133 CHECKREG r6, 0x00000020; // cc overflow, carry and negative
134 CHECKREG r7, 0x00000020;
135
136
137 imm32 p4, 0x44444444;
138 imm32 p5, 0x55555555;
139 imm32 fp, 0x66666666;
140 imm32 sp, 0x77777777;
141
142 //imm32 p0, 0x00000000;
143 imm32 p1, 0x11111111;
144 imm32 p2, 0x00000000;
145 imm32 p3, 0x33333333;
146
147 ASTAT = R0;
148 R3 = ASTAT;
149 CHECKREG r3, 0x00000000;
150
151 // positive preg-1 EQUAL to positive preg-2
152 CC = P4 == P5;
153 R0 = ASTAT;
154 CC = P4 < P5;
155 R1 = ASTAT;
156 CC = P4 <= P5;
157 R2 = ASTAT;
158 CHECKREG r0, 0x00000000;
159 CHECKREG r1, 0x00000020;
160 CHECKREG r2, 0x00000020;
161
162 // positive preg-1 GREATER than positive preg-2
163 CC = SP == FP;
164 R0 = ASTAT;
165 CC = SP < FP;
166 R1 = ASTAT;
167 CC = SP <= FP;
168 R2 = ASTAT;
169 CHECKREG r0, 0x00000000;
170 CHECKREG r1, 0x00000000;
171 CHECKREG r2, 0x00000000;
172
173
174 // positive preg-1 LESS than positive preg-2
175 CC = FP == SP;
176 R0 = ASTAT;
177 CC = FP < SP;
178 R1 = ASTAT;
179 CC = FP <= SP;
180 R2 = ASTAT;
181 CHECKREG r0, 0x00000000;
182 CHECKREG r1, 0x00000020;
183 CHECKREG r2, 0x00000020;
184
185 imm32 p4, 0x01230123;
186 imm32 p5, 0x81230123;
187 imm32 fp, 0x04560456;
188 imm32 sp, 0x87890789;
189 // operate on negative number
190 R0 = 0;
191 ASTAT = R0;
192 R3 = ASTAT; // nop;
193 CHECKREG r3, 0x00000000;
194
195 // positive preg-1 GREATER than negative preg-2
196 CC = P4 == P5;
197 R1 = ASTAT;
198 CC = P4 < P5;
199 R2 = ASTAT;
200 CC = P4 <= P5;
201 R3 = ASTAT;
202 CHECKREG r1, 0x00000000;
203 CHECKREG r2, 0x00000000;
204 CHECKREG r3, 0x00000000;
205
206 // negative preg-1 LESS than POSITIVE preg-2 small
207 CC = SP == FP;
208 R0 = ASTAT;
209 CC = SP < FP;
210 R1 = ASTAT;
211 CC = SP <= FP;
212 R2 = ASTAT;
213 CHECKREG r0, 0x00000000;
214 CHECKREG r1, 0x00000020;
215 CHECKREG r2, 0x00000020;
216
217 // negative preg-1 GREATER than negative preg-2
218 CC = P5 == SP;
219 R0 = ASTAT;
220 CC = P5 < SP;
221 R1 = ASTAT;
222 CC = P5 <= SP;
223 R2 = ASTAT;
224 CHECKREG r0, 0x00000000;
225 CHECKREG r1, 0x00000020;
226 CHECKREG r2, 0x00000020;
227
228 // negative preg-1 LESS than negative preg-2
229 CC = SP == P5;
230 R1 = ASTAT;
231 CC = SP < P5;
232 R2 = ASTAT;
233 CC = SP <= P5;
234 R3 = ASTAT;
235 CHECKREG r1, 0x00000000;
236 CHECKREG r2, 0x00000000;
237 CHECKREG r3, 0x00000000;
238
239
240 imm32 p4, 0x80230123;
241 imm32 p5, 0x00230123;
242 imm32 fp, 0x80560056;
243 imm32 sp, 0x00890089;
244 // operate on negative number
245 P3 = 0;
246 ASTAT = P3;
247 R0 = ASTAT;
248
249 // negative preg-1 LESS than POSITIVE preg-2
250 CC = R6 == R7;
251 R1 = ASTAT;
252 CC = R6 < R7;
253 R2 = ASTAT;
254 CC = R6 <= R7;
255 R3 = ASTAT;
256 CHECKREG r0, 0x00000000;
257 CHECKREG r1, 0x00001025; // overflow and carry but not negative
258 CHECKREG r2, 0x00001005; // cc overflow, carry and negative
259 CHECKREG r3, 0x00001025;
260
261
262 pass;