1//Original:/proj/frio/dv/testcases/core/c_ccflag_dr_imm3/c_ccflag_dr_imm3.dsp
2// Spec Reference: ccflag dr-imm3
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9imm32 r0, 0x00000001;
10imm32 r1, 0x00000002;
11imm32 r2, 0x00000003;
12imm32 r3, 0x00000004;
13
14imm32 r4, 0x00770088;
15imm32 r5, 0x009900aa;
16imm32 r6, 0x00bb00cc;
17imm32 r7, 0x00000000;
18
19ASTAT = R7;
20R4 = ASTAT;
21
22// positive dreg EQUAL to positive imm3
23CC = R0 == 1;
24R5 = ASTAT;
25CC = R0 < 1;
26R6 = ASTAT;
27CHECKREG r4, 0x00000000;
28CHECKREG r5, 0x00001025;
29CHECKREG r6, 0x00001005;
30CC = R0 <= 1;
31R5 = ASTAT;
32CC = R0 < 1;
33R6 = ASTAT;
34CC = R0 <= 1;
35R7 = ASTAT;
36CHECKREG r5, 0x00001025;
37CHECKREG r6, 0x00001005;
38CHECKREG r7, 0x00001025;
39
40// positive dreg GREATER than to positive imm3
41CC = R1 == 1;
42R5 = ASTAT;
43CC = R1 < 1;
44R6 = ASTAT;
45CC = R1 <= 1;
46R7 = ASTAT;
47CHECKREG r5, 0x00001004;  // carry
48CHECKREG r6, 0x00001004;
49CHECKREG r7, 0x00001004;
50
51// positive dreg LESS  than to positive imm3
52CC = R0 == 2;
53R5 = ASTAT;
54CC = R0 < 2;
55R6 = ASTAT;
56CC = R0 <= 2;
57R7 = ASTAT;
58CHECKREG r5, 0x00000002;
59CHECKREG r6, 0x00000022;
60CHECKREG r7, 0x00000022;
61
62// positive dreg GREATER than to neg imm3
63CC = R2 == -4;
64R5 = ASTAT;
65CC = R2 < -4;
66R6 = ASTAT;
67CC = R2 <= -4;
68R7 = ASTAT;
69CHECKREG r5, 0x00000000;
70CHECKREG r6, 0x00000000;
71CHECKREG r7, 0x00000000;
72
73imm32 r0, -1;
74imm32 r1, -2;
75imm32 r2, -3;
76imm32 r3, -4;
77// negative dreg and positive imm3
78R7 = 0;
79ASTAT = R7;
80R4 = ASTAT;
81
82CC = R3 == 1;
83R5 = ASTAT;
84CC = R3 < 1;
85R6 = ASTAT;
86CC = R3 <= 1;
87R7 = ASTAT;
88CHECKREG r4, 0x00000000;
89CHECKREG r5, 0x00001006;
90CHECKREG r6, 0x00001026;
91CHECKREG r7, 0x00001026;
92
93//  negative dreg LESS than neg imm3
94CC = R2 == -1;
95R4 = ASTAT;
96CC = R2 < -1;
97R5 = ASTAT;
98CC = R2 <= -1;
99R6 = ASTAT;
100CHECKREG r4, 0x00000002;
101CHECKREG r5, 0x00000022;
102CHECKREG r6, 0x00000022;
103
104// negative dreg GREATER neg imm3
105CC = R0 == -4;
106R4 = ASTAT;
107CC = R0 < -4;
108R5 = ASTAT;
109CC = R0 <= -4;
110R6 = ASTAT;
111CHECKREG r4, 0x00001004;
112CHECKREG r5, 0x00001004;
113CHECKREG r6, 0x00001004;
114
115
116imm32 r0, 0x00000000;
117imm32 r1, 0x00000000;
118imm32 r2, 0x00000000;
119imm32 r3, 0x00000000;
120
121imm32 r4, 0x00000001;
122imm32 r5, 0x00000002;
123imm32 r6, 0x00000003;
124imm32 r7, 0x00000004;
125
126ASTAT = R0;
127R3 = ASTAT;
128
129// positive dreg EQUAL to positive imm3
130CC = R4 == 1;
131R1 = ASTAT;
132CC = R4 < 1;
133R2 = ASTAT;
134CHECKREG r0, 0x00000000;
135CHECKREG r1, 0x00001025;
136CHECKREG r2, 0x00001005;
137CC = R4 <= 1;
138R1 = ASTAT;
139CC = R4 < 1;
140R2 = ASTAT;
141CC = R4 <= 1;
142R3 = ASTAT;
143CHECKREG r1, 0x00001025;
144CHECKREG r2, 0x00001005;
145CHECKREG r3, 0x00001025;
146
147// positive dreg GREATER than to positive imm3
148CC = R5 == 1;
149R1 = ASTAT;
150CC = R5 < 1;
151R2 = ASTAT;
152CC = R5 <= 1;
153R3 = ASTAT;
154CHECKREG r1, 0x00001004;  // carry
155CHECKREG r2, 0x00001004;
156CHECKREG r3, 0x00001004;
157
158// positive dreg LESS  than to positive imm3
159CC = R6 == 2;
160R1 = ASTAT;
161CC = R6 < 2;
162R2 = ASTAT;
163CC = R6 <= 2;
164R3 = ASTAT;
165CHECKREG r1, 0x00001004;
166CHECKREG r2, 0x00001004;
167CHECKREG r3, 0x00001004;
168
169// positive dreg GREATER than to neg imm3
170CC = R6 == -4;
171R1 = ASTAT;
172CC = R6 < -4;
173R2 = ASTAT;
174CC = R6 <= -4;
175R3 = ASTAT;
176CHECKREG r1, 0x00000000;
177CHECKREG r2, 0x00000000;
178CHECKREG r3, 0x00000000;
179
180imm32 r4, -1;
181imm32 r5, -2;
182imm32 r6, -3;
183imm32 r7, -4;
184// negative dreg and positive imm3
185R3 = 0;
186ASTAT = R3;
187R0 = ASTAT;
188
189CC = R7 == 1;
190R1 = ASTAT;
191CC = R7 < 1;
192R2 = ASTAT;
193CC = R7 <= 1;
194R3 = ASTAT;
195CHECKREG r0, 0x00000000;
196CHECKREG r1, 0x00001006;
197CHECKREG r2, 0x00001026;
198CHECKREG r3, 0x00001026;
199
200//  negative dreg LESS than neg imm3
201CC = R6 == -1;
202R0 = ASTAT;
203CC = R6 < -1;
204R1 = ASTAT;
205CC = R6 <= -1;
206R2 = ASTAT;
207CHECKREG r0, 0x00000002;
208CHECKREG r1, 0x00000022;
209CHECKREG r2, 0x00000022;
210
211// negative dreg GREATER neg imm3
212CC = R4 == -4;
213R0 = ASTAT;
214CC = R4 < -4;
215R1 = ASTAT;
216CC = R4 <= -4;
217R2 = ASTAT;
218CHECKREG r0, 0x00001004;
219CHECKREG r1, 0x00001004;
220CHECKREG r2, 0x00001004;
221
222
223
224pass;
225