sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / s18.s
1 // Immediate dual 16b SHIFT test program.
2 // Test r4 = ASHIFT/ASHIFT (r2 by 10);
3 // Test r4 = ASHIFT/ASHIFT (r2 by 10) S;
4 // Test r4 = LSHIFT/LSHIFT (r2 by 10);
5 # mach: bfin
6
7 .include "testutils.inc"
8 start
9
10
11 // arithmetic
12 // left by largest positive magnitude of 15 (0xf)
13 // 8001 -> 8000
14 R7 = 0;
15 ASTAT = R7;
16 R0.L = 0x8001;
17 R0.H = 0x0100;
18 R6 = R0 << 15 (V);
19 DBGA ( R6.L , 0x8000 );
20 DBGA ( R6.H , 0x0000 );
21 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
22 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
23 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
24 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
25 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
26
27 // arithmetic
28 // left by largest positive magnitude of 15 (0xf) with saturation
29 R7 = 0;
30 ASTAT = R7;
31 R0.L = 0x8001;
32 R0.H = 0x0100;
33 R6 = R0 << 15 (V , S);
34 DBGA ( R6.L , 0x8000 );
35 DBGA ( R6.H , 0x7fff );
36 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
37 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
38 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
39 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
40 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
41
42 // arithmetic
43 // left by 1
44 R7 = 0;
45 ASTAT = R7;
46 R0.L = 0x8001;
47 R0.H = 0x0100;
48 R6 = R0 << 1 (V);
49 DBGA ( R6.L , 0x0002 );
50 DBGA ( R6.H , 0x0200 );
51 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
52 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
53 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
54 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
55 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
56
57 // arithmetic
58 // left by 1 saturating
59 R7 = 0;
60 ASTAT = R7;
61 R0.L = 0x8001;
62 R0.H = 0x0100;
63 R6 = R0 << 1 (V , S);
64 DBGA ( R6.L , 0x8000 );
65 DBGA ( R6.H , 0x0200 );
66 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
67 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
68 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
69 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
70 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
71
72 // arithmetic
73 // left by 15 saturating
74 R7 = 0;
75 ASTAT = R7;
76 R0.L = 0xfff0;
77 R0.H = 0x0000;
78 R6 = R0 << 15 (V , S);
79 DBGA ( R6.L , 0x8000 );
80 DBGA ( R6.H , 0x0000 );
81 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
82 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
83 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
84 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
85 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
86
87 // arithmetic
88 // right by 15
89 R7 = 0;
90 ASTAT = R7;
91 R0.L = 0x8000;
92 R0.H = 0x0100;
93 R6 = R0 >>> 15 (V);
94 DBGA ( R6.L , 0xffff );
95 DBGA ( R6.H , 0x0000 );
96 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
97 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
98 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
99 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
100 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
101
102 // arithmetic
103 // right by 15 (sat has no effect)
104 R7 = 0;
105 ASTAT = R7;
106 R0.L = 0x8000;
107 R0.H = 0x0100;
108 R6 = R0 >>> 15 (V);
109 DBGA ( R6.L , 0xffff );
110 DBGA ( R6.H , 0x0000 );
111 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
112 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
113 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
114 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
115 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
116
117 // logic
118 // right by 15
119 R7 = 0;
120 ASTAT = R7;
121 R0.L = 0x8000;
122 R0.H = 0x0100;
123 R6 = R0 >> 15 (V);
124 DBGA ( R6.L , 0x0001 );
125 DBGA ( R6.H , 0x0000 );
126 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
127 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
128 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
129 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
130 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
131
132 pass
This page took 0.035188 seconds and 4 git commands to generate.