1 // Test ALU RND RND12 RND20
5 .include "testutils.inc"
20 CHECKREG R0, (_VS|_V|_V_COPY);
29 CHECKREG R7, 0x7fff7fff;
30 CHECKREG R0, (_VS|_V|_V_COPY);
39 CHECKREG R7, 0x7fff7ff1
52 CHECKREG R7, 0x7ff17ff1
62 CHECKREG R7, 0x7ff10000;
63 CHECKREG R0, (_VS|_AZ);
73 CHECKREG R0, (_VS|_AZ);
82 DBGA ( R7.L , 0x0100 );
96 R7.L = R0 + R1 (RND12);
98 DBGA ( R7.L , 0x7ffe );
110 R7.L = R0 + R1 (RND12);
112 DBGA ( R7.L , 0x7fff );
113 CHECKREG R0, (_VS|_V|_V_COPY);
124 R7.L = R0 + R1 (RND12);
126 DBGA ( R7.L , 0x7fff );
127 CHECKREG R0, (_VS|_V|_V_COPY);
139 R7.L = R0 + R1 (RND12);
143 DBGA ( R7.L , 0x7ffd );
156 R7.L = R0 + R1 (RND12);
160 DBGA ( R7.L , 0x7fff );
161 CHECKREG R0, (_VS|_V|_V_COPY);
163 // Small negative plus small negative should give zero
173 R7.L = R0 + R1 (RND12);
176 DBGA ( R7.L , 0x0000 );
177 CHECKREG R0, (_VS|_AZ);
179 // Small negative minus small positive should give zero
188 R7.L = R0 - R1 (RND12);
190 DBGA ( R7.L , 0x0000 );
191 CHECKREG R0, (_VS|_AZ);
193 // Large positive plus large positive should give maxpos
202 R7.L = R0 + R1 (RND12);
204 DBGA ( R7.L , 0x7fff );
205 CHECKREG R0, (_VS|_V|_V_COPY);
207 // Large negative plus large negative should give maxneg
216 R7.L = R0 + R1 (RND12);
218 DBGA ( R7.L , 0x7fff );
219 CHECKREG R0, (_VS|_V|_V_COPY);
221 // Large positive minus large negative should give maxpos
230 R7.L = R0 - R1 (RND12);
234 CHECKREG R0, (_VS|_AZ);
236 // Large negative minus large positive should give maxneg
245 R7.L = R0 - R1 (RND12);
248 DBGA ( R7.L , 0x0000 );
249 CHECKREG R0, (_VS|_AZ);
259 R7.L = R0 - R1 (RND12);
261 DBGA ( R7.L , 0x8000 );
262 CHECKREG R0, (_VS|_V|_V_COPY|_AN);
274 R7.L = R0 + R1 (RND20);
276 DBGA ( R7.L , 0x0010 );
287 R7.L = R0 + R1 (RND20);
289 DBGA ( R7.L , 0x0010 );
300 R7.L = R0 + R1 (RND20);
302 DBGA ( R7.L , 0x07ff );
313 R7.L = R0 + R1 (RND20);
315 DBGA ( R7.L , 0x0800 );
326 R7.L = R0 + R1 (RND20);
328 DBGA ( R7.L , 0x0000 );
329 DBGA ( R0.H , 0x0200 );
330 DBGA ( R0.L , 0x0001 );
340 R7.L = R0 + R1 (RND20);
342 DBGA ( R7.L , 0xfff1 );
343 CHECKREG R0, (_VS|_AN);
353 R7.L = R0 + R1 (RND20);
355 DBGA ( R7.L , 0xfff2 );
356 CHECKREG R0, (_VS|_AN);
358 // Small negative plus small negative should give zero
367 R7.L = R0 + R1 (RND20);
369 DBGA ( R7.L , 0x0000 );
370 CHECKREG R0, (_VS|_AZ);
372 // Small negative minus small positive should give zero
381 R7.L = R0 - R1 (RND20);
383 DBGA ( R7.L , 0x0000 );
384 CHECKREG R0, (_VS|_AZ);