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