xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/c_alu2op_arith_r_sft.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/testcases/core/c_alu2op_arith_r_sft/c_alu2op_arith_r_sft.dsp
2// Spec Reference: alu2op arith right
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10imm32 r0, 0x00000000;
11imm32 r1, 0x12345678;
12imm32 r2, 0x23456789;
13imm32 r3, 0x3456789a;
14imm32 r4, 0x856789ab;
15imm32 r5, 0x96789abc;
16imm32 r6, 0xa789abcd;
17imm32 r7, 0xb89abcde;
18R1.L = 1;
19R1 >>>= R0;
20R2 >>>= R0;
21R3 >>>= R0;
22R4 >>>= R0;
23R5 >>>= R0;
24R6 >>>= R0;
25R7 >>>= R0;
26R4 >>>= R0;
27R0 >>>= R0;
28CHECKREG r1, 0x12340001;
29CHECKREG r2, 0x23456789;
30CHECKREG r3, 0x3456789A;
31CHECKREG r4, 0x856789AB;
32CHECKREG r5, 0x96789ABC;
33CHECKREG r6, 0xA789ABCD;
34CHECKREG r7, 0xB89ABCDE;
35CHECKREG r0, 0x00000000;
36
37imm32 r0, 0x01230002;
38imm32 r1, 0x00000000;
39imm32 r2, 0x93456789;
40imm32 r3, 0xa456789a;
41imm32 r4, 0xb56789ab;
42imm32 r5, 0xc6789abc;
43imm32 r6, 0xd789abcd;
44imm32 r7, 0xe89abcde;
45R1.L = -1;
46R0 >>>= R1;
47R2 >>>= R1;
48R3 >>>= R1;
49R4 >>>= R1;
50R5 >>>= R1;
51R6 >>>= R1;
52R7 >>>= R1;
53R1 >>>= R1;
54CHECKREG r0, 0x00000000;
55CHECKREG r1, 0x00000000;
56CHECKREG r2, 0xFFFFFFFF;
57CHECKREG r3, 0xFFFFFFFF;
58CHECKREG r4, 0xFFFFFFFF;
59CHECKREG r5, 0xFFFFFFFF;
60CHECKREG r6, 0xFFFFFFFF;
61CHECKREG r7, 0xFFFFFFFF;
62
63imm32 r0, 0x51230002;
64imm32 r1, 0x12345678;
65imm32 r2, 0x00000000;
66imm32 r3, 0x3456789a;
67imm32 r4, 0x956789ab;
68imm32 r5, 0x86789abc;
69imm32 r6, 0x6789abcd;
70imm32 r7, 0x789abcde;
71R2.L = 31;
72R0 >>>= R2;
73R1 >>>= R2;
74R3 >>>= R2;
75R4 >>>= R2;
76R5 >>>= R2;
77R6 >>>= R2;
78R7 >>>= R2;
79R2 >>>= R2;
80CHECKREG r0, 0x00000000;
81CHECKREG r1, 0x00000000;
82CHECKREG r2, 0x00000000;
83CHECKREG r3, 0x00000000;
84CHECKREG r4, 0xFFFFFFFF;
85CHECKREG r5, 0xFFFFFFFF;
86CHECKREG r6, 0x00000000;
87CHECKREG r7, 0x00000000;
88
89imm32 r0, 0x01230002;
90imm32 r1, 0x82345678;
91imm32 r2, 0x93456789;
92imm32 r3, 0x00000000;
93imm32 r4, 0xb56789ab;
94imm32 r5, 0xc6789abc;
95imm32 r6, 0xd789abcd;
96imm32 r7, 0xe89abcde;
97R3.L = -31;
98R0 >>>= R3;
99R1 >>>= R3;
100R2 >>>= R3;
101R4 >>>= R3;
102R5 >>>= R3;
103R6 >>>= R3;
104R7 >>>= R3;
105R3 >>>= R3;
106CHECKREG r0, 0x00000000;
107CHECKREG r1, 0xFFFFFFFF;
108CHECKREG r2, 0xFFFFFFFF;
109CHECKREG r3, 0x00000000;
110CHECKREG r4, 0xFFFFFFFF;
111CHECKREG r5, 0xFFFFFFFF;
112CHECKREG r6, 0xFFFFFFFF;
113CHECKREG r7, 0xFFFFFFFF;
114
115imm32 r0, 0x00000001;
116imm32 r1, 0x12345678;
117imm32 r2, 0x23456789;
118imm32 r3, 0x3456789a;
119imm32 r4, 0x00000000;
120imm32 r5, 0x96789abc;
121imm32 r6, 0xa789abcd;
122imm32 r7, 0xb89abcde;
123R4.L = 15;
124R1 >>>= R4;
125R2 >>>= R4;
126R3 >>>= R4;
127R0 >>>= R4;
128R5 >>>= R4;
129R6 >>>= R4;
130R7 >>>= R4;
131R4 >>>= R4;
132CHECKREG r0, 0x00000000;
133CHECKREG r1, 0x00002468;
134CHECKREG r2, 0x0000468A;
135CHECKREG r3, 0x000068AC;
136CHECKREG r4, 0x00000000;
137CHECKREG r5, 0xFFFF2CF1;
138CHECKREG r6, 0xFFFF4F13;
139CHECKREG r7, 0xFFFF7135;
140
141imm32 r0, 0x01230002;
142imm32 r1, 0x00000000;
143imm32 r2, 0x93456789;
144imm32 r3, 0xa456789a;
145imm32 r4, 0xb56789ab;
146imm32 r5, 0x00000000;
147imm32 r6, 0xd789abcd;
148imm32 r7, 0xe89abcde;
149R5.L = -15;
150R0 >>>= R5;
151R1 >>>= R5;
152R2 >>>= R5;
153R3 >>>= R5;
154R4 >>>= R5;
155R6 >>>= R5;
156R7 >>>= R5;
157R5 >>>= R5;
158CHECKREG r0, 0x00000000;
159CHECKREG r1, 0x00000000;
160CHECKREG r2, 0xFFFFFFFF;
161CHECKREG r3, 0xFFFFFFFF;
162CHECKREG r4, 0xFFFFFFFF;
163CHECKREG r5, 0x00000000;
164CHECKREG r6, 0xFFFFFFFF;
165CHECKREG r7, 0xFFFFFFFF;
166
167imm32 r0, 0x51230002;
168imm32 r1, 0x12345678;
169imm32 r2, 0xb1256790;
170imm32 r3, 0x3456789a;
171imm32 r4, 0x956789ab;
172imm32 r5, 0x86789abc;
173imm32 r6, 0x00000000;
174imm32 r7, 0x789abcde;
175R6.L = 24;
176R0 >>>= R6;
177R1 >>>= R6;
178R2 >>>= R6;
179R3 >>>= R6;
180R4 >>>= R6;
181R5 >>>= R6;
182R7 >>>= R6;
183R6 >>>= R6;
184CHECKREG r0, 0x00000051;
185CHECKREG r1, 0x00000012;
186CHECKREG r2, 0xFFFFFFB1;
187CHECKREG r3, 0x00000034;
188CHECKREG r4, 0xFFFFFF95;
189CHECKREG r5, 0xFFFFFF86;
190CHECKREG r6, 0x00000000;
191CHECKREG r7, 0x00000078;
192
193imm32 r0, 0x01230002;
194imm32 r1, 0x82345678;
195imm32 r2, 0x93456789;
196imm32 r3, 0xa456789a;
197imm32 r4, 0xb56789ab;
198imm32 r5, 0xc6789abc;
199imm32 r6, 0xd789abcd;
200imm32 r7, 0x00000000;
201R7.L = -24;
202R0 >>>= R7;
203R1 >>>= R7;
204R2 >>>= R7;
205R3 >>>= R7;
206R4 >>>= R7;
207R5 >>>= R7;
208R6 >>>= R7;
209R7 >>>= R7;
210CHECKREG r0, 0x00000000;
211CHECKREG r1, 0xFFFFFFFF;
212CHECKREG r2, 0xFFFFFFFF;
213CHECKREG r3, 0xFFFFFFFF;
214CHECKREG r4, 0xFFFFFFFF;
215CHECKREG r5, 0xFFFFFFFF;
216CHECKREG r6, 0xFFFFFFFF;
217CHECKREG r7, 0x00000000;
218
219// special case
220R2.L = -1;
221R2.H = 32767;
222R0 = 0;
223R2 >>>= R0;
224CHECKREG r2, 0x7FFFFFFF;
225
226pass
227