sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / a10.s
1 // ALU test program.
2 // Test dual 16 bit MAX, MIN, ABS instructions
3 # mach: bfin
4
5 .include "testutils.inc"
6 start
7
8 R0 = 0;
9 ASTAT = R0;
10 // MAX
11 // first operand is larger, so AN=0
12 R0.L = 0x0001;
13 R0.H = 0x0002;
14 R1.L = 0x0000;
15 R1.H = 0x0000;
16 R7 = MAX ( R0 , R1 ) (V);
17 DBGA ( R7.L , 0x0001 );
18 DBGA ( R7.H , 0x0002 );
19 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
20 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
21 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
22 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
23 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
24
25 // second operand is larger
26 R0.L = 0x0000;
27 R0.H = 0x0000;
28 R1.L = 0x0001;
29 R1.H = 0x0022;
30 R7 = MAX ( R0 , R1 ) (V);
31 DBGA ( R7.L , 0x0001 );
32 DBGA ( R7.H , 0x0022 );
33 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
34 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
35 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
36 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
37 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
38
39 // one operand larger, one smaller.
40 R0.L = 0x000a;
41 R0.H = 0x0000;
42 R1.L = 0x0001;
43 R1.H = 0x0022;
44 R7 = MAX ( R0 , R1 ) (V);
45 DBGA ( R7.L , 0x000a );
46 DBGA ( R7.H , 0x0022 );
47 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
48 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
49 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
50 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
51 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
52
53 R0.L = 0x8001;
54 R0.H = 0xffff;
55 R1.L = 0x8000;
56 R1.H = 0x0022;
57 R7 = MAX ( R0 , R1 ) (V);
58 DBGA ( R7.L , 0x8001 );
59 DBGA ( R7.H , 0x0022 );
60 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
61 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
62 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
63 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
64 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
65
66 R0.L = 0x8000;
67 R0.H = 0xffff;
68 R1.L = 0x8000;
69 R1.H = 0x0022;
70 R7 = MAX ( R0 , R1 ) (V);
71 DBGA ( R7.L , 0x8000 );
72 DBGA ( R7.H , 0x0022 );
73 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
74 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
75 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
76 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
77 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
78
79 // MIN
80 // second operand is smaller
81 R0.L = 0x0001;
82 R0.H = 0x0004;
83 R1.L = 0x0000;
84 R1.H = 0x0000;
85 R7 = MIN ( R0 , R1 ) (V);
86 DBGA ( R7.L , 0x0000 );
87 DBGA ( R7.H , 0x0000 );
88 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
89 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
90 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
91 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
92 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
93
94 // first operand is smaller
95 R0.L = 0xffff;
96 R0.H = 0x8001;
97 R1.L = 0x0000;
98 R1.H = 0x0000;
99 R7 = MIN ( R0 , R1 ) (V);
100 DBGA ( R7.L , 0xffff );
101 DBGA ( R7.H , 0x8001 );
102 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
103 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
104 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
105 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
106 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
107
108 // one of each
109 R0.L = 0xffff;
110 R0.H = 0x0034;
111 R1.L = 0x0999;
112 R1.H = 0x0010;
113 R7 = MIN ( R0 , R1 ) (V);
114 DBGA ( R7.L , 0xffff );
115 DBGA ( R7.H , 0x0010 );
116 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
117 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
118 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
119 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
120 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
121
122 R0.L = 0xffff;
123 R0.H = 0x0010;
124 R1.L = 0x0999;
125 R1.H = 0x0010;
126 R7 = MIN ( R0 , R1 ) (V);
127 DBGA ( R7.L , 0xffff );
128 DBGA ( R7.H , 0x0010 );
129 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
130 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
131 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
132 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
133 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
134
135 // ABS
136 R0.L = 0x0001;
137 R0.H = 0x8001;
138 R7 = ABS R0 (V);
139 DBGA ( R7.L , 0x0001 );
140 DBGA ( R7.H , 0x7fff );
141 _DBG ASTAT;
142 R6 = ASTAT;
143 _DBG R6;
144
145 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
146 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
147 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
148 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
149 CC = VS; R7 = CC; DBGA ( R7.L , 0x0 );
150 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
151
152 R0.L = 0x0001;
153 R0.H = 0x8000;
154 R7 = ABS R0 (V);
155 DBGA ( R7.L , 0x0001 );
156 DBGA ( R7.H , 0x7fff );
157 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
158 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
159 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
160 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
161 CC = VS; R7 = CC; DBGA ( R7.L , 0x1 );
162 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
163
164 R0.L = 0x0000;
165 R0.H = 0xffff;
166 R7 = ABS R0 (V);
167 _DBG R7;
168 _DBG ASTAT;
169 R6 = ASTAT;
170 _DBG R6;
171 DBGA ( R7.L , 0x0000 );
172 DBGA ( R7.H , 0x0001 );
173 CC = VS; R6 = CC; DBGA ( R6.L, 0x1 );
174 CC = AZ; R6 = CC; DBGA ( R6.L, 0x1 );
175
176 pass
This page took 0.034284 seconds and 4 git commands to generate.