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