1/* ALU test program. 2 * Test instructions 3 * (r7,r6) = +/- (r0,r1); 4 * (r7,r6) = +/- (r0,r1)s; 5 */ 6# mach: bfin 7 8.include "testutils.inc" 9 start 10 11 12// test positive overflow 13 R0.L = 0xffff; 14 R0.H = 0x7fff; 15 R1.L = 0x0001; 16 R1.H = 0x0000; 17 R7 = 0; 18 ASTAT = R7; 19 R6 = R0 + R1, R7 = R0 - R1 (NS); 20 DBGA ( R6.L , 0x0000 ); 21 DBGA ( R6.H , 0x8000 ); 22 DBGA ( R7.L , 0xfffe ); 23 DBGA ( R7.H , 0x7fff ); 24 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 25 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); 26 CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); 27 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); 28 29// test positive overflow 30 R0.L = 0xffff; 31 R0.H = 0x7fff; 32 R1.L = 0x0001; 33 R1.H = 0x0000; 34 R7 = 0; 35 ASTAT = R7; 36 R7 = R0 + R1, R6 = R0 - R1 (NS); 37 DBGA ( R6.L , 0xfffe ); 38 DBGA ( R6.H , 0x7fff ); 39 DBGA ( R7.L , 0x0000 ); 40 DBGA ( R7.H , 0x8000 ); 41 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 42 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); 43 CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); 44 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); 45 46// test positive sat 47 R0.L = 0xffff; 48 R0.H = 0x7fff; 49 R1.L = 0x0001; 50 R1.H = 0x0000; 51 R7 = 0; 52 ASTAT = R7; 53 R6 = R0 + R1, R7 = R0 - R1 (S); 54 DBGA ( R6.L , 0xffff ); 55 DBGA ( R6.H , 0x7fff ); 56 DBGA ( R7.L , 0xfffe ); 57 DBGA ( R7.H , 0x7fff ); 58 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 59 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); 60 CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); 61 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); 62 63// test positive sat 64 R0.L = 0xffff; 65 R0.H = 0x7fff; 66 R1.L = 0x0001; 67 R1.H = 0x0000; 68 R7 = 0; 69 ASTAT = R7; 70 R7 = R0 + R1, R6 = R0 - R1 (S); 71 DBGA ( R6.L , 0xfffe ); 72 DBGA ( R6.H , 0x7fff ); 73 DBGA ( R7.L , 0xffff ); 74 DBGA ( R7.H , 0x7fff ); 75 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); 76 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); 77 CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); 78 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); 79 80 pass 81