2 // Test 32 bit MAX, MIN, ABS instructions
5 .include "testutils.inc"
10 // first operand is larger, so AN=0
16 DBGA ( R7.L , 0x0001 );
17 DBGA ( R7.H , 0x0000 );
18 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
19 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
20 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
21 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
22 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
24 // second operand is larger, so AN=1
30 DBGA ( R7.L , 0x0001 );
31 DBGA ( R7.H , 0x0000 );
32 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
33 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
34 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
35 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
36 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
38 // first operand is larger, check correct output with overflow
44 DBGA ( R7.L , 0xffff );
45 DBGA ( R7.H , 0x7fff );
46 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
47 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
48 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
49 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
50 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
52 // second operand is larger, no overflow here
58 DBGA ( R7.L , 0xffff );
59 DBGA ( R7.H , 0x7fff );
60 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
61 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
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 );
66 // second operand is larger, overflow
72 DBGA ( R7.L , 0xffff );
73 DBGA ( R7.H , 0x7fff );
74 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
75 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
76 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
77 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
78 CC = AV0; R7 = CC; DBGA ( R7.L , 0x0 );
79 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
80 CC = AV0S; R7 = CC; DBGA ( R7.L , 0x0 );
81 CC = AV1S; R7 = CC; DBGA ( R7.L , 0x0 );
83 // both operands equal
89 DBGA ( R7.L , 0x0080 );
90 DBGA ( R7.H , 0x8000 );
91 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
92 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
93 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
94 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
95 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
98 // second operand is smaller
103 R7 = MIN ( R0 , R1 );
104 DBGA ( R7.L , 0x0000 );
105 DBGA ( R7.H , 0x0000 );
106 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
107 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
108 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
109 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
110 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
112 // first operand is smaller
117 R7 = MIN ( R0 , R1 );
118 DBGA ( R7.L , 0x0001 );
119 DBGA ( R7.H , 0x8000 );
120 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
121 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
122 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
123 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
124 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
126 // first operand is smaller, overflow
131 R7 = MIN ( R0 , R1 );
132 DBGA ( R7.L , 0x0001 );
133 DBGA ( R7.H , 0x8000 );
134 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
135 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
136 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
137 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
138 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
145 R7 = MIN ( R0 , R1 );
146 DBGA ( R7.L , 0x0001 );
147 DBGA ( R7.H , 0x8000 );
148 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
149 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
150 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
151 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
152 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
163 DBGA ( R7.L , 0xffff );
164 DBGA ( R7.H , 0x7fff );
165 //CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
166 //CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
167 //CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
168 //CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
169 //CC = VS; R7 = CC; DBGA ( R7.L , 0x1 );
170 //CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
175 DBGA ( R7.L , 0x0001 );
176 DBGA ( R7.H , 0x0000 );
177 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
178 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
179 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
180 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
181 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
186 DBGA ( R7.L , 0xffff );
187 DBGA ( R7.H , 0x7fff );
188 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
189 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
190 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
191 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
192 CC = VS; R7 = CC; DBGA ( R7.L , 0x1 );
193 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
198 DBGA ( R7.L , 0x0001 );
199 DBGA ( R7.H , 0x0000 );
200 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
201 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
202 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
203 CC = V; R7 = CC; DBGA ( R7.L , 0x0 );
204 CC = AV1; R7 = CC; DBGA ( R7.L , 0x0 );
214 DBGA ( R7.L , 0x0000 );
215 DBGA ( R7.H , 0x0000 );
216 CC = VS; R6 = CC; DBGA (R6.L, 0x1);
217 CC = AZ; R6 = CC; DBGA (R6.L, 0x1);